Example #1
0
        public frmHorariosMedico(clsMedico med, frmEditarMedico fo)
        {
            InitializeComponent();
            medicoEditar = med;
            valor = 1;
            formEditarMedico = fo;

        }
Example #2
0
 public clsTurnoVista(clsMedico medico, clsPaciente paciente, DateTime fecha, int idUsuario)
 {
     this.medico = medico;
     this.paciente = paciente;
     this.fecha = fecha;
     this.costo = 0;
     this.idUsuario = idUsuario;
     this.estado = false;
     
 }
Example #3
0
 public clsTurnoVista(int id, clsMedico medico, clsPaciente paciente, DateTime fecha, float costo, int idUsuario, bool estado)
 {
     this.id = id;
     this.medico = medico;
     this.paciente = paciente;
     this.fecha = fecha;
     this.costo = costo;
     this.idUsuario = idUsuario;
     this.estado = estado;
 }
Example #4
0
        private clsMedico metodoM(IEntidad med2)
        {
            clsMedicoDatos med = (clsMedicoDatos)med2;
            clsEspecialidad aux;
            clsMedico medico = new clsMedico();

            try
            {
                medico.Id = med.Id;
                medico.Nombre = med.Nombre;
                medico.Apellido = med.Apellido;
                medico.Dni = med.Dni;
                medico.Matricula = med.Matricula;
                aux = (clsEspecialidad)manejaespecialidad.buscaPorId(med.Especialidad);
                medico.Especialidad = aux.Descripcion;
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }


            return medico;
        }
