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");
     }
 }
 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");
         }
     }
 }