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;
        }
Exemple #2
0
        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);
            }
            
            




            
        }