public ActivasViewModel() { DataStore = new Rest(); Items = new ObservableCollection <pedidos>(); DBlocal = new LocalSQLITE(); LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand()); }
public DetallePedidoViewModel(pedidos p) { pedidoSelected = p; DataStore = new Rest(); Items = new ObservableCollection <PlatilloCompra>(); DBlocal = new LocalSQLITE(); LoadItemsCommand = new Command(async() => await ExecuteLoadItemsCommand()); }
public async Task ExecuteLoadItemsCommand() //Actualiza el listview { if (IsBusy) { return; } IsBusy = true; try { Items.Clear(); //var ItemsFromAPI = await DataStore.GetAll<pedidos>("pedidos"); LocalSQLITE DB = new LocalSQLITE(); var ItemsFromAPI = await DB.conexion.QueryAsync <pedidos>("SELECT * FROM pedidos"); if (ItemsFromAPI.Count == 0) { Toast.MakeText(Android.App.Application.Context, "No hay ordenes activas", ToastLength.Short).Show(); } else { foreach (var itemAPI in ItemsFromAPI) { if (itemAPI.idUser == idUser && itemAPI.estado != "Completado") { Items.Add(itemAPI); } } } IsBusy = false; } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
async Task ExecuteLoadItemsCommand() { if (IsBusy) { return; } IsBusy = true; try // RECUPERO LOCALMENTE SQLite -> hago el Observable collection { Items.Clear(); LocalSQLITE DB = new LocalSQLITE(); //var PlatillosPedidosAPI = await DataStore.GetAll<platillosPedidos>("platillosPedidos"); //var ItemsFromAPI = await DataStore.GetAll<platillos>("platillos"); ////Dictionary de platillospedidos /// List <platillosPedidos> PlatillosPedidosAPI = await DB.conexion.QueryAsync <platillosPedidos>("SELECT * FROM platillosPedidos"); List <platillos> ItemsFromAPI = await DB.conexion.QueryAsync <platillos>("SELECT * FROM platillos"); Dictionary <int?, platillosPedidos> dpp = new Dictionary <int?, platillosPedidos>(); foreach (var platiPedi in PlatillosPedidosAPI) { if (platiPedi.idPed == pedidoSelected.idPedido) { try { dpp.Add(platiPedi.idPlat, platiPedi); } catch (Exception) { } } } CostoTotal = 0; foreach (var platilloAPI in ItemsFromAPI) { if (dpp.ContainsKey(platilloAPI.idPlatillo)) { platillos platilloPedido = platilloAPI; platilloPedido.cant = dpp[platilloAPI.idPlatillo].cant; platilloPedido.subtotal = dpp[platilloAPI.idPlatillo].subtotal; Items.Add(new PlatilloCompra(platilloPedido)); } } IsBusy = false; } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
private async void MetodoSelected(TargetPago item) { Toast.MakeText(Android.App.Application.Context, item.NombreTarjeta, ToastLength.Short).Show(); pedidoActual.metodoPago = item.NombreTarjeta; LocalSQLITE DB = new LocalSQLITE(); Rest restx = new Rest(); pedidoActual = await restx.Post <pedidos>("pedidos", pedidoActual); //List<pedidos> pedidosAPI = restx.GetAll<pedidos>("pedidos").Result; //Toast.MakeText(Android.App.Application.Context, "Haciendo pedido", ToastLength.Long).Show(); //await Task.Delay(3000); //List<pedidos> pedidosUser = new List<pedidos>(); //foreach (pedidos pedi in pedidosAPI) //{ // if (pedi.idUser == pedidoActual.idUser) // { // pedidosUser.Add(pedi); // } //} //pedidoActual = pedidosUser[pedidosUser.Count - 1]; List <pedidos> pedidosall = DB.conexion.QueryAsync <pedidos>("Select * FROM [pedidos] ").Result; if (pedidosall.Count == 0) { pedidoActual.idPedido = 1; } else { pedidoActual.idPedido = pedidosall.Count + 1; } var ignorarrr = await DB.conexion.InsertAsync(pedidoActual); Toast.MakeText(Android.App.Application.Context, "Pedido siendo tramitado", ToastLength.Long).Show(); //Obtener el pedido actual List <platillos> lDBlocaPlat = DB.conexion.QueryAsync <platillos>("Select * FROM [platillos] " + "WHERE cant>0 ORDER BY idRes ASC").Result; List <platillosPedidos> lPlatiPedidos = new List <platillosPedidos>(); foreach (var itemDB in lDBlocaPlat) { try { List <platillosPedidos> platillosCant = DB.conexion.QueryAsync <platillosPedidos>("Select * FROM [platillosPedidos] ").Result; platillosPedidos newPlatiPedido = new platillosPedidos(); if (platillosCant.Count == 0) { newPlatiPedido.idPlatPed = 1; } else { newPlatiPedido.idPlatPed = platillosCant.Count + 1; } newPlatiPedido.cant = itemDB.cant; newPlatiPedido.subtotal = itemDB.subtotal; newPlatiPedido.idPlat = itemDB.idPlatillo; newPlatiPedido.idPed = pedidoActual.idPedido; newPlatiPedido = await restx.Post <platillosPedidos>("platillosPedidos", newPlatiPedido); try { var estoppaquenoexplote = await DB.conexion.InsertAsync(newPlatiPedido); } catch (Exception X) { Debug.Print(X.Message); } } catch (Exception ex) { Debug.Print("ERROR PlatillosPedidosPage: " + ex.Message); } } //Ahora debo resetear todas las cantidades var ignorar = await DB.conexion.QueryAsync <platillos>("UPDATE [platillos] SET cant=0, subtotal=0"); Toast.MakeText(Android.App.Application.Context, "Pedido siendo tramitado", ToastLength.Long).Show(); try { await Navigation.PopModalAsync(); } catch (Exception) { } try { await Navigation.PopModalAsync(); } catch (Exception) { } try { await Navigation.PopModalAsync(); } catch (Exception) { } try { await Navigation.PushAsync(new MainPage()); } catch (Exception) { } }