Merge branch 'zaid_development_new' into sikander-development

main_design2.0
Sikander Saleem 2 years ago
commit 9b2c1c8f8d

@ -0,0 +1,268 @@
PODS:
- audioplayers_darwin (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.4):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.4)
- DKImagePickerController/PhotoGallery (4.3.4):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.4)
- DKPhotoGallery (0.0.17):
- DKPhotoGallery/Core (= 0.0.17)
- DKPhotoGallery/Model (= 0.0.17)
- DKPhotoGallery/Preview (= 0.0.17)
- DKPhotoGallery/Resource (= 0.0.17)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.17):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.17):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.17):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- Firebase/CoreOnly (10.12.0):
- FirebaseCore (= 10.12.0)
- Firebase/Messaging (10.12.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 10.12.0)
- firebase_core (2.15.0):
- Firebase/CoreOnly (= 10.12.0)
- Flutter
- firebase_messaging (14.6.5):
- Firebase/Messaging (= 10.12.0)
- firebase_core
- Flutter
- FirebaseCore (10.12.0):
- FirebaseCoreInternal (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/Logger (~> 7.8)
- FirebaseCoreInternal (10.12.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)"
- FirebaseInstallations (10.12.0):
- FirebaseCore (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8)
- PromisesObjC (~> 2.1)
- FirebaseMessaging (10.12.0):
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- GoogleDataTransport (~> 9.2)
- GoogleUtilities/AppDelegateSwizzler (~> 7.8)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/Reachability (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8)
- nanopb (< 2.30910.0, >= 2.30908.0)
- Flutter (1.0.0)
- flutter_keyboard_visibility (0.0.1):
- Flutter
- flutter_local_notifications (0.0.1):
- Flutter
- flutter_sound (9.2.13):
- Flutter
- flutter_sound_core (= 9.2.13)
- flutter_sound_core (9.2.13)
- fluttertoast (0.0.2):
- Flutter
- Toast
- FMDB (2.7.5):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- GoogleDataTransport (9.2.3):
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/AppDelegateSwizzler (7.11.4):
- GoogleUtilities/Environment
- GoogleUtilities/Logger
- GoogleUtilities/Network
- GoogleUtilities/Environment (7.11.4):
- PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/Logger (7.11.4):
- GoogleUtilities/Environment
- GoogleUtilities/Network (7.11.4):
- GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (7.11.4)"
- GoogleUtilities/Reachability (7.11.4):
- GoogleUtilities/Logger
- GoogleUtilities/UserDefaults (7.11.4):
- GoogleUtilities/Logger
- image_picker_ios (0.0.1):
- Flutter
- MTBBarcodeScanner (5.0.11)
- nanopb (2.30909.0):
- nanopb/decode (= 2.30909.0)
- nanopb/encode (= 2.30909.0)
- nanopb/decode (2.30909.0)
- nanopb/encode (2.30909.0)
- package_info (0.0.1):
- Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.1.1):
- Flutter
- PromisesObjC (2.3.1)
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- SDWebImage (5.17.0):
- SDWebImage/Core (= 5.17.0)
- SDWebImage/Core (5.17.0)
- share (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- speech_to_text (0.0.1):
- Flutter
- Try
- sqflite (0.0.3):
- Flutter
- FMDB (>= 2.7.5)
- SwiftyGif (5.4.4)
- Toast (4.0.0)
- Try (2.1.1)
- url_launcher_ios (0.0.1):
- Flutter
DEPENDENCIES:
- audioplayers_darwin (from `.symlinks/plugins/audioplayers_darwin/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- firebase_core (from `.symlinks/plugins/firebase_core/ios`)
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`)
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_sound (from `.symlinks/plugins/flutter_sound/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
- package_info (from `.symlinks/plugins/package_info/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- qr_code_scanner (from `.symlinks/plugins/qr_code_scanner/ios`)
- share (from `.symlinks/plugins/share/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
- speech_to_text (from `.symlinks/plugins/speech_to_text/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- Firebase
- FirebaseCore
- FirebaseCoreInternal
- FirebaseInstallations
- FirebaseMessaging
- flutter_sound_core
- FMDB
- GoogleDataTransport
- GoogleUtilities
- MTBBarcodeScanner
- nanopb
- PromisesObjC
- SDWebImage
- SwiftyGif
- Toast
- Try
EXTERNAL SOURCES:
audioplayers_darwin:
:path: ".symlinks/plugins/audioplayers_darwin/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
firebase_core:
:path: ".symlinks/plugins/firebase_core/ios"
firebase_messaging:
:path: ".symlinks/plugins/firebase_messaging/ios"
Flutter:
:path: Flutter
flutter_keyboard_visibility:
:path: ".symlinks/plugins/flutter_keyboard_visibility/ios"
flutter_local_notifications:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_sound:
:path: ".symlinks/plugins/flutter_sound/ios"
fluttertoast:
:path: ".symlinks/plugins/fluttertoast/ios"
image_picker_ios:
:path: ".symlinks/plugins/image_picker_ios/ios"
package_info:
:path: ".symlinks/plugins/package_info/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/ios"
permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios"
qr_code_scanner:
:path: ".symlinks/plugins/qr_code_scanner/ios"
share:
:path: ".symlinks/plugins/share/ios"
shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences_foundation/ios"
speech_to_text:
:path: ".symlinks/plugins/speech_to_text/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
audioplayers_darwin: 877d9a4d06331c5c374595e46e16453ac7eafa40
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
Firebase: 07150e75d142fb9399f6777fa56a187b17f833a0
firebase_core: e477125798fc37cd4ab43ca6a8536bf7e0929c00
firebase_messaging: 334d68c3a36b6d4d5cd91e4f42509e0d4ae49828
FirebaseCore: f86a1394906b97ac445ae49c92552a9425831bed
FirebaseCoreInternal: 950500ad8a08963657f6d8c67b579740c06d6aa1
FirebaseInstallations: 7b99ef103f013624444c614397038219c45f8e63
FirebaseMessaging: bb2c4f6422a753038fe137d90ae7c1af57251316
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
flutter_sound: c60effa2a350fb977885f0db2fbc4c1ad5160900
flutter_sound_core: 26c10e5832e76aaacfae252d8925232281c486ae
fluttertoast: fafc4fa4d01a6a9e4f772ecd190ffa525e9e2d9c
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
GoogleDataTransport: f0308f5905a745f94fb91fea9c6cbaf3831cb1bd
GoogleUtilities: c63691989bf362ba0505507da00eeb326192e83e
image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943
permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6
PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
SDWebImage: 750adf017a315a280c60fde706ab1e552a3ae4e9
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
speech_to_text: b43a7d99aef037bd758ed8e45d79bbac035d2dfe
sqflite: 31f7eba61e3074736dff8807a9b41581e4f7f15a
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
Try: 5ef669ae832617b3cee58cb2c6f99fb767a4ff96
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
PODFILE CHECKSUM: 9addd1ae6176ca7bfe24f8bac9acf6aeb76cd8f5
COCOAPODS: 1.12.1

@ -64,6 +64,7 @@ class URLs {
static get getServiceReport => "$_baseUrl/WorkOrder/GetWorkOrderById"; // get static get getServiceReport => "$_baseUrl/WorkOrder/GetWorkOrderById"; // get
static get createDuplicatedReport => "$_baseUrl/handle/duplicate/request"; // get static get createDuplicatedReport => "$_baseUrl/handle/duplicate/request"; // get
static get searchWorkOrders => "$_baseUrl/WorkOrder/SearchWorkOrders"; static get searchWorkOrders => "$_baseUrl/WorkOrder/SearchWorkOrders";
static get getSubWorkerInfoAccordingToPreviousStep => "$_baseUrl/WorkOrder/GetDataPreviousStep";
static get getServiceReportReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=522"; // get static get getServiceReportReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=522"; // get
static get getServiceReportTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=501"; // get static get getServiceReportTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=501"; // get

@ -83,7 +83,6 @@ class DeviceTransferProvider extends ChangeNotifier {
List<DeviceTransfer> itemsPage = listJson.map((request) => DeviceTransfer.fromJson(request)).toList(); List<DeviceTransfer> itemsPage = listJson.map((request) => DeviceTransfer.fromJson(request)).toList();
items ??= []; items ??= [];
items.addAll(itemsPage.toSet().toList()); items.addAll(itemsPage.toSet().toList());
sortMostRecent(items, deviceTransferSearch.mostRecent);
notifyListeners(); notifyListeners();
if (itemsPage.length == pageItemNumber) { if (itemsPage.length == pageItemNumber) {
nextPage = true; nextPage = true;
@ -102,13 +101,6 @@ class DeviceTransferProvider extends ChangeNotifier {
} }
} }
void sortMostRecent(List<DeviceTransfer> transfer, bool mostRecent) {
if (mostRecent != null) {
transfer.sort((prev, next) =>
(mostRecent ?? false) ? DateTime.tryParse(next.createdOn).compareTo(DateTime.tryParse(prev.createdOn)) : DateTime.tryParse(prev.createdOn).compareTo(DateTime.tryParse(next.createdOn)));
}
}
Future<DeviceTransfer> getRequestById({int assetTransferId}) async { Future<DeviceTransfer> getRequestById({int assetTransferId}) async {
Response response; Response response;
try { try {

@ -52,6 +52,7 @@ class DevicesProvider extends ChangeNotifier {
@required int hospitalId, @required int hospitalId,
String serialNumber, String serialNumber,
String number, String number,
bool isQr = false,
}) async { }) async {
if (_loading == true) return -2; if (_loading == true) return -2;
_loading = true; _loading = true;
@ -75,7 +76,15 @@ class DevicesProvider extends ChangeNotifier {
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // client's request was successfully received
List equipmentListJson = json.decode(response.body)["data"]; List equipmentListJson = json.decode(response.body)["data"];
_devices.addAll(equipmentListJson.map<Device>((device) => Device.fromJson(device, startKeyWithDest: false)).toList()); var dList = equipmentListJson.map<Device>((device) => Device.fromJson(device, startKeyWithDest: false)).toList();
try {
if (isQr) {
dList = dList.where((element) => number?.toLowerCase() == element?.number?.toLowerCase())?.toList() ?? [];
}
} catch (e) {
print(e);
}
_devices.addAll(dList);
nextPage = true; nextPage = true;
} else { } else {
nextPage = false; nextPage = false;

@ -49,7 +49,7 @@ class GasRefillProvider extends ChangeNotifier {
Future<int> getRequests({ Future<int> getRequests({
@required String host, @required String host,
@required User user, @required User user,
bool mostRecent, @required bool mostRecent,
}) async { }) async {
if (isLoading == true) return -2; if (isLoading == true) return -2;
isLoading = true; isLoading = true;
@ -59,24 +59,17 @@ class GasRefillProvider extends ChangeNotifier {
Map<String, dynamic> body = {}; Map<String, dynamic> body = {};
body["pageNumber"] = (items?.length ?? 0) ~/ pageItemNumber + 1; body["pageNumber"] = (items?.length ?? 0) ~/ pageItemNumber + 1;
body["pageSize"] = pageItemNumber; body["pageSize"] = pageItemNumber;
body["mostRecent"] = mostRecent;
print("url:${URLs.getGasRefill}:body:$body"); print("url:${URLs.getGasRefill}:body:$body");
response = await ApiManager.instance.post( response = await ApiManager.instance.post(URLs.getGasRefill, body: body);
URLs.getGasRefill,
body: body,
);
stateCode = response.statusCode; stateCode = response.statusCode;
if (stateCode >= 200 && stateCode < 300) { if (stateCode >= 200 && stateCode < 300) {
// client's request was successfully received // client's request was successfully received
List requestsListJson = json.decode(response.body)["data"]; List requestsListJson = json.decode(response.body)["data"];
List<GasRefillModel> itemsPage = requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList(); List<GasRefillModel> itemsPage = requestsListJson.map((request) => GasRefillModel.fromJson(request)).toList();
if (mostRecent != null) { items ??= [];
items = [];
} else {
items ??= [];
}
items.addAll(itemsPage); items.addAll(itemsPage);
sortMostRecent(items, mostRecent);
notifyListeners(); notifyListeners();
if (itemsPage.length == pageItemNumber) { if (itemsPage.length == pageItemNumber) {
nextPage = true; nextPage = true;
@ -96,12 +89,6 @@ class GasRefillProvider extends ChangeNotifier {
} }
} }
void sortMostRecent(List<GasRefillModel> models, bool mostRecent) {
if (mostRecent != null) {
models.sort((prev, next) => (mostRecent ?? false) ? next.title.compareTo(prev.title) : prev.title.compareTo(next.title));
}
}
Future<int> createModel({ Future<int> createModel({
@required String host, @required String host,
@required User user, @required User user,

@ -69,7 +69,7 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier {
// client's request was successfully received // client's request was successfully received
List requestsListJson = json.decode(utf8.decode(response.bodyBytes)); List requestsListJson = json.decode(utf8.decode(response.bodyBytes));
List<Visit> _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList(); List<Visit> _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList();
if (visits == null) visits = []; visits ??= [];
visits.addAll(_visits); visits.addAll(_visits);
if (_visits.length == pageItemNumber) { if (_visits.length == pageItemNumber) {
nextPage = true; nextPage = true;

@ -16,6 +16,7 @@ import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/models/timer_model.dart'; import 'package:test_sa/models/timer_model.dart';
import '../../../models/service_request/search_work_order.dart'; import '../../../models/service_request/search_work_order.dart';
import '../../../models/service_request/sub_work_order_details.dart';
import '../../../models/user.dart'; import '../../../models/user.dart';
class ServiceRequestsProvider extends ChangeNotifier { class ServiceRequestsProvider extends ChangeNotifier {
@ -77,7 +78,6 @@ class ServiceRequestsProvider extends ChangeNotifier {
List<ServiceRequest> serviceRequestsPage = requestsListJson.map((request) => ServiceRequest.fromJson(request)).toList(); List<ServiceRequest> serviceRequestsPage = requestsListJson.map((request) => ServiceRequest.fromJson(request)).toList();
serviceRequests ??= []; serviceRequests ??= [];
serviceRequests.addAll(serviceRequestsPage); serviceRequests.addAll(serviceRequestsPage);
sortMostRecent(serviceRequests);
notifyListeners(); notifyListeners();
if (serviceRequestsPage.length == pageItemNumber) { if (serviceRequestsPage.length == pageItemNumber) {
nextPage = true; nextPage = true;
@ -96,12 +96,6 @@ class ServiceRequestsProvider extends ChangeNotifier {
} }
} }
void sortMostRecent(List<ServiceRequest> requests) {
requests.sort(
(prev, next) => (search.mostRecent ?? false) ? DateTime.tryParse(next.date).compareTo(DateTime.tryParse(prev.date)) : DateTime.tryParse(prev.date).compareTo(DateTime.tryParse(next.date)),
);
}
Future<ServiceRequest> getSingleServiceRequest({ Future<ServiceRequest> getSingleServiceRequest({
@required String requestId, @required String requestId,
@required String host, @required String host,
@ -454,6 +448,23 @@ class ServiceRequestsProvider extends ChangeNotifier {
} }
} }
Future<SubWorkOrderDetails> getSubWorkOrderDetails({@required String parentId}) async {
Response response;
try {
response = await ApiManager.instance.get(URLs.getSubWorkerInfoAccordingToPreviousStep + "?parentId=$parentId");
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
final workOrderJson = json.decode(response.body)["data"];
return SubWorkOrderDetails.fromJson(workOrderJson);
}
return null;
} catch (e) {
print("getSubWorkOrderDetails [error] : $e");
return null;
}
}
Future<int> createDuplicatedReport({ Future<int> createDuplicatedReport({
@required String host, @required String host,
@required User user, @required User user,

@ -22,7 +22,7 @@ class DeviceTransferSearch {
this.department, this.department,
this.room, this.room,
this.title, this.title,
this.mostRecent, this.mostRecent = true,
}); });
Map<String, dynamic> toMap() { Map<String, dynamic> toMap() {
@ -33,6 +33,9 @@ class DeviceTransferSearch {
if (device != null) { if (device != null) {
search["assetId"] = device.id; search["assetId"] = device.id;
} }
if (mostRecent != null) {
search["mostRecent"] = mostRecent;
}
if (hospital?.id != null) { if (hospital?.id != null) {
search["destSiteId"] = hospital.id; search["destSiteId"] = hospital.id;
} }

@ -23,12 +23,12 @@ class ServiceRequestSearch {
this.deviceName, this.deviceName,
this.model, this.model,
this.hospital, this.hospital,
this.mostRecent,
this.callId, this.callId,
this.from, this.from,
this.to, this.to,
this.assignedEmployee, this.assignedEmployee,
this.dateOperator, this.dateOperator,
this.mostRecent = true,
}); });
fromSearch(ServiceRequestSearch newSearch) { fromSearch(ServiceRequestSearch newSearch) {
@ -51,6 +51,10 @@ class ServiceRequestSearch {
search["assetSerialNumber"] = deviceSerialNumber; search["assetSerialNumber"] = deviceSerialNumber;
} }
if (mostRecent != null) {
search["mostRecent"] = mostRecent;
}
if (deviceNumber != null && deviceNumber.isNotEmpty) { if (deviceNumber != null && deviceNumber.isNotEmpty) {
search["assetNo"] = deviceNumber; search["assetNo"] = deviceNumber;
} }

@ -0,0 +1,60 @@
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/service_request/search_work_order.dart';
import '../fault_description.dart';
class SubWorkOrderDetails {
Lookup equipmentStatus;
Lookup reason;
FaultDescription faultDescription;
// Lookup loanAvailablity;
List<SparePartsWorkOrders> sparePartsWorkOrders;
SubWorkOrderDetails({
this.equipmentStatus,
this.reason,
this.faultDescription,
// this.loanAvailablity,
this.sparePartsWorkOrders,
});
SubWorkOrderDetails.fromJson(dynamic json) {
if (json['equipmentStatus'] != null) equipmentStatus = Lookup.fromJson(json['equipmentStatus']);
if (json['reason'] != null) reason = Lookup.fromJson(json['reason']);
if (json['faultDescription'] != null) faultDescription = FaultDescription.fromJson(json['faultDescription']);
// loanAvailablity = Lookup.fromJson(json['loanAvailablity']);
if (json['sparePartsWorkOrders'] != null) {
sparePartsWorkOrders = [];
json['sparePartsWorkOrders'].forEach((v) {
sparePartsWorkOrders.add(SparePartsWorkOrders.fromJson(v));
});
}
}
SubWorkOrderDetails copyWith({
Lookup equipmentStatus,
Lookup reason,
FaultDescription faultDescription,
// Lookup loanAvailablity,
List<SparePartsWorkOrders> sparePartsWorkOrders,
}) =>
SubWorkOrderDetails(
equipmentStatus: equipmentStatus ?? this.equipmentStatus,
reason: reason ?? this.reason,
faultDescription: faultDescription ?? this.faultDescription,
// loanAvailablity: loanAvailablity ?? this.loanAvailablity,
sparePartsWorkOrders: sparePartsWorkOrders ?? this.sparePartsWorkOrders,
);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['equipmentStatus'] = equipmentStatus?.toMap();
map['reason'] = reason?.toMap();
map['faultDescription'] = faultDescription?.toJson();
// map['loanAvailablity'] = loanAvailablity?.toMap();
if (sparePartsWorkOrders?.isNotEmpty ?? false) {
map['sparePartsWorkOrders'] = sparePartsWorkOrders?.map((e) => e.toJson())?.toList();
}
return map;
}
}

@ -29,7 +29,7 @@ class VisitsSearch {
this.expectedDateTo, this.expectedDateTo,
this.deviceNumber, this.deviceNumber,
this.deviceName, this.deviceName,
this.mostRecent, this.mostRecent = true,
}); });
fromSearch(VisitsSearch newSearch) { fromSearch(VisitsSearch newSearch) {
@ -58,6 +58,10 @@ class VisitsSearch {
_search["siteId"] = hospital.id; _search["siteId"] = hospital.id;
} }
if (mostRecent != null) {
_search["mostRecent"] = mostRecent;
}
if (brand != null && brand.isNotEmpty) { if (brand != null && brand.isNotEmpty) {
// todo get new key // todo get new key
_search[""] = brand; _search[""] = brand;

@ -70,9 +70,20 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
Future getAssetType() async { Future getAssetType() async {
//if (assetTypesProvider == null) { //if (assetTypesProvider == null) {
final serviceRequestProvider = Provider.of<ServiceRequestsProvider>(context);
Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false).reset(); Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false).reset();
assetTypesProvider = Provider.of<ServiceStatusProvider>(context, listen: false); assetTypesProvider = Provider.of<ServiceStatusProvider>(context, listen: false);
_callRequestForWorkOrder = await Provider.of<ServiceRequestsProvider>(context).getCallRequestForWorkOrder(callId: widget.workOrder.callRequest.id.toString()); _callRequestForWorkOrder = await serviceRequestProvider.getCallRequestForWorkOrder(callId: widget.workOrder.callRequest.id.toString());
if (_subWorkOrders?.parentWOId != null) {
final subWoDetails = await serviceRequestProvider.getSubWorkOrderDetails(parentId: _subWorkOrders?.parentWOId.toString());
_subWorkOrders.equipmentStatus = subWoDetails.equipmentStatus;
_subWorkOrders.reason = subWoDetails.reason;
_subWorkOrders.faultDescription = subWoDetails.faultDescription;
_subWorkOrders.sparePartsWorkOrders = subWoDetails.sparePartsWorkOrders;
_serviceReport.equipmentStatus = subWoDetails.equipmentStatus;
_serviceReport.reason = subWoDetails.reason;
_serviceReport.faultDescription = subWoDetails.faultDescription;
}
await assetTypesProvider.getTypes(); await assetTypesProvider.getTypes();
_subWorkOrders?.assetType = assetTypesProvider.statuses?.firstWhere( _subWorkOrders?.assetType = assetTypesProvider.statuses?.firstWhere(
(element) => element.value == _callRequestForWorkOrder?.assetType, (element) => element.value == _callRequestForWorkOrder?.assetType,

@ -131,7 +131,7 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
reportPartID: spare.id, reportPartID: spare.id,
code: spare.sparePart?.partNo, code: spare.sparePart?.partNo,
name: spare.sparePart?.partName, name: spare.sparePart?.partName,
quantity: spare.qty, quantity: spare.qty?.toInt(),
); );
return PartItem( return PartItem(
part: part, part: part,

@ -25,7 +25,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
GasRefillProvider _gasRefillProvider; GasRefillProvider _gasRefillProvider;
UserProvider _userProvider; UserProvider _userProvider;
SettingProvider _settingProvider; SettingProvider _settingProvider;
bool mostRecent = false; bool mostRecent = true;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -49,6 +49,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
await _gasRefillProvider.getRequests( await _gasRefillProvider.getRequests(
user: _userProvider.user, user: _userProvider.user,
host: _settingProvider.host, host: _settingProvider.host,
mostRecent: mostRecent,
); );
}, },
child: Stack( child: Stack(
@ -86,6 +87,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
value: mostRecent, value: mostRecent,
onChange: (value) async { onChange: (value) async {
mostRecent = value; mostRecent = value;
_gasRefillProvider.reset();
await _gasRefillProvider.getRequests( await _gasRefillProvider.getRequests(
user: _userProvider.user, user: _userProvider.user,
host: _settingProvider.host, host: _settingProvider.host,
@ -101,6 +103,7 @@ class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProv
await _gasRefillProvider.getRequests( await _gasRefillProvider.getRequests(
user: _userProvider.user, user: _userProvider.user,
host: _settingProvider.host, host: _settingProvider.host,
mostRecent: mostRecent,
); );
}, },
items: _gasRefillProvider.items, items: _gasRefillProvider.items,

@ -107,7 +107,7 @@ class _RegularVisitsPageState extends State<RegularVisitsPage> with TickerProvid
), ),
), ),
Visibility( Visibility(
visible: _visitsProvider.visitsSearch.toMap().isNotEmpty, visible: (_visitsProvider.visitsSearch.toMap()..remove("mostRecent")).isNotEmpty,
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: AButton( child: AButton(

@ -34,12 +34,19 @@ class _SingleDevicePickerState extends State<SingleDevicePicker> {
TextEditingController numberController = TextEditingController(); TextEditingController numberController = TextEditingController();
TextEditingController snController = TextEditingController(); TextEditingController snController = TextEditingController();
_getDevice(String result) async { _getDevice(String result, {bool isQr = false}) async {
print(result); print(result);
if (result == null) return; if (result == null) return;
// List<Device> devices = await _devicesProvider.getDevicesListBySN(host: _settingProvider.host, user: _userProvider.user, hospitalId: _userProvider.user.clientId, sn: result); // List<Device> devices = await _devicesProvider.getDevicesListBySN(host: _settingProvider.host, user: _userProvider.user, hospitalId: _userProvider.user.clientId, sn: result);
_devicesProvider.reset(); _devicesProvider.reset();
await _devicesProvider.getEquipment(user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: "", number: result); await _devicesProvider.getEquipment(
user: _userProvider.user,
host: _settingProvider.host,
hospitalId: _userProvider.user.clientId,
serialNumber: "",
number: result,
isQr: isQr,
);
_searchableList.clear(); _searchableList.clear();
_searchableList.addAll(_devicesProvider.devices); _searchableList.addAll(_devicesProvider.devices);
// Navigator.of(context).pop(); // Navigator.of(context).pop();
@ -164,7 +171,7 @@ class _SingleDevicePickerState extends State<SingleDevicePicker> {
String result = await Navigator.of(context).push( String result = await Navigator.of(context).push(
MaterialPageRoute(builder: (_) => const ScanQr()), MaterialPageRoute(builder: (_) => const ScanQr()),
) as String; ) as String;
_getDevice(result); _getDevice(result, isQr: true);
}, },
), ),
); );

@ -179,7 +179,7 @@ class AssetTransferSearchDialogState extends State<AssetTransferSearchDialog> wi
), ),
SizedBox(height: 16.0 * AppStyle.getScaleFactor(context)), SizedBox(height: 16.0 * AppStyle.getScaleFactor(context)),
Visibility( Visibility(
visible: _search.toMap().isNotEmpty, visible: (_search.toMap()..remove("mostRecent"))?.isNotEmpty ?? false,
child: Padding( child: Padding(
padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16), padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
child: AButton( child: AButton(

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save