123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import 'package:flutter/material.dart';
- import 'package:turquessa_mesas_hoster/core/services/database_service.dart';
- import '../../core/models/pedido_model.dart';
- import '../../core/services/api_response.dart';
- import '../../core/services/base_service.dart';
- class PedidoViewModel extends ChangeNotifier {
- List<Pedido> _pedidos = [];
- bool _isLoading = false;
- List<Pedido> get pedidos => _pedidos;
- bool get isLoading => _isLoading;
- Future<void> fetchLocalPedidos() async {
- var db = await DatabaseService().db;
- var query = await db!
- .query('Pedido', where: 'eliminado IS NULL', orderBy: 'id asc');
- _pedidos = query.map((element) => Pedido.fromJson(element)).toList();
- notifyListeners();
- }
- // Future<void> setSelectedPedido(Pedido pedido) async {
- // var db = await DatabaseService().db;
- // await db!.update(
- // 'Pedido',
- // {'seleccionado': 0},
- // );
- // pedido.seleccionado = 1;
- // await DatabaseService().guardar(pedido);
- // await fetchLocalPedidos();
- // }
- Future<bool> sincronizarPedidos() async {
- try {
- final response =
- ApiResponse(await BaseService().get('/pos/mesa?expand=pedidos'));
- if (response.isOk && response.resultados != null) {
- List<Pedido> pedidosApi =
- response.resultados!.map((json) => Pedido.fromJson(json)).toList();
- // if (pedidosApi.isNotEmpty) {
- // await DatabaseService().sincronizarPedidos(pedidosApi);
- // await fetchLocalPedidos();
- // notifyListeners();
- // return true;
- // }
- }
- return false;
- } catch (e) {
- print('Error al sincronizar pedidos: $e');
- return false;
- }
- }
- // // Future<void> sincronizarPedidosDesdeApi() async {
- // setIsLoading(true);
- // try {
- // final response = ApiResponse(await BaseService().get('/pos/pedido'));
- // if (response.isOk && response.resultados != null) {
- // List<Pedido> pedidosApi =
- // response.resultados!.map((json) => Pedido.fromApi(json)).toList();
- // if (pedidosApi.isNotEmpty) {
- // await DatabaseService().sincronizarPedidos(pedidosApi);
- // await fetchLocalPedidos();
- // notifyListeners();
- // }
- // }
- // } catch (e) {
- // print('Error al sincronizar pedidos: $e');
- // } finally {
- // setIsLoading(false);
- // }
- // }
- void setIsLoading(bool value) {
- _isLoading = value;
- notifyListeners();
- }
- }
|