Update Work order [Sub work orders]

pull/2/head
zaid_daoud 2 years ago
parent b8ea1ab030
commit ebd9297646

@ -478,6 +478,35 @@ class ServiceRequestsProvider extends ChangeNotifier {
} }
} }
Future<int> updateWorkOrderDetails({@required SearchWorkOrders workOrder}) async {
Response response;
//Map<String,dynamic> body = report.toMap(request);
// body["uid"] = user.id;
// body["token"] = user.token;
// body["job_id"] = request.id;
// body["report_id"] = request.reportID;
try {
Map<String, dynamic> body = workOrder.toJson();
// body["uid"] = user.id;
// body["token"] = user.token;
response = await ApiManager.instance.put(URLs.updateServiceReport, body: body);
// response = await post(
// Uri.parse(
// host+URLs.updateServiceReport),
// body: body,
// );
// stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
reset();
notifyListeners();
}
return response.statusCode;
} catch (error) {
return -1;
}
}
Future<int> updateServiceReportTimer({ Future<int> updateServiceReportTimer({
@required String host, @required String host,
@required User user, @required User user,

@ -26,7 +26,7 @@ class SearchWorkOrders {
num travelingHours; num travelingHours;
num travelingExpenses; num travelingExpenses;
ModelDefRelatedDefects faultDescription; ModelDefRelatedDefects faultDescription;
List sparePartsWorkOrders; List<SparePartWorkOrder> sparePartsWorkOrders;
String reviewComment; String reviewComment;
String comment; String comment;
String attachmentsWorkOrder; String attachmentsWorkOrder;
@ -79,9 +79,9 @@ class SearchWorkOrders {
workOrderNo = json['workOrderNo']; workOrderNo = json['workOrderNo'];
workOrderYear = json['workOrderYear']; workOrderYear = json['workOrderYear'];
workOrderSequennce = json['workOrderSequennce']; workOrderSequennce = json['workOrderSequennce'];
callRequest = json['callRequest'] != null ? new CallRequest.fromJson(json['callRequest']) : CallRequest(); callRequest = json['callRequest'] != null ? CallRequest.fromJson(json['callRequest']) : CallRequest();
assetType = json['assetType']; assetType = json['assetType'];
assignedEmployee = json['assignedEmployee'] != null ? new AssignedEmployee.fromJson(json['assignedEmployee']) : AssignedEmployee(); assignedEmployee = json['assignedEmployee'] != null ? AssignedEmployee.fromJson(json['assignedEmployee']) : AssignedEmployee();
visitDate = json['visitDate']; visitDate = json['visitDate'];
startDate = json['startDate']; startDate = json['startDate'];
endDate = json['endDate']; endDate = json['endDate'];
@ -93,8 +93,8 @@ class SearchWorkOrders {
if (json['contactPersonWorkOrders'] != null) { if (json['contactPersonWorkOrders'] != null) {
contactPersonWorkOrders = json['contactPersonWorkOrders']; contactPersonWorkOrders = json['contactPersonWorkOrders'];
} }
calllastSituation = json['calllastSituation'] != null ? new Lookup.fromJson(json['calllastSituation']) : Lookup(); calllastSituation = json['calllastSituation'] != null ? Lookup.fromJson(json['calllastSituation']) : const Lookup();
currentSituation = json['currentSituation'] != null ? new Lookup.fromJson(json['currentSituation']) : Lookup(); currentSituation = json['currentSituation'] != null ? Lookup.fromJson(json['currentSituation']) : const Lookup();
repairLocation = json['repairLocation']; repairLocation = json['repairLocation'];
reason = json['reason']; reason = json['reason'];
startofWorkTime = json['startofWorkTime']; startofWorkTime = json['startofWorkTime'];
@ -102,9 +102,12 @@ class SearchWorkOrders {
workingHours = json['workingHours']; workingHours = json['workingHours'];
travelingHours = json['travelingHours']; travelingHours = json['travelingHours'];
travelingExpenses = json['travelingExpenses']; travelingExpenses = json['travelingExpenses'];
faultDescription = json['faultDescription'] != null ? new ModelDefRelatedDefects.fromJson(json['faultDescription']) : ModelDefRelatedDefects(); faultDescription = json['faultDescription'] != null ? ModelDefRelatedDefects.fromJson(json['faultDescription']) : ModelDefRelatedDefects();
if (json['sparePartsWorkOrders'] != null) { if (json['sparePartsWorkOrders'] != null) {
sparePartsWorkOrders = json['sparePartsWorkOrders']; sparePartsWorkOrders = <SparePartWorkOrder>[];
json['sparePartsWorkOrders'].forEach((v) {
sparePartsWorkOrders.add(SparePartWorkOrder.fromJson(v));
});
} }
reviewComment = json['reviewComment']; reviewComment = json['reviewComment'];
comment = json['comment']; comment = json['comment'];
@ -119,63 +122,148 @@ class SearchWorkOrders {
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['parentWOId'] = this.parentWOId; data['parentWOId'] = parentWOId;
data['workOrderNo'] = this.workOrderNo; data['workOrderNo'] = workOrderNo;
data['workOrderYear'] = this.workOrderYear; data['workOrderYear'] = workOrderYear;
data['workOrderSequennce'] = this.workOrderSequennce; data['workOrderSequennce'] = workOrderSequennce;
if (this.callRequest != null) { if (callRequest != null) {
data['callRequest'] = this.callRequest.toJson(); data['callRequest'] = callRequest.toJson();
} }
data['assetType'] = this.assetType; if (assetType != null) data['assetType'] = assetType;
if (this.assignedEmployee != null) { if (assignedEmployee != null) {
data['assignedEmployee'] = this.assignedEmployee.toJson(); data['assignedEmployee'] = assignedEmployee.toJson();
} }
data['visitDate'] = this.visitDate; if (data['visitDate'] != null) data['visitDate'] = visitDate;
data['startDate'] = this.startDate; if (data['startDate'] != null) data['startDate'] = startDate;
data['endDate'] = this.endDate; if (data['endDate'] != null) data['endDate'] = endDate;
if (this.assistantEmployees != null) { if (assistantEmployees != null) {
data['assistantEmployees'] = this.assistantEmployees.map((v) => v.toJson()).toList(); data['assistantEmployees'] = assistantEmployees.map((v) => v.toJson()).toList();
} }
data['supplier'] = this.supplier; if (supplier != null) data['supplier'] = supplier;
data['vendorTicketNumber'] = this.vendorTicketNumber; data['vendorTicketNumber'] = vendorTicketNumber;
if (this.contactPersonWorkOrders != null) { if (contactPersonWorkOrders != null) {
data['contactPersonWorkOrders'] = this.contactPersonWorkOrders.map((v) => v.toJson()).toList(); data['contactPersonWorkOrders'] = contactPersonWorkOrders.map((v) => v.toJson()).toList();
} }
if (this.calllastSituation != null) { if (calllastSituation != null) {
data['calllastSituation'] = this.calllastSituation.toMap(); data['calllastSituation'] = calllastSituation.toMap();
} }
if (this.currentSituation != null) { if (currentSituation != null) {
data['currentSituation'] = this.currentSituation.toMap(); data['currentSituation'] = currentSituation.toMap();
} }
data['repairLocation'] = this.repairLocation; if (repairLocation != null) data['repairLocation'] = repairLocation;
data['reason'] = this.reason; if (reason != null) data['reason'] = reason;
data['startofWorkTime'] = this.startofWorkTime; if (startofWorkTime != null) data['startofWorkTime'] = startofWorkTime;
data['endofWorkTime'] = this.endofWorkTime; if (endofWorkTime != null) data['endofWorkTime'] = endofWorkTime;
data['workingHours'] = this.workingHours; if (workingHours != null) data['workingHours'] = workingHours;
data['travelingHours'] = this.travelingHours; if (travelingHours != null) data['travelingHours'] = travelingHours;
data['travelingExpenses'] = this.travelingExpenses; if (travelingExpenses != null) data['travelingExpenses'] = travelingExpenses;
if (this.faultDescription != null) { if (faultDescription != null) {
data['faultDescription'] = this.faultDescription.toJson(); data['faultDescription'] = faultDescription.toJson();
} }
if (this.sparePartsWorkOrders != null) { if (sparePartsWorkOrders != null) {
data['sparePartsWorkOrders'] = this.sparePartsWorkOrders.map((v) => v.toJson()).toList(); data['sparePartsWorkOrders'] = sparePartsWorkOrders.map((v) => v.toJson()).toList();
} }
data['reviewComment'] = this.reviewComment; data['reviewComment'] = reviewComment;
data['comment'] = this.comment; data['comment'] = comment;
data['attachmentsWorkOrder'] = this.attachmentsWorkOrder; data['attachmentsWorkOrder'] = attachmentsWorkOrder;
data['equipmentStatus'] = this.equipmentStatus; data['equipmentStatus'] = equipmentStatus;
if (this.suppEngineerWorkOrders != null) { if (suppEngineerWorkOrders != null) {
data['suppEngineerWorkOrders'] = this.suppEngineerWorkOrders.map((v) => v.toJson()).toList(); data['suppEngineerWorkOrders'] = suppEngineerWorkOrders.map((v) => v.toJson()).toList();
} }
data['engSignature'] = this.engSignature; data['engSignature'] = engSignature;
data['nurseSignature'] = this.nurseSignature; data['nurseSignature'] = nurseSignature;
data['woParentDto'] = this.woParentDto; data['woParentDto'] = woParentDto;
return data; return data;
} }
} }
class SparePart {
int id;
String partNo;
String partName;
SparePart({
this.id,
this.partNo,
this.partName,
});
SparePart.fromJson(Map<String, dynamic> json) {
id = json['id'];
partNo = json['partNo'];
partName = json['partName'];
}
SparePart copyWith({
int id,
String partNo,
String partName,
}) =>
SparePart(
id: id ?? this.id,
partNo: partNo ?? this.partNo,
partName: partName ?? this.partName,
);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = id ?? 0;
map['partNo'] = partNo;
map['partName'] = partName;
return map;
}
}
class SparePartWorkOrder {
int id;
SparePart sparePart;
double qty;
double returnQty;
double installQty;
SparePartWorkOrder({
this.id,
this.sparePart,
this.qty,
this.returnQty,
this.installQty,
});
SparePartWorkOrder.fromJson(Map<String, dynamic> json) {
id = json['id'];
sparePart = SparePart.fromJson(json['sparePart'] ?? {});
qty = json['qty'];
returnQty = json['returnQty'];
installQty = json['installQty'];
}
SparePartWorkOrder copyWith({
int id,
SparePart sparePart,
double qty,
double returnQty,
double installQty,
}) =>
SparePartWorkOrder(
id: id ?? this.id,
sparePart: sparePart ?? this.sparePart,
qty: qty ?? this.qty,
returnQty: returnQty ?? this.returnQty,
installQty: installQty ?? this.installQty,
);
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map['id'] = id ?? 0;
map['sparePart'] = sparePart?.toJson();
map['qty'] = qty;
map['returnQty'] = returnQty;
map['installQty'] = installQty;
return map;
}
}
class CallRequest { class CallRequest {
int id; int id;
String callNo; String callNo;
@ -193,40 +281,40 @@ class CallRequest {
CallRequest.fromJson(Map<String, dynamic> json) { CallRequest.fromJson(Map<String, dynamic> json) {
id = json['id']; id = json['id'];
callNo = json['callNo']; callNo = json['callNo'];
asset = json['asset'] != null ? new Asset.fromJson(json['asset']) : Asset(); asset = json['asset'] != null ? Asset.fromJson(json['asset']) : Asset();
assignedEmployee = json['assignedEmployee'] != null ? new AssignedEmployee.fromJson(json['assignedEmployee']) : AssignedEmployee(); assignedEmployee = json['assignedEmployee'] != null ? AssignedEmployee.fromJson(json['assignedEmployee']) : AssignedEmployee();
if (json['callSiteContactPerson'] != null) { if (json['callSiteContactPerson'] != null) {
callSiteContactPerson = json['callSiteContactPerson']; callSiteContactPerson = json['callSiteContactPerson'];
} }
status = json['status'] != null ? new Lookup.fromJson(json['status']) : Lookup(); status = json['status'] != null ? Lookup.fromJson(json['status']) : const Lookup();
callLastSituation = json['callLastSituation'] != null ? new Lookup.fromJson(json['callLastSituation']) : Lookup(); callLastSituation = json['callLastSituation'] != null ? Lookup.fromJson(json['callLastSituation']) : const Lookup();
defectType = json['defectType']; defectType = json['defectType'];
firstAction = json['firstAction']; firstAction = json['firstAction'];
assetType = json['assetType']; assetType = json['assetType'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['callNo'] = this.callNo; data['callNo'] = callNo;
if (this.asset != null) { if (asset != null) {
data['asset'] = this.asset.toJson(); data['asset'] = asset.toJson();
} }
if (this.assignedEmployee != null) { if (assignedEmployee != null) {
data['assignedEmployee'] = this.assignedEmployee.toJson(); data['assignedEmployee'] = assignedEmployee.toJson();
} }
if (this.callSiteContactPerson != null) { if (callSiteContactPerson != null) {
data['callSiteContactPerson'] = this.callSiteContactPerson.map((v) => v.toJson()).toList(); data['callSiteContactPerson'] = callSiteContactPerson.map((v) => v.toJson()).toList();
} }
if (this.status != null) { if (status != null) {
data['status'] = this.status.toMap(); data['status'] = status.toMap();
} }
if (this.callLastSituation != null) { if (callLastSituation != null) {
data['callLastSituation'] = this.callLastSituation.toMap(); data['callLastSituation'] = callLastSituation.toMap();
} }
data['defectType'] = this.defectType; data['defectType'] = defectType;
data['firstAction'] = this.firstAction; data['firstAction'] = firstAction;
data['assetType'] = this.assetType; data['assetType'] = assetType;
return data; return data;
} }
} }
@ -336,7 +424,7 @@ class Asset {
assetSerialNo = json['assetSerialNo']; assetSerialNo = json['assetSerialNo'];
systemID = json['systemID']; systemID = json['systemID'];
assetNumber = json['assetNumber']; assetNumber = json['assetNumber'];
modelDefinition = json['modelDefinition'] != null ? new ModelDefinition.fromJson(json['modelDefinition']) : ModelDefinition(); modelDefinition = json['modelDefinition'] != null ? ModelDefinition.fromJson(json['modelDefinition']) : ModelDefinition();
supplier = json['supplier']; supplier = json['supplier'];
ipAddress = json['ipAddress']; ipAddress = json['ipAddress'];
macAddress = json['macAddress']; macAddress = json['macAddress'];
@ -346,70 +434,70 @@ class Asset {
isParent = json['isParent']; isParent = json['isParent'];
parentAsset = json['parentAsset']; parentAsset = json['parentAsset'];
assetType = json['assetType']; assetType = json['assetType'];
site = json['site'] != null ? new Site.fromJson(json['site']) : Site(); site = json['site'] != null ? Site.fromJson(json['site']) : Site();
building = json['building']; building = json['building'];
floor = json['floor']; floor = json['floor'];
department = json['department']; department = json['department'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['assetSerialNo'] = this.assetSerialNo; data['assetSerialNo'] = assetSerialNo;
data['systemID'] = this.systemID; data['systemID'] = systemID;
data['assetNumber'] = this.assetNumber; data['assetNumber'] = assetNumber;
if (this.modelDefinition != null) { if (modelDefinition != null) {
data['modelDefinition'] = this.modelDefinition.toJson(); data['modelDefinition'] = modelDefinition.toJson();
} }
data['supplier'] = this.supplier; data['supplier'] = supplier;
data['ipAddress'] = this.ipAddress; data['ipAddress'] = ipAddress;
data['macAddress'] = this.macAddress; data['macAddress'] = macAddress;
data['portNumber'] = this.portNumber; data['portNumber'] = portNumber;
data['assetReplace'] = this.assetReplace; data['assetReplace'] = assetReplace;
data['oldAsset'] = this.oldAsset; data['oldAsset'] = oldAsset;
data['isParent'] = this.isParent; data['isParent'] = isParent;
data['parentAsset'] = this.parentAsset; data['parentAsset'] = parentAsset;
data['assetType'] = this.assetType; data['assetType'] = assetType;
if (this.site != null) { if (site != null) {
data['site'] = this.site.toJson(); data['site'] = site.toJson();
} }
data['building'] = this.building; data['building'] = building;
data['floor'] = this.floor; data['floor'] = floor;
data['department'] = this.department; data['department'] = department;
data['room'] = this.room; data['room'] = room;
data['testsDay'] = this.testsDay; data['testsDay'] = testsDay;
data['purchasingPrice'] = this.purchasingPrice; data['purchasingPrice'] = purchasingPrice;
data['nbv'] = this.nbv; data['nbv'] = nbv;
data['currency'] = this.currency; data['currency'] = currency;
data['poNo'] = this.poNo; data['poNo'] = poNo;
data['invoiceNumber'] = this.invoiceNumber; data['invoiceNumber'] = invoiceNumber;
data['invoiceDate'] = this.invoiceDate; data['invoiceDate'] = invoiceDate;
data['replacementDate'] = this.replacementDate; data['replacementDate'] = replacementDate;
data['originDepartment'] = this.originDepartment; data['originDepartment'] = originDepartment;
if (this.originSite != null) { if (originSite != null) {
data['originSite'] = this.originSite.toJson(); data['originSite'] = originSite.toJson();
} }
data['budgetYear'] = this.budgetYear; data['budgetYear'] = budgetYear;
data['lastPOPrice'] = this.lastPOPrice; data['lastPOPrice'] = lastPOPrice;
data['commissioningStatus'] = this.commissioningStatus; data['commissioningStatus'] = commissioningStatus;
data['productionDate'] = this.productionDate; data['productionDate'] = productionDate;
data['edd'] = this.edd; if (edd != null) data['edd'] = edd;
data['technicalInspectionDate'] = this.technicalInspectionDate; data['technicalInspectionDate'] = technicalInspectionDate;
data['deliveryInspectionDate'] = this.deliveryInspectionDate; data['deliveryInspectionDate'] = deliveryInspectionDate;
data['endUserAcceptanceDate'] = this.endUserAcceptanceDate; data['endUserAcceptanceDate'] = endUserAcceptanceDate;
data['receivingCommittee'] = this.receivingCommittee; data['receivingCommittee'] = receivingCommittee;
data['siteWarrantyMonths'] = this.siteWarrantyMonths; data['siteWarrantyMonths'] = siteWarrantyMonths;
data['extendedWarrantyMonths'] = this.extendedWarrantyMonths; data['extendedWarrantyMonths'] = extendedWarrantyMonths;
data['remainderWarrantyMonths'] = this.remainderWarrantyMonths; data['remainderWarrantyMonths'] = remainderWarrantyMonths;
data['eomWarrantyMonthsNo'] = this.eomWarrantyMonthsNo; data['eomWarrantyMonthsNo'] = eomWarrantyMonthsNo;
data['warrantyValue'] = this.warrantyValue; data['warrantyValue'] = warrantyValue;
data['warrantyEndDate'] = this.warrantyEndDate; data['warrantyEndDate'] = warrantyEndDate;
data['warrantyContractConditions'] = this.warrantyContractConditions; data['warrantyContractConditions'] = warrantyContractConditions;
if (this.technicalGuidanceBooks != null) { if (technicalGuidanceBooks != null) {
data['technicalGuidanceBooks'] = this.technicalGuidanceBooks.map((v) => v.toJson()).toList(); data['technicalGuidanceBooks'] = technicalGuidanceBooks.map((v) => v.toJson()).toList();
} }
data['comment'] = this.comment; data['comment'] = comment;
data['tagCode'] = this.tagCode; data['tagCode'] = tagCode;
return data; return data;
} }
} }
@ -453,7 +541,7 @@ class ModelDefinition {
if (json['modelDefRelatedDefects'] != null) { if (json['modelDefRelatedDefects'] != null) {
modelDefRelatedDefects = <ModelDefRelatedDefects>[]; modelDefRelatedDefects = <ModelDefRelatedDefects>[];
json['modelDefRelatedDefects'].forEach((v) { json['modelDefRelatedDefects'].forEach((v) {
modelDefRelatedDefects.add(new ModelDefRelatedDefects.fromJson(v)); modelDefRelatedDefects.add(ModelDefRelatedDefects.fromJson(v));
}); });
} }
if (json['suppliers'] != null) { if (json['suppliers'] != null) {
@ -462,21 +550,21 @@ class ModelDefinition {
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['assetName'] = this.assetName; data['assetName'] = assetName;
data['modelDefCode'] = this.modelDefCode; data['modelDefCode'] = modelDefCode;
data['modelName'] = this.modelName; data['modelName'] = modelName;
data['manufacturerId'] = this.manufacturerId; data['manufacturerId'] = manufacturerId;
data['manufacturerName'] = this.manufacturerName; data['manufacturerName'] = manufacturerName;
data['supplierName'] = this.supplierName; data['supplierName'] = supplierName;
data['replacementDate'] = this.replacementDate; data['replacementDate'] = replacementDate;
data['lifeSpan'] = this.lifeSpan; data['lifeSpan'] = lifeSpan;
if (this.modelDefRelatedDefects != null) { if (modelDefRelatedDefects != null) {
data['modelDefRelatedDefects'] = this.modelDefRelatedDefects.map((v) => v.toJson()).toList(); data['modelDefRelatedDefects'] = modelDefRelatedDefects.map((v) => v.toJson()).toList();
} }
if (this.suppliers != null) { if (suppliers != null) {
data['suppliers'] = this.suppliers.map((v) => v.toJson()).toList(); data['suppliers'] = suppliers.map((v) => v.toJson()).toList();
} }
return data; return data;
} }
@ -498,11 +586,11 @@ class ModelDefRelatedDefects {
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['defectName'] = this.defectName; data['defectName'] = defectName;
data['workPerformed'] = this.workPerformed; data['workPerformed'] = workPerformed;
data['estimatedTime'] = this.estimatedTime; data['estimatedTime'] = estimatedTime;
return data; return data;
} }
} }
@ -525,12 +613,12 @@ class Site {
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['customerCode'] = this.customerCode; data['customerCode'] = customerCode;
data['custName'] = this.custName; data['custName'] = custName;
if (this.buildings != null) { if (buildings != null) {
data['buildings'] = this.buildings.map((v) => v.toJson()).toList(); data['buildings'] = buildings.map((v) => v.toJson()).toList();
} }
return data; return data;
} }
@ -548,9 +636,9 @@ class AssignedEmployee {
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = this.id; data['id'] = id;
data['name'] = this.name; data['name'] = name;
return data; return data;
} }
} }

