private void button_Guardar_Click(object sender, EventArgs e) { // Guarda en variables todos los campos de entrada String Marca = comboBox_Marca.Text; String Modelo = textBox_Modelo.Text; String Patente = textBox_Patente.Text; String TurnoSeleccionado = comboBox_Turno.Text; String DniChofer = textBox_Chofer.Text; Boolean activo = checkBox_Habilitado.Checked; Boolean pudoModificar; Boolean checkBoxActivoDeshabilitar_Chofer = checkBoxDeshabilitar_chofer.Checked; Boolean existeTurnoAutomovil; Boolean existeChoferAutomovil; try { Automoviles auto = new Automoviles(); auto.SetMarca(Marca); auto.SetModelo(Modelo); auto.SetPatente(Patente); auto.SetActivo(activo); this.SetIdChofer(DniChofer); if (TurnoSeleccionado != "Ninguno") { String IDTurno = this.obtenerIdTurnoaPartirDeCombobox(comboBox_Turno.Text); this.SetIdTurno(IDTurno); } existeTurnoAutomovil = mapper.ExisteEstadoTunoAutomovil(this.idAutomovil, idTurno); existeChoferAutomovil = mapper.ExisteChoferAutomovil(this.idAutomovil, this.idChofer); int idChoferViejo = mapper.obtenerIdChoferApartirDelDNI(dniChoferAutomovil); int idChoferNuevo = mapper.obtenerIdChoferApartirDelDNI(DniChofer); if (existeTurnoAutomovil) { this.pudoActualizarTurnoAutomovil = mapper.ActualizarEstadoTurnoAutomovil(this.idAutomovil, idTurno, 1); } else { if (TurnoSeleccionado != "Ninguno") { this.pudoActualizarTurnoAutomovil = mapper.AgregarTurnoAutomovil(this.idAutomovil, idTurno); } else { pudoActualizarTurnoAutomovil = true; } } if (idChoferNuevo != idChoferViejo) { if (existeChoferAutomovil) { //deshabilitar el chofer dni viejo mapper.ActualizarEstadoChoferAutomovil(this.idAutomovil, idChoferViejo, 0); //habilitar el chofer dni nuevo this.pudoActualizarChoferAutomovil = mapper.ActualizarEstadoChoferAutomovil(this.idAutomovil, idChoferNuevo, 1); } else { this.pudoActualizarChoferAutomovil = mapper.AsignarChoferaAutomovil(this.idAutomovil, idChoferNuevo);//aca llamo al procedure pr_agregar_chofer_a_automovil if (pudoActualizarChoferAutomovil) { mapper.ActualizarEstadoChoferAutomovil(this.idAutomovil, idChoferViejo, 0); } } } else { Boolean existeChoferAutomovilActivo; existeChoferAutomovilActivo = mapper.ExisteChoferAutomovilActivo(this.idChofer, this.idAutomovil, 1);//Esto quiere decir que ya existe el chofer en la tabla choferporAuto con la columna auto_chofer_estado en 1 if (checkBoxActivoDeshabilitar_Chofer) { //deshabilitar chofer this.pudoActualizarChoferAutomovil = mapper.ActualizarEstadoChoferAutomovil(this.idAutomovil, idChoferViejo, 0); } else { if (existeChoferAutomovil) { if (existeChoferAutomovilActivo) { throw new ExisteChoferAutomovilHabilitadoException("Ya existe un Automovil activo para este Chofer");//Esto quiere decir que ya existe el chofer en la tabla choferporAuto con la columna auto_chofer_estado en 1 } else { this.pudoActualizarChoferAutomovil = mapper.ActualizarEstadoChoferAutomovil(this.idAutomovil, idChoferViejo, 1); } } } } pudoModificar = mapper.Modificar(idAutomovil, auto); if (pudoModificar && pudoActualizarTurnoAutomovil && pudoActualizarChoferAutomovil) { MessageBox.Show("Automovil modificado correctamente"); } this.Close(); } catch (CampoVacioException exception) { MessageBox.Show("Falta completar campo : " + exception.Message); return; } catch (FormatoInvalidoException exception) { MessageBox.Show("Datos mal ingresados en: " + exception.Message); return; } catch (ChoferInexistenteException exceptionChoferNoexite) { MessageBox.Show(exceptionChoferNoexite.Message); return; } catch (ExisteChoferAutomovilHabilitadoException exceptionChoferAutoActivoexiste) { MessageBox.Show(exceptionChoferAutoActivoexiste.Message, "Coche activo ya asignado", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } catch (SqlException error) { switch (error.Number) { case 51005: MessageBox.Show(error.Message, "Coche activo ya asignado", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } }