Merge master into my work

merge-requests/21/head
zaid_daoud 2 years ago
parent c79ac5e5b3
commit f90df43023

@ -142,8 +142,8 @@ class ApiClient {
}
}
if(!kReleaseMode)
{ print("url:$url");
if (!kReleaseMode) {
print("url:$url");
print("requestBody:$requestBody");
}
@ -192,6 +192,9 @@ class ApiClient {
headers['Content-Type'] = 'application/json';
}
}
if (!kReleaseMode) {
print(jsonObject);
}
if (isFormData) {
headers = {'Content-Type': 'application/x-www-form-urlencoded'};

@ -19,6 +19,7 @@ class PreventiveMaintenanceApiClient {
factory PreventiveMaintenanceApiClient() => _instance;
Future getVisits({required int pageItemNumber, VisitsSearch? visitsSearch}) async {
print('get visits');
final response = await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.getPreventiveMaintenanceVisits}',
headers: {"Content-Type": "application/json; charset=utf-8"},
@ -35,6 +36,7 @@ class PreventiveMaintenanceApiClient {
}
Future updateGroupOfVisits({required VisitsGroup group}) async {
print('update group of visits');
final user = UserApiClient().user;
Map<String, String> body = group.toJson();
body["token"] = user?.token ?? "";

@ -19,8 +19,11 @@ class ServiceRequestApiClient {
factory ServiceRequestApiClient() => _instance;
// 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
/// ### The result will be added to [serviceRequests]
Future createRequest(ServiceRequest serviceRequest) async {
print("create request");
final user = UserApiClient().user;
await ApiClient().postJsonForObject(
(json) {
@ -29,41 +32,135 @@ class ServiceRequestApiClient {
},
'${URLs.host1}${URLs.createRequest}',
{
// "uid": user?.id,
// "token": user?.token ?? "",
// "sn_id": serviceRequest.deviceId ?? "",
// "date": (DateTime.now().millisecondsSinceEpoch).toString(),
// "client": user?.hospital?.id ?? '',
// "complaint": serviceRequest.maintenanceIssue,
// "image": json.encode(serviceRequest.devicePhotos),
// "priority": (serviceRequest.priority?.id).toString(),
// "defect_types": (serviceRequest.defectType?.id).toString(),
// "audio": serviceRequest.audio,
"callNo": serviceRequest.id,
"callCreatedBy": {"name": serviceRequest.engineerName},
"requestedDate": DateTime.now().millisecondsSinceEpoch.toString(),
"requestedTime": DateTime.now().millisecondsSinceEpoch.toString(),
"defectType": {"id": serviceRequest.defectType?.id, "name": serviceRequest.defectType?.label, "value": serviceRequest.defectType?.id},
// "assets": [0],
"assignedEmployee": {"id": user?.id.toString(), "name": user?.username},
"voiceNote": serviceRequest.audio,
// "callSiteContactPerson": [
// {"id": 0, "employeeCode": "string", "name": "string", "telephone": "string", "job": "string", "email": "string", "land": "string", "contactUserId": "string"}
// ],
"priority": {"id": serviceRequest.priority?.id, "name": serviceRequest.priority?.label, "value": serviceRequest.priority?.id},
// "requestedThrough": {"id": 0, "name": "string", "value": 0},
// "typeofRequest": {"id": 0, "name": "string", "value": 0},
// "callComments": "string",
// "noofFollowup": 0,
// "attachmentsCallRequest": [
// {"id": "", "name": ""}
// ],
"status": {"name": serviceRequest.statusLabel, "value": serviceRequest.statusValue},
// "callLastSituation": {"id": 0, "name": "string", "value": 0},
// "firstAction": {"id": 0, "name": "string", "value": 0},
// "loanAvailablity": {"id": 0, "name": "string", "value": 0},
// "comments": "string",
// "firstActionDate": "2023-04-17T10:39:59.599Z",
"visitDate": serviceRequest.visitDate,
// "callReview": {"id": 0, "name": "string", "value": serviceRequest.}
},
// {
// "uid": user?.id,
// "token": user?.token ?? "",
// "sn_id": serviceRequest.deviceId ?? "",
// "date": (DateTime.now().millisecondsSinceEpoch).toString(),
// "client": user?.hospital?.id ?? '',
// "complaint": serviceRequest.maintenanceIssue,
// "image": json.encode(serviceRequest.devicePhotos),
// "priority": (serviceRequest.priority?.id).toString(),
// "defect_types": (serviceRequest.defectType?.id).toString(),
// "audio": serviceRequest.audio,
// },
);
}
// 222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
/// Get Service Requests and Fill [serviceRequests]
Future<List<ServiceRequest>> getRequests({pageItemNumber, ServiceRequestSearch? search}) async {
print("get requests xx");
final user = UserApiClient().user;
final response = await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.getServiceRequests}',
headers: {"Content-Type": "application/json; charset=utf-8"},
print("user name : ${user?.username}");
print("user id : ${user?.id}");
final response = await ApiClient().postJsonForResponse(
'${URLs.host1}${URLs.getCallRequests}',
{
// "pageSize": (serviceRequests.length) ~/ pageItemNumber,
"pageNumber": pageItemNumber,
// "callId": "string",
// "requestedDateSymbol": {
// "id": 0,
// "name": "string",
// "value": 0
// },
// "requestedDateFrom": "2023-04-18T08:29:50.708Z",
// "requestedDateTo": "2023-04-18T08:29:50.708Z",
// "firstActionSymbol": {
// "id": 0,
// "name": "string",
// "value": 0
// },
// "firstActionFrom": "2023-04-18T08:29:50.708Z",
// "firstActionTo": "2023-04-18T08:29:50.708Z",
if (search?.hospital != null && (search?.hospital?.isNotEmpty ?? false)) "site": search?.hospital,
// "assetNo": "string",
if (search?.deviceSerialNumber != null && (search?.deviceSerialNumber?.isNotEmpty ?? false)) "assetSerialNumber": search?.deviceSerialNumber,
// "maintenanceSituation": {
// "id": 0,
// "name": "string",
// "value": 0
// },
// "status": {
// "id": 0,
// "name": "string",
// "value": 0
// },
"assignedEmployee": {
"id": user?.id,
"name": user?.username,
},
// "firstActionStatus": {
// "id": 0,
// "name": "string",
// "value": 0
// },
if (search?.deviceName != null && (search?.deviceName?.isNotEmpty ?? false)) "assetName": search?.deviceName,
// "manufacturer": "string",
if (search?.model != null && (search?.model?.isNotEmpty ?? false)) "modelDefinition": search?.model,
// "typeOfrequest": {
// "id": 0,
// "name": "string",
// "value": 0
// },
// "priority": {
// "id": 0,
// "name": "string",
// "value": 0
// }
},
// queryParameters: {
// 'uid': user?.id,
// // 'uid': user?.id,
// if (user?.hospital?.id != null) 'client_nid': user?.hospital?.id,
// 'token': user?.token,
// 'page': '${(serviceRequests.length) ~/ pageItemNumber}',
// if (search != null) ...search.queryParameters(),
// // if (deviceSerialNumber != null && (deviceSerialNumber?.isNotEmpty ?? false)) 'sn_id': deviceSerialNumber,
// if (statusValue != null) 'status': statusValue?.toString(),
// // if (deviceName != null && (deviceName?.isNotEmpty ?? false)) 'equipment_en_name': deviceName,
// // if (hospital != null && (hospital?.isNotEmpty ?? false)) 'client': hospital,
// // if (model != null && (model?.isNotEmpty ?? false)) 'model': model,
// // if (search != null) ...search.queryParameters(),
// },
);
List requestsListJson = json.decode(utf8.decode(response.bodyBytes));
print(response.body);
List requestsListJson = json.decode(response.body)['data'];
List<ServiceRequest> serviceRequestsPage = requestsListJson.map((request) => ServiceRequest.fromJson(request)).toList();
serviceRequests.addAll(serviceRequestsPage);
return serviceRequestsPage;
}
Future<ServiceRequest> getServiceById(String? requestId) async {
print("get service by id");
final user = UserApiClient().user;
final response = await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.getSingleServiceRequest}',
@ -76,6 +173,7 @@ class ServiceRequestApiClient {
}
Future createIssueReport(Issue issue) async {
print("Create Issue Report");
final user = UserApiClient().user;
Map<String, String> body = issue.toMap();
body["uid"] = user?.id ?? "";
@ -84,6 +182,7 @@ class ServiceRequestApiClient {
}
Future updateDate({String? newDate, Lookup? employee, ServiceRequest? request}) async {
print("Update Date");
final user = UserApiClient().user;
Map<String, String> body = {};
body["uid"] = user?.id ?? '';
@ -96,6 +195,7 @@ class ServiceRequestApiClient {
}
Future createServiceReport({required ServiceReport? report, required ServiceRequest? request}) async {
print("Create Service Report");
final user = UserApiClient().user;
Map<String, String>? body = report?.toMap();
body?["uid"] = user?.id ?? "";
@ -105,6 +205,7 @@ class ServiceRequestApiClient {
}
Future createDuplicatedReport({required ServiceRequest request}) async {
print("Create Duplicated Report");
final user = UserApiClient().user;
await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.createDuplicatedReport}',
@ -113,6 +214,7 @@ class ServiceRequestApiClient {
}
Future updateServiceReport({required ServiceReport report, required ServiceRequest request}) async {
print("Update Service Report");
final user = UserApiClient().user;
Map<String, String> body = report.toMap();
body["uid"] = user?.id ?? "";
@ -123,6 +225,7 @@ class ServiceRequestApiClient {
}
Future updateServiceReportTimer({required TimerModel timer, required ServiceRequest request}) async {
print("Update Service Report Timer");
final user = UserApiClient().user;
Map<String, String> body = {};
body["uid"] = user?.id ?? "";
@ -136,6 +239,7 @@ class ServiceRequestApiClient {
}
Future<ServiceReport> getSingleServiceReport({required String reportId}) async {
print("Get Single Service Report");
final user = UserApiClient().user;
final response = await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.getServiceReport}',

@ -18,23 +18,49 @@ class VisitsApiClient {
VisitsApiClient._internal();
factory VisitsApiClient() => _instance;
// 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
Future getVisits({required int pageItemNumber, VisitsSearch? visitsSearch}) async {
final response = await ApiClient().getJsonForResponse(
'${URLs.host1}${URLs.getRegularVisits}',
headers: {"Content-Type": "application/json; charset=utf-8"},
queryParameters: {
'uid': UserApiClient().user?.id,
'token': UserApiClient().user?.token,
'page': '${(visits.length) ~/ pageItemNumber}',
if (visitsSearch != null) ...visitsSearch.queryParameters(),
},
);
List requestsListJson = json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", ""));
print("get visits");
final response = await ApiClient().postJsonForResponse(
'${URLs.host1}${URLs.getRegularVisits}',
// headers: {"Content-Type": "application/json; charset=utf-8"},
{
// "pageSize": 0,
"pageNumber": pageItemNumber,
// "id": 0,
// "assetId": 0,
"modelId": visitsSearch?.model,
// "ppmId": 0,
// "ppmScheduleId": 0,
// "classification": 0,
// "visitStatusId": 0,
// "deviceStatusId": 0,
// "groupLeaderReviewId": 0,
// "assignedEmployeeId": "string",
"assignedToId": visitsSearch?.contactStatus,
"expectedDateFrom": visitsSearch?.expectedDateFrom,
"expectedDateTo": visitsSearch?.expectedDateTo,
"actualDateFrom": visitsSearch?.actualDateFrom,
"actualDateTo": visitsSearch?.actualDateTo,
// "siteId": 0,
// "jobSheetNo": "string",
// "typeOfServiceId": 0,
// "planNumber": 0
}
// queryParameters: {
// 'uid': UserApiClient().user?.id,
// 'token': UserApiClient().user?.token,
// 'page': '${(visits.length) ~/ pageItemNumber}',
// if (visitsSearch != null) ...visitsSearch.queryParameters(),
// },
);
// print(json.decode(utf8.decode(response.bodyBytes).replaceAll("\\", "")));
List requestsListJson = json.decode(response.body)['data'];
List<Visit> visitsList = requestsListJson.map((request) => Visit.fromJson(request)).toList();
visits.addAll(visitsList);
}
// 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
Future updateGroupOfVisits({required VisitsGroup group}) async {
final user = UserApiClient().user;
Map<String, String> body = group.toJson();
@ -59,6 +85,6 @@ class VisitsApiClient {
body?["uid"] = user?.id ?? "";
body?["token"] = user?.token ?? "";
await ApiClient().postJsonForResponse('${URLs.host1}${URLs.updatePentry}/${visit?.id}', body);
visit?.status = pentry?.ppmVisitStatus;
// visit?.status = pentry?.ppmVisitStatus;
}
}

@ -1,8 +1,7 @@
class URLs{
class URLs {
URLs._();
static const host2 = "http://194.163.164.213/atoms/api";
// static const host1 = "https://atoms.hmg.com/api"; // production url
static const host1 = "https://atomsuat.hmg.com"; // uat url
static const host1 = "https://atomsuat.hmg.com";
// API Routes
static const login = "/mobile/MobileAuth/Login"; // post
@ -11,13 +10,13 @@ class URLs{
static const getHospitals = "/mobile/Customer/GetCustomers"; // get
static const getDepartments = "/mobile/Department/search"; // get
static const getEquipment = "/mobile/Asset/GetAssets"; // get ?client=208051
static const getServiceRequests = "/return/user/calls"; // get
static const getServiceRequests = "/mobile/CallRequest/GetCallRequests"; // get
static const getPreventiveMaintenanceVisits = "/return/user/calibrations"; // get
static const updatePreventiveMaintenanceVisits = "/update/user/calibrations"; // get
static const getRegularVisits = "/return/user/ppm"; // get
static const updateRegularVisits = "/update/user/ppm"; // get
static const getRegularVisits = "/mobile/Visit/GetVisits"; // get
static const updateRegularVisits = "/mobile/Visit/UpdateVisits"; // get
static const getSingleServiceRequest = "/return/call/information"; // get
static const getNotifications = "/return/user/notification"; // get
@ -48,7 +47,7 @@ class URLs{
static const requestGasRefill = "/mobile/GazRefill/AddGazRefill"; // get
static const updateGasRefill = "/mobile/GazRefill/UpdateGazRefill"; // get
static const getGasRefill = "/mobile/GazRefill/GetGazRefills"; // get
static const generateGazRefillNo= "/mobile/GazRefill/GenerateGazRefillNumber";
static const generateGazRefillNo = "/mobile/GazRefill/GenerateGazRefillNumber";
//device transfer
static const requestDeviceTransfer = "/mobile/AssetTransfer/AddAssetTransfer"; // get
@ -65,5 +64,4 @@ class URLs{
static const getPentryStatus = "/return/pentry/status/list"; // get
// contacts
static const getPentryContacts = "/handle/return/all/contacts"; // get
}
}

@ -1,69 +1,433 @@
import '../lookup.dart';
class Visit {
String? id;
String? serialNumber;
String? expectDate;
int? id;
int? visitNo;
String? visitCode;
int? ppmId;
int? planNo;
String? planCode;
int? ppmScheduleId;
int? ppmScheduleNo;
String? ppmScheduleCode;
int? assetId;
String? assetName;
String? assetSerialNo;
String? assetNumber;
String? warrantyEndDate;
int? modelId;
String? modelName;
int? manufacturerId;
String? manufacturerName;
int? siteId;
String? siteName;
int? assignedToId;
String? assignedToName;
String? jobSheetNo;
String? assignedEmployeeId;
String? assignedEmployeeName;
String? expectedDate;
String? actualDate;
String? hospitalId;
String? hospitalName;
String? deviceId;
String? deviceSerialNumber;
String? deviceArabicName;
String? deviceEnglishName;
String? employId;
String? employName;
String? modelAndBrand;
String? contactStatus;
Lookup? status;
String? assignTo;
String? deviceNumber;
List<String>? images;
Visit({
this.id,
this.serialNumber,
this.hospitalId,
this.hospitalName,
this.deviceId,
this.deviceSerialNumber,
this.deviceArabicName,
this.deviceEnglishName,
this.employId,
this.employName,
this.expectDate,
this.actualDate,
this.status,
this.modelAndBrand,
this.contactStatus,
this.images,
this.assignTo,
this.deviceNumber,
});
factory Visit.fromJson(Map<String, dynamic> parsedJson) {
return Visit(
id: parsedJson["nid"],
serialNumber: parsedJson["title"],
hospitalId: parsedJson["client"],
deviceNumber: parsedJson["device_no"],
hospitalName: parsedJson["client_name"],
deviceId: parsedJson["medical_equipment_nid"],
deviceSerialNumber: parsedJson["medical_equipment"],
deviceEnglishName: parsedJson["equipment_english_name"],
deviceArabicName: parsedJson["equipment_arabic_name"],
employId: parsedJson["assigned_employee"],
employName: parsedJson["assigned_employee_name"],
expectDate: parsedJson["expected_date"],
actualDate: parsedJson["actual_date"],
modelAndBrand: parsedJson["mode_brand"],
contactStatus: parsedJson["contactStatus"],
images: List<String>.from(parsedJson["images"] ?? []),
status: Lookup(
id: int.tryParse(parsedJson["status"] ?? "-1") ?? -1, // actual value (0,1,2)
label: parsedJson["status_value"] // text value
),
assignTo: parsedJson["assigned_to"],
);
String? nextDate;
String? forwardToId;
String? forwardToName;
int? maintenanceContractId;
String? contractNumber;
int? typeOfServiceId;
String? typeOfServiceName;
int? executionTimeFrameId;
String? executionTimeFrameName;
String? externalEngineer;
String? telephone;
int? groupLeaderReviewId;
String? groupLeaderReviewName;
int? timePeriodId;
String? timePeriodName;
List<VCalibrationTools>? vCalibrationTools;
List<VKits>? vKits;
List<VContacts>? vContacts;
List<VChecklists>? vChecklists;
List<String>? vAttachments;
int? visitStatusId;
String? visitStatusName;
String? startDate;
String? endDate;
String? workingHours;
String? travelingHours;
int? deviceStatusId;
String? deviceStatusName;
String? comments;
String? workPerformed;
int? supplierId;
String? supplierName;
int? ppmSupplierId;
String? ppmSupplierName;
String? createdOn;
String? modifiedOn;
int? taskStatusId;
String? taskStatusName;
Visit(
{this.id,
this.visitNo,
this.visitCode,
this.ppmId,
this.planNo,
this.planCode,
this.ppmScheduleId,
this.ppmScheduleNo,
this.ppmScheduleCode,
this.assetId,
this.assetName,
this.assetSerialNo,
this.assetNumber,
this.warrantyEndDate,
this.modelId,
this.modelName,
this.manufacturerId,
this.manufacturerName,
this.siteId,
this.siteName,
this.assignedToId,
this.assignedToName,
this.jobSheetNo,
this.assignedEmployeeId,
this.assignedEmployeeName,
this.expectedDate,
this.actualDate,
this.nextDate,
this.forwardToId,
this.forwardToName,
this.maintenanceContractId,
this.contractNumber,
this.typeOfServiceId,
this.typeOfServiceName,
this.executionTimeFrameId,
this.executionTimeFrameName,
this.externalEngineer,
this.telephone,
this.groupLeaderReviewId,
this.groupLeaderReviewName,
this.timePeriodId,
this.timePeriodName,
this.vCalibrationTools,
this.vKits,
this.vContacts,
this.vChecklists,
this.vAttachments,
this.visitStatusId,
this.visitStatusName,
this.startDate,
this.endDate,
this.workingHours,
this.travelingHours,
this.deviceStatusId,
this.deviceStatusName,
this.comments,
this.workPerformed,
this.supplierId,
this.supplierName,
this.ppmSupplierId,
this.ppmSupplierName,
this.createdOn,
this.modifiedOn,
this.taskStatusId,
this.taskStatusName});
Visit.fromJson(Map<String, dynamic> json) {
id = json['id'];
visitNo = json['visitNo'];
visitCode = json['visitCode'];
ppmId = json['ppmId'];
planNo = json['planNo'];
planCode = json['planCode'];
ppmScheduleId = json['ppmScheduleId'];
ppmScheduleNo = json['ppmScheduleNo'];
ppmScheduleCode = json['ppmScheduleCode'];
assetId = json['assetId'];
assetName = json['assetName'];
assetSerialNo = json['assetSerialNo'];
assetNumber = json['assetNumber'];
warrantyEndDate = json['warrantyEndDate'];
modelId = json['modelId'];
modelName = json['modelName'];
manufacturerId = json['manufacturerId'];
manufacturerName = json['manufacturerName'];
siteId = json['siteId'];
siteName = json['siteName'];
assignedToId = json['assignedToId'];
assignedToName = json['assignedToName'];
jobSheetNo = json['jobSheetNo'];
assignedEmployeeId = json['assignedEmployeeId'];
assignedEmployeeName = json['assignedEmployeeName'];
expectedDate = json['expectedDate'];
actualDate = json['actualDate'];
nextDate = json['nextDate'];
forwardToId = json['forwardToId'];
forwardToName = json['forwardToName'];
maintenanceContractId = json['maintenanceContractId'];
contractNumber = json['contractNumber'];
typeOfServiceId = json['typeOfServiceId'];
typeOfServiceName = json['typeOfServiceName'];
executionTimeFrameId = json['executionTimeFrameId'];
executionTimeFrameName = json['executionTimeFrameName'];
externalEngineer = json['externalEngineer'];
telephone = json['telephone'];
groupLeaderReviewId = json['groupLeaderReviewId'];
groupLeaderReviewName = json['groupLeaderReviewName'];
timePeriodId = json['timePeriodId'];
timePeriodName = json['timePeriodName'];
if (json['vCalibrationTools'] != null) {
vCalibrationTools = <VCalibrationTools>[];
json['vCalibrationTools'].forEach((v) {
vCalibrationTools!.add(VCalibrationTools.fromJson(v));
});
}
if (json['vKits'] != null) {
vKits = <VKits>[];
json['vKits'].forEach((v) {
vKits!.add(VKits.fromJson(v));
});
}
if (json['vContacts'] != null) {
vContacts = <VContacts>[];
json['vContacts'].forEach((v) {
vContacts!.add(VContacts.fromJson(v));
});
}
if (json['vChecklists'] != null) {
vChecklists = <VChecklists>[];
json['vChecklists'].forEach((v) {
vChecklists!.add(VChecklists.fromJson(v));
});
}
vAttachments = json['vAttachments'].cast<String>();
visitStatusId = json['visitStatusId'];
visitStatusName = json['visitStatusName'];
startDate = json['startDate'];
endDate = json['endDate'];
workingHours = json['workingHours'];
travelingHours = json['travelingHours'];
deviceStatusId = json['deviceStatusId'];
deviceStatusName = json['deviceStatusName'];
comments = json['comments'];
workPerformed = json['workPerformed'];
supplierId = json['supplierId'];
supplierName = json['supplierName'];
ppmSupplierId = json['ppmSupplierId'];
ppmSupplierName = json['ppmSupplierName'];
createdOn = json['createdOn'];
modifiedOn = json['modifiedOn'];
taskStatusId = json['taskStatusId'];
taskStatusName = json['taskStatusName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['visitNo'] = visitNo;
data['visitCode'] = visitCode;
data['ppmId'] = ppmId;
data['planNo'] = planNo;
data['planCode'] = planCode;
data['ppmScheduleId'] = ppmScheduleId;
data['ppmScheduleNo'] = ppmScheduleNo;
data['ppmScheduleCode'] = ppmScheduleCode;
data['assetId'] = assetId;
data['assetName'] = assetName;
data['assetSerialNo'] = assetSerialNo;
data['assetNumber'] = assetNumber;
data['warrantyEndDate'] = warrantyEndDate;
data['modelId'] = modelId;
data['modelName'] = modelName;
data['manufacturerId'] = manufacturerId;
data['manufacturerName'] = manufacturerName;
data['siteId'] = siteId;
data['siteName'] = siteName;
data['assignedToId'] = assignedToId;
data['assignedToName'] = assignedToName;
data['jobSheetNo'] = jobSheetNo;
data['assignedEmployeeId'] = assignedEmployeeId;
data['assignedEmployeeName'] = assignedEmployeeName;
data['expectedDate'] = expectedDate;
data['actualDate'] = actualDate;
data['nextDate'] = nextDate;
data['forwardToId'] = forwardToId;
data['forwardToName'] = forwardToName;
data['maintenanceContractId'] = maintenanceContractId;
data['contractNumber'] = contractNumber;
data['typeOfServiceId'] = typeOfServiceId;
data['typeOfServiceName'] = typeOfServiceName;
data['executionTimeFrameId'] = executionTimeFrameId;
data['executionTimeFrameName'] = executionTimeFrameName;
data['externalEngineer'] = externalEngineer;
data['telephone'] = telephone;
data['groupLeaderReviewId'] = groupLeaderReviewId;
data['groupLeaderReviewName'] = groupLeaderReviewName;
data['timePeriodId'] = timePeriodId;
data['timePeriodName'] = timePeriodName;
if (vCalibrationTools != null) {
data['vCalibrationTools'] = vCalibrationTools!.map((v) => v.toJson()).toList();
}
if (vKits != null) {
data['vKits'] = vKits!.map((v) => v.toJson()).toList();
}
if (vContacts != null) {
data['vContacts'] = vContacts!.map((v) => v.toJson()).toList();
}
if (vChecklists != null) {
data['vChecklists'] = vChecklists!.map((v) => v.toJson()).toList();
}
data['vAttachments'] = vAttachments;
data['visitStatusId'] = visitStatusId;
data['visitStatusName'] = visitStatusName;
data['startDate'] = startDate;
data['endDate'] = endDate;
data['workingHours'] = workingHours;
data['travelingHours'] = travelingHours;
data['deviceStatusId'] = deviceStatusId;
data['deviceStatusName'] = deviceStatusName;
data['comments'] = comments;
data['workPerformed'] = workPerformed;
data['supplierId'] = supplierId;
data['supplierName'] = supplierName;
data['ppmSupplierId'] = ppmSupplierId;
data['ppmSupplierName'] = ppmSupplierName;
data['createdOn'] = createdOn;
data['modifiedOn'] = modifiedOn;
data['taskStatusId'] = taskStatusId;
data['taskStatusName'] = taskStatusName;
return data;
}
}
class VCalibrationTools {
int? id;
int? visitId;
int? assetId;
String? assetSerialNo;
String? calibrationDateOfTesters;
VCalibrationTools({this.id, this.visitId, this.assetId, this.assetSerialNo, this.calibrationDateOfTesters});
VCalibrationTools.fromJson(Map<String, dynamic> json) {
id = json['id'];
visitId = json['visitId'];
assetId = json['assetId'];
assetSerialNo = json['assetSerialNo'];
calibrationDateOfTesters = json['calibrationDateOfTesters'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['visitId'] = visitId;
data['assetId'] = assetId;
data['assetSerialNo'] = assetSerialNo;
data['calibrationDateOfTesters'] = calibrationDateOfTesters;
return data;
}
}
class VKits {
int? id;
int? visitId;
int? partCatalogItemId;
String? partNumber;
String? oracleCode;
String? partName;
String? partName2;
VKits({this.id, this.visitId, this.partCatalogItemId, this.partNumber, this.oracleCode, this.partName, this.partName2});
VKits.fromJson(Map<String, dynamic> json) {
id = json['id'];
visitId = json['visitId'];
partCatalogItemId = json['partCatalogItemId'];
partNumber = json['partNumber'];
oracleCode = json['oracleCode'];
partName = json['partName'];
partName2 = json['partName2'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['visitId'] = visitId;
data['partCatalogItemId'] = partCatalogItemId;
data['partNumber'] = partNumber;
data['oracleCode'] = oracleCode;
data['partName'] = partName;
data['partName2'] = partName2;
return data;
}
}
class VContacts {
int? id;
int? visitId;
String? title;
String? person;
String? job;
String? email;
String? telephone;
String? landLine;
VContacts({this.id, this.visitId, this.title, this.person, this.job, this.email, this.telephone, this.landLine});
VContacts.fromJson(Map<String, dynamic> json) {
id = json['id'];
visitId = json['visitId'];
title = json['title'];
person = json['person'];
job = json['job'];
email = json['email'];
telephone = json['telephone'];
landLine = json['landLine'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['visitId'] = visitId;
data['title'] = title;
data['person'] = person;
data['job'] = job;
data['email'] = email;
data['telephone'] = telephone;
data['landLine'] = landLine;
return data;
}
}
class VChecklists {
int? id;
int? visitId;
String? task;
int? taskStatusId;
String? taskStatusName;
String? taskComment;
String? measuredValue;
VChecklists({this.id, this.visitId, this.task, this.taskStatusId, this.taskStatusName, this.taskComment, this.measuredValue});
VChecklists.fromJson(Map<String, dynamic> json) {
id = json['id'];
visitId = json['visitId'];
task = json['task'];
taskStatusId = json['taskStatusId'];
taskStatusName = json['taskStatusName'];
taskComment = json['taskComment'];
measuredValue = json['measuredValue'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id;
data['visitId'] = visitId;
data['task'] = task;
data['taskStatusId'] = taskStatusId;
data['taskStatusName'] = taskStatusName;
data['taskComment'] = taskComment;
data['measuredValue'] = measuredValue;
return data;
}
}

@ -30,7 +30,7 @@ class _FutureEditPentryState extends State<FutureEditPentry> {
Subtitle subtitle = AppLocalization.of(context)!.subtitle!;
return Scaffold(
body: FutureBuilder<Pentry?>(
future: RegularVisitsProvider().getPently(id: widget.visit.id),
future: RegularVisitsProvider().getPently(id: widget.visit.id.toString()),
builder: (BuildContext context, AsyncSnapshot<Pentry?> snapshot) {
if (snapshot.hasError) {
return FailedLoading(

@ -226,7 +226,7 @@ class _UpdateVisitsGroupSheetState extends State<UpdateVisitsGroupSheet> {
children: [
Expanded(
child: Text(
"${_subtitle.sn}: ${visit.deviceSerialNumber ?? _subtitle.noSerialNumberFound}",
"${_subtitle.sn}: ${visit.assetSerialNo ?? _subtitle.noSerialNumberFound}",
style: Theme.of(context).textTheme.headline6?.copyWith(color: AColors.white, fontSize: 16, fontWeight: FontWeight.bold),
),
),

@ -9,8 +9,6 @@ import '../../../app_style/colors.dart';
import '../../../app_style/sizing.dart';
import '../../../widgets/buttons/app_back_button.dart';
import '../../../widgets/buttons/app_icon_button.dart';
import '../../../widgets/images/images_list.dart';
import '../../../widgets/loaders/image_loader.dart';
import '../../../widgets/requests/info_row.dart';
import '../../../widgets/visits/visit_status.dart';
import 'pantry/future_edit_pently.dart';
@ -68,57 +66,57 @@ class VisitDetailsPage extends StatelessWidget {
SizedBox(
height: 8,
),
MaterialButton(
padding: EdgeInsets.zero,
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => Scaffold(
body: InteractiveViewer(
child: Center(
child: ImageLoader(
url: visit.images?.first,
boxFit: BoxFit.contain,
),
),
),
)));
},
child: SizedBox(
height: 140 * AppStyle.getScaleFactor(context),
width: MediaQuery.of(context).size.width,
child: ImageLoader(
url: (visit.images?.isEmpty ?? false) ? " " : visit.images?.first,
boxFit: BoxFit.cover,
),
),
),
// MaterialButton(
// padding: EdgeInsets.zero,
// onPressed: () {
// Navigator.of(context).push(MaterialPageRoute(
// builder: (_) => Scaffold(
// body: InteractiveViewer(
// child: Center(
// child: ImageLoader(
// url: visit.images?.first,
// boxFit: BoxFit.contain,
// ),
// ),
// ),
// )));
// },
// child: SizedBox(
// height: 140 * AppStyle.getScaleFactor(context),
// width: MediaQuery.of(context).size.width,
// child: ImageLoader(
// url: (visit.images?.isEmpty ?? false) ? " " : visit.images?.first,
// boxFit: BoxFit.cover,
// ),
// ),
// ),
SizedBox(
height: 8,
),
SizedBox(
height: 60 * AppStyle.getScaleFactor(context),
child: ImagesList(
images: visit.images!,
),
),
// SizedBox(
// height: 60 * AppStyle.getScaleFactor(context),
// child: ImagesList(
// images: visit.images!,
// ),
// ),
SizedBox(
height: 8,
),
RequestInfoRow(
title: subtitle.code,
info: visit.serialNumber,
info: visit.assetSerialNo,
),
RequestInfoRow(
title: "Asset Number",
info: visit.deviceNumber,
info: visit.deviceStatusName,
),
RequestInfoRow(
title: subtitle.deviceSN,
info: visit.deviceSerialNumber,
info: visit.assetSerialNo,
),
RequestInfoRow(
title: subtitle.expectDate,
info: visit.expectDate,
info: visit.expectedDate,
),
RequestInfoRow(
title: subtitle.actualDate,
@ -143,23 +141,23 @@ class VisitDetailsPage extends StatelessWidget {
),
RequestInfoRow(
title: subtitle.contactStatus,
info: visit.assignTo,
info: visit.assignedToName,
),
RequestInfoRow(
title: subtitle.engineerName,
info: visit.employName,
info: visit.assignedEmployeeName,
),
RequestInfoRow(
title: subtitle.hospital,
content: visit.hospitalName,
content: visit.assetName,
),
RequestInfoRow(
title: subtitle.deviceArName,
content: visit.deviceArabicName,
content: visit.assetName,
),
RequestInfoRow(
title: subtitle.deviceEnName,
content: visit.deviceEnglishName,
content: visit.assetName,
),
],
),

@ -61,7 +61,7 @@ class VisitItem extends StatelessWidget {
children: [
Expanded(
child: Text(
"S.N: ${visit.deviceSerialNumber ?? "No serial number"}",
"S.N: ${visit.assetSerialNo ?? "No serial number"}",
style: Theme.of(context).textTheme.titleLarge?.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold),
),
),
@ -93,7 +93,7 @@ class VisitItem extends StatelessWidget {
children: [
Expanded(
child: Text(
visit.hospitalName ?? "No client found",
visit.assetSerialNo ?? "No client found",
style: Theme.of(context).textTheme.titleMedium?.copyWith(
color: onItemColor,
fontSize: 14,
@ -103,7 +103,7 @@ class VisitItem extends StatelessWidget {
],
),
Text(
visit.modelAndBrand ?? "",
visit.modelName ?? "",
style: Theme.of(context).textTheme.titleMedium?.copyWith(
color: onItemColor,
fontSize: 14,
@ -116,12 +116,12 @@ class VisitItem extends StatelessWidget {
children: [
Expanded(
child: Text(
visit.employName ?? "No employ found",
visit.assignedEmployeeName ?? "No employ found",
style: Theme.of(context).textTheme.titleLarge?.copyWith(color: onItemColor, fontSize: 14, fontWeight: FontWeight.bold),
),
),
Text(
visit.contactStatus ?? "",
visit.deviceStatusName ?? "",
style: Theme.of(context).textTheme.titleMedium?.copyWith(
color: onItemColor,
fontSize: 14,
@ -146,7 +146,7 @@ class VisitItem extends StatelessWidget {
),
),
Text(
visit.expectDate ?? subtitle?.noDateFound ?? '',
visit.expectedDate ?? subtitle?.noDateFound ?? '',
style: Theme.of(context).textTheme.titleLarge?.copyWith(
color: onItemColor,
fontSize: 14,

@ -10,7 +10,7 @@ class VisitStatusLabel extends StatelessWidget {
const VisitStatusLabel({Key? key, required this.visit}) : super(key: key);
Color getStatusColor() {
switch (visit.status?.id) {
switch (visit.taskStatusId) {
case 0:
return AColors.green;
case 1:
@ -33,7 +33,7 @@ class VisitStatusLabel extends StatelessWidget {
boxShadow: const [AppStyle.boxShadow],
),
child: Text(
visit.status?.label == null || (visit.status?.label?.isEmpty ?? false) ? "no status" : visit.status?.label ?? "",
visit.taskStatusName == null || (visit.taskStatusName?.isEmpty ?? false) ? "no status" : visit.taskStatusName ?? "",
style: Theme.of(context).textTheme.titleSmall?.copyWith(
color: getStatusColor().computeLuminance() > 0.5 ? AColors.black : Colors.white,
),

Loading…
Cancel
Save