private void Pagar_Clicked(object sender, EventArgs e)
 {
     if (Memoria.UsuarioActual.Saldo >= abono.ABO_CANTIDAD_MENSUAL)
     {
         //Proceder a pagar
         //Set values for Update
         Memoria.UsuarioActual.Saldo -= abono.ABO_CANTIDAD_MENSUAL;
         AbonoPorMes abonoPorMes = new AbonoPorMes {
             ABO_ID = abono.ABO_ID, ABEM_CANTIDAD_DEPOSITADA = abono.ABO_CANTIDAD_MENSUAL, ABEM_FECHA_DEPOSITADA = DateTime.Today
         };
         abono.ABO_RESTANTE       -= abono.ABO_CANTIDAD_MENSUAL;
         compra.COM_SIGUIENTE_PAGO = compra.COM_SIGUIENTE_PAGO.AddMonths(1);
         UsuarioController.UpdateUser(Memoria.UsuarioActual);
         //Updates
         AbonoRepository.UpdateAbono(abono);
         AbonoPorMesRepository.InsertarAbonoPorMes(abonoPorMes);
         CompraRepository.UpdateCompra(compra);
         Memoria.UsuarioActual = UsuarioController.GetUserByID(Memoria.UsuarioActual.UsuarioId);
         Alert("Realizado", "Abono realizado con exito", "Ok");
         Application.Current.MainPage = new NavigationPage(new MenuPrincipalCliente());
     }
     else
     {
         Alert("Alerta", "No posee los fondos suficientes", "Ok");
     }
 }
