code and logic improvements.

design_3.0_demo_module
Sikander Saleem 2 years ago
parent 40a96bad7c
commit 690b3822f5

@ -4,7 +4,6 @@ import 'package:shimmer/shimmer.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import '../new_views/app_style/app_color.dart'; import '../new_views/app_style/app_color.dart';
@ -32,7 +31,10 @@ extension WidgetExtensions on Widget {
flushbarPosition: FlushbarPosition.TOP, flushbarPosition: FlushbarPosition.TOP,
backgroundColor: backgroundColor ?? AppColor.green70, backgroundColor: backgroundColor ?? AppColor.green70,
title: title, title: title,
messageText: Text(message,style: AppTextStyles.heading6.copyWith(color: AppColor.white10),), messageText: Text(
message,
style: AppTextStyles.heading6.copyWith(color: AppColor.white10),
),
duration: Duration(seconds: duration ?? 3), duration: Duration(seconds: duration ?? 3),
flushbarStyle: FlushbarStyle.GROUNDED, flushbarStyle: FlushbarStyle.GROUNDED,
reverseAnimationCurve: Curves.easeInOut, reverseAnimationCurve: Curves.easeInOut,
@ -79,9 +81,9 @@ extension WidgetExtensions on Widget {
).toShadowContainer(context) ).toShadowContainer(context)
: this; : this;
Widget toShadowContainer(BuildContext context, {bool showShadow = true,bool withoutShadow = true,Color? backgroundColor, double padding = 16,EdgeInsets ?paddingValue}) => showShadow Widget toShadowContainer(BuildContext context, {bool showShadow = true, bool withShadow = true, Color? backgroundColor, double padding = 16, EdgeInsets? paddingObject}) => withShadow
? Container( ? Container(
padding:paddingValue?? EdgeInsets.all(padding), padding: paddingObject ?? EdgeInsets.all(padding),
width: double.infinity, width: double.infinity,
decoration: ShapeDecoration( decoration: ShapeDecoration(
color: backgroundColor ?? AppColor.background(context), color: backgroundColor ?? AppColor.background(context),

@ -89,13 +89,12 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
provider = Provider.of<X>(widget.context, listen: true);
final isEmpty = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.isEmpty ?? true; final isEmpty = (X == NullableLoadingProvider ? widget.staticData : provider?.items)?.isEmpty ?? true;
return AppLoadingManager( return AppLoadingManager(
isLoading: widget.loading ?? ((X == NullableLoadingProvider) ? false : provider?.loading ?? false), isLoading: widget.loading ?? ((X == NullableLoadingProvider) ? false : provider?.loading ?? false),
// Provide default value if null // Provide default value if null
isFailedLoading: (X == NullableLoadingProvider) ? false : provider?.items == null, isFailedLoading: (X == NullableLoadingProvider) ? false : provider?.items == null,
stateCode: (X == NullableLoadingProvider) ? 200 : provider?.stateCode ?? 0, stateCode: (X == NullableLoadingProvider) ? 200 : provider?.stateCode,
onRefresh: () async { onRefresh: () async {
if (X != NullableLoadingProvider) { if (X != NullableLoadingProvider) {
provider?.reset(); provider?.reset();

@ -76,7 +76,7 @@ class AssetItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: AssetTransfer(id: requestData!.id!)))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: AssetTransfer(id: requestData!.id!))));
}); });
} }
@ -134,7 +134,7 @@ class AssetItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: AssetTransfer(id: requestDetails!.id!)))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: AssetTransfer(id: requestDetails!.id!))));
}); });
} }

@ -68,7 +68,7 @@ class GasRefillItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push( Navigator.of(context).push(
MaterialPageRoute( MaterialPageRoute(
builder: (_) => GasRefillDetailsPage( builder: (_) => GasRefillDetailsPage(
@ -127,7 +127,7 @@ class GasRefillItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push( Navigator.of(context).push(
MaterialPageRoute( MaterialPageRoute(
builder: (_) => GasRefillDetailsPage( builder: (_) => GasRefillDetailsPage(

@ -67,7 +67,7 @@ class PpmItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: request))); // Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: request)));
}); });
} }
@ -117,7 +117,7 @@ class PpmItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: requestDetails!))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: requestDetails!)));
}); });
} }

@ -69,7 +69,7 @@ class ServiceRequestItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => RequestDetailMain(requestId: requestData!.id!))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => RequestDetailMain(requestId: requestData!.id!)));
}); });
} }
@ -120,7 +120,7 @@ class ServiceRequestItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, withoutShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => RequestDetailMain(requestId: requestDetails!.id!))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => RequestDetailMain(requestId: requestDetails!.id!)));
}); });
} }

@ -550,7 +550,7 @@ class ServiceRequestBottomSheet {
); );
break; break;
case 1: case 1:
Navigator.push( Navigator.pushReplacement(
context, context,
MaterialPageRoute(builder: (context) => const MaintenanceRequestForm()), MaterialPageRoute(builder: (context) => const MaintenanceRequestForm()),
); );

@ -1,9 +1,6 @@
import 'package:expansion_tile_card/expansion_tile_card.dart'; import 'package:expansion_tile_card/expansion_tile_card.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/dashboard_latest/widgets/app_bar_widget.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.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';
@ -16,7 +13,6 @@ import 'package:test_sa/views/widgets/date_and_time/date_picker.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_assistant_employee_menu.dart';
class AssistantEmployeeCard extends StatefulWidget { class AssistantEmployeeCard extends StatefulWidget {
const AssistantEmployeeCard({super.key}); const AssistantEmployeeCard({super.key});
@override @override
@ -37,31 +33,30 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
super.initState(); super.initState();
} }
Future<void> getInitialData() async { Future<void> getInitialData() async {}
} @override
@override
void dispose() { void dispose() {
// TODO: implement dispose // TODO: implement dispose
_workingHoursController.dispose(); _workingHoursController.dispose();
super.dispose(); super.dispose();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<RequestDetailProvider>(builder: (context, requestDetailProvider, child) { return Consumer<RequestDetailProvider>(builder: (context, requestDetailProvider, child) {
return ExpansionTileCard( return ExpansionTileCard(
key: cardA, key: cardA,
initialElevation: 0, initialElevation: 0,
borderRadius: BorderRadius.zero, borderRadius: BorderRadius.circular(10),
expandedTextColor: AppColor.black20, expandedTextColor: AppColor.black20,
shadowColor: AppColor.white10, shadowColor: AppColor.white10,
baseColor: AppColor.white10, baseColor: AppColor.white10,
contentPadding: EdgeInsets.zero, contentPadding: const EdgeInsets.only(left: 16,right: 16),
expandedColor: AppColor.white10, expandedColor: AppColor.white10,
duration: Duration.zero, duration: Duration.zero,
elevation: 0, elevation: 0,
title:context.translation.assistantEmployee.bodyText(context).custom(color: AppColor.black20), title: context.translation.assistantEmployee.bodyText(context).custom(color: AppColor.black20),
children: <Widget>[ children: <Widget>[
Column( Column(
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
@ -136,14 +131,13 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
selectedTime.hour, selectedTime.hour,
selectedTime.minute, selectedTime.minute,
); );
if (requestDetailProvider.activityMaintenanceHelperModel!.startTime!=null&&selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.startTime!)) { if (requestDetailProvider.activityMaintenanceHelperModel!.startTime != null && selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.startTime!)) {
"End Date time must be greater then start date".showToast; "End Date time must be greater then start date".showToast;
return; return;
} }
requestDetailProvider.activityMaintenanceHelperModel?.endTime = selectedDateTime; requestDetailProvider.activityMaintenanceHelperModel?.endTime = selectedDateTime;
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
assignWorkingHours(requestDetailProvider: requestDetailProvider); assignWorkingHours(requestDetailProvider: requestDetailProvider);
} }
}); });
}, },
@ -172,7 +166,7 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
labelStyle: AppTextStyles.textFieldLabelStyle, labelStyle: AppTextStyles.textFieldLabelStyle,
alignLabelWithHint: true, alignLabelWithHint: true,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
onChange: (value){ onChange: (value) {
requestDetailProvider.activityMaintenanceHelperModel?.technicalComment = value; requestDetailProvider.activityMaintenanceHelperModel?.technicalComment = value;
}, },
onSaved: (value) { onSaved: (value) {
@ -185,28 +179,29 @@ class _AssistantEmployeeCardState extends State<AssistantEmployeeCard> {
); );
}); });
} }
int calculateWorkingHours(DateTime? startTime, DateTime? endTime) { int calculateWorkingHours(DateTime? startTime, DateTime? endTime) {
if(startTime!=null&&endTime!=null){ if (startTime != null && endTime != null) {
Duration difference = endTime.difference(startTime); Duration difference = endTime.difference(startTime);
int hours = difference.inHours; int hours = difference.inHours;
int minutes = difference.inMinutes % 60; int minutes = difference.inMinutes % 60;
return hours; return hours;
}else{ } else {
return -1; return -1;
} }
} }
assignWorkingHours({required RequestDetailProvider requestDetailProvider}){ assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.startTime,requestDetailProvider.activityMaintenanceHelperModel!.endTime); int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.startTime, requestDetailProvider.activityMaintenanceHelperModel!.endTime);
if(hours!=-1){ if (hours != -1) {
_workingHoursController.text = hours.toString(); _workingHoursController.text = hours.toString();
requestDetailProvider.activityMaintenanceHelperModel!.workingHour=hours; requestDetailProvider.activityMaintenanceHelperModel!.workingHour = hours;
} }
} }
final ButtonStyle flatButtonStyle = TextButton.styleFrom( final ButtonStyle flatButtonStyle = TextButton.styleFrom(
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(4.0)), borderRadius: BorderRadius.all(Radius.circular(4.0)),
), ),
); );
} }

