commented files/codes deleted.

main_production_upgrade_ios
Sikander Saleem 4 days ago
parent 32038102fc
commit b09609f692

@ -1,45 +0,0 @@
///todo deleted
// import 'dart:convert';
//
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
// import 'package:localization/localization.dart';
//
// class AppLocalization {
// AppLocalization(this.locale);
//
// final Locale locale;
// static AppLocalization of(BuildContext context) {
// return Localizations.of<AppLocalization>(context, AppLocalization);
// }
//
// AppLocalizations _subtitle;
// Subtitle get subtitle => _subtitle;
//
// Future<void> load() async {
// String jsonStringValues = await rootBundle.loadString('assets/subtitles/${locale.languageCode}_subtitle.json');
// _subtitle = Subtitle.fromJson(json.decode(jsonStringValues));
// }
//
// // static member to have simple access to the delegate from Material App
// static const LocalizationsDelegate<AppLocalization> delegate = _DemoLocalizationsDelegate();
// }
//
// class _DemoLocalizationsDelegate extends LocalizationsDelegate<AppLocalization> {
// const _DemoLocalizationsDelegate();
//
// @override
// bool isSupported(Locale locale) {
// return ['en', 'ar'].contains(locale.languageCode);
// }
//
// @override
// Future<AppLocalization> load(Locale locale) async {
// AppLocalization localization = new AppLocalization(locale);
// await localization.load();
// return localization;
// }
//
// @override
// bool shouldReload(LocalizationsDelegate<AppLocalization> old) => false;
// }

@ -1,76 +0,0 @@
///todo deleted
// 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/lookup.dart';
// import 'package:test_sa/models/user.dart';
//
// class AssetTransferStatusProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _items = null;
// _loading = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _items;
//
// List<Lookup> get items => _items;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getData({
// String host,
// User user,
// }) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(URLs.getAssetTransferStatus);
// _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) => Lookup.fromJson(item)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -1,73 +0,0 @@
///todo deleted
// 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/lookup.dart';
// import 'package:test_sa/models/user.dart';
//
// class ServiceReportEquipmentStatusProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _status = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _status;
//
// List<Lookup> get statuses => _status;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getTypes({String host, User user}) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(URLs.equipmentStatus);
//
// _stateCode = response.statusCode;
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// List categoriesListJson = json.decode(response.body)["data"];
// _status = categoriesListJson.map((type) => Lookup.fromJson(type)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -1,80 +0,0 @@
///todo deleted
// 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/lookup.dart';
//
// class ServiceReportMaintenanceSituationProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _calls = null;
// _loading = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _calls;
//
// List<Lookup> get operators => _calls;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getOperators(String woId) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(
// woId == null ? "${URLs.getMaintenanceSituation}" : "${URLs.getServiceReportLastCalls}?parentWOId=$woId&isAdd=true&id=${0}&typeTransaction='Nothing'",
// );
// // response = await get(
// // Uri.parse(
// // URLs.getServiceReportLastCalls
// // +(serviceStatus == null ? "" : "?service_status=$serviceStatus")
// // ),
// // );
// _stateCode = response.statusCode;
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// List categoriesListJson = json.decode(response.body)["data"];
// _calls = categoriesListJson.map((type) => Lookup.fromJson(type)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -1,74 +0,0 @@
///todo deleted
// 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/lookup.dart';
// import 'package:test_sa/models/user.dart';
//
// class ServiceReportReasonsProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _reasons = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _reasons;
//
// List<Lookup> get reasons => _reasons;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getTypes({String host, User user}) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(
// URLs.getServiceReportReasons+"&serviceRequestId=72355",
// );
// _stateCode = response.statusCode;
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// List categoriesListJson = json.decode(response.body)["data"];
// _reasons = categoriesListJson.map((type) => Lookup.fromJson(type)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -1,75 +0,0 @@
///todo deleted
// 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/lookup.dart';
// import 'package:test_sa/models/user.dart';
//
// class ServiceReportStatusProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _status = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _status;
//
// List<Lookup> get statuses => _status;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getTypes({String host, User user}) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(
// URLs.getServiceReportStatus,
// );
//
// _stateCode = response.statusCode;
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// List categoriesListJson = json.decode(response.body)["data"];
// _status = categoriesListJson.map((type) => Lookup.fromJson(type)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -1,74 +0,0 @@
///todo deleted
// 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/lookup.dart';
// import 'package:test_sa/models/user.dart';
//
// class ServiceReportTypesProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _types = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _types;
//
// List<Lookup> get types => _types;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getTypes({String host, User user}) async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(
// URLs.getServiceReportTypes,
// );
// _stateCode = response.statusCode;
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// List categoriesListJson = json.decode(response.body)["data"];
// _types = categoriesListJson.map((type) => Lookup.fromJson(type)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -1,80 +0,0 @@
///todo deleted
// 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/lookup.dart';
//
// class ServiceReportVisitOperatorProvider extends ChangeNotifier {
// //reset provider data
// void reset() {
// _calls = null;
// _loading = null;
// _stateCode = null;
// }
//
// // state code of current request to defied error message
// // like 400 customer request failed
// // 500 service not available
// int _stateCode;
//
// int get stateCode => _stateCode;
//
// // contain user data
// // when user not login or register _user = null
// List<Lookup> _calls;
//
// List<Lookup> get operators => _calls;
//
// // when categories in-process _loading = true
// // done _loading = true
// // failed _loading = false
// bool _loading;
//
// bool get isLoading => _loading;
//
// set isLoading(bool isLoading) {
// _loading = isLoading;
// notifyListeners();
// }
//
// /// return -2 if request in progress
// /// return -1 if error happen when sending request
// /// return state code if request complete may be 200, 404 or 403
// /// for more details check http state manager
// /// lib\controllers\http_status_manger\http_status_manger.dart
// Future<int> getOperators() async {
// if (_loading == true) return -2;
// _loading = true;
// notifyListeners();
// Response response;
// try {
// response = await ApiManager.instance.get(
// "${URLs.getDateOperators}",
// );
// // response = await get(
// // Uri.parse(
// // URLs.getServiceReportLastCalls
// // +(serviceStatus == null ? "" : "?service_status=$serviceStatus")
// // ),
// // );
// _stateCode = response.statusCode;
// if (response.statusCode >= 200 && response.statusCode < 300) {
// // client's request was successfully received
// List categoriesListJson = json.decode(response.body)["data"];
// _calls = categoriesListJson.map((type) => Lookup.fromJson(type)).toList();
// }
// _loading = false;
// notifyListeners();
// return response.statusCode;
// } catch (error) {
// _loading = false;
// _stateCode = -1;
// notifyListeners();
// return -1;
// }
// }
// }

@ -173,10 +173,7 @@ void main() async {
)); ));
/// only portrait mode /// only portrait mode
SystemChrome.setPreferredOrientations([ SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp, DeviceOrientation.portraitDown]);
DeviceOrientation.portraitUp,
DeviceOrientation.portraitDown,
]);
runApp(ChangeNotifierProvider(create: (_) => SettingProvider(), child: const MyApp())); runApp(ChangeNotifierProvider(create: (_) => SettingProvider(), child: const MyApp()));
} }
@ -236,9 +233,6 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => ServiceReportLastCallsProvider()), ChangeNotifierProvider(create: (_) => ServiceReportLastCallsProvider()),
ChangeNotifierProvider(create: (_) => OracleCodeProvider()), ChangeNotifierProvider(create: (_) => OracleCodeProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => GasCylinderTypesProvider()),
ChangeNotifierProvider(create: (_) => GasStatusProvider()), ChangeNotifierProvider(create: (_) => GasStatusProvider()),
ChangeNotifierProvider(create: (_) => GasTypesProvider()), ChangeNotifierProvider(create: (_) => GasTypesProvider()),
ChangeNotifierProvider(create: (_) => GasRefillProvider()), ChangeNotifierProvider(create: (_) => GasRefillProvider()),
@ -248,27 +242,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => TrafRequestProvider()), ChangeNotifierProvider(create: (_) => TrafRequestProvider()),
ChangeNotifierProvider(create: (_) => DepartmentLookupProvider()), ChangeNotifierProvider(create: (_) => DepartmentLookupProvider()),
ChangeNotifierProvider(create: (_) => UserSearchProvider()), ChangeNotifierProvider(create: (_) => UserSearchProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()),
//ChangeNotifierProvider(create: (_) => PentryVisitStatusProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => PentryStatusProvider()),
//ChangeNotifierProvider(create: (_) => ServiceRequestPriorityProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => ServiceRequestDefectTypesProvider()),
//ChangeNotifierProvider(create: (_) => ServiceRequestTypeProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => ServiceRequestedThroughProvider()),
//ChangeNotifierProvider(create: (_) => ServiceRequestStatusProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => EngineersProvider()),
ChangeNotifierProvider(create: (_) => SupplierEngineerProvider()), ChangeNotifierProvider(create: (_) => SupplierEngineerProvider()),
/// Loan availability not required
// ChangeNotifierProvider(create: (_) => ServiceLoanAvailabilityProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => ServiceFirstActionProvider()),
ChangeNotifierProvider(create: (_) => ServiceReportRepairLocationProvider()), ChangeNotifierProvider(create: (_) => ServiceReportRepairLocationProvider()),
ChangeNotifierProvider(create: (_) => ServiceRequestFaultDescriptionProvider()), ChangeNotifierProvider(create: (_) => ServiceRequestFaultDescriptionProvider()),
@ -276,10 +250,6 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => ChatProvider()), ChangeNotifierProvider(create: (_) => ChatProvider()),
//chat //chat
ChangeNotifierProvider(create: (_) => SurveyProvider()), ChangeNotifierProvider(create: (_) => SurveyProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => ServiceReportMaintenanceSituationProvider()),
//ChangeNotifierProvider(create: (_) => ServiceReportUsersProvider()),
ChangeNotifierProvider(create: (_) => ServiceReportAssistantsEmployeeProvider()), ChangeNotifierProvider(create: (_) => ServiceReportAssistantsEmployeeProvider()),
ChangeNotifierProvider(create: (_) => PriorityProvider()), ChangeNotifierProvider(create: (_) => PriorityProvider()),
ChangeNotifierProvider(create: (_) => EquipmentStatusProvider()), ChangeNotifierProvider(create: (_) => EquipmentStatusProvider()),
@ -309,13 +279,8 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => TaskEvaluatorUserProvider()), ChangeNotifierProvider(create: (_) => TaskEvaluatorUserProvider()),
ChangeNotifierProvider(create: (_) => TaskJobImpactStatusProvider()), ChangeNotifierProvider(create: (_) => TaskJobImpactStatusProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => AssetTypesProvider()),
ChangeNotifierProvider(create: (_) => ServiceTypeProvider()), ChangeNotifierProvider(create: (_) => ServiceTypeProvider()),
ChangeNotifierProvider(create: (_) => PPMVisitStatusProvider()), ChangeNotifierProvider(create: (_) => PPMVisitStatusProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()),
ChangeNotifierProvider(create: (_) => PPMDeviceStatusProvider()), ChangeNotifierProvider(create: (_) => PPMDeviceStatusProvider()),
ChangeNotifierProvider(create: (_) => PpmAssetAvailabilityProvider()), ChangeNotifierProvider(create: (_) => PpmAssetAvailabilityProvider()),
ChangeNotifierProvider(create: (_) => PpmTaskStatusProvider()), ChangeNotifierProvider(create: (_) => PpmTaskStatusProvider()),
@ -328,8 +293,6 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => InternalAuditProvider()), ChangeNotifierProvider(create: (_) => InternalAuditProvider()),
ChangeNotifierProvider(create: (_) => InternalAuditFindingTypeProvider()), ChangeNotifierProvider(create: (_) => InternalAuditFindingTypeProvider()),
///todo deleted
//ChangeNotifierProvider(create: (_) => RequestStatusProvider()),
ChangeNotifierProvider(create: (_) => VendorProvider()), ChangeNotifierProvider(create: (_) => VendorProvider()),
ChangeNotifierProvider(create: (_) => PpmChecklistStatusProvider()), ChangeNotifierProvider(create: (_) => PpmChecklistStatusProvider()),
ChangeNotifierProvider(create: (_) => AssetInventoryProvider()), ChangeNotifierProvider(create: (_) => AssetInventoryProvider()),
@ -382,39 +345,22 @@ class MyApp extends StatelessWidget {
SwipeHistoryView.routeName: (_) => const SwipeHistoryView(), SwipeHistoryView.routeName: (_) => const SwipeHistoryView(),
SwipeView.routeName: (_) => const SwipeView(), SwipeView.routeName: (_) => const SwipeView(),
UpdateAvailableScreen.routeName: (_) => UpdateAvailableScreen(), UpdateAvailableScreen.routeName: (_) => UpdateAvailableScreen(),
///todo deleted
//old.LandPage.id: (_) => const old.LandPage(),
LandPage.routeName: (_) => const LandPage(), LandPage.routeName: (_) => const LandPage(),
GasRefillRequestForm.routeName: (_) => const GasRefillRequestForm(), GasRefillRequestForm.routeName: (_) => const GasRefillRequestForm(),
// ServiceRequestsPage.id: (_) => const ServiceRequestsPage(),
CreateTaskView.id: (_) => const CreateTaskView(), CreateTaskView.id: (_) => const CreateTaskView(),
CreateTRAFRequestPage.id: (_) => CreateTRAFRequestPage(), CreateTRAFRequestPage.id: (_) => CreateTRAFRequestPage(),
UpdateTrafRequestPage.id: (_) => UpdateTrafRequestPage(), UpdateTrafRequestPage.id: (_) => UpdateTrafRequestPage(),
CreateGasRefillRequest.id: (_) => const CreateGasRefillRequest(), CreateGasRefillRequest.id: (_) => const CreateGasRefillRequest(),
UpdateGasRefillRequest.id: (_) => const UpdateGasRefillRequest(), UpdateGasRefillRequest.id: (_) => const UpdateGasRefillRequest(),
// CreateServiceRequestPage.id: (_) => const CreateServiceRequestPage(),
CreateCMRequest.id: (_) => const CreateCMRequest(), CreateCMRequest.id: (_) => const CreateCMRequest(),
// SingleHospitalPicker.id: (_) => SingleHospitalPicker(),
MyAssetsPage.id: (_) => const MyAssetsPage(), MyAssetsPage.id: (_) => const MyAssetsPage(),
SingleDepartmentPicker.id: (_) => const SingleDepartmentPicker(), SingleDepartmentPicker.id: (_) => const SingleDepartmentPicker(),
NotificationsPage.id: (_) => const NotificationsPage(), NotificationsPage.id: (_) => const NotificationsPage(),
// FutureRequestServiceDetails.id: (_) => FutureRequestServiceDetails(),
// PreventiveMaintenanceVisitsPage.id: (_) => PreventiveMaintenanceVisitsPage(),
// PpmPage.id: (_) => const PpmPage(),
// TrackGasRefillPage.id: (_) => const TrackGasRefillPage(),
CreateDeviceTransferRequest.id: (_) => const CreateDeviceTransferRequest(), CreateDeviceTransferRequest.id: (_) => const CreateDeviceTransferRequest(),
// TrackDeviceTransferPage.id: (_) => const TrackDeviceTransferPage(),
// SearchSubWorkOrderPage.id: (_) => const SearchSubWorkOrderPage(),
// CreateSubWorkOrderPage.id: (_) => const CreateSubWorkOrderPage(),
// WorkOrderListPage.id: (_) => WorkOrderListPage(),
AssetDetailPage.id: (_) => const AssetDetailPage(), AssetDetailPage.id: (_) => const AssetDetailPage(),
DeviceSearchScreen.id: (_) => const DeviceSearchScreen(), DeviceSearchScreen.id: (_) => const DeviceSearchScreen(),
DeviceFilterScreen.id: (_) => const DeviceFilterScreen(), DeviceFilterScreen.id: (_) => const DeviceFilterScreen(),
CreateIncidentRequestPage.id: (_) => CreateIncidentRequestPage(), CreateIncidentRequestPage.id: (_) => CreateIncidentRequestPage(),
// UpdateServiceRequestPage.id: (_) => const UpdateServiceRequestPage(),
SettingsPage.id: (_) => const SettingsPage(), SettingsPage.id: (_) => const SettingsPage(),
ProfilePage.id: (_) => const ProfilePage(), ProfilePage.id: (_) => const ProfilePage(),
ReportBugPage.id: (_) => const ReportBugPage(), ReportBugPage.id: (_) => const ReportBugPage(),
@ -424,10 +370,6 @@ class MyApp extends StatelessWidget {
UpdateEquipmentInternalAuditPage.id: (_) => UpdateEquipmentInternalAuditPage(), UpdateEquipmentInternalAuditPage.id: (_) => UpdateEquipmentInternalAuditPage(),
UpdateSystemInternalAuditPage.id: (_) => UpdateSystemInternalAuditPage(), UpdateSystemInternalAuditPage.id: (_) => UpdateSystemInternalAuditPage(),
CreateLoanRequestPage.id: (_) => CreateLoanRequestPage(), CreateLoanRequestPage.id: (_) => CreateLoanRequestPage(),
CreateMedicalGasRequestPage.id: (_) => CreateMedicalGasRequestPage(),
// SwipeSuccessView.routeName: (_) => const SwipeSuccessView(),
// SwipeHistoryView.routeName: (_) => const SwipeHistoryView(),
CreateMedicalGasRequestPage.id: (_) => CreateMedicalGasRequestPage(), CreateMedicalGasRequestPage.id: (_) => CreateMedicalGasRequestPage(),
CreateDemoRequestPage.id: (_) => CreateDemoRequestPage(), CreateDemoRequestPage.id: (_) => CreateDemoRequestPage(),
}, },

@ -1,150 +0,0 @@
///todo deleted
// class Customer {
// List<Data> data;
// String message;
// String innerMessage;
// int responseCode;
// bool isSuccess;
//
// Customer({this.data, this.message, this.innerMessage, this.responseCode, this.isSuccess});
//
// Customer.fromJson(Map<String, dynamic> json) {
// if (json['data'] != null) {
// data = [];
// json['data'].forEach((v) {
// data.add(new Data.fromJson(v));
// });
// }
// message = json['message'];
// innerMessage = json['innerMessage'];
// responseCode = json['responseCode'];
// isSuccess = json['isSuccess'];
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// if (this.data != null) {
// data['data'] = this.data.map((v) => v.toJson()).toList();
// }
// data['message'] = this.message;
// data['innerMessage'] = this.innerMessage;
// data['responseCode'] = this.responseCode;
// data['isSuccess'] = this.isSuccess;
// return data;
// }
// }
//
// class Data {
// int id;
// int customerCode;
// String custName;
// List<Buildings> buildings;
//
// Data({this.id, this.customerCode, this.custName, this.buildings});
//
// Data.fromJson(Map<String, dynamic> json) {
// id = json['id'];
// customerCode = json['customerCode'];
// custName = json['custName'];
// if (json['buildings'] != null) {
// buildings = [];
// json['buildings'].forEach((v) {
// buildings.add(new Buildings.fromJson(v));
// });
// }
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['id'] = this.id;
// data['customerCode'] = this.customerCode;
// data['custName'] = this.custName;
// if (this.buildings != null) {
// data['buildings'] = this.buildings.map((v) => v.toJson()).toList();
// }
// return data;
// }
// }
//
// class Buildings {
// int id;
// String name;
// int value;
// List<Floors> floors;
//
// Buildings({this.id, this.name, this.value, this.floors});
//
// Buildings.fromJson(Map<String, dynamic> json) {
// id = json['id'];
// name = json['name'];
// value = json['value'];
// if (json['floors'] != null) {
// floors = [];
// json['floors'].forEach((v) {
// floors.add(new Floors.fromJson(v));
// });
// }
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['id'] = this.id;
// data['name'] = this.name;
// data['value'] = this.value;
// if (this.floors != null) {
// data['floors'] = this.floors.map((v) => v.toJson()).toList();
// }
// return data;
// }
// }
//
// class Floors {
// int id;
// String name;
// int value;
// List<Departments> departments;
//
// Floors({this.id, this.name, this.value, this.departments});
//
// Floors.fromJson(Map<String, dynamic> json) {
// id = json['id'];
// name = json['name'];
// value = json['value'];
// if (json['departments'] != null) {
// departments = [];
// json['departments'].forEach((v) {
// departments.add(new Departments.fromJson(v));
// });
// }
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['id'] = this.id;
// data['name'] = this.name;
// data['value'] = this.value;
// if (this.departments != null) {
// data['departments'] = this.departments.map((v) => v.toJson()).toList();
// }
// return data;
// }
// }
//
// class Departments {
// int id;
// String name;
//
// Departments({this.id, this.name});
//
// Departments.fromJson(Map<String, dynamic> json) {
// id = json['id'];
// name = json['name'];
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['id'] = this.id;
// data['name'] = this.name;
// return data;
// }
// }

@ -1,50 +0,0 @@
///todo deleted
// @Deprecated("Use the class inside model_definition.dart")
// class ModelDefinition {
// int id;
// String assetName;
// String modelDefCode;
// String modelName;
// String manufacturerName;
// String supplierName;
// String replacementDate;
// int lifeSpan;
//
// ModelDefinition({
// this.id,
// this.assetName,
// this.modelDefCode,
// this.modelName,
// this.manufacturerName,
// this.supplierName,
// this.replacementDate,
// this.lifeSpan,
// });
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = <String, dynamic>{};
// data['id'] = id;
// data['assetName'] = assetName;
// data['modelDefCode'] = modelDefCode;
// data['modelName'] = modelName;
// data['manufacturerName'] = manufacturerName;
// data['supplierName'] = supplierName;
// data['replacementDate'] = replacementDate;
// data['lifeSpan'] = lifeSpan;
// return data;
// }
//
// factory ModelDefinition.fromJson(Map<String, dynamic> map) {
// if (map == null) return null;
// return ModelDefinition(
// id: map['id'] as int,
// assetName: map['assetName'] as String,
// modelDefCode: map['modelDefCode'] as String,
// modelName: map['modelName'] as String,
// manufacturerName: map['manufacturerName'] as String,
// supplierName: map['supplierName'] as String,
// replacementDate: map['replacementDate'] as String,
// lifeSpan: map['lifeSpan'] as int,
// );
// }
// }

