From c4160ff98b50ddb11fbf749acd55d5989b47667c Mon Sep 17 00:00:00 2001 From: waseemabbasi22 Date: Wed, 19 Nov 2025 15:22:17 +0300 Subject: [PATCH] improvements --- lib/controllers/api_routes/urls.dart | 2 ++ lib/main.dart | 2 ++ .../pages/create_loan_request_view.dart | 24 ++++++++------ .../provider/loan_period_provider.dart | 32 +++++++++++++++++++ 4 files changed, 50 insertions(+), 10 deletions(-) create mode 100644 lib/modules/loan_module/provider/loan_period_provider.dart diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index 09ccf264..5dd108cc 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -171,6 +171,8 @@ class URLs { static get taskJobImpactStatus => "$_baseUrl/Lookups/GetLookup?lookupEnum=1264"; + static get getLoanPeriod => "$_baseUrl/Lookups/GetLookup?lookupEnum=3051"; + //service request..... static get getServiceRequests => "$_baseUrl/CallRequest/GetCallRequests"; // get static get getServiceRequestById => "$_baseUrl/CallRequest/GetCallRequestById"; // get diff --git a/lib/main.dart b/lib/main.dart index e9b69c18..3483f2e0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -29,6 +29,7 @@ import 'package:test_sa/modules/asset_inventory_module/provider/asset_inventory_ import 'package:test_sa/modules/cm_module/service_request_detail_provider.dart'; import 'package:test_sa/modules/cm_module/views/nurse/create_new_request_view.dart'; 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/tm_module/tasks_wo/create_task_view.dart'; import 'package:test_sa/new_views/app_style/app_themes.dart'; @@ -286,6 +287,7 @@ class MyApp extends StatelessWidget { ChangeNotifierProvider(create: (_) => PpmChecklistStatusProvider()), ChangeNotifierProvider(create: (_) => AssetInventoryProvider()), ChangeNotifierProvider(create: (_) => LoanProvider()), + ChangeNotifierProvider(create: (_) => LoanPeriodProvider()), ], child: GestureDetector( onTap: () { diff --git a/lib/modules/loan_module/pages/create_loan_request_view.dart b/lib/modules/loan_module/pages/create_loan_request_view.dart index 4244b326..f4a7a31d 100644 --- a/lib/modules/loan_module/pages/create_loan_request_view.dart +++ b/lib/modules/loan_module/pages/create_loan_request_view.dart @@ -25,6 +25,7 @@ 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/provider/loan_period_provider.dart'; import 'package:test_sa/modules/loan_module/provider/loan_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'; @@ -58,7 +59,7 @@ class _CreateLoanRequestViewState extends State with Tick Asset? device; TaskType? selectedType; final LoanFormModel _loanFormModel = LoanFormModel(); - bool isEng = true; + bool isEng = true; TextEditingController commentController = TextEditingController(); @override @@ -81,10 +82,10 @@ class _CreateLoanRequestViewState extends State with Tick child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - if(isEng)...[ - scanAssetButton(), - 16.height, - ], + // if(isEng)...[ + // scanAssetButton(), + // 16.height, + // ], contactInfoSection(), 16.height, itemDetailsSection(), @@ -298,16 +299,19 @@ class _CreateLoanRequestViewState extends State with Tick style: Theme.of(context).textTheme.titleMedium, ), 8.height, - SingleItemDropDownMenu( + SingleItemDropDownMenu( context: context, + height: 56.toScreenHeight, title: 'Loan Period'.addTranslation, showShadow: false, + backgroundColor: AppColor.fieldBgColor(context), showAsBottomSheet: true, initialValue: _loanFormModel.loanProvided, - backgroundColor: AppColor.fieldBgColor(context), - onSelect: (value) { - _loanFormModel.loanProvided = value; - setState(() {}); + onSelect: (status) { + if (status != null) { + _loanFormModel.loanProvided = status; + setState(() {}); + } }, ), 8.height, diff --git a/lib/modules/loan_module/provider/loan_period_provider.dart b/lib/modules/loan_module/provider/loan_period_provider.dart new file mode 100644 index 00000000..3f9704e7 --- /dev/null +++ b/lib/modules/loan_module/provider/loan_period_provider.dart @@ -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/models/lookup.dart'; +import 'package:test_sa/providers/loading_list_notifier.dart'; + +class LoanPeriodProvider extends LoadingListNotifier { + @override + Future getData() async { + if (loading == true) return -2; + loading = true; + notifyListeners(); + try { + Response response = await ApiManager.instance.get(URLs.getLoanPeriod); + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + List categoriesListJson = json.decode(response.body)["data"]; + items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList(); + } + loading = false; + notifyListeners(); + return response.statusCode; + } catch (error) { + loading = false; + stateCode = -1; + notifyListeners(); + return -1; + } + } +} \ No newline at end of file