Merge branch 'zaid_development_new' into majd_development_new

main_design2.0
nextwo 2 years ago
commit a85ea2d799

@ -202,8 +202,11 @@ class DeviceTransferProvider extends ChangeNotifier {
"senderEndDate": newModel.timer?.endAt?.toIso8601String(), "senderEndDate": newModel.timer?.endAt?.toIso8601String(),
"senderTravelingHours": newModel.travelingHours, "senderTravelingHours": newModel.travelingHours,
"senderAttachmentName": newModel?.signature ?? "", "senderAttachmentName": newModel?.signature ?? "",
"destSiteId": oldModel.receiver.client.id, "destSiteId": oldModel.receiver.client?.id,
"destDepartmentId": oldModel.receiver.department.id, "destDepartmentId": oldModel.receiver.department?.id,
"destBuildingId": oldModel.receiver.building?.id,
"destFloorId": oldModel.receiver.floor?.id,
"destRoom": oldModel.receiver?.room,
"receiverAssignedEmployeeId": oldModel.receiver.userId, "receiverAssignedEmployeeId": oldModel.receiver.userId,
"receiverMachineStatusId": oldModel.receiver.status.id ?? "", "receiverMachineStatusId": oldModel.receiver.status.id ?? "",
"receiverComment": oldModel.receiver.comment, "receiverComment": oldModel.receiver.comment,
@ -225,8 +228,11 @@ class DeviceTransferProvider extends ChangeNotifier {
"senderEndDate": oldModel.sender.timer?.endAt?.toIso8601String(), "senderEndDate": oldModel.sender.timer?.endAt?.toIso8601String(),
"senderTravelingHours": oldModel.sender.travelingHours, "senderTravelingHours": oldModel.sender.travelingHours,
"senderAttachmentName": oldModel.sender?.signature ?? "", "senderAttachmentName": oldModel.sender?.signature ?? "",
"destSiteId": newModel.client.id, "destSiteId": newModel.client?.id,
"destDepartmentId": newModel.department.id, "destDepartmentId": newModel.department?.id,
"destBuildingId": newModel.building?.id,
"destFloorId": newModel.floor?.id,
"destRoom": newModel.room,
"receiverAssignedEmployeeId": newModel.userId, "receiverAssignedEmployeeId": newModel.userId,
"receiverMachineStatusId": newModel.status?.id ?? "", "receiverMachineStatusId": newModel.status?.id ?? "",
"receiverComment": newModel.comment, "receiverComment": newModel.comment,
@ -237,7 +243,7 @@ class DeviceTransferProvider extends ChangeNotifier {
"receiverAttachmentName": newModel?.signature ?? "", "receiverAttachmentName": newModel?.signature ?? "",
}); });
} }
if (true) {}
//body.addAll(newModel.toJson(isSender)); //body.addAll(newModel.toJson(isSender));
print(body); print(body);
Response response; Response response;