@ -1,669 +0,0 @@
///todo deleted
// import 'package:meta/meta.dart';
//
// class Subtitle1 {
// // http requests status messages
// String currentlyServiceNotAvailable;
// String waitUntilYourRequestComplete;
// String requestCompleteSuccessfully;
// String failedToCompleteRequest;
//
// // dialogs
// // words
// String signOut;
// String exit;
// String confirm;
// String cancel;
// // phrases
// String signOutAlert;
// String exitAlert;
//
// // image picker
// String pickFromCamera;
// String pickFromGallery;
// String maxImagesNumberIs5;
// String imagesRequired;
// String images;
//
// // login and register page
// // words
// String language;
// String name;
// String email;
// String phoneNumber;
// String password;
// String confirmPassword;
// String showPassword;
// String forgetPassword;
// String forgetPasswordWithMark;
// String signIn;
// String signUp;
// // phrases
// String wrongEmailOrPassword;
// String emailExist;
// String nameExist;
// String phoneNumberExist;
// String nameValidateMessage;
// String emailValidateMessage;
// String phoneNumberValidateMessage;
// String passwordValidateMessage;
// String confirmPasswordValidateMessage;
//
// // commend words
// String title;
// String address;
// String description;
// String update;
// String next;
// String back;
// String edit;
// String search;
// String searchByName;
// String from;
// String to;
//
// String descriptionValidateMessage;
// String titleValidateMessage;
// String addressValidateMessage;
//
// String nameNotFound;
// String titleNotFound;
// String phoneNumberNotFound;
// String emailNotFound;
// String descriptionNotFound;
// String addressNotFound;
// String dataNotFound;
// String linkNotFound;
// String urlNotFound;
//
// // notifications
// String notifications;
// String notificationsNotFound;
//
// // service request
// String createServiceRequest;
// String hospital;
// String device;
// String deviceImages;
// String deviceFiles;
// String pickDevice;
// String maintenanceIssue;
// String create;
// String delete;
// String newServiceRequest;
// String trackServiceRequest;
// String hospitalRequired;
// String deviceRequired;
// String maintenanceIssueRequired;
// String add;
// String noServiceRequestFound;
// String noModelFound;
// String noSnFound;
// String noDateFound;
// String requestInformation;
// String clearSearch;
// String deviceName;
// String serialNumber;
// String code;
// String deviceSN;
// String deviceModel;
// String engineerName;
// String engineerPhone;
// String date;
// String status;
// String unite;
// String unitRequired;
// String deviceArName;
// String details;
// String general;
// String serviceRequestInformation;
// String faultDescription;
// String workPerformed;
// String visitDate;
// String nextVisitDate;
// String jobSheetNumber;
// String noHospitalFound;
// String pickHospital;
// String pickUnite;
// String noUniteFound;
// String serviceRequests;
//
// // device
// String model;
// String brand;
// String sn;
// String searchBySn;
// String noDeviceFound;
//
// // report issue
// String reason1;
// String reason2;
// String reason3;
// String reason4;
// String reason5;
// String reportIssue;
// String submit;
// String shareAntherIssue;
//
// // request status
// String newWord;
// String repaired;
// String repeated;
// String closed;
// String underRepair;
//
// // visit status
// String done;
// String notYet;
// String onHold;
//
// // land page
// String hotLine;
// String facebook;
// String linkedIn;
// String twitter;
// String whatsApp;
// String ourWebsite;
// String shareApp;
// String policy;
//
// // visits
// String preventiveMaintenance;
// String regularVisits;
// String updatePreventiveMaintenance;
// String updateRegularVisits;
// String preventiveMaintenanceUpdatedSuccessfully;
// String regularVisitsUpdatedSuccessfully;
// String updatingDots;
// String updateVisitsGroup;
// String noSerialNumberFound;
// String requiredStatus;
// String visitInformation;
// String expectDate;
// String actualDate;
// String noVisitsFound;
// String contactStatus;
// String workingHours;
// String travelingHours;
// String image;
// String pickImage;
// String requiredImage;
// String requiredFile;
// String taskStatus;
// String activationAlert;
//
// // service report
// String newServiceReport;
// String editServiceReport;
// String callId;
// String customer;
// String reportType;
// String requiredWord;
// String assetType;
// String reportStatus;
// String callLastSituation;
// String invoiceNumber;
// String invoiceCode;
// String workPreformed;
// String reasons;
// String attachImage;
// String operatingHours;
// String partNumberName;
// String number;
// String quantity;
// String orderWorkNumber;
// String assignedEmployee;
// String assetSN;
// String assetName;
// String assetNumber;
// String site;
// String maintenanceSituation;
// String currentSituation;
//
// // all
// String duplicateRequest;
// String duplicateAlert;
// String duplicateAlertMessage;
// String alert;
// String comment;
// String updateServiceRequest;
// String repairLocation;
// String travelingExpense;
// String startDate;
// String endDate;
// String requestedQuantity;
// String deliveredQuantity;
// String destinationSite;
// String building;
// String floor;
// String department;
// String room;
// String actions;
// String pickFromFiles;
// String pickFile;
//
// void setIssues(List<String> issues) {
// issues.clear();
// issues.add(reason1);
// issues.add(reason2);
// issues.add(reason3);
// issues.add(reason4);
// issues.add(reason5);
// }
//
// Subtitle({
// required this.updateServiceRequest,
// required this.comment,
// required this.currentlyServiceNotAvailable,
// required this.waitUntilYourRequestComplete,
// required this.requestCompleteSuccessfully,
// required this.failedToCompleteRequest,
// required this.update,
// required this.cancel,
// required this.confirm,
// required this.exit,
// required this.exitAlert,
// required this.signOutAlert,
// required this.language,
// required this.name,
// required this.email,
// required this.phoneNumber,
// required this.password,
// required this.forgetPassword,
// required this.confirmPassword,
// required this.signIn,
// required this.signUp,
// required this.nameValidateMessage,
// required this.emailValidateMessage,
// required this.phoneNumberValidateMessage,
// required this.passwordValidateMessage,
// required this.confirmPasswordValidateMessage,
// required this.emailExist,
// required this.forgetPasswordWithMark,
// required this.phoneNumberExist,
// required this.showPassword,
// required this.signOut,
// required this.wrongEmailOrPassword,
// required this.next,
// required this.back,
// required this.search,
// required this.searchByName,
// required this.address,
// required this.description,
// required this.title,
// required this.addressNotFound,
// required this.addressValidateMessage,
// required this.dataNotFound,
// required this.descriptionNotFound,
// required this.descriptionValidateMessage,
// required this.edit,
// required this.emailNotFound,
// required this.from,
// required this.linkNotFound,
// required this.nameNotFound,
// required this.phoneNumberNotFound,
// required this.titleNotFound,
// required this.titleValidateMessage,
// required this.to,
// required this.urlNotFound,
// required this.nameExist,
// required this.unitRequired,
// required this.unite,
// required this.hospitalRequired,
// required this.whatsApp,
// required this.submit,
// required this.shareAntherIssue,
// required this.reportIssue,
// required this.noUniteFound,
// required this.pickUnite,
// required this.noHospitalFound,
// required this.pickHospital,
// required this.shareApp,
// required this.ourWebsite,
// required this.linkedIn,
// required this.facebook,
// required this.hotLine,
// required this.trackServiceRequest,
// required this.newServiceRequest,
// required this.deviceModel,
// required this.noServiceRequestFound,
// required this.engineerName,
// required this.serviceRequests,
// required this.jobSheetNumber,
// required this.visitDate,
// required this.workPerformed,
// required this.faultDescription,
// required this.serviceRequestInformation,
// required this.maintenanceIssue,
// required this.deviceArName,
// required this.hospital,
// required this.status,
// required this.date,
// required this.engineerPhone,
// required this.device,
// required this.deviceSN,
// required this.details,
// required this.requestInformation,
// required this.model,
// required this.brand,
// required this.noDeviceFound,
// required this.noDateFound,
// required this.searchBySn,
// required this.pickDevice,
// required this.notifications,
// required this.notificationsNotFound,
// required this.twitter,
// required this.add,
// required this.code,
// required this.deviceName,
// required this.serialNumber,
// required this.policy,
// required this.clearSearch,
// required this.closed,
// required this.create,
// required this.createServiceRequest,
// required this.delete,
// required this.deviceImages,
// required this.deviceFiles,
// required this.deviceRequired,
// required this.general,
// required this.maintenanceIssueRequired,
// required this.maxImagesNumberIs5,
// required this.newWord,
// required this.noModelFound,
// required this.noSnFound,
// required this.reason1,
// required this.reason2,
// required this.reason3,
// required this.reason4,
// required this.reason5,
// required this.repaired,
// required this.repeated,
// required this.sn,
// required this.underRepair,
// required this.actualDate,
// required this.expectDate,
// required this.visitInformation,
// required this.regularVisitsUpdatedSuccessfully,
// required this.regularVisits,
// required this.updateRegularVisits,
// required this.updatingDots,
// required this.preventiveMaintenanceUpdatedSuccessfully,
// required this.updatePreventiveMaintenance,
// required this.preventiveMaintenance,
// required this.requiredStatus,
// required this.noSerialNumberFound,
// required this.updateVisitsGroup,
// required this.pickFromGallery,
// required this.pickFromCamera,
// required this.images,
// required this.done,
// required this.imagesRequired,
// required this.notYet,
// required this.noVisitsFound,
// required this.onHold,
// required this.nextVisitDate,
// required this.contactStatus,
// required this.travelingHours,
// required this.workingHours,
// required this.taskStatus,
// required this.image,
// required this.pickImage,
// required this.requiredImage,
// required this.requiredFile,
// required this.activationAlert,
// required this.callId,
// required this.requiredWord,
// required this.quantity,
// required this.callLastSituation,
// required this.invoiceNumber,
// required this.invoiceCode,
// required this.attachImage,
// required this.customer,
// required this.editServiceReport,
// required this.newServiceReport,
// required this.number,
// required this.operatingHours,
// required this.partNumberName,
// required this.reasons,
// required this.reportStatus,
// required this.reportType,
// required this.assetType,
// required this.workPreformed,
// required this.alert,
// required this.duplicateAlert,
// required this.duplicateAlertMessage,
// required this.duplicateRequest,
// required this.orderWorkNumber,
// required this.assignedEmployee,
// required this.assetSN,
// required this.assetName,
// required this.site,
// required this.maintenanceSituation,
// required this.currentSituation,
// required this.repairLocation,
// required this.travelingExpense,
// required this.startDate,
// required this.endDate,
// required this.requestedQuantity,
// required this.deliveredQuantity,
// required this.assetNumber,
// required this.destinationSite,
// required this.building,
// required this.floor,
// required this.department,
// required this.room,
// required this.actions,
// required this.pickFromFiles,
// required this.pickFile,
// });
//
// factory Subtitle.fromJson(Map<String, dynamic> parsedJson) {
// return Subtitle(
// updateServiceRequest: parsedJson["updateServiceRequest"],
// comment: parsedJson["comment"],
// currentlyServiceNotAvailable: parsedJson["server_error_message"],
// failedToCompleteRequest: parsedJson["failed_request_message"],
// requestCompleteSuccessfully: parsedJson["successful_request_message"],
// waitUntilYourRequestComplete: parsedJson["request_lock_message"],
// update: parsedJson["update"],
// cancel: parsedJson["cancel"],
// confirm: parsedJson["confirm"],
// exit: parsedJson["exit"],
// exitAlert: parsedJson["exit_alert"],
// signOut: parsedJson["sign_out"],
// signOutAlert: parsedJson["logout_alert"],
// language: parsedJson["language"],
// name: parsedJson["name"],
// email: parsedJson["email"],
// phoneNumber: parsedJson["phone_number"],
// password: parsedJson["password"],
// confirmPassword: parsedJson["confirm_password"],
// signUp: parsedJson["sign_up"],
// signIn: parsedJson["sign_in"],
// forgetPassword: parsedJson["forget_password"],
// emailValidateMessage: parsedJson["email_validate_message"],
// nameValidateMessage: parsedJson["name_validate_message"],
// passwordValidateMessage: parsedJson["password_validate_message"],
// confirmPasswordValidateMessage: parsedJson["confirm_password_validate_message"],
// phoneNumberValidateMessage: parsedJson["phone_number_validate_message"],
// forgetPasswordWithMark: parsedJson["forget_password_with_mark"],
// showPassword: parsedJson["show_password"],
// wrongEmailOrPassword: parsedJson["wrong_email_or_password"],
// emailExist: parsedJson["email_exist"],
// phoneNumberExist: parsedJson["phone_number_exist"],
// next: parsedJson["next"],
// back: parsedJson["back"],
// search: parsedJson["search"],
// searchByName: parsedJson["search_by_name"],
// address: parsedJson["address"],
// addressNotFound: parsedJson["address_not_found"],
// addressValidateMessage: parsedJson["address_validate_message"],
// dataNotFound: parsedJson["data_not_found"],
// description: parsedJson["description"],
// descriptionNotFound: parsedJson["description_not_found"],
// descriptionValidateMessage: parsedJson["description_validate_message"],
// edit: parsedJson["edit"],
// emailNotFound: parsedJson["email_not_found"],
// from: parsedJson["from"],
// to: parsedJson["to"],
// linkNotFound: parsedJson["link_not_found"],
// nameNotFound: parsedJson["name_not_found"],
// phoneNumberNotFound: parsedJson["phone_number_not_found"],
// title: parsedJson["title"],
// titleNotFound: parsedJson["title_not_found"],
// titleValidateMessage: parsedJson["title_validate_message"],
// urlNotFound: parsedJson["url_not_found"],
// date: parsedJson["date"],
// status: parsedJson["status"],
// code: parsedJson["code"],
// serialNumber: parsedJson["serialNumber"],
// add: parsedJson["add"],
// brand: parsedJson["brand"],
// clearSearch: parsedJson["clearSearch"],
// closed: parsedJson["closed"],
// create: parsedJson["create"],
// createServiceRequest: parsedJson["createServiceRequest"],
// delete: parsedJson["delete"],
// details: parsedJson["details"],
// device: parsedJson["device"],
// deviceArName: parsedJson["deviceArName"],
// deviceImages: parsedJson["deviceImages"],
// deviceFiles: parsedJson["deviceFiles"],
// deviceModel: parsedJson["deviceModel"],
// deviceName: parsedJson["deviceName"],
// deviceRequired: parsedJson["deviceRequired"],
// deviceSN: parsedJson["deviceSN"],
// engineerName: parsedJson["engineerName"],
// engineerPhone: parsedJson["engineerPhone"],
// facebook: parsedJson["facebook"],
// faultDescription: parsedJson["faultDescription"],
// general: parsedJson["general"],
// hospital: parsedJson["hospital"],
// hospitalRequired: parsedJson["hospitalRequired"],
// hotLine: parsedJson["hotLine"],
// jobSheetNumber: parsedJson["jobSheetNumber"],
// linkedIn: parsedJson["linkedIn"],
// maintenanceIssue: parsedJson["maintenanceIssue"],
// maintenanceIssueRequired: parsedJson["maintenanceIssueRequired"],
// maxImagesNumberIs5: parsedJson["maxImagesNumberIs5"],
// model: parsedJson["model"],
// nameExist: parsedJson["nameExist"],
// newServiceRequest: parsedJson["newServiceRequest"],
// newWord: parsedJson["newWord"],
// noDateFound: parsedJson["noDateFound"],
// noDeviceFound: parsedJson["noDeviceFound"],
// noHospitalFound: parsedJson["noHospitalFound"],
// noModelFound: parsedJson["noModelFound"],
// noServiceRequestFound: parsedJson["noServiceRequestFound"],
// noSnFound: parsedJson["noSnFound"],
// notifications: parsedJson["notifications"],
// notificationsNotFound: parsedJson["notificationsNotFound"],
// noUniteFound: parsedJson["noUniteFound"],
// ourWebsite: parsedJson["ourWebsite"],
// pickDevice: parsedJson["pickDevice"],
// pickHospital: parsedJson["pickHospital"],
// pickUnite: parsedJson["pickUnite"],
// policy: parsedJson["policy"],
// reason1: parsedJson["reason1"],
// reason2: parsedJson["reason2"],
// reason3: parsedJson["reason3"],
// reason4: parsedJson["reason4"],
// reason5: parsedJson["reason5"],
// repaired: parsedJson["repaired"],
// repeated: parsedJson["repeated"],
// reportIssue: parsedJson["reportIssue"],
// requestInformation: parsedJson["requestInformation"],
// searchBySn: parsedJson["searchBySn"],
// serviceRequestInformation: parsedJson["serviceRequestInformation"],
// serviceRequests: parsedJson["serviceRequests"],
// shareAntherIssue: parsedJson["shareAntherIssue"],
// shareApp: parsedJson["shareApp"],
// sn: parsedJson["sn"],
// submit: parsedJson["submit"],
// trackServiceRequest: parsedJson["trackServiceRequest"],
// twitter: parsedJson["twitter"],
// underRepair: parsedJson["underRepair"],
// unite: parsedJson["unite"],
// unitRequired: parsedJson["uniteRequired"],
// visitDate: parsedJson["visitDate"],
// whatsApp: parsedJson["whatsApp"],
// workPerformed: parsedJson["workPerformed"],
// actualDate: parsedJson["actualDate"],
// done: parsedJson["done"],
// expectDate: parsedJson["expectDate"],
// images: parsedJson["images"],
// imagesRequired: parsedJson["imagesRequired"],
// noSerialNumberFound: parsedJson["noSerialNumberFound"],
// notYet: parsedJson["notYet"],
// noVisitsFound: parsedJson["noVisitsFound"],
// onHold: parsedJson["onHold"],
// pickFromCamera: parsedJson["pickFromCamera"],
// pickFromGallery: parsedJson["pickFromGallery"],
// preventiveMaintenance: parsedJson["preventiveMaintenance"],
// preventiveMaintenanceUpdatedSuccessfully: parsedJson["preventiveMaintenanceUpdatedSuccessfully"],
// regularVisits: parsedJson["regularVisits"],
// regularVisitsUpdatedSuccessfully: parsedJson["regularVisitsUpdatedSuccessfully"],
// requiredStatus: parsedJson["requiredStatus"],
// updatePreventiveMaintenance: parsedJson["updatePreventiveMaintenance"],
// updateRegularVisits: parsedJson["updateRegularVisits"],
// updateVisitsGroup: parsedJson["updateVisitsGroup"],
// updatingDots: parsedJson["updatingDots"],
// visitInformation: parsedJson["visitInformation"],
// nextVisitDate: parsedJson["expectedVisitDate"],
// contactStatus: parsedJson["contactStatus"],
// travelingHours: parsedJson["travelingHours"],
// workingHours: parsedJson["workingHours"],
// image: parsedJson["image"],
// pickImage: parsedJson["pickImage"],
// requiredImage: parsedJson["requiredImage"],
// requiredFile: parsedJson["requiredFile"],
// taskStatus: parsedJson["taskStatus"],
// activationAlert: parsedJson["activationAlert"],
// attachImage: parsedJson["attachImage"],
// callLastSituation: parsedJson["callLastSituation"],
// customer: parsedJson["customer"],
// editServiceReport: parsedJson["editServiceReport"],
// invoiceCode: parsedJson["invoiceCode"],
// invoiceNumber: parsedJson["invoiceNumber"],
// newServiceReport: parsedJson["newServiceReport"],
// number: parsedJson["number"],
// operatingHours: parsedJson["operatingHours"],
// partNumberName: parsedJson["partNumberName"],
// quantity: parsedJson["quantity"],
// reasons: parsedJson["reasons"],
// reportStatus: parsedJson["reportStatus"],
// reportType: parsedJson["reportType"],
// callId: parsedJson["callId"],
// requiredWord: parsedJson["requiredWord"],
// assetType: parsedJson["AssetType"],
// workPreformed: parsedJson["workPreformed"],
// alert: parsedJson["alert"],
// duplicateAlert: parsedJson["duplicateAlert"],
// duplicateAlertMessage: parsedJson["duplicateAlertMessage"],
// duplicateRequest: parsedJson["duplicateRequest"],
// orderWorkNumber: parsedJson["orderWorkNumber"],
// assignedEmployee: parsedJson["assignedEmployee"],
// assetSN: parsedJson["assetSN"],
// assetName: parsedJson["assetName"],
// assetNumber: parsedJson["assetNumber"],
// site: parsedJson["site"],
// maintenanceSituation: parsedJson["maintenanceSituation"],
// currentSituation: parsedJson["currentSituation"],
// repairLocation: parsedJson["repairLocation"],
// travelingExpense: parsedJson["travelingExpense"],
// startDate: parsedJson["startDate"],
// endDate: parsedJson["endDate"],
// requestedQuantity: parsedJson["requestedQuantity"],
// deliveredQuantity: parsedJson["deliveredQuantity"],
// destinationSite: parsedJson["destinationSite"],
// building: parsedJson["building"],
// floor: parsedJson["floor"],
// department: parsedJson["department"],
// room: parsedJson["room"],
// actions: parsedJson["actions"],
// pickFromFiles: parsedJson["pickFromFiles"],
// pickFile: parsedJson["pickFile"],
// );
// }
// }

@ -1,87 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/user_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/enums/user_types.dart';
// import 'package:test_sa/models/service_request/search_work_order.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/update_service_report.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/work_order_details_page.dart';
//
// import '../../../../views/widgets/requests/request_status.dart';
//// //todo @delete
// class ActivityCardView extends StatelessWidget {
// final SearchWorkOrder workOrder;
// final ServiceRequest serviceRequest;
// final bool showShadow;
//
// const ActivityCardView(this.workOrder, this.serviceRequest, {Key? key, this.showShadow = true}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// UserProvider userProvider = Provider.of<UserProvider>(context, listen: false);
// return Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// mainAxisSize: MainAxisSize.min,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// StatusLabel(
// label: workOrder.currentSituation!.name,
// textColor: AppColor.getRequestStatusTextColorByName(context, workOrder.currentSituation!.name!),
// backgroundColor: AppColor.getRequestStatusColorByName(context, workOrder.currentSituation!.name!),
// ),
// 8.height,
// Text(serviceRequest.requestCode!, style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)),
// Text(
// '${context.translation.assetName}: ${workOrder.callRequest!.asset!.modelDefinition!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.currentSituation}: ${workOrder.currentSituation!.name}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// 16.height,
// Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.readCompleteThread,
// style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context), decoration: TextDecoration.underline),
// ),
// // 4.width,
// // Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
// ],
// ),
// ],
// ).onPress(() {
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: workOrder, serviceRequest: serviceRequest)),
// );
// }).expanded,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// if (userProvider.user!.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3)
// "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() {
// Navigator.of(context).push(
// MaterialPageRoute(builder: (_) => UpdateServiceReport(request: serviceRequest, workOrder: workOrder)),
// );
// }),
// if (userProvider.user!.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) 8.height,
// Text(workOrder.visitDate?.toServiceRequestCardFormat ?? "",
// textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))),
// ],
// )
// ],
// ).toShadowContainer(context);
// }
// }

@ -1,87 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/user_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/enums/user_types.dart';
// import 'package:test_sa/models/service_request/search_work_order.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/update_service_report.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/work_order_details_page.dart';
//
// import '../../../../views/widgets/requests/request_status.dart';
//// //todo @delete
// class WorkOrderCardView extends StatelessWidget {
// final SearchWorkOrder workOrder;
// final ServiceRequest serviceRequest;
// final bool showShadow;
//
// WorkOrderCardView(this.workOrder, this.serviceRequest, {Key? key, this.showShadow = true}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// UserProvider _userProvider = Provider.of<UserProvider>(context, listen: false);
// return Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// mainAxisSize: MainAxisSize.min,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// StatusLabel(
// label: workOrder.currentSituation!.name,
// textColor: AppColor.getRequestStatusTextColorByName(context, workOrder.currentSituation?.name),
// backgroundColor: AppColor.getRequestStatusColorByName(context, workOrder.currentSituation?.name),
// ),
// 8.height,
// Text(serviceRequest.requestCode!, style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)),
// Text(
// '${context.translation.assetName}: ${workOrder.callRequest?.asset?.modelDefinition?.assetName?.cleanupWhitespace?.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.currentSituation}: ${workOrder.currentSituation?.name}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// 16.height,
// Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.readCompleteThread,
// style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context), decoration: TextDecoration.underline),
// ),
// // 4.width,
// // Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
// ],
// ),
// ],
// ).onPress(() {
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: workOrder, serviceRequest: serviceRequest)),
// );
// }).expanded,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// if (_userProvider.user!.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3)
// "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() {
// Navigator.of(context).push(
// MaterialPageRoute(builder: (_) => UpdateServiceReport(request: serviceRequest, workOrder: workOrder)),
// );
// }),
// if (_userProvider.user!.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) 8.height,
// Text(workOrder.visitDate?.toServiceRequestCardFormat ?? "",
// textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))),
// ],
// )
// ],
// ).toShadowContainer(context);
// }
// }

@ -1,39 +0,0 @@
// import 'dart:io';
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
//
// class AttachmentView extends StatelessWidget {
// const AttachmentView({Key? key}) : super(key: key); todo @delete
//
// @override
// Widget build(BuildContext context) {
// //TODO user the same form key everywhere....
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// final List<File> _files = [];
// return Consumer<ServiceRequestsProvider>(builder: (context, serviceRequestProvider, child) {
// serviceRequestProvider.currentSelectedRequest?.visitDate = '';
// return Form(
// key: _formKey,
// child: SingleChildScrollView(
// child: Column(
// children: [
// MultiFilesPicker(
// label: context.translation.attachImage,
// buttonHeight: 108.toScreenHeight,
// buttonIcon: 'image_icon'?.toSvgAsset(),
// files: _files,
// onlyImages: true,
// ),
// 16.height,
// ],
// ),
// ),
// );
// });
// }
// }

@ -1,119 +0,0 @@
//
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/models/timer_model.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
// import 'package:test_sa/views/widgets/date_and_time/time_picker.dart';
// import 'package:test_sa/views/widgets/timer/app_timer.dart';
//
// class TimeDurationView extends StatelessWidget {
// const TimeDurationView({Key ?key}) : super(key: key);
//
// @override
// Widget build(BuildContext context) { todo @delete
// //TODO user the same form key everywhere....
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// return Consumer<ServiceRequestsProvider>(
// builder: (context, serviceRequestProvider,child) {
// serviceRequestProvider.currentSelectedRequest?.visitDate = '';
// return Form(
// key: _formKey,
// child: SingleChildScrollView(
// child: Column(
// children: [
// ADatePicker(
// label: context.translation.visitDate,
// hideShadow: true,
// withIcon: false,
// hint: context.translation.select,
// height: 70.toScreenHeight,
// date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest?.visitDate ?? ""),
// formatDateWithTime: true,
// onDatePicker: (selectedDate) {
// if (selectedDate != null) {
// showTimePicker(
// context: context,
// initialTime: TimeOfDay.now(),
// ).then((selectedTime) {
// // Handle the selected date and time here.
// if (selectedTime != null) {
// DateTime ? selectedDateTime = DateTime(
// selectedDate.year,
// selectedDate.month,
// selectedDate.day,
// selectedTime.hour,
// selectedTime.minute,
// );
// serviceRequestProvider.currentSelectedRequest?.visitDate = selectedDateTime?.toIso8601String();
// }
// });
// }
// },
// ),
// 8.height,
// ATimePicker(
// label: context.translation.startTime,
// hint: context.translation.select,
// withIcon: false,
// withBorder: false,
// height: 70.toScreenHeight,
// time: serviceRequestProvider.selectedTime,
// onTimePicker: (selectedTime) {
// if (selectedTime != null) {
// print('time selected $selectedTime');
// serviceRequestProvider.selectedTime = selectedTime;
// }
// },
// ),
// 8.height,
// ATimePicker(
// label: context.translation.endTime,
// hint: context.translation.select,
// withIcon: false,
// withBorder: false,
// height: 70.toScreenHeight,
// time: serviceRequestProvider.selectedTime,
// onTimePicker: (selectedTime) {
// if (selectedTime != null) {
// print('time selected $selectedTime');
// serviceRequestProvider.selectedTime = selectedTime;
// }
// },
// ),
// 8.height,
// SizedBox(
// width: double.infinity,
// height: 70.toScreenHeight,
// child: AppTimer(
// label: context.translation.workingHours,
// timer: TimerModel(),
// onPick: (TimerModel ?value){
//
// },
// decoration: BoxDecoration(
// color: AppColor.background(context),
// borderRadius: BorderRadius.circular(10),
// // boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
// ),
// // enabled: serviceRequestProvider.currentSelectedRequest.date == null,
// enabled: true,
// onChange: (timer) async {
// print('timer i got is ${timer.toString()}');
// return true;
// },
// ),
//
// ),
// 16.height,
// ],
// ),
// ),
// );
// }
// );
// }
// }

