//Este proceso se encarga de ejecutar la acción de realizar la transferencia
        protected void btnEjecutar_Click(object sender, EventArgs e)
        {
            try
            {
                //Se valida que el usuario haya selecciodo una opcion
                if (ddnCuentaOrigen.SelectedIndex == 0 || ddnCuentaDestino.SelectedIndex == 0)
                {
                    lblMensaje.Text = "Debe seleccionar una opcion en ambas listas";
                }
                else
                {
                    int monto = int.Parse(txtMonto.Text);

                    //Se valida que el monto no sea mayor o igual a 250 mil colones
                    if (monto >= 250000)
                    {
                        lblMensaje.Text = "Solo se permiten transferencias menores a 250 mil colones";
                    }
                    else
                    {
                        //Si el monto es inferior a 250 mil colones se procede a insertar en la base de datos
                        using (SistemaBancarioEntities bd = new SistemaBancarioEntities())
                        {
                            var cuenta = (from c in bd.spConsultaCuentaPorNumero(ddnCuentaOrigen.SelectedItem.Text)
                                          select c).FirstOrDefault();

                            //Si el saldo de la cuenta es menor a lo que se desea transferir no se permite
                            if (cuenta.saldo < monto)
                            {
                                lblMensaje.Text = "El monto a transferir es mayor al saldo de la cuenta";
                            }
                            else
                            {
                                int idCuentaOrigen  = int.Parse(ddnCuentaOrigen.SelectedItem.Value);
                                int idCuentaDestino = int.Parse(ddnCuentaDestino.SelectedItem.Value);

                                bd.spInsertaTransferencias(idCuentaOrigen, idCuentaDestino, monto, DateTime.Now);
                                bd.spInsertaMovimiento(idCuentaOrigen, 3, (monto * -1), DateTime.Now);
                                bd.spInsertaMovimiento(idCuentaDestino, 4, monto, DateTime.Now);
                                bd.spActualizaCuenta((monto * -1), idCuentaOrigen, DateTime.Now);
                                bd.spActualizaCuenta(monto, idCuentaDestino, DateTime.Now);
                                bd.SaveChanges();

                                lblMensaje.Text = "La transferencia se ha efectuado exitosamente";
                                txtMonto.Text   = "";
                                ddnCuentaOrigen.SelectedIndex  = 0;
                                ddnCuentaDestino.SelectedIndex = 0;
                            }
                        }
                    }
                }
            }
            catch
            {
            }
        }
예제 #2
0
        // Este proceso ejecuta el proceso
        protected void btnEjecutar_Click(object sender, EventArgs e)
        {
            try
            {
                int    idTipoMovimiento = int.Parse(ddnTipoMovimiento.SelectedValue);
                int    idCuenta         = int.Parse(ddnCuentas.SelectedValue);
                int    monto            = int.Parse(txtMonto.Text);
                string numeroCuenta     = ddnCuentas.SelectedItem.Text;
                //Se define como 1 si es deposito o 2 si es retiro
                if (ddnTipoMovimiento.SelectedIndex == 0 || ddnCuentas.SelectedIndex == 0)
                {
                    lblMensaje.Text = "Debe seleccionar una opcion en ambas listas";
                }
                else
                {
                    //Valida si el tipo de movimiento es deposito
                    if (idTipoMovimiento == 1)
                    {
                        if (monto > 0 && monto <= 500000)
                        {
                            using (SistemaBancarioEntities bd = new SistemaBancarioEntities())
                            {
                                bd.spInsertaMovimiento(idCuenta, idTipoMovimiento, monto, DateTime.Now);
                                bd.spActualizaCuenta(monto, idCuenta, DateTime.Now);
                                bd.SaveChanges();
                            }
                            lblMensaje.Text = "Se ha realizado el deposito exitosamente";
                            txtMonto.Text   = "";
                            ddnTipoMovimiento.SelectedIndex = 0;
                            ddnCuentas.SelectedIndex        = 0;
                        }
                        else
                        {
                            lblMensaje.Text = "El monto no puede ser igual a cero o montos mayores a 500 mil colones.";
                        }
                    }
                    else
                    {//Realiza el proceso al no ser deposito, por ende es un retiro
                        using (SistemaBancarioEntities bd = new SistemaBancarioEntities())
                        {
                            var cuentas = (from c in bd.spConsultaCuentaPorNumero(numeroCuenta)
                                           select c).FirstOrDefault();

                            if (cuentas.saldo > monto)
                            {
                                monto = (monto * -1);
                                bd.spInsertaMovimiento(idCuenta, idTipoMovimiento, monto, DateTime.Now);
                                bd.spActualizaCuenta(monto, idCuenta, DateTime.Now);
                                bd.SaveChanges();
                                lblMensaje.Text = "Se ha realizado el retiro exitosamente";
                                txtMonto.Text   = "";
                                ddnTipoMovimiento.SelectedIndex = 0;
                                ddnCuentas.SelectedIndex        = 0;
                            }
                            else
                            {
                                lblMensaje.Text = "Saldo insuficiente para la transacción";
                            }
                        }
                    }
                }
            }
            catch
            {
                lblMensaje.Text = "Ha ocurrido un error";
            }
        }