package_view_model.dart 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. import 'package:computo_lite/services/services.dart';
  2. import 'package:computo_lite/data/session/session_storage.dart';
  3. import 'package:computo_lite/viewmodels/login_view_model.dart';
  4. import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart';
  5. import 'package:http/http.dart' as http;
  6. import 'dart:convert';
  7. const String _baseUrlPackage =
  8. "acta?expand=ultimaRecepcion,nombreConTipoEleccion,ultimaBitacora";
  9. const List<String> _typeBinnacle = ["esperado", "almacenado", "entregado"];
  10. const List<String> urls = [
  11. "&estatusBodega=esperado&idTipoEleccion=",
  12. "&estatusBodega=almacenado&idTipoEleccion=",
  13. "&estatusBodega=entregado&idTipoEleccion="
  14. ];
  15. const Map<int, dynamic> tcs = {1: "1", 2: "1,2,3", 3: "1,3", 4: "1,3"};
  16. class PackageViewModel {
  17. //final LoginViewModel _loginViewModel = LoginViewModel.instance();
  18. final BaseService _services = BaseService();
  19. Future<Map<String, dynamic>?> scanner(String _token) async {
  20. try {
  21. String? token = await SessionStorage().getToken();
  22. if (_token != "") {
  23. token = _token;
  24. } else {
  25. token = await FlutterBarcodeScanner.scanBarcode(
  26. "#ff6666", "Cancelar", false, ScanMode.QR);
  27. }
  28. if (token == '-1') {
  29. return null;
  30. }
  31. print('TOKENNNNN');
  32. print(token);
  33. String url =
  34. "/v1/acta?&token=$token&escaneo=true&expand=casilla,tipoActa,ultimaBitacora,tipoEleccion&limite=1&idTipoEleccion=1,2,3";
  35. String? userToken = await SessionStorage().getToken();
  36. print('USER TOKENNNNN');
  37. print(userToken);
  38. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  39. return json.decode(jsonResponse!.body);
  40. } catch (e) {
  41. print(e);
  42. return null;
  43. }
  44. }
  45. Future<Map<String, dynamic>?> getPackages(String url) async {
  46. try {
  47. String? userToken = await SessionStorage().getToken();
  48. http.Response? jsonResponse =
  49. await _services.getHttp(_baseUrlPackage + url, userToken!);
  50. return json.decode(jsonResponse!.body);
  51. } catch (e) {
  52. print(e);
  53. return null;
  54. }
  55. }
  56. Future<Map<String, dynamic>?> getScrollPackages(int tabSelected, int page,
  57. int idTipoConsejoElectoral, String search) async {
  58. try {
  59. String url = _baseUrlPackage +
  60. urls[tabSelected] +
  61. "${tcs[idTipoConsejoElectoral]}&pagina=$page&busqueda=$search";
  62. String? userToken = await SessionStorage().getToken();
  63. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  64. return json.decode(jsonResponse!.body);
  65. } catch (e) {
  66. print(e);
  67. return null;
  68. }
  69. }
  70. Future<Map<String, dynamic>?> onChangeTabListPackages(
  71. int tabSelected, int idTipoConsejoElectoral) async {
  72. try {
  73. String? userToken = await SessionStorage().getToken();
  74. String url = "${urls[tabSelected]}${tcs[idTipoConsejoElectoral]}";
  75. http.Response? jsonResponse =
  76. await _services.getHttp(_baseUrlPackage + url, userToken!);
  77. return json.decode(jsonResponse!.body);
  78. } catch (e) {
  79. print(e);
  80. return null;
  81. }
  82. }
  83. Future<Map<String, dynamic>?> searchPackages(
  84. String search, int tabSelected, int idTipoConsejoElectoral) async {
  85. try {
  86. final String searchUrl = search != ""
  87. ? "$_baseUrlPackage&busqueda=$search&idTipoEleccion=${tcs[idTipoConsejoElectoral]}"
  88. : "$_baseUrlPackage&estatusBodega=${_typeBinnacle[tabSelected]}&idTipoEleccion=${tcs[idTipoConsejoElectoral]}";
  89. String? userToken = await SessionStorage().getToken();
  90. http.Response? jsonResponse =
  91. await _services.getHttp(searchUrl, userToken!);
  92. return json.decode(jsonResponse!.body);
  93. } catch (e) {
  94. print(e);
  95. return null;
  96. }
  97. }
  98. Future<Map<String, dynamic>?> getBinnacle(int id) async {
  99. try {
  100. String url = "/v1/bitacora-paquete?idActa=$id&expand=motivoPaquete";
  101. String? userToken = await SessionStorage().getToken();
  102. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  103. return json.decode(jsonResponse!.body);
  104. } catch (e) {
  105. print(e);
  106. return null;
  107. }
  108. }
  109. Future<List<Map<String, dynamic>>> getMotives() async {
  110. try {
  111. String url = "motivo-paquete";
  112. String? userToken = await SessionStorage().getToken();
  113. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  114. Map<String, dynamic> response = json.decode(jsonResponse!.body);
  115. return List<Map<String, dynamic>>.from(response["resultado"]);
  116. } catch (e) {
  117. print(e);
  118. return [];
  119. }
  120. }
  121. Future<bool> toStockOrTakeOut(Map<String, dynamic> data) async {
  122. try {
  123. String date;
  124. if (data["day"] > 9) {
  125. date = "2021-" + data["month"] + "-" + data["day"].toString();
  126. } else {
  127. date = "2021-" + data["month"] + "-" + ("0" + data["day"].toString());
  128. }
  129. String time = data["time"].toString().split(" ")[1].substring(0, 8);
  130. String url = "bitacora-paquete/guardar";
  131. String? userToken = await SessionStorage().getToken();
  132. data = {
  133. "idActa": data["idActa"],
  134. "fecha": date + " " + time,
  135. "idMotivoPaquete": data["idMotivoPaquete"],
  136. "idAgendaEntrega": data["idAgendaEntrega"],
  137. "idAgendaRecibe": data["idAgendaRecibe"],
  138. };
  139. await _services.post(url);
  140. return true;
  141. } catch (e) {
  142. print(e);
  143. return false;
  144. }
  145. }
  146. }