@ -1,180 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/common_widgets/stapper_widget/components/base_step.dart';
// import 'package:test_sa/common_widgets/stapper_widget/components/custom_line.dart';
// import 'package:test_sa/common_widgets/stapper_widget/custom_stepper.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.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/default_app_bar.dart';
//
// import 'components/asset_conditon_view.dart';
// import 'components/attachments_view.dart';
// import 'components/time_duration_view.dart';
//
// class WorkOrderFormView extends StatefulWidget {
// const WorkOrderFormView({Key? key}) : super(key: key);
//
// @override
// _WorkOrderFormViewState createState() => _WorkOrderFormViewState();
// }
// todo @delete
// class _WorkOrderFormViewState extends State<WorkOrderFormView> {
// int currentStep = 0;
// int activeStep = 0;
// int reachedStep = 0;
// int upperBound = 2;
// final formKey = GlobalKey<FormState>();
//
// @override
// void initState() {
// super.initState();
// }
//
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// backgroundColor: AppColor.neutral100,
// appBar: DefaultAppBar(title: context.translation.createWorkOrder),
// body: Column(
// children: [
// 16.height,
// CustomStepper(
// activeStep: activeStep,
// lineStyle: LineStyle(
// activeLineColor: AppColor.primary10,
// finishedLineColor: AppColor.primary10,
// defaultLineColor: AppColor.white40,
// lineThickness: 1,
// lineLength: 93.toScreenWidth,
// lineType: LineType.normal,
// ),
// internalPadding: 2.toScreenWidth,
// steps: [
// StepModel(customStep: customStepWidget(index: 0, stepIndex: 1), customTitle: customStepLabel(index: 1, label: context.translation.timeAndDuration)),
// StepModel(customStep: customStepWidget(index: 1, stepIndex: 2), customTitle: customStepLabel(index: 1, label: context.translation.assetsCondition)),
// StepModel(customStep: customStepWidget(index: 2, stepIndex: 3), customTitle: customStepLabel(index: 1, label: context.translation.attachmentsAcknowledge)),
// ],
// onStepReached: (index) => setState(() => activeStep = index),
// ),
// Expanded(
// child: Padding(
// padding: EdgeInsetsDirectional.symmetric(horizontal: 16.toScreenWidth, vertical: 25.toScreenHeight),
// child: getStepWidget(),
// )),
// bottomContainerWidget(),
// ],
// ),
// );
// }
//
// Widget bottomContainerWidget() {
// return Container(
// padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 16.toScreenHeight),
// color: AppColor.white10,
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// AppFilledButton(
// label: context.translation.cancel,
// loading: false,
// buttonColor: AppColor.white60,
// textColor: AppColor.black10,
// onPressed: () async {
// Navigator.pop(context);
// // await snapshot.updateRequest(user: userProvider.user, request: serviceRequestProvider.serviceRequest);
// // Navigator.pop(context, true);
// },
// ).expanded,
// 12.width,
// AppFilledButton(
// label: context.translation.next,
// buttonColor: AppColor.primary10,
// loading: false,
// onPressed: () {
// _incrementActiveStep();
// //TODO move to next step..
// },
// ).expanded,
// ],
// ));
// }
//
// void _incrementActiveStep() {
// setState(() {
// ++activeStep;
// if (reachedStep < activeStep) {
// reachedStep = activeStep;
// }
// });
// }
//
// Future<void> _navigateNext(ServiceRequestsProvider serviceRequestsProvider) async {
// if (activeStep < upperBound) {
// switch (activeStep) {
// case 0:
// // await _navigateNextStep(listingVm);
// break;
// case 1:
// break;
// case 2:
// _incrementActiveStep();
// break;
// }
// }
// }
//
// // Your onPressed code
//
// Widget customStepWidget({required int index, required int stepIndex}) {
// return CircleAvatar(
// backgroundColor: activeStep >= index ? AppColor.primary10 : AppColor.background(context),
// child: activeStep > index
// ? Icon(
// Icons.done,
// color: AppColor.white10,
// size: 26.toScreenHeight,
// )
// : activeStep == index
// ? Text(
// '0$stepIndex',
// style: const TextStyle(fontWeight: FontWeight.w500, color: AppColor.white10),
// textAlign: TextAlign.center,
// )
// : Text(
// '0$stepIndex',
// style: const TextStyle(color: AppColor.black20),
// ),
// );
// }
//
// Widget customStepLabel({required String label, required int index}) {
// return Column(
// children: [
// Text(
// label,
// textAlign: TextAlign.center,
// style: AppTextStyles.bodyText2.copyWith(color: AppColor.black20),
// ),
// ],
// );
// }
//
// /// Returns the previous button.
//
// Widget getStepWidget() {
// switch (activeStep) {
// case 0:
// return const TimeDurationView();
// case 1:
// return AssetConditionView();
// case 2:
// return AttachmentView();
// default:
// return const SizedBox();
// }
// }
// }

@ -1,65 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/ppm_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/models/ppm/ppm.dart';
// import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
// import 'package:test_sa/views/widgets/loaders/lazy_loading.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
// import 'package:test_sa/views/widgets/ppm/ppm_item.dart';
////todo @delete
// class PpmPage extends StatefulWidget {
// static const String id = "/ppm_page";
//
// const PpmPage({Key? key}) : super(key: key);
//
// @override
// _PpmPageState createState() => _PpmPageState();
// }
//
// class _PpmPageState extends State<PpmPage> with TickerProviderStateMixin {
// late PpmProvider _visitsProvider;
// late UserProvider _userProvider;
// late SettingProvider _settingProvider;
//
// @override
// Widget build(BuildContext context) {
// _visitsProvider = Provider.of<PpmProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
// _userProvider = Provider.of<UserProvider>(context);
//
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.preventiveMaintenance),
// body: SafeArea(
// child: LoadingManager(
// isLoading: _visitsProvider.isLoading,
// isFailedLoading: _visitsProvider.ppms == null,
// stateCode: _visitsProvider.stateCode,
// onRefresh: () async {
// _visitsProvider.reset();
// await _visitsProvider.getVisits(user: _userProvider.user!, host: _settingProvider.host!);
// },
// child: _visitsProvider.ppms?.isEmpty ?? true
// ? NoDataFound(message: context.translation.noVisitsFound)
// : LazyLoading(
// nextPage: _visitsProvider.nextPage,
// onLazyLoad: () async {
// await _visitsProvider.getVisits(user: _userProvider.user!, host: _settingProvider.host!);
// },
// child: ListView.builder(
// itemCount: _visitsProvider.ppms!.length,
// padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16),
// itemBuilder: (context, itemIndex) {
// Ppm ppm = _visitsProvider.ppms![itemIndex];
// return Padding(padding: const EdgeInsets.only(bottom: 8.0), child: PpmItem(ppm: ppm));
// },
// ),
// ),
// ),
// ),
// );
// }
// }

@ -1,64 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/device_transfer_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/views/widgets/device_trancfer/device_transfer_list.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
//
// import '../../../new_views/common_widgets/default_app_bar.dart';
//
// class TrackDeviceTransferPage extends StatefulWidget {
// static const String id = "/track-device-transfer";
//
// const TrackDeviceTransferPage({Key? key}) : super(key: key);
//
// @override
// State<TrackDeviceTransferPage> createState() => _TrackDeviceTransferPageState();
// }
//
// class _TrackDeviceTransferPageState extends State<TrackDeviceTransferPage> with TickerProviderStateMixin {
// late DeviceTransferProvider _deviceTransferProvider;
// late UserProvider _userProvider;
// late SettingProvider _settingProvider;
//// //todo @delete
// @override
// Widget build(BuildContext context) {
// _deviceTransferProvider = Provider.of<DeviceTransferProvider>(context);
// _userProvider = Provider.of<UserProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
//
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.deviceTransfer),
// body: SafeArea(
// child: LoadingManager(
// isLoading: _deviceTransferProvider.isLoading,
// isFailedLoading: _deviceTransferProvider.items == null,
// stateCode: _deviceTransferProvider.stateCode,
// onRefresh: () async {
// _deviceTransferProvider.reset();
// await _deviceTransferProvider.getRequests(user: _userProvider.user!, host: _settingProvider.host!);
// },
// child: Stack(
// children: [
// Column(
// children: [
// Expanded(
// child: DeviceTransferList(
// nextPage: _deviceTransferProvider.nextPage,
// onLazyLoad: () async {
// await _deviceTransferProvider.getRequests(user: _userProvider.user!, host: _settingProvider.host!);
// },
// items: _deviceTransferProvider.items!,
// ),
// ),
// ],
// ),
// ],
// ),
// ),
// ),
// );
// }
// }

@ -1,68 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/gas_refill_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/views/widgets/gas_refill/gas_refill_list.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
//
// import '../../../../new_views/common_widgets/default_app_bar.dart';
//
// class TrackGasRefillPage extends StatefulWidget {
// static const String id = "/track-gas-refill";
//// //todo @delete
// const TrackGasRefillPage({Key? key}) : super(key: key);
//
// @override
// State<TrackGasRefillPage> createState() => _TrackGasRefillPageState();
// }
//
// class _TrackGasRefillPageState extends State<TrackGasRefillPage> with TickerProviderStateMixin {
// GasRefillProvider? _gasRefillProvider;
// late UserProvider _userProvider;
// late SettingProvider _settingProvider;
// bool mostRecent = true;
//
// @override
// Widget build(BuildContext context) {
// if (_gasRefillProvider == null) {
// _gasRefillProvider = Provider.of<GasRefillProvider>(context);
// _gasRefillProvider!.reset();
// }
// _userProvider = Provider.of<UserProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
//
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.gasRefillRequest),
// body: SafeArea(
// child: LoadingManager(
// isLoading: _gasRefillProvider!.isLoading,
// isFailedLoading: _gasRefillProvider!.items == null,
// stateCode: _gasRefillProvider!.stateCode,
// onRefresh: () async {
// _gasRefillProvider!.reset();
// await _gasRefillProvider!.getRequests(user: _userProvider.user!, host: _settingProvider.host!, mostRecent: mostRecent);
// },
// child: Stack(
// children: [
// Column(
// children: [
// Expanded(
// child: GasRefillList(
// nextPage: _gasRefillProvider!.nextPage,
// onLazyLoad: () async {
// await _gasRefillProvider!.getRequests(user: _userProvider.user!, host: _settingProvider.host!, mostRecent: mostRecent);
// },
// items: _gasRefillProvider?.items ?? [],
// ),
// ),
// ],
// ),
// ],
// ),
// ),
// ),
// );
// }
// }

@ -1,112 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
// import 'package:test_sa/controllers/providers/api/user_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/enums/user_types.dart';
// import 'package:test_sa/models/user.dart';
// import 'package:test_sa/new_views/pages/gas_refill_request_form.dart';
// import 'package:test_sa/views/pages/device_transfer/create_device_transfer_request.dart';
// import 'package:test_sa/views/pages/user/requests/create_service_request_page.dart';
// // todo @delete file
// import '../app_style/app_color.dart';
//
// class AppFloatingActionButton extends StatefulWidget {
// const AppFloatingActionButton({Key? key}) : super(key: key);
//
// @override
// State<AppFloatingActionButton> createState() => _AppFloatingActionButtonState();
// }
//
// class _AppFloatingActionButtonState extends State<AppFloatingActionButton> {
// double turns = 0.0;
//
// void _rotate() {
// setState(() {
// if (turns == 0) {
// turns += 1.0 / 8.0;
// } else {
// turns = 0;
// }
// });
// }
//
// @override
// Widget build(BuildContext context) {
// User user = Provider.of<UserProvider>(context, listen: false).user!;
// final elements = [
// if (user.type == UsersTypes.normal_user) fabItem(context.translation.gasRefillRequest, "gas_refill_request", NewGasRefillRequestPage.routeName),
// if (user.type == UsersTypes.normal_user) const Divider().defaultStyle(context).paddingOnly(top: 16, bottom: 16),
// if (user.type == UsersTypes.normal_user) fabItem(context.translation.transferRequest, "transfer_request", CreateAssetTransferRequest.id),
// if (user.type == UsersTypes.normal_user) const Divider().defaultStyle(context).paddingOnly(top: 16, bottom: 16),
// if (user.type == UsersTypes.normal_user) fabItem(context.translation.serviceRequest, "service_request", CreateServiceRequestPage.id),
// ];
// const duration = Duration(milliseconds: 250);
// return elements.isEmpty
// ? const SizedBox.shrink()
// : Column(
// mainAxisAlignment: MainAxisAlignment.end,
// crossAxisAlignment: CrossAxisAlignment.end,
// mainAxisSize: MainAxisSize.min,
// children: [
// Visibility(
// visible: turns != 0,
// maintainAnimation: true,
// maintainState: true,
// child: AnimatedOpacity(
// opacity: turns != 0 ? 1 : 0,
// duration: duration,
// child: Container(
// width: MediaQuery.of(context).size.width * .66,
// padding: const EdgeInsets.all(16),
// decoration: ShapeDecoration(
// color: AppColor.background(context),
// shape: RoundedRectangleBorder(
// borderRadius: BorderRadius.circular(10),
// ),
// shadows: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 14, offset: const Offset(0, 0), spreadRadius: 0)],
// // shadows: const [BoxShadow(color: Color(0x0C000000), blurRadius: 10, offset: Offset(0, 0), spreadRadius: 0)],
// ),
// child: Column(mainAxisSize: MainAxisSize.min, children: elements),
// ),
// ),
// ),
// 16.height,
// FloatingActionButton(
// child: AnimatedRotation(
// turns: turns,
// duration: duration,
// child: const Icon(Icons.add),
// ),
// onPressed: () {
// _rotate();
// },
// ),
// ],
// );
// }
//
// Widget fabItem(String label, String iconName, routeName) {
// return Row(
// crossAxisAlignment: CrossAxisAlignment.center,
// children: [
// Expanded(
// flex: 4,
// child: label.heading5(context),
// ),
// // 4.width,
// Expanded(
// flex: 1,
// child: iconName.toSvgAsset(width: 24, height: 24, color: AppColor.blueStatus(context)),
// )
// ],
// ).onPress(() async {
// _rotate();
// await Navigator.of(context).pushNamed(routeName);
// Provider.of<AllRequestsProvider>(context, listen: false).getRequests();
// });
// }
// }

@ -1,217 +0,0 @@
// import 'dart:convert';
//
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
// import 'package:test_sa/controllers/notification/notification_manger.dart';
// import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
// import 'package:test_sa/controllers/providers/api/notifications_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/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/user.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
// import 'package:test_sa/dashboard_latest/widgets/progress_fragment.dart';
// import 'package:test_sa/dashboard_latest/widgets/recent_activites_fragment.dart';
// import 'package:test_sa/dashboard_latest/widgets/requests_fragment.dart';
// import 'package:test_sa/views/pages/user/notifications/notifications_page.dart';
//
// class DashboardPage extends StatefulWidget {
// final VoidCallback onDrawerPress; //todo @delete
//
// const DashboardPage({Key? key,required this.onDrawerPress}) : super(key: key);
//
// @override
// State<DashboardPage> createState() => _DashboardPageState();
// }
//
// class _DashboardPageState extends State<DashboardPage> {
// int _currentPage = 0;
//
// @override
// void initState() {
// super.initState();
// getAllRequests();
// }
//
// void getAllRequests() {
// WidgetsBinding.instance.addPostFrameCallback((_) {
// Provider.of<AllRequestsProvider>(context, listen: false).getRequests();
// Provider.of<NotificationsProvider>(context, listen: false).getSystemNotifications(user: Provider.of<UserProvider>(context, listen: false).user!, resetProvider: true);
// });
// }
//
// @override
// void dispose() {
// super.dispose();
// }
//
// bool isFCM = true;
//
// @override
// Widget build(BuildContext context) {
// if (isFCM) {
// FirebaseNotificationManger.initialized(context);
// NotificationManger.initialisation((notificationDetails) {
// FirebaseNotificationManger.handleMessage(context, json.decode(notificationDetails.payload!));
// }, (id, title, body, payload) async {});
//
// isFCM = false;
// }
// final User user = Provider.of<UserProvider>(context, listen: false).user!;
// final setting = Provider.of<SettingProvider>(context, listen: false);
// return Scaffold(
// appBar: AppBar(
// automaticallyImplyLeading: false,
// backgroundColor: Theme.of(context).scaffoldBackgroundColor,
// titleSpacing: 0,
// title: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// crossAxisAlignment: CrossAxisAlignment.center,
// children: [
// Consumer<UserProvider>(builder: (context, snapshot, _) {
// return CircleAvatar(
// radius: 24,
// backgroundColor: context.isDark ? AppColor.neutral50 : AppColor.neutral40,
// child: Padding(
// padding: const EdgeInsets.all(1), // Border radius
// child: ClipOval(
// child: snapshot.profileImage != null
// ? Image.file(snapshot.profileImage!)
// : (snapshot.user?.profilePhotoName?.isNotEmpty ?? false)
// ? Image.network(snapshot.user!.profilePhotoName!)
// : const Icon(Icons.person, size: 24, color: Colors.white),
// ),
// ),
// );
// }).onPress(widget.onDrawerPress),
// const Spacer(),
// Container(
// padding: const EdgeInsets.fromLTRB(12, 6, 6, 6),
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(8),
// color: AppColor.background(context),
// boxShadow: const [
// BoxShadow(
// color: Color(0x07000000),
// blurRadius: 14,
// offset: Offset(0, 0),
// spreadRadius: 0,
// )
// ],
// ),
// child: DropdownButton<AssetGroup>(
// value: setting.assetGroup,
// //iconSize: 24,
// isDense: true,
// icon: const Icon(Icons.keyboard_arrow_down),
// elevation: 8,
// // dropdownColor: Colors.amber,
// borderRadius: BorderRadius.circular(8),
// style: TextStyle(color: Theme.of(context).primaryColor),
// underline: const SizedBox.shrink(),
// onChanged: (newValue) {
// if (setting.assetGroup != newValue) {
// Provider.of<SettingProvider>(context, listen: false).setAssetGroup(newValue);
// setState(() {});
// getAllRequests();
// }
// },
// items: user.assetGroups!.map<DropdownMenuItem<AssetGroup>>((value) {
// return DropdownMenuItem<AssetGroup>(
// value: value,
// child: Text(
// value.name ?? "",
// style: Theme.of(context).textTheme.bodyLarge,
// ),
// );
// }).toList(),
// ),
// ),
// 16.width,
// Stack(
// alignment: Alignment.topRight,
// children: [
// Icon(Icons.notifications, color: context.isDark ? AppColor.neutral30 : AppColor.neutral20, size: 30).paddingOnly(top: 6, end: 0),
// // todo @sikander will add count for unread notifications
// // Positioned(
// // top: 0,
// // right: 0,
// // child: Container(
// // padding: const EdgeInsets.all(4),
// // decoration: const ShapeDecoration(
// // color: Color(0xFFD02127),
// // shape: CircleBorder(),
// // ),
// // child: Text("", style: AppTextStyles.bodyText),
// // ),
// // )
// ],
// ).onPress(() {
// Navigator.of(context).pushNamed(NotificationsPage.id);
// }),
// ],
// ).paddingOnly(start: 16, end: 16),
// ),
// body: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.welcome,
// style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// user.username ?? "",
// style: AppTextStyles.heading2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50, fontWeight: FontWeight.w600),
// ),
// 24.height,
// Row(
// children: [
// indicatorView(0),
// 3.width,
// indicatorView(1),
// 3.width,
// indicatorView(2),
// 10.width,
// "0${_currentPage + 1}/03".tinyFont(context).custom(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral60),
// ],
// ),
// ],
// ).paddingOnly(start: 16, end: 16, top: 8, bottom: 8),
// PageView(
// onPageChanged: (index) => setState(() => _currentPage = index),
// children: [
// const RequestsFragment(),
// ProgressFragment(),
// const RecentActivitiesFragment(),
// ],
// ).expanded,
// ],
// ),
// );
// }
//
// Widget indicatorView(int index) {
// bool isActive = _currentPage == index;
//
// return AnimatedContainer(
// duration: const Duration(milliseconds: 250),
// width: (isActive ? 30 : 12).toScreenWidth,
// height: 9.toScreenHeight,
// decoration: BoxDecoration(
// color: isActive
// ? AppColor.greenStatus(context)
// : context.isDark
// ? AppColor.neutral20
// : AppColor.neutral40,
// borderRadius: BorderRadius.circular(8)),
// );
// }
// }

@ -1,145 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
//
// class AColors {
// AColors._();
//
// static const Color white = Color(0xffffffff);
// static const Color black = Color(0xff000000);
// static const Color grey3A = Color(0xff2e303a);
// static const Color grey = Color(0xffe1e7e7);
// static const green = Colors.green;
// static const Color orange = Colors.orange;
// static const Color deepOrange = Colors.deepOrangeAccent;
// static const Color red = Colors.red;
// static const Color deepRed = Color(0xFFD32F2F);
// static const Color scaffoldBackgroundColor = Color(0xffffffff);
// static const Color secondaryColor = Color(0xff111427);
// static const Color primaryColor = Color(0xff5bb0da);
// static const Color cyan = Color(0xff4A8DB7);
// static const Color onPrimaryColor = Color(0xffffffff);
// static Color inputFieldBackgroundColor = Color(0xfff5f5f5);
// static Color greyEF = Color(0xffEFEFEF);
//
// static Color statusYellow = const Color(0xFF886300);
// static Color statusYellowLight = const Color(0xFFFFEDBC);
// static Color statusGreen = const Color(0xFF62BE96);
// static Color statusGreenLight = const Color(0xFF62BE96);
// static Color statusRed = const Color(0xFF8C0409);
// static Color statusRedLight = const Color(0xFFFFDBDC);
// static Color statusBlue = AppColor.primary50;
// // static Color statusBlueLight = const Color(0xFFA2E2F8);
// static Color statusDefault = const Color(0xFF3B3D4A);
//
// static Color getRequestStatusTextColorByName(String status) {
// switch ((status ?? "").toLowerCase()) {
// case "in progress":
// return AColors.statusYellow;
// case "high priority":
// return AColors.statusRed;
// // case "low priority":
// // return AColors.statusGreen;
// default:
// return AColors.white;
// }
// }
//
// static Color getRequestStatusColorByName(String status) {
// switch ((status ?? "").toLowerCase()) {
// case "medium":
// return AColors.statusBlue.withOpacity(0.7);
// case "in progress":
// return AColors.statusYellowLight;
// case "complete":
// return AColors.statusGreenLight;
// case "closed":
// return AColors.statusGreenLight;
// case "high priority":
// return AColors.statusRedLight;
// case "low priority":
// return AColors.statusGreenLight;
// case "open":
// return AColors.statusBlue.withOpacity(0.7);
// default:
// return AColors.statusDefault;
// }
// }
//
// static Color getRequestStatusColor(int id) {
// switch (id) {
// case 1:
// return AColors.statusBlue.withOpacity(0.7);
// case 2:
// return AColors.statusYellowLight;
// case 3:
// return AColors.statusGreenLight;
// case 4:
// return AColors.statusRedLight;
// case 6:
// return AColors.statusGreenLight;
// case 5:
// return AColors.statusGreenLight;
// case 8:
// return AColors.statusGreenLight;
// case 9:
// return AColors.orange;
// default:
// return AColors.statusDefault;
// }
// }
//
// static Color getRequestStatusTextColor(int id) {
// switch (id) {
// case 2:
// return AColors.statusYellow;
// case 3:
// return AColors.white;
// case 4:
// return AColors.deepRed;
// case 6:
// return AColors.green;
// case 5:
// return AColors.white;
// case 8:
// return AColors.green;
// case 9:
// return AColors.orange;
// default:
// return AColors.white;
// }
// }
//
// static Color getGasStatusColor(int id) {
// switch (id) {
// case 0:
// return AColors.orange;
// case 1:
// return AColors.green;
// default:
// return AColors.statusDefault;
// }
// }
//
// static Color getPriorityStatusTextColor(int id) {
// switch (id) {
// case 81:
// return AColors.white;
// case 82:
// return AColors.statusRed;
// default:
// return AColors.statusDefault;
// }
// }
//
// static Color getPriorityStatusColor(int id) {l
// switch (id) {
// case 81:
// return AColors.statusGreenLight;
// case 82:
// return AColors.statusRedLight;
// default:
// return AColors.statusDefault;
// }
// }
// }

@ -1,162 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:fluttertoast/fluttertoast.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/api_routes/http_status_manger.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/controllers/validator/validator.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/models/user.dart';
// import 'package:test_sa/new_views/pages/land_page/land_page.dart';
// import 'package:test_sa/views/app_style/sizing.dart';
// import 'package:test_sa/views/widgets/app_text_form_field.dart';
// import 'package:test_sa/views/widgets/buttons/app_button.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
//
// class Login extends StatefulWidget {
// static final String id = "/login";
//
// @override
// _LoginState createState() => _LoginState();
// }
//
// class _LoginState extends State<Login> {
// UserProvider _userProvider;
// SettingProvider _settingProvider;
// User _user = User();
// bool _obscurePassword = true;
// bool _firstTime = true;
// double _height;
// double _width;
// String _payload;
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
//
// @override
// Widget build(BuildContext context) {
// _userProvider = Provider.of<UserProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
// _height = MediaQuery.of(context).size.height;
// _width = MediaQuery.of(context).size.width;
//
// return Scaffold(
// key: _scaffoldKey,
// body: SafeArea(
// child: LoadingManager(
// isLoading: _userProvider.isLoading || !_settingProvider.isLoaded,
// isFailedLoading: false,
// stateCode: 200,
// onRefresh: () async {},
// child: Form(
// key: _formKey,
// child: SingleChildScrollView(
// //padding: EdgeInsets.symmetric(horizontal: 32),
// child: Column(
// children: [
// //AppNameBar(),
// SizedBox(
// height: MediaQuery.of(context).size.height / 7,
// ),
// Hero(
// tag: "logo",
// child: Image(
// height: _height / 6,
// fit: BoxFit.contain,
// image: AssetImage("assets/images/logo.png"),
// ),
// ),
// Padding(
// padding: EdgeInsets.symmetric(horizontal: 24 * AppStyle.getScaleFactor(context), vertical: 24 * AppStyle.getScaleFactor(context)),
// child: Column(
// children: [
// SizedBox(
// height: 24 * AppStyle.getScaleFactor(context),
// ),
// ATextFormField(
// initialValue: _user?.userName,
// hintText: context.translation.name,
// textAlign: TextAlign.left,
// style: Theme.of(context).textTheme.bodyText1,
// prefixIconData: Icons.account_circle,
// validator: (value) => Validator.hasValue(value) ? null : context.translation.nameValidateMessage,
// textInputType: TextInputType.name,
// onSaved: (value) {
// _user.userName = value;
// },
// ),
// SizedBox(height: 12),
// ATextFormField(
// initialValue: _user?.password,
// hintText: context.translation.password,
// obscureText: _obscurePassword,
// style: Theme.of(context).textTheme.bodyText1,
// prefixIconData: Icons.vpn_key_sharp,
// textAlign: TextAlign.left,
// validator: (value) => Validator.isValidPassword(value) ? null : context.translation.passwordValidateMessage,
// showPassword: () {
// _obscurePassword = !_obscurePassword;
// setState(() {});
// },
// onSaved: (value) {
// _user.password = value;
// },
// ),
// SizedBox(
// height: 32 * AppStyle.getScaleFactor(context),
// ),
// AButton(
// text: context.translation.signIn,
// onPressed: () async {
// if (!_formKey.currentState.validate()) return;
// _formKey.currentState.save();
// int status = await _userProvider.login(
// user: _user,
// );
// if (status >= 200 && status < 300) {
// if (_userProvider.user.isAuthenticated ?? false) {
// _settingProvider.setUser(_userProvider.user);
// Navigator.of(context).pushNamed(LandPage.routeName);
// } else {
// Fluttertoast.showToast(msg: _userProvider.user.message);
// }
//
// // if (_userProvider.user.isActive)
//
// // else
// // Fluttertoast.showToast(msg: context.translation.activationAlert);
// } else {
// if (status >= 400 && status < 500) return;
//
// String errorMessage = status == 400 || _userProvider.user?.userName == null
// ? context.translation.wrongEmailOrPassword
// : HttpStatusManger.getStatusMessage(status: status, subtitle: context.translation);
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(errorMessage),
// ));
// }
// },
// ),
// // SizedBox(
// // height: 140 * AppStyle.getScaleFactor(context),
// // ),
// // AOutLinedButton(
// // text: context.translation.signUp,
// // //color: AColors.cyan,
// // onPressed: () {
// // Navigator.of(context).pushNamed(Register.id);
// // },
// // ),
// const SizedBox(height: 32),
// ],
// ),
// ),
// ],
// ),
// ),
// ),
// ),
// ),
// );
// }
// }

