work order

pull/2/head
nextwo 3 years ago
parent 6db92bc08d
commit 52eee5196f

@ -365,6 +365,28 @@ class ServiceRequestsProvider extends ChangeNotifier {
} }
} }
Future<int> createSubWorkOrder({
@required SearchWorkOrder workOrder,
}) async {
Response response;
try {
Map<String, dynamic> body= workOrder.toJson();
response = await ApiManager.instance.post(URLs.createServiceReport, body: body);
print(response.body);
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
reset();
notifyListeners();
}
return response.statusCode;
} catch (error) {
print(error);
return -1;
}
}
CallRequestForWorkOrder callRequestForWorkOrder; CallRequestForWorkOrder callRequestForWorkOrder;
Future<CallRequestForWorkOrder> getCallRequestForWorkOrder({String callId}) async { Future<CallRequestForWorkOrder> getCallRequestForWorkOrder({String callId}) async {

@ -250,7 +250,7 @@ class SearchWorkOrder {
map['reviewComment'] = reviewComment; map['reviewComment'] = reviewComment;
map['comment'] = comment; map['comment'] = comment;
if (attachmentsWorkOrder != null) { if (attachmentsWorkOrder != null) {
map['attachmentsWorkOrder'] = attachmentsWorkOrder.map((v) => v.toJson()).toList(); map['attachmentsWorkOrder'] = attachmentsWorkOrder.map((v) => {"name": v.name})?.toList();
} }
if (equipmentStatus != null) { if (equipmentStatus != null) {
map['equipmentStatus'] = equipmentStatus.toMap(); map['equipmentStatus'] = equipmentStatus.toMap();

@ -1,8 +1,11 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart'; import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/service_report.dart'; import 'package:test_sa/models/service_report.dart';
import 'package:test_sa/models/service_request/search_work_order.dart'; import 'package:test_sa/models/service_request/search_work_order.dart';
@ -20,7 +23,6 @@ import '../../widgets/buttons/app_back_button.dart';
import '../../widgets/buttons/app_button.dart'; import '../../widgets/buttons/app_button.dart';
import '../../widgets/date_and_time/date_picker.dart'; import '../../widgets/date_and_time/date_picker.dart';
import '../../widgets/images/mini_one_image_picker.dart'; import '../../widgets/images/mini_one_image_picker.dart';
import '../../widgets/status/report/fault_desc_menu.dart';
import '../../widgets/status/report/service_report_equipment_status.dart'; import '../../widgets/status/report/service_report_equipment_status.dart';
import '../../widgets/status/report/service_report_fault_description.dart'; import '../../widgets/status/report/service_report_fault_description.dart';
import '../../widgets/status/report/service_report_reasons.dart'; import '../../widgets/status/report/service_report_reasons.dart';
@ -37,9 +39,17 @@ class CreateSubWorkOrderPage extends StatefulWidget {
class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> { class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
SearchWorkOrder _searchWorkOrders =SearchWorkOrder(); SearchWorkOrder _subWorkOrders =SearchWorkOrder();
Lookup _serviceReportReason=Lookup(); Lookup _serviceReportReason=Lookup();
ServiceReport _serviceReport; ServiceReport _serviceReport;
File _image;
bool _isLoading = false;
@override
void initState() {
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final Subtitle subtitle = AppLocalization.of(context).subtitle; final Subtitle subtitle = AppLocalization.of(context).subtitle;
@ -89,7 +99,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
ServiceReportEquipmentStatusMenu( ServiceReportEquipmentStatusMenu(
report: _serviceReport, report: _serviceReport,
onSelect: (status) { onSelect: (status) {
_searchWorkOrders.equipmentStatus=status; _subWorkOrders.equipmentStatus=status;
_serviceReport.equipmentStatus=status; _serviceReport.equipmentStatus=status;
}, },
), ),
@ -107,8 +117,10 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
children: [ children: [
Expanded( Expanded(
child: ADatePicker( child: ADatePicker(
date: DateTime.tryParse(_subWorkOrders.visitDate??""),
from: DateTime(1950), from: DateTime(1950),
onDatePicker: (date) { onDatePicker: (date) {
_subWorkOrders.visitDate=date?.toIso8601String();
setState(() {}); setState(() {});
}, },
), ),
@ -129,7 +141,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
initialValue: _serviceReportReason, initialValue: _serviceReportReason,
onSelect: (status) { onSelect: (status) {
_serviceReportReason=status; _serviceReportReason=status;
_searchWorkOrders.reason = status; _subWorkOrders.reason = status;
}, },
), ),
], ],
@ -144,30 +156,30 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
), ),
ServiceReportFaultDescription( ServiceReportFaultDescription(
requestId: widget.workOrder.id.toString(), requestId: widget.workOrder.id.toString(),
initialValue: FaultDescription(id: _searchWorkOrders?.faultDescription?.id, defectName: _searchWorkOrders?.faultDescription?.defectName, workPerformed: _searchWorkOrders?.faultDescription?.workPerformed, estimatedTime: _searchWorkOrders?.faultDescription?.estimatedTime), initialValue: FaultDescription(id: _subWorkOrders?.faultDescription?.id, defectName: _subWorkOrders?.faultDescription?.defectName, workPerformed: _subWorkOrders?.faultDescription?.workPerformed, estimatedTime: _subWorkOrders?.faultDescription?.estimatedTime),
onSelect: (status) { onSelect: (status) {
_searchWorkOrders.faultDescription=status; _subWorkOrders.faultDescription=status;
}, },
), ),
], ],
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
Column( // Column(
crossAxisAlignment: CrossAxisAlignment.start, // crossAxisAlignment: CrossAxisAlignment.start,
children: [ // children: [
ASubTitle("Solution"), // ASubTitle("Solution"),
const SizedBox( // const SizedBox(
height: 4, // height: 4,
), // ),
ATextFormField( // ATextFormField(
labelText: "Add some text", // labelText: "Add some text",
textInputType: TextInputType.multiline, // textInputType: TextInputType.multiline,
onSaved: (value) { // onSaved: (value) {
//
}, // },
), // ),
], // ],
), // ),
const SizedBox(height: 8), const SizedBox(height: 8),
InkWell( InkWell(
onTap: () { onTap: () {
@ -222,11 +234,10 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
), ),
const SizedBox(height: 8), const SizedBox(height: 8),
AMiniOneImagePicker( AMiniOneImagePicker(
//error: _validate && _serviceReport.image == null, image: _image,
//image: _image,
onPick: (image) { onPick: (image) {
//_image = image; _image = image;
// _serviceReport.image = "${image.path.split("/").last}|${base64Encode(image.readAsBytesSync())}"; _subWorkOrders.attachmentsWorkOrder.add(AttachmentsWorkOrder(name: "${image.path.split("/").last}|${base64Encode(image.readAsBytesSync())}"));
}, },
), ),
const SizedBox(height: 50), const SizedBox(height: 50),
@ -243,32 +254,21 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
child: AButton( child: AButton(
text: subtitle.create, text: subtitle.create,
onPressed: () async { onPressed: () async {
_searchWorkOrders.parentWOId=widget.workOrder.id; _subWorkOrders.parentWOId=widget.workOrder.id;
// validate = true; _isLoading = true;
// if (!_formKey.currentState.validate()) {
// setState(() {});
// return;
// }
// if (!_serviceReport.validate()) return;
_formKey.currentState.save();
// _isLoading = true;
setState(() {}); setState(() {});
if (_formKey.currentState?.validate() ?? false) {}
int status = await Provider.of<ServiceRequestsProvider>(context).createServiceReport( _formKey.currentState?.save();
// user: _userProvider.user, final serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context, listen: false);
// host: _settingProvider.host, final status = await serviceRequestsProvider.createSubWorkOrder(workOrder: _subWorkOrders);
// report: _serviceReport, _isLoading = false;
// request: widget.request,
);
// _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: serviceRequestsProvider.stateCode, subtitle: subtitle);
ScaffoldMessenger.of(context).showSnackBar(SnackBar( ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(errorMessage), content: Text(errorMessage),
)); ));

Loading…
Cancel
Save