Example #5
0
        private void btnPagar_Click(object sender, EventArgs e)
        {        
          
            //creo una lista de turno y otra de sobre para separar a los seleccionados por el usuario
            // y asignarle sus ids al recibo.

            List<clsTurno> turnoReporte = new List<clsTurno>();
            List<clsSobreturno> sobreTurnosReporte = new List<clsSobreturno>();

            clsTurno turn = new clsTurno();
            clsSobreturno sobreTarna = new clsSobreturno();

            if (dgvTurnosAPagar.Rows.Count > 0)
            {
                if (string.IsNullOrWhiteSpace(cbTipoFactura.Text) == false && string.IsNullOrWhiteSpace(tbCliente.Text) == false && string.IsNullOrWhiteSpace(tbCuit.Text) == false && string.IsNullOrWhiteSpace(tbDireccion.Text) == false && tbCuit.Text.Length == 11)
                {
                    if (float.Parse(tbCantidadTarjeta.Text.ToString()) == 0 || float.Parse(tbCantidadTarjeta.Text.ToString()) > 100)
                    {

                        if ((float.Parse(tbCantidadTarjeta.Text.ToString()) + float.Parse(tbCantidadEfectivo.Text.ToString())) < total)
                        {
                            if (cbTipoFactura.Text == "A")
                            {
                                //LISTA DE RECIBOS A DAR DE ALTA.
                                List<clsRecibo> listaRecibosAInsertar = new List<clsRecibo>();

                                //LISTA DE ID'S DE TURNOS A SER ACTUALIZADOS.
                                List<int> idsDeTurnosAActualizar = new List<int>();

                                //LISTA DE ID'S DE SOBRETURNOS A SER ACTUALIZADOS.
                                List<int> idsDeSobreTurnosAActualizar = new List<int>();


                                if (string.IsNullOrWhiteSpace(tbCantidadEfectivo.Text))
                                {
                                    tbCantidadEfectivo.Text = "0";
                                }

                                foreach (DataGridViewRow row in dgvTurnosAPagar.Rows)
                                {
                                    turn.Id = int.Parse(dgvTurnosAPagar.Rows[row.Index].Cells[0].Value.ToString());
                                    sobreTarna.Id = int.Parse(dgvTurnosAPagar.Rows[row.Index].Cells[0].Value.ToString());

                                    turn.Fecha = DateTime.Parse(dgvTurnosAPagar.Rows[row.Index].Cells[1].Value.ToString());
                                    sobreTarna.Fecha = DateTime.Parse(dgvTurnosAPagar.Rows[row.Index].Cells[1].Value.ToString());

                                    turn.Costo = float.Parse(dgvTurnosAPagar.Rows[row.Index].Cells[2].Value.ToString());
                                    sobreTarna.Costo = float.Parse(dgvTurnosAPagar.Rows[row.Index].Cells[2].Value.ToString());

                                    if (dgvTurnosAPagar.Rows[row.Index].Cells[3].Value.ToString() == "Turno")
                                    {
                                        turnoReporte.Add(turn);     //Cargo una lista con los turnos a pagar.
                                    }
                                    else
                                    {
                                        if (dgvTurnosAPagar.Rows[row.Index].Cells[3].Value.ToString() == "SobreTurno")
                                        {
                                            sobreTurnosReporte.Add(sobreTarna);
                                        }
                                    }
                                }


                                List<clsRecibo> listaRecibos = new List<clsRecibo>();
                                clsRecibo recibo = new clsRecibo();
                                clsObraSocial obrita = new clsObraSocial();
                                clsEspecialidad especiali = new clsEspecialidad();
                                clsMedico med = new clsMedico();

                                //Creo la lista de recibos para turnos

                                foreach (clsTurno turnito in turnoReporte)
                                {
                                    recibo.IdFactura = reposFac.ultimoId().Id + 1;    //METODO QUE ME TRAE EL ULTIMO ID DE FACTURA    
                                    recibo.IdTurno = turnito.Id;
                                    recibo.IdSobreTurno = null;                    //SI TIENE TURNO, SOBRE TURNO ES NULL.
                                    recibo.Fecha = turnito.Fecha;

                                    List<clsObraXMedico> obrasDelMed = new List<clsObraXMedico>();

                                    obrasDelMed = reposObraPorMed.TodasObras(turnito.IdMedico);     //TRAIGO TODAS LAS OBRAS DEL MEDICO.

                                    foreach (clsObraXMedico obritaDelMedico in obrasDelMed)
                                    {
                                        if (PacienteActual.ObraSocial != null)   //PREGUNTO SI EL PACIENTE TIENE OBRA SOCIAL.
                                        {
                                            if (reposObra.buscarPorId(obritaDelMedico.IdObra).Nombre == PacienteActual.ObraSocial)
                                            {
                                                obrita = reposObra.BuscarPorNombre(PacienteActual.ObraSocial);   //METODO QUE ME RETORNA LA OBRA POR EL NOMBRE.
                                                recibo.Cobertura += obrita.Monto;
                                                totalDescuento += obrita.Monto;
                                            }
                                        }
                                        else
                                        {
                                            recibo.Cobertura = null;                //SI NO TIENE OBRA SOCIAL, NO TIENE COBERTURA.
                                        }
                                    }


                                    //CARGO EL MONTO DE LA CONSULTA.

                                    clsTurno t = new clsTurno();                //Variable auxiliar de turno, es el turno en el que estoy ahora.

                                    t = reposTurno.buscarPorId(turnito.Id);       //Le asigno todos sus valores propios.                            

                                    string es = reposMedico.buscarPorId(t.IdMedico).Especialidad;   //le asigno a "es" la especialidad del medico de este turno

                                    especiali = reposEspe.BuscarPorNombre(es);          //busco todos los datos de esa especialidad por su nombre

                                    recibo.Importe = especiali.Canon;               //Cargo el importe con el valor de la especialidad.

                                    recibo.Detalle = es;



                                    listaRecibosAInsertar.Add(recibo);          //Lista de recibos para ser dados de alta
                                    idsDeTurnosAActualizar.Add(turnito.Id);     //Lista de turnos para ser actualizadps.



                                }

                                //Creo la lista de recibos para sobreturnos

                                foreach (clsSobreturno sobrTurnito in sobreTurnosReporte)
                                {
                                    recibo.IdFactura = reposFac.ultimoId().Id + 1;    //METODO QUE ME TRAE EL ULTIMO ID DE FACTURA    
                                    recibo.IdTurno = null;                          //SI TIENE SOBRETURNO, TURNO ES NULL.
                                    recibo.IdSobreTurno = sobrTurnito.Id;
                                    recibo.Fecha = sobrTurnito.Fecha;

                                    List<clsObraXMedico> obrasDelMed = new List<clsObraXMedico>();

                                    obrasDelMed = reposObraPorMed.TodasObras(sobrTurnito.IdMedico);     //TRAIGO TODAS LAS OBRAS DEL MEDICO.

                                    foreach (clsObraXMedico obritaDelMedico in obrasDelMed)
                                    {
                                        if (PacienteActual.ObraSocial != null)   //PREGUNTO SI EL PACIENTE TIENE OBRA SOCIAL.
                                        {
                                            if (reposObra.buscarPorId(obritaDelMedico.IdObra).Nombre == PacienteActual.ObraSocial)
                                            {
                                                obrita = reposObra.BuscarPorNombre(PacienteActual.ObraSocial);   //METODO QUE ME RETORNA LA OBRA POR EL NOMBRE.
                                                recibo.Cobertura += obrita.Monto;
                                                totalDescuento += obrita.Monto;
                                            }
                                        }
                                        else
                                        {
                                            recibo.Cobertura = null;                //SI NO TIENE OBRA SOCIAL, NO TIENE COBERTURA.
                                        }
                                    }

                                    //CARGO EL MONTO DE LA CONSULTA.

                                    clsSobreturno t = new clsSobreturno();                //Variable auxiliar de turno, es el turno en el que estoy ahora.

                                    t = reposSobreTurno.buscarPorId(sobrTurnito.IdMedico);       //Le asigno todos sus valores propios.

                                    string es = reposMedico.buscarPorId(t.Id).Especialidad;   //le asigno a "es" la especialidad del medico de este turno

                                    especiali = reposEspe.BuscarPorNombre(es);          //busco todos los datos de esa especialidad por su nombre

                                    recibo.Importe = especiali.Canon;               //Cargo el importe con el valor de la especialidad.

                                    recibo.Detalle = es;


                                    listaRecibosAInsertar.Add(recibo);              //Lista de recibos para ser dados de alta
                                    reposSobreTurno.ActualizarAsistencia(sobrTurnito.Id);       //Lista de id de sobre turnos a ser actualizado.

                                }

                                clsClinica clini = new clsClinica();


                                Factura.Cuitcliente = tbCuit.Text;
                                Factura.NumeroFactura = reposFac.ultimoId().Id + 1;
                                Factura.TipoFactura = "A";

                                //Traigo los datos de mi clinica para signarle los datos.
                                clini = reposClinica.Todo(1);

                                Factura.RazonSocial = clini.RazonSocial;
                                Factura.Terminal = usuario.Id;
                                Factura.Total = total;
                                Factura.Fecha = DateTime.Now;
                                Factura.IdUsuario = usuario.Id;
                                Factura.Cliente = tbCliente.Text;
                                Factura.PagoEfectivo = float.Parse(tbCantidadEfectivo.Text);
                                Factura.PagoTarjeta = float.Parse(tbCantidadTarjeta.Text);

                                reposFac.Alta(Factura);


                                //INSERTO TODOS LOS RECIBOS
                                foreach (clsRecibo re in listaRecibosAInsertar)
                                {
                                    reposRecibo.Alta(re);
                                }

                                //ACTUALIZO TODOS LOS TURNOS A TRUE
                                foreach (int idT in idsDeTurnosAActualizar)
                                {
                                    reposTurno.ActualizarAsistencia(idT);
                                }


                                //ACTUALIZO TODOS LOS SOBRETURNOS A TRUE
                                foreach (int idST in idsDeSobreTurnosAActualizar)
                                {
                                    reposSobreTurno.ActualizarAsistencia(idST);
                                }

                                MessageBox.Show("La Factura fue creada con éxito junto con los Recibos");

                                if (dgvTurnosAPagar.Rows.Count > 0)
                                    dgvTurnosAPagar.Rows.Clear();

                                tbCuit.Clear();
                                tbCliente.Clear();
                                tbDireccion.Clear();
                                tbCantidadTarjeta.Text = "0";
                                tbCantidadEfectivo.Text = "0";
                                total = 0;
                                totalDescuento = 0;
                                lblTotal.Text = "0";
                                lblDescuento.Text = "0";



                                /*
                                crPagos pago = new crPagos();

                                pago.SetDataSource(dataSetDatos.Tables[0]);

                                pago.SetParameterValue("Fecha", DateTime.Now);
                                pago.SetParameterValue("Cliente", tbCliente.Text);
                                pago.SetParameterValue("Domicilio", tbDireccion.Text);
                                pago.SetParameterValue("CUIT", tbCuit.Text);

                                frmView frmV = new frmView(pago);
                                frmV.ShowDialog();
                                */







                            }
                            else if (cbTipoFactura.Text == "B")
                            {
                                //ACA VA TODO PARA LA FACTURA B
                            }
                            else
                            {
                                MessageBox.Show("Debe seleccionar un tipo de factura.", "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                            }
                        }
                        else
                        {
                            MessageBox.Show("El monto ingresado excede el total a pagar.", "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                        }

                        
                    }
                    else
                    {
                        MessageBox.Show("El monto a pagar en tarjeta debe ser €0 o mayor a €100", "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }

                    

                }
                else
                {
                    MessageBox.Show("Complete los campos para continuar.", "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                }
            }


        }
Example #6
0
        public List<clsMedico>Todo(int pag)///
        {
            DataTable tabla;
            List<clsMedico> lista = new List<clsMedico>();
            clsEspecialidad aux2;
            try
            {
                tabla = manejaMedico.Todo(pag);
                foreach (DataRow aux in tabla.Rows)
                {

                    clsMedico med = new clsMedico();
                    med.Id = Convert.ToInt32(aux["id"]);
                    med.Nombre = aux["nombre"].ToString();
                    med.Apellido = aux["apellido"].ToString();
                    med.Dni = Convert.ToInt64(aux["dni"]);
                    med.Matricula = Convert.ToInt32(aux["matricula"]);
                    aux2 = (clsEspecialidad)manejaEspecialidad.buscaPorId(Convert.ToInt32(aux["especialidad"]));
                    med.Especialidad = aux2.Descripcion;

                    lista.Add(med);


                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            

            return lista;

        }
Example #7
0
        public List<clsMedico> BuscaPorEspecialidad(string esp)//buscar por especialidad
        {
            DataTable tabla;
            List<clsMedico> lista = new List<clsMedico>();
        
            clsEspecialidad aux3;
            try
            {
                aux3 = (clsEspecialidad)manejaEspecialidad.buscaPorNombre(esp);
                tabla = manejaMedico.Busca(aux3.Id);

                foreach (DataRow aux in tabla.Rows)
                {

                    clsMedico med = new clsMedico();
                    med.Id = Convert.ToInt32(aux["id"]);
                    med.Nombre = aux["nombre"].ToString();
                    med.Apellido = aux["apellido"].ToString();
                    med.Dni = Convert.ToInt64(aux["dni"]);
                    med.Matricula = Convert.ToInt32(aux["matricula"]);                                       
                    med.Especialidad = esp;

                    lista.Add(med);


                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }


            return lista;

        }
Example #8
0
        private void btnFiltrar_Click(object sender, EventArgs e)
        {
            
            if(checkBoxMedico.Checked)
            {
                if(string.IsNullOrWhiteSpace(cbMedico.Text))
                {
                    MessageBox.Show("Debe seleccionar un medico para continuar", "¡Advertencia!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {                    

                    //Borro todas las filas.
                    if (dgvPacientes.Rows.Count > 0)
                    {
                        dgvPacientes.Rows.Clear();
                    }

                    if(dgvTurnos.Rows.Count > 0)
                    {
                        dgvTurnos.Rows.Clear();
                    }



                    clsMedico medicoSeleccionado = new clsMedico();

                    List<clsMedico> listaMedicos = new List<clsMedico>();

                    listaMedicos = reposMedico.obtenerMedicos();            //Traigo todos los medicos

                    foreach(clsMedico med in listaMedicos)
                    {
                        if (med.Apellido == cbMedico.Text)
                            medicoSeleccionado = med;
                    }                                                       //Encuentro el medico seleccionado y traigo todos sus turnos

                    listaTurnos = reposTurno.obtenerTurnoMedico(medicoSeleccionado.Id);         //Traigo todos los turnos dados por ese medico
                    listaSobreTurnos = reposSobreTurno.obtenerSobreTurnoMedico(medicoSeleccionado.Id);        //Traigo todos los sobre turnos dados por ese medico


                    clsPaciente pas = new clsPaciente();        //Variable a la que se le asigna el paciente de cada turno.


                    foreach(clsTurnoVista turn in listaTurnos)   //Recorro todos los turnos obteniendo el paciente de cada uno.
                    {
                        if(turn.Fecha > dtpDesde.Value && turn.Fecha < dtpHasta.Value && turn.Estado == true)
                        {                            
                            pas = reposPaciente.buscarPorId(turn.Paciente.Id);
                            
                            if(pas != null)         //Pregunto por si el paciente fue dado de baja.
                            {
                                dgvPacientes.Rows.Add(pas.Id,pas.Nombre, pas.Apellido, pas.Dni, pas.ObraSocial, pas.Telefono);
                                                            
                            }

                                
                        }


                    }

                    foreach(clsSobreTurnoVista turn in listaSobreTurnos)
                    {
                        if(turn.Fecha > dtpDesde.Value && turn.Fecha < dtpHasta.Value && turn.Estado == true)
                        {
                            
                            pas = reposPaciente.buscarPorId(turn.Paciente.Id);

                            if(pas != null)
                            {
                                dgvPacientes.Rows.Add(pas.Id,pas.Nombre, pas.Apellido, pas.Dni, pas.ObraSocial, pas.Telefono);
                            }

                        }


                    }



                }
            }
            else                //QUE EL CHECK BOX DE MEDICO NO FUE SELECCIONADO
            {

                //Borro todas las filas.
                if (dgvPacientes.Rows.Count > 0)
                {
                    dgvPacientes.Rows.Clear();
                }


                List<clsTurnoVista> listaTurnos = new List<clsTurnoVista>();
                listaTurnos = reposTurno.TurnoEntreFechas(dtpDesde.Value, dtpHasta.Value);    //Guardo todos los turnos existentes entre las fechas seleccionadas.

                List<clsSobreTurnoVista> listaSobreTurnos = new List<clsSobreTurnoVista>();
                listaSobreTurnos = reposSobreTurno.TurnoEntreFechas(dtpDesde.Value, dtpHasta.Value);


                clsPaciente pas = new clsPaciente(); //Variable para ir asignando pacientes y mostrarlos

                foreach(clsTurnoVista turn in listaTurnos)
                {
                    if (turn.Fecha > dtpDesde.Value && turn.Fecha < dtpHasta.Value && turn.Estado == true)
                    {
                        pas = reposPaciente.buscarPorId(turn.Paciente.Id);

                        if(pas != null)
                        {                          
                            dgvPacientes.Rows.Add(pas.Id,pas.Nombre, pas.Apellido, pas.Dni, pas.ObraSocial, pas.Telefono);                        
                            
                        }
                        
                    }
                }


                foreach(clsSobreTurnoVista turn in listaSobreTurnos)
                {
                    if(turn.Fecha > dtpDesde.Value && turn.Fecha < dtpHasta.Value && turn.Estado == true)
                    {
                        pas = reposPaciente.buscarPorId(turn.Paciente.Id);

                        if(pas != null)
                        {
                            dgvPacientes.Rows.Add(pas.Id,pas.Nombre, pas.Apellido, pas.Dni, pas.ObraSocial, pas.Telefono);                        

                        }
                    }
                }

        


            }


            


        }
Example #9
0
        private void actualizoXmedico()
        {

            m = medicos[cbMedicos.SelectedIndex];
            turnos.Clear();
            tur.Clear();
            turnos = rt.obtenerTurnoMedico(m.Id);
            if (turnos.Count > 0)
            {
                dgvTurnos.Rows.Clear();
                foreach (clsTurnoVista t in turnos)
                {
                    if (t.Estado)
                    {
                        dgvTurnos.Rows.Add(t.Paciente.nomCompleto(), t.Fecha, "SI");
                        tur.Add(new clsReporteTurnos(t.Paciente.nomCompleto(), t.Fecha, "SI"));
                    }
                    else
                    {
                        dgvTurnos.Rows.Add(t.Paciente.nomCompleto(), t.Fecha, "NO");
                        tur.Add(new clsReporteTurnos(t.Paciente.nomCompleto(), t.Fecha, "NO"));
                    }
                }
            }
            else
            {
                dgvTurnos.Rows.Clear();
            }

            sobreTurnos.Clear();
            stur.Clear();
            sobreTurnos = rst.obtenerSobreTurnoMedico(m.Id);
            if (sobreTurnos.Count > 0)
            {
                dgvSobreturnos.Rows.Clear();
                foreach (clsSobreTurnoVista t in sobreTurnos)
                {
                    if (t.Estado)
                    {
                        dgvSobreturnos.Rows.Add(t.Paciente.nomCompleto(), t.Fecha, "SI");
                        stur.Add(new clsReporteTurnos(t.Paciente.nomCompleto(), t.Fecha, "SI"));
                    }
                    else
                    {
                        dgvSobreturnos.Rows.Add(t.Paciente.nomCompleto(), t.Fecha, "NO");
                        stur.Add(new clsReporteTurnos(t.Paciente.nomCompleto(), t.Fecha, "NO"));
                    }
                }
            }
            else
            {
                dgvSobreturnos.Rows.Clear();
            }
        }
Example #10
0
        int modifi = 0;         //si esta en 1 modifico mañana, si esta en dos tarde. 0 los dos

        public frmEditarMedico(clsMedico med)
        {
            InitializeComponent();
            this.med = med;
        }
Example #11
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);
            }
            
            




            
        }