package_view_model.dart 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  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. String url =
  32. "/v1/acta?&token=$token&escaneo=true&expand=casilla,tipoActa,ultimaBitacora,tipoEleccion&limite=1&idTipoEleccion=1,2,3";
  33. String? userToken = await SessionStorage().getToken();
  34. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  35. return json.decode(jsonResponse!.body);
  36. } catch (e) {
  37. print(e);
  38. return null;
  39. }
  40. }
  41. Future<Map<String, dynamic>?> getPackages(String url) async {
  42. try {
  43. String? userToken = await SessionStorage().getToken();
  44. http.Response? jsonResponse =
  45. await _services.getHttp(_baseUrlPackage + url, userToken!);
  46. return json.decode(jsonResponse!.body);
  47. } catch (e) {
  48. print(e);
  49. return null;
  50. }
  51. }
  52. Future<Map<String, dynamic>?> getScrollPackages(int tabSelected, int page,
  53. int idTipoConsejoElectoral, String search) async {
  54. try {
  55. String url = _baseUrlPackage +
  56. urls[tabSelected] +
  57. "${tcs[idTipoConsejoElectoral]}&pagina=$page&busqueda=$search";
  58. String? userToken = await SessionStorage().getToken();
  59. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  60. return json.decode(jsonResponse!.body);
  61. } catch (e) {
  62. print(e);
  63. return null;
  64. }
  65. }
  66. Future<Map<String, dynamic>?> onChangeTabListPackages(
  67. int tabSelected, int idTipoConsejoElectoral) async {
  68. try {
  69. String? userToken = await SessionStorage().getToken();
  70. String url = "${urls[tabSelected]}${tcs[idTipoConsejoElectoral]}";
  71. http.Response? jsonResponse =
  72. await _services.getHttp(_baseUrlPackage + url, userToken!);
  73. return json.decode(jsonResponse!.body);
  74. } catch (e) {
  75. print(e);
  76. return null;
  77. }
  78. }
  79. Future<Map<String, dynamic>?> searchPackages(
  80. String search, int tabSelected, int idTipoConsejoElectoral) async {
  81. try {
  82. final String searchUrl = search != ""
  83. ? "$_baseUrlPackage&busqueda=$search&idTipoEleccion=${tcs[idTipoConsejoElectoral]}"
  84. : "$_baseUrlPackage&estatusBodega=${_typeBinnacle[tabSelected]}&idTipoEleccion=${tcs[idTipoConsejoElectoral]}";
  85. String? userToken = await SessionStorage().getToken();
  86. http.Response? jsonResponse =
  87. await _services.getHttp(searchUrl, userToken!);
  88. return json.decode(jsonResponse!.body);
  89. } catch (e) {
  90. print(e);
  91. return null;
  92. }
  93. }
  94. Future<Map<String, dynamic>?> getBinnacle(int id) async {
  95. try {
  96. String url = "/v1/bitacora-paquete?idActa=$id&expand=motivoPaquete";
  97. String? userToken = await SessionStorage().getToken();
  98. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  99. return json.decode(jsonResponse!.body);
  100. } catch (e) {
  101. print(e);
  102. return null;
  103. }
  104. }
  105. Future<List<Map<String, dynamic>>> getMotives() async {
  106. try {
  107. String url = "motivo-paquete";
  108. String? userToken = await SessionStorage().getToken();
  109. http.Response? jsonResponse = await _services.getHttp(url, userToken!);
  110. Map<String, dynamic> response = json.decode(jsonResponse!.body);
  111. return List<Map<String, dynamic>>.from(response["resultado"]);
  112. } catch (e) {
  113. print(e);
  114. return [];
  115. }
  116. }
  117. Future<bool> toStockOrTakeOut(Map<String, dynamic> data) async {
  118. try {
  119. String date;
  120. if (data["day"] > 9) {
  121. date = "2021-" + data["month"] + "-" + data["day"].toString();
  122. } else {
  123. date = "2021-" + data["month"] + "-" + ("0" + data["day"].toString());
  124. }
  125. String time = data["time"].toString().split(" ")[1].substring(0, 8);
  126. String url = "bitacora-paquete/guardar";
  127. String? userToken = await SessionStorage().getToken();
  128. data = {
  129. "idActa": data["idActa"],
  130. "fecha": date + " " + time,
  131. "idMotivoPaquete": data["idMotivoPaquete"],
  132. "idAgendaEntrega": data["idAgendaEntrega"],
  133. "idAgendaRecibe": data["idAgendaRecibe"],
  134. };
  135. await _services.post(url);
  136. return true;
  137. } catch (e) {
  138. print(e);
  139. return false;
  140. }
  141. }
  142. }