Merge branch 'zaid_development_new' into 'main_latest_merged'

Zaid development new

See merge request haroon6138/cloudsolutions-atoms!24
merge-requests/25/merge
Sikander Saleem 3 years ago
commit a9c54c9d7a

@ -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
@ -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
}

@ -10,9 +10,8 @@ import 'package:test_sa/models/visits/visits_group.dart';
import 'package:test_sa/models/visits/visits_search.dart';
class PreventiveMaintenanceVisitsProvider extends ChangeNotifier {
// number of items call in each request
final pageItemNumber = 50;
final pageItemNumber = 10;
//reset provider data
void reset() {
@ -49,24 +48,16 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{
@required User user,
// 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 {
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"
}
);
headers: {"Content-Type": "application/json; charset=utf-8"});
} catch (error) {
isLoading = false;
stateCode = -1;
@ -77,10 +68,8 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List requestsListJson = json.decode(utf8.decode(response.bodyBytes));
List<Visit> _visits = requestsListJson.map(
(request) => Visit.fromJson(request)).toList();
if(visits == null)
visits = [];
List<Visit> _visits = requestsListJson.map((request) => Visit.fromJson(request)).toList();
if (visits == null) visits = [];
visits.addAll(_visits);
if (_visits.length == pageItemNumber) {
nextPage = true;
@ -109,8 +98,7 @@ class PreventiveMaintenanceVisitsProvider extends ChangeNotifier{
// body["uid"] = user.id;
//userId = 397.toString(); // testing id to view data
try {
response = await ApiManager.instance.put(
URLs.updatePreventiveMaintenanceVisits, body: body);
response = await ApiManager.instance.put(URLs.updatePreventiveMaintenanceVisits, body: body);
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {

@ -15,9 +15,8 @@ import 'package:test_sa/models/timer_model.dart';
import 'package:test_sa/models/user.dart';
class ServiceRequestsProvider extends ChangeNotifier {
// number of items call in each request
final pageItemNumber = 50;
final pageItemNumber = 10;
//reset provider data
void reset() {
@ -54,8 +53,7 @@ class ServiceRequestsProvider extends ChangeNotifier{
@required User user,
@required int hospitalId,
}) async {
if(isLoading == true)
return -2;
if (isLoading == true) return -2;
isLoading = true;
if (serviceRequests == null) notifyListeners();
Response response;
@ -74,8 +72,7 @@ class ServiceRequestsProvider extends ChangeNotifier{
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List requestsListJson = json.decode(response.body)["data"];
List<ServiceRequest> serviceRequestsPage = requestsListJson.map(
(request) => ServiceRequest.fromJson(request)).toList();
List<ServiceRequest> serviceRequestsPage = requestsListJson.map((request) => ServiceRequest.fromJson(request)).toList();
serviceRequests ??= [];
serviceRequests.addAll(serviceRequestsPage);
if (serviceRequestsPage.length == pageItemNumber) {
@ -87,14 +84,12 @@ class ServiceRequestsProvider extends ChangeNotifier{
isLoading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
isLoading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
Future<ServiceRequest> getSingleServiceRequest({
@ -111,15 +106,14 @@ class ServiceRequestsProvider extends ChangeNotifier{
Response response;
try {
response = await get(
Uri.parse(
host+URLs.getSingleServiceRequest
+'?call_nid=$requestId'
'$userData',)
);
response = await get(Uri.parse(
host +
URLs.getSingleServiceRequest +
'?call_nid=$requestId'
'$userData',
));
} catch (error) {
throw(HttpStatusManger.getStatusMessage(
status: -1, subtitle: subtitle));
throw (HttpStatusManger.getStatusMessage(status: -1, subtitle: subtitle));
}
// If the call to the server was successful, parse the JSON.
@ -129,10 +123,8 @@ class ServiceRequestsProvider extends ChangeNotifier{
List<ServiceRequest> _requests = jsonList.map((i) => ServiceRequest.fromJson(i)).toList();
return _requests[0];
} else {
throw(HttpStatusManger.getStatusMessage(
status: response.statusCode, subtitle: subtitle));
throw (HttpStatusManger.getStatusMessage(status: response.statusCode, subtitle: subtitle));
}
}
Future<int> createRequest({
@ -140,12 +132,8 @@ class ServiceRequestsProvider extends ChangeNotifier{
@required User user,
@required ServiceRequest serviceRequest,
}) async {
var body = {
"callCreatedBy": {
"id":user.id,
"name":user.userName
},
"callCreatedBy": {"id": user.id, "name": user.userName},
"assets": serviceRequest.deviceId == null ? [] : [serviceRequest.deviceId],
"requestedDate": DateTime.now().toIso8601String(),
"requestedTime": DateTime.now().toIso8601String(),
@ -162,27 +150,16 @@ class ServiceRequestsProvider extends ChangeNotifier{
}
Response response;
try {
response = await ApiManager.instance.post(
URLs.createRequest,
body: body
);
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 (serviceRequests != null) serviceRequests.insert(0, ServiceRequest.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]));
notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> createIssueReport({
@ -201,15 +178,11 @@ class ServiceRequestsProvider extends ChangeNotifier{
);
stateCode = response.statusCode;
if(response.statusCode >= 200 && response.statusCode < 300) {
}
if (response.statusCode >= 200 && response.statusCode < 300) {}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> updateDate({
@ -220,18 +193,15 @@ class ServiceRequestsProvider extends ChangeNotifier{
@required ServiceRequest request,
}) async {
Response response;
Map<String,String> 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();
var body = {
"callCreatedBy": {"id": user.id, "name": user.userName},
"assets": request.deviceId == null ? [] : [request.deviceId],
"requestedDate": newDate,
"requestedTime": newDate,
};
try {
response = await post(
Uri.parse(
//host+
URLs.updateRequestDate
),
response = await ApiManager.instance.put(
URLs.updateRequestDate,
body: body,
);
stateCode = response.statusCode;
@ -240,11 +210,9 @@ class ServiceRequestsProvider extends ChangeNotifier{
notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> createServiceReport({
@ -254,15 +222,12 @@ class ServiceRequestsProvider extends ChangeNotifier{
@required ServiceRequest request,
}) async {
Response response;
try {
Map<String, dynamic> 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),
@ -275,11 +240,9 @@ class ServiceRequestsProvider extends ChangeNotifier{
notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> createDuplicatedReport({
@ -296,10 +259,7 @@ class ServiceRequestsProvider extends ChangeNotifier{
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;
@ -309,12 +269,9 @@ class ServiceRequestsProvider extends ChangeNotifier{
notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> updateServiceReport({
@ -333,10 +290,7 @@ class ServiceRequestsProvider extends ChangeNotifier{
Map<String, dynamic> 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),
@ -349,11 +303,9 @@ class ServiceRequestsProvider extends ChangeNotifier{
notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> updateServiceReportTimer({
@ -373,8 +325,7 @@ class ServiceRequestsProvider extends ChangeNotifier{
body["report_id"] = request.reportID;
try {
response = await post(
Uri.parse(
host+URLs.updateServiceReport),
Uri.parse(host + URLs.updateServiceReport),
body: body,
);
//stateCode = response.statusCode;
@ -384,12 +335,9 @@ class ServiceRequestsProvider extends ChangeNotifier{
// notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<ServiceReport> getSingleServiceReport({
@ -398,29 +346,21 @@ class ServiceRequestsProvider extends ChangeNotifier{
@required User user,
@required Subtitle subtitle,
}) async {
Response response;
try {
response = await ApiManager.instance.get(
URLs.getServiceReport + "?workOrderId=$reportId",
);
} catch (error) {
throw(HttpStatusManger.getStatusMessage(
status: -1, subtitle: subtitle));
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 the call to the server was successful, parse the JSON.
return ServiceReport.fromJson(
json.decode(response.body)["data"],reportId);
return ServiceReport.fromJson(json.decode(response.body)["data"], reportId);
} else {
throw(HttpStatusManger.getStatusMessage(
status: response.statusCode, subtitle: subtitle));
throw (HttpStatusManger.getStatusMessage(status: response.statusCode, subtitle: subtitle));
}
}
}

@ -7,7 +7,6 @@ import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/user.dart';
class UserProvider extends ChangeNotifier {
//reset provider data
void reset() {
_user = null;
@ -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;
@ -45,8 +43,7 @@ class UserProvider extends ChangeNotifier{
@required String host,
@required User user,
}) async {
if(_loading == true)
return -2;
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
@ -60,6 +57,7 @@ class UserProvider extends ChangeNotifier{
// client's request was successfully received
_user = User.fromJson(jsonDecode(response.body));
ApiManager.instance.user = _user;
notifyListeners();
return response.statusCode;
}
notifyListeners();
@ -81,8 +79,7 @@ class UserProvider extends ChangeNotifier{
@required String host,
@required User user,
}) async {
if(_loading == true)
return -2;
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
@ -118,8 +115,7 @@ class UserProvider extends ChangeNotifier{
@required String host,
@required User user,
}) async {
if(_loading == true)
return -2;
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
@ -127,12 +123,9 @@ class UserProvider extends ChangeNotifier{
Map<String, dynamic> 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;
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,
@ -157,5 +150,4 @@ class UserProvider extends ChangeNotifier{
}
return response.statusCode;
}
}

@ -12,7 +12,6 @@ class Device{
ModelDefinition modelDefinition;
Hospital hospital;
Device({
this.id,
this.serialNumber,
@ -21,14 +20,9 @@ class Device{
// this.brand,
// this.model,
this.modelDefinition,
});
factory Device.fromJson(Map<String, dynamic> parsedJson) {
return Device(
id: parsedJson["id"],
serialNumber: parsedJson["assetSerialNo"],
@ -60,6 +54,7 @@ class Device{
'modelDefinition': modelDefinition.toJson(),
'site': hospital.toMap(),
'AssetType': assetType.toMap(),
"supplier": {"id": 0, "suppliername": "string"},
};
}
}

@ -27,8 +27,8 @@ class Pentry{
Uint8List localNurseSignature;
Uint8List localEngineerSignature;
Pentry({
this.travelingHours,
Pentry(
{this.travelingHours,
this.timer,
this.status,
this.ppmVisitStatus,
@ -43,8 +43,7 @@ class Pentry{
this.signatureNurse,
this.signatureEngineer,
this.localNurseSignature,
this.localEngineerSignature
});
this.localEngineerSignature});
bool validate() {
if (actualVisitDate == null) return false;
@ -56,8 +55,6 @@ class Pentry{
return true;
}
Map<String, dynamic> toMap(int visitId) {
Map<String, dynamic> map = {};
map["visitStatusId"] = ppmVisitStatus?.id.toString();
@ -73,9 +70,7 @@ class Pentry{
}
if (imageFile != null) {
map["vAttachments"] = [
{
"attachmentName":(imageFile.path.split("/").last+base64Encode(imageFile.readAsBytesSync()))
}
{"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;
}
@ -104,23 +99,17 @@ class Pentry{
List<PMKit> pmKits = [];
if (map['vKits'] != null) {
pmKits =(map['vKits'] as List<dynamic>)
.map((e) => PMKit.fromMap(e as Map<String, dynamic>))
.toList();
pmKits = (map['vKits'] as List<dynamic>).map((e) => PMKit.fromMap(e as Map<String, dynamic>)).toList();
}
List<PPMCheckList> ppmCheckLists = [];
if (map['vChecklists'] != null) {
ppmCheckLists =(map['vChecklists'] as List<dynamic>)
.map((e) => PPMCheckList.fromMap(e as Map<String, dynamic>))
.toList();
ppmCheckLists = (map['vChecklists'] as List<dynamic>).map((e) => PPMCheckList.fromMap(e as Map<String, dynamic>)).toList();
}
List<CalibrationTool> calibrationTools = [];
if (map['vCalibrationTools'] != null) {
calibrationTools =(map['vCalibrationTools'] as List<dynamic>)
.map((e) => CalibrationTool.fromMap(e as Map<String, dynamic>))
.toList();
calibrationTools = (map['vCalibrationTools'] as List<dynamic>).map((e) => CalibrationTool.fromMap(e as Map<String, dynamic>)).toList();
}
return Pentry(
status: Lookup(id: map["taskStatusId"], name: map["taskStatusName"]),
@ -128,11 +117,7 @@ class Pentry{
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,
@ -170,7 +155,6 @@ class Pentry{
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
);
signatureEngineer: signatureEngineer ?? this.signatureEngineer);
}
}

@ -19,7 +19,7 @@ class PPMCheckList{
return {
'id': id ?? 0,
"visitId": visitId,
if(status != null) 'taskStatusId': status?.id.toString(),
if (status != null) 'taskStatusId': status?.id,
if (title != null) 'task': title,
if (comment != null) 'taskComment': comment,
if (measuredValue != null) 'measuredValue': measuredValue,

@ -36,8 +36,8 @@ class ServiceReport {
Uint8List localNurseSignature;
Uint8List localEngineerSignature;
ServiceReport({
this.id,
ServiceReport(
{this.id,
this.visitDate,
this.endDate,
this.assetType,
@ -62,8 +62,7 @@ class ServiceReport {
this.signatureNurse,
this.signatureEngineer,
this.localNurseSignature,
this.localEngineerSignature
});
this.localEngineerSignature});
Map<String, dynamic> toMap(ServiceRequest request) {
Map<String, dynamic> _map = {};
@ -108,9 +107,9 @@ class ServiceReport {
//if(invoiceCode != null) _map["invoice_no"] = invoiceCode;
//if(invoiceNumber != null) _map["invoice_code"] = invoiceNumber;
if (image != null) {
_map["attachmentsWorkOrder"]=[{
"name":image
}];
_map["attachmentsWorkOrder"] = [
{"name": image}
];
}
_map["nurseSignature"] = signatureNurse;
_map["engSignature"] = signatureEngineer;
@ -143,10 +142,8 @@ class ServiceReport {
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();
_parts = partsList.map((e) => Part.fromJson(e["sparePart"], reportJson: e)).toList();
}
}
return ServiceReport(
id: id,
@ -168,10 +165,7 @@ 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"]),

@ -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,7 +113,7 @@ class _LoginState extends State<Login> {
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);
@ -124,7 +122,8 @@ class _LoginState extends State<Login> {
} else {
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),
));

Loading…
Cancel
Save