Beispiel #2
0
        public AbonoService()
        {
            string cadena = "Data Source=localhost:1521/xepdb1;User Id=sarasoft;Password=1234";

            conexion         = new OracleConnection(cadena);
            abonoRepositorio = new AbonoRepository(conexion);
        }
        public AllAbonosPendientes()
        {
            InitializeComponent();
            IEnumerable <Compra> compras = CompraRepository.GetAllComprasAbonosActivosByUserID(Memoria.UsuarioActual.UsuarioId);
            int count = 2;

            if (compras.Count() == 0)
            {
                lblInit.Text      = "No hay Facturas con abonos Activos";
                btnInit.IsEnabled = false;
                btnInit.IsVisible = false;
                lblInit.IsEnabled = true;
                lblInit.IsVisible = true;
            }
            else
            {
                lblInit.IsVisible = false;
                btnInit.IsVisible = true;
            }
            foreach (var compra in compras)
            {
                DinamicButton dinamicButton = new DinamicButton();
                dinamicButton.DinamicValue = compra.COM_ID;
                dinamicButton.Text         = "Ver";
                dinamicButton.Clicked     += new EventHandler(dinamicButton.SeeFactura);
                AllFacturasAbonoActivo.Children.Add(new Label {
                    Text = compra.COM_ID.ToString()
                }, 0, count);
                AllFacturasAbonoActivo.Children.Add(new Label {
                    Text = AbonoRepository.GetAbonoByCompraID(compra.COM_ID).ABO_RESTANTE.ToString()
                }, 1, count);
                AllFacturasAbonoActivo.Children.Add(new Label {
                    Text = "$" + Math.Truncate(compra.COM_PRECIO_TOTAL).ToString()
                }, 2, count);
                AllFacturasAbonoActivo.Children.Add(dinamicButton, 3, count);
                count += 1;
            }
        }
        public ViewResult Details(EstadoCuentaVM  model)
        {
            var id = model.MovimientoId ;
            var action = model.CambioEstatusVM.Estatus;
            string comentario = model.CambioEstatusVM.Comentario != null ? model.CambioEstatusVM.Comentario.TrimEnd() : string.Empty ;
            AbonoRepository AbonoRepository;
            if (id > 0)
            {
                Movimiento Movimiento = repository.LoadById(id);
                if (Movimiento != null)
                {
                    AbonoRepository = new AbonoRepository(repository.context);//
                    Abono abono = AbonoRepository.LoadById(Movimiento.Id);
                    if (abono != null)
                    {
                        if (Movimiento.IsAbono)
                        {
                            enumEstatusMovimiento nuevoEstatus = (enumEstatusMovimiento)Movimiento.Status;
                            switch (action)
                            {
                                case "Cancelar":
                                    nuevoEstatus = enumEstatusMovimiento.Cancelado;
                                    break;
                                case "Aplicar":
                                    nuevoEstatus = enumEstatusMovimiento.Aplicado;
                                    break;
                                case "Rechazar":
                                    nuevoEstatus = enumEstatusMovimiento.Rechazado;
                                    break;
                            }

                            EstadoCuentaBR estadoCuentaBR = new EstadoCuentaBR(repository.context);

                          //  Movimiento.Status = (Int16)nuevoEstatus;
                            abono.Status = (Int16)nuevoEstatus;

                            estadoCuentaBR.ActualizarMovimiento(Movimiento.MovimientoId, nuevoEstatus, comentario);

                            this.Succeed = estadoCuentaBR.Succeed;
                            this.ValidationMessages = estadoCuentaBR.ValidationMessages;

                            if (Succeed)
                            {
                                Succeed= repository.Save();
                                if (Succeed)
                                {
                                    AddValidationMessage(enumMessageType.Succeed, "El movimiento ha sido " + nuevoEstatus.ToString() + " correctamente");
                                }
                                else
                                {
                                    //TODO: implemtar código que traiga mensajes del repositorio
                                }

                            }
                        }
                        else
                        {
                            //todo: Si no es abono que hacer?
                            AddValidationMessage(enumMessageType.BRException, "No hay lógica para modificar este movimiento");
                        }
                    }
                    else
                    {
                        AddValidationMessage(enumMessageType.BRException, "No se encontró el Abono.");
                    }

                }
                else
                {
                    AddValidationMessage(enumMessageType.BRException, "No se encontró el movimiento.");
                }

            }
            else
            {
                AddValidationMessage(enumMessageType.BRException , "El movimiento no es válido.");
            }

            model = FillEstadoDeCuentaVM(id);
            return View(model);
        }
 private void Facturar_Clicked(object sender, EventArgs e)
 {
     if (cb_Abono.IsChecked)
     {
         //Config  abono, insert factura & insert abonoPorMes
         if (Memoria.UsuarioActual.Saldo >= Decimal.Parse(PrecioTotal.Text))
         {
             Memoria.compra.US_ID              = 0;
             Memoria.compra.COM_FECHA_COMPRA   = DateTime.Today;
             Memoria.compra.COM_ESTADO         = "Abonos";
             Memoria.compra.COM_PRECIO_TOTAL   = Decimal.Parse(PrecioTotal.Text);
             Memoria.compra.COM_INTERES        = (Decimal.Parse(PrecioTotal.Text));
             Memoria.compra.COM_SIGUIENTE_PAGO = DateTime.Today.AddMonths(1);
             int CompraID = CompraRepository.InsertAndReturn(Memoria.compra);
             List <CompraProductos> listTemp = new List <CompraProductos>();
             foreach (var cp in Memoria.listaCarrito)
             {
                 cp.COM_ID = CompraID;
                 listTemp.Add(cp);
             }
             Memoria.listaCarrito = listTemp;
             IEnumerable <CompraProductos> list = Memoria.listaCarrito;
             CompraProductosRepository.InsertAll(list);
             Memoria.DinamicValue = CompraID;
             Abono abono = new Abono {
                 COM_ID = 0, ABO_CANTIDAD_DE_MESES = Int32.Parse(CantidadDeMeses.Text), ABO_CANTIDAD_MENSUAL = Decimal.Parse(CantidadMensual.Text), ABO_RESTANTE = (Decimal.Parse(PrecioTotal.Text) - Decimal.Parse(CantidadMensual.Text))
             };
             int AbonoID = AbonoRepository.InsertAndReturn(abono);
             Memoria.UsuarioActual.Saldo -= Decimal.Parse(CantidadMensual.Text);
             AbonoPorMesRepository.InsertarAbonoPorMes(new AbonoPorMes {
                 ABO_ID = AbonoID, ABEM_FECHA_DEPOSITADA = DateTime.Today, ABEM_CANTIDAD_DEPOSITADA = Decimal.Parse(CantidadMensual.Text)
             });
             UsuarioController.UpdateUser(Memoria.UsuarioActual);
             Memoria.UsuarioActual        = UsuarioController.GetUserByID(Memoria.UsuarioActual.UsuarioId);
             Memoria.State                = "Create";
             Memoria.DinamicValue         = CompraID;
             Memoria.listaCarrito         = new List <CompraProductos>();
             Application.Current.MainPage = new NavigationPage(new Factura());
         }
         else
         {
             Alert("Alerta", "No posee los fondos suficientes", "Ok");
         }
     }
     else
     {
         //set Contado
         if (Memoria.UsuarioActual.Saldo >= Decimal.Parse(PrecioTotal.Text))
         {
             Memoria.compra.US_ID              = 0;
             Memoria.compra.COM_FECHA_COMPRA   = DateTime.Today;
             Memoria.compra.COM_ESTADO         = "Contado";
             Memoria.compra.COM_SIGUIENTE_PAGO = DateTime.Today;
             Memoria.compra.COM_PRECIO_TOTAL   = Decimal.Parse(PrecioTotal.Text);
             Memoria.compra.COM_INTERES        = (Decimal.Parse(PrecioTotal.Text) * Decimal.Parse("0,3"));
             int CompraID = CompraRepository.InsertAndReturn(Memoria.compra);
             List <CompraProductos> listTemp = new List <CompraProductos>();
             foreach (var cp in Memoria.listaCarrito)
             {
                 cp.COM_ID = CompraID;
                 listTemp.Add(cp);
             }
             Memoria.DinamicValue = CompraID;
             Memoria.listaCarrito = listTemp;
             IEnumerable <CompraProductos> list = Memoria.listaCarrito;
             CompraProductosRepository.InsertAll(list);
             Abono abono = new Abono {
                 COM_ID = 0, ABO_CANTIDAD_DE_MESES = 1, ABO_CANTIDAD_MENSUAL = 0, ABO_RESTANTE = 0
             };
             int AbonoID = AbonoRepository.InsertAndReturn(abono);
             Memoria.UsuarioActual.Saldo -= Decimal.Parse(PrecioTotal.Text);
             AbonoPorMesRepository.InsertarAbonoPorMes(new AbonoPorMes {
                 ABO_ID = AbonoID, ABEM_FECHA_DEPOSITADA = DateTime.Today, ABEM_CANTIDAD_DEPOSITADA = Decimal.Parse(PrecioTotal.Text)
             });
             UsuarioController.UpdateUser(Memoria.UsuarioActual);
             Memoria.State                = "Create";
             Memoria.DinamicValue         = CompraID;
             Memoria.UsuarioActual        = UsuarioController.GetUserByID(Memoria.UsuarioActual.UsuarioId);
             Memoria.listaCarrito         = new List <CompraProductos>();
             Application.Current.MainPage = new NavigationPage(new Factura());
         }
         else
         {
             Alert("Alerta", "No posee los fondos suficientes", "Ok");
         }
     }
 }