dashboard_model.dart 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. // ignore_for_file: constant_identifier_names, non_constant_identifier_names, use_build_context_synchronously
  2. import 'package:flutter/foundation.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:gozap_package/components/apiservices.dart';
  5. import 'package:gozap_package/models/admin/admin_model.dart';
  6. import 'package:gozap_package/models/asset/asset_model.dart';
  7. import 'package:gozap_package/models/recharge/recharge_history_model.dart';
  8. import 'package:gozap_package/models/service/service_history_model.dart';
  9. import 'package:gozap_package/models/swap/swap_history_model.dart';
  10. import 'package:gozap_package/models/user/user_model.dart';
  11. import 'package:provider/provider.dart';
  12. enum DashboardModelStatus {
  13. Ended,
  14. Loading,
  15. Error,
  16. }
  17. class DashboardModel extends ChangeNotifier {
  18. late DashboardModelStatus _status;
  19. late String _errorCode;
  20. late String _errorMessage;
  21. late AdminModule? _adminModule;
  22. late AssetModule? _swapReturnBattery;
  23. late AssetModule? _swapBattery;
  24. String _swapReturnBatteryErrorText= '';
  25. String _swapBatteryErrorText= '';
  26. String get errorCode => _errorCode;
  27. String get errorMessage => _errorMessage;
  28. DashboardModelStatus get status => _status;
  29. AdminModule? get adminModule => _adminModule;
  30. AssetModule? get swapReturnBattery => _swapReturnBattery;
  31. AssetModule? get swapBattery => _swapBattery;
  32. String get swapReturnBatteryErrorText => _swapReturnBatteryErrorText;
  33. String get swapBatteryErrorText => _swapBatteryErrorText;
  34. DashboardModel();
  35. DashboardModel.instance(BuildContext context) {
  36. getter(context);
  37. }
  38. Future<void> getter(BuildContext context) async {
  39. _status = DashboardModelStatus.Loading;
  40. notifyListeners();
  41. try {
  42. String UserID = Provider.of<userChangeNotifier>(context, listen: false)
  43. .user!
  44. .UserID
  45. .toString();
  46. var mapData = await APIService(context).postData(
  47. "Admin/",
  48. {"UserID": UserID},
  49. false);
  50. if (mapData != null) {
  51. UserModule userModule = UserModule.fromJson(mapData["UserData"]);
  52. List<AssetModule> assetList = [];
  53. List<RechargeHistoryModule> rechargeHistoryList = [];
  54. List<ServiceHistoryModule> serviceHistoryList = [];
  55. List<SwapHistoryModule> swapHistoryList = [];
  56. for (var element in mapData["SwapData"]["HistoryData"]["History"]) {
  57. swapHistoryList.add(SwapHistoryModule.fromJson(element));
  58. }
  59. for (var element in mapData["RechargeData"]["HistoryData"]["History"]) {
  60. rechargeHistoryList.add(RechargeHistoryModule.fromJson(element));
  61. }
  62. for (var element in mapData["ServiceData"]["HistoryData"]["History"]) {
  63. serviceHistoryList.add(ServiceHistoryModule.fromJson(element));
  64. }
  65. for (var element in mapData["AssetData"]["HistoryData"]["History"]) {
  66. assetList.add(AssetModule.fromJson(element));
  67. }
  68. SwapHistoryMetaModule swapHistoryMetaModule = SwapHistoryMetaModule(
  69. TotalCount: mapData["SwapData"]["HistoryData"]["TotalCount"],
  70. FreeSwapCount: mapData["SwapData"]["HistoryData"]["FreeSwapCount"],
  71. PaidSwapCount: mapData["SwapData"]["HistoryData"]["PaidSwapCount"],
  72. SwapHistoryList: swapHistoryList);
  73. RechargeHistoryMetaModule rechargeMetaModule =
  74. RechargeHistoryMetaModule(
  75. TotalRechargeCount: mapData["RechargeData"]["HistoryData"]
  76. ["TotalCount"],
  77. RechargeHistoryList: rechargeHistoryList);
  78. AssetMetaModule assetMetaModule = AssetMetaModule(
  79. TotalAssetCount: mapData["AssetData"]["HistoryData"]["TotalCount"],
  80. BatteryAssetCount:
  81. 0, //mapData["assetData"]["HistoryData"]["FreeSwapCount"],
  82. vehicleAssetCount:
  83. 0, //mapData["assetData"]["HistoryData"]["PaidSwapCount"],
  84. AssetList: assetList);
  85. ServiceHistoryMetaModule serviceHistoryMetaModule =
  86. ServiceHistoryMetaModule(
  87. TotalCount: mapData["ServiceData"]["HistoryData"]["TotalCount"],
  88. ServicedCount: mapData["ServiceData"]["HistoryData"]
  89. ["TotalCount"],
  90. InCompletedCount: mapData["ServiceData"]["HistoryData"]
  91. ["InCompletedServiceCount"],
  92. ServiceHistoryList: serviceHistoryList);
  93. _adminModule = AdminModule(
  94. User: userModule,
  95. SwapHistoryMeta: swapHistoryMetaModule,
  96. AssetMeta: assetMetaModule,
  97. RechargeHistoryMeta: rechargeMetaModule,
  98. ServiceHistoryMeta: serviceHistoryMetaModule);
  99. _swapReturnBatteryErrorText="";
  100. _swapBatteryErrorText="";
  101. }
  102. } catch (e) {
  103. _adminModule = null;
  104. if (kDebugMode) {
  105. print(e);
  106. }
  107. }
  108. _status = DashboardModelStatus.Ended;
  109. notifyListeners();
  110. }
  111. Future<void> setter(BuildContext context) async {
  112. _status = DashboardModelStatus.Loading;
  113. notifyListeners();
  114. _status = DashboardModelStatus.Ended;
  115. notifyListeners();
  116. }
  117. Future<void> recharge(BuildContext context,
  118. {Map<String, dynamic>? data,int SwapRechargeCount=1}) async {
  119. _status = DashboardModelStatus.Loading;
  120. notifyListeners();
  121. try {
  122. var postdata ={
  123. "SwapRechargeCount": SwapRechargeCount.toString(),
  124. "PaymentType": data!["PaymentType"].toString(),
  125. "RiderID": data["RechargeRiderID"].toString(),
  126. };
  127. var resdata = await APIService(context).postData(
  128. "Admin/Recharge/add_recharge.php",
  129. postdata,
  130. false);
  131. if (resdata != null) {
  132. getter(context);
  133. }
  134. } catch (e) {
  135. if (kDebugMode) {
  136. print(e);
  137. }
  138. }
  139. _status = DashboardModelStatus.Ended;
  140. notifyListeners();
  141. }
  142. Future<void> swap(BuildContext context, {Map<String, dynamic>? data}) async {
  143. _status = DashboardModelStatus.Loading;
  144. notifyListeners();
  145. try {
  146. var resdata = await APIService(context).postData(
  147. "Admin/Swap/",
  148. {
  149. "SwapBatteryID": data!["SwapBatteryID"],
  150. "ReturnBatteryID": data["ReturnBatteryID"],
  151. "RiderID": data["RiderID"],
  152. },
  153. false);
  154. if (resdata != null) {
  155. getter(context);
  156. }
  157. } catch (e) {
  158. if (kDebugMode) {
  159. print(e);
  160. }
  161. }
  162. _status = DashboardModelStatus.Ended;
  163. notifyListeners();
  164. }
  165. Future<void> service(BuildContext context,
  166. {Map<String, dynamic>? data}) async {
  167. _status = DashboardModelStatus.Loading;
  168. notifyListeners();
  169. try {
  170. var postdata ={
  171. "AssetID": data!["ServiceAssetID"].toString(),
  172. };
  173. var resdata = await APIService(context).postData(
  174. "Admin/Service/add_service.php",
  175. postdata,
  176. false);
  177. if (resdata != null) {
  178. getter(context);
  179. }
  180. } catch (e) {
  181. if (kDebugMode) {
  182. print(e);
  183. }
  184. }
  185. _status = DashboardModelStatus.Ended;
  186. notifyListeners();
  187. }
  188. Future<void> asset(BuildContext context, {Map<String, dynamic>? data}) async {
  189. _status = DashboardModelStatus.Loading;
  190. notifyListeners();
  191. try {
  192. var resdata = await APIService(context).postData(
  193. "Admin/Asset/add.php",
  194. {
  195. "AssetID": data!["AssetID"],
  196. "AssetName": data["AssetName"],
  197. "AssetCategoryID": data["AssetCategoryID"],
  198. },
  199. false);
  200. if (resdata != null) {
  201. getter(context);
  202. }
  203. } catch (e) {
  204. if (kDebugMode) {
  205. print(e);
  206. }
  207. }
  208. _status = DashboardModelStatus.Ended;
  209. notifyListeners();
  210. }
  211. Future<void> checkAssetForReturnBattery(BuildContext context, String AssetID) async {
  212. notifyListeners();
  213. try {
  214. var resdata = await APIService(context).postData(
  215. "Admin/Asset/check_asset.php",
  216. {
  217. "AssetID": AssetID,
  218. },
  219. false);
  220. if (resdata != null) {
  221. _swapReturnBattery = AssetModule.fromJson(resdata);
  222. if (_swapReturnBattery!.IsInServiceCenter) {
  223. _swapReturnBatteryErrorText="Not return battery";
  224. }else{
  225. _swapReturnBatteryErrorText="";
  226. }
  227. }else{
  228. _swapReturnBatteryErrorText="Asset isn't available";
  229. }
  230. } catch (e) {
  231. if (kDebugMode) {
  232. print(e);
  233. }
  234. }
  235. notifyListeners();
  236. }
  237. Future<void> checkAssetForSwapBattery(BuildContext context, String AssetID) async {
  238. notifyListeners();
  239. try {
  240. var resdata = await APIService(context).postData(
  241. "Admin/Asset/check_asset.php",
  242. {
  243. "AssetID": AssetID,
  244. },
  245. false);
  246. if (resdata != null) {
  247. _swapBattery = AssetModule.fromJson(resdata);
  248. if (!_swapBattery!.IsInServiceCenter) {
  249. _swapBatteryErrorText="Not swap battery";
  250. }else{
  251. _swapBatteryErrorText="";
  252. }
  253. }else{
  254. _swapBatteryErrorText="Asset isn't available";
  255. }
  256. } catch (e) {
  257. if (kDebugMode) {
  258. print(e);
  259. }
  260. }
  261. notifyListeners();
  262. }
  263. void update() {
  264. _status = DashboardModelStatus.Loading;
  265. notifyListeners();
  266. // ignore: todo
  267. //TODO Add code here
  268. _status = DashboardModelStatus.Ended;
  269. notifyListeners();
  270. }
  271. void remove() {
  272. _status = DashboardModelStatus.Loading;
  273. notifyListeners();
  274. // ignore: todo
  275. //TODO Add code here
  276. _status = DashboardModelStatus.Ended;
  277. notifyListeners();
  278. }
  279. }