@ -1,213 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:fluttertoast/fluttertoast.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/api_routes/http_status_manger.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/controllers/validator/validator.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/models/hospital.dart';
// import 'package:test_sa/models/user.dart';
// import 'package:test_sa/views/widgets/app_text_form_field.dart';
// import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
// import 'package:test_sa/views/widgets/buttons/app_button.dart';
// import 'package:test_sa/views/widgets/hospitals/hospital_button.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
//
// class Register extends StatefulWidget {
// static final String id = "/register";
//
// @override
// _RegisterState createState() => _RegisterState();
// }
//
// class _RegisterState extends State<Register> {
// UserProvider _userProvider;
// SettingProvider _settingProvider;
// double _width;
// double _height;
// User _user = User();
// bool _obscurePassword = true;
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
//
// @override
// Widget build(BuildContext context) {
// _userProvider = Provider.of<UserProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
// _width = MediaQuery.of(context).size.width;
// _height = MediaQuery.of(context).size.height;
//
// return Scaffold(
// key: _scaffoldKey,
// body: LoadingManager(
// isLoading: _userProvider.isLoading,
// isFailedLoading: false,
// stateCode: 200,
// onRefresh: () async {},
// child: SafeArea(
// child: Stack(
// children: [
// Form(
// key: _formKey,
// child: ListView(
// padding: const EdgeInsets.all(20),
// children: [
// //AppNameBar(),
// //SizedBox(height: 16,),
// Hero(
// tag: "logo",
// child: Padding(
// padding: const EdgeInsets.all(16),
// child: Image(
// height: _height / 6,
// image: AssetImage("assets/images/logo.png"),
// ),
// ),
// ),
// ATextFormField(
// initialValue: _user.userName,
// hintText: context.translation.name,
// prefixIconData: Icons.account_circle,
// style: Theme.of(context).textTheme.headline6,
// validator: (value) => Validator.hasValue(value) ? null : context.translation.nameValidateMessage,
// onSaved: (value) {
// _user.userName = value;
// },
// ),
// const SizedBox(height: 12),
// ATextFormField(
// initialValue: _user.email,
// hintText: context.translation.email,
// prefixIconData: Icons.email,
// textInputType: TextInputType.emailAddress,
// style: Theme.of(context).textTheme.headline6,
// validator: (value) => Validator.isEmail(value) ? null : context.translation.emailValidateMessage,
// onSaved: (value) {
// _user.email = value;
// },
// ),
// const SizedBox(height: 12),
// ATextFormField(
// initialValue: _user.password,
// hintText: context.translation.password,
// prefixIconData: Icons.vpn_key_sharp,
// style: Theme.of(context).textTheme.headline6,
// obscureText: _obscurePassword,
// validator: (value) => Validator.isValidPassword(value) ? null : context.translation.passwordValidateMessage,
// showPassword: () {
// _obscurePassword = !_obscurePassword;
// setState(() {});
// },
// onSaved: (value) {
// _user.password = value;
// },
// onChange: (value) {
// _user.password = value;
// },
// ),
// const SizedBox(height: 12),
// ATextFormField(
// initialValue: _user.password,
// prefixIconData: Icons.vpn_key_sharp,
// hintText: context.translation.confirmPassword,
// style: Theme.of(context).textTheme.headline6,
// obscureText: _obscurePassword,
// validator: (value) => _user.password == value ? null : context.translation.confirmPasswordValidateMessage,
// showPassword: () {
// _obscurePassword = !_obscurePassword;
// setState(() {});
// },
// ),
// const SizedBox(height: 12),
// HospitalButton(
// hospital: Hospital(id: _user.clientId, name: _user.clientName),
// onHospitalPick: (hospital) {
// _user.clientId = hospital.id;
// _user.clientName = hospital.name;
// setState(() {});
// },
// ),
// // const SizedBox(height: 12),
// // DepartmentButton(
// // department: Department(id: _user.departmentId, name: _user.departmentName),
// // onDepartmentPick: (department) {
// // _user.departmentId = department.id;
// // _user.departmentName = department.name;
// // setState(() {});
// // },
// // ),
// const SizedBox(height: 12),
// ATextFormField(
// initialValue: _user.phoneNumber,
// hintText: context.translation.phoneNumber,
// style: Theme.of(context).textTheme.headline6,
// prefixIconData: Icons.phone_android,
// validator: (value) => Validator.isPhoneNumber(value) ? null : context.translation.phoneNumberValidateMessage,
// textInputType: TextInputType.phone,
// onSaved: (value) {
// _user.phoneNumber = value;
// },
// ),
// SizedBox(height: 8),
// // ATextFormField(
// // initialValue: _user.whatsApp,
// // hintText: context.translation.whatsApp,
// // style: Theme.of(context).textTheme.headline6,
// // prefixIconData: FontAwesomeIcons.whatsapp,
// // prefixIconSize: 36,
// // validator: (value) => Validator.isPhoneNumber(value) ? null : context.translation.phoneNumberValidateMessage,
// // textInputType: TextInputType.phone,
// // onSaved: (value) {
// // _user.whatsApp = value;
// // },
// // ),
// const SizedBox(height: 12),
// AButton(
// text: context.translation.signUp,
// onPressed: () async {
// if (!_formKey.currentState.validate()) return;
// _formKey.currentState.save();
// if (_user.clientId == null) {
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(context.translation.hospitalRequired),
// ));
// return;
// }
// if (_user.departmentId == null) {
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(context.translation.uniteRequired),
// ));
// return;
// }
// int status = await _userProvider.register(
// user: _user,
// host: _settingProvider.host,
// );
// if (status >= 200 && status < 300) {
// Fluttertoast.showToast(msg: context.translation.activationAlert);
// Navigator.of(context).pop();
// } else {
// String errorMessage = status == 402
// ? context.translation.nameExist
// : status == 401
// ? context.translation.emailExist
// : HttpStatusManger.getStatusMessage(status: status, subtitle: context.translation);
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(
// content: Text(errorMessage),
// ));
// }
// },
// ),
// ],
// ),
// ),
// ABackButton(),
// ],
// ),
// ),
// ),
// );
// }
// }

@ -1,622 +0,0 @@
// import 'dart:convert';
// import 'dart:io';
//
// import 'package:flutter/material.dart';
// import 'package:fluttertoast/fluttertoast.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_assistants_employee_provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_types_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/device/asset.dart';
// import 'package:test_sa/models/lookup.dart';
// import 'package:test_sa/models/new_models/assigned_employee.dart';
// import 'package:test_sa/models/new_models/assistant_employee.dart';
// import 'package:test_sa/models/service_request/search_work_order.dart';
// import 'package:test_sa/models/service_request/service_report.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/default_app_bar.dart';
// import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart';
// import 'package:test_sa/providers/service_request_providers/loan_availability_provider.dart';
// import 'package:test_sa/providers/work_order/vendor_provider.dart';
// import 'package:test_sa/views/pages/user/requests/add_supplier_engineer_bottom_sheet.dart';
// import 'package:test_sa/views/widgets/e_signature/e_signature.dart';
// import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
// import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
// import 'package:test_sa/views/widgets/loaders/app_loading.dart';
//
// import '../../../attachment.dart';
// import '../../../controllers/api_routes/http_status_manger.dart';
// import '../../../controllers/providers/api/parts_provider.dart';
// import '../../../controllers/providers/api/status_drop_down/report/service_report_fault_description_provider.dart';
// import '../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart';
// import '../../../controllers/providers/api/user_provider.dart';
// import '../../../models/service_request/spare_parts.dart';
// import '../../../models/service_request/supp_engineer_work_orders.dart';
// import '../../../models/service_request/supplier_details.dart';
// import '../../../models/service_request/wo_call_request.dart';
// import '../../../new_views/common_widgets/app_lazy_loading.dart';
// import '../../../new_views/common_widgets/app_text_form_field.dart';
// import '../../../new_views/common_widgets/single_item_drop_down_menu.dart';
// import '../../../providers/loading_list_notifier.dart';
// import '../../../providers/work_order/reason_provider.dart';
// import '../../widgets/date_and_time/date_picker.dart';
// import '../../widgets/loaders/loading_manager.dart';
// import '../../widgets/status/report/service_report_assistant_employee_menu.dart';
// import '../../widgets/status/report/service_report_fault_description.dart';
// import '../../widgets/status/report/service_report_last_call.dart';
// import '../../widgets/status/report/service_report_repair_location.dart';
// import '../../widgets/timer/app_timer.dart';
// import '../user/requests/work_order/part_no_button.dart';
//
// class CreateSubWorkOrderPage extends StatefulWidget {
// static const id = "/CreateSubWorkOrder";
// final SearchWorkOrder? workOrder;
//// //todo @delete
// const CreateSubWorkOrderPage({this.workOrder, Key? key}) : super(key: key);
//
// @override
// State<CreateSubWorkOrderPage> createState() => _CreateSubWorkOrderPageState();
// }
//
// class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// late SearchWorkOrder _subWorkOrders;
// late ServiceReport _serviceReport;
// late PartsProvider _partsProvider;
// final List<File> _files = [];
// List<SparePart> _spareParts = [];
// bool _isLoading = false;
// bool _showVendorFields = false;
// SuppEngineerWorkOrders? engineer;
// SupplierDetails? initialSupplier;
// final TextEditingController _workPreformedController = TextEditingController();
// final TextEditingController _partQtyController = TextEditingController();
//
// @override
// void initState() {
// _subWorkOrders = SearchWorkOrder(
// assignedEmployee: widget.workOrder?.callRequest?.assignedEmployee,
// callRequest: CallRequest(id: widget.workOrder?.callRequest?.id),
// currentSituation: null,
// supplier: null,
// parentWOId: widget.workOrder?.id,
// );
// _serviceReport = ServiceReport(id: widget.workOrder?.id, assetType: widget.workOrder?.assetType, equipmentStatus: widget.workOrder?.equipmentStatus);
// _isLoading = true;
// super.initState();
// if (context.mounted) {
// Provider.of<ServiceReportAssistantsEmployeeProvider>(context, listen: false).reset();
// Provider.of<ReasonProvider>(context, listen: false).reset();
// Provider.of<ReasonProvider>(context, listen: false).serviceRequestId = widget.workOrder?.callRequest!.id.toString();
// }
// }
//
// late ServiceStatusProvider assetTypesProvider;
// CallRequest? _callRequestForWorkOrder;
//
// Future getAssetType() async {
// Provider.of<ServiceReportLastCallsProvider>(context, listen: false).reset();
// final serviceRequestProvider = Provider.of<ServiceRequestsProvider>(context);
// Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false).reset();
// assetTypesProvider = Provider.of<ServiceStatusProvider>(context, listen: false);
// _callRequestForWorkOrder = await serviceRequestProvider.getCallRequestForWorkOrder(callId: widget.workOrder!.callRequest!.id!.toString());
// if (_subWorkOrders.parentWOId != null) {
// ServiceReport? subWoDetails = await serviceRequestProvider.getSubWorkOrderDetails(parentId: _subWorkOrders.parentWOId.toString());
// if (subWoDetails != null) {
// _subWorkOrders.copyDetails(subWoDetails);
// _serviceReport.equipmentStatus = subWoDetails.equipmentStatus;
// _serviceReport.reason = subWoDetails.reason;
// initialSupplier = subWoDetails.supplier;
// _serviceReport.faultDescription = subWoDetails.faultDescription;
// _subWorkOrders.visitDate = subWoDetails.visitDate;
// _subWorkOrders.sparePartsWorkOrders = subWoDetails.sparePartsWorkOrders;
// }
// }
// await assetTypesProvider.getTypes();
// _subWorkOrders.assetType = assetTypesProvider.statuses?.firstWhere(
// (element) => element.value == _callRequestForWorkOrder?.assetType,
// orElse: null,
// );
// if (checkVendorFieldsVisibility(_subWorkOrders.calllastSituation)) {
// if (_subWorkOrders.suppEngineerWorkOrders?.isNotEmpty ?? false) {
// engineer = _subWorkOrders.suppEngineerWorkOrders?.last;
// engineer?.id = engineer?.supplierContactId;
// }
// _subWorkOrders.supplier ??= SupplierDetails(id: _subWorkOrders.supplier?.id);
// }
// _spareParts = await _partsProvider.getPartsList(assetId: widget.workOrder?.callRequest?.asset?.id);
// setState(() {
// _isLoading = false;
// });
// }
//
// Asset? loanAvailabilityAsset;
//
// @override
// void dispose() {
// _workPreformedController.dispose();
// _partQtyController.dispose();
// super.dispose();
// }
//
// @override
// Widget build(BuildContext context) {
// final user = Provider.of<UserProvider>(context).user!;
// final isCurrentUserIsAssistantEmp = (user.userID != widget.workOrder?.assignedEmployee?.id);
// if (isCurrentUserIsAssistantEmp) {
// // _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)];
// _subWorkOrders.assistantEmployees = [AssistantEmployees(id: 0, user: AssignedEmployee(id: user.userID, name: user.username))];
// } else {}
// if (_callRequestForWorkOrder == null) {
// _partsProvider = Provider.of<PartsProvider>(context);
// getAssetType();
// }
//
// bool disablePart = _subWorkOrders.calllastSituation?.value == 12;
//
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.createSubWorkOrder),
// body: SafeArea(
// child: _isLoading
// ? const ALoading()
// : Column(
// children: [
// SingleChildScrollView(
// child: Form(
// key: _formKey,
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.stretch,
// children: [
// Card(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.stretch,
// children: [
// (widget.workOrder?.callRequest?.asset?.site?.custName ?? "").heading5(context),
// 8.height,
// "${context.translation.assetNo}: ${widget.workOrder?.callRequest?.asset?.assetNumber ?? ""}".bodyText(context),
// "${context.translation.callId}: ${widget.workOrder?.callRequest?.id}".bodyText(context),
// ],
// ).paddingAll(16),
// ),
// // WorkOrderDetails(item: widget.workOrder, assetType: _subWorkOrders?.assetType),
// 8.height,
// ADatePicker(
// label: context.translation.returnToService,
// date: DateTime.tryParse(_subWorkOrders.visitDate ?? ""),
// formatDateWithTime: true,
// onDatePicker: (selectedDate) {
// showTimePicker(
// context: context,
// initialTime: TimeOfDay.now(),
// ).then((selectedTime) {
// if (selectedTime != null) {
// DateTime selectedDateTime = DateTime(
// selectedDate.year,
// selectedDate.month,
// selectedDate.day,
// selectedTime.hour,
// selectedTime.minute,
// );
// if (_subWorkOrders.visitDate != null && selectedDateTime.isBefore(DateTime.parse(_subWorkOrders.visitDate!))) {
// "Visit Date time must be greater then previous date".showToast;
// return;
// }
//
// setState(() {
// _subWorkOrders.visitDate = selectedDateTime.toIso8601String();
// });
// }
// });
// },
// ),
// 8.height,
// AppTimer(
// label: context.translation.workingHours,
// timer: _subWorkOrders.timer,
// enabled: _subWorkOrders.timer?.endAt == null,
// onChange: (timer) async {
// _subWorkOrders.timer = timer;
// if (timer.startAt != null && timer.endAt != null) {
// if (timer.durationInSecond != 0) {
// _subWorkOrders.workingHours = num.tryParse((((timer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2) ?? "0");
// } else {
// timer.durationInSecond = (timer.endAt!.difference(timer.startAt!)).inSeconds;
// String workingHours = (((timer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2);
// _subWorkOrders.workingHours = num.tryParse(workingHours ?? "0");
// }
// }
// return true;
// },
// ),
// 8.height,
// LoadingManager(
// isLoading: assetTypesProvider.isLoading,
// isFailedLoading: assetTypesProvider.statuses == null,
// stateCode: assetTypesProvider.stateCode,
// onRefresh: () async {
// assetTypesProvider.reset();
// await assetTypesProvider.getTypes();
// _subWorkOrders.assetType = assetTypesProvider.statuses?.firstWhere(
// (element) => element.value == _serviceReport.callRequest?.assetType,
// orElse: null,
// );
// },
// child: AppTextFormField(
// labelText: context.translation.assetType,
// initialValue: _subWorkOrders.assetType?.name,
// textAlign: TextAlign.center,
// enable: false,
// style: Theme.of(context).textTheme.titleMedium,
// ),
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, ReasonProvider>(
// context: context,
// title: context.translation.reason,
// initialValue: _subWorkOrders.reason,
// onSelect: (value) {
// if (value != null) {
// _subWorkOrders.reason = value;
// }
// },
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, EquipmentStatusProvider>(
// context: context,
// title: context.translation.equipmentStatus,
// initialValue: _subWorkOrders.equipmentStatus,
// onSelect: (value) {
// if (value != null) {
// _subWorkOrders.equipmentStatus = value;
// }
// },
// ),
// 8.height,
// ServiceReportLastCallsMenu(
// report: _serviceReport,
// title: context.translation.callLastSituation,
// parentId: widget.workOrder?.id?.toString(),
// onSelect: (status) {
// _serviceReport.calllastSituation = status;
// if (checkVendorFieldsVisibility(status)) {
// _subWorkOrders.supplier ??= SupplierDetails(id: _subWorkOrders.supplier?.id);
// engineer = null;
// } else {
// _subWorkOrders.supplier = initialSupplier;
// }
// if (status?.value == 12 || _subWorkOrders.calllastSituation?.value == 12) {
// _subWorkOrders.calllastSituation = status;
// _subWorkOrders.mrNumber = null;
// } else {
// _subWorkOrders.calllastSituation = status;
// }
// setState(() {});
// },
// ),
// if (_subWorkOrders.calllastSituation?.value == 12) const SizedBox(height: 8),
// if (_subWorkOrders.calllastSituation?.value == 12)
// AppTextFormField(
// labelText: context.translation.mrNumber,
// initialValue: _subWorkOrders.mrNumber,
// onSaved: (value) {
// _subWorkOrders.mrNumber = value;
// },
// ),
// if (_showVendorFields) const SizedBox(height: 8),
// if (_showVendorFields)
// SingleItemDropDownMenu<SupplierDetails, VendorProvider>(
// context: context,
// title: context.translation.supplier,
// initialValue: _subWorkOrders.supplier ?? initialSupplier,
// showAsBottomSheet: true,
// onSelect: (supplier) {
// if (supplier != null) {
// _subWorkOrders.supplier = supplier;
// // log(_subWorkOrders.supplier?.suppPersons?.map((e) => e.personName)?.toString());
// setState(() {});
// }
// },
// ),
// if (_showVendorFields) const SizedBox(height: 8),
// if (_showVendorFields)
// Row(
// children: [
// SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
// context: context,
// title: context.translation.supplierEngineer,
// enabled: _subWorkOrders.supplier?.suppPersons?.isNotEmpty ?? false,
// staticData: _subWorkOrders.supplier?.suppPersons,
// showAsBottomSheet: true,
// initialValue: engineer == null ? null : SuppPersons.fromJson(engineer!.toJson()),
// onSelect: (suppPerson) {
// if (suppPerson != null) {
// engineer = SuppEngineerWorkOrders.fromJson(suppPerson.toJson());
// // engineer = SuppEngineerWorkOrders(
// // id: suppPerson?.supplierId,
// // supplierContactId: suppPerson?.id,
// // personName: suppPerson?.personName,
// // contact: suppPerson?.contact,
// // externalEngCode: suppPerson?.externalEngCode,
// // email: suppPerson?.email,
// // );
// setState(() {});
// }
// },
// ).expanded,
// 8.width,
// Container(
// height: 60.toScreenHeight,
// width: 60.toScreenWidth,
// decoration: BoxDecoration(
// color: _subWorkOrders.supplier?.suppliername == null ? AppColor.neutral40 : AppColor.background(context),
// borderRadius: BorderRadius.circular(10),
// boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
// ),
// child: Icon(
// Icons.add,
// color: context.isDark ? null : AppColor.neutral60,
// ),
// ).onPress(_subWorkOrders.supplier?.suppliername == null
// ? null
// : () async {
// SuppEngineerWorkOrders suppEngineer = (await showModalBottomSheet(
// context: context,
// useSafeArea: true,
// isScrollControlled: true,
// backgroundColor: Colors.transparent,
// builder: (context) => AddSupplierEngineerBottomSheet(_subWorkOrders.supplier!.id!.toInt()),
// )) as SuppEngineerWorkOrders;
// _subWorkOrders.supplier?.suppPersons ??= [];
// _subWorkOrders.supplier?.suppPersons?.add(SuppPersons.fromJson(suppEngineer.toJson()));
// engineer = suppEngineer;
// setState(() {});
// }),
// ],
// ),
// 8.height,
// ServiceReportFaultDescription(
// requestId: widget.workOrder?.callRequest?.id?.toString(),
// initialValue: _subWorkOrders.faultDescription,
// onSelect: (status) {
// _subWorkOrders.faultDescription = status;
// _workPreformedController.text = _subWorkOrders.faultDescription?.workPerformed ?? "";
// },
// ),
// 8.height,
// AppTextFormField(
// labelText: context.translation.solution,
// initialValue: _subWorkOrders.faultDescription?.workPerformed,
// textAlign: TextAlign.center,
// enable: false,
// controller: _workPreformedController,
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>(
// context: context,
// title: context.translation.loanAvailability,
// initialValue: _subWorkOrders.loanAvailablity,
// onSelect: (status) {
// if (status != null) {
// setState(() {
// _subWorkOrders.loanAvailablity = status;
// if (_subWorkOrders.loanAvailablity?.value != 1) {
// loanAvailabilityAsset = null;
// _subWorkOrders.assetLoan = null;
// }
// });
// }
// },
// ),
// if (_subWorkOrders.loanAvailablity?.value == 1) 8.height,
// if (_subWorkOrders.loanAvailablity?.value == 1)
//
// PickAsset(
// device: loanAvailabilityAsset, // ?? _serviceReport.device,
// onPickAsset: (asset) {
// _subWorkOrders.assetLoan = AssetInfo.fromJson(asset.toJson());
// setState(() {
// loanAvailabilityAsset = asset;
// });
// },
// ),
// 8.height,
// ServiceReportAssistantEmployeeMenu(
// title: context.translation.assignAssistant,
// assetId: widget.workOrder!.callRequest!.asset!.id!.toInt(),
//
// initialValue: (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false) ? _subWorkOrders.assistantEmployees?.first : null,
// // initialValue: !isCurrentAssigned
// // ? (widget.workOrder.assistantEmployees?.first)
// // : (_subWorkOrders.assistantEmployees?.isNotEmpty ?? false)
// // ? _subWorkOrders.assistantEmployees?.first
// // : null,
// enable: !isCurrentUserIsAssistantEmp,
// onSelect: (employee) {
// if (employee == null) {
// _subWorkOrders.assistantEmployees = [];
// } else {
// _subWorkOrders.assistantEmployees = [employee.copyWith(id: 0)];
// }
// },
// ),
// 8.height,
// ServiceReportRepairLocation(
// label: context.translation.repairLocation,
// initialValue: _subWorkOrders.repairLocation,
// onSelect: (status) {
// _subWorkOrders.repairLocation = status;
// },
// ),
// 8.height,
// PartNoButton(
// controller: _partQtyController,
// spareParts: _spareParts,
// disablePartEdit: disablePart,
// initialList: _subWorkOrders.sparePartsWorkOrders,
// onChange: (parts) {
// _subWorkOrders.sparePartsWorkOrders = parts;
// },
// ),
// 8.height,
// MultiFilesPicker(label: context.translation.attachImage, files: _files),
// 8.height,
// AppTextFormField(
// labelText: context.translation.travelingExpense,
// initialValue: _subWorkOrders.travelingExpenses?.toString(),
// textInputType: TextInputType.number,
// onSaved: (value) {
// _subWorkOrders.travelingExpenses = double.tryParse(value) ?? 0.0;
// },
// ),
// 8.height,
// AppTextFormField(
// labelText: context.translation.travelingHours,
// initialValue: _subWorkOrders.travelingHours?.toString(),
// textInputType: TextInputType.number,
// onSaved: (value) {
// _subWorkOrders.travelingHours = double.tryParse(value) ?? 0.0;
// },
// ),
// 8.height,
// AppTextFormField(
// initialValue: _subWorkOrders.comment,
// labelText: context.translation.technicalComment,
// alignLabelWithHint: true,
// textInputType: TextInputType.multiline,
// onSaved: (value) {
// _subWorkOrders.comment = value;
// },
// ),
// 8.height,
// ESignature(
// title: context.translation.engSign,
// oldSignature: _subWorkOrders.engSignature,
// newSignature: _subWorkOrders.localEngSignature,
// // onChange: (signature) {
// // // if (signature == null || signature.isEmpty) {
// // // setState(() {});
// // // return;
// // // }
// // if (signature == null || signature.isEmpty) return;
// // _subWorkOrders.localEngSignature = signature;
// // _subWorkOrders.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
// // print("_serviceReport.engSignature:${_serviceReport.engSignature}");
// // },
// onSaved: (signature) {
// if (signature == null || signature.isEmpty) {
// setState(() {});
// return;
// }
// if (signature.isEmpty) return;
// _subWorkOrders.localEngSignature = signature;
// _subWorkOrders.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
// },
// ),
// 8.height,
// ESignature(
// title: context.translation.nurseSignature,
// oldSignature: _subWorkOrders.nurseSignature,
// newSignature: _subWorkOrders.localNurseSignature,
// onSaved: (signature) {
// // if (signature == null || signature.isEmpty) {
// // setState(() {});
// // return;
// // }
// if (signature == null || signature.isEmpty) return;
// _subWorkOrders.localNurseSignature = signature;
// _subWorkOrders.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
// },
// ),
// 16.height,
// ],
// ),
// ),
// ).paddingAll(16).expanded,
// AppFilledButton(
// label: context.translation.submitRequest,
// onPressed: () async {
// setState(() {});
// _subWorkOrders.suppEngineerWorkOrders = [];
// if (engineer != null) {
// _subWorkOrders.suppEngineerWorkOrders!.add(engineer!);
// }
// // return;
// if (await validate()) {
// _subWorkOrders.attachmentsWorkOrder ??= [];
// for (var file in _files) {
// _subWorkOrders.attachmentsWorkOrder!.add(Attachment(id: 0, name: "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}"));
// }
// if (_formKey.currentState?.validate() ?? false) {}
// _formKey.currentState?.save();
// final serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context, listen: false);
// for (var element in (_subWorkOrders.suppEngineerWorkOrders ?? [])) {
// if (element != null && element.id != 0) {
// element.supplierContactId = element.id;
// element.id = 0;
// }
// }
//
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
// final status = await serviceRequestsProvider.createSubWorkOrder(workOrder: _subWorkOrders, makeSuppPersonsEmpty: true);
// Navigator.of(context).pop();
// if (status >= 200 && status < 300) {
// Fluttertoast.showToast(msg: context.translation.successfulRequestMessage);
// Navigator.of(context).pop();
// } else {
// String errorMessage = HttpStatusManger.getStatusMessage(status: serviceRequestsProvider.stateCode, subtitle: context.translation);
// ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(errorMessage)));
// }
// }
// },
// ).paddingAll(16),
// ],
// ),
// ),
// );
// }
//
// bool checkVendorFieldsVisibility(Lookup? callsLastSituation) {
// bool result = (initialSupplier?.suppliername?.isNotEmpty ?? false) ||
// (callsLastSituation?.name?.toLowerCase().contains("under repair-vendor") ?? false) ||
// (callsLastSituation?.name?.toLowerCase().contains("waiting for vendor") ?? false);
// setState(() {
// _showVendorFields = result;
// });
// return result;
// }
//
// Future<bool> validate() async {
// if (_subWorkOrders.reason == null) {
// Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.reason}");
// return false;
// } else if (_subWorkOrders.equipmentStatus == null) {
// Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.equipmentStatus}");
// return false;
// } else if (_subWorkOrders.calllastSituation == null) {
// Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.callLastSituation}");
// return false;
// } else if (_showVendorFields && _subWorkOrders.suppEngineerWorkOrders == null) {
// Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.supplierEngineer}");
// return false;
// } else if (_showVendorFields && (_subWorkOrders.supplier?.suppliername?.isEmpty ?? true)) {
// Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.supplier}");
// return false;
// } else if (_subWorkOrders.calllastSituation!.value == 12 && (_subWorkOrders.sparePartsWorkOrders?.isEmpty ?? true)) {
// Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.partNo}");
// return false;
// } else if (_subWorkOrders.timer?.startAt == null) {
// await Fluttertoast.showToast(msg: "Working Hours Required");
// return false;
// } else if (_subWorkOrders.timer?.endAt == null) {
// await Fluttertoast.showToast(msg: "Please Stop The Timer");
// return false;
// }
// return true;
// }
// }

@ -1,437 +0,0 @@
///todo deleted
// import 'dart:io';
//
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
// import 'package:font_awesome_flutter/font_awesome_flutter.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/notification/firebase_notification_manger.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/new_views/pages/gas_refill_request_form.dart';
// import 'package:test_sa/views/app_style/sizing.dart';
// import 'package:test_sa/views/pages/device_transfer/track_device_transfer.dart';
// import 'package:test_sa/views/pages/user/gas_refill/track_gas_refill.dart';
// import 'package:test_sa/views/pages/user/ppm/ppm_page.dart';
// import 'package:test_sa/views/pages/user/requests/create_service_request_page.dart';
// import 'package:test_sa/views/widgets/dialogs/dialog.dart';
//
// import '../../../models/enums/user_types.dart';
// import '../../widgets/land_page/land_page_item.dart';
// import '../device_transfer/create_device_transfer_request.dart';
// import 'requests/requests_page.dart';
//
// @Deprecated("Use the page which is inside the [new_views/pages/land_page] folder")
// class LandPage extends StatefulWidget {
// static const String id = "/old-land-page";
//
// const LandPage({Key? key}) : super(key: key);
//
// @override
// State<LandPage> createState() => _LandPageState();
// }
//
// class _LandPageState extends State<LandPage> {
// double _height;
// double _width;
// UserProvider _userProvider;
// SettingProvider _settingProvider;
//
// // DepartmentsProvider _departmentsProvider;
// // DevicesProvider _devicesProvider;
// double _buttonHeight;
// bool firstTime = true;
//
// // ServiceRequestsProvider _serviceRequestsProvider;
// // PreventiveMaintenanceVisitsProvider _preventiveMaintenanceVisitsProvider;
// // RegularVisitsProvider _regularVisitsProvider;
// final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
//
// @override
// void initState() {
// WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
// try {
// FirebaseNotificationManger.initialized(context);
// } catch (error) {}
// });
// super.initState();
// }
//
// @override
// Widget build(BuildContext context) {
// String path = ModalRoute.of(context).settings.arguments;
// _height = MediaQuery.of(context).size.height;
// _width = MediaQuery.of(context).size.width;
// _settingProvider = Provider.of<SettingProvider>(context);
// _userProvider = Provider.of<UserProvider>(context);
// // _departmentsProvider = Provider.of<DepartmentsProvider>(context);
// // _devicesProvider = Provider.of<DevicesProvider>(context);
// // _serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
// // _preventiveMaintenanceVisitsProvider = Provider.of<PreventiveMaintenanceVisitsProvider>(context);
// // _regularVisitsProvider = Provider.of<RegularVisitsProvider>(context);
// //
// if (firstTime) {
// if (path != null) {
// Navigator.of(context).pushNamed("/" + path.split("/").first, arguments: path.split("/").last);
// }
// firstTime = false;
// }
// _buttonHeight = 68 * AppStyle.getScaleFactor(context);
// return WillPopScope(
// onWillPop: () async {
// bool result = await showDialog(
// context: context,
// builder: (_) => AAlertDialog(
// // title: _subtitle.exit,
// title: context.translation.exit,
// // content: _subtitle.exitAlert,
// content: context.translation.sureExit,
// ));
// if (result == true) {
// if (Platform.isAndroid) {
// SystemChannels.platform.invokeMethod('SystemNavigator.pop');
// } else {
// exit(0);
// }
// }
// return false;
// },
// child: Scaffold(
// key: _scaffoldKey, //backgroundColor: Color(0xffF8F8F8),
// body: SafeArea(
// child: Stack(
// children: [
// ListView(
// padding: const EdgeInsets.all(16.0),
// children: [
// //AppNameBar(),
// // SizedBox(
// // height: _height/3.2,
// // width: _width,
// // child: CarouselSlider.builder(
// // options: CarouselOptions(
// // height: _height/3,
// // autoPlay: true,
// // viewportFraction: 1
// // ),
// // itemCount: 4,
// // itemBuilder: (BuildContext context, int itemIndex, int pageViewIndex) =>
// // Image(
// // //width: _width,
// // image: AssetImage("assets/images/$itemIndex.png"),
// // fit: BoxFit.cover,
// // )
// // ),
// // ),
// // SizedBox(
// // height: 48 * AppStyle.getScaleFactor(context),
// // ),
// // Hero(
// // tag: "logo",
// // child: Image(
// // height: _height / 6,
// // image: const AssetImage("assets/images/logo.png"),
// // ),
// // ),
// GridView.count(
// shrinkWrap: true,
// physics: const ClampingScrollPhysics(),
// crossAxisCount: 2,
// crossAxisSpacing: 12,
// mainAxisSpacing: 12,
// childAspectRatio: 1,
// children: [
// if (_userProvider.user != null && _userProvider.user.type == UsersTypes.normal_user)
// LandPageItem(
// // text: _subtitle.newServiceRequest,
// text: context.translation.newServiceRequest,
// icon: FontAwesomeIcons.screwdriverWrench,
// onPressed: () {
// Navigator.of(context).pushNamed(CreateServiceRequestPage.id);
// },
// ),
// LandPageItem(
// // text: _subtitle.trackServiceRequest,
// text: context.translation.trackServiceRequest,
// icon: FontAwesomeIcons.listCheck,
// onPressed: () {
// Navigator.of(context).pushNamed(ServiceRequestsPage.id);
// },
// ),
// //if (_userProvider.user.type == UsersTypes.engineer)
// LandPageItem(
// // text: _subtitle.preventiveMaintenance,
// text: context.translation.preventiveMaintenance,
// icon: FontAwesomeIcons.personWalking,
// onPressed: () {
// Navigator.of(context).pushNamed(PpmPage.id);
// },
// ),
// //if (_userProvider.user.type == UsersTypes.engineer)
// // LandPageItem(
// // text: _subtitle.preventiveMaintenance,
// // icon: FontAwesomeIcons.toolbox,
// // onPressed: (){
// // Navigator.of(context).pushNamed(PreventiveMaintenanceVisitsPage.id);
// // },
// // ),
// if (_userProvider?.user != null && _userProvider?.user?.type != UsersTypes.engineer)
// LandPageItem(
// text: context.translation.requestGasRefill,
// icon: FontAwesomeIcons.truckFast,
// onPressed: () {
// // Navigator.of(context).pushNamed(RequestGasRefill.id);
// Navigator.of(context).pushNamed(NewGasRefillRequestPage.routeName);
// },
// ),
// LandPageItem(
// text: context.translation.trackGasRefill,
// icon: Icons.content_paste_search,
// onPressed: () {
// Navigator.of(context).pushNamed(TrackGasRefillPage.id);
// },
// ),
// LandPageItem(
// text: context.translation.deviceTransfer,
// icon: FontAwesomeIcons.rightLeft,
// onPressed: () {
// Navigator.of(context).pushNamed(RequestDeviceTransfer.id);
// },
// ),
// LandPageItem(
// text: context.translation.trackAssetTransfer,
// icon: FontAwesomeIcons.peopleCarryBox,
// onPressed: () {
// Navigator.of(context).pushNamed(TrackDeviceTransferPage.id);
// },
// ),
// // if (_userProvider?.user != null && _userProvider?.user?.type != UsersTypes.normal_user)
// // LandPageItem(
// // text: "Create Sub Work Order",
// // svgPath: "assets/images/sub_workorder_icon.svg",
// // onPressed: () {
// // Navigator.of(context).pushNamed(SearchSubWorkOrderPage.id);
// // },
// // ),
// ],
// ),
// ],
// ),
// // Align(
// // alignment: Alignment.topLeft,
// // child: ABackButton(
// // icon: Icons.power_settings_new_rounded,
// // onPressed: () async {
// // bool result = await showDialog(
// // context: context,
// // builder: (_) => const AAlertDialog(
// // // title: _subtitle.signOut,
// // title: "Sign Out",
// // // content: _subtitle.signOutAlert,
// // content: "Are you sure you want to exit?",
// // ));
// // if (result) {
// // // _devicesProvider.reset();
// // // _departmentsProvider.reset();
// // // _serviceRequestsProvider.reset();
// // // _regularVisitsProvider.reset();
// // // _preventiveMaintenanceVisitsProvider.reset();
// // _settingProvider.resetSettings();
// // _userProvider.reset();
// // Navigator.of(context).pop();
// // }
// // },
// // ),
// // ),
// // Align(
// // alignment: Alignment.topRight,
// // child: Padding(
// // padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4),
// // child: AIconButton(
// // iconData: Icons.menu,
// // color: AColors.primaryColor,
// // buttonSize: 42,
// // backgroundColor: AColors.white,
// // onPressed: () {
// // _scaffoldKey.currentState.openEndDrawer();
// // },
// // ),
// // ),
// // ),
// ],
// ),
// ),
// // endDrawer: Drawer(
// // backgroundColor: Colors.white,
// // child: Column(
// // children: [
// // 40.height,
// // Row(
// // mainAxisAlignment: MainAxisAlignment.end,
// // children: [
// // const Icon(Icons.clear).onPress(() => Navigator.pop(context)),
// // ],
// // ).paddingOnly(start: 4, end: 14),
// // Row(
// // children: [
// // Container(
// // height: 50 * AppStyle.getScaleFactor(context),
// // width: 50 * AppStyle.getScaleFactor(context),
// // padding: EdgeInsets.all(4),
// // decoration: BoxDecoration(border: Border.all(color: Theme.of(context).primaryColor, width: 2), shape: BoxShape.circle),
// // child: ClipOval(
// // child: ClipOval(
// // child: Icon(
// // Icons.person,
// // size: 36,
// // color: Theme.of(context).colorScheme.primary,
// // ),
// // ),
// // ),
// // ),
// // 12.width,
// // Text(
// // _userProvider.user?.userName ?? "??",
// // style: Theme.of(context).textTheme.headline6.copyWith(
// // fontWeight: FontWeight.w600,
// // ),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// // ).expanded
// // ],
// // ).paddingOnly(start: 14, end: 14, top: 21, bottom: 21),
// // Divider(
// // height: 1,
// // thickness: 1,
// // color: AColors.greyEF,
// // ),
// // ListView(
// // children: [
// // Row(
// // children: [
// // Radio(
// // value: "en",
// // activeColor: AColors.grey3A,
// // focusColor: AColors.grey3A,
// // groupValue: _settingProvider.language,
// // onChanged: (value) {
// // _settingProvider.setLanguage(value);
// // }),
// // Text(
// // "English",
// // style: Theme.of(context).textTheme.bodyText1.copyWith(color: AColors.grey3A),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// // ),
// // Radio(
// // value: "ar",
// // activeColor: AColors.grey3A,
// // focusColor: AColors.grey3A,
// // groupValue: _settingProvider.language,
// // onChanged: (value) {
// // _settingProvider.setLanguage(value);
// // }),
// // Text(
// // "عربي",
// // style: Theme.of(context).textTheme.bodyText1.copyWith(color: AColors.grey3A),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// // ),
// // ],
// // ),
// // Row(
// // children: [
// // Radio(
// // value: true,
// // activeColor: AColors.grey3A,
// // focusColor: AColors.grey3A,
// // groupValue: _settingProvider.language,
// // onChanged: (value) {
// // _settingProvider.setDarkTheme(value);
// // }),
// // Text(
// // "Dark",
// // style: Theme.of(context).textTheme.bodyText1.copyWith(color: AColors.grey3A),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// // ),
// // Radio(
// // value: false,
// // activeColor: AColors.grey3A,
// // focusColor: AColors.grey3A,
// // groupValue: _settingProvider.language,
// // onChanged: (value) {
// // _settingProvider.setDarkTheme(value);
// // }),
// // Text(
// // "Light",
// // style: Theme.of(context).textTheme.bodyText1.copyWith(color: AColors.grey3A),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// // ),
// // ],
// // ),
// // // DrawerItem(
// // // icon: Icons.notifications,
// // // title: _subtitle.notifications,
// // // onPressed: () {
// // // Navigator.of(context).pushNamed(NotificationsPage.id);
// // // },
// // // ),
// // DrawerItem(
// // icon: Icons.mail,
// // // title: _subtitle.email,
// // title: "Email",
// // onPressed: () {
// // launch("mailto:customerservice@Test SA.com");
// // },
// // ),
// // // DrawerItem(
// // // icon: Icons.phone_in_talk,
// // // title: "${_subtitle.hotLine} 15564",
// // // onPressed: () {
// // // launch("tel:15564");
// // // },
// // // ),
// // // DrawerItem(
// // // icon: FontAwesomeIcons.linkedinIn,
// // // title: _subtitle.linkedIn,
// // // onPressed: () {
// // // launch("https://www.linkedin.com/company/Test SA/");
// // // },
// // // ),
// // // DrawerItem(
// // // icon: FontAwesomeIcons.globe,
// // // title: _subtitle.ourWebsite,
// // // onPressed: () {
// // // launch("https://www.Test SA.com/");
// // // },
// // // ),
// // DrawerItem(
// // icon: Icons.share,
// // // title: _subtitle.shareApp,
// // title: "Share App",
// // onPressed: () async {
// // PackageInfo packageInfo = await PackageInfo.fromPlatform();
// // String shareLink = "\n https://play.google.com/store/apps/details?id=" + packageInfo.packageName + "\n https://apps.apple.com/us/app/";
// // Share.share(shareLink);
// // },
// // ),
// // ],
// // ).expanded,
// // Divider(height: 1, thickness: 1, color: AColors.greyEF),
// // Row(
// // mainAxisAlignment: MainAxisAlignment.center,
// // children: [
// // Text(
// // "Powered By Cloud Solutions",
// // style: Theme.of(context).textTheme.headline6.copyWith(fontWeight: FontWeight.w500, color: AColors.grey3A, fontSize: 12),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// // ),
// // 6.width,
// // Image.asset("assets/images/cloud_logo.png", width: 32, height: 32)
// // ],
// // ).paddingOnly(start: 20, end: 20, top: 8, bottom: 8),
// // ],
// // ),
// // ),
// ),
// );
// }
// }

@ -1,241 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/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/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/device/asset.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
//
// import '../../../../controllers/providers/api/service_requests_provider.dart';
// import '../../../../models/lookup.dart';
// import '../../../../new_views/app_style/app_color.dart';
// import '../../../../new_views/common_widgets/app_filled_button.dart';
// import '../../../../new_views/common_widgets/app_text_form_field.dart';
// import '../../../../new_views/common_widgets/single_item_drop_down_menu.dart';
// import '../../../../providers/service_request_providers/first_action_provider.dart';
// import '../../../widgets/date_and_time/date_picker.dart';
//
// class FirstActionBottomSheet extends StatefulWidget {
// final ServiceRequest request;
// todo @delete
// const FirstActionBottomSheet({Key? key, required this.request}) : super(key: key);
//
// @override
// State<FirstActionBottomSheet> createState() => _FirstActionBottomSheetState();
// }
//
// class _FirstActionBottomSheetState extends State<FirstActionBottomSheet> {
// late ServiceRequest _serviceRequest;
// Asset? asset;
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
//
// Lookup? firstAction;
//
// @override
// void initState() {
// super.initState();
// _serviceRequest = widget.request;
// firstAction = _serviceRequest.firstAction;
// }
//
// @override
// Widget build(BuildContext context) {
// final userProvider = Provider.of<UserProvider>(context, listen: false);
// return Wrap(
// children: [
// Container(
// clipBehavior: Clip.antiAlias,
// margin: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
// decoration: BoxDecoration(
// color: Theme.of(context).scaffoldBackgroundColor,
// borderRadius: const BorderRadius.only(topRight: Radius.circular(20), topLeft: Radius.circular(20)),
// ),
// padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight),
// child: Form(
// key: _formKey,
// child: SingleChildScrollView(
// child: Column(
// children: [
// Container(
// width: 40.toScreenWidth,
// height: 5.toScreenHeight,
// decoration: BoxDecoration(color: AppColor.neutral40, borderRadius: BorderRadius.circular(30)),
// ),
// Align(
// alignment: AlignmentDirectional.centerStart,
// child: context.translation.firstAction.heading3(context).custom(fontWeight: FontWeight.w600).paddingOnly(top: 16, bottom: 16),
// ),
// SingleItemDropDownMenu<Lookup, FirstActionStatusProvider>(
// context: context,
// title: context.translation.firstActionStatus,
// initialValue: firstAction, //_serviceRequest.firstAction,
// onSelect: (value) {
// setState(() {
// //_serviceRequest.firstAction = value;
// firstAction = value;
// if (firstAction?.value != 2) {
// _serviceRequest.visitDate = null;
// }
// });
// },
// ),
// if (firstAction?.value == 2) ...[
// 8.height,
// ADatePicker(
// label: context.translation.visitDate,
// date: DateTime.tryParse(_serviceRequest.visitDate ?? ""),
// formatDateWithTime: true,
// onDatePicker: (selectedDate) {
// showTimePicker(
// context: context,
// initialTime: TimeOfDay.now(),
// ).then((selectedTime) {
// // Handle the selected date and time here.
// if (selectedTime != null) {
// DateTime selectedDateTime = DateTime(
// selectedDate.year,
// selectedDate.month,
// selectedDate.day,
// selectedTime.hour,
// selectedTime.minute,
// );
// if (selectedDateTime.isBefore(DateTime.parse(_serviceRequest.date!))) {
// "Visit Date time must be greater then request date".showToast;
// return;
// }
//
// setState(() {
// _serviceRequest.visitDate = selectedDateTime.toIso8601String();
// });
// }
// });
// },
// ),
// ],
//
// if (firstAction?.id == 404 && Provider.of<SettingProvider>(context, listen: false).assetGroup!.id == 1) ...[
// 8.height,
// Row(
// children: [
// ADatePicker(
// label: context.translation.startDate,
// date: DateTime.tryParse(_serviceRequest.startDate ?? ""),
// formatDateWithTime: true,
// onDatePicker: (selectedDate) {
// showTimePicker(
// context: context,
// initialTime: TimeOfDay.now(),
// ).then((selectedTime) {
// // Handle the selected date and time here.
// if (selectedTime != null) {
// DateTime selectedDateTime = DateTime(
// selectedDate.year,
// selectedDate.month,
// selectedDate.day,
// selectedTime.hour,
// selectedTime.minute,
// );
// setState(() {
// _serviceRequest.startDate = selectedDateTime.toIso8601String();
// });
// }
// });
// },
// ).expanded,
// 8.width,
// ADatePicker(
// label: context.translation.endDate,
// date: DateTime.tryParse(_serviceRequest.endDate ?? ""),
// formatDateWithTime: true,
// onDatePicker: (selectedDate) {
// showTimePicker(
// context: context,
// initialTime: TimeOfDay.now(),
// ).then((selectedTime) {
// // Handle the selected date and time here.
// if (selectedTime != null) {
// DateTime selectedDateTime = DateTime(
// selectedDate.year,
// selectedDate.month,
// selectedDate.day,
// selectedTime.hour,
// selectedTime.minute,
// );
// setState(() {
// _serviceRequest.endDate = selectedDateTime.toIso8601String();
// _serviceRequest.workingHours =
// (((DateTime.parse(_serviceRequest.endDate!).difference(DateTime.parse(_serviceRequest.startDate!)).inSeconds ?? 0) / 60) / 60).toStringAsFixed(2);
// });
// }
// });
// },
// ).expanded,
// ],
// )
// ],
//
// /// Loan availability not required
// // 8.height,
// // SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>(
// // context: context,
// // title: context.translation.loanAvailability,
// // initialValue: _serviceRequest.loanAvailability,
// // onSelect: (status) {
// // setState(() {
// // _serviceRequest.loanAvailability = status;
// // if (_serviceRequest.loanAvailability.value != 1) {
// // asset = null;
// // }
// // });
// // },
// // ),
// // if (_serviceRequest?.loanAvailability?.value == 1) 8.height,
// // if (_serviceRequest?.loanAvailability?.value == 1)
// // PickAsset(
// // device: asset ?? _serviceRequest.device,
// // onPickAsset: (asset) {
// // setState(() {
// // this.asset = asset;
// // });
// // },
// // ),
// 8.height,
// AppTextFormField(
// labelText: context.translation.comments,
// textInputType: TextInputType.multiline,
// alignLabelWithHint: true,
// onChange: (text) {
// _serviceRequest.comments = text;
// },
// onSaved: (text) {
// _serviceRequest.comments = text;
// },
// ),
// 16.height,
// Consumer<ServiceRequestsProvider>(
// builder: (context, snapshot, _) => AppFilledButton(
// label: context.translation.save,
// loading: snapshot.isLoading ?? false,
// onPressed: () async {
// _formKey.currentState!.save();
// _serviceRequest.device = asset;
// _serviceRequest.firstAction = firstAction;
// await snapshot.updateRequest(user: userProvider.user!, request: _serviceRequest);
// Navigator.pop(context, true);
// },
// ),
// ),
// 16.height,
// ],
// ),
// ),
// ),
// )
// ],
// );
// }
// }

@ -1,60 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.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/new_views/common_widgets/default_app_bar.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/requests/service_request_list.dart';
// //todo @delete
// class ServiceRequestsPage extends StatefulWidget {
// static const String id = "/service-requests";
//
// const ServiceRequestsPage({Key? key}) : super(key: key);
//
// @override
// _ServiceRequestsPageState createState() => _ServiceRequestsPageState();
// }
//
// class _ServiceRequestsPageState extends State<ServiceRequestsPage> with TickerProviderStateMixin {
// late ServiceRequestsProvider _serviceRequestsProvider;
// late UserProvider _userProvider;
// late SettingProvider _settingProvider;
// final bool _expandedSearch = false;
// bool _firstTime = true;
//
// @override
// Widget build(BuildContext context) {
// _serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
// _userProvider = Provider.of<UserProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
// if (_firstTime) {
// _serviceRequestsProvider.reset();
// _firstTime = false;
// }
//
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.serviceRequest),
// //backgroundColor: context.isDark? :const Color(0xfff8f9fb),
// body: SafeArea(
// child: LoadingManager(
// isLoading: _serviceRequestsProvider.isLoading,
// isFailedLoading: _serviceRequestsProvider.serviceRequests == null,
// stateCode: _serviceRequestsProvider.stateCode,
// onRefresh: () async {
// _serviceRequestsProvider.reset();
// await _serviceRequestsProvider.getRequests(hospitalId: _userProvider.user!.clientId!);
// },
// child: ServiceRequestsList(
// nextPage: _serviceRequestsProvider.nextPage,
// onLazyLoad: () async {
// await _serviceRequestsProvider.getRequests(hospitalId: _userProvider.user!.clientId!);
// },
// requests: _serviceRequestsProvider.serviceRequests!,
// ),
// ),
// ),
// );
// }
// }

@ -1,302 +0,0 @@
//
// //TODO old Flow ..
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/comments_provider.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/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/enums/user_types.dart';
// import 'package:test_sa/models/service_request/service_request.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/default_app_bar.dart';
// import 'package:test_sa/views/pages/user/requests/comments_bottom_sheet.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/work_orders_list_page.dart';
// import 'package:test_sa/views/widgets/images/files_list.dart';
// import 'package:test_sa/views/widgets/loaders/app_loading.dart';
// import 'package:test_sa/views/widgets/sound/sound_player.dart';
//
// import '../../../widgets/requests/request_status.dart';
// import 'first_action_bottom_sheet.dart';
//// //todo @delete
// class ServiceRequestDetailsPage extends StatefulWidget {
// static const String id = "/call-details";
// ServiceRequest serviceRequest;
//
// ServiceRequestDetailsPage({Key? key, required this.serviceRequest}) : super(key: key);
//
// @override
// State<ServiceRequestDetailsPage> createState() => _ServiceRequestDetailsPageState();
// }
//
// class _ServiceRequestDetailsPageState extends State<ServiceRequestDetailsPage> {
// bool loading = false;
// ServiceRequest? serviceRequest;
//
// @override
// void initState() {
// super.initState();
// getServiceRequest();
// }
//
// void getServiceRequest() {
// loading = true;
// setState(() {});
// WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) async {
// Provider.of<CommentsProvider>(context, listen: false).reset();
// serviceRequest = await Provider.of<ServiceRequestsProvider>(context, listen: false).getServiceRequestObjectById(requestId: widget.serviceRequest.id!);
// loading = false;
// setState(() {});
// });
// }
//
// @override
// Widget build(BuildContext context) {
// UserProvider userProvider = Provider.of<UserProvider>(context, listen: false);
//
// Widget informationCard(ServiceRequest serviceRequest) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// mainAxisSize: MainAxisSize.min,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Row(
// children: [
// StatusLabel(
// label: serviceRequest.priority!.name,
// id: serviceRequest.priority!.id!,
// textColor: AppColor.getPriorityStatusTextColor(context, serviceRequest.priority!.id!),
// backgroundColor: AppColor.getPriorityStatusColor(context, serviceRequest.priority!.id!),
// ),
// 8.width,
// StatusLabel(
// label: serviceRequest.statusLabel,
// textColor: AppColor.getRequestStatusTextColor(context, serviceRequest.statusValue!),
// backgroundColor: AppColor.getRequestStatusColor(context, serviceRequest.statusValue!),
// ),
// 1.width.expanded,
// ],
// ),
// 8.height,
// Text(serviceRequest.deviceEnName?.cleanupWhitespace.capitalizeFirstOfEach ?? "",
// style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)),
// 8.height,
// Text(
// '${context.translation.assetNumber}: ${serviceRequest.device!.assetNumber}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.requestType}: ${serviceRequest.type!.name}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.equipmentStatus}: ${serviceRequest.defectType!.name}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.requestNo}: ${serviceRequest.requestCode}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.requesterName}: ${serviceRequest.callCreatedBy?.name ?? "-"}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// ],
// ).expanded,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// children: [
// // if (userProvider.user!.type == UsersTypes.normal_user)
// // context.translation.code.toSvgAsset(width: 48).onPress(() {
// // Navigator.push(context, MaterialPageRoute(builder: (context) => UpdateServiceRequestPage(serviceRequest: serviceRequest)));
// // }),
// if (userProvider.user!.type == UsersTypes.engineer) 16.height,
// Text(
// serviceRequest.date!.toServiceRequestCardFormat,
// textAlign: TextAlign.end,
// style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
// ),
// ],
// )
// ],
// ),
// 8.height,
// const Divider().defaultStyle(context),
// 8.height,
// Text(
// '${context.translation.manufacture}: ${serviceRequest.device!.modelDefinition!.manufacturerName?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.model}: ${serviceRequest.device!.modelDefinition!.modelName?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.site}: ${serviceRequest.device!.site?.custName?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.building}: ${serviceRequest.device!.building?.name?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.floor}: ${serviceRequest.device!.floor?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.department}: ${serviceRequest.device!.department?.departmentName?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.room}: ${(serviceRequest.device!.room?.name ?? "").cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// 8.height,
// if ((serviceRequest.callComments ?? "").isNotEmpty) ...[
// const Divider().defaultStyle(context),
// 8.height,
// Text(
// serviceRequest.callComments!,
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// ],
// if (serviceRequest.devicePhotos?.isNotEmpty ?? false) ...[
// 8.height,
// const Divider().defaultStyle(context),
// FilesList(images: serviceRequest.devicePhotos!),
// ],
// if (serviceRequest.audio?.isNotEmpty ?? false) ...[
// const Divider().defaultStyle(context),
// 16.height,
// ASoundPlayer(audio: serviceRequest.audio!),
// 8.height,
// ],
// ],
// ).paddingOnly(start: 16, end: 16, top: 16, bottom: 8),
// (userProvider.user!.type == UsersTypes.normal_user
// ? Container(
// height: 50,
// padding: const EdgeInsets.only(left: 16, right: 16),
// alignment: Alignment.center,
// width: double.infinity,
// decoration: ShapeDecoration(
// color: context.isDark ? AppColor.neutral50 : AppColor.neutral30,
// shape: const RoundedRectangleBorder(
// borderRadius: BorderRadius.only(
// bottomLeft: Radius.circular(20),
// bottomRight: Radius.circular(20),
// ),
// ),
// ),
// child: Row(
// children: [
// Text(
// '${context.translation.commentHere}...',
// style: AppTextStyles.heading6.copyWith(
// color: (context.isDark ? AppColor.neutral30 : AppColor.neutral50).withOpacity(.6),
// ),
// ).expanded,
// "comment_send".toSvgAsset(width: 24, color: context.isDark ? AppColor.primary50 : AppColor.primary70),
// ],
// ),
// )
// : Column(
// mainAxisSize: MainAxisSize.min,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// const Divider().defaultStyle(context),
// 16.height,
// Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.viewComments,
// style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
// ),
// 4.width,
// Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
// ],
// ),
// ],
// ).paddingOnly(bottom: 16, start: 16, end: 16))
// .onPress(() {
// showModalBottomSheet(
// context: context,
// useSafeArea: true,
// isScrollControlled: true,
// useRootNavigator: true,
// backgroundColor: Colors.transparent,
// builder: (context) => CommentsBottomSheet(requestId: serviceRequest.id!),
// );
// }),
// ],
// ).toShadowContainer(context, padding: 0);
// }
//
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.serviceDetails),
// //backgroundColor: const Color(0xfff8f9fb),
// body: SafeArea(
// child: loading
// ? const ALoading().center
// : serviceRequest == null
// ? Text(
// context.translation.noDataFound,
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ).center
// : Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// SingleChildScrollView(
// padding: const EdgeInsets.all(16),
// child: informationCard(serviceRequest!),
// ).expanded,
// if (userProvider.user!.type == UsersTypes.engineer || (serviceRequest!.statusValue == 5 || serviceRequest!.statusValue == 3))
// (serviceRequest?.firstAction == null
// ? AppFilledButton(
// label: context.translation.firstAction,
// maxWidth: true,
// onPressed: () async {
// bool shouldReloadData = (await showModalBottomSheet(
// context: context,
// useSafeArea: true,
// isScrollControlled: true,
// backgroundColor: Colors.transparent,
// builder: (context) => FirstActionBottomSheet(request: serviceRequest!),
// )) as bool;
// if (shouldReloadData ?? false) {
// getServiceRequest();
// }
// },
// )
// : AppFilledButton(
// label: context.translation.viewWorkOrder,
// maxWidth: true,
// onPressed: () {
// Navigator.push(
// context,
// MaterialPageRoute(builder: (context) => WorkOrderListPage(serviceRequest: serviceRequest)),
// );
// // Navigator.of(context).pushNamed(WorkOrderListPage.id, arguments: serviceRequest);
// },
// ))
// .paddingOnly(start: 16, end: 16, bottom: 24),
// ],
// ),
// ),
// );
// }
// }

