public void Editar(long Id, CorresponsabilidadMenor corresponsabilidadmenor)
        {
            CorresponsabilidadMenor _corresponsabilidadmenor = null;

            _corresponsabilidadmenor = (from cn in context.CorresponsabilidadesMenor
                                        where cn.Id == Id
                                        select cn).FirstOrDefault();

            _corresponsabilidadmenor.IdSesion = SessionManager.getSessionIdentifier();
            _corresponsabilidadmenor.FechaUltimaTransaccion = DateTime.Now;
            _corresponsabilidadmenor.FechaRegistro = DateTime.Now;
            _corresponsabilidadmenor.EstadoRegistro = TipoEstadoRegistro.VigenteRegistroModificado;
            _corresponsabilidadmenor.EstadoSincronizacion = TipoEstadoSincronizacion.Pendiente;

            _corresponsabilidadmenor.IdEstablecimientoSalud = corresponsabilidadmenor.IdEstablecimientoSalud;
            _corresponsabilidadmenor.TipoInscripcionMenor = corresponsabilidadmenor.TipoInscripcionMenor;
            _corresponsabilidadmenor.FechaInscripcion = corresponsabilidadmenor.FechaInscripcion;
            _corresponsabilidadmenor.IdMenor = corresponsabilidadmenor.IdMenor;
            _corresponsabilidadmenor.IdMadre = corresponsabilidadmenor.IdMadre;
            _corresponsabilidadmenor.IdTutor = corresponsabilidadmenor.IdTutor;
            _corresponsabilidadmenor.IdTipoParentesco = corresponsabilidadmenor.IdTipoParentesco;
            _corresponsabilidadmenor.CodigoFormulario = corresponsabilidadmenor.CodigoFormulario;
            _corresponsabilidadmenor.FechaSalidaPrograma = corresponsabilidadmenor.FechaSalidaPrograma;
            _corresponsabilidadmenor.TipoSalidaMenor = corresponsabilidadmenor.TipoSalidaMenor;
            _corresponsabilidadmenor.Observaciones = corresponsabilidadmenor.Observaciones;
            _corresponsabilidadmenor.AutorizadoPor = corresponsabilidadmenor.AutorizadoPor;
            _corresponsabilidadmenor.CargoAutorizador = corresponsabilidadmenor.CargoAutorizador;

            context.SaveChanges();
        }
        public void Crear(CorresponsabilidadMenor corresponsabilidadmenor)
        {
            corresponsabilidadmenor.Id = IdentifierGenerator.NewId();
            corresponsabilidadmenor.IdSesion = SessionManager.getSessionIdentifier();
            corresponsabilidadmenor.FechaUltimaTransaccion = DateTime.Now;
            corresponsabilidadmenor.FechaRegistro = DateTime.Now;
            corresponsabilidadmenor.EstadoRegistro = TipoEstadoRegistro.VigenteNuevoRegistro;
            corresponsabilidadmenor.EstadoSincronizacion = TipoEstadoSincronizacion.Pendiente;
            corresponsabilidadmenor.DescripcionEstadoSincronizacion = "";

            context.CorresponsabilidadesMenor.Add(corresponsabilidadmenor);

            context.SaveChanges();
        }
        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 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);
                }
            }
        }