/// <summary>
        /// Actualizar una cuenta.
        /// </summary>
        private async void ActualizarTapped(Object sender, System.EventArgs e)
        {
            try
            {
                CuentaManager cuentaManager     = new CuentaManager();
                Cuenta        cuentaActualizada = new Cuenta();

                #region Cargar datos fijos
                string moneda = string.Empty;
                switch (Pkr_Moneda.SelectedItem.ToString())
                {
                case "Colones":
                    moneda = "COL";
                    break;

                case "Dolares":
                    moneda = "DOL";
                    break;

                default:
                    moneda = "EUR";
                    break;
                }
                #endregion

                //Cuenta que almacena los cambios nuevos.
                Cuenta cuentaNueva = new Cuenta()
                {
                    CUE_CODIGO      = Convert.ToInt32(Txt_Codigo.Text),
                    USU_CODIGO      = App.usuarioActual.USU_CODIGO,
                    CUE_DESCRIPCION = Txt_Descripcion.Text,
                    CUE_MONEDA      = moneda,
                    CUE_SALDO       = Convert.ToDecimal(Txt_Saldo.Text),
                    CUE_ESTADO      = Pkr_Estado.SelectedItem.ToString().Substring(0, 1)
                };

                //Datos de la cuenta vieja.
                string cuentaAnterior = string.Format("Cuenta Anterior:\nDescripcion: {0}\nMoneda: {1}\nSaldo: {2}\nEstado: {3}",
                                                      this.cuentaVieja.CUE_DESCRIPCION, this.cuentaVieja.CUE_MONEDA, this.cuentaVieja.CUE_SALDO, this.cuentaVieja.CUE_ESTADO);

                //Datos actualizados.
                string cuentaActual = string.Format("Cuenta Actualizada:\nDescripcion: {0}\nMoneda: {1}\nSaldo: {2}\nEstado: {3}",
                                                    cuentaNueva.CUE_DESCRIPCION, cuentaNueva.CUE_MONEDA, cuentaNueva.CUE_SALDO, cuentaNueva.CUE_ESTADO);

                //Validar la respuesta del usuario.
                bool resultado = await DisplayAlert("Verifique los datos", cuentaAnterior + "\n" + cuentaActual + "\n¿Desea Continuar?", "Aceptar", "Cancelar");

                if (resultado)
                {
                    await DisplayAlert("Mensaje", "Cuenta actualizada correctamente", "Aceptar");

                    cuentaActualizada = await cuentaManager.ActualizarCuenta(cuentaNueva);

                    Application.Current.MainPage = new MainPage();
                }
                else /* No hacer codigo aqui. */ } {
        }
        private async void Btn_Pagar_Clicked(object sender, EventArgs e)
        {
            try
            {
                int  indexCuenta   = Pkr_Cuentas.SelectedIndex;
                int  indexServicio = Pkr_Servicios.SelectedIndex;
                bool BCuenta       = true;
                bool BServicio     = true;

                if (indexCuenta == -1)
                {
                    BCuenta = false;
                    await DisplayAlert("Alerta", "Debes seleccionar una cuenta.", "OK");
                }

                if (indexServicio == -1)
                {
                    BServicio = false;
                    await DisplayAlert("Alerta", "Debes seleccionar un servicio.", "OK");
                }

                if (BCuenta && BServicio)
                {
                    if (!VerificaCampo(Txt_Monto.Text))
                    {
                        decimal monto      = Convert.ToDecimal(Txt_Monto.Text);
                        decimal montoFinal = cuentasList[indexCuenta].CUE_SALDO - monto;
                        if (monto > 0)
                        {
                            if (montoFinal >= 0)
                            {
                                Pago pago = new Pago()
                                {
                                    PAG_CODIGO = 1,
                                    CUE_CODIGO = cuentasList[indexCuenta].CUE_CODIGO,
                                    SER_CODIGO = serviciosList[indexServicio].SER_CODIGO,
                                    PAG_MONEDA = cuentasList[indexCuenta].CUE_MONEDA,
                                    PAG_MONTO  = monto,
                                    PAG_FECHA  = DateTime.Now
                                };
                                string signo = cuentasList[indexCuenta].CUE_MONEDA.Trim().Equals("DOL") ? "$" : cuentasList[indexCuenta].CUE_MONEDA.Trim().Equals("COL") ? "₡" : "€";
                                string msj   = string.Format("Comprobación:\nServicio: {0}\nCuenta: {1}\nMonto: {2}{3:N2}\nSaldo despues del pago: {2}{4:N2}", serviciosList[indexServicio].SER_DESCRIPCION, pago.CUE_CODIGO, signo, pago.PAG_MONTO, montoFinal);

                                bool respuesta = await DisplayAlert("Comprobación:", msj, "OK", "Cancelar");

                                if (respuesta)
                                {
                                    Cuenta cuenta = cuentasList[indexCuenta];
                                    cuenta.CUE_SALDO -= monto;
                                    await cuentaManager.ActualizarCuenta(cuenta);

                                    await pagoManager.AgregarPago(pago);
                                    await DisplayAlert("Pago", "Pago completado.", "OK");

                                    Limpiar();
                                }
                            }
                            else
                            {
                                await DisplayAlert("Error", "Dinero insuficiente.\n", "OK");
                            }
                        }
                        else
                        {
                            await DisplayAlert("Alerta", "Debes indicar un monto valido.", "OK");
                        }
                    }
                    else
                    {
                        await DisplayAlert("Alerta", "Debes indicar el monto a pagar.", "OK");
                    }
                }
            }
            catch (Exception)
            {
                await DisplayAlert("Error", "Error al crear pago.", "OK");
            }
        }
Exemple #3
0
        private async void CrearTranferencia(object sender, EventArgs e)
        {
            try
            {
                #region Validaciones
                int    indexOrigen    = Pkr_CuentaOrigen.SelectedIndex;
                int    indexDestino   = Pkr_CuentaDestino.SelectedIndex;
                int    indexEstado    = Pkr_Estado.SelectedIndex;
                string Desc           = Txt_Descripcion.Text;
                string Monto          = Txt_Saldo.Text;
                bool   BCuentaOrigen  = true;
                bool   BCuentaDestino = true;
                bool   BDesc          = true;
                bool   BMonto         = true;
                bool   BEstado        = true;

                if (indexOrigen == -1)
                {
                    BCuentaOrigen = false;
                    await DisplayAlert("Alerta", "Debes seleccionar una cuenta de origen.", "OK");
                }

                if (indexDestino == -1)
                {
                    BCuentaDestino = false;
                    await DisplayAlert("Alerta", "Debes seleccionar una cuenta de destino.", "OK");
                }

                if (indexEstado == -1)
                {
                    BCuentaDestino = false;
                    await DisplayAlert("Alerta", "Debes seleccionar un estado.", "OK");
                }

                if (!VerificaCampo(Desc))
                {
                    BDesc = false;
                    await DisplayAlert("Alerta", "Ingrese una descripcion.", "OK");
                }
                if (!VerificaCampo(Monto))
                {
                    BMonto = false;
                    await DisplayAlert("Alerta", "Introduc seleccionar un Monto.", "OK");
                }
                #endregion

                if (BMonto && BDesc && BCuentaDestino && BCuentaOrigen && BEstado)
                {
                    if (indexDestino != indexOrigen)
                    {
                        int imonto = int.Parse(Monto);
                        if (imonto > 0)
                        {
                            if (cuentaList[indexOrigen].CUE_SALDO > imonto)
                            {
                                if (cuentaList[indexOrigen].CUE_MONEDA.Equals(cuentaList[indexDestino].CUE_MONEDA))
                                {
                                    Cuenta cuentaOrigen = new Cuenta()
                                    {
                                        CUE_CODIGO      = cuentaList[indexOrigen].CUE_CODIGO,
                                        CUE_SALDO       = cuentaList[indexOrigen].CUE_SALDO - imonto,
                                        CUE_DESCRIPCION = cuentaList[indexOrigen].CUE_DESCRIPCION,
                                        CUE_ESTADO      = cuentaList[indexOrigen].CUE_ESTADO,
                                        USU_CODIGO      = cuentaList[indexOrigen].USU_CODIGO,
                                        CUE_MONEDA      = cuentaList[indexOrigen].CUE_MONEDA
                                    };

                                    Cuenta cuentaDestino = new Cuenta()
                                    {
                                        CUE_CODIGO      = cuentaList[indexDestino].CUE_CODIGO,
                                        CUE_SALDO       = cuentaList[indexDestino].CUE_SALDO + imonto,
                                        CUE_DESCRIPCION = cuentaList[indexDestino].CUE_DESCRIPCION,
                                        CUE_ESTADO      = cuentaList[indexDestino].CUE_ESTADO,
                                        USU_CODIGO      = cuentaList[indexDestino].USU_CODIGO,
                                        CUE_MONEDA      = cuentaList[indexDestino].CUE_MONEDA
                                    };

                                    Transferencia transferencia = new Transferencia()
                                    {
                                        TRA_CUENTA_DESTINO = cuentaList[indexDestino].CUE_CODIGO,
                                        TRA_CUENTA_ORIGEN  = cuentaList[indexOrigen].CUE_CODIGO,
                                        TRA_FECHA          = DateTime.Now,
                                        TRA_ESTADO         = Pkr_Estado.SelectedItem.ToString().Substring(0, 1),
                                        TRA_CODIGO         = 1,
                                        TRA_DESCRIPCION    = Txt_Descripcion.Text,
                                        TRA_MONTO          = imonto
                                    };

                                    //Validar la creacion de la transferencia.
                                    bool respuesta = await DisplayAlert("Agregar transferencia", "", "Agregar", "Cancelar");

                                    if (respuesta)
                                    {
                                        //Agregar la cuenta.
                                        transferencia = await transferenciaManager.AgregarTransferencia(transferencia);

                                        cuentaOrigen = await cuentaManager.ActualizarCuenta(cuentaOrigen);

                                        cuentaDestino = await cuentaManager.ActualizarCuenta(cuentaDestino);

                                        //Mensaje de exito.
                                        await DisplayAlert("Mensaje", "Transferencia agregada correctamente", "Aceptar");
                                    }
                                    else /* No hacer codigo aqui. */ } {
                            }
                            else
                            {
                                await DisplayAlert("Alerta", "Cambio entre monedas, no disponible.", "OK");
                            }
                        }
                        else
                        {
                            await DisplayAlert("Alerta", "La cuenta de origen, no tiene los suficientes fondos.", "OK");
                        }
                    }
                    else
                    {
                        await DisplayAlert("Alerta", "Debes trasferir un monto valido.", "OK");
                    }
                }
                else
                {
                    await DisplayAlert("Alerta", "Has seleccionado la misma cuenta.", "OK");
                }
            }
            else
            {
                await DisplayAlert("Alerta", "Verifique los datos.", "OK");
            }
        }