asset by oracle code api added, departments lookup added.

design_3.0_internal_audit_module
Sikander Saleem 2 weeks ago
parent 56328b81b4
commit 76acdddabc

@ -225,9 +225,13 @@ class URLs {
static get getServiceReportRejectionReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=1303"; static get getServiceReportRejectionReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=1303";
static get getServiceReportReasonsNew => "$_baseUrl/Lookups/GetLookupReasonNew?lookupEnum=505"; static get getServiceReportReasonsNew => "$_baseUrl/Lookups/GetLookupReasonNew?lookupEnum=505";
static get getTrafRequestTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=416"; static get getTrafRequestTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=416";
static get getYesNoRequestTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=4"; static get getYesNoRequestTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=4";
static get getClassificationTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=450"; static get getClassificationTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=450";
static get getRecommendationTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=451"; static get getRecommendationTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=451";
static get getWoFrames => "$_baseUrl/Lookups/GetLookup?lookupEnum=1254"; static get getWoFrames => "$_baseUrl/Lookups/GetLookup?lookupEnum=1254";
@ -253,6 +257,7 @@ class URLs {
//Traf //Traf
static get getTRAFById => "$_baseUrl/TRAF/GetTRAFById"; // get static get getTRAFById => "$_baseUrl/TRAF/GetTRAFById"; // get
static get getAssetNDAutoCompleteByDynamicCodes => "$_baseUrl/AssetNameDefinition/GetAssetNDAutoCompleteByDynamicCodes"; // get
//gas refill //gas refill
static get getGasTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=606"; // get static get getGasTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=606"; // get
@ -302,4 +307,5 @@ class URLs {
static get addComment => "$_baseUrl/CallRequest/AddHistoryComment"; // add static get addComment => "$_baseUrl/CallRequest/AddHistoryComment"; // add
static get getSiteContactInfo => "$_baseUrl/AssetGroupSiteContactInfo"; // add static get getSiteContactInfo => "$_baseUrl/AssetGroupSiteContactInfo"; // add
static get getDepartmentBasedOnSite => "$_baseUrl/TRAFDataSource/GetDepartmentBasedOnSite"; // add
} }

@ -5,6 +5,7 @@ import 'package:flutter/material.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/models/new_models/asset_nd_auto_complete_by_dynamic_codes_model.dart';
import 'package:test_sa/models/service_request/spare_parts.dart'; import 'package:test_sa/models/service_request/spare_parts.dart';
class OracleCodeProvider extends ChangeNotifier { class OracleCodeProvider extends ChangeNotifier {
@ -84,15 +85,15 @@ class OracleCodeProvider extends ChangeNotifier {
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager /// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart /// lib\controllers\http_status_manger\http_status_manger.dart
Future<List<SparePart>> getAssetByOracleCode(String oracleCode) async { Future<List<AssetNDAutoCompleteByDynamicCodesModel>> getAssetByOracleCode(String oracleCode) async {
late Response response; late Response response;
try { try {
response = await ApiManager.instance.post(URLs.getPartNumber, body: {"oracleCode": oracleCode}); response = await ApiManager.instance.post(URLs.getAssetNDAutoCompleteByDynamicCodes, body: {"codeValue": oracleCode});
List<SparePart> page = []; List<AssetNDAutoCompleteByDynamicCodesModel> page = [];
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // client's request was successfully received
List categoriesListJson = json.decode(response.body)["data"]; List categoriesListJson = json.decode(response.body)["data"];
page = categoriesListJson.map((part) => SparePart.fromJson(part, false)).toList(); page = categoriesListJson.map((part) => AssetNDAutoCompleteByDynamicCodesModel.fromJson(part)).toList();
} }
return page; return page;
} catch (error) { } catch (error) {

@ -99,6 +99,7 @@ import 'controllers/providers/settings/setting_provider.dart';
import 'dashboard_latest/dashboard_provider.dart'; import 'dashboard_latest/dashboard_provider.dart';
import 'new_views/pages/gas_refill_request_form.dart'; import 'new_views/pages/gas_refill_request_form.dart';
import 'providers/lookups/classification_lookup_provider.dart'; import 'providers/lookups/classification_lookup_provider.dart';
import 'providers/lookups/department_lookup_provider.dart';
import 'providers/lookups/request_type_lookup_provider.dart'; import 'providers/lookups/request_type_lookup_provider.dart';
import 'providers/lookups/yes_no_lookup_provider.dart'; import 'providers/lookups/yes_no_lookup_provider.dart';
import 'providers/service_request_providers/loan_availability_provider.dart'; import 'providers/service_request_providers/loan_availability_provider.dart';
@ -209,6 +210,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => AssetTransferStatusProvider()), ChangeNotifierProvider(create: (_) => AssetTransferStatusProvider()),
ChangeNotifierProvider(create: (_) => TrafRequestProvider()), ChangeNotifierProvider(create: (_) => TrafRequestProvider()),
ChangeNotifierProvider(create: (_) => DepartmentLookupProvider()),
///todo deleted ///todo deleted
//ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()), //ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()),

@ -0,0 +1,27 @@
class AssetNDAutoCompleteByDynamicCodesModel {
int? id;
String? assetName;
int? codeTypeId;
String? codeValue;
String? displayName;
AssetNDAutoCompleteByDynamicCodesModel({this.id, this.assetName, this.codeTypeId, this.codeValue, this.displayName});
AssetNDAutoCompleteByDynamicCodesModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
assetName = json['assetName'];
codeTypeId = json['codeTypeId'];
codeValue = json['codeValue'];
displayName = json['displayName'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['id'] = this.id;
data['assetName'] = this.assetName;
data['codeTypeId'] = this.codeTypeId;
data['codeValue'] = this.codeValue;
data['displayName'] = this.displayName;
return data;
}
}

@ -0,0 +1,101 @@
import 'package:test_sa/models/new_models/room_model.dart';
import '../base.dart';
class TrafDepartment extends Base {
TrafDepartment({
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
TrafDepartment.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;
// TrafDepartment copyWith({
// num? id, // Parameters are now nullable
// String? departmentName,
// String? departmentCode,
// String? departmentId,
// String? ntCode,
// List<Rooms>? rooms,
// }) =>
// TrafDepartment(
// id: id ?? this.id,
// departmentName: departmentName ?? this.departmentName,
// departmentCode: departmentCode ?? this.departmentCode,
// departmentId: departmentId ?? this.departmentId,
// ntCode: ntCode ?? this.ntCode,
// rooms: rooms ?? this.rooms,
// );
}
// class TrafDepartment extends Base {
// String? departmentName;
// String? departmentCode;
// Null? ntCode;
// Null? costCenterNumber;
// Null? costCenterName;
// String? name;
// int? id;
// String? createdBy;
// String? createdDate;
// Null? modifiedBy;
// Null? modifiedDate;
//
// TrafDepartment(
// {this.departmentName, this.departmentCode, this.ntCode, this.costCenterNumber, this.costCenterName, this.name, this.id, this.createdBy, this.createdDate, this.modifiedBy, this.modifiedDate});
//
// TrafDepartment.fromJson(Map<String, dynamic> json) {
// departmentName = json['departmentName'];
// 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'];
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['departmentName'] = this.departmentName;
// data['departmentCode'] = this.departmentCode;
// data['ntCode'] = this.ntCode;
// data['costCenterNumber'] = this.costCenterNumber;
// data['costCenterName'] = this.costCenterName;
// data['name'] = this.name;
// data['id'] = this.id;
// data['createdBy'] = this.createdBy;
// data['createdDate'] = this.createdDate;
// data['modifiedBy'] = this.modifiedBy;
// data['modifiedDate'] = this.modifiedDate;
// return data;
// }
// }

@ -7,6 +7,7 @@ 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/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/new_models/asset_nd_auto_complete_by_dynamic_codes_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
@ -18,7 +19,7 @@ class AssetAutoCompleteField extends StatefulWidget {
final String initialValue; final String initialValue;
final num? assetId; final num? assetId;
final bool clearAfterPick, byName; final bool clearAfterPick, byName;
final Function(SparePartsWorkOrders) onPick; final Function(AssetNDAutoCompleteByDynamicCodesModel) onPick;
const AssetAutoCompleteField({Key? key, required this.byName, required this.initialValue, this.assetId, required this.onPick, this.clearAfterPick = true}) : super(key: key); const AssetAutoCompleteField({Key? key, required this.byName, required this.initialValue, this.assetId, required this.onPick, this.clearAfterPick = true}) : super(key: key);
@ -63,7 +64,7 @@ class _AssetAutoCompleteFieldState extends State<AssetAutoCompleteField> {
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)), borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
// boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)], // boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
), ),
child: Autocomplete<SparePartsWorkOrders>( child: Autocomplete<AssetNDAutoCompleteByDynamicCodesModel>(
optionsBuilder: (TextEditingValue textEditingValue) async { optionsBuilder: (TextEditingValue textEditingValue) async {
if (textEditingValue.text.isEmpty) { if (textEditingValue.text.isEmpty) {
if (loading) { if (loading) {
@ -71,20 +72,20 @@ class _AssetAutoCompleteFieldState extends State<AssetAutoCompleteField> {
loading = false; loading = false;
}); });
} }
return const Iterable<SparePartsWorkOrders>.empty(); return const Iterable<AssetNDAutoCompleteByDynamicCodesModel>.empty();
} }
if (!loading) { if (!loading) {
setState(() { setState(() {
loading = true; loading = true;
}); });
} }
List<SparePartsWorkOrders> workOrders = (await _oracleCodeProvider.getAssetByOracleCode(textEditingValue.text)).map((e) => SparePartsWorkOrders(sparePart: e)).toList(); List<AssetNDAutoCompleteByDynamicCodesModel> workOrders = (await _oracleCodeProvider.getAssetByOracleCode(textEditingValue.text));
setState(() { setState(() {
loading = false; loading = false;
}); });
return workOrders; return workOrders;
}, },
displayStringForOption: (SparePartsWorkOrders option) => widget.byName ? option.sparePart?.partName ?? "" : option.sparePart?.partNo ?? "", displayStringForOption: (AssetNDAutoCompleteByDynamicCodesModel option) => widget.byName ? option.displayName ?? "" : option.codeValue ?? "",
fieldViewBuilder: (BuildContext context, TextEditingController fieldTextEditingController, FocusNode fieldFocusNode, VoidCallback onFieldSubmitted) { fieldViewBuilder: (BuildContext context, TextEditingController fieldTextEditingController, FocusNode fieldFocusNode, VoidCallback onFieldSubmitted) {
return TextField( return TextField(
controller: _controller, controller: _controller,
@ -117,11 +118,11 @@ class _AssetAutoCompleteFieldState extends State<AssetAutoCompleteField> {
}, },
); );
}, },
onSelected: (SparePartsWorkOrders selection) { onSelected: (AssetNDAutoCompleteByDynamicCodesModel selection) {
if (widget.clearAfterPick) { if (widget.clearAfterPick) {
_controller.clear(); _controller.clear();
} else { } else {
_controller.text = widget.byName ? (selection.sparePart?.partName ?? "") : (selection.sparePart?.partNo ?? ""); _controller.text = widget.byName ? (selection.displayName ?? "") : (selection.codeValue ?? "");
} }
widget.onPick(selection); widget.onPick(selection);
}, },

@ -7,6 +7,7 @@ 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/device/asset.dart'; import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/new_models/traf_department.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/traf_module/asset_auto_complete_field.dart'; import 'package:test_sa/modules/traf_module/asset_auto_complete_field.dart';
import 'package:test_sa/modules/traf_module/traf_request_detail_page.dart'; import 'package:test_sa/modules/traf_module/traf_request_detail_page.dart';
@ -18,6 +19,7 @@ import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/new_views/common_widgets/multiple_item_drop_down_menu.dart'; import 'package:test_sa/new_views/common_widgets/multiple_item_drop_down_menu.dart';
import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart';
import 'package:test_sa/providers/loading_list_notifier.dart'; import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/lookups/department_lookup_provider.dart';
import 'package:test_sa/providers/lookups/request_type_lookup_provider.dart'; import 'package:test_sa/providers/lookups/request_type_lookup_provider.dart';
import 'package:test_sa/providers/lookups/yes_no_lookup_provider.dart'; import 'package:test_sa/providers/lookups/yes_no_lookup_provider.dart';
import 'package:test_sa/views/widgets/equipment/asset_picker.dart'; import 'package:test_sa/views/widgets/equipment/asset_picker.dart';
@ -50,6 +52,7 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
TrafRequestDataModel? trafRequest; TrafRequestDataModel? trafRequest;
List<Lookup> abc = []; List<Lookup> abc = [];
List<TrafDepartment> departments = [];
@override @override
void initState() { void initState() {
@ -106,9 +109,8 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
if (requestType?.value == 1) ...[ if (requestType?.value == 1) ...[
12.height, 12.height,
AssetAutoCompleteField( AssetAutoCompleteField(
// assetId: widget.assetId,
clearAfterPick: false, clearAfterPick: false,
byName: false, byName: true,
initialValue: "", initialValue: "",
onPick: (part) { onPick: (part) {
// model.partCatalogItem = PartCatalogItem(id: part.sparePart?.id, partNumber: part.sparePart?.partNo, partName: part.sparePart?.partName, oracleCode: part.sparePart?.oracleCode); // model.partCatalogItem = PartCatalogItem(id: part.sparePart?.id, partNumber: part.sparePart?.partNo, partName: part.sparePart?.partName, oracleCode: part.sparePart?.oracleCode);
@ -218,7 +220,6 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
trafRequest?.censusQ4 = int.tryParse(value); trafRequest?.censusQ4 = int.tryParse(value);
}, },
), ),
12.height, 12.height,
SingleItemDropDownMenu<Lookup, YesNoLookupProvider>( SingleItemDropDownMenu<Lookup, YesNoLookupProvider>(
context: context, context: context,
@ -245,21 +246,26 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
onSelect: (value) { onSelect: (value) {
isUsedSolelyOrShared = value; isUsedSolelyOrShared = value;
trafRequest?.usingSolelyOrSharedId = value?.value; trafRequest?.usingSolelyOrSharedId = value?.value;
if (isUsedSolelyOrShared?.value != 1) {
departments = [];
Provider.of<DepartmentLookupProvider>(context, listen: false).reset();
}
setState(() {}); setState(() {});
}, },
), ),
if (isUsedSolelyOrShared?.value == 1) ...[ if (isUsedSolelyOrShared?.value == 1) ...[
12.height, 12.height,
MultipleItemDropDownMenu<Lookup, RequestTypeLookupProvider>( MultipleItemDropDownMenu<TrafDepartment, DepartmentLookupProvider>(
context: context, context: context,
showAsBottomSheet: true, showAsBottomSheet: true,
backgroundColor: AppColor.neutral100, backgroundColor: AppColor.neutral100,
showShadow: false, showShadow: false,
showCancel: true, showCancel: true,
requestById: context.userProvider.user?.clientId,
title: "Please specify departments and relations", title: "Please specify departments and relations",
initialValue: abc, initialValue: departments,
onSelect: (value) { onSelect: (value) {
abc = value ?? []; departments = value ?? [];
// setState(() { // setState(() {
// //
// }); // });

@ -28,6 +28,7 @@ class MultipleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> ex
final bool showCancel; final bool showCancel;
final Color? backgroundColor; // Now nullable final Color? backgroundColor; // Now nullable
final bool? loading; // Now nullable final bool? loading; // Now nullable
final int? requestById; // Now nullable
/// To use a static data (without calling API) /// To use a static data (without calling API)
/// just send [NullableLoadingProvider] as generic data type and fill the [staticData] /// just send [NullableLoadingProvider] as generic data type and fill the [staticData]
@ -47,6 +48,7 @@ class MultipleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> ex
this.showCancel = false, this.showCancel = false,
this.backgroundColor, this.backgroundColor,
this.loading, this.loading,
this.requestById,
}) : super(key: key); }) : super(key: key);
@override @override
@ -150,7 +152,7 @@ class _MultipleItemDropDownMenuState<T extends Base, X extends LoadingListNotifi
onRefresh: () async { onRefresh: () async {
if (X != NullableLoadingProvider) { if (X != NullableLoadingProvider) {
provider?.reset(); provider?.reset();
await provider?.getData(); await provider?.getData(id: widget.requestById);
} }
}, },
child: Container( child: Container(

@ -27,6 +27,7 @@ class SingleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> exte
final bool showCancel; final bool showCancel;
final Color? backgroundColor; // Now nullable final Color? backgroundColor; // Now nullable
final bool? loading; // Now nullable final bool? loading; // Now nullable
final int? requestById;
/// To use a static data (without calling API) /// To use a static data (without calling API)
/// just send [NullableLoadingProvider] as generic data type and fill the [staticData] /// just send [NullableLoadingProvider] as generic data type and fill the [staticData]
@ -46,6 +47,7 @@ class SingleItemDropDownMenu<T extends Base, X extends LoadingListNotifier> exte
this.showCancel = false, this.showCancel = false,
this.backgroundColor, this.backgroundColor,
this.loading, this.loading,
this.requestById,
}) : super(key: key); }) : super(key: key);
@override @override
@ -106,7 +108,7 @@ class _SingleItemDropDownMenuState<T extends Base, X extends LoadingListNotifier
onRefresh: () async { onRefresh: () async {
if (X != NullableLoadingProvider) { if (X != NullableLoadingProvider) {
provider?.reset(); provider?.reset();
await provider?.getData(); await provider?.getData(id: widget.requestById);
} }
}, },
child: Container( child: Container(

@ -9,7 +9,7 @@ import '../loading_list_notifier.dart';
class AssetTransferStatusProvider extends LoadingListNotifier<Lookup> { class AssetTransferStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class DepartmentProvider extends LoadingListNotifier<Lookup> { class DepartmentProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../loading_list_notifier.dart';
class CylinderSizeProvider extends LoadingListNotifier<Lookup> { class CylinderSizeProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../loading_list_notifier.dart';
class CylinderTypesProvider extends LoadingListNotifier<Lookup> { class CylinderTypesProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../loading_list_notifier.dart';
class GasStatusProvider extends LoadingListNotifier<Lookup> { class GasStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../controllers/api_routes/urls.dart';
class GasTypesProvider extends LoadingListNotifier<Lookup> { class GasTypesProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -10,7 +10,7 @@ import '../../controllers/api_routes/urls.dart';
class SiteProvider extends LoadingListNotifier<Site> { class SiteProvider extends LoadingListNotifier<Site> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();
@ -35,7 +35,7 @@ class SiteProvider extends LoadingListNotifier<Site> {
class MappedSiteProvider extends LoadingListNotifier<MappedSite> { class MappedSiteProvider extends LoadingListNotifier<MappedSite> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -3,7 +3,7 @@ import 'package:test_sa/models/base.dart';
class NullableLoadingProvider extends LoadingListNotifier<Base> { class NullableLoadingProvider extends LoadingListNotifier<Base> {
@override @override
Future getData() { Future getData({int? id}) {
return Future.value(); return Future.value();
} }
} }
@ -28,5 +28,5 @@ abstract class LoadingListNotifier<T extends Base> extends ChangeNotifier {
stateCode = null; stateCode = null;
} }
Future getData(); Future getData({int? id});
} }

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class ClassificationLookupProvider extends LoadingListNotifier<Lookup> { class ClassificationLookupProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -0,0 +1,34 @@
import 'dart:convert';
import 'package:http/http.dart';
import 'package:test_sa/models/new_models/traf_department.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
import '../../controllers/api_routes/api_manager.dart';
import '../../controllers/api_routes/urls.dart';
import '../../models/lookup.dart';
class DepartmentLookupProvider extends LoadingListNotifier<TrafDepartment> {
@override
Future getData({int? id}) async {
if (loading == true) return -2;
loading = true;
notifyListeners();
try {
Response response = await ApiManager.instance.get(URLs.getDepartmentBasedOnSite + "?customerId=$id");
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
List categoriesListJson = json.decode(response.body)["data"];
items = categoriesListJson.map((item) => TrafDepartment.fromJson(item)).toList();
}
loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
loading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
}

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class RecommendationLookupProvider extends LoadingListNotifier<Lookup> { class RecommendationLookupProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class RequestTypeLookupProvider extends LoadingListNotifier<Lookup> { class RequestTypeLookupProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class YesNoLookupProvider extends LoadingListNotifier<Lookup> { class YesNoLookupProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PpmAssetAvailabilityProvider extends LoadingListNotifier<Lookup> { class PpmAssetAvailabilityProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PpmChecklistStatusProvider extends LoadingListNotifier<Lookup> { class PpmChecklistStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PPMDeviceStatusProvider extends LoadingListNotifier<Lookup> { class PPMDeviceStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PpmElectricalSafetyProvider extends LoadingListNotifier<Lookup> { class PpmElectricalSafetyProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PpmServiceProvider extends LoadingListNotifier<Lookup> { class PpmServiceProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PpmTaskStatusProvider extends LoadingListNotifier<Lookup> { class PpmTaskStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import 'loading_list_notifier.dart';
class PPMVisitStatusProvider extends LoadingListNotifier<Lookup> { class PPMVisitStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading ?? false) return -2; if (loading ?? false) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class CommissioningStatusProvider extends LoadingListNotifier<Lookup> { class CommissioningStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class EquipmentStatusProvider extends LoadingListNotifier<Lookup> { class EquipmentStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class FirstActionStatusProvider extends LoadingListNotifier<Lookup> { class FirstActionStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class LastSituationProvider extends LoadingListNotifier<Lookup> { class LastSituationProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class LoanAvailabilityProvider extends LoadingListNotifier<Lookup> { class LoanAvailabilityProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class PriorityProvider extends LoadingListNotifier<Lookup> { class PriorityProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -10,7 +10,7 @@ import '../../models/lookup.dart';
class RejectReasonProvider extends LoadingListNotifier<Lookup> { class RejectReasonProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class RequestedThroughProvider extends LoadingListNotifier<Lookup> { class RequestedThroughProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class TypeOfRequestProvider extends LoadingListNotifier<Lookup> { class TypeOfRequestProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;

@ -11,7 +11,7 @@ import '../../controllers/api_routes/urls.dart';
class TaskTypeProvider extends LoadingListNotifier<TaskType> { class TaskTypeProvider extends LoadingListNotifier<TaskType> {
@override @override
Future getData() async { Future getData({int? id}) async {
print('get data called...'); print('get data called...');
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
@ -39,7 +39,7 @@ class TaskTypeProvider extends LoadingListNotifier<TaskType> {
} }
class TaskEvaluatorUserProvider extends LoadingListNotifier<TaskEvaluatorUser> { class TaskEvaluatorUserProvider extends LoadingListNotifier<TaskEvaluatorUser> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();
@ -65,7 +65,7 @@ class TaskEvaluatorUserProvider extends LoadingListNotifier<TaskEvaluatorUser> {
class TaskJobTypeOfAlertProvider extends LoadingListNotifier<Lookup> { class TaskJobTypeOfAlertProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();
@ -90,7 +90,7 @@ class TaskJobTypeOfAlertProvider extends LoadingListNotifier<Lookup> {
} }
class TaskJobRiskLevelProvider extends LoadingListNotifier<Lookup> { class TaskJobRiskLevelProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();
@ -115,7 +115,7 @@ class TaskJobRiskLevelProvider extends LoadingListNotifier<Lookup> {
} }
class TaskJobResourceProvider extends LoadingListNotifier<Lookup> { class TaskJobResourceProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();
@ -140,7 +140,7 @@ class TaskJobResourceProvider extends LoadingListNotifier<Lookup> {
} }
class TaskJobActionNeededProvider extends LoadingListNotifier<Lookup> { class TaskJobActionNeededProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();
@ -165,7 +165,7 @@ class TaskJobActionNeededProvider extends LoadingListNotifier<Lookup> {
} }
class TaskJobImpactStatusProvider extends LoadingListNotifier<Lookup> { class TaskJobImpactStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -10,7 +10,7 @@ import '../../models/lookup.dart';
class ActivityStatusProvider extends LoadingListNotifier<Lookup> { class ActivityStatusProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class NeedVisitReminderTimeProvider extends LoadingListNotifier<Lookup> { class NeedVisitReminderTimeProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -11,7 +11,7 @@ class ReasonProvider extends LoadingListNotifier<Lookup> {
String? serviceRequestId; String? serviceRequestId;
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -12,7 +12,7 @@ class RetirementTypeProvider extends LoadingListNotifier<Lookup> {
String? serviceRequestId; String? serviceRequestId;
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
print('get data called...'); print('get data called...');
loading = true; loading = true;

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class ServiceTypeProvider extends LoadingListNotifier<Lookup> { class ServiceTypeProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -8,7 +8,7 @@ import 'package:test_sa/providers/loading_list_notifier.dart';
class SupplierEngineerProvider extends LoadingListNotifier<Lookup> { class SupplierEngineerProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -8,7 +8,7 @@ import 'package:test_sa/providers/loading_list_notifier.dart';
class VendorProvider extends LoadingListNotifier<SupplierDetails> { class VendorProvider extends LoadingListNotifier<SupplierDetails> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -9,7 +9,7 @@ import '../../models/lookup.dart';
class WoFrameProvider extends LoadingListNotifier<Lookup> { class WoFrameProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getData() async { Future getData({int? id}) async {
if (loading == true) return -2; if (loading == true) return -2;
loading = true; loading = true;
notifyListeners(); notifyListeners();

@ -50,9 +50,6 @@ class _SelectionBottomSheetState<T extends Base> extends State<MultipleSelection
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
for (var abc in filteredList ?? []) {
print(abc.toJson());
}
return Scaffold( return Scaffold(
appBar: AppBar( appBar: AppBar(
title: widget.title.heading5(context), title: widget.title.heading5(context),

Loading…
Cancel
Save