@ -80,7 +80,6 @@ class RegularVisitsProvider extends ChangeNotifier {
List<Visit> visits = requestsListJson.map((request) => Visit.fromJson(request)).toList(); List<Visit> visits = requestsListJson.map((request) => Visit.fromJson(request)).toList();
this.visits ??= []; this.visits ??= [];
this.visits.addAll(visits); this.visits.addAll(visits);
sortMostRecent(this.visits);
notifyListeners(); notifyListeners();
if (visits.length == pageItemNumber) { if (visits.length == pageItemNumber) {
nextPage = true; nextPage = true;
@ -100,12 +99,6 @@ class RegularVisitsProvider extends ChangeNotifier {
return response.statusCode; return response.statusCode;
} }
void sortMostRecent(List<Visit> visits) {
visits.sort((prev, next) => (visitsSearch.mostRecent ?? false)
? DateTime.tryParse(next.createdOn).compareTo(DateTime.tryParse(prev.createdOn))
: DateTime.tryParse(prev.createdOn).compareTo(DateTime.tryParse(next.createdOn)));
}
/// return -2 if request in progress /// return -2 if request in progress
/// return -1 if error happen when sending request /// return -1 if error happen when sending request
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403

@ -9,6 +9,9 @@ class DeviceTransferInfo {
String comment; String comment;
Hospital client; Hospital client;
Department department; Department department;
Buildings building;
Floors floor;
String room;
String workingHours; String workingHours;
// DateTime startDate; // DateTime startDate;
@ -34,6 +37,9 @@ class DeviceTransferInfo {
this.status, this.status,
this.assignedEmployeeName, this.assignedEmployeeName,
this.timer, this.timer,
this.building,
this.room,
this.floor,
}); });
Map<String, String> toJson(bool isSender) { Map<String, String> toJson(bool isSender) {
@ -63,6 +69,19 @@ class DeviceTransferInfo {
userName = old.userName; userName = old.userName;
client = Hospital.fromHospital(old.client); client = Hospital.fromHospital(old.client);
department = Department.fromDepartment(old.department); department = Department.fromDepartment(old.department);
building = Buildings(
id: old.building?.id,
name: old.building?.name,
value: old.building?.value,
floors: old.building?.floors,
);
floor = Floors(
id: old.floor?.id,
name: old.floor?.name,
value: old.floor?.value,
departments: old.floor?.departments,
);
room = old.room;
workingHours = old.workingHours; workingHours = old.workingHours;
// startDate = old.startDate; // startDate = old.startDate;
// endDate = old.endDate; // endDate = old.endDate;
@ -94,6 +113,15 @@ class DeviceTransferInfo {
id: parsedJson["${key}DepartmentId"], id: parsedJson["${key}DepartmentId"],
name: parsedJson["${key}DepartmentName"], name: parsedJson["${key}DepartmentName"],
), ),
building: Buildings(
id: parsedJson["${key}BuildingId"],
name: parsedJson["${key}BuildingName"],
),
floor: Floors(
id: parsedJson["${key}FloorId"],
name: parsedJson["${key}FloorName"],
),
room: parsedJson["${key}Room"],
status: Lookup( status: Lookup(
id: parsedJson["${key}status"], id: parsedJson["${key}status"],
name: parsedJson["${key}status"], name: parsedJson["${key}status"],

@ -75,8 +75,8 @@ class Pentry {
Map<String, dynamic> toMap(int visitId) { Map<String, dynamic> toMap(int visitId) {
Map<String, dynamic> map = {}; Map<String, dynamic> map = {};
map["visitStatusId"] = ppmVisitStatus?.id.toString(); map["visitStatusId"] = ppmVisitStatus?.id?.toString();
if (status != null) map["deviceStatusId"] = status?.id.toString(); if (status != null) map["deviceStatusId"] = status?.id?.toString();
if (travelingHours != null) map["travelingHours"] = travelingHours; if (travelingHours != null) map["travelingHours"] = travelingHours;
//if(imageFile != null) map["file_attachement"] = base64Encode(imageFile.readAsBytesSync()); //if(imageFile != null) map["file_attachement"] = base64Encode(imageFile.readAsBytesSync());
map["actualDate"] = actualVisitDate.toIso8601String(); map["actualDate"] = actualVisitDate.toIso8601String();
@ -87,7 +87,7 @@ class Pentry {
map["workingHours"] = (timer.durationInSecond / 60 / 60).toStringAsFixed(5); map["workingHours"] = (timer.durationInSecond / 60 / 60).toStringAsFixed(5);
} }
if (files?.isNotEmpty ?? false) { if (files?.isNotEmpty ?? false) {
map["vAttachments"] = files.map((file) => {"attachmentName": (file.path.split("/").last + base64Encode(file.readAsBytesSync()))}).toList(); map["vAttachments"] = files.map((file) => {"attachmentName": _isLocalUrl(file.path) ? (file.path.split("/").last + "|" + base64Encode(file.readAsBytesSync())) : file.path}).toList();
} }
map["travelingHours"] = travelingHours; map["travelingHours"] = travelingHours;
// if(contacts?.isNotEmpty == true) { // if(contacts?.isNotEmpty == true) {
@ -105,6 +105,11 @@ class Pentry {
return map; return map;
} }
bool _isLocalUrl(String url) {
if (url?.isEmpty != false) return false;
return url.startsWith("/") || url.startsWith("file://") || url.substring(1).startsWith(':\\');
}
factory Pentry.fromMap(Map<String, dynamic> map) { factory Pentry.fromMap(Map<String, dynamic> map) {
// List<Contact> contacts = []; // List<Contact> contacts = [];
// if(map['contacts'] != null){ // if(map['contacts'] != null){
@ -120,6 +125,7 @@ class Pentry {
List<String> files = []; List<String> files = [];
if (map["vAttachments"] != null) if (map["vAttachments"] is List) { if (map["vAttachments"] != null) if (map["vAttachments"] is List) {
List list = map["vAttachments"]; List list = map["vAttachments"];
list.removeWhere((element) => (element["attachmentURL"]?.toString() ?? "").isEmpty);
files = list.map((e) => URLs.getFileUrl(e["attachmentName"])).toList(); files = list.map((e) => URLs.getFileUrl(e["attachmentName"])).toList();
} }
List<PPMCheckList> ppmCheckLists = []; List<PPMCheckList> ppmCheckLists = [];
@ -132,7 +138,7 @@ class Pentry {
calibrationTools = (map['vCalibrationTools'] as List<dynamic>).map((e) => CalibrationTool.fromMap(e as Map<String, dynamic>)).toList(); calibrationTools = (map['vCalibrationTools'] as List<dynamic>).map((e) => CalibrationTool.fromMap(e as Map<String, dynamic>)).toList();
} }
return Pentry( return Pentry(
status: Lookup(id: map["taskStatusId"], name: map["taskStatusName"]), status: Lookup(id: map["deviceStatusId"], name: map["deviceStatusName"]),
ppmVisitStatus: Lookup(id: map["visitStatusId"], name: map["visitStatusName"]), ppmVisitStatus: Lookup(id: map["visitStatusId"], name: map["visitStatusName"]),
actualVisitDate: DateTime.tryParse(map["actualDate"] ?? ""), actualVisitDate: DateTime.tryParse(map["actualDate"] ?? ""),
expectedVisitDate: DateTime.tryParse(map["expectedDate"] ?? ""), expectedVisitDate: DateTime.tryParse(map["expectedDate"] ?? ""),
@ -146,7 +152,11 @@ class Pentry {
ppmCheckLists: ppmCheckLists, ppmCheckLists: ppmCheckLists,
calibrationTools: calibrationTools, calibrationTools: calibrationTools,
pmKits: pmKits, pmKits: pmKits,
files: files.map((e) => File(e)).toList(), files: files?.map((e) {
print("${map["id"]}:${files?.length}:e:$e");
return File(e);
})?.toList() ??
[],
signatureNurse: URLs.getFileUrl(map["nurseSignature"]), signatureNurse: URLs.getFileUrl(map["nurseSignature"]),
signatureEngineer: URLs.getFileUrl(map["engSignature"]), signatureEngineer: URLs.getFileUrl(map["engSignature"]),
); );

@ -144,13 +144,13 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
ASmallButton( ASmallButton(
text: _subtitle.edit, text: _subtitle.edit,
onPressed: (_isSender) onPressed: (_isSender)
? () { ? ( _model.sender.status?.name=="Closed" ? null: () {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => UpdateDeviceTransfer( builder: (_) => UpdateDeviceTransfer(
model: _model, model: _model,
isSender: true, isSender: true,
))); )));
} })
: null, : null,
), ),
], ],
@ -170,13 +170,13 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
ASmallButton( ASmallButton(
text: _subtitle.edit, text: _subtitle.edit,
onPressed: (_isReceiver) onPressed: (_isReceiver)
? () { ? ( _model.receiver.status?.name=="Closed" ? null: () {
Navigator.of(context).push(MaterialPageRoute( Navigator.of(context).push(MaterialPageRoute(
builder: (_) => UpdateDeviceTransfer( builder: (_) => UpdateDeviceTransfer(
model: _model, model: _model,
isSender: false, isSender: false,
))); )));
} })
: null, : null,
), ),
], ],

