예제 #1
0
        public async void Cancel()
        {
            var action = await App.Current.MainPage.DisplayAlert("Pedido a Cancelar", string.Format("{0} Tanque(s)", Detalle.Cantidad), "Confirmar", "Regresar");

            if (action)
            {
                var compra = new Compra {
                    IdCompra = Settings.IdCompra, IdDistribuidor = Settings.IdDistribuidor
                };
                var compracancelada = new CompraCancelada
                {
                    IdCompra       = Detalle.IdCompra,
                    IdDistribuidor = Settings.IdDistribuidor,
                    CanceladaPor   = 2,
                    IdCliente      = (int)Detalle.IdCliente
                };
                var response = await ApiServices.InsertarAsync <CompraCancelada>(compracancelada, new Uri(Constants.BaseApiAddress), "/api/Compras/Cancelar");

                if (response.IsSuccess)
                {
                    await App.Current.MainPage.DisplayAlert("Pedido a Cancelar", string.Format("Su pedido de {0} tanque(s) ha sido cancelado", Detalle.Cantidad), "Aceptar");

                    await App.Navigator.Navigation.PopToRootAsync();
                }
                else
                {
                    await App.Current.MainPage.DisplayAlert("Problemas", string.Format("Tenemos problemas para cancelarsu pedido de {0} tanque(s), trabajamos para solucionarlo", Detalle.Cantidad), "Aceptar");

                    //Settear las variables globales
                    await App.Navigator.Navigation.PopToRootAsync();
                }
            }
        }
예제 #2
0
        public async void Cancel()
        {
            try
            {
                var action = await App.Current.MainPage.DisplayAlert("Pedido a Cancelar", string.Format("{0} Tanque(s)", Compra.Cantidad), "Confirmar", "Regresar");

                if (action)

                {
                    if (Compra.IdDistribuidor == null)
                    {
                        Compra.IdDistribuidor = 0;
                    }

                    var compracancelada = new CompraCancelada
                    {
                        IdCompra       = Compra.IdCompra,
                        IdDistribuidor = (int)Compra.IdDistribuidor,
                        CanceladaPor   = 1,
                        IdCliente      = (int)Compra.IdCliente
                    };
                    var response = await ApiServices.InsertarAsync <CompraCancelada>(compracancelada, new Uri(Constants.BaseApiAddress), "api/Compras/Cancelar");

                    if (response.IsSuccess)
                    {
                        await App.Current.MainPage.DisplayAlert("Pedido a Cancelar", string.Format("Su pedido de {0} tanque(s) ha sido cancelado", Compra.Cantidad), "Aceptar");

                        Settings.Pedidos = false;
                        await App.Navigator.Navigation.PopToRootAsync();
                    }
                    else
                    {
                        await App.Current.MainPage.DisplayAlert("Problemas", string.Format("Tenemos problemas para cancelarsu pedido de {0} tanque(s), trabajamos para solucionarlo", Compra.Cantidad), "Aceptar");

                        //Settear las variables globales
                        if (Settings.IdCompra == Compra.IdCompra)
                        {
                            Settings.Pedidos        = false;
                            Settings.IdCompra       = 0;
                            Settings.IdDistribuidor = 0;
                            Settings.TanquesGas     = 0;
                            Settings.Pedidos        = false;
                        }


                        await App.Navigator.Navigation.PopToRootAsync();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.Write(ex.Message);
            }
        }
예제 #3
0
        public async Task <Response> Cancelar(CompraCancelada compra)
        {
            if (compra == null)
            {
                return(new Response
                {
                    IsSuccess = true,
                    Message = "no existe",
                    Result = null
                });
            }

            db.Configuration.ProxyCreationEnabled = false;
            Compra compraresult = db.Compra.Find(compra.IdCompra);

            compra.Fecha = DateTime.Now;


            switch (compra.CanceladaPor)
            {
            //si es el usuario el que desea cancelar el pedido
            case 1:
                //Modifica la base y se agrega al registro de comprascancelada
                if (compraresult.Estado != -1)
                {
                    db.Configuration.ProxyCreationEnabled = false;
                    db.Entry(compraresult).State          = EntityState.Modified;
                    compraresult.Estado         = -1;
                    compraresult.IdDistribuidor = compra.IdDistribuidor;
                    db.CompraCancelada.Add(compra);
                    db.SaveChanges();
                    Compra compraresult2 = new Compra {
                        IdCompra = compraresult.IdCompra, IdDistribuidor = compraresult.IdDistribuidor
                    };

                    //Notificar al distribuidor que la compra se cancelo
                    if (compraresult.IdDistribuidor != null && compraresult.IdDistribuidor > 0)
                    {
                        await Notificacion(compraresult, 4);
                    }


                    return(new Response
                    {
                        IsSuccess = true,
                        Message = "Compra cancelada con exito",
                        Result = compraresult2
                    });
                }
                return(new Response
                {
                    IsSuccess = false,
                    Message = "la compra fue cancelada antes",
                    Result = null
                });

            //si es el distribuidor el que desea cancelar el pedido

            case 2:
                try
                {
                    db.Configuration.ProxyCreationEnabled = false;
                    db.Entry(compraresult).State          = EntityState.Modified;
                    compraresult.Estado         = 0;
                    compraresult.IdDistribuidor = compra.IdDistribuidor;

                    db.CompraCancelada.Add(compra);

                    db.SaveChanges();

                    await Notificacion(compraresult, 5);

                    await BuscarSector(compraresult);

                    Compra compraresult3 = new Compra {
                        IdCompra = compraresult.IdCompra, IdDistribuidor = compraresult.IdDistribuidor
                    };

                    return(new Response
                    {
                        IsSuccess = true,
                        Message = "Compra cancelada con exito",
                        Result = compraresult3
                    });
                }
                catch (Exception ex)
                {
                    Debug.Write(ex.Message);
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = "la compra no se pudo cancelar",
                        Result = ex.Message
                    });
                }

            //Modifica la base y se agrega al registro de comprascancelada
            //Notificar al usuario que la compra se cancelo y que se buscara otro Distribuidor
            //Notificar a los distribuidores excepto el anterior
            default:
                return(new Response
                {
                    IsSuccess = false,
                    Message = "llamada erronea",
                    Result = null
                });
            }
        }