@ -3,11 +3,11 @@ import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/models/service_request/search_work_order.dart'; import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import '../../../controllers/api_routes/http_status_manger.dart'; import '../../../controllers/api_routes/http_status_manger.dart';
import '../../../controllers/localization/localization.dart'; import '../../../controllers/localization/localization.dart';
import '../../../controllers/providers/api/service_requests_provider.dart'; import '../../../controllers/providers/api/service_requests_provider.dart';
import '../../../models/service_report.dart';
import '../../../models/subtitle.dart'; import '../../../models/subtitle.dart';
import '../../widgets/app_text_form_field.dart'; import '../../widgets/app_text_form_field.dart';
import '../../widgets/buttons/app_button.dart'; import '../../widgets/buttons/app_button.dart';
@ -72,21 +72,37 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
final wo = _workOrder.sparePartsWorkOrders[index]; final wo = _workOrder.sparePartsWorkOrders[index];
return Column( return Column(
children: [ children: [
const ATextFormField(labelText: "Part No."), ATextFormField(
const SizedBox(height: 8), labelText: "Part No.",
const ATextFormField( onChange: (value) {
labelText: "Description", _workOrder.sparePartsWorkOrders[index].sparePart = SparePart(partNo: value);
hintText: "Add Some Text", },
textInputType: TextInputType.multiline,
), ),
// const SizedBox(height: 8),
// ATextFormField(
// labelText: "Description",
// hintText: "Add Some Text",
// textInputType: TextInputType.multiline,
// onSaved: (value) {
// _workOrder.sparePartsWorkOrders[index].sparePart = value;
// },
// ),
const SizedBox(height: 8), const SizedBox(height: 8),
const ATextFormField( ATextFormField(
labelText: "Quantity", labelText: "Quantity",
textInputType: TextInputType.number, textInputType: TextInputType.number,
onSaved: (value) {
_workOrder.sparePartsWorkOrders[index].qty = double.tryParse(value ?? "");
},
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
InkWell( InkWell(
onTap: () {}, onTap: () {
_workOrder.sparePartsWorkOrders.removeWhere(
(element) => (element.sparePart?.partNo == wo.sparePart?.partNo && element.id == wo.id),
);
setState(() {});
},
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
@ -106,7 +122,10 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
const Divider(), const Divider(),
const SizedBox(height: 8), const SizedBox(height: 8),
InkWell( InkWell(
onTap: () {}, onTap: () {
_workOrder.sparePartsWorkOrders.add(SparePartWorkOrder());
setState(() {});
},
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
color: AColors.primaryColor.withOpacity(0.15), color: AColors.primaryColor.withOpacity(0.15),
@ -116,9 +135,7 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
child: ListTile( child: ListTile(
title: Text( title: Text(
"Add Part", "Add Part",
style: Theme.of(context).textTheme.bodyMedium?.copyWith( style: Theme.of(context).textTheme.bodyMedium?.copyWith(color: AColors.primaryColor),
color: AColors.primaryColor,
),
), ),
trailing: const Icon( trailing: const Icon(
Icons.add_circle, Icons.add_circle,
@ -135,36 +152,38 @@ class _SparePartsBottomSheetState extends State<SparePartsBottomSheet> {
), ),
), ),
), ),
AButton( _isLoading
text: subtitle.update, ? const ALoading()
onPressed: () async { : AButton(
// _validate = true; text: subtitle.update,
if (!_formKey.currentState.validate()) { onPressed: () async {
setState(() {}); // _validate = true;
return; if (!_formKey.currentState.validate()) {
} setState(() {});
// if (!_serviceReport.validate()) { return;
// setState(() {}); }
// return; // if (!_serviceReport.validate()) {
// } // setState(() {});
_formKey.currentState.save(); // return;
// }
_formKey.currentState.save();
_isLoading = true; _isLoading = true;
setState(() {}); setState(() {});
int status = await Provider.of<ServiceRequestsProvider>(context).updateServiceReport(report: ServiceReport()); int status = await Provider.of<ServiceRequestsProvider>(context, listen: false).updateWorkOrderDetails(workOrder: _workOrder);
_isLoading = false; _isLoading = false;
setState(() {}); setState(() {});
if (status >= 200 && status < 300) { if (status >= 200 && status < 300) {
Fluttertoast.showToast(msg: subtitle.requestCompleteSuccessfully); Fluttertoast.showToast(msg: subtitle.requestCompleteSuccessfully);
Navigator.of(context).pop(); Navigator.of(context).pop();
// Navigator.of(context).pop(); // Navigator.of(context).pop();
} else { } else {
String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: subtitle); String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: subtitle);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(errorMessage))); ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(errorMessage)));
} }
}, },
), ),
], ],
), ),
), ),

