improvements

design_3.0_demo_module
WaseemAbbasi22 1 week ago
parent e0ed594072
commit 5d856fc46b

@ -459,4 +459,6 @@ class URLs {
static get updateDemoRequestByAssessor => "$_baseUrl/DemoRequest/UpdateDemoRequestByAssessor";
static get updateDemoPeriodByRequester => "$_baseUrl/DemoRequest/UpdateDemoPeriodByRequester";
//4104 attachment type lookup
}

@ -17,6 +17,8 @@ import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/generic_attachment_model.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/new_models/building.dart';
import 'package:test_sa/models/new_models/floor.dart';
import 'package:test_sa/models/new_models/site.dart';
import 'package:test_sa/models/new_models/task_request/task_type_model.dart';
import 'package:test_sa/models/new_models/work_order_detail_model.dart';
@ -43,6 +45,7 @@ import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import '../../../../../../new_views/common_widgets/default_app_bar.dart';
import '../../models/new_models/department.dart';
import 'demo_detail_view_page.dart';
import 'models/demo_form_model.dart';
@ -169,23 +172,100 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
},
),
8.height,
SingleItemDropDownMenu<MedicalDepartmentModel, MedicalDepartmentProvider>(
SingleItemDropDownMenu<Building, NullableLoadingProvider>(
context: context,
title: context.translation.department,
title: context.translation.building,
initialValue: _demoFormModel.building,
showShadow: false,
showAsBottomSheet: true,
validator: (value) {
if (value == null) return "Please select a department";
if (value == null) return "Please select a building";
return null;
},
backgroundColor: AppColor.fieldBgColor(context),
enabled: _demoFormModel.site?.buildings?.isNotEmpty ?? false,
staticData: _demoFormModel.site?.buildings ?? [],
onSelect: (value) {
_demoFormModel.building = value;
_demoFormModel.floor = null;
_demoFormModel.department = null;
setState(() {});
},
),
8.height,
SingleItemDropDownMenu<Floor, NullableLoadingProvider>(
context: context,
title: context.translation.floor,
showShadow: false,
showAsBottomSheet: true,
initialValue: _demoFormModel.floor,
backgroundColor: AppColor.fieldBgColor(context),
enabled: _demoFormModel.building?.floors?.isNotEmpty ?? false,
staticData: _demoFormModel.building?.floors ?? [],
validator: (value) {
if (value == null) return "Please select a floor";
return null;
},
onSelect: (value) {
_demoFormModel.floor = value;
_demoFormModel.department = null;
setState(() {});
},
),
8.height,
SingleItemDropDownMenu<Department, NullableLoadingProvider>(
context: context,
title: context.translation.department,
showShadow: false,
showAsBottomSheet: true,
initialValue: _demoFormModel.department,
requestById: context.userProvider.user?.clientId,
backgroundColor: AppColor.fieldBgColor(context),
enabled: _demoFormModel.floor?.departments?.isNotEmpty ?? false,
validator: (value) {
if (value == null) return "Please select a department";
return null;
},
staticData: _demoFormModel.floor?.departments ?? [],
onSelect: (value) {
_demoFormModel.department = value;
_demoFormModel.room = null;
setState(() {});
},
),
// SingleItemDropDownMenu<Site, SiteProvider>(
// context: context,
// title: context.translation.site,
// initialValue: _demoFormModel.site,
// showShadow: false,
// validator: (value) {
// if (value == null) return "Please select a site";
// return null;
// },
// backgroundColor: AppColor.fieldBgColor(context),
// showAsBottomSheet: true,
// onSelect: (value) {
// _demoFormModel.site = value;
// setState(() {});
// },
// ),
// 8.height,
// SingleItemDropDownMenu<MedicalDepartmentModel, MedicalDepartmentProvider>(
// context: context,
// title: context.translation.department,
// showShadow: false,
// validator: (value) {
// if (value == null) return "Please select a department";
// return null;
// },
// showAsBottomSheet: true,
// initialValue: _demoFormModel.department,
// requestById: context.userProvider.user?.clientId,
// backgroundColor: AppColor.fieldBgColor(context),
// onSelect: (value) {
// _demoFormModel.department = value;
// setState(() {});
// },
// ),
];
}
@ -410,10 +490,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
controller: vendorPhoneController,
enable: false,
labelText: "Contact Number",
validator: (value) {
if ((value ?? "").isEmpty) return "Mandatory";
return null;
},
style: Theme.of(context).textTheme.titleMedium,
backgroundColor: AppColor.fieldBgColor(context),
labelStyle: AppTextStyles.textFieldLabelStyle.copyWith(color: AppColor.textColor(context)),
@ -429,13 +505,6 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
labelText: "Email",
controller: vendorEmailController,
enable: false,
validator: (value) {
if ((value ?? "").isEmpty) {
return "Mandatory";
} else {
return Validator.isEmail(value!) ? null : context.translation.emailValidateMessage;
}
},
style: Theme.of(context).textTheme.titleMedium,
backgroundColor: AppColor.fieldBgColor(context),
labelStyle: AppTextStyles.textFieldLabelStyle.copyWith(color: AppColor.textColor(context)),
@ -456,7 +525,8 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
_demoFormModel.demoAttachment = [];
for (var item in attachments) {
String fileName = CMRequestUtils.isLocalUrl(item.name ?? '') ? ("${item.name ?? ''.split("/").last}|${base64Encode(File(item.name ?? '').readAsBytesSync())}") : item.name ?? '';
_demoFormModel.demoAttachment?.add(DemoAttachments(id: 0, attachmentName: fileName, demoRequestId: 0));
//Todo need to change from static attachmentTypeId...
_demoFormModel.demoAttachment?.add(DemoAttachments(id: 0, attachmentName: fileName, demoRequestId: 0,attachmentTypeId: 5));
}
Utils.showLoading(context);
DemoProvider demoProvider = Provider.of<DemoProvider>(context, listen: false);

