Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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();
                    }
                }
            }
        }