improvements

design_3.0_loan_module
waseemabbasi22 2 weeks ago
parent c4160ff98b
commit 0ffc0f650f

@ -328,4 +328,8 @@ class URLs {
static get convertDetailToComplete => '$_baseUrl/AssetInventory/ConvertDetailToComplete';
static get getClassification => '$_baseUrl/AssetInventory/Classification';
//Loan Module...
//getDepartmentBasedOnSite
static get getMedDepartmentBasedOnSite => '$_baseUrl/TRAFDataSource/GetDepartmentBasedOnSite';
}

@ -31,6 +31,7 @@ import 'package:test_sa/modules/cm_module/views/nurse/create_new_request_view.da
import 'package:test_sa/modules/loan_module/pages/create_loan_request_view.dart';
import 'package:test_sa/modules/loan_module/provider/loan_period_provider.dart';
import 'package:test_sa/modules/loan_module/provider/loan_provider.dart';
import 'package:test_sa/modules/loan_module/provider/medical_department_provider.dart';
import 'package:test_sa/modules/tm_module/tasks_wo/create_task_view.dart';
import 'package:test_sa/new_views/app_style/app_themes.dart';
import 'package:test_sa/new_views/pages/help_center_page.dart';
@ -288,6 +289,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => AssetInventoryProvider()),
ChangeNotifierProvider(create: (_) => LoanProvider()),
ChangeNotifierProvider(create: (_) => LoanPeriodProvider()),
ChangeNotifierProvider(create: (_) => MedicalDepartmentProvider()),
],
child: GestureDetector(
onTap: () {

@ -3,6 +3,7 @@ import 'package:test_sa/models/new_models/building.dart';
import 'package:test_sa/models/new_models/department.dart';
import 'package:test_sa/models/new_models/floor.dart';
import 'package:test_sa/models/new_models/site.dart';
import 'package:test_sa/modules/loan_module/models/medical_department_model.dart';
class LoanFormModel {
String? docName;
@ -18,9 +19,7 @@ class LoanFormModel {
String? vendorNumber;
String? vendorEmail;
Site? site;
Building? building;
Lookup? department;
Floor? floor;
MedicalDepartmentModel? department;
List<LoanAttachments>? loanAttachment;
LoanFormModel({
@ -38,8 +37,6 @@ class LoanFormModel {
this.vendorEmail,
this.loanAttachment,
this.site,
this.building,
this.floor,
this.department,
});
@ -58,7 +55,6 @@ class LoanFormModel {
"vendorNumber": vendorNumber,
"vendorEmail": vendorEmail,
'site' : site?.toJson(),
'building' : building?.toJson(),
"loanAttachment": loanAttachment != null ? loanAttachment!.map((v) => v.toJson()).toList() : [],
};
}

@ -0,0 +1,35 @@
import 'package:test_sa/models/base.dart';
class MedicalDepartmentModel extends Base {
MedicalDepartmentModel({
this.departmentName, this.departmentCode, this.ntCode, this.costCenterNumber, this.costCenterName, this.name, this.id, this.createdBy, this.createdDate, this.modifiedBy, this.modifiedDate
}) : super(identifier: id?.toString() ?? '', name: departmentName); // Handle potential null id
MedicalDepartmentModel.fromJson(Map<String, dynamic> json) {
departmentName = json['departmentName'] ?? json['name'];
departmentCode = json['departmentCode'];
ntCode = json['ntCode'];
costCenterNumber = json['costCenterNumber'];
costCenterName = json['costCenterName'];
name = json['name'];
id = json['id'];
createdBy = json['createdBy'];
createdDate = json['createdDate'];
modifiedBy = json['modifiedBy'];
modifiedDate = json['modifiedDate'];
}
num? id; // Now nullable
String? departmentName; // Now nullable
String? departmentCode; // Now nullable
String? ntCode;
String? costCenterNumber;
String? costCenterName;
String? name;
String? createdBy;
String? createdDate;
String? modifiedBy;
String? modifiedDate;
}

@ -25,8 +25,10 @@ import 'package:test_sa/models/service_request/pending_service_request_model.dar
import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/loan_module/models/loan_form_model.dart';
import 'package:test_sa/modules/loan_module/models/medical_department_model.dart';
import 'package:test_sa/modules/loan_module/provider/loan_period_provider.dart';
import 'package:test_sa/modules/loan_module/provider/loan_provider.dart';
import 'package:test_sa/modules/loan_module/provider/medical_department_provider.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart';
@ -191,46 +193,26 @@ class _CreateLoanRequestViewState extends State<CreateLoanRequestView> with Tick
showAsBottomSheet: true,
onSelect: (value) {
_loanFormModel.site = value;
_loanFormModel.building = null;
setState(() {});
},
),
// 8.height,
// SingleItemDropDownMenu<Building, NullableLoadingProvider>(
8.height,
//TODO need to check where to get all departments..
// MultipleItemDropDownMenu<TrafDepartment, DepartmentLookupProvider>(
// context: context,
// title: context.translation.building,
// initialValue: _loanFormModel.building,
// showShadow: false,
// showAsBottomSheet: true,
// backgroundColor: AppColor.fieldBgColor(context),
// enabled: _loanFormModel.site?.buildings?.isNotEmpty ?? false,
// staticData: _loanFormModel.site?.buildings ?? [],
// onSelect: (value) {
// _loanFormModel.building = value;
// _loanFormModel.floor = null;
// _loanFormModel.department = null;
// setState(() {});
// },
// ),
// 8.height,
// SingleItemDropDownMenu<Floor, NullableLoadingProvider>(
// context: context,
// title: context.translation.floor,
// backgroundColor: AppColor.neutral100,
// showShadow: false,
// showAsBottomSheet: true,
// initialValue: _loanFormModel.floor,
// backgroundColor: AppColor.fieldBgColor(context),
// enabled: _loanFormModel.building?.floors?.isNotEmpty ?? false,
// staticData: _loanFormModel.building?.floors ?? [],
// showCancel: true,
// requestById: context.userProvider.user?.clientId,
// title: "Please specify departments and relations",
// initialValue: departments,
// onSelect: (value) {
// _loanFormModel.floor = value;
// _loanFormModel.department = null;
// setState(() {});
// departments = value ?? [];
// trafRequest?.trafDepartments = departments.map((element) => Departments(id: 0, trafId: 0, departmentId: element.id!.toInt())).toList();
// },
// ),
8.height,
//TODO need to check where to get all departments..
SingleItemDropDownMenu<Lookup, DepartmentProvider>(
SingleItemDropDownMenu<MedicalDepartmentModel, MedicalDepartmentProvider>(
context: context,
title: context.translation.department,
showShadow: false,

@ -0,0 +1,32 @@
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/modules/loan_module/models/medical_department_model.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
class MedicalDepartmentProvider extends LoadingListNotifier<MedicalDepartmentModel> {
@override
Future getData({int? id}) async {
if (loading == true) return -2;
loading = true;
notifyListeners();
try {
Response response = await ApiManager.instance.get(URLs.getMedDepartmentBasedOnSite + "?customerId=$id");
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
List categoriesListJson = json.decode(response.body)["data"];
items = categoriesListJson.map((item) => MedicalDepartmentModel.fromJson(item)).toList();
}
loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
loading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
}
Loading…
Cancel
Save