diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index cf4849fd..65c8935d 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -1,4 +1,4 @@ -class URLs{ +class URLs { URLs._(); static const host2 = "http://194.163.164.213/atoms/api"; static const host1 = "https://atomsuat.hmg.com"; // uat url @@ -11,8 +11,7 @@ class URLs{ set host(String value) => _host = value; - static String getFileUrl(String file) => file == null || file.isEmpty - ? null : "$_host/attachment/$file"; + static String getFileUrl(String file) => file == null || file.isEmpty ? null : "$_host/attachment/$file"; // API Routes static get login => "$_baseUrl/MobileAuth/Login"; // post @@ -39,7 +38,7 @@ class URLs{ static get getRecentNotifications => "$_baseUrl/return/user/recent/notification"; // get static get createRequest => "$_baseUrl/CallRequest/AddCallRequest"; // get static get createReport => "$_baseUrl/handle/create/report/issue"; // get - static get updateRequestDate => "$_baseUrl/handle/update/request"; // get + static get updateRequestDate => "$_baseUrl/CallRequest/UpdateCallRequest"; // get // service report static get createServiceReport => "$_baseUrl/WorkOrder/AddWorkOrder"; // get @@ -47,7 +46,7 @@ class URLs{ static get getServiceReport => "$_baseUrl/WorkOrder/GetWorkOrderById"; // get static get createDuplicatedReport => "$_baseUrl/handle/duplicate/request"; // get - 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 getServiceReportStatus => "$_baseUrl/Lookups/GetLookup?lookupEnum=521"; // get static get getServiceReportLastCalls => "$_baseUrl/Lookups/GetLookup?lookupEnum=520"; // get @@ -83,5 +82,4 @@ class URLs{ static get getPentryStatus => "$_baseUrl/Lookups/GetLookup?lookupEnum=401"; // get // contacts static get getPentryContacts => "$_baseUrl/handle/return/all/contacts"; // get - -} \ No newline at end of file +} diff --git a/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart b/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart index feb64cd4..59bf347a 100644 --- a/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart +++ b/lib/controllers/providers/api/preventive_maintenance_visits_provider.dart @@ -9,13 +9,12 @@ import 'package:test_sa/models/visits/visit.dart'; import 'package:test_sa/models/visits/visits_group.dart'; import 'package:test_sa/models/visits/visits_search.dart'; -class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{ - +class PreventiveMaintenanceVisitsProvider extends ChangeNotifier { // number of items call in each request - final pageItemNumber = 50; + final pageItemNumber = 10; //reset provider data - void reset(){ + void reset() { visits = null; nextPage = true; stateCode = null; @@ -44,47 +43,37 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{ /// return state code if request complete may be 200, 404 or 403 /// for more details check http state manager /// lib\controllers\http_status_manger\http_status_manger.dart - Future getVisits ({ + Future getVisits({ @required String host, @required User user, - // VisitsSearch visitsSearch, + // VisitsSearch visitsSearch, }) async { - if(isLoading == true) - return -2; + if (isLoading == true) return -2; isLoading = true; Response response; //userId = 397.toString(); // testing id to view data - try{ + try { response = await get( Uri.parse( - host + URLs.getPreventiveMaintenanceVisits - +"?uid=${user.id}" - "&token=${user.token}" - "&page=${(visits?.length ?? 0) ~/pageItemNumber}" - // +visitsSearch?.toMap() ?? "" + "${host + URLs.getPreventiveMaintenanceVisits}?uid=${user.id}&token=${user.token}&page=${(visits?.length ?? 0) ~/ pageItemNumber}${visitsSearch?.toMap()}", ), - headers: { - "Content-Type":"application/json; charset=utf-8" - } - ); - } catch(error) { + headers: {"Content-Type": "application/json; charset=utf-8"}); + } catch (error) { isLoading = false; stateCode = -1; notifyListeners(); return -1; } stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received List requestsListJson = json.decode(utf8.decode(response.bodyBytes)); - List _visits = requestsListJson.map( - (request) => Visit.fromJson(request)).toList(); - if(visits == null) - visits = []; + List _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList(); + if (visits == null) visits = []; visits.addAll(_visits); - if(_visits.length == pageItemNumber){ + if (_visits.length == pageItemNumber) { nextPage = true; - }else{ + } else { nextPage = false; } } @@ -98,22 +87,21 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{ /// return state code if request complete may be 200, 404 or 403 /// for more details check http state manager /// lib\controllers\http_status_manger\http_status_manger.dart - Future updateGroupOfVisits ({ + Future updateGroupOfVisits({ @required String host, @required User user, VisitsGroup group, }) async { Response response; - Map body = group.toJson(); + Map body = group.toJson(); // body["token"] = user.token ?? ""; // body["uid"] = user.id; //userId = 397.toString(); // testing id to view data - try{ - response = await ApiManager.instance.put( - URLs.updatePreventiveMaintenanceVisits, body: body); + try { + response = await ApiManager.instance.put(URLs.updatePreventiveMaintenanceVisits, body: body); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received // group.visits.forEach((visit) { // visit.status = group.status; @@ -124,11 +112,11 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{ } return response.statusCode; - } catch(error) { + } catch (error) { isLoading = false; stateCode = -1; notifyListeners(); return -1; } } -} \ No newline at end of file +} diff --git a/lib/controllers/providers/api/service_requests_provider.dart b/lib/controllers/providers/api/service_requests_provider.dart index adb8212a..59062251 100644 --- a/lib/controllers/providers/api/service_requests_provider.dart +++ b/lib/controllers/providers/api/service_requests_provider.dart @@ -14,13 +14,12 @@ import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/timer_model.dart'; import 'package:test_sa/models/user.dart'; -class ServiceRequestsProvider extends ChangeNotifier{ - +class ServiceRequestsProvider extends ChangeNotifier { // number of items call in each request - final pageItemNumber = 50; + final pageItemNumber = 10; //reset provider data - void reset(){ + void reset() { serviceRequests = null; nextPage = true; stateCode = null; @@ -49,20 +48,19 @@ class ServiceRequestsProvider extends ChangeNotifier{ /// return state code if request complete may be 200, 404 or 403 /// for more details check http state manager /// lib\controllers\http_status_manger\http_status_manger.dart - Future getRequests ({ + Future getRequests({ @required String host, @required User user, @required int hospitalId, }) async { - if(isLoading == true) - return -2; + if (isLoading == true) return -2; isLoading = true; - if(serviceRequests == null) notifyListeners(); + if (serviceRequests == null) notifyListeners(); Response response; - try{ - Map body = {}; + try { + Map body = {}; body.addAll(search.toMap()); - body["pageNumber"] = (serviceRequests?.length ?? 0) ~/pageItemNumber + 1; + body["pageNumber"] = (serviceRequests?.length ?? 0) ~/ pageItemNumber + 1; body["pageSize"] = pageItemNumber; response = await ApiManager.instance.post( @@ -71,30 +69,27 @@ class ServiceRequestsProvider extends ChangeNotifier{ ); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received List requestsListJson = json.decode(response.body)["data"]; - List serviceRequestsPage = requestsListJson.map( - (request) => ServiceRequest.fromJson(request)).toList(); + List serviceRequestsPage = requestsListJson.map((request) => ServiceRequest.fromJson(request)).toList(); serviceRequests ??= []; serviceRequests.addAll(serviceRequestsPage); - if(serviceRequestsPage.length == pageItemNumber){ + if (serviceRequestsPage.length == pageItemNumber) { nextPage = true; - }else{ + } else { nextPage = false; } } isLoading = false; notifyListeners(); return response.statusCode; - - } catch(error) { + } catch (error) { isLoading = false; stateCode = -1; notifyListeners(); return -1; } - } Future getSingleServiceRequest({ @@ -104,115 +99,93 @@ class ServiceRequestsProvider extends ChangeNotifier{ @required Subtitle subtitle, }) async { String userData = ''; - if(user != null){ - userData += "&uid="+user.id; - userData += "&token="+user.token; + if (user != null) { + userData += "&uid=" + user.id; + userData += "&token=" + user.token; } Response response; - try{ - response = await get( - Uri.parse( - host+URLs.getSingleServiceRequest - +'?call_nid=$requestId' - '$userData',) - ); - }catch(error){ - throw(HttpStatusManger.getStatusMessage( - status: -1, subtitle: subtitle)); + try { + response = await get(Uri.parse( + host + + URLs.getSingleServiceRequest + + '?call_nid=$requestId' + '$userData', + )); + } catch (error) { + throw (HttpStatusManger.getStatusMessage(status: -1, subtitle: subtitle)); } // If the call to the server was successful, parse the JSON. - if (response.statusCode >= 200 && response.statusCode < 300){ + if (response.statusCode >= 200 && response.statusCode < 300) { // If the call to the server was successful, parse the JSON. List jsonList = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")); List _requests = jsonList.map((i) => ServiceRequest.fromJson(i)).toList(); return _requests[0]; - }else{ - throw(HttpStatusManger.getStatusMessage( - status: response.statusCode, subtitle: subtitle)); + } else { + throw (HttpStatusManger.getStatusMessage(status: response.statusCode, subtitle: subtitle)); } - } - Future createRequest ({ + Future createRequest({ @required String host, @required User user, @required ServiceRequest serviceRequest, }) async { - var body = { - "callCreatedBy": { - "id":user.id, - "name":user.userName - }, - "assets":serviceRequest.deviceId == null ? [] : [serviceRequest.deviceId], + "callCreatedBy": {"id": user.id, "name": user.userName}, + "assets": serviceRequest.deviceId == null ? [] : [serviceRequest.deviceId], "requestedDate": DateTime.now().toIso8601String(), "requestedTime": DateTime.now().toIso8601String(), "client": user.hospital?.id ?? '', "callComments": serviceRequest.maintenanceIssue, - "attachmentsCallRequest": serviceRequest.devicePhotos.map((e) => {"name":e}).toList(), + "attachmentsCallRequest": serviceRequest.devicePhotos.map((e) => {"name": e}).toList(), "priority": serviceRequest.priority.toMap(), "defectType": serviceRequest.defectType.toMap(), - "typeofRequest":serviceRequest.type.toMap(), - "requestedThrough":serviceRequest.type.toMap(), + "typeofRequest": serviceRequest.type.toMap(), + "requestedThrough": serviceRequest.type.toMap(), }; - if(serviceRequest.audio != null){ + if (serviceRequest.audio != null) { body["voiceNote"] = serviceRequest.audio; } Response response; - try{ - response = await ApiManager.instance.post( - URLs.createRequest, - body: body - ); + try { + response = await ApiManager.instance.post(URLs.createRequest, body: body); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { - if(serviceRequests != null) - serviceRequests.insert( - 0, - ServiceRequest.fromJson( - json.decode(utf8.decode(response.bodyBytes))[0] - ) - ); + if (response.statusCode >= 200 && response.statusCode < 300) { + if (serviceRequests != null) serviceRequests.insert(0, ServiceRequest.fromJson(json.decode(utf8.decode(response.bodyBytes))[0])); notifyListeners(); } return response.statusCode; - - } catch(error) { + } catch (error) { return -1; } - } - Future createIssueReport ({ + Future createIssueReport({ @required String host, @required User user, @required Issue issue, }) async { Response response; - Map body = issue.toMap(); + Map body = issue.toMap(); body["uid"] = user.id; body["token"] = user.token; - try{ + try { response = await post( - Uri.parse(host+URLs.createReport), + Uri.parse(host + URLs.createReport), body: body, ); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { - - } + if (response.statusCode >= 200 && response.statusCode < 300) {} return response.statusCode; - - } catch(error) { + } catch (error) { return -1; } - } - Future updateDate ({ + Future updateDate({ @required String host, @required User user, @required String newDate, @@ -220,49 +193,41 @@ class ServiceRequestsProvider extends ChangeNotifier{ @required ServiceRequest request, }) async { Response response; - Map body = {}; - body["uid"] = user.id; - body["token"] = user.token; - body["nid"] = request.id; - if(newDate != null) body["date"] = newDate; - if(employee != null) body["ass_emp"] = employee.id.toString(); - try{ - response = await post( - Uri.parse( - //host+ - URLs.updateRequestDate - ), + var body = { + "callCreatedBy": {"id": user.id, "name": user.userName}, + "assets": request.deviceId == null ? [] : [request.deviceId], + "requestedDate": newDate, + "requestedTime": newDate, + }; + try { + response = await ApiManager.instance.put( + URLs.updateRequestDate, body: body, ); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { request.engineerName = employee.name; notifyListeners(); } return response.statusCode; - - } catch(error) { + } catch (error) { return -1; } - } - Future createServiceReport ({ + Future createServiceReport({ @required String host, @required User user, @required ServiceReport report, @required ServiceRequest request, }) async { Response response; - - try{ - Map body = report.toMap(request); + try { + Map body = report.toMap(request); // body["uid"] = user.id; // body["token"] = user.token; - response = await ApiManager.instance.post( - URLs.createServiceReport, - body: body - ); + response = await ApiManager.instance.post(URLs.createServiceReport, body: body); + print(response.body); // response = await post( // Uri.parse( // host+URLs.createServiceReport), @@ -270,54 +235,46 @@ class ServiceRequestsProvider extends ChangeNotifier{ // ); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { reset(); notifyListeners(); } return response.statusCode; - - } catch(error) { + } catch (error) { return -1; } - } - Future createDuplicatedReport ({ + Future createDuplicatedReport({ @required String host, @required User user, @required ServiceRequest request, }) async { Response response; String userData = ''; - if(user != null){ - userData += "&uid="+user.id; - userData += "&token="+user.token; + if (user != null) { + userData += "&uid=" + user.id; + userData += "&token=" + user.token; } - try{ + try { response = await get( - Uri.parse( - host+URLs.createDuplicatedReport - +"?nid=${request.id}" - +userData), + Uri.parse(host + URLs.createDuplicatedReport + "?nid=${request.id}" + userData), ); stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { reset(); notifyListeners(); } return response.statusCode; - - } catch(error) { - + } catch (error) { return -1; } - } - Future updateServiceReport ({ + Future updateServiceReport({ @required String host, @required User user, @required ServiceReport report, @@ -329,14 +286,11 @@ class ServiceRequestsProvider extends ChangeNotifier{ // body["token"] = user.token; // body["job_id"] = request.id; // body["report_id"] = request.reportID; - try{ - Map body = report.toMap(request); + try { + Map body = report.toMap(request); // body["uid"] = user.id; // body["token"] = user.token; - response = await ApiManager.instance.put( - URLs.updateServiceReport, - body: body - ); + response = await ApiManager.instance.put(URLs.updateServiceReport, body: body); // response = await post( // Uri.parse( // host+URLs.updateServiceReport), @@ -344,52 +298,46 @@ class ServiceRequestsProvider extends ChangeNotifier{ // ); // stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { reset(); notifyListeners(); } return response.statusCode; - - } catch(error) { + } catch (error) { return -1; } - } - Future updateServiceReportTimer ({ + Future updateServiceReportTimer({ @required String host, @required User user, @required TimerModel timer, @required ServiceRequest request, }) async { Response response; - Map body = {}; + Map body = {}; body["uid"] = user.id; body["token"] = user.token; body["job_id"] = request.id; body["start_time"] = (timer.startAt.millisecondsSinceEpoch / 1000).toStringAsFixed(0); - body["end_time"] = (timer.endAt.millisecondsSinceEpoch / 1000).toStringAsFixed(0); + body["end_time"] = (timer.endAt.millisecondsSinceEpoch / 1000).toStringAsFixed(0); body["working_hours"] = (timer.durationInSecond / 60 / 60).toStringAsFixed(5); body["report_id"] = request.reportID; - try{ + try { response = await post( - Uri.parse( - host+URLs.updateServiceReport), + Uri.parse(host + URLs.updateServiceReport), body: body, ); //stateCode = response.statusCode; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // reset(); // notifyListeners(); } return response.statusCode; - - } catch(error) { - + } catch (error) { return -1; } - } Future getSingleServiceReport({ @@ -398,29 +346,21 @@ class ServiceRequestsProvider extends ChangeNotifier{ @required User user, @required Subtitle subtitle, }) async { - Response response; - try{ + try { response = await ApiManager.instance.get( URLs.getServiceReport + "?workOrderId=$reportId", - ); - - }catch(error){ - throw(HttpStatusManger.getStatusMessage( - status: -1, subtitle: subtitle)); + ); + } catch (error) { + throw (HttpStatusManger.getStatusMessage(status: -1, subtitle: subtitle)); } // If the call to the server was successful, parse the JSON. - if (response.statusCode >= 200 && response.statusCode < 300){ + if (response.statusCode >= 200 && response.statusCode < 300) { // If the call to the server was successful, parse the JSON. - return ServiceReport.fromJson( - json.decode(response.body)["data"],reportId); - }else{ - throw(HttpStatusManger.getStatusMessage( - status: response.statusCode, subtitle: subtitle)); + return ServiceReport.fromJson(json.decode(response.body)["data"], reportId); + } else { + throw (HttpStatusManger.getStatusMessage(status: response.statusCode, subtitle: subtitle)); } - } - - -} \ No newline at end of file +} diff --git a/lib/controllers/providers/api/user_provider.dart b/lib/controllers/providers/api/user_provider.dart index 35634708..918787b0 100644 --- a/lib/controllers/providers/api/user_provider.dart +++ b/lib/controllers/providers/api/user_provider.dart @@ -6,10 +6,9 @@ import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/models/user.dart'; -class UserProvider extends ChangeNotifier{ - +class UserProvider extends ChangeNotifier { //reset provider data - void reset(){ + void reset() { _user = null; ApiManager.instance.user = user; _loading = false; @@ -25,7 +24,6 @@ class UserProvider extends ChangeNotifier{ notifyListeners(); } - // when login or register in-process _login = true // when login or register is done or not start = false bool _loading = false; @@ -41,30 +39,30 @@ class UserProvider extends ChangeNotifier{ /// return state code if request complete may be 200, 404 or 403 /// for more details check http state manager /// lib\controllers\http_status_manger\http_status_manger.dart - Future login ({ + Future login({ @required String host, @required User user, }) async { - if(_loading == true) - return -2; + if (_loading == true) return -2; _loading = true; notifyListeners(); Response response; - try{ + try { response = await ApiManager.instance.post( - URLs.login, - body: await user.toLoginJson(), + URLs.login, + body: await user.toLoginJson(), ); _loading = false; - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received _user = User.fromJson(jsonDecode(response.body)); ApiManager.instance.user = _user; + notifyListeners(); return response.statusCode; } notifyListeners(); return response.statusCode; - } catch(error) { + } catch (error) { _loading = false; notifyListeners(); return -1; @@ -77,28 +75,27 @@ class UserProvider extends ChangeNotifier{ /// return state code if request complete may be 200, 404 or 403 /// for more details about state codes check http state manager /// lib\controllers\http_status_manger\http_status_manger.dart - Future register ({ + Future register({ @required String host, @required User user, }) async { - if(_loading == true) - return -2; + if (_loading == true) return -2; _loading = true; notifyListeners(); Response response; - try{ + try { response = await ApiManager.instance.post( URLs.register, body: await user.toLoginJson(), ); - } catch(error) { + } catch (error) { _loading = false; notifyListeners(); return -1; } _loading = false; notifyListeners(); - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received _user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]); _user.hospital = user.hospital; @@ -114,31 +111,27 @@ class UserProvider extends ChangeNotifier{ /// return state code if request complete may be 200, 404 or 403 /// for more details about state codes check http state manager /// lib\controllers\http_status_manger\http_status_manger.dart - Future updateProfile ({ + Future updateProfile({ @required String host, @required User user, }) async { - if(_loading == true) - return -2; + if (_loading == true) return -2; _loading = true; notifyListeners(); Response response; - Map jsonObject ={}; + Map jsonObject = {}; jsonObject["uid"] = user.id; jsonObject["token"] = user.token; - if(user.department.id != _user.department.id) - jsonObject["department"] = user.department.id; - if(user.whatsApp != _user.whatsApp) - jsonObject["whatsapp"] = user.whatsApp; - if(user.phoneNumber != _user.phoneNumber) - jsonObject["phone"] = user.phoneNumber; - try{ + if (user.department.id != _user.department.id) jsonObject["department"] = user.department.id; + if (user.whatsApp != _user.whatsApp) jsonObject["whatsapp"] = user.whatsApp; + if (user.phoneNumber != _user.phoneNumber) jsonObject["phone"] = user.phoneNumber; + try { response = response = await ApiManager.instance.post( URLs.login, body: jsonObject, ); - } catch(error) { + } catch (error) { _loading = false; notifyListeners(); return -1; @@ -147,7 +140,7 @@ class UserProvider extends ChangeNotifier{ _loading = false; notifyListeners(); - if(response.statusCode >= 200 && response.statusCode < 300) { + if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received _user = User.fromJson(jsonDecode(utf8.decode(response.bodyBytes))[0]); _user.hospital = user.hospital; @@ -157,5 +150,4 @@ class UserProvider extends ChangeNotifier{ } return response.statusCode; } - -} \ No newline at end of file +} diff --git a/lib/models/device/device.dart b/lib/models/device/device.dart index 5bcecd50..001289e2 100644 --- a/lib/models/device/device.dart +++ b/lib/models/device/device.dart @@ -3,7 +3,7 @@ import 'package:test_sa/models/lookup.dart'; import 'model.dart'; -class Device{ +class Device { int id; String serialNumber; String number; @@ -12,7 +12,6 @@ class Device{ ModelDefinition modelDefinition; Hospital hospital; - Device({ this.id, this.serialNumber, @@ -21,20 +20,15 @@ class Device{ // this.brand, // this.model, this.modelDefinition, - }); - - - - factory Device.fromJson(Map parsedJson){ - + factory Device.fromJson(Map parsedJson) { return Device( id: parsedJson["id"], serialNumber: parsedJson["assetSerialNo"], number: parsedJson["assetNumber"], - modelDefinition:ModelDefinition.fromJson(parsedJson["modelDefinition"]), - hospital:Hospital.fromJson(parsedJson["site"]), + modelDefinition: ModelDefinition.fromJson(parsedJson["modelDefinition"]), + hospital: Hospital.fromJson(parsedJson["site"]), // parsedJson["modelDefinition"] == null ? "" : // parsedJson["modelDefinition"]["manufacturerName"], // model: parsedJson["modelDefinition"] == null ? "" : @@ -42,7 +36,7 @@ class Device{ ); } - factory Device.fromDevice(Device device){ + factory Device.fromDevice(Device device) { return Device( id: device.id, serialNumber: device.serialNumber, @@ -59,7 +53,8 @@ class Device{ 'assetNumber': number, 'modelDefinition': modelDefinition.toJson(), 'site': hospital.toMap(), - 'AssetType':assetType.toMap(), + 'AssetType': assetType.toMap(), + "supplier": {"id": 0, "suppliername": "string"}, }; } -} \ No newline at end of file +} diff --git a/lib/models/pantry/pentry.dart b/lib/models/pantry/pentry.dart index 0f7e1cfa..82ef9fd6 100644 --- a/lib/models/pantry/pentry.dart +++ b/lib/models/pantry/pentry.dart @@ -9,7 +9,7 @@ import 'package:test_sa/models/pantry/pm_kit.dart'; import 'package:test_sa/models/pantry/ppm_check_list.dart'; import 'package:test_sa/models/timer_model.dart'; -class Pentry{ +class Pentry { Lookup ppmVisitStatus; Lookup status; TimerModel timer; @@ -27,55 +27,50 @@ class Pentry{ Uint8List localNurseSignature; Uint8List localEngineerSignature; - Pentry({ - this.travelingHours, - this.timer, - this.status, - this.ppmVisitStatus, - this.actualVisitDate, - this.expectedVisitDate, - this.image, - this.imageFile, - // this.contacts, - this.ppmCheckLists, - this.calibrationTools, - this.pmKits, - this.signatureNurse, - this.signatureEngineer, - this.localNurseSignature, - this.localEngineerSignature - }); + Pentry( + {this.travelingHours, + this.timer, + this.status, + this.ppmVisitStatus, + this.actualVisitDate, + this.expectedVisitDate, + this.image, + this.imageFile, + // this.contacts, + this.ppmCheckLists, + this.calibrationTools, + this.pmKits, + this.signatureNurse, + this.signatureEngineer, + this.localNurseSignature, + this.localEngineerSignature}); - bool validate(){ - if(actualVisitDate == null) return false; - if(expectedVisitDate == null) return false; - if(timer == null && timer.endAt != null) return false; - if(ppmVisitStatus == null) return false; + bool validate() { + if (actualVisitDate == null) return false; + if (expectedVisitDate == null) return false; + if (timer == null && timer.endAt != null) return false; + if (ppmVisitStatus == null) return false; //if(status == null) return false; return true; } - - Map toMap(int visitId) { Map map = {}; map["visitStatusId"] = ppmVisitStatus?.id.toString(); //if(status != null) map["visitStatusId"] = status?.id.toString(); - if(travelingHours != null) map["travelingHours"] = travelingHours; + if (travelingHours != null) map["travelingHours"] = travelingHours; //if(imageFile != null) map["file_attachement"] = base64Encode(imageFile.readAsBytesSync()); map["actualDate"] = actualVisitDate.toIso8601String(); map["expectedDate"] = expectedVisitDate.toIso8601String(); - if(timer != null){ + if (timer != null) { map["startDate"] = timer.startAt.toIso8601String(); - map["endDate"] = timer.endAt?.toIso8601String() ?? DateTime.now().toIso8601String(); + map["endDate"] = timer.endAt?.toIso8601String() ?? DateTime.now().toIso8601String(); map["workingHours"] = (timer.durationInSecond / 60 / 60).toStringAsFixed(5); } - if(imageFile !=null){ - map["vAttachments"]=[ - { - "attachmentName":(imageFile.path.split("/").last+base64Encode(imageFile.readAsBytesSync())) - } + if (imageFile != null) { + map["vAttachments"] = [ + {"attachmentName": (imageFile.path.split("/").last + base64Encode(imageFile.readAsBytesSync()))} ]; } @@ -89,8 +84,8 @@ class Pentry{ map["vChecklists"] = ppmCheckLists.map((e) => e.toMap(visitId)).toList(); map["vCalibrationTools"] = calibrationTools.map((e) => e.toMap(visitId)).toList(); map["vKits"] = pmKits.map((e) => e.toMap(visitId)).toList(); - map["nurseSignature"] = signatureNurse; - map["engSignature"] = signatureEngineer; + map["nurseSignature"] = "${DateTime.now().toIso8601String()}.png|$signatureNurse"; + map["engSignature"] = "${DateTime.now().toIso8601String()}.png|$signatureEngineer"; return map; } @@ -103,42 +98,32 @@ class Pentry{ // } List pmKits = []; - if(map['vKits'] != null){ - pmKits =(map['vKits'] as List) - .map((e) => PMKit.fromMap(e as Map)) - .toList(); + if (map['vKits'] != null) { + pmKits = (map['vKits'] as List).map((e) => PMKit.fromMap(e as Map)).toList(); } List ppmCheckLists = []; - if(map['vChecklists'] != null){ - ppmCheckLists =(map['vChecklists'] as List) - .map((e) => PPMCheckList.fromMap(e as Map)) - .toList(); + if (map['vChecklists'] != null) { + ppmCheckLists = (map['vChecklists'] as List).map((e) => PPMCheckList.fromMap(e as Map)).toList(); } List calibrationTools = []; - if(map['vCalibrationTools'] != null){ - calibrationTools =(map['vCalibrationTools'] as List) - .map((e) => CalibrationTool.fromMap(e as Map)) - .toList(); + if (map['vCalibrationTools'] != null) { + calibrationTools = (map['vCalibrationTools'] as List).map((e) => CalibrationTool.fromMap(e as Map)).toList(); } return Pentry( - status: Lookup(id: map["taskStatusId"],name: map["taskStatusName"]), - ppmVisitStatus: Lookup(id: map["visitStatusId"],name: map["visitStatusName"]), + status: Lookup(id: map["taskStatusId"], name: map["taskStatusName"]), + ppmVisitStatus: Lookup(id: map["visitStatusId"], name: map["visitStatusName"]), actualVisitDate: DateTime.tryParse(map["actualDate"] ?? ""), expectedVisitDate: DateTime.tryParse(map["expectedDate"] ?? ""), travelingHours: map["travelingHours"], - timer: TimerModel( - startAt: DateTime.tryParse(map["startDate"] ?? ""), - endAt: DateTime.tryParse(map["endDate"] ?? ""), - durationInSecond: (int.tryParse(map["workingHours"] ?? "") ?? 0) * 60 *60 - ), + timer: TimerModel(startAt: DateTime.tryParse(map["startDate"] ?? ""), endAt: DateTime.tryParse(map["endDate"] ?? ""), durationInSecond: (int.tryParse(map["workingHours"] ?? "") ?? 0) * 60 * 60), // contacts: contacts, ppmCheckLists: ppmCheckLists, calibrationTools: calibrationTools, pmKits: pmKits, - signatureNurse: URLs.getFileUrl(map["nurseSignature"]) , - signatureEngineer:URLs.getFileUrl(map["engSignature"]), + signatureNurse: URLs.getFileUrl(map["nurseSignature"]), + signatureEngineer: URLs.getFileUrl(map["engSignature"]), ); } @@ -158,19 +143,18 @@ class Pentry{ String signatureEngineer, }) { return Pentry( - ppmVisitStatus: ppmVisitStatus ?? this.ppmVisitStatus, - status: status ?? this.status, - timer: timer ?? this.timer, - actualVisitDate: actualVisitDate ?? this.actualVisitDate, - expectedVisitDate: expectedVisitDate ?? this.expectedVisitDate, - travelingHours: travelingHours ?? this.travelingHours, - image: image ?? this.image, - imageFile: imageFile ?? this.imageFile, - ppmCheckLists: ppmCheckLists ?? this.ppmCheckLists?.map((e) => e.copyWith())?.toList(), - calibrationTools: calibrationTools ?? this.calibrationTools?.map((e) => e.copyWith())?.toList(), - pmKits: pmKits ?? this.pmKits.map((e) => e.copyWith()).toList(), - signatureNurse: signatureNurse ?? this.signatureNurse, - signatureEngineer: signatureEngineer ?? this.signatureEngineer - ); + ppmVisitStatus: ppmVisitStatus ?? this.ppmVisitStatus, + status: status ?? this.status, + timer: timer ?? this.timer, + actualVisitDate: actualVisitDate ?? this.actualVisitDate, + expectedVisitDate: expectedVisitDate ?? this.expectedVisitDate, + travelingHours: travelingHours ?? this.travelingHours, + image: image ?? this.image, + imageFile: imageFile ?? this.imageFile, + ppmCheckLists: ppmCheckLists ?? this.ppmCheckLists?.map((e) => e.copyWith())?.toList(), + calibrationTools: calibrationTools ?? this.calibrationTools?.map((e) => e.copyWith())?.toList(), + pmKits: pmKits ?? this.pmKits.map((e) => e.copyWith()).toList(), + signatureNurse: signatureNurse ?? this.signatureNurse, + signatureEngineer: signatureEngineer ?? this.signatureEngineer); } -} \ No newline at end of file +} diff --git a/lib/models/pantry/ppm_check_list.dart b/lib/models/pantry/ppm_check_list.dart index 3ed03dae..23594b90 100644 --- a/lib/models/pantry/ppm_check_list.dart +++ b/lib/models/pantry/ppm_check_list.dart @@ -1,6 +1,6 @@ import 'package:test_sa/models/lookup.dart'; -class PPMCheckList{ +class PPMCheckList { int id; Lookup status; String title; @@ -19,17 +19,17 @@ class PPMCheckList{ return { 'id': id ?? 0, "visitId": visitId, - if(status != null) 'taskStatusId': status?.id.toString(), - if(title != null) 'task': title, - if(comment != null) 'taskComment': comment, - if(measuredValue != null) 'measuredValue': measuredValue, + if (status != null) 'taskStatusId': status?.id, + if (title != null) 'task': title, + if (comment != null) 'taskComment': comment, + if (measuredValue != null) 'measuredValue': measuredValue, }; } factory PPMCheckList.fromMap(Map map) { return PPMCheckList( id: map['id'] as int, - status: Lookup(id: map["taskStatusId"],name: map["taskStatusName"]), + status: Lookup(id: map["taskStatusId"], name: map["taskStatusName"]), title: map['task'] as String, comment: map['taskComment'] as String, measuredValue: map['measuredValue'] as String, @@ -51,4 +51,4 @@ class PPMCheckList{ measuredValue: measuredValue ?? this.measuredValue, ); } -} \ No newline at end of file +} diff --git a/lib/models/service_report.dart b/lib/models/service_report.dart index 7016d0d6..8abb1303 100644 --- a/lib/models/service_report.dart +++ b/lib/models/service_report.dart @@ -36,99 +36,98 @@ class ServiceReport { Uint8List localNurseSignature; Uint8List localEngineerSignature; - ServiceReport({ - this.id, - this.visitDate, - this.endDate, - this.assetType, - this.status, - this.type, - this.faultDescriptionId, - //this.workHours, - this.travelingHours, - this.parts, - this.engineer, - this.workPreformed, - this.reason, - this.operatingHours, - this.callLastSituation, - this.jobSheetNumber, - this.image, - this.device, - this.invoiceCode, - this.invoiceNumber, - this.quantity = "1", - this.timer, - this.signatureNurse, - this.signatureEngineer, - this.localNurseSignature, - this.localEngineerSignature - }); + ServiceReport( + {this.id, + this.visitDate, + this.endDate, + this.assetType, + this.status, + this.type, + this.faultDescriptionId, + //this.workHours, + this.travelingHours, + this.parts, + this.engineer, + this.workPreformed, + this.reason, + this.operatingHours, + this.callLastSituation, + this.jobSheetNumber, + this.image, + this.device, + this.invoiceCode, + this.invoiceNumber, + this.quantity = "1", + this.timer, + this.signatureNurse, + this.signatureEngineer, + this.localNurseSignature, + this.localEngineerSignature}); - Map toMap(ServiceRequest request){ - Map _map = {}; - if(id != null) _map["id"] = id; - if(visitDate != null) _map["visitDate"] = visitDate.toIso8601String(); + Map toMap(ServiceRequest request) { + Map _map = {}; + if (id != null) _map["id"] = id; + if (visitDate != null) _map["visitDate"] = visitDate.toIso8601String(); //if(serviceType != null) _map["service_type"] = serviceType.id.toString(); - if(status != null) _map["status"] = status?.toMap(); - if(type != null) _map["typeOfWO"] = type?.toMap(); - if(assetType != null) _map["TypeOfWO"] = assetType?.toMap(); + if (status != null) _map["status"] = status?.toMap(); + if (type != null) _map["typeOfWO"] = type?.toMap(); + if (assetType != null) _map["TypeOfWO"] = assetType?.toMap(); //if(faultDescriptionId != null && faultDescriptionId.isNotEmpty) _map["fault_description"] = faultDescriptionId; //if(workHours != null && workHours.isNotEmpty) _map["working_hours"] = workHours; - if(timer != null){ + if (timer != null) { _map["startofWorkTime"] = timer.startAt.toIso8601String(); - _map["endofWorkTime"] = (timer.endAt ?? DateTime.now()).toIso8601String(); + _map["endofWorkTime"] = (timer.endAt ?? DateTime.now()).toIso8601String(); _map["workingHours"] = (timer.durationInSecond / 60 / 60).toStringAsFixed(5); } - if(travelingHours != null && travelingHours.isNotEmpty) _map["traveling_hours"] = travelingHours; + if (travelingHours != null && travelingHours.isNotEmpty) _map["traveling_hours"] = travelingHours; // if(workPreformed != null && workPreformed.isNotEmpty){ // _map["faultDescription"] = { // //"id":faultDescriptionId ?? 0, // "workPerformed":workPreformed // }; // } - if(jobSheetNumber != null && jobSheetNumber.isNotEmpty) _map["job_sheet_no"] = jobSheetNumber; - if(parts != null && parts.isNotEmpty){ + if (jobSheetNumber != null && jobSheetNumber.isNotEmpty) _map["job_sheet_no"] = jobSheetNumber; + if (parts != null && parts.isNotEmpty) { _map["sparePartsWorkOrders"] = parts.map((e) => e.toJson()).toList(); } - if(device != null && device.id != null){ + if (device != null && device.id != null) { _map["callRequest"] = { - "id":request.id, - "asset":device?.toMap(assetType), + "id": request.id, + "asset": device?.toMap(assetType), }; _map["callRequest"]["asset"]["invoiceNumber"] = invoiceNumber; } _map["AssignedEmployee"] = engineer?.toMap(); //if(quantity != null && quantity.isNotEmpty) _map["qty"] = quantity; //if(endDate != null) _map["end_date"] = (endDate.millisecondsSinceEpoch ~/ 1000).toString(); - if(reason != null) _map["reason"] = reason.toMap(); + if (reason != null) _map["reason"] = reason.toMap(); //if(operatingHours != null && operatingHours.isNotEmpty) _map["operation_hours"] = operatingHours; - if(callLastSituation != null) _map["calllastSituation"] = callLastSituation.toMap(); + if (callLastSituation != null) _map["calllastSituation"] = callLastSituation.toMap(); //if(image != null) _map["image"] = image; //if(invoiceCode != null) _map["invoice_no"] = invoiceCode; //if(invoiceNumber != null) _map["invoice_code"] = invoiceNumber; - if(image != null){ - _map["attachmentsWorkOrder"]=[{ - "name":image - }]; + if (image != null) { + _map["attachmentsWorkOrder"] = [ + {"name": image} + ]; } _map["nurseSignature"] = signatureNurse; _map["engSignature"] = signatureEngineer; return _map; } - bool validate(){ - if(visitDate == null) return false; + bool validate() { + if (visitDate == null) return false; //if(serviceType == null) return false; - if(status == null) return false; - if(type == null && assetType==null) return false; - if(engineer == null) return false; - if(callLastSituation == null) return false; - if(callLastSituation?.value == 12){ - // if(invoiceCode != null || invoiceCode?.isEmpty == true) return false; - if(invoiceNumber != null || invoiceNumber?.isEmpty== true ) return false; + if (status == null) return false; + if (type == null && assetType == null) return false; + if (engineer == null) return false; + if (callLastSituation == null) return false; + if (callLastSituation?.value == 12) { + // if(invoiceCode != null || invoiceCode?.isEmpty == true) return false; + if (invoiceNumber != null || invoiceNumber?.isEmpty == true) return false; } - if(parts == null) return false; + if (parts == null) return false; //if(endDate == null) return false; //if(reason == null) return false; //todo uncoment this line @@ -138,16 +137,14 @@ class ServiceReport { return true; } - factory ServiceReport.fromJson(Map parsedJson,int id){ - List _parts = []; - if(parsedJson["sparePartsWorkOrders"] != null){ - if(parsedJson["sparePartsWorkOrders"][0]["id"] != null){ - List partsList = parsedJson["sparePartsWorkOrders"]; - _parts = partsList.map((e) => Part.fromJson( - e["sparePart"],reportJson: e)).toList(); - } - + factory ServiceReport.fromJson(Map parsedJson, int id) { + List _parts = []; + if (parsedJson["sparePartsWorkOrders"] != null) { + if (parsedJson["sparePartsWorkOrders"][0]["id"] != null) { + List partsList = parsedJson["sparePartsWorkOrders"]; + _parts = partsList.map((e) => Part.fromJson(e["sparePart"], reportJson: e)).toList(); } + } return ServiceReport( id: id, assetType: Lookup.fromJson(parsedJson["assetType"]), @@ -156,7 +153,7 @@ class ServiceReport { status: Lookup.fromJson(parsedJson["status"]), type: Lookup.fromJson(parsedJson["typeOfWO"]), //faultDescriptionId: parsedJson["fault_description"], - endDate:DateTime.tryParse(parsedJson["endofWorkTime"]), + endDate: DateTime.tryParse(parsedJson["endofWorkTime"]), //invoiceCode: parsedJson["invoice_code"], //invoiceNumber: parsedJson["invoice_no"], //jobSheetNumber: parsedJson["job_sheet_no"], @@ -168,14 +165,11 @@ class ServiceReport { visitDate: DateTime.tryParse(parsedJson["visitDate"]), //workHours: parsedJson["working_hours"], timer: TimerModel( - startAt: DateTime.tryParse(parsedJson["startofWorkTime"]), - endAt: DateTime.tryParse(parsedJson["endofWorkTime"]), - durationInSecond: ((parsedJson["workingHours"] ?? 0) * 60 *60).toInt() - ), + startAt: DateTime.tryParse(parsedJson["startofWorkTime"]), endAt: DateTime.tryParse(parsedJson["endofWorkTime"]), durationInSecond: ((parsedJson["workingHours"] ?? 0) * 60 * 60).toInt()), //workPreformed: parsedJson["work_performed"], - device: Device.fromJson(parsedJson["callRequest"]["asset"]), - signatureNurse: URLs.getFileUrl(parsedJson["nurseSignature"]) , - signatureEngineer:URLs.getFileUrl(parsedJson["engSignature"]), + device: Device.fromJson(parsedJson["callRequest"]["asset"]), + signatureNurse: URLs.getFileUrl(parsedJson["nurseSignature"]), + signatureEngineer: URLs.getFileUrl(parsedJson["engSignature"]), ); } @@ -183,4 +177,4 @@ class ServiceReport { // return date == null || date.isEmpty // ? null : DateTime.fromMillisecondsSinceEpoch(int.tryParse(date) * 1000); // } -} \ No newline at end of file +} diff --git a/lib/views/pages/login.dart b/lib/views/pages/login.dart index 4d872ac9..3bd061b0 100644 --- a/lib/views/pages/login.dart +++ b/lib/views/pages/login.dart @@ -13,8 +13,6 @@ import 'package:test_sa/views/widgets/app_text_form_field.dart'; import 'package:test_sa/views/widgets/buttons/app_button.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; -import '../widgets/buttons/app_outlined_button.dart'; - class Login extends StatefulWidget { static final String id = "/login"; @@ -115,16 +113,17 @@ class _LoginState extends State { user: _user, host: _settingProvider.host, ); - if (status >= 200 && status < 300) { + if (status >= 200 && status < 300 && _userProvider.user?.userName != null) { _settingProvider.setUser(_userProvider.user); - // if (_userProvider.user.isActive) - Navigator.of(context).pushNamed(LandPage.id); - // else - // Fluttertoast.showToast(msg: _subtitle.activationAlert); + // if (_userProvider.user.isActive) + Navigator.of(context).pushNamed(LandPage.id); + // else + // Fluttertoast.showToast(msg: _subtitle.activationAlert); } else { - if(status >= 400 && status < 500) return; + if (status >= 400 && status < 500) return; - String errorMessage = status == 400 ? _subtitle.wrongEmailOrPassword : HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); + String errorMessage = + status == 400 || _userProvider.user?.userName == null ? _subtitle.wrongEmailOrPassword : HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text(errorMessage), ));