diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 1713c757..0e2d06f4 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -128,6 +128,7 @@ "unite": "Unit", "uniteRequired": "Unit Required", "visitDate": "Visit Date", + "returnToService": "Return to service", "whatsApp": "WhatsApp", "workPerformed": "Work Performed", "actualDate": "Actual Date", diff --git a/lib/models/service_request/search_work_order.dart b/lib/models/service_request/search_work_order.dart index f3b37916..a3c54b30 100644 --- a/lib/models/service_request/search_work_order.dart +++ b/lib/models/service_request/search_work_order.dart @@ -1,3 +1,5 @@ +import 'dart:typed_data'; + import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/service_request/service_report.dart'; import 'package:test_sa/models/service_request/spare_parts.dart'; @@ -189,7 +191,9 @@ class SearchWorkOrder { Lookup equipmentStatus; List suppEngineerWorkOrders; String engSignature; + Uint8List localEngSignature; String nurseSignature; + Uint8List localNurseSignature; WoParent woParentDto; TimerModel timer; String mrNumber; diff --git a/lib/new_views/common_widgets/app_drawer.dart b/lib/new_views/common_widgets/app_drawer.dart index 392f14f0..57ee0c21 100644 --- a/lib/new_views/common_widgets/app_drawer.dart +++ b/lib/new_views/common_widgets/app_drawer.dart @@ -57,7 +57,7 @@ class AppDrawer extends StatelessWidget { ], ), 8.height, - userProvider.user.username.heading3(context).custom(fontWeight: FontWeight.w600), + (userProvider.user?.username ?? "").heading3(context).custom(fontWeight: FontWeight.w600), if ((userProvider.user?.email ?? "").isNotEmpty) (userProvider.user?.email).heading6(context).custom(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), 18.height, 1.divider, @@ -75,15 +75,15 @@ class AppDrawer extends StatelessWidget { children: [ drawerItem("drawer_notification", context.translation.notifications, context).onPress(() => Navigator.of(context).pushNamed(NotificationsPage.id)), 18.height, - drawerItem("help_center", context.translation.helpCenter, context) /*.onPress(() => Navigator.of(context).pushNamed(HelpCenterPage.id))*/, - 18.height, - drawerItem("rate_us", context.translation.rateUs, context), - 18.height, + // drawerItem("help_center", context.translation.helpCenter, context) /*.onPress(() => Navigator.of(context).pushNamed(HelpCenterPage.id))*/, + // 18.height, + // drawerItem("rate_us", context.translation.rateUs, context), + // 18.height, drawerItem("setting", context.translation.settings, context).onPress(() => Navigator.of(context).pushNamed(SettingsPage.id)), - 18.height, - drawerItem("report", context.translation.reportBg, context) /*.onPress(() => Navigator.of(context).pushNamed(ReportBugPage.id))*/, - 18.height, - drawerItem("whats_new", context.translation.whatsNew, context), + // 18.height, + // drawerItem("report", context.translation.reportBg, context) /*.onPress(() => Navigator.of(context).pushNamed(ReportBugPage.id))*/, + // 18.height, + // drawerItem("whats_new", context.translation.whatsNew, context), ], ).expanded, drawerItem("logout", context.translation.logout, context, color: AppColor.red50).onPress(() async { @@ -91,7 +91,7 @@ class AppDrawer extends StatelessWidget { context: context, builder: (_) => AAlertDialog(title: context.translation.signOut, content: context.translation.logoutAlert), ); - if (result) { + if (result ?? false) { settingProvider.resetSettings(); userProvider.reset(); Navigator.of(context).pop(); diff --git a/lib/new_views/pages/land_page/dashboard_page.dart b/lib/new_views/pages/land_page/dashboard_page.dart index e8359f08..efa27cce 100644 --- a/lib/new_views/pages/land_page/dashboard_page.dart +++ b/lib/new_views/pages/land_page/dashboard_page.dart @@ -106,7 +106,7 @@ class _DashboardPageState extends State { style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), ), Text( - user.username ?? "Eng Mahmoud", + user?.username ?? "", style: AppTextStyles.heading2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50, fontWeight: FontWeight.w600), ), 24.height, diff --git a/lib/views/pages/device_transfer/device_transfer_details.dart b/lib/views/pages/device_transfer/device_transfer_details.dart index 932c8afc..9290e58f 100644 --- a/lib/views/pages/device_transfer/device_transfer_details.dart +++ b/lib/views/pages/device_transfer/device_transfer_details.dart @@ -64,53 +64,52 @@ class _DeviceTransferDetailsState extends State { onRefresh: () async {}, child: Column( children: [ - _buildDetailsCard( - Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ - context.translation.transferDetails.heading5(context), - 8.height, - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - _buildTextWidget('${context.translation.assetName} : ${_model?.assetName ??""}'), - _buildTextWidget('${context.translation.assetNumber} : ${_model?.assetNumber??""}'), - _buildTextWidget('${context.translation.model} : ${_model?.modelName??""}'), - _buildTextWidget('${context.translation.sn} : ${_model?.assetSerialNo??""}'), - ], - ), - 8.height, - ], - ).expanded, - Column( - crossAxisAlignment: CrossAxisAlignment.end, - children: [ - /// TBD - // Row( - // children: [ - // /// TBD - // // StatusLabel( - // // label: "", - // // id: 0, - // // textColor: AColors.getPriorityStatusTextColor(0), - // // backgroundColor: AColors.getPriorityStatusColor(0)), - // 8.width, - // - // /// TBD - // //StatusLabel(label: '', textColor: AColors.getRequestStatusTextColor(0), backgroundColor: AColors.getRequestStatusColor(0)), - // ], - // ), - 1.width, - Text(_model?.createdOn != null ? _model.createdOn.toServiceRequestCardFormat : "", - textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : Color(0xFF3B3D4A))), - ], - ), - ], - ).paddingAll(14), - ), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + context.translation.transferDetails.heading5(context), + 8.height, + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildTextWidget('${context.translation.assetName} : ${_model?.assetName ?? ""}'), + _buildTextWidget('${context.translation.assetNumber} : ${_model?.assetNumber ?? ""}'), + _buildTextWidget('${context.translation.model} : ${_model?.modelName ?? ""}'), + _buildTextWidget('${context.translation.sn} : ${_model?.assetSerialNo ?? ""}'), + ], + ), + 8.height, + ], + ).expanded, + Column( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + /// TBD + // Row( + // children: [ + // /// TBD + // // StatusLabel( + // // label: "", + // // id: 0, + // // textColor: AColors.getPriorityStatusTextColor(0), + // // backgroundColor: AColors.getPriorityStatusColor(0)), + // 8.width, + // + // /// TBD + // //StatusLabel(label: '', textColor: AColors.getRequestStatusTextColor(0), backgroundColor: AColors.getRequestStatusColor(0)), + // ], + // ), + 1.width, + Text(_model?.createdOn != null ? _model.createdOn.toServiceRequestCardFormat : "", + textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : Color(0xFF3B3D4A))), + ], + ), + ], + ).toShadowContainer(context), + 8.height, // sender card _buildCard( isSender: true, @@ -129,6 +128,7 @@ class _DeviceTransferDetailsState extends State { backgroundColor: AColors.getRequestStatusColor(getIdstatus(_model.senderMachineStatusName))) : null, ), + 8.height, // receiver card _buildCard( isSender: false, @@ -148,7 +148,7 @@ class _DeviceTransferDetailsState extends State { : null, ), ], - ), + ).paddingAll(16), ), ); } @@ -182,42 +182,39 @@ class _DeviceTransferDetailsState extends State { ], ), if ((_userProvider.user?.type == UsersTypes.engineer)) - if(isSender ? (_model?.senderMachineStatusName?.toLowerCase() != "closed" && _model?.senderMachineStatusName?.toLowerCase() != "completed") - : (_model?.receiverMachineStatusName?.toLowerCase() != "closed" && _model?.receiverMachineStatusName?.toLowerCase() != "completed")) - CircleAvatar( - radius: 25, - backgroundColor: AppColor.neutral30, - child: CircleAvatar( - radius: 24, - backgroundColor: Colors.white, - child: Padding( - padding: const EdgeInsets.only(left: 3.0), - child: SvgPicture.asset('assets/images/update.svg'), + if (isSender + ? (_model?.senderMachineStatusName?.toLowerCase() != "closed" && _model?.senderMachineStatusName?.toLowerCase() != "completed") + : (_model?.receiverMachineStatusName?.toLowerCase() != "closed" && _model?.receiverMachineStatusName?.toLowerCase() != "completed")) + CircleAvatar( + radius: 25, + backgroundColor: AppColor.neutral30, + child: CircleAvatar( + radius: 24, + backgroundColor: Colors.white, + child: Padding( + padding: const EdgeInsets.only(left: 3.0), + child: SvgPicture.asset('assets/images/update.svg'), + ), ), - ), - ).onPress(isSender - ? () { - Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender))); - } - : () { - Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender))); - }), - ], - ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - _buildTextWidget('${context.translation.site} : $site'), - _buildTextWidget('${context.translation.unite} : $unit'), - 8.height, - const Divider(color: Color(0xFFEAF1F4), height: 1, thickness: 1), - 8.height, - _buildTextWidget(comment), + ).onPress(isSender + ? () { + Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender))); + } + : () { + Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender))); + }), ], ), - 8.height, + _buildTextWidget('${context.translation.site} : $site'), + _buildTextWidget('${context.translation.unite} : $unit'), + if (comment != null && comment.isNotEmpty) ...[ + 8.height, + const Divider(color: Color(0xFFEAF1F4), height: 1, thickness: 1), + 8.height, + _buildTextWidget(comment), + ] ], - ).toShadowContainer(context).paddingOnly(top: 14, start: 14, end: 14); + ).toShadowContainer(context); } int getIdstatus(String status) { diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index 6b0347e6..a5aa5e2d 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -174,7 +174,6 @@ class _UpdateDeviceTransferState extends State { ), 8.height, ESignature( - title: "Signature", oldSignature: widget.isSender ? widget.model.senderEngSignature : widget.model.receiverEngSignature, newSignature: _signature, @@ -184,8 +183,6 @@ class _UpdateDeviceTransferState extends State { widget.isSender ? _formModel.senderEngSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : _formModel.receiverEngSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; - - base64Encode(signature); }, ), ], diff --git a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart index 796e1b9b..eafc914b 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -25,6 +25,7 @@ import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import '../../../attachment.dart'; import '../../../controllers/api_routes/http_status_manger.dart'; import '../../../controllers/providers/api/status_drop_down/report/service_report_fault_description_provider.dart'; +import '../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart'; import '../../../models/service_request/spare_parts.dart'; import '../../../models/service_request/supp_engineer_work_orders.dart'; import '../../../models/service_request/supplier_details.dart'; @@ -35,6 +36,7 @@ import '../../../new_views/common_widgets/single_item_drop_down_menu.dart'; import '../../../providers/loading_list_notifier.dart'; import '../../../providers/work_order/reason_provider.dart'; import '../../widgets/date_and_time/date_picker.dart'; +import '../../widgets/e_signature/e_signature.dart'; import '../../widgets/status/report/service_report_assistant_employee_menu.dart'; import '../../widgets/status/report/service_report_last_call.dart'; import '../../widgets/timer/app_timer.dart'; @@ -57,6 +59,7 @@ class _CreateSubWorkOrderPageState extends State { bool _isLoading = false; bool _showVendorFields = false; SuppEngineerWorkOrders engineer; + SupplierDetails initialSupplier; @override void initState() { @@ -79,6 +82,7 @@ class _CreateSubWorkOrderPageState extends State { CallRequest _callRequestForWorkOrder; Future getAssetType() async { + Provider.of(context, listen: false).reset(); final serviceRequestProvider = Provider.of(context); Provider.of(context, listen: false).reset(); assetTypesProvider = Provider.of(context, listen: false); @@ -88,6 +92,7 @@ class _CreateSubWorkOrderPageState extends State { _subWorkOrders.copyDetails(subWoDetails); _serviceReport.equipmentStatus = subWoDetails.equipmentStatus; _serviceReport.reason = subWoDetails.reason; + initialSupplier = subWoDetails.supplier; // _serviceReport.faultDescription = subWoDetails.faultDescription; } await assetTypesProvider.getTypes(); @@ -140,7 +145,7 @@ class _CreateSubWorkOrderPageState extends State { // WorkOrderDetails(item: widget.workOrder, assetType: _subWorkOrders?.assetType), 8.height, ADatePicker( - label: context.translation.visitDate, + label: context.translation.returnToService, date: DateTime.tryParse(_subWorkOrders.visitDate ?? ""), onDatePicker: (date) { _subWorkOrders.visitDate = date?.toIso8601String(); @@ -179,12 +184,14 @@ class _CreateSubWorkOrderPageState extends State { ServiceReportLastCallsMenu( report: _serviceReport, title: context.translation.callLastSituation, - parentId: widget.workOrder?.callRequest?.id?.toString(), + parentId: widget.workOrder?.id?.toString(), onSelect: (status) { _serviceReport.calllastSituation = status; if (checkVendorFieldsVisibility(status)) { _subWorkOrders.supplier ??= SupplierDetails(id: _subWorkOrders?.supplier?.id); engineer = null; + } else { + _subWorkOrders.supplier = initialSupplier; } if (status?.value == 12 || _subWorkOrders.calllastSituation?.value == 12) { _subWorkOrders.calllastSituation = status; @@ -195,6 +202,7 @@ class _CreateSubWorkOrderPageState extends State { setState(() {}); }, ), + if (_subWorkOrders.calllastSituation?.value == 12) const SizedBox(height: 8), if (_subWorkOrders.calllastSituation?.value == 12) AppTextFormField( labelText: context.translation.mrNumber, @@ -272,6 +280,20 @@ class _CreateSubWorkOrderPageState extends State { ), 8.height, MultiFilesPicker(label: context.translation.attachImage, files: _files), + 8.height, + ESignature( + title: context.translation.engSign, + oldSignature: _subWorkOrders.engSignature, + newSignature: _subWorkOrders.localEngSignature, + onSaved: (signature) { + // if (signature == null || signature.isEmpty) { + // setState(() {}); + // return; + // } + _subWorkOrders.localEngSignature = signature; + _subWorkOrders.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; + }, + ), ], ), ), diff --git a/lib/views/pages/user/gas_refill/request_gas_refill.dart b/lib/views/pages/user/gas_refill/request_gas_refill.dart index 94d64b01..8d682b3e 100644 --- a/lib/views/pages/user/gas_refill/request_gas_refill.dart +++ b/lib/views/pages/user/gas_refill/request_gas_refill.dart @@ -189,6 +189,7 @@ class _RequestGasRefillState extends State { crossAxisAlignment: CrossAxisAlignment.stretch, children: [ SingleChildScrollView( + padding: const EdgeInsets.all(16), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ @@ -204,8 +205,8 @@ class _RequestGasRefillState extends State { '${context.translation.quantity}: ${widget.gasRefillModel.gazRefillDetails[0].requestedQty}'.bodyText(context), '${context.translation.site}: ${widget.gasRefillModel.site.name}'.bodyText(context), ], - ).paddingAll(16), - 12.height, + ).toShadowContainer(context), + 8.height, AppTimer( label: context.translation.workingHours, timer: _formModel.timer, @@ -215,7 +216,7 @@ class _RequestGasRefillState extends State { return true; }, ), - 12.height, + 8.height, SingleItemDropDownMenu( context: context, title: context.translation.reportStatus, @@ -224,7 +225,7 @@ class _RequestGasRefillState extends State { _formModel.status = value; }, ), - 12.height, + 8.height, AppTextFormField( labelText: context.translation.deliveredQuantity, onSaved: (value) { @@ -234,7 +235,7 @@ class _RequestGasRefillState extends State { controller: _deliveredQuantityController, validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only", ), - 12.height, + 8.height, /// TBD AppTextFormField( @@ -269,7 +270,7 @@ class _RequestGasRefillState extends State { }, ), ], - ).toShadowContainer(context).paddingAll(16), + ), ).expanded, AppFilledButton( label: widget.gasRefillModel == null ? context.translation.submit : context.translation.update, diff --git a/lib/views/pages/user/requests/work_order/create_service_report.dart b/lib/views/pages/user/requests/work_order/create_service_report.dart index 94698ec6..b48bdba4 100644 --- a/lib/views/pages/user/requests/work_order/create_service_report.dart +++ b/lib/views/pages/user/requests/work_order/create_service_report.dart @@ -23,6 +23,7 @@ import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart'; import 'package:test_sa/views/widgets/status/report/service_report_last_call.dart'; +import '../../../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart'; import '../../../../../controllers/providers/api/status_drop_down/report/service_types_provider.dart'; import '../../../../../models/lookup.dart'; import '../../../../../models/service_request/spare_parts.dart'; @@ -69,6 +70,9 @@ class _CreateServiceReportState extends State with TickerPr sparePartsWorkOrders: [], ); super.initState(); + if (context.mounted) { + Provider.of(context, listen: false).reset(); + } // _isLoading = true; } @@ -135,7 +139,7 @@ class _CreateServiceReportState extends State with TickerPr ), 8.height, ADatePicker( - label: context.translation.visitDate, + label: context.translation.returnToService, date: DateTime.tryParse(_serviceReport.visitDate ?? ""), onDatePicker: (date) { _serviceReport.visitDate = date?.toIso8601String(); diff --git a/lib/views/pages/user/requests/work_order/edit_service_report.dart b/lib/views/pages/user/requests/work_order/edit_service_report.dart index 8e03b3a1..0eb138c5 100644 --- a/lib/views/pages/user/requests/work_order/edit_service_report.dart +++ b/lib/views/pages/user/requests/work_order/edit_service_report.dart @@ -124,7 +124,7 @@ class _EditServiceReportState extends State with TickerProvid ), 8.height, ADatePicker( - label: context.translation.visitDate, + label: context.translation.returnToService, date: DateTime.tryParse(_serviceReport.visitDate ?? ""), onDatePicker: (date) { _serviceReport.visitDate = date?.toIso8601String(); diff --git a/lib/views/pages/user/requests/work_order/work_orders_list_page.dart b/lib/views/pages/user/requests/work_order/work_orders_list_page.dart index 0425d7ad..ebcb56e2 100644 --- a/lib/views/pages/user/requests/work_order/work_orders_list_page.dart +++ b/lib/views/pages/user/requests/work_order/work_orders_list_page.dart @@ -16,6 +16,7 @@ import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/views/pages/user/requests/work_order/create_service_report.dart'; import 'package:test_sa/views/pages/user/requests/work_order/update_service_report.dart'; import 'package:test_sa/views/pages/user/requests/work_order/work_order_details_page.dart'; +import 'package:test_sa/views/widgets/loaders/no_item_found.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart'; class WorkOrderListPage extends StatelessWidget { @@ -43,93 +44,92 @@ class WorkOrderListPage extends StatelessWidget { child: FutureBuilder( future: serviceRequestsProvider.searchWorkOrders(callId: serviceRequest.requestCode), builder: (context, snap) { - workOrders = snap.data as List; if (snap.connectionState == ConnectionState.waiting) return const Center(child: CircularProgressIndicator()); - + workOrders = snap.data as List; return Column( children: [ - ListView.separated( - padding: const EdgeInsets.all(16), - itemCount: workOrders?.length ?? 0, - separatorBuilder: (czt, index) => 8.height, - itemBuilder: (context, index) { - Color itemColor = index % 2 == 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary; - Color onItemColor = index % 2 != 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary; + (workOrders.isEmpty) + ? NoItemFound(message: context.translation.noDataFound).expanded + : ListView.separated( + padding: const EdgeInsets.all(16), + itemCount: workOrders.length, + separatorBuilder: (czt, index) => 8.height, + itemBuilder: (context, index) { + Color itemColor = index % 2 == 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary; + Color onItemColor = index % 2 != 0 ? Theme.of(context).colorScheme.primary : Theme.of(context).colorScheme.onPrimary; - return Column( - children: [ - Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - StatusLabel(label: workOrders[index].currentSituation.name, textColor: AppColor.orange60, backgroundColor: AppColor.orange40), - 8.height, - Text(serviceRequest.requestCode, style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))), - ], - ).expanded, - if (_userProvider.user.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) - context.translation.edit.toSvgAsset(height: 48, width: 48).onPress(() { - Navigator.of(context).push( - MaterialPageRoute(builder: (_) => UpdateServiceReport(request: serviceRequest, workOrder: workOrders[index])), - ); - }) - ], - ), - 8.height, - Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - '${context.translation.assetName}: ${workOrders[index].callRequest.asset.modelDefinition.assetName}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : const Color(0xFF757575)), - ), - Text( - '${context.translation.status}: ${workOrders[index].currentSituation.name}', - style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : const Color(0xFF757575)), - ), - ], - ).expanded, - Text(workOrders[index].visitDate?.toServiceRequestCardFormat ?? "", - textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))), - ], - ), - 16.height, - Row( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - context.translation.viewDetails, - style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), - ), - 4.width, - const Icon(Icons.arrow_forward, color: Color(0xFF4A8DB7), size: 14) - ], - ).onPress(() { - Navigator.push( - context, - MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: workOrders[index], serviceRequest: serviceRequest)), - ); - }), - ], - ).onPress(() { - // onPressed(request); - }), - ], - ).toShadowContainer(context); - }, - ).expanded, + return Column( + children: [ + Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + StatusLabel(label: workOrders[index].currentSituation.name, textColor: AppColor.orange60, backgroundColor: AppColor.orange40), + 8.height, + Text(serviceRequest.requestCode, style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))), + ], + ).expanded, + if (_userProvider.user.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) + context.translation.edit.toSvgAsset(height: 48, width: 48).onPress(() { + Navigator.of(context).push( + MaterialPageRoute(builder: (_) => UpdateServiceReport(request: serviceRequest, workOrder: workOrders[index])), + ); + }) + ], + ), + 8.height, + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + '${context.translation.assetName}: ${workOrders[index].callRequest.asset.modelDefinition.assetName}', + style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : const Color(0xFF757575)), + ), + Text( + '${context.translation.status}: ${workOrders[index].currentSituation.name}', + style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : const Color(0xFF757575)), + ), + ], + ).expanded, + Text(workOrders[index].visitDate?.toServiceRequestCardFormat ?? "", + textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))), + ], + ), + 16.height, + Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + context.translation.viewDetails, + style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)), + ), + 4.width, + const Icon(Icons.arrow_forward, color: Color(0xFF4A8DB7), size: 14) + ], + ), + ], + ).onPress(() { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: workOrders[index], serviceRequest: serviceRequest)), + ); + }), + ], + ).toShadowContainer(context); + }, + ).expanded, if (_userProvider.user.type == UsersTypes.engineer && (serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3)) AppFilledButton( label: context.translation.createWorkOrder, diff --git a/lib/views/widgets/e_signature/e_signature.dart b/lib/views/widgets/e_signature/e_signature.dart index 86e40b5b..268009e7 100644 --- a/lib/views/widgets/e_signature/e_signature.dart +++ b/lib/views/widgets/e_signature/e_signature.dart @@ -1,6 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:signature/signature.dart'; +import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; @@ -15,6 +16,7 @@ class ESignature extends StatefulWidget { final Function(Uint8List) onSaved; final Function(Uint8List) onChange; final String title; + const ESignature({Key key, this.title, this.oldSignature, this.onSaved, this.onChange, this.newSignature}) : super(key: key); @override @@ -50,6 +52,7 @@ class _ESignatureState extends State { @override Widget build(BuildContext context) { + print(widget.oldSignature); return FormField(onSaved: (_) async { widget.onSaved(signature); }, builder: (FormFieldState state) { @@ -59,7 +62,7 @@ class _ESignatureState extends State { width: MediaQuery.of(context).size.width, padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight), decoration: BoxDecoration( - color: context.isDark?Theme.of(context).cardColor:Colors.white, + color: context.isDark ? Theme.of(context).cardColor : Colors.white, borderRadius: _editable ? const BorderRadius.only(topLeft: Radius.circular(10), topRight: Radius.circular(10)) : BorderRadius.circular(10), boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)], ), @@ -98,7 +101,7 @@ class _ESignatureState extends State { height: 135.toScreenHeight, width: MediaQuery.of(context).size.width, padding: const EdgeInsets.only(bottom: 8), - child: signature != null ? Image.memory(signature) : ImageLoader(boxFit: BoxFit.contain, url: widget.oldSignature), + child: signature != null ? Image.memory(signature) : ImageLoader(boxFit: BoxFit.contain, url: URLs.getFileUrl(widget.oldSignature)), ) : AbsorbPointer( absorbing: !_editable, diff --git a/lib/views/widgets/timer/app_timer.dart b/lib/views/widgets/timer/app_timer.dart index 04a7bc16..19291a42 100644 --- a/lib/views/widgets/timer/app_timer.dart +++ b/lib/views/widgets/timer/app_timer.dart @@ -108,7 +108,7 @@ class _AppTimerState extends State { height: 56.toScreenHeight, padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), decoration: BoxDecoration( - color: context.isDark?AppColor.neutral50:Theme.of(context).cardColor, + color: context.isDark ? AppColor.neutral50 : Theme.of(context).cardColor, borderRadius: BorderRadius.circular(10), boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)], ), @@ -125,7 +125,7 @@ class _AppTimerState extends State { mainAxisAlignment: MainAxisAlignment.center, children: [ (widget.label ?? "Timer").tinyFont(context), - value.bodyText(context).custom(color: AppColor.neutral50), + value.bodyText(context).custom(color: widget.enabled ? AppColor.neutral50 : AppColor.neutral20), ], ); },