@ -7,13 +7,13 @@ import 'package:test_sa/models/service_request/search_work_order.dart';
import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/widgets/app_text_form_field.dart'; 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/buttons/app_button.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/status/report/service_report_maintenance_situation.dart'; import 'package:test_sa/views/widgets/status/report/service_report_maintenance_situation.dart';
import 'package:test_sa/views/widgets/status/report/service_report_repair_location.dart'; import 'package:test_sa/views/widgets/status/report/service_report_repair_location.dart';
import '../../../controllers/api_routes/http_status_manger.dart'; import '../../../controllers/api_routes/http_status_manger.dart';
import '../../../controllers/localization/localization.dart'; import '../../../controllers/localization/localization.dart';
import '../../../models/engineer.dart'; import '../../../models/engineer.dart';
import '../../../models/service_report.dart';
import '../../app_style/sizing.dart'; import '../../app_style/sizing.dart';
import '../../widgets/date_and_time/time_picker.dart'; import '../../widgets/date_and_time/time_picker.dart';
import '../../widgets/status/report/service_report_all_users.dart'; import '../../widgets/status/report/service_report_all_users.dart';
@ -135,7 +135,7 @@ class _WorkOrderDetailsBottomSheetState extends State<WorkOrderDetailsBottomShee
textAlign: TextAlign.center, textAlign: TextAlign.center,
hintText: _workOrder.startDate == null hintText: _workOrder.startDate == null
? "0" ? "0"
: ((DateTime.tryParse(_workOrder.endDate)?.difference(DateTime.tryParse(_workOrder.startDate ?? ""))?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? "0", : ((DateTime.tryParse(_workOrder.endDate ?? "")?.difference(DateTime.tryParse(_workOrder.startDate ?? ""))?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? "0",
enable: false, enable: false,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context).textTheme.titleMedium,
// validator: (value) => Validator.isNumeric(value) ? null : _subtitle.requiredWord, // validator: (value) => Validator.isNumeric(value) ? null : _subtitle.requiredWord,
@ -200,36 +200,38 @@ class _WorkOrderDetailsBottomSheetState extends State<WorkOrderDetailsBottomShee
), ),
), ),
), ),
AButton( _isLoading
text: subtitle.update, ? const ALoading()
onPressed: () async { : AButton(
// _validate = true; text: subtitle.update,
if (!_formKey.currentState.validate()) { onPressed: () async {
setState(() {}); // _validate = true;
return; if (!_formKey.currentState.validate()) {
} setState(() {});
// if (!_serviceReport.validate()) { return;
// setState(() {}); }
// return; // if (!_serviceReport.validate()) {
// } // setState(() {});
_formKey.currentState.save(); // return;
// }
_formKey.currentState.save();
_isLoading = true; _isLoading = true;
setState(() {}); setState(() {});
int status = await Provider.of<ServiceRequestsProvider>(context).updateServiceReport(report: ServiceReport()); int status = await Provider.of<ServiceRequestsProvider>(context, listen: false).updateWorkOrderDetails(workOrder: _workOrder);
_isLoading = false; _isLoading = false;
setState(() {}); setState(() {});
if (status >= 200 && status < 300) { if (status >= 200 && status < 300) {
Fluttertoast.showToast(msg: subtitle.requestCompleteSuccessfully); Fluttertoast.showToast(msg: subtitle.requestCompleteSuccessfully);
Navigator.of(context).pop(); Navigator.of(context).pop();
// Navigator.of(context).pop(); // Navigator.of(context).pop();
} else { } else {
String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: subtitle); String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: subtitle);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(errorMessage))); ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(errorMessage)));
} }
}, },
), ),
], ],
), ),
), ),

Loading…
Cancel
Save