ui and spare part improvement.

design_3.0_demo_module
Sikander Saleem 2 years ago
parent 3484859028
commit 701455d939

@ -75,7 +75,7 @@ class AppColor {
static const Color orange70 = Color(0xffFFC945); static const Color orange70 = Color(0xffFFC945);
// static Color greenStatus(BuildContext context) => context.isDark ? const Color(0xff1FA269) : green50; // static Color greenStatus(BuildContext context) => context.isDark ? const Color(0xff1FA269) : green50;
static Color greenStatus(BuildContext context) => context.isDark ? const Color(0xff54C166) : green70; static Color greenStatus(BuildContext context) => context.isDark ? const Color(0xff54C166) : green70.withOpacity(.5);
// static Color blueStatus(BuildContext context) => context.isDark ? primary40 : primary50; // static Color blueStatus(BuildContext context) => context.isDark ? primary40 : primary50;
static Color blueStatus(BuildContext context) => context.isDark ? primary40 : primary90; static Color blueStatus(BuildContext context) => context.isDark ? primary40 : primary90;
@ -101,6 +101,12 @@ class AppColor {
return orange60; return orange60;
case "high priority": case "high priority":
return white10; return white10;
case "yes":
return white10;
case "low priority":
return green15;
case "low":
return green15;
default: default:
return Colors.white; return Colors.white;
} }
@ -152,6 +158,8 @@ class AppColor {
return greenStatus(context); return greenStatus(context);
case "high priority": case "high priority":
return redStatus(context); return redStatus(context);
case "yes":
return redStatus(context);
case "low priority": case "low priority":
return greenStatus(context); return greenStatus(context);
case "open": case "open":
@ -202,6 +210,8 @@ class AppColor {
//low priority //low priority
case 81: case 81:
return Colors.white; return Colors.white;
case 370:
return green15;
case 82: case 82:
//high priority //high priority
return white10; return white10;
@ -215,6 +225,8 @@ class AppColor {
//low priority //low priority
case 81: case 81:
return greenStatus(context); return greenStatus(context);
case 370:
return greenStatus(context);
//high priority //high priority
case 82: case 82:
return redStatus(context); return redStatus(context);

@ -56,7 +56,6 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
print('initial value i got is ${widget.initialValue?.identifier}'); print('initial value i got is ${widget.initialValue?.identifier}');
if (widget.initialValue != null) { if (widget.initialValue != null) {
final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier); final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier);
print('result value i got is ${result?.length}');
if (result?.isNotEmpty ?? false) _selectedItem = result!.first as T?; if (result?.isNotEmpty ?? false) _selectedItem = result!.first as T?;
if (widget.onSelect != null && (widget.initialValue?.identifier ?? "") != (_selectedItem?.identifier ?? "")) { if (widget.onSelect != null && (widget.initialValue?.identifier ?? "") != (_selectedItem?.identifier ?? "")) {
widget.onSelect!(_selectedItem); // Non-null assertion after null check widget.onSelect!(_selectedItem); // Non-null assertion after null check
@ -72,7 +71,6 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
@override @override
void didUpdateWidget(covariant SingleItemDropDownMenu<T, X> oldWidget) { void didUpdateWidget(covariant SingleItemDropDownMenu<T, X> oldWidget) {
if (widget.initialValue != null) { if (widget.initialValue != null) {
final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier); final result = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.where((element) => element.identifier == widget.initialValue?.identifier);
if (result?.isNotEmpty ?? false) { if (result?.isNotEmpty ?? false) {
@ -140,7 +138,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
isEmpty || widget.enabled == false ? context.translation.noDataFound : context.translation.select, isEmpty || widget.enabled == false ? context.translation.noDataFound : context.translation.select,
style: Theme.of(context).textTheme.bodyLarge, style: Theme.of(context).textTheme.bodyLarge,
), ),
style: TextStyle(color: Theme.of(context).primaryColor), style: TextStyle(color: Theme.of(context).primaryColor, fontSize: 12),
underline: const SizedBox.shrink(), underline: const SizedBox.shrink(),
onChanged: (widget.enabled == false || widget.showAsBottomSheet) onChanged: (widget.enabled == false || widget.showAsBottomSheet)
? null ? null
@ -157,7 +155,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
value: value, value: value,
child: Text( child: Text(
value.name ?? "", // Null-aware operator for value.name value.name ?? "", // Null-aware operator for value.name
style: Theme.of(context).textTheme.bodyLarge, style: Theme.of(context).textTheme.bodyMedium,
), ),
); );
}).toList(), }).toList(),

@ -37,8 +37,8 @@ class ServiceRequestItemView extends StatelessWidget {
8.width, 8.width,
StatusLabel( StatusLabel(
label: requestData!.statusName!, label: requestData!.statusName!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.statusName!), textColor: AppColor.getHistoryLogStatusTextColorByName( requestData!.statusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!), backgroundColor: AppColor.getHistoryLogStatusColorByName( requestData!.statusName!),
), ),
1.width.expanded, 1.width.expanded,
Text(requestData!.transactionDate!.toServiceRequestCardFormat, Text(requestData!.transactionDate!.toServiceRequestCardFormat,

@ -437,9 +437,9 @@ class ServiceRequestBottomSheet {
const SizedBox().indicatorWidget(), const SizedBox().indicatorWidget(),
Align( Align(
alignment: AlignmentDirectional.centerStart, alignment: AlignmentDirectional.centerStart,
child: context.translation.rejectionReason.heading4(context).paddingOnly(top: 21), child: context.translation.rejectionReason.heading4(context).paddingOnly(top: 12),
), ),
15.height, 16.height,
SingleItemDropDownMenu<Lookup, RejectReasonProvider>( SingleItemDropDownMenu<Lookup, RejectReasonProvider>(
context: context, context: context,
title: context.translation.reason, title: context.translation.reason,

@ -5,8 +5,6 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart';
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart'; import 'package:test_sa/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart';
@ -17,7 +15,6 @@ class InitialVisitCard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, snapshot) { return Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, snapshot) {
return Container( return Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(14), borderRadius: BorderRadius.circular(14),
@ -35,17 +32,14 @@ class InitialVisitCard extends StatelessWidget {
style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10), style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
), ),
"edit_icon".toSvgAsset(height: 21, width: 21).onPress(() { "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() {
ServiceRequestBottomSheet.initialVisitBottomSheet(context: context); ServiceRequestBottomSheet.initialVisitBottomSheet(context: context);
}), }),
]), ]),
2.height, 2.height,
context.translation.visitDateAndTime.bodyText2(context).custom(color: AppColor.neutral120), context.translation.visitDateAndTime.bodyText2(context).custom(color: AppColor.neutral120),
8.height, 12.height,
if (requestDetailProvider.needVisitHelperModel?.comment != null) ...[ if (requestDetailProvider.needVisitHelperModel?.comment != null) ...[
requestDetailProvider.needVisitHelperModel!.comment!.bodyText2(context).custom( requestDetailProvider.needVisitHelperModel!.comment!.bodyText2(context).custom(color: AppColor.neutral120),
color: AppColor.neutral120,
),
] ]
], ],
), ),

