示例#1
0
        public static bool ActualizarMonto(TarjetaCredito tarjeta)
        {
            SqlConnection conn = new SqlConnection(@"server = .\sqlexpress;
                integrated security = true; database = GenisysATM");
            SqlCommand cmd = new SqlCommand("sp_ModificarMontoTarjetaCredito", conn);

            cmd.CommandType = CommandType.StoredProcedure;

            // Parámteros
            cmd.Parameters.Add(new SqlParameter("idCliente", SqlDbType.SmallInt));
            cmd.Parameters.Add(new SqlParameter("nuevoMonto", SqlDbType.Decimal));
            cmd.Parameters["idCliente"].Value = tarjeta.idCliente;
            cmd.Parameters["nuevoMonto"].Value = tarjeta.monto;

            try
            {
                conn.Open();

                cmd.ExecuteNonQuery();

                return true;
            }
            catch (CustomException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
示例#2
0
        public static TarjetaCredito ObtenerTarjetaCliente(int clienteId)
        {
            SqlConnection conn = new SqlConnection(@"server = .\sqlexpress;
                integrated security = true; database = GenisysATM");
            string sql;
            TarjetaCredito resultado = new TarjetaCredito();

            sql = @"Select * From ATM.TarjetaCredito Where IdCliente = @clienteId";

            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataReader rdr;

            try
            {
                // Establecer la conexión
                conn.Open();

                using (cmd)
                {
                    cmd.Parameters.Add("@clienteId", SqlDbType.SmallInt).Value = clienteId;

                    rdr = cmd.ExecuteReader();
                }

                while (rdr.Read())
                {
                    resultado.id = rdr.GetInt16(0);
                    resultado.idCliente = rdr.GetInt16(1);
                    resultado.monto = rdr.GetDecimal(2);
                }

                return resultado;
            }
            catch (CustomException ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
        }
        public bool PagoTarjetaCredito(Cliente elCliente, TarjetaCredito tarjeta, decimal montoAPagar)
        {
            try
            {
                decimal montoLempiras = montoAPagar * decimal.Parse(tasaCambio);

                if (elCliente.saldo < montoLempiras)
                {
                    throw new CustomException("Saldo insuficiente para realizar la transacción");
                }
                else if (elCliente.saldo == montoLempiras)
                {
                    throw new CustomException("Por políticas del ATM, no puede dejar su saldo en Lps. 0.00, favor revise el monto a pagar.");
                }
                else
                {
                    elCliente.saldo = elCliente.saldo - montoLempiras;
                    tarjeta.monto = tarjeta.monto - montoAPagar;

                    // Actualizar los valores pagados y debitados
                    Cliente.ActualizarSaldo(elCliente);
                    TarjetaCredito.ActualizarMonto(tarjeta);

                    return true;
                }
            }
            catch (CustomException ex)
            {
                throw ex;
            }
        }