@ -1,173 +0,0 @@
// import 'dart:convert';
// import 'dart:io';
//
// import 'package:flutter/material.dart';
// import 'package:provider/provider.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/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
//
// import '../../../../models/lookup.dart';
// import '../../../../new_views/app_style/app_color.dart';
// import '../../../../new_views/common_widgets/app_filled_button.dart';
// import '../../../../new_views/common_widgets/app_lazy_loading.dart';
// import '../../../../new_views/common_widgets/app_text_form_field.dart';
// import '../../../../new_views/common_widgets/single_item_drop_down_menu.dart';
// import '../../../../providers/service_request_providers/equipment_status_provider.dart';
// import '../../../../providers/service_request_providers/priority_provider.dart';
// import '../../../../providers/service_request_providers/requested_through_provider.dart';
// import '../../../../providers/service_request_providers/type_of_request_provider.dart';
// import '../../../widgets/equipment/pick_asset.dart';
// import '../../../widgets/images/multi_image_picker.dart';
// import '../../../widgets/sound/record_sound.dart';
//
// class UpdateServiceRequestPage extends StatefulWidget {
// static const String id = "/update_service_request_page";
// final ServiceRequest? serviceRequest;
//
// const UpdateServiceRequestPage({Key? key, this.serviceRequest}) : super(key: key);
//
// @override
// State<UpdateServiceRequestPage> createState() => _UpdateServiceRequestPageState();
// }
//
// class _UpdateServiceRequestPageState extends State<UpdateServiceRequestPage> {
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// late TextEditingController _commentController;
// List<File> _deviceImages = [];
// late UserProvider _userProvider;
//// //todo @delete
// @override
// void initState() {
// super.initState();
// _deviceImages = widget.serviceRequest?.devicePhotos?.map((e) => File(e)).toList() ?? [];
// _commentController = TextEditingController(text: widget.serviceRequest?.callComments ?? "");
// }
//
// @override
// void dispose() {
// _commentController.dispose();
// super.dispose();
// }
//
// @override
// Widget build(BuildContext context) {
// _userProvider = Provider.of<UserProvider>(context, listen: false);
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.updateServiceRequest),
// body: SafeArea(
// child: Form(
// key: _formKey,
// child: Column(
// children: [
// SingleChildScrollView(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// PickAsset(
// editable: false,
// device: widget.serviceRequest?.device,
// onPickAsset: (asset) {
// widget.serviceRequest!.device = asset;
// setState(() {});
// },
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, PriorityProvider>(
// context: context,
// title: context.translation.priority,
// initialValue: widget.serviceRequest?.priority,
// onSelect: (value) {
// widget.serviceRequest!.priority = value;
// },
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, EquipmentStatusProvider>(
// context: context,
// title: context.translation.equipmentStatus,
// initialValue: widget.serviceRequest?.defectType,
// onSelect: (value) {
// widget.serviceRequest!.defectType = value;
// },
// ),
// 8.height,
// Consumer<RequestedThroughProvider>(builder: (context, snapshot, _) {
// return SingleItemDropDownMenu<Lookup, RequestedThroughProvider>(
// context: context,
// enabled: false,
// title: context.translation.source,
// initialValue: snapshot.items.firstWhere((element) => element.value == 3, orElse: null),
// );
// }),
// 8.height,
// SingleItemDropDownMenu<Lookup, TypeOfRequestProvider>(
// context: context,
// title: context.translation.requestType,
// initialValue: widget.serviceRequest?.type,
// onSelect: (value) {
// widget.serviceRequest!.type = value;
// },
// ),
// 8.height,
// MultiFilesPicker(label: context.translation.attachImage, files: _deviceImages),
// ((widget.serviceRequest!.devicePhotos?.isNotEmpty ?? false) ? 16 : 8).height,
// Align(
// alignment: AlignmentDirectional.centerStart,
// child: context.translation.callComments.heading5(context),
// ),
// 8.height,
// AppTextFormField(
// controller: _commentController,
// labelText: context.translation.problemDesc,
// initialValue: widget.serviceRequest!.callComments,
// suffixIcon: "warning".toSvgAsset(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20, width: 24).paddingOnly(end: 16),
// onSaved: (text) {
// widget.serviceRequest!.callComments = text;
// },
// ),
// 8.height,
// RecordSound(
// onRecord: (audio) {
// widget.serviceRequest!.audio = audio;
// },
// enabled: widget.serviceRequest == null ? true : false,
// ),
// 16.height,
// ],
// ),
// ).expanded,
// AppFilledButton(onPressed: _submit, label: context.translation.updateRequest),
// ],
// ),
// ).paddingOnly(start: 16, end: 16, bottom: 24, top: 16),
// ),
// );
// }
//
// Future<void> _submit() async {
// widget.serviceRequest?.requestedThrough = Provider.of<RequestedThroughProvider>(context, listen: false).items.firstWhere((element) => element.value == 3, orElse: null);
// if (_formKey.currentState!.validate() && await widget.serviceRequest!.validateNewRequest(context)) {
// _formKey.currentState!.save();
// widget.serviceRequest!.devicePhotos = _deviceImages.map((e) => _isLocalUrl(e.path) ? "${e.path.split("/").last}|${base64Encode(e.readAsBytesSync())}" : e.path).toList();
// if (widget.serviceRequest!.audio != null) {
// if (_isLocalUrl(widget.serviceRequest!.audio!)) {
// final File file = File(widget.serviceRequest!.audio!);
// widget.serviceRequest!.audio = "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}";
// }
// }
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
// await Provider.of<ServiceRequestsProvider>(context, listen: false).updateRequest(user: _userProvider.user!, request: widget.serviceRequest!);
// Navigator.of(context).pop();
// }
// }
//
// bool _isLocalUrl(String url) {
// if (url.isEmpty != false) return false;
// return url.startsWith("/") || url.startsWith("file://") || url.substring(1).startsWith(':\\');
// }
// }

@ -1,428 +0,0 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/attachment.dart';
import 'package:test_sa/controllers/providers/api/parts_provider.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/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/generic_attachment_model.dart';
import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/modules/cm_module/cm_request_utils.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart';
import 'package:test_sa/providers/service_request_providers/loan_availability_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/views/pages/user/requests/work_order/part_no_button.dart';
import 'package:test_sa/views/widgets/e_signature/e_signature.dart';
import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart';
import 'package:test_sa/views/widgets/status/report/service_report_last_call.dart';
import '../../../../../controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart';
import '../../../../../controllers/providers/api/status_drop_down/report/service_types_provider.dart';
import '../../../../../models/lookup.dart';
import '../../../../../models/service_request/spare_parts.dart';
import '../../../../../new_views/common_widgets/app_text_form_field.dart';
import '../../../../../new_views/common_widgets/default_app_bar.dart';
import '../../../../../new_views/common_widgets/single_item_drop_down_menu.dart';
import '../../../../widgets/date_and_time/date_picker.dart';
import '../../../../widgets/images/multi_image_picker.dart';
import '../../../../widgets/status/report/service_report_fault_description.dart';
import '../../../../widgets/status/report/service_report_repair_location.dart';
import '../../../../widgets/timer/app_timer.dart';
class CreateServiceReport extends StatefulWidget {
static const String id = "/create-service-report";
final ServiceRequest request;
const CreateServiceReport({Key? key, required this.request}) : super(key: key);
@override
_CreateServiceReportState createState() => _CreateServiceReportState();
}
class _CreateServiceReportState extends State<CreateServiceReport> with TickerProviderStateMixin {
late UserProvider _userProvider;
late SettingProvider _settingProvider;
late ServiceRequestsProvider _serviceRequestsProvider;
late ServiceStatusProvider _assetTypeProvider;
late PartsProvider _partsProvider;
late ServiceReport _serviceReport;
bool _isLoading = false;
List<SparePart> _spareParts = [];
final List<GenericAttachmentModel> attachments = [];
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
final TextEditingController _faultController = TextEditingController();
final TextEditingController _workPreformedController = TextEditingController();
final TextEditingController _partQtyController = TextEditingController();
@override
void initState() {
_serviceReport = ServiceReport(
// returnToService: DateTime.now(),
// //type: const Lookup(value: 2),
// device: widget.request.device,
sparePartsWorkOrders: [],
);
super.initState();
if (context.mounted) {
Provider.of<ServiceReportLastCallsProvider>(context, listen: false).reset();
Provider.of<ReasonProvider>(context, listen: false).reset();
Provider.of<ReasonProvider>(context, listen: false).serviceRequestId = widget.request.id!;
}
// _isLoading = true;
}
Asset? loanAvailabilityAsset;
@override
void dispose() {
_faultController.dispose();
_workPreformedController.dispose();
_partQtyController.dispose();
super.dispose();
}
void getRequestForWorkOrder() async {
_isLoading = true;
setState(() {});
_serviceReport.callRequest = await _serviceRequestsProvider.getCallRequestForWorkOrder(callId: widget.request.id!);
await _assetTypeProvider.getTypes();
_serviceReport.assignedEmployee = _serviceReport.callRequest?.assignedEmployee;
_serviceReport.equipmentStatus = _serviceReport.callRequest?.defectType;
_serviceReport.serviceType = Lookup(id: 65, name: "Interval", value: 1); // default value in service type as in web
_spareParts = await _partsProvider.getPartsList(assetId: widget.request.deviceId);
_isLoading = false;
setState(() {});
}
@override
Widget build(BuildContext context) {
_userProvider = Provider.of<UserProvider>(context);
_settingProvider = Provider.of<SettingProvider>(context);
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
_assetTypeProvider = Provider.of<ServiceStatusProvider>(context);
_partsProvider = Provider.of<PartsProvider>(context);
if (_serviceReport.callRequest == null) {
getRequestForWorkOrder();
}
_serviceReport.assetType = _assetTypeProvider.statuses?.firstWhere(
(element) => element.value == _serviceReport.callRequest?.assetType,
orElse: null,
);
return Scaffold(
key: _scaffoldKey,
appBar: DefaultAppBar(title: context.translation.newServiceReport),
body: SafeArea(
child: LoadingManager(
isLoading: _isLoading,
isFailedLoading: false,
stateCode: 200,
onRefresh: () async {},
child: Form(
key: _formKey,
child: Column(
children: [
SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Card(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
widget.request.hospitalName!.heading5(context),
8.height,
"${context.translation.assetNo}: ${widget.request.deviceNumber}".bodyText(context),
"${context.translation.callId}: ${widget.request.requestCode}".bodyText(context),
],
).paddingAll(16),
),
8.height,
ADatePicker(
label: context.translation.returnToService,
date: DateTime.tryParse(_serviceReport.visitDate ?? ""),
formatDateWithTime: true,
onDatePicker: (selectedDate) {
showTimePicker(
context: context,
initialTime: TimeOfDay.now(),
).then((selectedTime) {
if (selectedTime != null) {
DateTime selectedDateTime = DateTime(
selectedDate.year,
selectedDate.month,
selectedDate.day,
selectedTime.hour,
selectedTime.minute,
);
if (selectedDateTime.isBefore(DateTime.parse(widget.request.date!))) {
"Return to service Date time must be greater then request date".showToast;
return;
}
setState(() {
_serviceReport.visitDate = selectedDateTime.toIso8601String();
});
}
});
},
),
8.height,
AppTimer(
label: context.translation.workingHours,
timer: _serviceReport.timer,
enabled: _serviceReport.endofWorkTime == null,
onPick: (value) {},
onChange: (timer) async {
_serviceReport.timer = timer;
if (timer.startAt != null && timer.endAt != null) {
if (timer.durationInSecond != 0) {
_serviceReport.workingHours = num.tryParse((((timer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2) ?? "0");
} else {
timer.durationInSecond = (timer.endAt!.difference(timer.startAt!)).inSeconds;
String workingHours = (((timer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2);
_serviceReport.workingHours = num.tryParse(workingHours ?? "0");
}
}
return true;
},
),
8.height,
LoadingManager(
isLoading: _assetTypeProvider.isLoading,
isFailedLoading: _assetTypeProvider.statuses == null,
stateCode: _assetTypeProvider.stateCode,
onRefresh: () async {
_assetTypeProvider.reset();
await _assetTypeProvider.getTypes();
_serviceReport.assetType = _assetTypeProvider.statuses?.firstWhere(
(element) => element.value == _serviceReport.callRequest!.assetType,
orElse: null,
);
},
child: AppTextFormField(
labelText: context.translation.assetType,
initialValue: _serviceReport.assetType?.name,
textAlign: TextAlign.center,
enable: false,
style: Theme.of(context).textTheme.titleMedium,
),
),
8.height,
SingleItemDropDownMenu<Lookup, EquipmentStatusProvider>(
context: context,
title: context.translation.equipmentStatus,
initialValue: _serviceReport.equipmentStatus,
onSelect: (value) {
if (value != null) {
_serviceReport.equipmentStatus = value;
}
},
),
8.height,
SingleItemDropDownMenu<Lookup, ReasonProvider>(
context: context,
title: context.translation.reason,
initialValue: _serviceReport.reason,
onSelect: (value) {
_serviceReport.reason = value;
},
),
8.height,
SingleItemDropDownMenu<Lookup, ServiceTypeProvider>(
context: context,
title: context.translation.serviceType,
initialValue: _serviceReport.serviceType,
onSelect: (value) {
_serviceReport.serviceType = value;
},
),
8.height,
ServiceReportLastCallsMenu(
report: _serviceReport,
title: context.translation.callLastSituation,
parentId: "0", //widget.request.id,
onSelect: (status) {
_serviceReport.calllastSituation = status;
},
),
8.height,
ServiceReportFaultDescription(
requestId: widget.request.id,
initialValue: _serviceReport.faultDescription,
onSelect: (status) {
_serviceReport.faultDescription = status;
_workPreformedController.text = _serviceReport.faultDescription?.workPerformed ?? "";
},
),
8.height,
AppTextFormField(
labelText: context.translation.solution,
initialValue: _serviceReport.faultDescription?.workPerformed,
textAlign: TextAlign.center,
enable: false,
controller: _workPreformedController,
),
8.height,
SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>(
context: context,
title: context.translation.loanAvailability,
initialValue: _serviceReport.loanAvailablity,
onSelect: (status) {
if (status != null) {
setState(() {
_serviceReport.loanAvailablity = status;
if (_serviceReport.loanAvailablity!.value != 1) {
loanAvailabilityAsset = null;
_serviceReport.assetLoan = null;
}
});
}
},
),
if (_serviceReport.loanAvailablity?.value == 1) 8.height,
if (_serviceReport.loanAvailablity?.value == 1)
PickAsset(
device: loanAvailabilityAsset, // ?? _serviceReport.device,
onPickAsset: (asset) {
_serviceReport.assetLoan = AssetInfo.fromJson(asset.toJson());
setState(() {
loanAvailabilityAsset = asset;
});
},
),
8.height,
ServiceReportAssistantEmployeeMenu(
title: context.translation.assignAssistant,
assetId: _serviceReport.callRequest!.asset!.id!,
initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null,
onSelect: (employee) {
if (employee == null) {
_serviceReport.assistantEmployees = [];
} else {
_serviceReport.assistantEmployees = [employee.copyWith(id: 0)];
}
},
),
8.height,
AppTextFormField(
labelText: context.translation.travelingExpense,
initialValue: _serviceReport.travelingExpenses?.toString(),
textInputType: const TextInputType.numberWithOptions(decimal: true),
onSaved: (value) {
_serviceReport.travelingExpenses = double.tryParse(value) ?? 0.0;
},
),
8.height,
AppTextFormField(
labelText: context.translation.travelingHours,
initialValue: _serviceReport.travelingHours?.toString(),
textInputType: const TextInputType.numberWithOptions(decimal: true),
onSaved: (value) {
_serviceReport.travelingHours = double.tryParse(value) ?? 0.0;
},
),
8.height,
AppTextFormField(
initialValue: _serviceReport.comment,
labelText: context.translation.technicalComment,
alignLabelWithHint: true,
textInputType: TextInputType.multiline,
onSaved: (value) {
_serviceReport.comment = value;
},
),
8.height,
ServiceReportRepairLocation(
label: context.translation.repairLocation,
initialValue: _serviceReport.repairLocation,
onSelect: (status) {
_serviceReport.repairLocation = status;
},
),
8.height,
PartNoButton(
controller: _partQtyController,
spareParts: _spareParts,
initialList: _serviceReport.sparePartsWorkOrders,
onChange: (parts) {
_serviceReport.sparePartsWorkOrders = parts;
},
),
8.height,
AttachmentPicker(label: context.translation.attachImage, attachment: attachments),
8.height,
ESignature(
title: context.translation.engSign,
oldSignature: _serviceReport.engSignature,
newSignature: _serviceReport.localEngSignature,
onSaved: (signature) {
// if (signature == null || signature.isEmpty) {
// setState(() {});
// return;
// }
if (signature == null || signature.isEmpty) return;
_serviceReport.localEngSignature = signature;
_serviceReport.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
},
),
8.height,
ESignature(
title: context.translation.nurseSignature,
oldSignature: _serviceReport.nurseSignature,
newSignature: _serviceReport.localNurseSignature,
onSaved: (signature) {
// if (signature == null || signature.isEmpty) {
// setState(() {});
// return;
// }
if (signature == null || signature.isEmpty) return;
_serviceReport.localNurseSignature = signature;
_serviceReport.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
},
),
24.height,
],
),
).expanded,
AppFilledButton(
label: context.translation.submitRequest,
onPressed: () async {
if ((!_formKey.currentState!.validate()) || (!(await _serviceReport.validate(context)))) {
setState(() {});
return;
}
_formKey.currentState!.save();
_serviceReport.attachmentsWorkOrder ??= [];
if (attachments.isEmpty) _serviceReport.attachmentsWorkOrder = [];
for (var item in attachments) {
String fileName = CMRequestUtils.isLocalUrl(item.name??'') ? ("${item.name??''.split("/").last}|${base64Encode(File(item.name??'').readAsBytesSync())}") :item.name??'';
_serviceReport.attachmentsWorkOrder!.add(Attachment(id: item.id, name: fileName));
}
final user = Provider.of<UserProvider>(context, listen: false).user!;
await _serviceRequestsProvider.createServiceReport(context, report: _serviceReport, request: widget.request, user: user);
},
),
],
).paddingAll(16),
),
),
),
);
}
}

@ -1,398 +0,0 @@
// import 'dart:convert';
// import 'dart:io';
//
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_types_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/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/device/asset.dart';
// import 'package:test_sa/models/service_request/service_report.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/providers/service_request_providers/loan_availability_provider.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/part_no_button.dart';
// import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/report/service_report_last_call.dart';
//
// import '../../../../../attachment.dart';
// import '../../../../../models/lookup.dart';
// import '../../../../../models/service_request/spare_parts.dart';
// import '../../../../../models/service_request/wo_call_request.dart';
// import '../../../../../new_views/common_widgets/app_filled_button.dart';
// import '../../../../../new_views/common_widgets/app_text_form_field.dart';
// import '../../../../../new_views/common_widgets/default_app_bar.dart';
// import '../../../../../new_views/common_widgets/single_item_drop_down_menu.dart';
// import '../../../../../providers/service_request_providers/equipment_status_provider.dart';
// import '../../../../../providers/work_order/reason_provider.dart';
// import '../../../../../providers/work_order/service_type_provider.dart';
// import '../../../../widgets/date_and_time/date_picker.dart';
// import '../../../../widgets/e_signature/e_signature.dart';
// import '../../../../widgets/images/multi_image_picker.dart';
// import '../../../../widgets/status/report/service_report_assistant_employee_menu.dart';
// import '../../../../widgets/status/report/service_report_fault_description.dart';
// import '../../../../widgets/status/report/service_report_repair_location.dart';
// import '../../../../widgets/timer/app_timer.dart';
//
// class EditServiceReport extends StatefulWidget {
// static const String id = "/edit-service-report";
// final ServiceRequest request;
// final ServiceReport report;
//
// const EditServiceReport({Key? key, required this.request, required this.report}) : super(key: key);
//
// @override
// _EditServiceReportState createState() => _EditServiceReportState();
// }
// // todo @delete
// class _EditServiceReportState extends State<EditServiceReport> with TickerProviderStateMixin {
// late UserProvider _userProvider;
// late SettingProvider _settingProvider;
// late ServiceRequestsProvider _serviceRequestsProvider;
// List<SparePart> _spareParts = [];
// late ServiceReport _serviceReport;
// bool _isLoading = false;
// List<File> _files = [];
// final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
// final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
// final TextEditingController _faultController = TextEditingController();
// final TextEditingController _workPreformedController = TextEditingController();
// final TextEditingController _partQtyController = TextEditingController();
// late ServiceStatusProvider _assetTypeProvider;
// late CallRequest _callRequestForWorkOrder;
//
// Asset? loanAvailabilityAsset;
//
// @override
// void initState() {
// _serviceReport = widget.report;
// _files = widget.report.attachmentsWorkOrder?.map((e) => File(e.name!)).toList() ?? [];
// _spareParts = _serviceReport.sparePartsWorkOrders?.map((e) => e.sparePart!).toList() ?? [];
// super.initState();
// if (context.mounted) {
// Provider.of<ReasonProvider>(context, listen: false).reset();
// Provider.of<ReasonProvider>(context, listen: false).serviceRequestId = _serviceReport.callRequest!.id.toString();
// }
// }
//
// void getRequestForWorkOrder() async {
// _isLoading = true;
// setState(() {});
// _callRequestForWorkOrder = (await _serviceRequestsProvider.getCallRequestForWorkOrder(callId: widget.request.id!))!;
// _serviceReport.assignedEmployee = _callRequestForWorkOrder.assignedEmployee;
// await _assetTypeProvider.getTypes();
// _isLoading = false;
// setState(() {});
// }
//
// @override
// void dispose() {
// _faultController.dispose();
// _workPreformedController.dispose();
// _partQtyController.dispose();
// super.dispose();
// }
//
// @override
// Widget build(BuildContext context) {
// _userProvider = Provider.of<UserProvider>(context);
// _settingProvider = Provider.of<SettingProvider>(context);
// _serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
// _assetTypeProvider = Provider.of<ServiceStatusProvider>(context);
// _serviceReport.assetType = _assetTypeProvider.statuses?.firstWhere((element) => element.value == _callRequestForWorkOrder.assetType, orElse: null);
// return Scaffold(
// key: _scaffoldKey,
// appBar: DefaultAppBar(title: context.translation.updateWorkOrder),
// body: SafeArea(
// child: LoadingManager(
// isLoading: _isLoading,
// isFailedLoading: false,
// stateCode: 200,
// onRefresh: () async {},
// child: Form(
// key: _formKey,
// child: Column(
// children: [
// SingleChildScrollView(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.stretch,
// children: [
// Card(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.stretch,
// children: [
// widget.request.hospitalName!.heading5(context),
// 8.height,
// "${context.translation.assetNo}: ${widget.request.deviceNumber}".bodyText(context),
// "${context.translation.callId}: ${widget.request.requestCode}".bodyText(context),
// ],
// ).paddingAll(16),
// ),
// 8.height,
// ADatePicker(
// label: context.translation.returnToService,
// date: DateTime.tryParse(_serviceReport.visitDate ?? ""),
// formatDateWithTime: true,
// onDatePicker: (selectedDate) {
// showTimePicker(
// context: context,
// initialTime: TimeOfDay.now(),
// ).then((selectedTime) {
// if (selectedTime != null) {
// DateTime selectedDateTime = DateTime(
// selectedDate.year,
// selectedDate.month,
// selectedDate.day,
// selectedTime.hour,
// selectedTime.minute,
// );
// setState(() {
// _serviceReport.visitDate = selectedDateTime.toIso8601String();
// });
// }
// });
// },
// ),
// 8.height,
// AppTimer(
// label: context.translation.workingHours,
// timer: _serviceReport.timer,
// enabled: _serviceReport.endofWorkTime == null,
// onChange: (timer) async {
// _serviceReport.timer = timer;
// return true;
// },
// onPick: (value) {},
// ),
// 8.height,
// LoadingManager(
// isLoading: _assetTypeProvider.isLoading,
// isFailedLoading: _assetTypeProvider.statuses == null,
// stateCode: _assetTypeProvider.stateCode,
// onRefresh: () async {
// _assetTypeProvider.reset();
// await _assetTypeProvider.getTypes();
// _serviceReport.assetType = _assetTypeProvider.statuses?.firstWhere(
// (element) => element.value == _serviceReport.callRequest?.assetType,
// orElse: null,
// );
// },
// child: AppTextFormField(
// labelText: context.translation.assetType,
// initialValue: _serviceReport.assetType?.name,
// textAlign: TextAlign.center,
// enable: false,
// style: Theme.of(context).textTheme.titleMedium,
// ),
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, EquipmentStatusProvider>(
// context: context,
// title: context.translation.equipmentStatus,
// initialValue: _serviceReport.equipmentStatus,
// onSelect: (value) {
// _serviceReport.equipmentStatus = value;
// },
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, ReasonProvider>(
// context: context,
// title: context.translation.reason,
// initialValue: _serviceReport.reason,
// onSelect: (value) {
// if (value != null) {
// _serviceReport.reason = value;
// }
// },
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, ServiceTypeProvider>(
// context: context,
// title: context.translation.serviceType,
// initialValue: _serviceReport.serviceType,
// onSelect: (value) {
// _serviceReport.serviceType = value;
// },
// ),
// 8.height,
// ServiceReportLastCallsMenu(
// report: _serviceReport,
// title: context.translation.callLastSituation,
// parentId: widget.request.id,
// onSelect: (status) {
// _serviceReport.calllastSituation = status;
// },
// ),
// 8.height,
// ServiceReportFaultDescription(
// requestId: widget.request.id,
// initialValue: _serviceReport.faultDescription,
// onSelect: (status) {
// _serviceReport.faultDescription = status;
// _workPreformedController.text = _serviceReport.faultDescription?.workPerformed ?? "";
// },
// ),
// 8.height,
// AppTextFormField(
// labelText: context.translation.solution,
// initialValue: _serviceReport.faultDescription?.workPerformed,
// textAlign: TextAlign.center,
// enable: false,
// controller: _workPreformedController,
// ),
// 8.height,
// SingleItemDropDownMenu<Lookup, LoanAvailabilityProvider>(
// context: context,
// title: context.translation.loanAvailability,
// initialValue: _serviceReport.loanAvailablity,
// onSelect: (status) {
// if (status != null) {
// setState(() {
// _serviceReport.loanAvailablity = status;
// if (_serviceReport.loanAvailablity?.value != 1) {
// loanAvailabilityAsset = null;
// _serviceReport.assetLoan = null;
// }
// });
// }
// },
// ),
// if (_serviceReport.loanAvailablity?.value == 1) 8.height,
// if (_serviceReport.loanAvailablity?.value == 1)
// PickAsset(
// device: loanAvailabilityAsset, // ?? _serviceReport.device,
// onPickAsset: (asset) {
// _serviceReport.assetLoan = AssetInfo.fromJson(asset.toJson());
// setState(() {
// loanAvailabilityAsset = asset;
// });
// },
// ),
// if (_serviceReport.assetLoan != null && loanAvailabilityAsset == null)
// Card(child: "${context.translation.assetNumber}: ${_serviceReport.assetLoan?.assetNumber}".bodyText(context).paddingAll(16)),
// 8.height,
// ServiceReportAssistantEmployeeMenu(
// title: context.translation.assignAssistant,
// assetId: _serviceReport.callRequest!.asset!.id!,
// initialValue: (_serviceReport.assistantEmployees?.isNotEmpty ?? false) ? _serviceReport.assistantEmployees?.first : null,
// onSelect: (employee) {
// if (employee == null) {
// _serviceReport.assistantEmployees = [];
// } else {
// _serviceReport.assistantEmployees = [employee.copyWith(id: 0)];
// }
// },
// ),
// 8.height,
// AppTextFormField(
// labelText: context.translation.travelingExpense,
// initialValue: _serviceReport.travelingExpenses?.toString(),
// textInputType: TextInputType.number,
// onSaved: (value) {
// _serviceReport.travelingExpenses = double.tryParse(value) ?? 0.0;
// },
// ),
// 8.height,
// AppTextFormField(
// labelText: context.translation.travelingHours,
// initialValue: _serviceReport.travelingHours?.toString(),
// textInputType: TextInputType.number,
// onSaved: (value) {
// _serviceReport.travelingHours = double.tryParse(value) ?? 0.0;
// },
// ),
// 8.height,
// AppTextFormField(
// initialValue: _serviceReport.comment,
// labelText: context.translation.technicalComment,
// alignLabelWithHint: true,
// textInputType: TextInputType.multiline,
// onSaved: (value) {
// _serviceReport.comment = value;
// },
// ),
// 8.height,
// ServiceReportRepairLocation(
// label: context.translation.repairLocation,
// initialValue: _serviceReport.repairLocation,
// onSelect: (status) {
// _serviceReport.repairLocation = status;
// },
// ),
// 8.height,
// PartNoButton(
// controller: _partQtyController,
// spareParts: _spareParts,
// initialList: _serviceReport.sparePartsWorkOrders,
// onChange: (parts) {
// _serviceReport.sparePartsWorkOrders = parts;
// },
// ),
// 8.height,
// MultiFilesPicker(label: context.translation.attachImage, files: _files),
// 8.height,
// ESignature(
// title: context.translation.engSign,
// oldSignature: _serviceReport.engSignature,
// newSignature: _serviceReport.localEngSignature,
// onSaved: (signature) {
// if (signature == null || signature.isEmpty) {
// setState(() {});
// return;
// }
// _serviceReport.localEngSignature = signature;
// _serviceReport.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
// },
// ),
// 8.height,
// ESignature(
// title: context.translation.nurseSignature,
// oldSignature: _serviceReport.nurseSignature,
// newSignature: _serviceReport.localNurseSignature,
// onSaved: (signature) {
// if (signature == null || signature.isEmpty) {
// setState(() {});
// return;
// }
// _serviceReport.localNurseSignature = signature;
// _serviceReport.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
// },
// ),
// 24.height,
// ],
// ),
// ).expanded,
// AppFilledButton(
// label: context.translation.updateRequest,
// onPressed: () async {
// if ((!_formKey.currentState!.validate()) || (!(await _serviceReport.validate(context)))) {
// setState(() {});
// return;
// }
// _formKey.currentState!.save();
// _serviceReport.attachmentsWorkOrder ??= [];
// if (_files.isEmpty) _serviceReport.attachmentsWorkOrder = [];
// try {
// for (var file in _files) {
// _serviceReport.attachmentsWorkOrder!.add(Attachment(id: 0, name: "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}"));
// }
// } catch (error) {
// print(error);
// }
//
// await _serviceRequestsProvider.updateServiceReport(context, report: _serviceReport);
// },
// ),
// ],
// ).paddingAll(16),
// ),
// ),
// ),
// );
// }
// }

@ -1,45 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/models/service_request/search_work_order.dart';
// import 'package:test_sa/models/service_request/service_report.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/views/widgets/loaders/app_loading.dart';
// import 'package:test_sa/views/widgets/loaders/failed_loading.dart';
//
// import 'edit_service_report.dart';
// todo @delete
// class UpdateServiceReport extends StatefulWidget {
// final ServiceRequest request;
// final SearchWorkOrder workOrder;
//
// const UpdateServiceReport({Key? key, required this.request, required this.workOrder}) : super(key: key);
//
// @override
// _UpdateServiceReportState createState() => _UpdateServiceReportState();
// }
//
// class _UpdateServiceReportState extends State<UpdateServiceReport> {
// @override
// Widget build(BuildContext context) {
// ServiceRequestsProvider().getSingleServiceReport(context, reportId: widget.workOrder.id!.toInt());
// return Scaffold(
// body: FutureBuilder<ServiceReport>(
// future: ServiceRequestsProvider().getSingleServiceReport(context, reportId: widget.workOrder.id!.toInt()),
// builder: (BuildContext context, AsyncSnapshot<ServiceReport> snapshot) {
// if (snapshot.hasError) {
// return FailedLoading(
// message: snapshot.error.toString(),
// onReload: () {
// setState(() {});
// },
// );
// }
// if (snapshot.connectionState == ConnectionState.done) {
// return EditServiceReport(report: snapshot.data as ServiceReport, request: widget.request);
// }
// return const Center(child: ALoading());
// },
// ),
// );
// }
// }

@ -1,126 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/service_request/service_request.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/default_app_bar.dart';
// import 'package:test_sa/views/pages/sub_workorder/create_sub_workorder_page.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/update_service_report.dart';
// import 'package:test_sa/views/widgets/images/files_list.dart';
// import 'package:test_sa/views/widgets/loaders/app_loading.dart';
//
// import '../../../../../controllers/providers/api/user_provider.dart';
// import '../../../../../models/enums/user_types.dart';
// import '../../../../../models/service_request/search_work_order.dart';
// import '../../../../../models/service_request/service_report.dart';
// import '../../../../widgets/requests/request_status.dart';
//
// class WorkOrderDetailsPage extends StatelessWidget {
// static const String id = "/work_order_details_page";
// final SearchWorkOrder? workOrder;
// final ServiceRequest? serviceRequest;
//// //todo @delete
// const WorkOrderDetailsPage({Key? key, this.workOrder, this.serviceRequest}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// UserProvider userProvider = Provider.of<UserProvider>(context);
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.activities),
// body: FutureBuilder<ServiceReport>(
// future: Provider.of<ServiceRequestsProvider>(context).getSingleServiceReport(context, reportId: workOrder!.id!.toInt()),
// builder: (context, snapshot) {
// final workOrderDetails = snapshot.data;
// return Column(
// children: [
// snapshot.connectionState == ConnectionState.waiting
// ? const Expanded(child: ALoading())
// : SingleChildScrollView(
// child: Row(
// mainAxisSize: MainAxisSize.min,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// StatusLabel(
// label: workOrderDetails?.currentSituation?.name,
// textColor: AppColor.getRequestStatusTextColorByName(context, workOrderDetails?.currentSituation?.name),
// backgroundColor: AppColor.getRequestStatusColorByName(context, workOrderDetails?.currentSituation?.name),
// ),
// 8.height,
// Text(serviceRequest!.requestCode!, style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)),
// 8.height,
// Text(
// '${context.translation.assetName}: ${workOrderDetails?.callRequest?.asset?.modelDefinition?.assetName?.cleanupWhitespace.capitalizeFirstOfEach}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.orderWorkNumber}: ${workOrderDetails!.workOrderNo}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text(
// '${context.translation.assignedEmployee}: ${workOrderDetails.assignedEmployee?.name ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// ),
// Text('${context.translation.assetSN}: ${workOrderDetails.callRequest?.asset?.assetSerialNo ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.assetName}: ${workOrderDetails.callRequest?.asset?.modelDefinition?.assetName ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.assetNumber}: ${workOrderDetails.callRequest?.asset?.assetNumber ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.model}: ${workOrderDetails.callRequest?.asset?.modelDefinition?.modelName ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.site}: ${workOrderDetails.callRequest?.asset?.site?.custName ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.currentSituation}: ${workOrderDetails.currentSituation?.name}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('Situation: ${workOrderDetails.calllastSituation?.name ?? '' ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.startDate}: ${workOrderDetails.startofWorkTime?.toServiceRequestDetailsFormat ?? "" ?? '' ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// Text('${context.translation.endDate}: ${workOrderDetails.endofWorkTime?.toServiceRequestDetailsFormat ?? "" ?? '' ?? ""}',
// style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// if (workOrderDetails.attachmentsWorkOrder?.isNotEmpty ?? false) ...[
// 8.height,
// const Divider().defaultStyle(context),
// FilesList(images: workOrderDetails.attachmentsWorkOrder!.map((e) => e.name!).toList()),
// ],
// ],
// ).expanded,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// children: [
// if (userProvider.user!.type == UsersTypes.engineer && serviceRequest?.statusValue != 5 && serviceRequest?.statusValue != 3)
// Align(alignment: AlignmentDirectional.centerEnd, child: "edit_icon".toSvgAsset(height: 21, width: 21)).onPress(() {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateServiceReport(workOrder: workOrder!, request: serviceRequest!)));
// }),
// // if (userProvider.user.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) 8.height,
// // Text(workOrderDetails.endofWorkTime?.toServiceRequestCardFormat ?? "",
// // style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20)),
// ],
// )
// ],
// ).toShadowContainer(context),
// ).paddingAll(16).expanded,
// if (userProvider.user!.type == UsersTypes.engineer && serviceRequest?.statusValue != 5 && serviceRequest?.statusValue != 3)
// AppFilledButton(
// onPressed: () {
// Navigator.of(context).push(
// MaterialPageRoute(builder: (context) => CreateSubWorkOrderPage(workOrder: workOrder)),
// );
// },
// label: context.translation.createSubWorkOrder,
// ).paddingAll(16),
// ],
// );
// }),
// );
// }
// }

@ -1,127 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.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/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/enums/user_types.dart';
// import 'package:test_sa/models/service_request/search_work_order.dart';
// import 'package:test_sa/models/service_request/service_request.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/cm_module/views/components/activity_card_view.dart';
// import 'package:test_sa/views/pages/user/requests/work_order/create_service_report.dart';
// import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
//// //todo @delete
// class WorkOrderListPage extends StatelessWidget {
// static const String id = "/work-order-list";
// final ServiceRequest? serviceRequest;
//
// WorkOrderListPage({Key? key, this.serviceRequest}) : super(key: key);
//
// late ServiceRequestsProvider serviceRequestsProvider;
// late UserProvider _userProvider;
//
// @override
// Widget build(BuildContext context) {
// List<SearchWorkOrder> workOrders = [];
// _userProvider = Provider.of<UserProvider>(context);
// serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
// return Scaffold(
// appBar: DefaultAppBar(title: context.translation.activities),
// //backgroundColor: const Color(0xfff8f9fb),
// body: SafeArea(
// child: FutureBuilder(
// future: serviceRequestsProvider.searchWorkOrders(callId: serviceRequest!.requestCode!),
// builder: (context, snap) {
// if (snap.connectionState == ConnectionState.waiting) return const Center(child: CircularProgressIndicator());
// workOrders = snap.data as List<SearchWorkOrder>;
// return Column(
// children: [
// (workOrders.isEmpty)
// ? NoDataFound(message: context.translation.noDataFound).expanded
// : ListView.separated(
// padding: const EdgeInsets.all(16),
// itemCount: workOrders.length,
// separatorBuilder: (czt, index) => 8.height,
// itemBuilder: (context, index) {
// return ActivityCardView(workOrders[index], serviceRequest!);
//
// //older code....
// // Row(
// // crossAxisAlignment: CrossAxisAlignment.start,
// // children: [
// // Column(
// // mainAxisSize: MainAxisSize.min,
// // crossAxisAlignment: CrossAxisAlignment.start,
// // children: [
// // StatusLabel(
// // label: workOrders[index].currentSituation.name,
// // textColor: AppColor.getRequestStatusTextColorByName(context, workOrders[index].currentSituation.name),
// // backgroundColor: AppColor.getRequestStatusColorByName(context, workOrders[index].currentSituation.name),
// // ),
// // 8.height,
// // Text(serviceRequest.requestCode, style: AppTextStyles.heading5.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50)),
// // Text(
// // '${context.translation.assetName}: ${workOrders[index].callRequest.asset.modelDefinition.assetName?.cleanupWhitespace?.capitalizeFirstOfEach}',
// // style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// // ),
// // Text(
// // '${context.translation.currentSituation}: ${workOrders[index].currentSituation.name}',
// // style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
// // ),
// // 16.height,
// // Row(
// // mainAxisSize: MainAxisSize.min,
// // children: [
// // Text(
// // context.translation.viewDetails,
// // style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
// // ),
// // 4.width,
// // Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
// // ],
// // ),
// // ],
// // ).onPress(() {
// // Navigator.push(
// // context,
// // MaterialPageRoute(builder: (context) => WorkOrderDetailsPage(workOrder: workOrders[index], serviceRequest: serviceRequest)),
// // );
// // }).expanded,
// // Column(
// // crossAxisAlignment: CrossAxisAlignment.end,
// // mainAxisAlignment: MainAxisAlignment.start,
// // children: [
// // if (_userProvider.user.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3)
// // "edit".toSvgAsset(height: 48, width: 48).onPress(() {
// // Navigator.of(context).push(
// // MaterialPageRoute(builder: (_) => UpdateServiceReport(request: serviceRequest, workOrder: workOrders[index])),
// // );
// // }),
// // if (_userProvider.user.type == UsersTypes.engineer && serviceRequest.statusValue != 5 && serviceRequest.statusValue != 3) 8.height,
// // Text(workOrders[index].visitDate?.toServiceRequestCardFormat ?? "",
// // textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : const Color(0xFF3B3D4A))),
// // ],
// // )
// // ],
// // ).toShadowContainer(context);
// },
// ).expanded,
// if (_userProvider.user!.type == UsersTypes.engineer && (serviceRequest!.statusValue != 5 && serviceRequest!.statusValue != 3))
// AppFilledButton(
// label: context.translation.createWorkOrder,
// maxWidth: true,
// onPressed: () {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => CreateServiceReport(request: serviceRequest!)));
// },
// ).paddingOnly(start: 16, end: 16, bottom: 16)
// ],
// );
// },
// ),
// ),
// );
// }
// }

@ -1,68 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/device/device_transfer.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
//
// import '../../../extensions/text_extensions.dart';
//
// class DeviceTransferItem extends StatelessWidget {
// final int index;
// final DeviceTransfer item;
// final Function(DeviceTransfer) onPressed;
//
// const DeviceTransferItem({Key? key,required this.item,required this.onPressed,required this.index}) : super(key: key);
//// //todo @delete
// @override
// Widget build(BuildContext context) {
// return Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.stretch,
// children: [
// context.translation.deviceTransferRequest.heading5(context),
// '${context.translation.from} : ${item.senderAssignedEmployeeName}'.bodyText(context),
// '${context.translation.to} : ${item.receiverAssignedEmployeeName}'.bodyText(context),
// 8.height,
// Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.viewDetails,
// style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)),
// ),
// 4.width,
// const Icon(
// Icons.arrow_forward,
// color: Color(0xFF4A8DB7),
// size: 14,
// )
// ],
// ).onPress(() => onPressed(item)),
// ],
// ).expanded,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// children: [
// /// TBD
// // StatusLabel(
// // label: '',
// // id: 0,
// // textColor: AColors.getPriorityStatusTextColor(0),
// // backgroundColor: AColors.getPriorityStatusColor(0)),
// // 8.width,
//
// /// TBD
// //StatusLabel(label: '', textColor: AColors.getRequestStatusTextColor(0), backgroundColor: AColors.getRequestStatusColor(0)),
// 1.width,
// Text(item.createdOn != null ? item.createdOn!.toServiceRequestCardFormat : "",
// textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : const Color(0xFF3B3D4A))),
// ],
// ),
// ],
// ).toShadowContainer(context).paddingOnly(bottom: 8);
// }
// }

@ -1,41 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/models/device/device_transfer.dart';
// import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart';
// import 'package:test_sa/views/widgets/device_trancfer/device_transfer_item.dart';
// import 'package:test_sa/views/widgets/loaders/lazy_loading.dart';
// import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
//
// class DeviceTransferList extends StatelessWidget {
// final List<DeviceTransfer> items;
// final bool nextPage;
// final Future<void> Function() onLazyLoad;
//// //todo @delete
// const DeviceTransferList({Key? key,required this.items,required this.nextPage,required this.onLazyLoad}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// if (items.isEmpty) {
// return NoDataFound(
// message: context.translation.noServiceRequestFound,
// );
// }
// return LazyLoading(
// nextPage: nextPage,
// onLazyLoad: onLazyLoad,
// child: ListView.builder(
// //physics: const BouncingScrollPhysics(),
// itemCount: items.length,
// padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
// itemBuilder: (context, itemIndex) {
// return DeviceTransferItem(
// index: itemIndex,
// item: items[itemIndex],
// onPressed: (model) async {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: model)));
// },
// );
// }),
// );
// }
// }

@ -1,135 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
//
// import '../../../extensions/text_extensions.dart';
// import '../../../models/new_models/gas_refill_model.dart';
// import '../../../new_views/app_style/app_color.dart';
// import '../requests/request_status.dart';
//
// class GasRefillItem extends StatelessWidget {
// final int index;
// final GasRefillModel item;
// final Function(GasRefillModel) onPressed;
// todo @delete
// const GasRefillItem({Key? key,required this.item,required this.onPressed,required this.index}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// // StatusLabel(
// // label: item.priority,
// // textColor: AppColor.getRequestStatusTextColorByName(context, item.priority),
// // backgroundColor: AppColor.getRequestStatusColorByName(context, item.priority),
// // ),
// StatusLabel(
// label: item.status!.name,
// textColor: AppColor.getRequestStatusTextColor(context, item.status!.value!),
// backgroundColor: AppColor.getRequestStatusColor(context, item.status!.value!),
// ),
// 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))),
// ],
// ),
// 8.height,
// context.translation.gasRefillRequest.heading5(context),
// '${context.translation.gasType}: ${item.gasRefillDetails![0].gasType!.name}'.bodyText(context),
// '${context.translation.site}: ${item.site!.name}'.bodyText(context),
// 8.height,
// Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.viewDetails,
// style: AppTextStyles.bodyText.copyWith(color: const Color(0xFF4A8DB7)),
// ),
// 4.width,
// const Icon(
// Icons.arrow_forward,
// color: Color(0xFF4A8DB7),
// size: 14,
// )
// ],
// ).onPress(() => onPressed(item)),
// // Row(
// // children: [
// // Expanded(
// // child: Column(
// // crossAxisAlignment: CrossAxisAlignment.start,
// // children: [
// // Text(
// // item.title ?? "-----",
// // style: Theme.of(context).textTheme.titleLarge.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold),
// // ),
// // Row(
// // children: [
// // Expanded(
// // child: Text(
// // subtitle.hospital,
// // style: Theme.of(context).textTheme.titleSmall.copyWith(
// // color: onItemColor,
// // ),
// // ),
// // ),
// // if (item.clientName != null)
// // Text(
// // item.clientName,
// // style: Theme.of(context).textTheme.titleSmall.copyWith(
// // color: onItemColor,
// // ),
// // ),
// // ],
// // ),
// // Divider(color: onItemColor),
// // Row(
// // children: [
// // Expanded(
// // child: Text(subtitle.status, style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)),
// // ),
// // if (item.status?.id != null) StatusLabel(label: item.status.name, color: AColors.getGasStatusColor(item.status.id)),
// // ],
// // ),
// // if (item?.expectedDate != null) Divider(color: onItemColor),
// // if (item?.expectedDate != null)
// // Row(
// // mainAxisAlignment: MainAxisAlignment.spaceBetween,
// // children: [
// // Text("Expected Date", style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)),
// // Text(item.expectedDate.toIso8601String().split("T").first, style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)),
// // ],
// // ),
// // if (item?.details?.isNotEmpty ?? false) Divider(color: onItemColor),
// // Row(
// // mainAxisAlignment: MainAxisAlignment.spaceBetween,
// // crossAxisAlignment: CrossAxisAlignment.start,
// // children: [
// // if (item?.details?.isNotEmpty ?? false) Text("Gas Type", style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor)),
// // Column(
// // crossAxisAlignment: CrossAxisAlignment.end,
// // children: item.details
// // .map(
// // (gas) => gas?.type?.name?.isNotEmpty ?? false
// // ? Text(gas?.type?.name, style: Theme.of(context).textTheme.titleSmall.copyWith(color: onItemColor))
// // : const SizedBox.shrink(),
// // )
// // .toList(),
// // )
// // ],
// // ),
// // ],
// // ),
// // ),
// // ],
// // ),
// ],
// ).toShadowContainer(context).paddingOnly(bottom: 8);
// }
// }

@ -1,50 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/modules/tm_module/gas_refill/gas_refill_details.dart';
// import 'package:test_sa/views/widgets/gas_refill/gas_refill_item.dart';
// import 'package:test_sa/views/widgets/loaders/lazy_loading.dart';
// import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
//
// import '../../../models/new_models/gas_refill_model.dart';
// todo @delete
// class GasRefillList extends StatefulWidget {
// final List<GasRefillModel> items;
// final bool nextPage;
// final Future<void> Function() onLazyLoad;
//
// const GasRefillList({Key? key,required this.items,required this.nextPage,required this.onLazyLoad}) : super(key: key);
//
// @override
// State<GasRefillList> createState() => _GasRefillListState();
// }
//
// class _GasRefillListState extends State<GasRefillList> {
// @override
// Widget build(BuildContext context) {
// if (widget.items.isEmpty) {
// return NoDataFound(
// message: context.translation.noServiceRequestFound,
// );
// }
// return LazyLoading(
// nextPage: widget.nextPage,
// onLazyLoad: widget.onLazyLoad,
// child: ListView.builder(
// //physics: const BouncingScrollPhysics(),
// itemCount: widget.items.length,
// padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
// itemBuilder: (context, itemIndex) {
// return GasRefillItem(
// index: itemIndex,
// item: widget.items[itemIndex],
// onPressed: (model) {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => GasRefillDetailsPage(model: model))).then((value) {
// model = value;
// setState(() {});
// });
// },
// );
// }),
// );
// }
// }

@ -1,49 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/models/hospital.dart';
// import 'package:test_sa/views/app_style/sizing.dart';
// import 'package:test_sa/views/widgets/hospitals/single_hospital_picker.dart';
//
// class HospitalButton extends StatelessWidget {
// final Function(Hospital) onHospitalPick;
// final Hospital hospital;
//
// const HospitalButton({Key? key, this.hospital, this.onHospitalPick}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// return ElevatedButton(
// style: ElevatedButton.styleFrom(
// elevation: 0,
// // foregroundColor: AColors.primaryColor,
// // backgroundColor: AColors.inputFieldBackgroundColor,
// padding: EdgeInsets.symmetric(horizontal: 8, vertical: 8),
// shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context))),
// ),
// child: Row(
// children: [
// Expanded(
// child: Padding(
// padding: const EdgeInsets.symmetric(horizontal: 8),
// child: Text(
// hospital?.name ?? context.translation.pickHospital,
// // style: Theme.of(context).textTheme.bodyText1.copyWith(fontSize: 14, color: AColors.grey3A),
// // textScaleFactor: AppStyle.getScaleFactor(context),
// textDirection: TextDirection.rtl,
// textAlign: TextAlign.left,
// ),
// ),
// ),
// const Icon(
// Icons.keyboard_arrow_down,
// size: 28, /*color: AColors.grey3A*/
// ),
// ],
// ),
// onPressed: () async {
// Hospital _hospital = await Navigator.of(context).pushNamed(SingleHospitalPicker.id) as Hospital;
// onHospitalPick(_hospital);
// });
// }
// }

@ -1,91 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/string_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/all_requests_and_count_model.dart';
// import 'package:test_sa/models/enums/user_types.dart';
// import 'package:test_sa/models/ppm/ppm.dart';
// import 'package:test_sa/modules/pm_module/ppm_wo/ppm_details_page.dart';
// import 'package:test_sa/new_views/app_style/app_color.dart';
//
// import '../../../controllers/providers/api/user_provider.dart';
// import '../../../extensions/text_extensions.dart';
// import '../requests/request_status.dart';
//todo @delete
// class PpmItem extends StatelessWidget {
// final Ppm ppm;
// final RequestsDetails? request;
//
// const PpmItem({Key? key, required this.ppm, this.request}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// UserProvider userProvider = Provider.of<UserProvider>(context);
// return Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Row(
// children: [
// if (request?.priority != null)
// StatusLabel(
// label: request!.priority,
// textColor: AppColor.getRequestStatusTextColorByName(context, request!.priority!),
// backgroundColor: AppColor.getRequestStatusColorByName(context, request!.priority!),
// ),
// if (request?.priority != null) 8.width,
// StatusLabel(
// label: ppm.visitStatusName,
// id: ppm.deviceStatusId!.toInt(),
// textColor: AppColor.getRequestStatusTextColorByName(context, ppm.visitStatusName!),
// backgroundColor: AppColor.getRequestStatusColorByName(context, ppm.visitStatusName!),
// ),
// 1.width.expanded,
// ],
// ),
// 8.height,
// ppm.assetName!.heading5(context),
// 8.height,
// '${context.translation.assetNumber}: ${ppm.assetNumber}'.bodyText(context),
// '${context.translation.assetSN}: ${ppm.assetSerialNo}'.bodyText(context),
// '${context.translation.code}: ${ppm.visitCode}'.bodyText(context),
// 16.height,
// Row(
// mainAxisSize: MainAxisSize.min,
// children: [
// Text(
// context.translation.viewDetails,
// style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
// ),
// 4.width,
// Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
// ],
// ).onPress(() {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: ppm.id!.toInt())));
// }),
// ],
// ).expanded,
// 8.width,
// Column(
// crossAxisAlignment: CrossAxisAlignment.end,
// children: [
// if (userProvider.user!.type == UsersTypes.engineer && (ppm.deviceStatusId != 270 || ppm.deviceStatusId != 269))
// "edit".toSvgAsset(height: 48, width: 48).onPress(() {
// // Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdatePpm(ppm: ppm, details: request, planPreventiveVisit: null,)));
// }),
// if (userProvider.user!.type == UsersTypes.engineer && (ppm.deviceStatusId != 270 || ppm.deviceStatusId != 269)) 8.height,
// Text(
// ppm.createdOn?.toServiceRequestCardFormat ?? "",
// textAlign: TextAlign.end,
// style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
// ),
// ],
// )
// ],
// ).toShadowContainer(context).paddingOnly(bottom: 8);
// }
// }

@ -1,79 +0,0 @@
//
// import 'package:flutter/material.dart';
//
// import 'package:qr_code_scanner/qr_code_scanner.dart';
// import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
// todo @delete
// class QrScannerDialog extends StatefulWidget {
// @override
// State<QrScannerDialog> createState() => _QrScannerDialogState();
// }
//
// class _QrScannerDialogState extends State<QrScannerDialog> {
// final GlobalKey qrKey = GlobalKey(debugLabel: 'QR');
// Barcode? result;
// QRViewController? controller;
// bool isPicked = false;
//
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// body: Container(
// width: double.infinity,
// height: double.infinity,
// color: Colors.white,
// child: Column(
// children: [
// Expanded(
// flex: 1,
// child: QRView(
// key: qrKey,
// onQRViewCreated: _onQRViewCreated,
// ),
// ),
// // Expanded(
// // flex: 1,
// // child: Center(
// // child: (result != null)
// // ? Text(
// // 'Barcode Type: ${result!.format} Data: ${result!.code}')
// // : Text('Scan a code'),
// // ),
// // ),
// Padding(
// padding: const EdgeInsets.all(12.0),
// child: AppFilledButton(
// label: "LocaleKeys.cancel.tr()",
// onPressed: () {
// Navigator.pop(context);
// },
// ),
// ),
// ],
// ),
// ),
// );
// }
//
// void _onQRViewCreated(QRViewController controller) {
// this.controller = controller;
//
// controller.scannedDataStream.listen((scanData) {
// setState(() {
// result = scanData;
// if (!isPicked) {
// isPicked = true;
// Navigator.pop(context, result!.code);
// }
// });
// });
// controller.pauseCamera();
// controller.resumeCamera();
// }
//
// @override
// void dispose() {
// controller?.dispose();
// super.dispose();
// }
// }

@ -1,48 +0,0 @@
//
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/views/pages/user/requests/service_request_details.dart';
// import 'package:test_sa/views/widgets/loaders/lazy_loading.dart';
// import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
// import 'package:test_sa/views/widgets/requests/service_request_item.dart';
//// //todo @delete
// class ServiceRequestsList extends StatelessWidget {
// final List<ServiceRequest> requests;
// final bool nextPage;
// final Future<void> Function() onLazyLoad;
//
// const ServiceRequestsList({Key? key,required this.requests,required this.nextPage,required this.onLazyLoad}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// print('servies request page');
// if (requests.isEmpty) {
// return NoDataFound(
// message: context.translation.noServiceRequestFound,
// );
// }
// return LazyLoading(
// nextPage: nextPage,
// onLazyLoad: onLazyLoad,
// child: ListView.separated(
// //physics: BouncingScrollPhysics(),
// itemCount: requests.length,
// padding: const EdgeInsets.all(16),
// separatorBuilder: (cxt, index) => 8.height,
// itemBuilder: (context, itemIndex) {
// return ServiceRequestItem(
// index: itemIndex,
// request: requests[itemIndex],
// onPressed: (request) {
// Navigator.of(context).push(MaterialPageRoute(
// builder: (_) => ServiceRequestDetailsPage(
// serviceRequest: request,
// )));
// },
// );
// }),
// );
// }
// }

@ -1,41 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/employee/nurse_provider.dart';
// import 'package:test_sa/models/employee.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/nurse_employee_menu.dart';
// TODO DELETE
// class NurseMenu extends StatelessWidget {
// final Function(Employee?) onSelect; // Now accepts nullable Employee
// final Employee? initialValue; // Now nullable
//
// final String title; // Now nullable
// final bool enable;
// final int? siteId; // Now nullable
//
// const NurseMenu({Key? key, required this.onSelect, required this.title, this.initialValue, this.enable = true, this.siteId}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// final menuProvider = Provider.of<NurseProvider>(context, listen: false);
// if (siteId != null) {
// menuProvider.siteId = siteId!;
// }
// return LoadingManager(
// isLoading: menuProvider.isLoading,
// isFailedLoading: menuProvider.nursesList == null,
// stateCode: menuProvider.stateCode,
// onRefresh: menuProvider.getData,
// // Directly pass the getData method
// child: NurseEmployeeMenu(
// initialValue: initialValue,
// title: title,
// list: menuProvider.nursesList ?? [],
// // Provide an empty list if null
// onSelect: onSelect,
// // Pass the onSelect function directly
// enable: enable,
// ),
// );
// }
// }

@ -1,140 +0,0 @@
// import 'package:flutter/material.dart';
// import 'package:test_sa/extensions/context_extension.dart';
// import 'package:test_sa/extensions/int_extensions.dart';
// import 'package:test_sa/extensions/text_extensions.dart';
// import 'package:test_sa/extensions/widget_extensions.dart';
// import 'package:test_sa/models/employee.dart';
// import 'package:test_sa/views/widgets/bottom_sheets/selection_bottom_sheet.dart';
//
// import '../../../new_views/app_style/app_color.dart';
//// TODO DELETE
// class NurseEmployeeMenu extends StatefulWidget {
// final List<Employee>? list;
// final Employee? initialValue;
// final Function(Employee?) onSelect;
// final String title;
// final bool? enable;
//
// const NurseEmployeeMenu({Key? key, this.list, required this.title, required this.onSelect, this.initialValue, this.enable = true}) : super(key: key);
//
// @override
// _SingleNurseEmployeeMenuState createState() => _SingleNurseEmployeeMenuState();
// }
//
// class _SingleNurseEmployeeMenuState extends State<NurseEmployeeMenu> {
// Employee? _selectedStatus;
//
// @override
// void setState(VoidCallback fn) {
// if (mounted) super.setState(fn);
// }
//
// @override
// void didUpdateWidget(covariant NurseEmployeeMenu oldWidget) {
// if (widget.initialValue != null) {
// final result = widget.list?.where((element) {
// return element.id == widget.initialValue?.id;
// }) ??
// [];
// if (result.isNotEmpty) {
// _selectedStatus = result.first;
// } else {
// _selectedStatus = null;
// }
// if ((widget.initialValue?.id ?? "") != (_selectedStatus?.id ?? "")) {
// widget.onSelect(_selectedStatus!);
// }
// } else {
// _selectedStatus = null;
// }
// super.didUpdateWidget(oldWidget);
// }
//
// @override
// void initState() {
// if (widget.initialValue != null) {
// final result = widget.list?.where((element) {
// return element.id == widget.initialValue?.id;
// }) ??
// [];
// if (result.isNotEmpty) _selectedStatus = result.first;
// if (widget.initialValue?.id != _selectedStatus?.id) {
// widget.onSelect(_selectedStatus);
// }
// }
//
// super.initState();
// }
//
// @override
// Widget build(BuildContext context) {
// return Container(
// height: 60.toScreenHeight,
// width: double.infinity,
// padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth),
// decoration: BoxDecoration(
// color: context.isDark && (widget.enable == false)
// ? AppColor.neutral50
// : (widget.enable == false)
// ? AppColor.neutral40
// : AppColor.background(context),
// borderRadius: BorderRadius.circular(10),
// boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
// ),
// child: Stack(
// alignment: Alignment.centerLeft,
// children: [
// PositionedDirectional(
// end: 0,
// child: Icon(
// Icons.keyboard_arrow_down_rounded,
// color: widget.enable == null ? null : Colors.grey,
// )),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// Text(
// widget.title,
// style: Theme.of(context).textTheme.bodySmall?.copyWith(color: context.isDark ? null : AppColor.neutral20, fontWeight: FontWeight.w500),
// ),
// Text(
// _selectedStatus?.name?.cleanupWhitespace.capitalizeFirstOfEach ?? context.translation.select,
// style: Theme.of(context).textTheme.bodyLarge,
// ),
// ],
// ),
// ],
// ),
// ).onPress(((widget.enable ?? false)
// ? () async {
// _selectedStatus = (await showModalBottomSheet(
// context: context,
// isScrollControlled: true,
// shape: const RoundedRectangleBorder(
// borderRadius: BorderRadius.vertical(
// top: Radius.circular(20),
// ),
// ),
// clipBehavior: Clip.antiAliasWithSaveLayer,
// builder: (BuildContext context) => SelectionBottomSheet(
// items: widget.list ?? [],
// selectedItem: _selectedStatus,
// title: widget.title,
// onSelect: (selectedT) {
// setState(() {
// _selectedStatus = selectedT;
// });
// widget.onSelect(selectedT);
// },
// builderString: (emp) => emp?.name ?? "",
// ),
// )) as Employee?;
//
//
// // if (_selectedStatus != null) setState(() {});
// // widget.onSelect(_selectedStatus!);
// }
// : null));
// }
// }

@ -1,72 +0,0 @@
///todo deleted
// import 'dart:math';
//
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_equipment_status_provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_last_calls_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/models/lookup.dart';
// import 'package:test_sa/models/service_request/service_report.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportEquipmentStatusMenu extends StatefulWidget {
// final Function(Lookup) onSelect;
// final ServiceReport report;
// final ServiceRequest request;
//
// const ServiceReportEquipmentStatusMenu({Key? key, this.onSelect, this.report, this.request}) : super(key: key);
//
// @override
// State<ServiceReportEquipmentStatusMenu> createState() => _ServiceReportEquipmentStatusMenuState();
// }
//
// class _ServiceReportEquipmentStatusMenuState extends State<ServiceReportEquipmentStatusMenu> {
// bool firstTime = true;
//
// @override
// Widget build(BuildContext context) {
// SettingProvider settingProvider = Provider.of<SettingProvider>(context);
// UserProvider userProvider = Provider.of<UserProvider>(context);
// ServiceReportEquipmentStatusProvider menuProvider = Provider.of<ServiceReportEquipmentStatusProvider>(context);
// ServiceReportLastCallsProvider callsLastSituationsProvider = Provider.of<ServiceReportLastCallsProvider>(context);
// if (firstTime) {
// callsLastSituationsProvider.reset();
//
// firstTime = false;
// }
// return LoadingManager(
// isLoading: menuProvider.isLoading == true || callsLastSituationsProvider.isLoading == true,
// isFailedLoading: menuProvider.statuses == null || callsLastSituationsProvider.calls == null,
// stateCode: menuProvider.stateCode == null || callsLastSituationsProvider.stateCode == null ? null : max(menuProvider.stateCode ?? 0, callsLastSituationsProvider.stateCode ?? 0),
// onRefresh: () async {
// await callsLastSituationsProvider.getCalls(
// typeName: widget.report?.assetType?.name,
// id: widget.report?.id,
// parentId: widget.request?.id,
// );
// if (menuProvider.stateCode == null) {
// menuProvider.reset();
// await menuProvider.getTypes(user: userProvider.user, host: settingProvider.host);
// setState(() {});
// }
// },
// child: SingleStatusMenu(
// statuses: menuProvider.statuses,
// initialStatus: widget.report?.equipmentStatus,
// onSelect: (status) {
// widget.report?.calllastSituation = null;
// callsLastSituationsProvider.getCalls(
// id: widget.report?.id,
// parentId: widget.request?.id,
// typeName: widget.report?.assetType?.name,
// );
//
// widget.onSelect(status);
// },
// ));
// }
// }

@ -1,75 +0,0 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_fault_description_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/models/fault_description.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/views/widgets/loaders/loading_manager.dart';
class ServiceReportFaultDescription extends StatefulWidget {
final String? requestId; // Now nullable
final Function(FaultDescription?)? onSelect; // Now nullable
final FaultDescription? initialValue; // Now nullable
const ServiceReportFaultDescription({Key? key, this.requestId, this.onSelect, this.initialValue}) : super(key: key);
@override
State<ServiceReportFaultDescription> createState() => _ServiceReportFaultDescriptionState();
}
class _ServiceReportFaultDescriptionState extends State<ServiceReportFaultDescription> {
FaultDescription? initialValue;
@override
void initState() {
super.initState();
initialValue = widget.initialValue;
if (widget.initialValue == null && widget.requestId != null) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
ServiceRequestFaultDescriptionProvider menuProvider = Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false);
menuProvider.reset();
menuProvider.getCallRequestForWorkOrder(widget.requestId!); // Non-null assertion since requestId is checked for null
});
}
}
@override
void didUpdateWidget(covariant ServiceReportFaultDescription oldWidget) {
if (widget.initialValue != oldWidget.initialValue) {
setState(() {
initialValue = widget.initialValue;
});
}
super.didUpdateWidget(oldWidget);
}
@override
Widget build(BuildContext context) {
final settingProvider = Provider.of<SettingProvider>(context);
final userProvider = Provider.of<UserProvider>(context);
final menuProvider = Provider.of<ServiceRequestFaultDescriptionProvider>(context);
return LoadingManager(
isLoading: menuProvider.isLoading,
isFailedLoading: menuProvider.items == null,
stateCode: menuProvider.stateCode,
onRefresh: () async {
if (widget.requestId != null) {
// Add null check for requestId
menuProvider.reset();
await menuProvider.getCallRequestForWorkOrder(widget.requestId!); // Non-null assertion since requestId is checked for null
}
},
child: SingleItemDropDownMenu<FaultDescription, NullableLoadingProvider>(
context: context,
title: context.translation.faultDescription,
onSelect: widget.onSelect,
// Pass onSelect directly
initialValue: initialValue,
staticData: menuProvider.items ?? [],
),
);
}
}