@ -156,43 +156,13 @@ class _RequestDeviceTransferState extends State<RequestDeviceTransfer> {
}, },
), ),
if (_formModel.device != null) 8.height, if (_formModel.device != null) 8.height,
if (_formModel.device != null) const ASubTitle("Asset Site"), if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Site", value: _formModel.device.hospital?.name),
if (_formModel.device != null)
Container(
width: double.infinity,
alignment: Alignment.center,
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
decoration: BoxDecoration(
color: AColors.inputFieldBackgroundColor,
border: Border.all(
color: const Color(0xffefefef),
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
// boxShadow: const [
// AppStyle.boxShadow
// ]
),
child: ASubTitle(_formModel.device?.hospital?.name),
),
if (_formModel.device != null) 4.height, if (_formModel.device != null) 4.height,
if (_formModel.device != null && _formModel.device.destDepartmentName != null) const ASubTitle("Asset Department"), if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Department", value: _formModel.device.destDepartmentName),
if (_formModel.device != null && _formModel.device.destDepartmentName != null) if (_formModel.device != null) 4.height,
Container( if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Floor", value: _formModel.device.destFloor),
width: double.infinity, if (_formModel.device != null) 4.height,
alignment: Alignment.center, if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Room", value: _formModel.device.destRoom),
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
decoration: BoxDecoration(
color: AColors.inputFieldBackgroundColor,
border: Border.all(
color: const Color(0xffefefef),
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
// boxShadow: const [
// AppStyle.boxShadow
// ]
),
child: ASubTitle(_formModel.device.destDepartmentName.toString()),
),
if (_formModel.device != null) 8.height, if (_formModel.device != null) 8.height,
// const SizedBox(height: 8,), // const SizedBox(height: 8,),
// const ASubTitle("Sender Department"), // const ASubTitle("Sender Department"),
@ -323,3 +293,31 @@ class _RequestDeviceTransferState extends State<RequestDeviceTransfer> {
); );
} }
} }
class AdditionalAssetInfo extends StatelessWidget {
final String title, value;
const AdditionalAssetInfo({@required this.title, @required this.value, Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle(title ?? ""),
Container(
width: double.infinity,
alignment: Alignment.center,
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
decoration: BoxDecoration(
color: AColors.inputFieldBackgroundColor,
border: Border.all(
color: const Color(0xffefefef),
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
),
child: ASubTitle(value ?? ""),
),
],
);
}
}

