Sub work order screen under testing

main_design2.0
zaid_daoud 12 months ago
parent db3053bc3a
commit 884471009a

@ -1,53 +0,0 @@
import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/service_request/supplier_details.dart';
class VendorProvider extends ChangeNotifier {
void reset() {
_vendors = null;
_loading = null;
_stateCode = null;
}
int _stateCode;
int get stateCode => _stateCode;
List<SupplierDetails> _vendors;
List<SupplierDetails> get vendors => _vendors;
bool _loading;
bool get isLoading => _loading;
set isLoading(bool isLoading) {
_loading = isLoading;
notifyListeners();
}
Future<int> getVendors(String text) async {
if (_loading == true) return -2;
_loading = true;
notifyListeners();
Response response;
try {
response = await ApiManager.instance.get("${URLs.getSuppliersAutoComplete}?searchText=$text");
_stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List suppliersJson = json.decode(response.body)["data"];
_vendors = suppliersJson.map((type) => SupplierDetails.fromJson(type)).toList();
}
_loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
_loading = false;
_stateCode = -1;
notifyListeners();
return -1;
}
}
}

@ -69,6 +69,7 @@ import 'package:test_sa/providers/service_request_providers/requested_through_pr
import 'package:test_sa/providers/service_request_providers/type_of_request_provider.dart'; import 'package:test_sa/providers/service_request_providers/type_of_request_provider.dart';
import 'package:test_sa/providers/work_order/reason_provider.dart'; import 'package:test_sa/providers/work_order/reason_provider.dart';
import 'package:test_sa/providers/work_order/service_type_provider.dart'; import 'package:test_sa/providers/work_order/service_type_provider.dart';
import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/views/pages/device_transfer/asset_filter_screen.dart'; import 'package:test_sa/views/pages/device_transfer/asset_filter_screen.dart';
import 'package:test_sa/views/pages/device_transfer/asset_search_screen.dart'; import 'package:test_sa/views/pages/device_transfer/asset_search_screen.dart';
import 'package:test_sa/views/pages/device_transfer/request_device_transfer.dart'; import 'package:test_sa/views/pages/device_transfer/request_device_transfer.dart';
@ -191,6 +192,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => PPMDeviceStatusProvider()), ChangeNotifierProvider(create: (_) => PPMDeviceStatusProvider()),
ChangeNotifierProvider(create: (_) => CommentsProvider()), ChangeNotifierProvider(create: (_) => CommentsProvider()),
ChangeNotifierProvider(create: (_) => RequestStatusProvider()), ChangeNotifierProvider(create: (_) => RequestStatusProvider()),
ChangeNotifierProvider(create: (_) => VendorProvider()),
], ],
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {

@ -44,7 +44,7 @@ class Building extends Base {
map['id'] = id; map['id'] = id;
map['name'] = name; map['name'] = name;
map['value'] = value; map['value'] = value;
if(addFloor) { if (addFloor) {
if (floors != null) { if (floors != null) {
map['floors'] = floors.map((v) => v.toJson()).toList(); map['floors'] = floors.map((v) => v.toJson()).toList();
} }

@ -44,10 +44,9 @@ class Floor extends Base {
map['id'] = id; map['id'] = id;
map['name'] = name; map['name'] = name;
map['value'] = value; map['value'] = value;
if (addDepartments) if (addDepartments) if (departments != null) {
if (departments != null) { map['departments'] = departments.map((v) => v.toJson()).toList();
map['departments'] = departments.map((v) => v.toJson()).toList(); }
} return map;
return map;
} }
} }

@ -1,4 +1,6 @@
class SuppEngineerWorkOrders { import 'package:test_sa/models/base.dart';
class SuppEngineerWorkOrders extends Base {
SuppEngineerWorkOrders({ SuppEngineerWorkOrders({
this.id, this.id,
this.supplierContactId, this.supplierContactId,
@ -7,12 +9,14 @@ class SuppEngineerWorkOrders {
this.contact, this.contact,
this.externalEngCode, this.externalEngCode,
this.email, this.email,
}); }) : super(identifier: id?.toString(), name: personName);
SuppEngineerWorkOrders.fromJson(dynamic json) { SuppEngineerWorkOrders.fromJson(dynamic json) {
id = json['id']; id = json['id'];
identifier = id?.toString();
supplierContactId = json['supplierContactId']; supplierContactId = json['supplierContactId'];
personName = json['personName']; personName = json['personName'];
name = personName;
personRoleName = json['personRoleName']; personRoleName = json['personRoleName'];
contact = json['contact']; contact = json['contact'];
externalEngCode = json['externalEngCode']; externalEngCode = json['externalEngCode'];

@ -1,8 +1,10 @@
class SupplierDetails { import 'package:test_sa/models/base.dart';
class SupplierDetails extends Base {
SupplierDetails({ SupplierDetails({
this.id, this.id,
this.suppliername, this.suppliername,
this.name, this.nameX,
this.website, this.website,
this.email, this.email,
this.code, this.code,
@ -19,12 +21,14 @@ class SupplierDetails {
this.attachments, this.attachments,
this.suppPersons, this.suppPersons,
this.suppTCodes, this.suppTCodes,
}); }) : super(name: suppliername, identifier: id?.toString());
SupplierDetails.fromJson(dynamic json) { SupplierDetails.fromJson(dynamic json) {
id = json['id']; id = json['id'];
identifier = id?.toString();
suppliername = json['suppliername']; suppliername = json['suppliername'];
name = json['name']; name = suppliername;
nameX = json['name'];
website = json['website']; website = json['website'];
email = json['email']; email = json['email'];
code = json['code']; code = json['code'];
@ -74,7 +78,7 @@ class SupplierDetails {
} }
num id; num id;
String suppliername; String suppliername;
String name; String nameX;
String website; String website;
String email; String email;
String code; String code;
@ -94,7 +98,7 @@ class SupplierDetails {
SupplierDetails copyWith({ SupplierDetails copyWith({
num id, num id,
String suppliername, String suppliername,
String name, String nameX,
String website, String website,
String email, String email,
String code, String code,
@ -115,7 +119,7 @@ class SupplierDetails {
SupplierDetails( SupplierDetails(
id: id ?? this.id, id: id ?? this.id,
suppliername: suppliername ?? this.suppliername, suppliername: suppliername ?? this.suppliername,
name: name ?? this.name, nameX: nameX ?? this.nameX,
website: website ?? this.website, website: website ?? this.website,
email: email ?? this.email, email: email ?? this.email,
code: code ?? this.code, code: code ?? this.code,
@ -137,7 +141,7 @@ class SupplierDetails {
final map = <String, dynamic>{}; final map = <String, dynamic>{};
map['id'] = id; map['id'] = id;
map['suppliername'] = suppliername; map['suppliername'] = suppliername;
map['name'] = name; map['name'] = nameX;
map['website'] = website; map['website'] = website;
map['email'] = email; map['email'] = email;
map['code'] = code; map['code'] = code;
@ -210,7 +214,7 @@ class SuppTCodes {
} }
} }
class SuppPersons { class SuppPersons extends Base {
SuppPersons({ SuppPersons({
this.id, this.id,
this.supplierId, this.supplierId,
@ -219,12 +223,14 @@ class SuppPersons {
this.contact, this.contact,
this.externalEngCode, this.externalEngCode,
this.email, this.email,
}); }) : super(name: personName, identifier: id?.toString());
SuppPersons.fromJson(dynamic json) { SuppPersons.fromJson(dynamic json) {
id = json['id']; id = json['id'];
identifier = id?.toString();
supplierId = json['supplierId']; supplierId = json['supplierId'];
personName = json['personName']; personName = json['personName'];
name = personName;
personRoleId = json['personRoleId']; personRoleId = json['personRoleId'];
contact = json['contact']; contact = json['contact'];
externalEngCode = json['externalEngCode']; externalEngCode = json['externalEngCode'];

@ -45,7 +45,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
final result = (X == NullableLoadingProvider ? widget.staticData : provider.items)?.where((element) { final result = (X == NullableLoadingProvider ? widget.staticData : provider.items)?.where((element) {
return element == widget.initialValue; return element == widget.initialValue;
}); });
if (result?.isNotEmpty??false) _selectedItem = result.first; if (result?.isNotEmpty ?? false) _selectedItem = result.first;
if (widget.onSelect != null && (widget.initialValue?.identifier ?? "") != (_selectedItem?.identifier ?? "")) { if (widget.onSelect != null && (widget.initialValue?.identifier ?? "") != (_selectedItem?.identifier ?? "")) {
widget.onSelect(_selectedItem); widget.onSelect(_selectedItem);
} }
@ -64,7 +64,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
final result = (X == NullableLoadingProvider ? widget.staticData : provider.items)?.where((element) { final result = (X == NullableLoadingProvider ? widget.staticData : provider.items)?.where((element) {
return element == widget.initialValue; return element == widget.initialValue;
}); });
if (result?.isNotEmpty??false) { if (result?.isNotEmpty ?? false) {
_selectedItem = result.first; _selectedItem = result.first;
} else { } else {
_selectedItem = null; _selectedItem = null;

@ -0,0 +1,35 @@
import 'dart:convert';
import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/service_request/supplier_details.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
class VendorProvider extends LoadingListNotifier<SupplierDetails> {
@override
Future getDate() async {
if (loading == true) return -2;
loading = true;
notifyListeners();
loading = true;
notifyListeners();
try {
Response response = await ApiManager.instance.get("${URLs.getSuppliersAutoComplete}?searchText=${""}");
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List categoriesListJson = json.decode(response.body)["data"];
items = categoriesListJson.map((item) => SupplierDetails.fromJson(item)).toList();
}
loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
loading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
}

@ -211,9 +211,10 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
children: [ children: [
context.translation.transferDetails.heading5(context), context.translation.transferDetails.heading5(context),
8.height, 8.height,
'${context.translation.assetName}: ${_formModel.assetName}'.bodyText(context), '${context.translation.assetName}: ${_formModel.assetName}'.bodyText(context),
///TBDZ ///TBDZ
'${context.translation.requesterName}: '.bodyText(context), '${context.translation.requesterName}: '.bodyText(context),
], ],
).toShadowContainer(context); ).toShadowContainer(context);
} }

@ -1,11 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart'; import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/service_request/supplier_details.dart'; import 'package:test_sa/models/service_request/supplier_details.dart';
import '../../../controllers/providers/api/status_drop_down/report/vendor_provider.dart'; import '../../../providers/work_order/vendor_provider.dart';
import '../../app_style/colors.dart';
import '../../app_style/sizing.dart';
class AutoGeneratedVendorName extends StatefulWidget { class AutoGeneratedVendorName extends StatefulWidget {
final String initialValue; final String initialValue;
@ -43,43 +42,30 @@ class _AutoGeneratedVendorNameState extends State<AutoGeneratedVendorName> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final vendorProvider = Provider.of<VendorProvider>(context, listen: false); final vendorProvider = Provider.of<VendorProvider>(context, listen: false);
return Container( return TypeAheadField<SupplierDetails>(
padding: const EdgeInsets.symmetric(horizontal: 16), textFieldConfiguration: TextFieldConfiguration(
decoration: BoxDecoration( style: Theme.of(context).textTheme.titleLarge,
color: AColors.inputFieldBackgroundColor, controller: _controller,
border: Border.all( textAlign: TextAlign.center,
color: const Color(0xffefefef), decoration: const InputDecoration(
hintText: "Vendor Name",
border: InputBorder.none,
disabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
enabledBorder: InputBorder.none,
), ),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)), textInputAction: TextInputAction.search,
// boxShadow: [
// AppStyle.boxShadow
// ]
), ),
child: TypeAheadField<SupplierDetails>( suggestionsCallback: (vale) async {
textFieldConfiguration: TextFieldConfiguration( // await vendorProvider.getVendors(_controller.text.trim());
style: Theme.of(context).textTheme.titleLarge, // return vendorProvider.vendors;
controller: _controller, },
textAlign: TextAlign.center, itemBuilder: (context, vendor) {
decoration: const InputDecoration( return ListTile(title: Text(vendor.suppliername));
hintText: "Vendor Name", },
border: InputBorder.none, onSuggestionSelected: (hospital) {
disabledBorder: InputBorder.none, widget.onSearch(hospital);
focusedBorder: InputBorder.none, },
enabledBorder: InputBorder.none, ).toShadowContainer(context);
),
textInputAction: TextInputAction.search,
),
suggestionsCallback: (vale) async {
await vendorProvider.getVendors(_controller.text.trim());
return vendorProvider.vendors;
},
itemBuilder: (context, vendor) {
return ListTile(title: Text(vendor.suppliername));
},
onSuggestionSelected: (hospital) {
widget.onSearch(hospital);
},
),
);
} }
} }

@ -1,4 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'dart:developer';
import 'dart:io'; import 'dart:io';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -17,6 +18,7 @@ import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart'; import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart';
import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/views/widgets/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart';
@ -35,9 +37,7 @@ import '../../../providers/work_order/reason_provider.dart';
import '../../widgets/date_and_time/date_picker.dart'; import '../../widgets/date_and_time/date_picker.dart';
import '../../widgets/status/report/service_report_assistant_employee_menu.dart'; import '../../widgets/status/report/service_report_assistant_employee_menu.dart';
import '../../widgets/status/report/service_report_last_call.dart'; import '../../widgets/status/report/service_report_last_call.dart';
import '../../widgets/status/service_request/supplier_engineers_menu.dart';
import '../../widgets/timer/app_timer.dart'; import '../../widgets/timer/app_timer.dart';
import 'auto_generated_vendor_name.dart';
class CreateSubWorkOrderPage extends StatefulWidget { class CreateSubWorkOrderPage extends StatefulWidget {
static const id = "/CreateSubWorkOrder"; static const id = "/CreateSubWorkOrder";
@ -205,23 +205,35 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
), ),
if (_showVendorFields) const SizedBox(height: 8), if (_showVendorFields) const SizedBox(height: 8),
if (_showVendorFields) if (_showVendorFields)
AutoGeneratedVendorName( SingleItemDropDownMenu<SupplierDetails, VendorProvider>(
initialValue: _subWorkOrders.supplier?.suppliername, context: context,
onSearch: (supplier) { title: "Vendor Engineer",
_subWorkOrders.supplier.id = supplier.id; initialValue: _subWorkOrders.supplier,
_subWorkOrders.supplier.suppliername = supplier.suppliername; onSelect: (supplier) {
_subWorkOrders.supplier.suppPersons = supplier.suppPersons; if (supplier != null) {
setState(() {}); _subWorkOrders.supplier = supplier;
log(_subWorkOrders.supplier?.suppPersons?.map((e) => e.personName)?.toString());
setState(() {});
}
}, },
), ),
if (_showVendorFields) const SizedBox(height: 8), if (_showVendorFields) const SizedBox(height: 8),
if (_showVendorFields) if (_showVendorFields)
SupplierEngineersMenu( SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
initialValue: engineer, context: context,
engineers: _subWorkOrders?.supplier?.suppPersons, title: "Vendor Name",
onSelect: (engineer) { enabled: _subWorkOrders.supplier?.suppPersons?.isNotEmpty ?? false,
if (engineer != null) { staticData: _subWorkOrders.supplier.suppPersons,
this.engineer = engineer; onSelect: (suppPerson) {
if (suppPerson != null) {
engineer = SuppEngineerWorkOrders(
id: suppPerson?.supplierId,
supplierContactId: suppPerson?.id,
personName: suppPerson?.personName,
contact: suppPerson?.contact,
externalEngCode: suppPerson?.externalEngCode,
email: suppPerson?.email,
);
} }
}, },
), ),
@ -260,159 +272,6 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
), ),
8.height, 8.height,
MultiFilesPicker(label: context.translation.attachImage, files: _files), MultiFilesPicker(label: context.translation.attachImage, files: _files),
// 24.height,
// const SizedBox(height: 8),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// const ASubTitle("Equipment status"),
// if (_validate && _subWorkOrders?.equipmentStatus == null)
// ASubTitle(
// context.translation.requiredWord,
// color: Colors.red,
// ),
// const SizedBox(
// height: 4,
// ),
// ServiceRequestDefectTypesMenu(
// initialValue: _serviceReport.equipmentStatus,
// onSelect: (status) {
// _subWorkOrders.equipmentStatus = status;
// _serviceReport.equipmentStatus = status;
// setState(() {});
// },
// ),
// ],
// ),
// const SizedBox(height: 8),
// // Column(
// // crossAxisAlignment: CrossAxisAlignment.start,
// // children: [
// // const ASubTitle("Return to Service"),
// // // if (_validate && _subWorkOrders.visitDate == null)
// // // ASubTitle(
// // // context.translation.requiredWord,
// // // color: Colors.red,
// // // ),
// // const SizedBox(
// // height: 4,
// // ),
// // // Row(
// // // children: [
// // // Expanded(
// // // child: ADatePicker(
// // // date: DateTime.tryParse(_subWorkOrders.visitDate ?? ""),
// // // from: DateTime(1950),
// // // onDatePicker: (date) {
// // // _subWorkOrders.visitDate = date?.toIso8601String();
// // // setState(() {});
// // // },
// // // ),
// // // ),
// // // ],
// // // ),
// // ],
// // ),
// const SizedBox(height: 8),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// ASubTitle(context.translation.faultDescription),
// if (_validate && _subWorkOrders.faultDescription == null)
// ASubTitle(
// context.translation.requiredWord,
// color: Colors.red,
// ),
// const SizedBox(
// height: 4,
// ),
// ServiceReportFaultDescription(
// requestId: widget.workOrder?.callRequest?.id?.toString(),
// initialValue: _subWorkOrders?.faultDescription,
// onSelect: (status) {
// _subWorkOrders.faultDescription = status;
// if (mounted) setState(() {});
// },
// ),
// ],
// ),
// const SizedBox(height: 8),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// const ASubTitle("Solution"),
// const SizedBox(height: 4),
// ATextFormField(labelText: _subWorkOrders?.faultDescription?.workPerformed ?? "", textInputType: TextInputType.multiline, enable: false),
// ],
// ),
// InkWell(
// onTap: () async {
// await showModalBottomSheet(
// context: context,
// useSafeArea: true,
// isScrollControlled: true,
// backgroundColor: Colors.transparent,
// builder: (context) => WorkOrderDetailsBottomSheet(
// subWorkOrder: _subWorkOrders,
// assetId: widget.workOrder?.callRequest?.asset?.id,
// ),
// );
// //log(_subWorkOrders?.toJson()?.toString());
// },
// child: Card(
// child: ListTile(
// title: Row(
// children: [
// Text(
// "WO Details",
// style: Theme.of(context).textTheme.bodyMedium,
// ),
// const Text("*", style: TextStyle(color: Colors.red)),
// ],
// ),
// // trailing: const Icon(Icons.arrow_forward_ios, size: 14, color: AColors.primaryColor),
// ),
// ),
// ),
// const SizedBox(height: 8),
// InkWell(
// onTap: () async {
// await showModalBottomSheet(
// context: context,
// useSafeArea: true,
// isScrollControlled: true,
// backgroundColor: Colors.transparent,
// builder: (context) => SparePartsBottomSheet(
// subWorkOrder: _subWorkOrders,
// assetId: widget.workOrder?.callRequest?.asset?.id,
// ),
// );
// log(_subWorkOrders?.toJson()?.toString());
// },
// child: Card(
// child: ListTile(
// title: Row(
// children: [
// Text(
// "Spare Parts",
// style: Theme.of(context).textTheme.bodyMedium,
// ),
// const Text("*", style: TextStyle(color: Colors.red)),
// ],
// ),
// trailing: const Icon(Icons.arrow_forward_ios, size: 14, color: AColors.primaryColor),
// ),
// ),
// ),
// AMiniOneFilePicker(
// file: _file,
// onPick: (file) {
// _file = file;
// _subWorkOrders.attachmentsWorkOrder ??= [];
// _subWorkOrders.attachmentsWorkOrder.add(AttachmentsWorkOrder(name: "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}"));
// },
// ),
// const SizedBox(height: 50),
], ],
), ),
), ),

@ -1,9 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';

@ -10,7 +10,6 @@ import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/user/gas_refill/request_gas_refill.dart'; import 'package:test_sa/views/pages/user/gas_refill/request_gas_refill.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/loaders/no_item_found.dart'; import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';

@ -189,11 +189,12 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
children: [ children: [
context.translation.gasRefill.heading5(context), context.translation.gasRefill.heading5(context),
8.height, 8.height,
/// TBD /// TBD
'${context.translation.gasRequest}:'.bodyText(context), '${context.translation.gasRequest}:'.bodyText(context),
'${context.translation.cylinderSize}: ${widget.gasRefillModel.gazRefillDetails[0].cylinderSize.value}'.bodyText(context), '${context.translation.cylinderSize}: ${widget.gasRefillModel.gazRefillDetails[0].cylinderSize.value}'.bodyText(context),
'${context.translation.quantity}: ${widget.gasRefillModel.gazRefillDetails[0].requestedQty}'.bodyText(context), '${context.translation.quantity}: ${widget.gasRefillModel.gazRefillDetails[0].requestedQty}'.bodyText(context),
'${context.translation.site}: ${widget.gasRefillModel.site.name}'.bodyText(context), '${context.translation.site}: ${widget.gasRefillModel.site.name}'.bodyText(context),
], ],
).paddingAll(16), ).paddingAll(16),
12.height, 12.height,

@ -34,13 +34,14 @@ class GasRefillItem extends StatelessWidget {
// 8.width, // 8.width,
StatusLabel(label: item.status.name, textColor: AColors.getRequestStatusTextColor(item.status.value), backgroundColor: AColors.getRequestStatusColor(item.status.value)), StatusLabel(label: item.status.name, textColor: AColors.getRequestStatusTextColor(item.status.value), backgroundColor: AColors.getRequestStatusColor(item.status.value)),
1.width.expanded, 1.width.expanded,
Text(item.startDate != null ? item.startDate.toServiceRequestCardFormat : "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark?AppColor.neutral10 :const Color(0xFF3B3D4A))), Text(item.startDate != null ? item.startDate.toServiceRequestCardFormat : "",
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : const Color(0xFF3B3D4A))),
], ],
), ),
8.height, 8.height,
context.translation.gasRefillRequest.heading5(context), context.translation.gasRefillRequest.heading5(context),
'${context.translation.gasType}: ${item.gazRefillDetails[0].gasType.name}'.bodyText(context), '${context.translation.gasType}: ${item.gazRefillDetails[0].gasType.name}'.bodyText(context),
'${context.translation.site}: ${item.site.name}'.bodyText(context), '${context.translation.site}: ${item.site.name}'.bodyText(context),
8.height, 8.height,
Row( Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,

@ -17,7 +17,6 @@ class GasRefillUpdateDetailsItem extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -28,7 +27,7 @@ class GasRefillUpdateDetailsItem extends StatelessWidget {
), ),
RequestInfoRow( RequestInfoRow(
title: "Requested Quantity", title: "Requested Quantity",
info: details.deliverdQty?.toStringAsFixed(0)??"", info: details.deliverdQty?.toStringAsFixed(0) ?? "",
), ),
enableEdit enableEdit
? Column( ? Column(

@ -77,13 +77,7 @@ class _AutoCompleteDeviceNumberFieldState extends State<AutoCompleteDeviceNumber
textInputAction: TextInputAction.search, textInputAction: TextInputAction.search,
), ),
suggestionsCallback: (vale) async { suggestionsCallback: (vale) async {
return await _devicesProvider.getDevicesList( return await _devicesProvider.getDevicesList(host: _settingProvider.host, user: _userProvider.user, hospitalId: widget.hospitalId, number: vale, addPagination: false);
host: _settingProvider.host,
user: _userProvider.user,
hospitalId: widget.hospitalId,
number: vale,
addPagination: false
);
}, },
itemBuilder: (context, device) { itemBuilder: (context, device) {
return device.assetNumber.bodyText(context).paddingOnly(bottom: 16, start: 16); return device.assetNumber.bodyText(context).paddingOnly(bottom: 16, start: 16);

@ -1,18 +1,10 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/enums/translation_keys.dart';
import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/models/user.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/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';

Loading…
Cancel
Save