public IEntidad buscaPorId(int id) { DataTable aux = new DataTable(); clsObraXMedico ob = new clsObraXMedico(); try { aux = manager.consultar("select * from obraxmedico where idmedico=" + id + " and activo=1"); if(aux.Rows.Count!=0) { ob.IdMedico = Convert.ToInt32(aux.Rows[0]["idmedico"]); ob.IdObra = Convert.ToInt32(aux.Rows[0]["idobra"]); } } catch (Exception ex) { throw ex; } return ob; }
private void btnGuardar_Click(object sender, EventArgs e) { try { if (verificarMedico()) { clsMedico medNuevo = new clsMedico(); medNuevo.Nombre = tbNombreModi.Text; medNuevo.Apellido = tbApellidoModi.Text; medNuevo.Especialidad = cbEspecialidadModi.Text; medNuevo.Dni = long.Parse(tbDniModi.Text.ToString()); medNuevo.Matricula = int.Parse(tbMatriculaModi.Text.ToString()); //ROMPO RELACIONES DE MEDICO CON LAS OBRAS SOCIALES clsObraXMedico obraPorMedBaja = new clsObraXMedico(); obraPorMedBaja.IdMedico = med.Id; foreach (clsObraSocial obrita in obrasBajas) { obraPorMedBaja.IdObra = obrita.Id; repoObraPorMed.Baja(obraPorMedBaja); } //RELACION CON OBRAS SOCIALES ROTAS. //CREO LA RELACION HORARIOS POR MEDICO //PRIMERO DOY DE BAJA LAS RELACIONES DE HORARIOS bool mañana = false; bool tarde = false; clsHorario horariosMañana = new clsHorario(); clsHorario horariosTarde = new clsHorario(); try { horariosMañana = reposHorario.buscarPorId(med.Id, 1); mañana = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } try { horariosTarde = reposHorario.buscarPorId(med.Id, 2); tarde = true; } catch (Exception ex) { MessageBox.Show(ex.Message); } if(mañana && tarde) { reposHorario.Baja(horariosMañana, horariosTarde); } else { if(mañana) { reposHorario.Baja(horariosMañana, 1); } if(tarde) { reposHorario.Baja(horariosTarde, 2); } } if(modifi == 0) //ACTUALIZO MAÑANA Y TARDE { horarioMT.IdMedico = med.Id; horarioTC.IdMedico = med.Id; reposHorario.Alta(horarioMT, horarioTC); } else { if(modifi == 1) //ACTUALIZO MAÑANA { horarioMT.IdMedico = med.Id; reposHorario.Alta(horarioMT, 1); } if(modifi == 2) //ACTUALIZO TARDE { horarioMT.IdMedico = med.Id; reposHorario.Alta(horarioMT, 2); } } //CREO RELACION NUEVA ENTRE OBRAS Y MEDICO List<string> listaNombresObra = new List<string>(); foreach (Object item in clbObraSocial.CheckedItems) //CARGO TODAS LAS OBRAS SOCIALES SELECCIONADAS. { listaNombresObra.Add(item.ToString()); } List<clsObraSocial> obr = new List<clsObraSocial>(); //Variable con todas mis obras obr = reposObraSocial.Todo(0); //le doy todas las obras foreach (clsObraSocial obrita in obr) //por cada obra existente { foreach (string obra in listaNombresObra) //por cada obra seleccionada { if (obrita.Nombre == obra) //si el nombre es igual obtengo el id y creo la relacion { clsObraXMedico obraPormed = new clsObraXMedico(); obraPormed.IdMedico = med.Id; obraPormed.IdObra = obrita.Id; repoObraPorMed.Alta(obraPormed); } } } medNuevo.Id = med.Id; repoMedico.Modificacion(medNuevo); MessageBox.Show("Médico modificado con éxito"); this.Close(); } else { MessageBox.Show("Debe completar todos los campos para seleccionar."); } }catch(Exception ex) { MessageBox.Show("Error al actualizar el médico: " + ex.Message); } }