@ -14,10 +14,12 @@ import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/service_request/service_report.dart'; import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/models/service_request/supp_engineer_work_orders.dart'; import 'package:test_sa/models/service_request/supp_engineer_work_orders.dart';
import 'package:test_sa/models/service_request/supplier_details.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/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/work_order/reason_provider.dart'; import 'package:test_sa/providers/work_order/reason_provider.dart';
import 'package:test_sa/providers/work_order/vendor_provider.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/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
@ -120,6 +122,20 @@ class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest>
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ children: [
//TODO replace with correct component.. //TODO replace with correct component..
SingleItemDropDownMenu<SupplierDetails, VendorProvider>(
context: context,
title: context.translation.supplier,
initialValue: null,
showAsBottomSheet: true,
onSelect: (supplier) {
if (supplier != null) {
// _subWorkOrders.supplier = supplier;
// log(_subWorkOrders.supplier?.suppPersons?.map((e) => e.personName)?.toString());
setState(() {});
}
},
),
SingleItemDropDownMenu<Lookup, NullableLoadingProvider>( SingleItemDropDownMenu<Lookup, NullableLoadingProvider>(
context: context, context: context,
height: 56.toScreenHeight, height: 56.toScreenHeight,

@ -1,32 +1,26 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/parts_provider.dart';
import 'package:test_sa/controllers/providers/api/service_requests_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_report_repair_location_provider.dart'; import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_repair_location_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.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/helper_data_models/maintenance_request/activity_maintenance_model.dart'; import 'package:test_sa/models/helper_data_models/maintenance_request/activity_maintenance_model.dart';
import 'package:test_sa/models/service_request/service_report.dart'; import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/models/service_request/service_request.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/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/work_order/activity_status_provider.dart'; import 'package:test_sa/providers/work_order/activity_status_provider.dart';
import 'package:test_sa/providers/work_order/reason_provider.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/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart'; import 'package:test_sa/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.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/date_and_time/time_picker.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.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 '../../../../../controllers/providers/api/status_drop_down/report/service_types_provider.dart';
import '../../../../../models/lookup.dart'; import '../../../../../models/lookup.dart';
import '../../../../../new_views/common_widgets/app_text_form_field.dart'; import '../../../../../new_views/common_widgets/app_text_form_field.dart';
@ -49,7 +43,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
ActivityStatusProvider? _activityStatusProvider; ActivityStatusProvider? _activityStatusProvider;
ServiceReport? _serviceReport; ServiceReport? _serviceReport;
bool _isLoading = false; bool _isLoading = false;
bool isCurrentUserIsAssignedEmployee=false; bool isCurrentUserIsAssignedEmployee = false;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
final TextEditingController _workingHoursController = TextEditingController(); final TextEditingController _workingHoursController = TextEditingController();
@ -67,7 +61,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
_requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false); _requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
getInitialData(); getInitialData();
}); });
// _isLoading = true; // _isLoading = true;
@ -81,13 +75,13 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
} }
Future<void> getInitialData() async { Future<void> getInitialData() async {
_activityStatusProvider?.getDate(); _activityStatusProvider?.getDate();
Provider.of<ServiceReportRepairLocationProvider>(context,listen: false).getTypes(); Provider.of<ServiceReportRepairLocationProvider>(context, listen: false).getTypes();
final user = Provider.of<UserProvider>(context).user!; final user = Provider.of<UserProvider>(context).user!;
isCurrentUserIsAssignedEmployee = (user.userID != _requestDetailProvider?.currentWorkOrder?.data?.assignedEmployee?.userId); isCurrentUserIsAssignedEmployee = (user.userID != _requestDetailProvider?.currentWorkOrder?.data?.assignedEmployee?.userId);
if (isCurrentUserIsAssignedEmployee) { if (isCurrentUserIsAssignedEmployee) {
// _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)]; // _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
} }
} }
void getRequestForWorkOrder() async { void getRequestForWorkOrder() async {
@ -104,7 +98,6 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<RequestDetailProvider>(builder: (context, requestDetailProvider, child) { return Consumer<RequestDetailProvider>(builder: (context, requestDetailProvider, child) {
return LoadingManager( return LoadingManager(
isLoading: _isLoading, isLoading: _isLoading,
@ -177,13 +170,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
).then((selectedTime) { ).then((selectedTime) {
// Handle the selected date and time here. // Handle the selected date and time here.
if (selectedTime != null) { if (selectedTime != null) {
DateTime selectedDateTime = DateTime( DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute);
selectedDate.year,
selectedDate.month,
selectedDate.day,
selectedTime.hour,
selectedTime.minute,
);
if (requestDetailProvider.activityMaintenanceHelperModel!.startTime != null && if (requestDetailProvider.activityMaintenanceHelperModel!.startTime != null &&
selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.startTime!)) { selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.startTime!)) {
"End Date time must be greater then start date".showToast; "End Date time must be greater then start date".showToast;
@ -229,7 +216,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
}, },
), ),
16.height, 16.height,
repairLocationWidget(context,requestDetailProvider), repairLocationWidget(context, requestDetailProvider),
16.height, 16.height,
AppTextFormField( AppTextFormField(
labelText: context.translation.assignedEmployee, labelText: context.translation.assignedEmployee,
@ -260,7 +247,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
], ],
), ),
).toShadowContainer(context).paddingOnly(start: 13, end: 14, top: 12), ).toShadowContainer(context).paddingOnly(start: 13, end: 14, top: 12),
const AssistantEmployeeCard().toShadowContainer(context, paddingValue: const EdgeInsets.symmetric(horizontal: 16)).paddingOnly(start: 13, end: 14, top: 12), const AssistantEmployeeCard().paddingOnly(start: 13, end: 14, top: 12),
100.height, 100.height,
], ],
), ),
@ -280,7 +267,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
}); });
} }
Widget repairLocationWidget(BuildContext context,RequestDetailProvider requestDetailProvider) { Widget repairLocationWidget(BuildContext context, RequestDetailProvider requestDetailProvider) {
return Consumer<ServiceReportRepairLocationProvider>(builder: (cxt, snapshot, _) { return Consumer<ServiceReportRepairLocationProvider>(builder: (cxt, snapshot, _) {
try { try {
requestDetailProvider.activityMaintenanceHelperModel?.repairLocation ??= snapshot.reasons?.first; requestDetailProvider.activityMaintenanceHelperModel?.repairLocation ??= snapshot.reasons?.first;
@ -298,7 +285,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
runSpacing: 8, runSpacing: 8,
spacing: 8, spacing: 8,
children: [ children: [
for (var element in snapshot.reasons??[]) for (var element in snapshot.reasons ?? [])
Row( Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
@ -309,7 +296,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
value: element, value: element,
activeColor: Colors.red, activeColor: Colors.red,
fillColor: WidgetStateColor.resolveWith((states) { fillColor: WidgetStateColor.resolveWith((states) {
if (states.contains(WidgetState.selected)) return AppColor.primary10; if (states.contains(WidgetState.selected)) return AppColor.primary10;
return AppColor.neutral130; return AppColor.neutral130;
}), }),
groupValue: requestDetailProvider.activityMaintenanceHelperModel?.repairLocation, groupValue: requestDetailProvider.activityMaintenanceHelperModel?.repairLocation,
@ -320,7 +307,7 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
}), }),
), ),
8.width, 8.width,
Text(element.name??'', style: AppTextStyles.tinyFont.copyWith(color:AppColor.neutral120)), Text(element.name ?? '', style: AppTextStyles.tinyFont.copyWith(color: AppColor.neutral120)),
], ],
) )
], ],
@ -348,8 +335,9 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
requestDetailProvider.activityMaintenanceHelperModel!.workingHour = hours; requestDetailProvider.activityMaintenanceHelperModel!.workingHour = hours;
} }
} }
Future<bool> validate({required ActivityMaintenanceHelperModel model }) async {
if (model.activityStatus == null) { Future<bool> validate({required ActivityMaintenanceHelperModel model}) async {
if (model.activityStatus == null) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.activityStatus}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.activityStatus}");
return false; return false;
} else if (model.startTime == null) { } else if (model.startTime == null) {
@ -358,16 +346,15 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
} else if (model.endTime == null) { } else if (model.endTime == null) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.endTime}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.endTime}");
return false; return false;
} else if (model.travelHours==null) { } else if (model.travelHours == null) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.travelingHours}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.travelingHours}");
return false; return false;
}else if (model.repairLocation == null) { } else if (model.repairLocation == null) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.repairLocation}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.repairLocation}");
return false; return false;
} }
//write all other missing conditions.. //write all other missing conditions..
return true; return true;
} }
} }

@ -168,8 +168,8 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
color: context.isDark ? AppColor.neutral50 : AppColor.neutral30, color: context.isDark ? AppColor.neutral50 : AppColor.neutral30,
shape: const RoundedRectangleBorder( shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(20), bottomLeft: Radius.circular(14),
bottomRight: Radius.circular(20), bottomRight: Radius.circular(14),
), ),
), ),
), ),

Loading…
Cancel
Save