private void DarDeAlta_Click(object sender, EventArgs e) { // Deshabilitar todos los controles. GroupBoxDatos.Enabled = false; // Verificar el CUIT ingresado con el algoritmo de validación. if (!ValidacionCUIT.Validar(CUITTipo.Text + CUITNumero.Text + CUITVerificador.Text)) { MessageBox.Show("El CUIT ingresado no es valido!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); GroupBoxDatos.Enabled = true; return; } using (var conexion = Program.conexion()) using (var cmd = new SqlCommand()) { cmd.CommandText = @"INSERT INTO [SERVOMOTOR].EMPRESAS (CUIT, NOMBRE, DIRECCION, ID_RUBRO, ESTADO_ACTIVACION) VALUES ( @CUIT, @NOMBRE, @DIRECCION, ( SELECT ID_RUBRO FROM [SERVOMOTOR].RUBROS WHERE DESCRIPCION = @RUBRO ), 1 );"; cmd.Connection = conexion; cmd.Parameters.Add("@CUIT", SqlDbType.VarChar, 50).Value = CUITTipo.Text + "-" + CUITNumero.Text + "-" + CUITVerificador.Text; cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 255).Value = Nombre.Text; cmd.Parameters.Add("@DIRECCION", SqlDbType.VarChar, 255).Value = Direccion.Text; cmd.Parameters.Add("@RUBRO", SqlDbType.VarChar, 20).Value = Rubro.SelectedItem.ToString(); try { if (cmd.ExecuteNonQuery() != 1) { throw new Exception(); } } catch (Exception ex) { MessageBox.Show("No se pudo dar de alta la empresa.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); GroupBoxDatos.Enabled = true; return; } } MessageBox.Show("La empresa fue dada de alta.", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; }
private void Actualizar_Click(object sender, EventArgs e) { // Deshabilitar los controles hasta que finalice la operación. GroupBoxDatos.Enabled = false; // Verificar el CUIT ingresado con el algoritmo de validación. if (!ValidacionCUIT.Validar(CUITTipo.Text + CUITNumero.Text + CUITVerificador.Text)) { MessageBox.Show("El CUIT ingresado no es valido!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); GroupBoxDatos.Enabled = true; return; } using (var conexion = Program.conexion()) using (var cmd = new SqlCommand()) { cmd.CommandText = "UPDATE [SERVOMOTOR].EMPRESAS " + "SET CUIT = @CUIT, " + " NOMBRE = @NOMBRE, " + " DIRECCION = @DIRECCION, " + " ID_RUBRO = ( " + " SELECT ID_RUBRO " + " FROM [SERVOMOTOR].RUBROS " + " WHERE DESCRIPCION = @RUBRO" + " ), " + " ESTADO_ACTIVACION = @ESTADO_ACTIVACION " + "WHERE CUIT = @CUIT_ORIG"; cmd.Connection = conexion; cmd.Parameters.Add("@CUIT", SqlDbType.VarChar, 50).Value = CUITTipo.Text + "-" + CUITNumero.Text + "-" + CUITVerificador.Text; cmd.Parameters.Add("@NOMBRE", SqlDbType.VarChar, 255).Value = Nombre.Text; cmd.Parameters.Add("@DIRECCION", SqlDbType.VarChar, 255).Value = Direccion.Text; cmd.Parameters.AddWithValue("@RUBRO", Rubro.Text); cmd.Parameters.Add("@ESTADO_ACTIVACION", SqlDbType.Bit).Value = Habilitar.Checked ? 1 : 0; cmd.Parameters.Add("@CUIT_ORIG", SqlDbType.VarChar, 50).Value = Values["ColCUIT"].Value.ToString(); try { try { // ExecuteNonQuery() de por sí podría lanzar otras excepciones. if (cmd.ExecuteNonQuery() != 1) { throw new Exception(); } } catch (SqlException ex) { if (ex.State != 3) { throw; // Va a ser capturado por el catch de afuera. } // Código de error = 3 // Error al intentar dar de baja una empresa con rendiciones pendientes. MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); // Como ya se sabe que no se puede deshabilitar la empresa, // deshabilitar la opción para deshabilitar. Habilitar.Checked = true; Habilitar.Enabled = false; GroupBoxDatos.Enabled = true; return; } } catch (Exception ex) { MessageBox.Show("Error al intentar modificar la empresa.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); GroupBoxDatos.Enabled = true; return; } } MessageBox.Show("Los datos de la empresa " + Nombre.Text + " fueron actualizados.", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; }