void RecuperarCorresponsabilidadMenor()
        {
            ModeloCorresponsabilidadMenor modelocorresponsabilidadmenor = new ModeloCorresponsabilidadMenor();
            CorresponsabilidadMenor corresponsabilidadmenor = new CorresponsabilidadMenor();

            corresponsabilidadmenor = modelocorresponsabilidadmenor.Recuperar(IdCorresponsabilidadMenor);

            if (corresponsabilidadmenor != null)
            {
                this.rdbNueva.IsEnabled = false;
                this.rdbTransferencia.IsEnabled = false;
                if (corresponsabilidadmenor.TipoInscripcionMenor == TipoInscripcion.Nueva)
                    this.rdbNueva.IsChecked = true;
                else if (corresponsabilidadmenor.TipoInscripcionMenor == TipoInscripcion.Transferencia)
                    this.rdbTransferencia.IsChecked = true;
                this.txtCodigoFormulario.Text = corresponsabilidadmenor.CodigoFormulario;
                this.txtCodigoFormulario.IsEnabled = false;
                this.dtpFechaInscripcion.SelectedDate = corresponsabilidadmenor.FechaInscripcion;
                this.dtpFechaInscripcion.IsEnabled = false;
                RecuperarControlMenor();
                this.chkSalida.IsEnabled = true;
                if (corresponsabilidadmenor.TipoSalidaMenor > 0)
                {
                    this.chkSalida.IsChecked = true;
                    this.dtpFechaSalida.SelectedDate = corresponsabilidadmenor.FechaSalidaPrograma;
                    this.dtpFechaSalida.IsEnabled = true;
                    this.rdbCumplimiento.IsEnabled = true;
                    this.rdbFallecimiento.IsEnabled = true;
                    this.rdbIncumplimiento.IsEnabled = true;
                    this.rdbTransferenciaSalida.IsEnabled = true;
                    switch (corresponsabilidadmenor.TipoSalidaMenor)
                    {
                        case TipoSalidaMenor.Cumplimiento:
                            this.rdbCumplimiento.IsChecked = true;
                            break;
                        case TipoSalidaMenor.Fallecimiento:
                            this.rdbFallecimiento.IsChecked = true;
                            break;
                        case TipoSalidaMenor.Incumplimiento:
                            this.rdbIncumplimiento.IsChecked = true;
                            break;
                        case TipoSalidaMenor.Transferencia:
                            this.rdbTransferenciaSalida.IsChecked = true;
                            break;
                    }
                    this.txtAutorizado.Text = corresponsabilidadmenor.AutorizadoPor;
                    this.txtAutorizado.IsEnabled = true;
                    this.txtCargo.Text = corresponsabilidadmenor.CargoAutorizador;
                    this.txtCargo.IsEnabled = true;
                }
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            CantidadDeControles = 12;

            ////this.lblDepartamento.Content = "";
            ////this.lblEstablecimiento.Content = "";

            ModeloMenor modelomenor = new ModeloMenor();
            Menor menor = new Menor();

            menor = modelomenor.Recuperar(IdSeleccionado);

            if (menor != null)
            {
                this.lblNombresMenor.Content = menor.PrimerApellido + " " + menor.SegundoApellido + " " + menor.Nombres;
                this.lblFechaNacimientoMenor.Content = string.Format("{0:dd/MM/yyyy}", menor.FechaNacimiento);
            }
            else
            {
                this.lblNombresMenor.Content = "";
                this.lblFechaNacimientoMenor.Content = "";
            }

            ModeloGrupoFamiliar modelogrupofamiliar = new ModeloGrupoFamiliar();

            _grupofamiliar = modelogrupofamiliar.RecuperarTitularHabilitado(IdFamilia);
            _grupofamiliarmadre = modelogrupofamiliar.RecuperarMadreDeFamilia(IdFamilia);

            if (_grupofamiliar != null)
            {
                if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Madre)
                {
                    ModeloMadre modelomadre = new ModeloMadre();
                    Madre madre = new Madre();

                    madre = modelomadre.Recuperar(_grupofamiliar.IdMadre.Value);
                    this.lblNombreTitular.Content = madre.NombreCompleto;

                    this.lblParentescoTitular.Content = "MADRE";
                }
                else if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                {
                    ModeloTutor modelotutor = new ModeloTutor();
                    Tutor tutor = new Tutor();
                    tutor = modelotutor.Recuperar(_grupofamiliar.IdTutor.Value);
                    this.lblNombreTitular.Content = tutor.NombreCompleto;

                    ModeloTipoParentesco modelotipoparentesco = new ModeloTipoParentesco();
                    TipoParentesco tipoparentesco = new TipoParentesco();

                    tipoparentesco = modelotipoparentesco.Recuperar(_grupofamiliar.IdTipoParentesco.Value);
                    this.lblParentescoTitular.Content = tipoparentesco.Descripcion;
                }
                else
                {
                    this.lblNombreTitular.Content = "";
                    this.lblParentescoTitular.Content = "";
                }
            }
            else
            {
                this.lblNombreTitular.Content = "";
                this.lblParentescoTitular.Content = "";
            }

            ModeloCorresponsabilidadMenor modelocorresponsabilidadmenor = new ModeloCorresponsabilidadMenor();

            IdCorresponsabilidadMenor = modelocorresponsabilidadmenor.RecuperarLaUltimaCorresponsabilidadValidaDeMenor(IdSeleccionado);

            ValoresPorDefecto();

            if (IdCorresponsabilidadMenor > 0)
                RecuperarCorresponsabilidadMenor();
            else
            {
                this.txtCodigoFormulario.IsEnabled = true;
                this.dtpFechaInscripcion.IsEnabled = true;
                this.rdbNueva.IsEnabled = true;
                this.rdbTransferencia.IsEnabled = true;
                this.cmdGuardar.IsEnabled = true;
            }

            if (TipoAccion == TipoAccion.Detalle)
            {
                this.txtCodigoFormulario.IsEnabled = false;
                this.dtpFechaInscripcion.IsEnabled = false;
                this.dtpFechaSalida.IsEnabled = false;
                this.chkSalida.IsEnabled = false;
                this.rdbCumplimiento.IsEnabled = false;
                this.rdbFallecimiento.IsEnabled = false;
                this.rdbIncumplimiento.IsEnabled = false;
                this.rdbNueva.IsEnabled = false;
                this.rdbTransferencia.IsEnabled = false;
                this.rdbTransferenciaSalida.IsEnabled = false;
                this.txtAutorizado.IsEnabled = false;
                this.txtCargo.IsEnabled = false;
                this.cmdGuardar.IsEnabled = false;
            }
        }
        private void cmdGuardar_Click(object sender, RoutedEventArgs e)
        {
            ModeloCorresponsabilidadMenor modelocorresponsabilidadmenor = new ModeloCorresponsabilidadMenor();
            CorresponsabilidadMenor corresponsabilidadmenor = new CorresponsabilidadMenor();
            ModeloAsignacionMedico modeloAsignacionMedico = new ModeloAsignacionMedico();

            bool ok = false;

            if (ok == false)
            {
                if (!(txtCodigoFormulario.Text.Length > 0))
                {
                    MessageBox.Show("Se requiere especificar número de formulario.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    ok = true;
                }
            }

            if (ok == false)
            {
                if (IdCorresponsabilidadMenor == 0)
                {
                    corresponsabilidadmenor.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                    if (rdbNueva.IsChecked == true)
                        corresponsabilidadmenor.TipoInscripcionMenor = TipoInscripcion.Nueva;
                    else if (rdbTransferencia.IsChecked == true)
                        corresponsabilidadmenor.TipoInscripcionMenor = TipoInscripcion.Transferencia;

                    corresponsabilidadmenor.FechaInscripcion = dtpFechaInscripcion.SelectedDate.Value;
                    corresponsabilidadmenor.IdMenor = IdSeleccionado;

                    if (_grupofamiliarmadre != null)
                        corresponsabilidadmenor.IdMadre = _grupofamiliarmadre.IdMadre.Value;

                    if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                    {
                        corresponsabilidadmenor.IdTutor = _grupofamiliar.IdTutor.Value;
                        corresponsabilidadmenor.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                    }

                    corresponsabilidadmenor.CodigoFormulario = txtCodigoFormulario.Text;
                    corresponsabilidadmenor.FechaSalidaPrograma = dtpFechaSalida.SelectedDate.Value;
                    corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.EnProceso;
                    corresponsabilidadmenor.Observaciones = "";
                    corresponsabilidadmenor.AutorizadoPor = txtAutorizado.Text;
                    corresponsabilidadmenor.CargoAutorizador = txtCargo.Text;

                    modelocorresponsabilidadmenor.Crear(corresponsabilidadmenor);
                    IdCorresponsabilidadMenor = corresponsabilidadmenor.Id;

                    ModeloControlMenor modelocontrolmenor = new ModeloControlMenor();
                    DateTime fechitaControles;

                    fechitaControles = Convert.ToDateTime(lblFechaNacimientoMenor.Content);
                    fechitaControles = fechitaControles.AddMonths(-1);

                    for (int i = 0; i < CantidadDeControles; i++)
                    {
                        fechitaControles = fechitaControles.AddMonths(2);

                        ControlMenor controlmenor = new ControlMenor();

                        controlmenor.IdCorresponsabilidadMenor = IdCorresponsabilidadMenor;
                        controlmenor.IdEstablecimientoSalud = modeloAsignacionMedico.EstablecimientoDeSaludHabilitado(SessionManager.getCurrentSession().User.IdUserRelation).IdEstablecimientoSalud;
                        controlmenor.IdMenor = IdSeleccionado;
                        controlmenor.IdMedico = SessionManager.getCurrentSession().User.IdUserRelation;

                        if (_grupofamiliarmadre != null)
                            controlmenor.IdMadre = _grupofamiliarmadre.IdMadre.Value;

                        if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                        {
                            controlmenor.IdTutor = _grupofamiliar.IdTutor.Value;
                            controlmenor.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                        }

                        controlmenor.FechaProgramada = fechitaControles;
                        controlmenor.FechaControl = DateTime.Now;
                        controlmenor.TallaCm = 0;
                        controlmenor.PesoKg = 0;
                        controlmenor.NumeroControl = i + 1;
                        controlmenor.Observaciones = "";
                        controlmenor.EstadoPago = TipoEstadoPago.NoPagado;

                        if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                            controlmenor.TipoBeneficiario = TipoBeneficiario.Tutor;
                        else
                            controlmenor.TipoBeneficiario = TipoBeneficiario.Madre;

                        modelocontrolmenor.Crear(controlmenor);
                    }

                    this.txtCodigoFormulario.IsEnabled = false;
                    this.dtpFechaInscripcion.IsEnabled = false;
                    this.rdbNueva.IsEnabled = false;
                    this.rdbTransferencia.IsEnabled = false;
                    RecuperarControlMenor();
                }
                else
                {
                    corresponsabilidadmenor = modelocorresponsabilidadmenor.Recuperar(IdCorresponsabilidadMenor);

                    if (_grupofamiliarmadre != null)
                        corresponsabilidadmenor.IdMadre = _grupofamiliarmadre.IdMadre.Value;

                    if (_grupofamiliar.TipoGrupoFamiliar == TipoGrupoFamiliar.Tutor)
                    {
                        corresponsabilidadmenor.IdTutor = _grupofamiliar.IdTutor.Value;
                        corresponsabilidadmenor.IdTipoParentesco = _grupofamiliar.IdTipoParentesco.Value;
                    }

                    if (this.chkSalida.IsChecked == true)
                    {
                        corresponsabilidadmenor.FechaSalidaPrograma = this.dtpFechaSalida.SelectedDate.Value;
                        if (this.rdbCumplimiento.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Cumplimiento;
                        else if (this.rdbFallecimiento.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Fallecimiento;
                        else if (this.rdbIncumplimiento.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Incumplimiento;
                        else if (this.rdbTransferenciaSalida.IsChecked == true)
                            corresponsabilidadmenor.TipoSalidaMenor = TipoSalidaMenor.Transferencia;
                        corresponsabilidadmenor.AutorizadoPor = this.txtAutorizado.Text;
                        corresponsabilidadmenor.CargoAutorizador = this.txtCargo.Text;
                    }
                    else
                    {
                        corresponsabilidadmenor.FechaSalidaPrograma = DateTime.Now;
                        corresponsabilidadmenor.TipoSalidaMenor = 0;
                        corresponsabilidadmenor.AutorizadoPor = "";
                        corresponsabilidadmenor.CargoAutorizador = "";
                    }

                    modelocorresponsabilidadmenor.Editar(IdCorresponsabilidadMenor, corresponsabilidadmenor);
                }
            }
        }