@ -1,10 +1,15 @@
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/new_models/building.dart';
import 'package:test_sa/models/new_models/floor.dart';
import 'package:test_sa/models/new_models/room_model.dart';
import 'package:test_sa/models/new_models/site.dart';
import 'package:test_sa/models/service_request/supp_engineer_work_orders.dart';
import 'package:test_sa/models/service_request/supplier_details.dart';
import 'package:test_sa/modules/demo_module/models/demo_attachment_model.dart';
import 'package:test_sa/modules/loan_module/models/medical_department_model.dart';
import '../../../models/new_models/department.dart';
class DemoFormModel {
String? docName;
int? id;
@ -20,9 +25,12 @@ class DemoFormModel {
String? vendorNumber;
String? vendorEmail;
Site? site;
Building? building; // Now nullable
Floor? floor; // Now nullable
Department? department; // Now nullable
Rooms? room;
SuppEngineerWorkOrders? supEngineer;
SupplierDetails? vendor;
MedicalDepartmentModel? department;
List<DemoAttachments>? demoAttachment;
DemoFormModel({
@ -51,8 +59,8 @@ class DemoFormModel {
"id": 0,
'siteId': site?.id,
'departmentId': department?.id,
"buildingId": 0,
"floorId": 0,
"buildingId": building?.id,
"floorId": floor?.id,
"assetName": assetName,
"isSubmit": true,
"doctorName": docName,

@ -12,7 +12,8 @@ class DemoProvider extends ChangeNotifier {
try {
Response response = await ApiManager.instance.post(URLs.addDemoRequest, body: body, showToast: false);
if (response.statusCode >= 200 && response.statusCode < 300) {
String message = (jsonDecode(response.body)["data"] ?? "") + " " + (jsonDecode(response.body)["message"] ?? "");
// String message = (jsonDecode(response.body)["data"] ?? "") + " " + (jsonDecode(response.body)["message"] ?? "");
String message = (jsonDecode(response.body)["message"] ?? "");
Fluttertoast.showToast(msg: message ?? "", toastLength: Toast.LENGTH_LONG);
return true;
}

@ -113,6 +113,7 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
'Asset Delivery': 13,
};
}
///TODO need add accessor filter as well.
final statuses = {
"All WO": 0,

@ -79,6 +79,8 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
if (context.userProvider.isAssessor) {
requestsList = [
Request(null, context.translation.allWorkOrder),
Request(15, 'Demo Request'),
// Request(9, 'TRAF'),
];
}

Loading…
Cancel
Save