private void botEfectuarCompra_Click(object sender, EventArgs e) { //verificar campos llenos if (FuncionesUtiles.estanVacios(new List<TextBox> { textBeneficiario, textFecha, textMonto, textNumeroTarjeta }) || comboBoxPostNet.SelectedIndex == -1) { string mensaje = "Debe completar los siguientes campos:"; if (textBeneficiario.Text == "") { mensaje += "\n-Beneficiario"; } if (textFecha.Text == "") { mensaje += "\n-Fecha"; } if (textMonto.Text == "") { mensaje += "\n-Monto"; } if (textNumeroTarjeta.Text == "") { mensaje += "\n-Número de tarjeta"; } if (comboBoxPostNet.SelectedIndex == -1) { mensaje += "\n-Post-net"; } MessageBox.Show(mensaje, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { //campos completos, verificar los numericos if (!FuncionesUtiles.sonNumericos(new List<TextBox> { textNumeroTarjeta }) || !FuncionesUtiles.esDecimal(textMonto)) { //hay campos numericos con valores no numericos string mensaje = "Los siguientes campos deben ser numéricos y positivos:"; if (!FuncionesUtiles.esDecimal(textMonto)) { mensaje += "\n-Monto"; } if (!FuncionesUtiles.esNumerico(textNumeroTarjeta)) { mensaje += "\n-Número de tarjeta"; } MessageBox.Show(mensaje, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { //campos correctos, verificar numero de tarjeta SqlConnection con = Conexion.conectar(); con.Open(); SqlCommand com = new SqlCommand("select * from ntvc.tarjeta where nro_tarjeta = @nro_tarjeta", con); com.Parameters.AddWithValue("@nro_tarjeta", textNumeroTarjeta.Text); SqlDataReader reader = com.ExecuteReader(); if (!reader.Read()) { //no existe la tarjeta reader.Close(); MessageBox.Show("No existe la tarjeta.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { if (reader["habilitado"].ToString().Trim() == "0") { reader.Close(); MessageBox.Show("La tarjeta se encuentra inhabilitada.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { decimal credito_actual = Convert.ToDecimal(reader["credito"].ToString().Trim()); decimal monto = Convert.ToDecimal(textMonto.Text.Trim()); if ( credito_actual < monto) { reader.Close(); MessageBox.Show("La tarjeta no posee crédito suficiente para realizar la operación.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { //todo piola, hacer la transaccion //actualizar credito string cod_tarjeta = reader["cod_tarjeta"].ToString().Trim(); decimal credito_nuevo = Convert.ToDecimal(reader["credito"].ToString().Trim()) - Convert.ToDecimal(textMonto.Text); reader.Close(); com = new SqlCommand("update ntvc.tarjeta set credito = @credito where cod_tarjeta = @cod_tarjeta", con); com.Parameters.AddWithValue("@credito", credito_nuevo); com.Parameters.AddWithValue("@cod_tarjeta", cod_tarjeta); com.ExecuteNonQuery(); string cod_postnet = cods_postnets_[comboBoxPostNet.SelectedIndex]; //obtener codigo de compra string codigo_compra = ""; com = new SqlCommand("select top 1 codigo from ntvc.compra order by codigo desc", con); reader = com.ExecuteReader(); if (reader.Read()) { codigo_compra = reader["codigo"].ToString().Trim(); } reader.Close(); //insertar compra string insert = "insert into ntvc.compra (codigo, fecha, monto, cod_tarjeta, cod_beneficiario, cod_postnet) values "; insert += "(@codigo, @fecha, @monto, @cod_tarjeta, @cod_beneficiario, @cod_postnet)"; com = new SqlCommand(insert, con); com.Parameters.AddWithValue("@codigo", codigo_compra); com.Parameters.AddWithValue("@fecha", textFecha.Text); com.Parameters.AddWithValue("@monto", Convert.ToDecimal(textMonto.Text)); com.Parameters.AddWithValue("@cod_tarjeta", cod_tarjeta); com.Parameters.AddWithValue("@cod_beneficiario", cod_beneficiario_); com.Parameters.AddWithValue("@cod_postnet", cod_postnet); com.ExecuteNonQuery(); this.Close(); Saldo form = new Saldo(); form.labelSaldo.Text = "La compra ha sido efectuada exitosamente.\nSu saldo es " + credito_nuevo.ToString() + "."; form.ShowDialog(this); } } } con.Close(); } } }
private void botCargarCredito_Click(object sender, EventArgs e) { if (FuncionesUtiles.estanVacios(new List <TextBox> { textNumeroTarjeta, textFecha, textMonto })) { string mensaje = "Debe completar los siguientes campos:"; if (FuncionesUtiles.estaVacio(textNumeroTarjeta)) { mensaje += "\n-Número de tarjeta"; } if (FuncionesUtiles.estaVacio(textFecha)) { mensaje += "\n-Fecha"; } if (FuncionesUtiles.estaVacio(textMonto)) { mensaje += "\n-Monto"; } MessageBox.Show(mensaje, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { if (!FuncionesUtiles.sonNumericos(new List <TextBox> { textNumeroTarjeta }) || !FuncionesUtiles.esDecimal(textMonto)) { //hay campos numericos con valores no numericos string mensaje = "Los siguientes campos deben ser numéricos y positivos:"; if (!FuncionesUtiles.esDecimal(textMonto)) { mensaje += "\n-Monto"; } if (!FuncionesUtiles.esNumerico(textNumeroTarjeta)) { mensaje += "\n-Número de tarjeta"; } MessageBox.Show(mensaje, "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } else { //el valor de numero de tarjeta es numerico SqlConnection con = Conexion.conectar(); SqlCommand com = new SqlCommand("select * from NTVC.TARJETA where nro_tarjeta = @nro_tarjeta", con); com.Parameters.AddWithValue("@nro_tarjeta", this.textNumeroTarjeta.Text); con.Open(); SqlDataReader reader = com.ExecuteReader(); //veo si el numero de tarjeta existe if (reader.Read()) { //la tarjeta existe //verifico que este habilitada if (reader["habilitado"].ToString().Trim() == "1") { string cod_tarjeta = reader["cod_tarjeta"].ToString().Trim(); decimal credito_nuevo = Convert.ToDecimal(reader["credito"].ToString().Trim()) + Convert.ToDecimal(textMonto.Text); reader.Close(); com = new SqlCommand("update ntvc.tarjeta set credito = @credito where cod_tarjeta = @cod_tarjeta", con); com.Parameters.AddWithValue("@credito", credito_nuevo); com.Parameters.AddWithValue("@cod_tarjeta", cod_tarjeta); com.ExecuteNonQuery(); com = new SqlCommand("insert into ntvc.carga (cod_tarjeta, fecha,monto) values (@cod_tarjeta, @fecha, @monto)", con); com.Parameters.AddWithValue("@cod_tarjeta", cod_tarjeta); com.Parameters.AddWithValue("@fecha", this.textFecha.Text); com.Parameters.AddWithValue("@monto", this.textMonto.Text); com.ExecuteNonQuery(); this.Close(); BoletoElectronicoDesktop.Facturación.Saldo form = new BoletoElectronicoDesktop.Facturación.Saldo(); form.labelSaldo.Text = "La carga ha sido efectuada exitosamente.\nSu saldo es " + credito_nuevo.ToString() + "."; form.ShowDialog(this); } else { //la tarjeta esta deshabilitada reader.Close(); MessageBox.Show("La tarjeta se encuentra inhabilitada.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); } con.Close(); } else { MessageBox.Show("El número de tarjeta ingresado no existe.", "Error", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Hand); reader.Close(); con.Close(); } } } }