@ -89,8 +89,8 @@ class WorkOrderDetailView extends StatelessWidget {
StatusLabel( StatusLabel(
radius: 4, radius: 4,
label: workOrder.status!.name, label: workOrder.status!.name,
textColor: AppColor.getRequestStatusTextColor(context, workOrder.status!.id!), textColor: AppColor.getHistoryLogStatusTextColorByName(workOrder.status!.name!),
backgroundColor: AppColor.getRequestStatusColor(context, workOrder.status!.id!), backgroundColor: AppColor.getHistoryLogStatusColorByName(workOrder.status!.name!),
), ),
1.width.expanded, 1.width.expanded,
Column( Column(

@ -4,11 +4,11 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_fault_description_provider.dart'; import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_fault_description_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/fault_description.dart'; import 'package:test_sa/models/fault_description.dart';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart';
import 'package:test_sa/models/new_models/work_order_detail_model.dart'; import 'package:test_sa/models/new_models/work_order_detail_model.dart';
@ -24,6 +24,7 @@ import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
import 'package:test_sa/views/widgets/equipment/pick_asset.dart'; import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import '../../../../../../models/lookup.dart'; import '../../../../../../models/lookup.dart';
import '../../../../../../new_views/common_widgets/default_app_bar.dart'; import '../../../../../../new_views/common_widgets/default_app_bar.dart';
@ -69,7 +70,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
_loanAvailabilityProvider = Provider.of<LoanAvailabilityProvider>(context, listen: false); _loanAvailabilityProvider = Provider.of<LoanAvailabilityProvider>(context, listen: false);
_equipmentStatusProvider = Provider.of<EquipmentStatusProvider>(context, listen: false); _equipmentStatusProvider = Provider.of<EquipmentStatusProvider>(context, listen: false);
_reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString(); _reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString();
_faults = await Provider.of<FaultDescriptionProvider>(context,listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id); _faults = await Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id);
_reasonProvider?.getDate(); _reasonProvider?.getDate();
_equipmentStatusProvider?.getDate(); _equipmentStatusProvider?.getDate();
_loanAvailabilityProvider?.getDate(); _loanAvailabilityProvider?.getDate();
@ -144,12 +145,13 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
}); });
}, },
), ),
8.height, 12.height,
SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>( SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>(
context: context, context: context,
title: context.translation.loanAvailability, title: context.translation.loanAvailability,
backgroundColor: AppColor.neutral100, backgroundColor: AppColor.neutral100,
height: 56.toScreenHeight, height: 56.toScreenHeight,
showShadow: false,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability, initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability,
onSelect: (status) { onSelect: (status) {
if (status != null) { if (status != null) {
@ -174,7 +176,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
}); });
}, },
), ),
8.height, 12.height,
SingleItemDropDownMenu<Lookup, ReasonProvider>( SingleItemDropDownMenu<Lookup, ReasonProvider>(
context: context, context: context,
title: context.translation.failureReason, title: context.translation.failureReason,
@ -188,27 +190,27 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
} }
}, },
), ),
8.height, 12.height,
SingleItemDropDownMenu<FaultDescription, NullableLoadingProvider>( SingleItemDropDownMenu<FaultDescription, NullableLoadingProvider>(
context: context, context: context,
title: context.translation.faultDescription, title: context.translation.faultDescription,
backgroundColor: AppColor.neutral100, backgroundColor: AppColor.neutral100,
staticData: _faults, staticData: _faults,
showShadow: true, showShadow: false,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription, initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription,
onSelect: (fault) { onSelect: (fault) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault; requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault?.workPerformed; requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault?.workPerformed;
if(mounted){ if (mounted) {
requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel); requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel);
} }
}, },
), ),
11.height, 12.height,
context.translation.solutions.heading6(context).custom(color: AppColor.neutral50), context.translation.solutions.heading6(context).custom(color: AppColor.neutral50),
11.height, 8.height,
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution != null
? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.heading6(context).custom(color: AppColor.neutral50) ? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120)
: const SizedBox(), : const SizedBox(),
], ],
).paddingOnly(start: 13, end: 13, top: 16, bottom: 16), ).paddingOnly(start: 13, end: 13, top: 16, bottom: 16),