@ -1,38 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_maintenance_situation_provider.dart';
// import 'package:test_sa/models/lookup.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportMaintenanceSituation extends StatelessWidget {
// final Function(Lookup) onSelect;
// final Lookup initialValue;
// final String woId;
//
// const ServiceReportMaintenanceSituation({
// Key? key,
// required this.onSelect,
// required this.initialValue,
// required this.woId,
// }) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// ServiceReportMaintenanceSituationProvider menuProvider = Provider.of<ServiceReportMaintenanceSituationProvider>(context);
// return LoadingManager(
// isLoading: menuProvider.isLoading,
// isFailedLoading: menuProvider.operators == null,
// stateCode: menuProvider.stateCode,
// onRefresh: () async {
// menuProvider.getOperators(woId);
// },
// child: SingleStatusMenu(
// initialStatus: initialValue,
// statuses: menuProvider.operators,
// onSelect: onSelect,
// ),
// );
// }
// }

@ -1,39 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_reasons_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/models/lookup.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportReasonsMenu extends StatelessWidget {
// final Lookup initialValue;
// final Function(Lookup) onSelect;
//
// const ServiceReportReasonsMenu({Key? key, this.onSelect, this.initialValue}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// SettingProvider _settingProvider = Provider.of<SettingProvider>(context);
// UserProvider _userProvider = Provider.of<UserProvider>(context);
// ServiceReportReasonsProvider _menuProvider = Provider.of<ServiceReportReasonsProvider>(context);
// return LoadingManager(
// isLoading: _menuProvider.isLoading,
// isFailedLoading: _menuProvider.reasons == null,
// stateCode: _menuProvider.stateCode,
// onRefresh: () async {
// _menuProvider.reset();
// await _menuProvider.getTypes(
// user: _userProvider.user,
// host: _settingProvider.host,
// );
// },
// child: SingleStatusMenu(
// initialStatus: initialValue,
// statuses: _menuProvider.reasons,
// onSelect: onSelect,
// ));
// }
// }

@ -1,72 +0,0 @@
///todo deleted
// import 'dart:math';
//
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_status_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/models/lookup.dart';
// import 'package:test_sa/models/service_request/service_report.dart';
// import 'package:test_sa/models/service_request/service_request.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportStatusMenu extends StatefulWidget {
// final Function(Lookup) onSelect;
// final ServiceReport report;
// final ServiceRequest request;
//
// const ServiceReportStatusMenu({Key? key, this.onSelect, this.report, this.request}) : super(key: key);
//
// @override
// State<ServiceReportStatusMenu> createState() => _ServiceReportStatusMenuState();
// }
//
// class _ServiceReportStatusMenuState extends State<ServiceReportStatusMenu> {
// bool firstTime = true;
//
// @override
// Widget build(BuildContext context) {
// SettingProvider settingProvider = Provider.of<SettingProvider>(context);
// UserProvider userProvider = Provider.of<UserProvider>(context);
// ServiceReportStatusProvider menuProvider = Provider.of<ServiceReportStatusProvider>(context);
// ServiceReportLastCallsProvider callsLastSituationsProvider = Provider.of<ServiceReportLastCallsProvider>(context);
// if (firstTime) {
// callsLastSituationsProvider.reset();
//
// firstTime = false;
// }
// return LoadingManager(
// isLoading: menuProvider.isLoading == true || callsLastSituationsProvider.isLoading == true,
// isFailedLoading: menuProvider.statuses == null || callsLastSituationsProvider.calls == null,
// stateCode: menuProvider.stateCode == null || callsLastSituationsProvider.stateCode == null ? null : max(menuProvider.stateCode ?? 0, callsLastSituationsProvider.stateCode ?? 0),
// onRefresh: () async {
// await callsLastSituationsProvider.getCalls(
// typeName: widget.report.assetType?.name,
// id: widget.report.id,
// parentId: widget.request.id,
// );
// if (menuProvider.stateCode == null) {
// menuProvider.reset();
// await menuProvider.getTypes(user: userProvider.user, host: settingProvider.host);
// setState(() {});
// }
// },
// child: SingleStatusMenu(
// statuses: menuProvider.statuses,
// initialStatus: widget.report.equipmentStatus,
// onSelect: (status) {
// widget.report.calllastSituation = null;
// callsLastSituationsProvider.getCalls(
// id: widget.report.id,
// parentId: widget.request.id,
// typeName: widget.report.assetType?.name,
// );
//
// widget.onSelect(status);
// },
// ));
// }
// }

@ -1,37 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_types_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/models/lookup.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportTypeMenu extends StatelessWidget {
// final Function(Lookup) onSelect;
// final Lookup initialValue;
//
// const ServiceReportTypeMenu({Key? key, this.onSelect, this.initialValue}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// SettingProvider settingProvider = Provider.of<SettingProvider>(context);
// UserProvider userProvider = Provider.of<UserProvider>(context);
// ServiceReportTypesProvider menuProvider = Provider.of<ServiceReportTypesProvider>(context);
// return LoadingManager(
// isLoading: menuProvider.isLoading,
// isFailedLoading: menuProvider.types == null,
// stateCode: menuProvider.stateCode,
// onRefresh: () async {
// menuProvider.reset();
// await menuProvider.getTypes(user: userProvider.user, host: settingProvider.host);
// onSelect(initialValue ?? menuProvider.types?.last);
// },
// child: SingleStatusMenu(
// initialStatus: initialValue ?? menuProvider.types?.last,
// statuses: menuProvider.types,
// onSelect: onSelect,
// ));
// }
// }

@ -1,32 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_visit_date_operator_provider.dart';
// import 'package:test_sa/models/lookup.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportVisitDateOperator extends StatelessWidget {
// final Function(Lookup) onSelect;
// final Lookup initialValue;
//
// const ServiceReportVisitDateOperator({Key? key, required this.onSelect, required this.initialValue}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// ServiceReportVisitOperatorProvider menuProvider = Provider.of<ServiceReportVisitOperatorProvider>(context);
// return LoadingManager(
// isLoading: menuProvider.isLoading,
// isFailedLoading: menuProvider.operators == null,
// stateCode: menuProvider.stateCode,
// onRefresh: () async {
// menuProvider.getOperators();
// },
// child: SingleStatusMenu(
// initialStatus: initialValue,
// statuses: menuProvider.operators,
// onSelect: onSelect,
// ),
// );
// }
// }

@ -1,36 +0,0 @@
///todo deleted
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_types_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/models/lookup.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceAssetTypeMenu extends StatelessWidget {
// final Function(Lookup) onSelect;
// final Lookup initialValue;
//
// const ServiceAssetTypeMenu({Key? key, this.onSelect, this.initialValue}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// SettingProvider _settingProvider = Provider.of<SettingProvider>(context);
// UserProvider _userProvider = Provider.of<UserProvider>(context);
// ServiceStatusProvider _menuProvider = Provider.of<ServiceStatusProvider>(context);
// return LoadingManager(
// isLoading: _menuProvider.isLoading,
// isFailedLoading: _menuProvider.statuses == null,
// stateCode: _menuProvider.stateCode,
// onRefresh: () async {
// _menuProvider.reset();
// await _menuProvider.getTypes(user: _userProvider.user, host: _settingProvider.host);
// },
// child: SingleStatusMenu(
// initialStatus: initialValue,
// statuses: _menuProvider.statuses,
// onSelect: onSelect,
// ));
// }
// }
Loading…
Cancel
Save