Ready For Testing

pull/1/head
zaid_daoud 2 years ago
parent a1f2960fad
commit 8f05983c14

@ -41,14 +41,14 @@ class ServiceReportMaintenanceSituationProvider extends ChangeNotifier {
/// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> getOperators() async {
Future<int> getOperators(String woId) async {
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
try {
response = await ApiManager.instance.get(
"${URLs.getMaintenanceSituation}",
woId == null ? "${URLs.getMaintenanceSituation}" : "${URLs.getServiceReportLastCalls}?parentWOId=$woId&isAdd=true&id=${0}&typeTransaction='Nothing'",
);
// response = await get(
// Uri.parse(

@ -104,29 +104,35 @@ class SearchWorkOrder {
workOrderYear = wo.workOrderYear ?? workOrderYear;
workOrderSequennce = wo.workOrderSequennce ?? workOrderSequennce;
callRequest = wo.callRequest ?? callRequest;
assetType = wo.assetType ?? assetType;
assignedEmployee = wo.assignedEmployee ?? assignedEmployee;
if (wo.assetType != null) assetType = Lookup.fromJson((wo.assetType)?.toMap() ?? {});
if (wo.assignedEmployee != null) assignedEmployee = AssignedEmployee.fromJson((wo.assignedEmployee)?.toJson() ?? {});
visitDate = wo.visitDate ?? visitDate;
assistantEmployees = wo.assistantEmployees ?? assistantEmployees;
supplier = wo.supplier ?? supplier;
assistantEmployees = (wo.assistantEmployees ?? assistantEmployees)
?.map((e) => AssistantEmployees.fromJson({
"id": e?.id,
"user": {"name": e?.user?.name, "id": (e?.user?.id) ?? "0"}
}))
?.toList() ??
[];
if (wo.supplier != null) supplier = SupplierModel.fromJson((wo.supplier)?.toJson() ?? {});
vendorTicketNumber = wo.vendorTicketNumber ?? vendorTicketNumber;
contactPersonWorkOrders = wo.contactPersonWorkOrders ?? contactPersonWorkOrders;
calllastSituation = wo.calllastSituation ?? calllastSituation;
currentSituation = wo.currentSituation ?? currentSituation;
repairLocation = wo.repairLocation ?? repairLocation;
reason = wo.reason ?? reason;
contactPersonWorkOrders = (wo.contactPersonWorkOrders ?? contactPersonWorkOrders)?.map((e) => ContactPersonWorkOrders.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
calllastSituation = Lookup.fromJson((wo.calllastSituation ?? calllastSituation)?.toMap() ?? {});
if (wo.currentSituation != null) currentSituation = Lookup.fromJson((wo.currentSituation)?.toMap() ?? {});
repairLocation = Lookup.fromJson((wo.repairLocation ?? repairLocation)?.toMap() ?? {});
reason = Lookup.fromJson((wo.reason ?? reason)?.toMap() ?? {});
startofWorkTime = wo.startofWorkTime ?? startofWorkTime;
endofWorkTime = wo.endofWorkTime ?? endofWorkTime;
workingHours = wo.workingHours ?? workingHours;
travelingHours = wo.travelingHours ?? travelingHours;
travelingExpenses = wo.travelingExpenses ?? travelingExpenses;
faultDescription = wo.faultDescription ?? faultDescription;
sparePartsWorkOrders = wo.sparePartsWorkOrders ?? sparePartsWorkOrders;
faultDescription = FaultDescription.fromJson((wo.faultDescription ?? faultDescription)?.toJson() ?? {});
sparePartsWorkOrders = (wo.sparePartsWorkOrders ?? sparePartsWorkOrders)?.map((e) => SparePartsWorkOrders.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
reviewComment = wo.reviewComment ?? reviewComment;
comment = wo.comment ?? comment;
attachmentsWorkOrder = wo.attachmentsWorkOrder ?? attachmentsWorkOrder;
equipmentStatus = wo.equipmentStatus ?? equipmentStatus;
suppEngineerWorkOrders = wo.suppEngineerWorkOrders ?? suppEngineerWorkOrders;
attachmentsWorkOrder = (wo.attachmentsWorkOrder ?? attachmentsWorkOrder)?.map((e) => AttachmentsWorkOrder.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
equipmentStatus = Lookup.fromJson((wo.equipmentStatus ?? equipmentStatus)?.toMap() ?? {});
suppEngineerWorkOrders = (wo.suppEngineerWorkOrders ?? suppEngineerWorkOrders)?.map((e) => SuppEngineerWorkOrders.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
engSignature = wo.engSignature ?? engSignature;
nurseSignature = wo.nurseSignature ?? nurseSignature;
woParentDto = wo.woParentDto ?? woParentDto;
@ -262,9 +268,7 @@ class SearchWorkOrder {
if (calllastSituation != null) {
map['calllastSituation'] = calllastSituation.toMap();
}
if (currentSituation != null) {
map['currentSituation'] = currentSituation.toMap();
}
map['currentSituation'] = currentSituation?.toMap();
if (repairLocation != null) {
map['repairLocation'] = repairLocation.toMap();
}
@ -1722,11 +1726,8 @@ class Asset {
if (modelDefinition != null) {
map['modelDefinition'] = modelDefinition.toJson();
}
if (supplier != null) {
map['supplier'] = supplier.toJson();
} else {
map['supplier'] = [];
}
map['supplier'] = supplier?.toJson();
map['ipAddress'] = ipAddress;
map['macAddress'] = macAddress;
map['portNumber'] = portNumber;
@ -1742,11 +1743,12 @@ class Asset {
if (parentAsset != null) {
map['parentAsset'] = parentAsset.toJson();
}
if (assetType != null) {
map['assetType'] = assetType.toMap();
} else {
map['assetType'] = [];
}
map['assetType'] = assetType?.toMap();
print("supplier : ${supplier?.toJson()}");
print("supplier 2 : ${map['supplier']}");
print("asset type : ${assetType?.toMap()}");
print("asset type 2: ${map['assetType']}");
if (site != null) {
map['site'] = site.toJson();
}

@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_types_provider.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/service_report.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
@ -13,6 +14,8 @@ import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/pages/sub_workorder/spare_parts_details_bottom_sheet.dart';
import 'package:test_sa/views/pages/sub_workorder/work_order_details_bottom_sheet.dart';
import 'package:test_sa/views/pages/sub_workorder/workorder_details.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/status/service_request/service_request_defect_types_mune.dart';
import '../../../controllers/api_routes/http_status_manger.dart';
import '../../../controllers/localization/localization.dart';
@ -23,7 +26,6 @@ import '../../widgets/buttons/app_back_button.dart';
import '../../widgets/buttons/app_button.dart';
import '../../widgets/date_and_time/date_picker.dart';
import '../../widgets/images/mini_one_image_picker.dart';
import '../../widgets/status/report/service_report_equipment_status.dart';
import '../../widgets/status/report/service_report_fault_description.dart';
import '../../widgets/status/report/service_report_reasons.dart';
import '../../widgets/titles/app_sub_title.dart';
@ -48,234 +50,249 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
@override
void initState() {
_subWorkOrders = SearchWorkOrder(assignedEmployee: widget.workOrder.assignedEmployee, callRequest: CallRequest());
_subWorkOrders = SearchWorkOrder(
assignedEmployee: widget?.workOrder?.callRequest?.assignedEmployee,
callRequest: CallRequest(id: widget?.workOrder?.callRequest?.id),
currentSituation: null,
supplier: null,
);
_serviceReport = ServiceReport(id: widget.workOrder.id, type: widget.workOrder.assetType, equipmentStatus: widget.workOrder.equipmentStatus);
if (context.mounted) {
Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false).reset();
}
super.initState();
}
Future getAssetType() async {
Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false).reset();
final assetTypesProvider = Provider.of<ServiceStatusProvider>(context, listen: false);
await assetTypesProvider.getTypes();
_subWorkOrders?.assetType = assetTypesProvider.statuses?.firstWhere(
(element) => element.value == widget.workOrder?.callRequest?.assetType,
orElse: () => null,
);
}
@override
Widget build(BuildContext context) {
final Subtitle subtitle = AppLocalization.of(context).subtitle;
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: Form(
key: _formKey,
child: Column(
children: [
Container(
color: AColors.primaryColor,
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
child: Column(
children: [
Row(
children: [
const ABackButton(),
Expanded(
child: Center(
child: Text(
"New Work Order",
style: Theme.of(context).textTheme.titleLarge.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
),
),
),
const SizedBox(
width: 48,
)
],
),
],
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
child: Column(
children: [
WorkOrderDetails(
item: widget.workOrder,
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const ASubTitle("Equipment status"),
if (_validate && _subWorkOrders?.equipmentStatus == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
ServiceReportEquipmentStatusMenu(
report: _serviceReport,
onSelect: (status) {
_subWorkOrders.equipmentStatus = status;
_serviceReport.equipmentStatus = status;
setState(() {});
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const ASubTitle("Return to Service"),
if (_validate && _subWorkOrders.visitDate == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
Row(
child: FutureBuilder(
future: getAssetType(),
builder: (context, snap) => snap.connectionState == ConnectionState.waiting
? const ALoading()
: SingleChildScrollView(
child: Form(
key: _formKey,
child: Column(
children: [
Container(
color: AColors.primaryColor,
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
child: Column(
children: [
Expanded(
child: ADatePicker(
date: DateTime.tryParse(_subWorkOrders.visitDate ?? ""),
from: DateTime(1950),
onDatePicker: (date) {
_subWorkOrders.visitDate = date?.toIso8601String();
setState(() {});
},
),
Row(
children: [
const ABackButton(),
Expanded(
child: Center(
child: Text(
"New Work Order",
style: Theme.of(context).textTheme.titleLarge.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
),
),
),
const SizedBox(
width: 48,
)
],
),
],
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle("Failure ${subtitle.reasons}"),
if (_validate && _subWorkOrders.reason == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
ServiceReportReasonsMenu(
initialValue: _serviceReportReason,
onSelect: (status) {
_serviceReportReason = status;
_subWorkOrders.reason = status;
setState(() {});
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle(subtitle.faultDescription),
if (_validate && _subWorkOrders.faultDescription == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
ServiceReportFaultDescription(
requestId: widget.workOrder?.callRequest?.id?.toString(),
initialValue: _subWorkOrders.faultDescription,
onSelect: (status) {
_subWorkOrders.faultDescription = status;
setState(() {});
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const ASubTitle("Solution"),
const SizedBox(
height: 4,
),
ATextFormField(labelText: _subWorkOrders.faultDescription?.workPerformed ?? "", textInputType: TextInputType.multiline, enable: false),
],
),
const SizedBox(height: 8),
InkWell(
onTap: () async {
await showModalBottomSheet(
context: context,
useSafeArea: true,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => WorkOrderDetailsBottomSheet(subWorkOrder: _subWorkOrders),
);
log(_subWorkOrders?.toJson()?.toString());
},
child: Card(
child: ListTile(
title: Row(
children: [
Text(
"WO Details",
style: Theme.of(context).textTheme.bodyMedium,
),
const Text("*", style: TextStyle(color: Colors.red)),
],
),
trailing: const Icon(Icons.arrow_forward_ios, size: 14, color: AColors.primaryColor),
),
),
),
const SizedBox(height: 8),
InkWell(
onTap: () async {
await showModalBottomSheet(
context: context,
useSafeArea: true,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => SparePartsBottomSheet(subWorkOrder: _subWorkOrders),
);
log(_subWorkOrders?.toJson()?.toString());
},
child: Card(
child: ListTile(
title: Row(
children: [
Text(
"Spare Parts",
style: Theme.of(context).textTheme.bodyMedium,
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
child: Column(
children: [
WorkOrderDetails(
item: widget.workOrder,
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const ASubTitle("Equipment status"),
if (_validate && _subWorkOrders?.equipmentStatus == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
ServiceRequestDefectTypesMenu(
initialValue: _serviceReport.equipmentStatus,
onSelect: (status) {
_subWorkOrders.equipmentStatus = status;
_serviceReport.equipmentStatus = status;
setState(() {});
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const ASubTitle("Return to Service"),
if (_validate && _subWorkOrders.visitDate == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
Row(
children: [
Expanded(
child: ADatePicker(
date: DateTime.tryParse(_subWorkOrders.visitDate ?? ""),
from: DateTime(1950),
onDatePicker: (date) {
_subWorkOrders.visitDate = date?.toIso8601String();
setState(() {});
},
),
),
],
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle("Failure ${subtitle.reasons}"),
if (_validate && _subWorkOrders.reason == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
ServiceReportReasonsMenu(
initialValue: _serviceReportReason,
onSelect: (status) {
_serviceReportReason = status;
_subWorkOrders.reason = status;
setState(() {});
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle(subtitle.faultDescription),
if (_validate && _subWorkOrders.faultDescription == null)
ASubTitle(
subtitle.requiredWord,
color: Colors.red,
),
const SizedBox(
height: 4,
),
ServiceReportFaultDescription(
requestId: widget.workOrder?.callRequest?.id?.toString(),
initialValue: _subWorkOrders?.faultDescription,
onSelect: (status) {
_subWorkOrders.faultDescription = status;
setState(() {});
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const ASubTitle("Solution"),
const SizedBox(height: 4),
ATextFormField(labelText: _subWorkOrders?.faultDescription?.workPerformed ?? "", textInputType: TextInputType.multiline, enable: false),
],
),
const SizedBox(height: 8),
InkWell(
onTap: () async {
await showModalBottomSheet(
context: context,
useSafeArea: true,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => WorkOrderDetailsBottomSheet(subWorkOrder: _subWorkOrders),
);
log(_subWorkOrders?.toJson()?.toString());
},
child: Card(
child: ListTile(
title: Row(
children: [
Text(
"WO Details",
style: Theme.of(context).textTheme.bodyMedium,
),
const Text("*", style: TextStyle(color: Colors.red)),
],
),
trailing: const Icon(Icons.arrow_forward_ios, size: 14, color: AColors.primaryColor),
),
),
),
const SizedBox(height: 8),
InkWell(
onTap: () async {
await showModalBottomSheet(
context: context,
useSafeArea: true,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (context) => SparePartsBottomSheet(subWorkOrder: _subWorkOrders),
);
log(_subWorkOrders?.toJson()?.toString());
},
child: Card(
child: ListTile(
title: Row(
children: [
Text(
"Spare Parts",
style: Theme.of(context).textTheme.bodyMedium,
),
const Text("*", style: TextStyle(color: Colors.red)),
],
),
trailing: const Icon(Icons.arrow_forward_ios, size: 14, color: AColors.primaryColor),
),
),
const Text("*", style: TextStyle(color: Colors.red)),
],
),
trailing: const Icon(Icons.arrow_forward_ios, size: 14, color: AColors.primaryColor),
),
const SizedBox(height: 8),
AMiniOneImagePicker(
image: _image,
onPick: (image) {
_image = image;
_subWorkOrders.attachmentsWorkOrder ??= [];
_subWorkOrders.attachmentsWorkOrder.add(AttachmentsWorkOrder(name: "${image.path.split("/").last}|${base64Encode(image.readAsBytesSync())}"));
},
),
const SizedBox(height: 50),
],
),
),
),
const SizedBox(height: 8),
AMiniOneImagePicker(
image: _image,
onPick: (image) {
_image = image;
_subWorkOrders.attachmentsWorkOrder ??= [];
_subWorkOrders.attachmentsWorkOrder.add(AttachmentsWorkOrder(name: "${image.path.split("/").last}|${base64Encode(image.readAsBytesSync())}"));
},
),
const SizedBox(height: 50),
],
],
),
),
),
],
),
),
),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,

@ -12,6 +12,7 @@ import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
import '../../../controllers/api_routes/http_status_manger.dart';
import '../../../controllers/localization/localization.dart';
import '../../../controllers/providers/api/status_drop_down/report/service_report_maintenance_situation_provider.dart';
import '../../app_style/colors.dart';
import '../../widgets/buttons/app_back_button.dart';
import '../../widgets/buttons/app_button.dart';
@ -35,6 +36,15 @@ class _SearchSubWorkOrderPageState extends State<SearchSubWorkOrderPage> {
bool _isLoading = false;
String _callerId = "", _site = "";
Lookup _dateOperator;
@override
void initState() {
super.initState();
if (context.mounted) {
Provider.of<ServiceReportMaintenanceSituationProvider>(context, listen: false).reset();
}
}
@override
Widget build(BuildContext context) {
_subtitle = AppLocalization.of(context).subtitle;
@ -120,6 +130,7 @@ class _SearchSubWorkOrderPageState extends State<SearchSubWorkOrderPage> {
_searchWorkOrders.calllastSituation = status;
}
},
woId: _searchWorkOrders.id?.toString(),
),
const SizedBox(height: 16),
ATextFormField(

@ -30,6 +30,12 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
_workOrder.copyFrom(widget.subWorkOrder);
}
@override
void dispose() {
_workOrder.sparePartsWorkOrders = widget.subWorkOrder.sparePartsWorkOrders;
super.dispose();
}
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
@ -92,9 +98,9 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
onPick: (part) {
_workOrder.sparePartsWorkOrders ??= [];
_workOrder.sparePartsWorkOrders.add(SparePartsWorkOrders(
id: part.id,
id: part.reportPartID,
qty: part.quantity,
sparePart: SparePart(id: part.reportPartID, partName: part.name, partNo: part.code),
sparePart: SparePart(id: part.id, partName: part.name, partNo: part.code),
));
},
),
@ -115,27 +121,31 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
),
if (_workOrder.sparePartsWorkOrders?.isNotEmpty ?? false)
Column(
children: List.generate(_workOrder.sparePartsWorkOrders?.length, (index) {
final spare = _workOrder.sparePartsWorkOrders[index];
Part part = Part(
id: spare.id,
reportPartID: spare.sparePart?.id,
code: spare.sparePart?.partNo,
name: spare.sparePart?.partName,
quantity: spare.qty,
);
return PartItem(
part: part,
onDelete: (part) {
_workOrder.sparePartsWorkOrders.remove(SparePartsWorkOrders(
id: part.id,
qty: part.quantity,
sparePart: SparePart(id: part.reportPartID, partName: part.name, partNo: part.code),
));
setState(() {});
},
);
}),
children: List.generate(
_workOrder.sparePartsWorkOrders?.length,
(index) {
final spare = _workOrder.sparePartsWorkOrders[index];
Part part = Part(
id: spare.sparePart?.id,
reportPartID: spare.id,
code: spare.sparePart?.partNo,
name: spare.sparePart?.partName,
quantity: spare.qty,
);
return PartItem(
part: part,
onEdit: (qty) {
print("sss${spare.qty}");
print(qty);
spare.qty = qty;
},
onDelete: (part) {
_workOrder.sparePartsWorkOrders.remove(spare);
setState(() {});
},
);
},
),
),
const SizedBox(height: 16),
],

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/widgets/app_text_form_field.dart';
@ -8,6 +9,7 @@ import 'package:test_sa/views/widgets/status/report/service_report_maintenance_s
import 'package:test_sa/views/widgets/status/report/service_report_repair_location.dart';
import '../../../controllers/localization/localization.dart';
import '../../../controllers/providers/api/status_drop_down/report/service_report_maintenance_situation_provider.dart';
import '../../app_style/sizing.dart';
import '../../widgets/date_and_time/time_picker.dart';
import '../../widgets/titles/app_sub_title.dart';
@ -27,7 +29,11 @@ class _WorkOrderDetailsBottomSheetState extends State<WorkOrderDetailsBottomShee
@override
void initState() {
super.initState();
_workOrder.copyFrom(widget.subWorkOrder);
if (context.mounted) {
Provider.of<ServiceReportMaintenanceSituationProvider>(context, listen: false).reset();
}
}
@override
@ -66,7 +72,7 @@ class _WorkOrderDetailsBottomSheetState extends State<WorkOrderDetailsBottomShee
const ASubTitle("Assistant Employee"),
const SizedBox(height: 4),
ServiceReportAssistantEmployeeMenu(
initialValue: (_workOrder.assistantEmployees?.isEmpty ?? false) ? null : _workOrder.assistantEmployees?.first,
initialValue: (_workOrder.assistantEmployees?.isNotEmpty ?? false) ? _workOrder.assistantEmployees?.first : null,
onSelect: (assistantsEmployee) {
_workOrder.assistantEmployees = [assistantsEmployee];
},
@ -171,6 +177,7 @@ class _WorkOrderDetailsBottomSheetState extends State<WorkOrderDetailsBottomShee
_workOrder.calllastSituation = status;
}
},
woId: widget.subWorkOrder?.callRequest?.id?.toString(),
),
const SizedBox(height: 8),
const ASubTitle("Repair Location"),

@ -6,8 +6,9 @@ import 'package:test_sa/views/widgets/buttons/app_icon_button2.dart';
class PartItem extends StatefulWidget {
final Part part;
final Function(Part) onDelete;
final Function(int qty) onEdit;
const PartItem({Key key, this.part, this.onDelete}) : super(key: key);
const PartItem({Key key, this.part, this.onEdit, this.onDelete}) : super(key: key);
@override
_PartItemState createState() => _PartItemState();
@ -38,7 +39,7 @@ class _PartItemState extends State<PartItem> {
iconData: Icons.add,
color: Theme.of(context).primaryColor,
onPressed: () {
widget.part.quantity++;
widget.onEdit(++widget.part.quantity);
setState(() {});
},
),
@ -48,7 +49,7 @@ class _PartItemState extends State<PartItem> {
onPressed: widget.part.quantity < 2
? null
: () {
widget.part.quantity--;
widget.onEdit(--widget.part.quantity);
setState(() {});
},
),

@ -27,7 +27,7 @@ class _SingleAssistantEmployeeMenuState extends State<AssistantEmployeeMenu> {
void didUpdateWidget(covariant AssistantEmployeeMenu oldWidget) {
if (widget.initialStatus != null) {
final result = widget.statuses?.where((element) {
return element == widget.initialStatus;
return element?.user?.id == widget.initialStatus?.user?.id;
});
if (result.isNotEmpty) {
_selectedStatus = result.first;
@ -47,7 +47,7 @@ class _SingleAssistantEmployeeMenuState extends State<AssistantEmployeeMenu> {
void initState() {
if (widget.initialStatus != null) {
final result = widget.statuses?.where((element) {
return element == widget.initialStatus;
return element?.user?.id == widget.initialStatus?.user?.id;
});
if (result.isNotEmpty) _selectedStatus = result.first;
if (widget.initialStatus?.user?.id != _selectedStatus?.user?.id) {

@ -8,8 +8,14 @@ import 'package:test_sa/views/widgets/status/single_status_menu.dart';
class ServiceReportMaintenanceSituation extends StatelessWidget {
final Function(Lookup) onSelect;
final Lookup initialValue;
final String woId;
const ServiceReportMaintenanceSituation({Key key, @required this.onSelect, @required this.initialValue}) : super(key: key);
const ServiceReportMaintenanceSituation({
Key key,
@required this.onSelect,
@required this.initialValue,
@required this.woId,
}) : super(key: key);
@override
Widget build(BuildContext context) {
ServiceReportMaintenanceSituationProvider menuProvider = Provider.of<ServiceReportMaintenanceSituationProvider>(context);
@ -18,7 +24,7 @@ class ServiceReportMaintenanceSituation extends StatelessWidget {
isFailedLoading: menuProvider.operators == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
menuProvider.getOperators();
menuProvider.getOperators(woId);
},
child: SingleStatusMenu(
initialStatus: initialValue,

Loading…
Cancel
Save