@ -17,7 +17,6 @@ import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/views/widgets/images/new_multi_image_picker.dart'; import 'package:test_sa/views/widgets/images/new_multi_image_picker.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import '../../../../../../models/service_request/spare_parts.dart'; import '../../../../../../models/service_request/spare_parts.dart';
import '../../../../../../new_views/common_widgets/app_text_form_field.dart'; import '../../../../../../new_views/common_widgets/app_text_form_field.dart';
@ -104,142 +103,134 @@ class _SparePartRequestState extends State<SparePartRequest> with TickerProvider
appBar: DefaultAppBar(title: context.translation.sparePartRequest), appBar: DefaultAppBar(title: context.translation.sparePartRequest),
body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) { body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) {
return SafeArea( return SafeArea(
child: LoadingManager(
isLoading: _isLoading,
isFailedLoading: false,
stateCode: 200,
onRefresh: () async {},
child: Form( child: Form(
key: _formKey, key: _formKey,
child: Column( child: Column(
children: [ children: [
SingleChildScrollView( SingleChildScrollView(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ children: [
Card( Card(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ children: [
context.translation.sparePartDetails.heading5(context), context.translation.sparePartDetails.heading5(context),
12.height, 12.height,
SingleItemDropDownMenu<SparePart, NullableLoadingProvider>( SingleItemDropDownMenu<SparePart, NullableLoadingProvider>(
context: context, context: context,
title: context.translation.partNo, title: context.translation.partNo,
staticData: _spareParts, staticData: _spareParts,
showShadow: false, showShadow: false,loading: _isLoading,
initialValue: requestDetailProvider.sparePartHelperModel?.sparePart, initialValue: requestDetailProvider.sparePartHelperModel?.sparePart,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90,
onSelect: (part) { onSelect: (part) {
if (part != null) { if (part != null) {
requestDetailProvider.sparePartHelperModel?.sparePart = part; requestDetailProvider.sparePartHelperModel?.sparePart = part;
_oracleNoController.text = part.oracleCode ?? ''; _oracleNoController.text = part.oracleCode ?? '';
requestDetailProvider.updateSparePartHelperModel(_requestDetailProvider?.sparePartHelperModel); requestDetailProvider.updateSparePartHelperModel(_requestDetailProvider?.sparePartHelperModel);
} }
}, },
), ),
12.height, 12.height,
AppTextFormField( AppTextFormField(
controller: _partQtyController, controller: _partQtyController,
labelText: context.translation.quantity, labelText: context.translation.quantity,
textInputType: TextInputType.number, textInputType: TextInputType.number,
labelStyle: AppTextStyles.textFieldLabelStyle, labelStyle: AppTextStyles.textFieldLabelStyle,
showWithoutDecoration: true, showWithoutDecoration: true,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90,
enable: requestDetailProvider.sparePartHelperModel?.sparePart?.id != null, enable: requestDetailProvider.sparePartHelperModel?.sparePart?.id != null,
validator: (value) => value == null || value.isEmpty validator: (value) => value == null || value.isEmpty
? context.translation.requiredField ? context.translation.requiredField
: Validator.isNumeric(value) : Validator.isNumeric(value)
? null ? null
: context.translation.onlyNumbers, : context.translation.onlyNumbers,
onChange: (value) { onChange: (value) {
requestDetailProvider.sparePartHelperModel?.quantity = num.tryParse(value ?? ""); requestDetailProvider.sparePartHelperModel?.quantity = num.tryParse(value ?? "");
}, },
onSaved: (text) { onSaved: (text) {
requestDetailProvider.sparePartHelperModel?.quantity = num.tryParse(text ?? ""); requestDetailProvider.sparePartHelperModel?.quantity = num.tryParse(text ?? "");
}, },
), ),
12.height, 12.height,
AppTextFormField( AppTextFormField(
labelStyle: AppTextStyles.textFieldLabelStyle, labelStyle: AppTextStyles.textFieldLabelStyle,
controller: _oracleNoController, controller: _oracleNoController,
labelText: context.translation.oracleNo, labelText: context.translation.oracleNo,
textInputType: TextInputType.number, textInputType: TextInputType.number,
showWithoutDecoration: true, showWithoutDecoration: true,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90,
enable: false, enable: false,
), ),
12.height, 12.height,
AppTextFormField( AppTextFormField(
initialValue: requestDetailProvider.sparePartHelperModel?.comment, initialValue: requestDetailProvider.sparePartHelperModel?.comment,
labelStyle: AppTextStyles.textFieldLabelStyle, labelStyle: AppTextStyles.textFieldLabelStyle,
controller: _descriptionController, controller: _descriptionController,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90,
labelText: context.translation.description, labelText: context.translation.description,
alignLabelWithHint: true, alignLabelWithHint: true,
showWithoutDecoration: true, showWithoutDecoration: true,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
onChange: (value) { onChange: (value) {
requestDetailProvider.sparePartHelperModel?.comment = value; requestDetailProvider.sparePartHelperModel?.comment = value;
}, },
onSaved: (value) { onSaved: (value) {
requestDetailProvider.sparePartHelperModel?.comment = value; requestDetailProvider.sparePartHelperModel?.comment = value;
}, },
), ),
12.height, 12.height,
NewMultiFilesPicker( NewMultiFilesPicker(
label: context.translation.attachQuotation, label: context.translation.attachQuotation,
files: _files, files: _files,
buttonIcon: 'quotation_icon'.toSvgAsset(), buttonIcon: 'quotation_icon'.toSvgAsset(),
buttonColor: AppColor.primary10, buttonColor: AppColor.primary10,
onChange: (List<MultiFilesPickerModel> list) { onChange: (List<MultiFilesPickerModel> list) {
for (var element in list) { for (var element in list) {
print('path is ${element.file.path}'); print('path is ${element.file.path}');
} }
}, },
), ),
], ],
).paddingAll(16), ).paddingAll(16),
),
8.height,
],
), ),
).paddingAll(12).expanded, 8.height,
FooterActionButton.footerContainer( ],
child: AppFilledButton( ),
label: _requestDetailProvider?.sparePartHelperModel?.id == 0 ? context.translation.addSparePartActivity : context.translation.updateSparePartActivity, ).paddingAll(12).expanded,
buttonColor: AppColor.green70, FooterActionButton.footerContainer(
onPressed: () async { child: AppFilledButton(
requestDetailProvider.sparePartHelperModel?.sparePartAttachments?.clear(); label: _requestDetailProvider?.sparePartHelperModel?.id == 0 ? context.translation.addSparePartActivity : context.translation.updateSparePartActivity,
for (var pickerObject in _files) { buttonColor: AppColor.green70,
String fileData = _isLocalUrl(pickerObject.file.path) onPressed: () async {
? ("${pickerObject.file.path.split("/").last}|${base64Encode(File(pickerObject.file.path).readAsBytesSync())}") requestDetailProvider.sparePartHelperModel?.sparePartAttachments?.clear();
: pickerObject.file.path; for (var pickerObject in _files) {
requestDetailProvider.sparePartHelperModel?.sparePartAttachments?.add(SparePartAttachments(id: pickerObject.id, name: fileData)); String fileData =
} _isLocalUrl(pickerObject.file.path) ? ("${pickerObject.file.path.split("/").last}|${base64Encode(File(pickerObject.file.path).readAsBytesSync())}") : pickerObject.file.path;
requestDetailProvider.sparePartHelperModel?.sparePartAttachments?.add(SparePartAttachments(id: pickerObject.id, name: fileData));
}
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
int status = -1; int status = -1;
if (_requestDetailProvider?.sparePartHelperModel?.id == 0) { if (_requestDetailProvider?.sparePartHelperModel?.id == 0) {
status = await requestDetailProvider.createActivitySparePart(); status = await requestDetailProvider.createActivitySparePart();
} else { } else {
status = await requestDetailProvider.updateActivitySparePart(); status = await requestDetailProvider.updateActivitySparePart();
} }
if (status == 200) { if (status == 200) {
await requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!); await requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
//this is for hide the dialoge... //this is for hide the dialoge...
Navigator.pop(context); Navigator.pop(context);
Navigator.pop(context); Navigator.pop(context);
} else { } else {
Navigator.pop(context); Navigator.pop(context);
} }
}, },
)), )),
], ],
),
),
), ),
); ));
}), }),
); );
} }

Loading…
Cancel
Save