import 'package:computo_lite/services/services.dart'; import 'package:computo_lite/data/session/session_storage.dart'; import 'package:computo_lite/viewmodels/login_view_model.dart'; import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; const String _baseUrlPackage = "acta?expand=ultimaRecepcion,nombreConTipoEleccion,ultimaBitacora"; const List _typeBinnacle = ["esperado", "almacenado", "entregado"]; const List urls = [ "&estatusBodega=esperado&idTipoEleccion=", "&estatusBodega=almacenado&idTipoEleccion=", "&estatusBodega=entregado&idTipoEleccion=" ]; const Map tcs = {1: "1", 2: "1,2,3", 3: "1,3", 4: "1,3"}; class PackageViewModel { //final LoginViewModel _loginViewModel = LoginViewModel.instance(); final BaseService _services = BaseService(); Future?> scanner(String _token) async { try { String? token = await SessionStorage().getToken(); if (_token != "") { token = _token; } else { token = await FlutterBarcodeScanner.scanBarcode( "#ff6666", "Cancelar", false, ScanMode.QR); } if (token == '-1') { return null; } print('TOKENNNNN'); print(token); String url = "/v1/acta?&token=$token&escaneo=true&expand=casilla,tipoActa,ultimaBitacora,tipoEleccion&limite=1&idTipoEleccion=1,2,3"; String? userToken = await SessionStorage().getToken(); print('USER TOKENNNNN'); print(userToken); http.Response? jsonResponse = await _services.getHttp(url, userToken!); return json.decode(jsonResponse!.body); } catch (e) { print(e); return null; } } Future?> getPackages(String url) async { try { String? userToken = await SessionStorage().getToken(); http.Response? jsonResponse = await _services.getHttp(_baseUrlPackage + url, userToken!); return json.decode(jsonResponse!.body); } catch (e) { print(e); return null; } } Future?> getScrollPackages(int tabSelected, int page, int idTipoConsejoElectoral, String search) async { try { String url = _baseUrlPackage + urls[tabSelected] + "${tcs[idTipoConsejoElectoral]}&pagina=$page&busqueda=$search"; String? userToken = await SessionStorage().getToken(); http.Response? jsonResponse = await _services.getHttp(url, userToken!); return json.decode(jsonResponse!.body); } catch (e) { print(e); return null; } } Future?> onChangeTabListPackages( int tabSelected, int idTipoConsejoElectoral) async { try { String? userToken = await SessionStorage().getToken(); String url = "${urls[tabSelected]}${tcs[idTipoConsejoElectoral]}"; http.Response? jsonResponse = await _services.getHttp(_baseUrlPackage + url, userToken!); return json.decode(jsonResponse!.body); } catch (e) { print(e); return null; } } Future?> searchPackages( String search, int tabSelected, int idTipoConsejoElectoral) async { try { final String searchUrl = search != "" ? "$_baseUrlPackage&busqueda=$search&idTipoEleccion=${tcs[idTipoConsejoElectoral]}" : "$_baseUrlPackage&estatusBodega=${_typeBinnacle[tabSelected]}&idTipoEleccion=${tcs[idTipoConsejoElectoral]}"; String? userToken = await SessionStorage().getToken(); http.Response? jsonResponse = await _services.getHttp(searchUrl, userToken!); return json.decode(jsonResponse!.body); } catch (e) { print(e); return null; } } Future?> getBinnacle(int id) async { try { String url = "/v1/bitacora-paquete?idActa=$id&expand=motivoPaquete"; String? userToken = await SessionStorage().getToken(); http.Response? jsonResponse = await _services.getHttp(url, userToken!); return json.decode(jsonResponse!.body); } catch (e) { print(e); return null; } } Future>> getMotives() async { try { String url = "motivo-paquete"; String? userToken = await SessionStorage().getToken(); http.Response? jsonResponse = await _services.getHttp(url, userToken!); Map response = json.decode(jsonResponse!.body); return List>.from(response["resultado"]); } catch (e) { print(e); return []; } } Future toStockOrTakeOut(Map data) async { try { String date; if (data["day"] > 9) { date = "2021-" + data["month"] + "-" + data["day"].toString(); } else { date = "2021-" + data["month"] + "-" + ("0" + data["day"].toString()); } String time = data["time"].toString().split(" ")[1].substring(0, 8); String url = "bitacora-paquete/guardar"; String? userToken = await SessionStorage().getToken(); data = { "idActa": data["idActa"], "fecha": date + " " + time, "idMotivoPaquete": data["idMotivoPaquete"], "idAgendaEntrega": data["idAgendaEntrega"], "idAgendaRecibe": data["idAgendaRecibe"], }; await _services.post(url); return true; } catch (e) { print(e); return false; } } }