work order

pull/2/head
nextwo 3 years ago
parent b8ea1ab030
commit 73cc2143bc

@ -57,7 +57,7 @@ class ServiceReportLastCallsProvider extends ChangeNotifier {
try {
// todo request new api from backend to make filter work
response = await ApiManager.instance.get(
"${URLs.getServiceReportLastCalls}?parentWOId=$woId&isAdd=true&id=${id ?? 0}&typeTransaction=$typeName",
"${URLs.getServiceReportLastCalls}?parentWOId=${woId??id}&isAdd=true&id=${id ?? 0}&typeTransaction=$typeName",
);
// response = await get(
// Uri.parse(

@ -2,6 +2,9 @@ import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/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/service_report.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/pages/sub_workorder/spare_parts_details_bottom_sheet.dart';
@ -10,11 +13,16 @@ import 'package:test_sa/views/pages/sub_workorder/workorder_details.dart';
import '../../../controllers/api_routes/http_status_manger.dart';
import '../../../controllers/localization/localization.dart';
import '../../../models/fault_description.dart';
import '../../../models/subtitle.dart';
import '../../widgets/app_text_form_field.dart';
import '../../widgets/buttons/app_back_button.dart';
import '../../widgets/buttons/app_button.dart';
import '../../widgets/date_and_time/date_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_fault_description.dart';
import '../../widgets/status/report/service_report_reasons.dart';
import '../../widgets/titles/app_sub_title.dart';
@ -29,40 +37,18 @@ class CreateSubWorkOrderPage extends StatefulWidget {
class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
SearchWorkOrders _searchWorkOrders =SearchWorkOrders();
Lookup _serviceReportReason=Lookup();
ServiceReport _serviceReport;
@override
Widget build(BuildContext context) {
final Subtitle subtitle = AppLocalization.of(context).subtitle;
_serviceReport =ServiceReport(id: widget.workOrder.id, type: Lookup(name: widget.workOrder.assetType),equipmentStatus: Lookup(name: widget.workOrder.equipmentStatus) );
return Scaffold(
body: SafeArea(
child: SingleChildScrollView(
child: Column(
children: [
// ServiceReportEquipmentStatusMenu(
// report: _serviceReport,
// request: widget.request,
// onSelect: (status) {
// _serviceReport.equipmentStatus = status;
// },
// ),
// ADatePicker(
// // date: _from,
// // from: DateTime(1950),
// onDatePicker: (date) {
// // _from = date;
// // setState(() {});
// // widget.onPickFrom(date);
// },
// ),
// ASubTitle("_subtitle.reasons"),
// const SizedBox(
// height: 4,
// ),
// ServiceReportReasonsMenu(
// initialValue: _serviceReport.reason,
// onSelect: (status) {
// _serviceReport.reason = status;
// },
// ),
Container(
color: AColors.primaryColor,
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
@ -91,7 +77,97 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 16),
child: Column(
children: [
WorkOrderDetails(),
WorkOrderDetails(item: widget.workOrder,),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle("Equipment status"),
const SizedBox(
height: 4,
),
ServiceReportEquipmentStatusMenu(
report: _serviceReport,
onSelect: (status) {
_searchWorkOrders.equipmentStatus=status.name;
_serviceReport.equipmentStatus=status;
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle("Return to Service"),
const SizedBox(
height: 4,
),
Row(
children: [
Expanded(
child: ADatePicker(
from: DateTime(1950),
onDatePicker: (date) {
setState(() {});
},
),
),
],
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle("Failure "+subtitle.reasons),
const SizedBox(
height: 4,
),
ServiceReportReasonsMenu(
initialValue: _serviceReportReason,
onSelect: (status) {
_serviceReportReason=status;
_searchWorkOrders.reason = status.name;
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle(subtitle.faultDescription),
const SizedBox(
height: 4,
),
ServiceReportFaultDescription(
requestId: widget.workOrder.id.toString(),
initialValue: FaultDescription(id: _searchWorkOrders?.faultDescription?.id, defectName: _searchWorkOrders?.faultDescription?.defectName, workPerformed: _searchWorkOrders?.faultDescription?.workPerformed, estimatedTime: _searchWorkOrders?.faultDescription?.estimatedTime),
onSelect: (status) {
_searchWorkOrders.faultDescription = ModelDefRelatedDefects(id: status?.id, defectName: status?.defectName, workPerformed: status?.workPerformed, estimatedTime: status?.estimatedTime);
},
),
],
),
const SizedBox(height: 8),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ASubTitle("Solution"),
const SizedBox(
height: 4,
),
ATextFormField(
labelText: "Add some text",
textInputType: TextInputType.multiline,
onSaved: (value) {
},
),
],
),
const SizedBox(height: 8),
InkWell(
onTap: () {
@ -144,6 +220,16 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
),
),
),
const SizedBox(height: 8),
AMiniOneImagePicker(
//error: _validate && _serviceReport.image == null,
//image: _image,
onPick: (image) {
//_image = image;
// _serviceReport.image = "${image.path.split("/").last}|${base64Encode(image.readAsBytesSync())}";
},
),
const SizedBox(height: 50),
],
),
),
@ -157,6 +243,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
child: AButton(
text: subtitle.create,
onPressed: () async {
_searchWorkOrders.parentWOId=widget.workOrder.id.toString();
// validate = true;
// if (!_formKey.currentState.validate()) {
// setState(() {});

@ -1,15 +1,19 @@
import 'package:flutter/material.dart';
import '../../../controllers/localization/localization.dart';
import '../../../models/service_request/search_work_order.dart';
import '../../../models/subtitle.dart';
import '../../app_style/colors.dart';
import '../../app_style/sizing.dart';
class WorkOrderDetails extends StatelessWidget {
final SearchWorkOrders item;
const WorkOrderDetails({@required this.item,Key key}) : super(key: key);
WorkOrderDetails({@required this.item,Key key}) : super(key: key);
Subtitle _subtitle;
@override
Widget build(BuildContext context) {
_subtitle = AppLocalization.of(context).subtitle;
return Column(
children: [
Container(
@ -20,26 +24,25 @@ class WorkOrderDetails extends StatelessWidget {
color: Color(0xffefefef),
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
// boxShadow: const [
// AppStyle.boxShadow
// ]
),
child: Column(
children: [
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow("call id", "", context),
_buildRow(_subtitle.callId, item.callRequest?.id?.toString()??"", context),
_buildRow(_subtitle.assetNumber, item.callRequest?.asset?.assetNumber??"", context),
_buildRow("WO No", item.workOrderNo, context),
_buildRow(_subtitle.assetName, item.callRequest?.asset?.assetNumber??'', context),
_buildRow(_subtitle.department, item.callRequest?.asset?.department??'', context),
_buildRow(_subtitle.assetSN, item.callRequest?.asset?.assetSerialNo??'', context),
_buildRow(_subtitle.model, item.callRequest?.asset?.modelDefinition?.modelName??"", context),
_buildRow("Manufacturer", item.callRequest?.asset?.modelDefinition?.manufacturerName??"", context),
_buildRow(_subtitle.site, item.callRequest?.asset?.site?.custName??"", context),
],
),
),
const SizedBox(height: 8),
Container(
padding: EdgeInsets.all(10),
height: 55,
decoration: BoxDecoration(
color: AColors.inputFieldBackgroundColor,
border: Border.all(
@ -47,22 +50,21 @@ class WorkOrderDetails extends StatelessWidget {
),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
),
child: _buildRow("call id", "", context),)
child: _buildRow("Asset type", item.callRequest?.asset?.assetType??'', context),)
],
);
}
Widget _buildRow(String title, String value, BuildContext context){
return Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
child: Text(
"Call Id",
style: Theme.of(context).textTheme.subtitle2.copyWith(),
),
Text(
title+" : ",
style: Theme.of(context).textTheme.subtitle2.copyWith(fontWeight: FontWeight.bold),
),
//if (item.clientName != null)
Text(
'',
value,
style: Theme.of(context).textTheme.subtitle2.copyWith(),
),
],

@ -55,7 +55,7 @@ class _WorkOrderUpdateState extends State<WorkOrderUpdate> {
],
),
),
WorkOrderDetails(item: widget.item,)
//WorkOrderDetails(item: widget.item,)
],
),
),

@ -44,10 +44,10 @@ class _ServiceReportEquipmentStatusMenuState extends State<ServiceReportEquipmen
await callsLastSituationsProvider.getCalls(
user: userProvider.user,
host: settingProvider.host,
serviceStatus: widget.report.equipmentStatus?.id,
typeName: widget.report.type?.name,
id: widget.report.id,
woId: widget.request.id,
serviceStatus: widget.report?.equipmentStatus?.id,
typeName: widget.report?.type?.name,
id: widget.report?.id,
woId: widget.request?.id,
);
if (menuProvider.stateCode == null) {
menuProvider.reset();
@ -57,16 +57,16 @@ class _ServiceReportEquipmentStatusMenuState extends State<ServiceReportEquipmen
},
child: SingleStatusMenu(
statuses: menuProvider.statuses,
initialStatus: widget.report.equipmentStatus,
initialStatus: widget.report?.equipmentStatus,
onSelect: (status) {
widget.report.callLastSituation = null;
widget.report?.callLastSituation = null;
callsLastSituationsProvider.getCalls(
user: userProvider.user,
host: settingProvider.host,
serviceStatus: status.id,
id: widget.report.id,
woId: widget.request.id,
typeName: widget.report.type?.name,
id: widget.report?.id,
woId: widget.request?.id,
typeName: widget.report?.type?.name,
);
widget.onSelect(status);

Loading…
Cancel
Save