@ -34,7 +34,7 @@ class GasRefillDetails extends StatefulWidget {
} }
class _GasRefillDetailsState extends State<GasRefillDetails> { class _GasRefillDetailsState extends State<GasRefillDetails> {
final GasRefillModel _model = GasRefillModel(); GasRefillModel _model = GasRefillModel();
bool _enableEdit = false; bool _enableEdit = false;
bool _validate = false; bool _validate = false;
UserProvider _userProvider; UserProvider _userProvider;
@ -75,7 +75,7 @@ class _GasRefillDetailsState extends State<GasRefillDetails> {
@override @override
void initState() { void initState() {
_model.fromGasRefillModel(widget.model); _model?.fromGasRefillModel(widget.model);
super.initState(); super.initState();
} }
@ -121,24 +121,28 @@ class _GasRefillDetailsState extends State<GasRefillDetails> {
color: Theme.of(context).colorScheme.onPrimary, color: Theme.of(context).colorScheme.onPrimary,
buttonSize: 42, buttonSize: 42,
backgroundColor: AColors.green, backgroundColor: AColors.green,
onPressed: () async { onPressed: (widget.model.status?.value ?? 0) == 2
// _enableEdit = !_enableEdit; ? null
print(widget.model.startDate); : () async {
_model.fromGasRefillModel(widget.model); // _enableEdit = !_enableEdit;
print(widget.model.startDate); print(widget.model.startDate);
// setState(() {}); _model?.fromGasRefillModel(widget.model);
Navigator.push( print(widget.model.startDate);
context, // setState(() {});
MaterialPageRoute( Navigator.push(
builder: (context) => RequestGasRefill( context,
gasRefillModel: widget.model, MaterialPageRoute(
), builder: (context) => RequestGasRefill(
), gasRefillModel: widget.model,
).then((value) { ),
_model.status = value; ),
}); ).then((value) {
setState(() {}); if (value != null) {
}, _model = value;
}
});
setState(() {});
},
), ),
const SizedBox( const SizedBox(
width: 16, width: 16,
@ -168,6 +172,10 @@ class _GasRefillDetailsState extends State<GasRefillDetails> {
title: "Floor", title: "Floor",
info: _model.floor?.name, info: _model.floor?.name,
), ),
RequestInfoRow(
title: "Department",
info: _model.department?.departmentName,
),
RequestInfoRow( RequestInfoRow(
title: _subtitle.startDate, title: _subtitle.startDate,
info: _model.startDate == null ? null : "${DateFormat.yMd().format(_model.startDate)} ${DateFormat.Hms().format(_model.startDate)}", info: _model.startDate == null ? null : "${DateFormat.yMd().format(_model.startDate)} ${DateFormat.Hms().format(_model.startDate)}",

@ -104,7 +104,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
Fluttertoast.showToast( Fluttertoast.showToast(
msg: _subtitle.requestCompleteSuccessfully, msg: _subtitle.requestCompleteSuccessfully,
); );
Navigator.of(context).pop(_formModel.status); Navigator.of(context).pop(_formModel);
setState(() {}); setState(() {});
} else { } else {
String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle);
@ -294,6 +294,8 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
onChange: (timer) async { onChange: (timer) async {
_gasRefillProvider.timer = timer; _gasRefillProvider.timer = timer;
_formModel.workingHours = num.tryParse((((timer?.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2) ?? "0"); _formModel.workingHours = num.tryParse((((timer?.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2) ?? "0");
_formModel.startDate = timer.startAt;
_formModel.endDate = timer.endAt;
return true; return true;
}, },
), ),
@ -533,12 +535,12 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
if (widget.gasRefillModel != null) if (widget.gasRefillModel != null)
ESignature( ESignature(
oldSignature: _formModel.signatureEngineer, oldSignature: _formModel.signatureEngineer,
newSignature: _formModel.localNurseSignature, newSignature: _formModel.localEngineerSignature,
onChange: (signature) { onChange: (signature) {
if (signature == null || signature.isEmpty) { if (signature == null || signature.isEmpty) {
return; return;
} }
_formModel.localNurseSignature = signature; _formModel.localEngineerSignature = signature;
_formModel.signatureEngineer = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; _formModel.signatureEngineer = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
}, },
), ),

@ -545,7 +545,6 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
ServiceReportFaultDescription( ServiceReportFaultDescription(
requestId: widget.request?.id, requestId: widget.request?.id,
initialValue: _serviceReport.faultDescription, initialValue: _serviceReport.faultDescription,
enabled: false,
onSelect: (status) { onSelect: (status) {
if (status != null) { if (status != null) {
_serviceReport.faultDescription = status; _serviceReport.faultDescription = status;

@ -716,9 +716,10 @@ class _EditServiceReportState extends State<EditServiceReport> with TickerProvid
requestId: widget.request?.id, requestId: widget.request?.id,
initialValue: _serviceReport.faultDescription, initialValue: _serviceReport.faultDescription,
onSelect: (status) { onSelect: (status) {
print("faluttt:${status?.toJson()}");
_serviceReport.faultDescription = status; _serviceReport.faultDescription = status;
if (mounted) setState(() {}); WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
if (mounted) setState(() {});
});
}, },
), ),
const SizedBox(height: 8), const SizedBox(height: 8),

@ -57,7 +57,9 @@ class _PentryInfoFormState extends State<PentryInfoForm> {
PentryVisitsStatusMenu( PentryVisitsStatusMenu(
initialValue: widget.model.ppmVisitStatus, initialValue: widget.model.ppmVisitStatus,
onSelect: (status) { onSelect: (status) {
widget.model.ppmVisitStatus = status; if (status != null) {
widget.model.ppmVisitStatus = status;
}
}, },
), ),
const SizedBox( const SizedBox(

@ -7,9 +7,8 @@ class FaultDescriptionMenu extends StatefulWidget {
final List<FaultDescription> statuses; final List<FaultDescription> statuses;
final FaultDescription initialStatus; final FaultDescription initialStatus;
final Function(FaultDescription) onSelect; final Function(FaultDescription) onSelect;
final bool enabled;
const FaultDescriptionMenu({Key key, this.statuses, this.onSelect, this.initialStatus, this.enabled}) : super(key: key); const FaultDescriptionMenu({Key key, this.statuses, this.onSelect, this.initialStatus}) : super(key: key);
@override @override
_SingleStatusMenuState createState() => _SingleStatusMenuState(); _SingleStatusMenuState createState() => _SingleStatusMenuState();
@ -72,42 +71,39 @@ class _SingleStatusMenuState extends State<FaultDescriptionMenu> {
// AppStyle.boxShadow // AppStyle.boxShadow
// ] // ]
), ),
child: IgnorePointer( child: DropdownButton<FaultDescription>(
ignoring: !widget.enabled, value: _selectedStatus,
child: DropdownButton<FaultDescription>( iconSize: 24,
value: _selectedStatus, icon: const Icon(Icons.keyboard_arrow_down_rounded),
iconSize: 24, elevation: 0,
icon: const Icon(Icons.keyboard_arrow_down_rounded), isExpanded: true,
elevation: 0, hint: Text(
isExpanded: true, "Select",
hint: Text( style: Theme.of(context).textTheme.subtitle1.copyWith(color: widget.statuses.isEmpty ? Colors.grey : null),
"Select",
style: Theme.of(context).textTheme.subtitle1,
),
style: TextStyle(color: Theme.of(context).primaryColor),
underline: SizedBox.shrink(),
onChanged: (FaultDescription newValue) {
setState(() {
_selectedStatus = newValue;
});
widget.onSelect(newValue);
},
items: widget.statuses.map<DropdownMenuItem<FaultDescription>>(
(FaultDescription value) {
return DropdownMenuItem<FaultDescription>(
value: value,
child: Text(
value.defectName ?? "",
style: Theme.of(context).textTheme.subtitle1.copyWith(
color: Theme.of(context).primaryColor,
fontSize: 11,
//fontWeight: FontWeight.bold
),
),
);
},
).toList(),
), ),
style: TextStyle(color: Theme.of(context).primaryColor),
underline: const SizedBox.shrink(),
onChanged: (FaultDescription newValue) {
setState(() {
_selectedStatus = newValue;
});
widget.onSelect(newValue);
},
items: widget.statuses.map<DropdownMenuItem<FaultDescription>>(
(FaultDescription value) {
return DropdownMenuItem<FaultDescription>(
value: value,
child: Text(
value.defectName ?? "",
style: Theme.of(context).textTheme.subtitle1.copyWith(
color: Theme.of(context).primaryColor,
fontSize: 11,
//fontWeight: FontWeight.bold
),
),
);
},
).toList(),
), ),
); );
} }

@ -11,9 +11,9 @@ class ServiceReportFaultDescription extends StatelessWidget {
final String requestId; final String requestId;
final Function(FaultDescription) onSelect; final Function(FaultDescription) onSelect;
final FaultDescription initialValue; final FaultDescription initialValue;
final bool enabled;
const ServiceReportFaultDescription({Key key, this.requestId, this.onSelect, this.initialValue, this.enabled = true}) : super(key: key); const ServiceReportFaultDescription({Key key, this.requestId, this.onSelect, this.initialValue}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
SettingProvider settingProvider = Provider.of<SettingProvider>(context); SettingProvider settingProvider = Provider.of<SettingProvider>(context);
@ -27,19 +27,11 @@ class ServiceReportFaultDescription extends StatelessWidget {
menuProvider.reset(); menuProvider.reset();
await menuProvider.getCallRequestForWorkOrder(user: userProvider.user, host: settingProvider.host, requestId: requestId); await menuProvider.getCallRequestForWorkOrder(user: userProvider.user, host: settingProvider.host, requestId: requestId);
}, },
child: Builder(builder: (context) { child: FaultDescriptionMenu(
if (initialValue == null && !enabled && menuProvider.items.isNotEmpty) { initialStatus: initialValue,
WidgetsBinding.instance.addPostFrameCallback((timeStamp) { statuses: menuProvider.items ?? [],
onSelect(menuProvider.items.first); onSelect: onSelect,
}); ),
}
return FaultDescriptionMenu(
initialStatus: initialValue,
statuses: menuProvider.items,
onSelect: onSelect,
enabled: enabled,
);
}),
); );
} }
} }

Loading…
Cancel
Save