From f3b432d0c114259ad3f10e390e11b4186a17b1ec Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Wed, 29 May 2024 11:16:11 +0300 Subject: [PATCH] ppm external supplier fields added. & improvements. --- .../providers/api/all_requests_provider.dart | 2 +- lib/models/ppm/ppm.dart | 29 +++++++++++++++++-- .../land_page/contact_us_bottom_sheet.dart | 5 +++- lib/views/widgets/pentry/pentry_tbs_form.dart | 25 ++++++++++++++++ 4 files changed, 56 insertions(+), 5 deletions(-) diff --git a/lib/controllers/providers/api/all_requests_provider.dart b/lib/controllers/providers/api/all_requests_provider.dart index 6538dad1..9c955ec6 100644 --- a/lib/controllers/providers/api/all_requests_provider.dart +++ b/lib/controllers/providers/api/all_requests_provider.dart @@ -70,7 +70,7 @@ class AllRequestsProvider extends ChangeNotifier { ? [1, 2, 3, 4] : search.typeTransaction : [typeTransaction]; - List status = (search?.statuses == null || search.statuses.isEmpty) ? ((search?.isArchived ?? false) ? [4] : [1, 2, 3]) : search.statuses; + List status = (search?.statuses == null || search.statuses.isEmpty) ? ((search?.isArchived ?? false) ? [3] : [1, 2, 4]) : search.statuses; Map body = { "typeTransaction": type, "statusTransaction": status, diff --git a/lib/models/ppm/ppm.dart b/lib/models/ppm/ppm.dart index 02fd46dc..7dc945b3 100644 --- a/lib/models/ppm/ppm.dart +++ b/lib/models/ppm/ppm.dart @@ -172,6 +172,17 @@ class Ppm { suppStartDate = json['suppStartDate']; suppEndDate = json['suppEndDate']; suppWorkingHours = json['suppWorkingHours']; + + try { + externalEngineerTimer = TimerModel(startAt: DateTime.tryParse(suppStartDate ?? ""), endAt: DateTime.tryParse(suppEndDate ?? "")); + if (externalEngineerTimer.endAt != null && externalEngineerTimer.startAt != null) { + externalEngineerTimer.durationInSecond = (externalEngineerTimer.endAt.difference(externalEngineerTimer.startAt))?.inSeconds; + suppWorkingHours = (((externalEngineerTimer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2); + } + } catch (e) { + print(e.toString()); + } + taskStatusId = json['taskStatusId']; engSignature = json['engSignature']; nurseSignature = json['nurseSignature']; @@ -308,6 +319,7 @@ class Ppm { String visitStatusName; String warrantyEndDate; TimerModel tbsTimer = TimerModel(); + TimerModel externalEngineerTimer = TimerModel(); Uint8List localNurseSignature; Uint8List localEngineerSignature; @@ -399,6 +411,7 @@ class Ppm { String visitStatusName, String warrantyEndDate, TimerModel tbsTimer, + TimerModel externalEngineerTimer, }) { Ppm ppm = Ppm( id: id ?? this.id, @@ -486,6 +499,7 @@ class Ppm { ); ppm.tbsTimer = tbsTimer ?? this.tbsTimer; + ppm.externalEngineerTimer = externalEngineerTimer ?? this.externalEngineerTimer; return ppm; } @@ -536,9 +550,12 @@ class Ppm { map['workPerformed'] = workPerformed; map['supplierId'] = supplierId; map['suppPersonId'] = suppPersonId; - map['suppStartDate'] = suppStartDate; - map['suppEndDate'] = suppEndDate; - map['suppWorkingHours'] = suppWorkingHours; + + map['suppStartDate'] = externalEngineerTimer?.startAt?.toIso8601String(); + map['suppEndDate'] = externalEngineerTimer?.endAt?.toIso8601String(); + map['suppWorkingHours'] = ((externalEngineerTimer?.durationInSecond ?? 0) / 60 / 60).toStringAsFixed(5); + + map['taskStatusId'] = taskStatusId; map['engSignature'] = engSignature; map['nurseSignature'] = nurseSignature; @@ -612,6 +629,12 @@ class Ppm { await Fluttertoast.showToast(msg: "Please Stop The Timer"); return false; } + + if (externalEngineerTimer?.startAt != null && externalEngineerTimer?.endAt == null) { + await Fluttertoast.showToast(msg: "Please Stop External Engineer Timer"); + return false; + } + return true; } diff --git a/lib/new_views/pages/land_page/contact_us_bottom_sheet.dart b/lib/new_views/pages/land_page/contact_us_bottom_sheet.dart index f7b11d22..40f8f674 100644 --- a/lib/new_views/pages/land_page/contact_us_bottom_sheet.dart +++ b/lib/new_views/pages/land_page/contact_us_bottom_sheet.dart @@ -13,7 +13,8 @@ class ContactUsBottomSheet extends StatelessWidget { @override Widget build(BuildContext context) { - const contactNumber = "+966 546345567"; + // String contactNumber = "+966 546345567"; + String contactNumber = ""; return Container( clipBehavior: Clip.antiAlias, decoration: BoxDecoration( @@ -44,6 +45,8 @@ class ContactUsBottomSheet extends StatelessWidget { Row( children: [ contactItem(context, context.isDark, "phone", context.translation.callUs, contactNumber).onPress(() { + + return; launchUrlString("tel://$contactNumber"); }).expanded, 16.width, diff --git a/lib/views/widgets/pentry/pentry_tbs_form.dart b/lib/views/widgets/pentry/pentry_tbs_form.dart index 38cf7e73..df747ac8 100644 --- a/lib/views/widgets/pentry/pentry_tbs_form.dart +++ b/lib/views/widgets/pentry/pentry_tbs_form.dart @@ -219,6 +219,31 @@ class _PentryTBSFormState extends State { }, ), 8.height, + AppTextFormField( + labelText: "Telephone", + initialValue: (widget.model.telephone ?? "").toString(), + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.titleMedium, + textInputType: TextInputType.number, + onChange: (value) { + widget.model.telephone = value; + }, + ), + 8.height, + + AppTimer( + label: "External Supplier Timer", + timer: widget.model.externalEngineerTimer, + enabled: widget.model.externalEngineerTimer.endAt == null, + timerProgress: (isRunning) { + print("timerProgress:$isRunning"); + }, + onChange: (timer) async { + widget.model.externalEngineerTimer = timer; + return true; + }, + ), + 8.height, ], ADatePicker(