示例#1
0
        public void Delete(int Id)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioPRESTACION repositorio = new RepositorioPRESTACION(context);
                    PRESTACION            _PRESTACION = repositorio.GetById(Id);

                    if (Equals(_PRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", Id.ToString()));
                    }

                    _PRESTACION.ACTIVO = false;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
示例#2
0
        public BENEFICIO obtenerBeneficioPrestacion(PRESTACION prestacion, List <BENEFICIO> beneficios)
        {
            BENEFICIO beneficio = null;

            using (var entities = new SeguroEntities())
            {
                beneficio = entities.BENEFICIO.Where(d => d.ID_PRESTACION == prestacion.ID_PRESTACION).FirstOrDefault();
            }
            return(beneficio);
        }
示例#3
0
        public void Update(int Id, int EXAMENId, int PRESTACIONId, int?VALOR = null)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioPRESTACION_EXAMEN repositorio        = new RepositorioPRESTACION_EXAMEN(context);
                    PRESTACION_EXAMEN            _PRESTACION_EXAMEN = repositorio.GetById(Id);
                    if (Equals(_PRESTACION_EXAMEN, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION_EXAMEN con Id =", Id.ToString()));
                    }

                    RepositorioEXAMEN _repositorioEXAMEN = new RepositorioEXAMEN(context);
                    EXAMEN            _objEXAMEN         = _repositorioEXAMEN.GetById(EXAMENId);
                    if (Equals(_objEXAMEN, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado EXAMEN con Id =", EXAMENId.ToString()));
                    }

                    RepositorioPRESTACION _repositorioPRESTACION = new RepositorioPRESTACION(context);
                    PRESTACION            _objPRESTACION         = _repositorioPRESTACION.GetById(PRESTACIONId);
                    if (Equals(_objPRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", PRESTACIONId.ToString()));
                    }

                    //properties

                    if (VALOR.HasValue)
                    {
                        _PRESTACION_EXAMEN.VALOR = VALOR.Value;
                    }

                    //parents

                    _PRESTACION_EXAMEN.EXAMEN     = _objEXAMEN;
                    _PRESTACION_EXAMEN.PRESTACION = _objPRESTACION;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
示例#4
0
 public static int crearPrestacion(string nombrePrestacion, string codigo)
 {
     using (var entities = new SeguroEntities())
     {
         PRESTACION prestacion = new PRESTACION();
         prestacion.NOMBRE = nombrePrestacion;
         prestacion.CODIGO = codigo;
         entities.PRESTACION.Add(prestacion);
         entities.SaveChangesAsync();
         return(prestacion.ID_PRESTACION);
         //return (from p in entities.PRESTACION
         //         select p).First<PRESTACION>().ID_PRESTACION;
     }
 }
示例#5
0
        public void Update(int Id, int FACTURAId, int PRESTACIONId, int MONTO_TOTAL, int MONTO_COBRADO)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioFACTURA_DETALLE repositorio      = new RepositorioFACTURA_DETALLE(context);
                    FACTURA_DETALLE            _FACTURA_DETALLE = repositorio.GetById(Id);
                    if (Equals(_FACTURA_DETALLE, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado FACTURA_DETALLE con Id =", Id.ToString()));
                    }

                    RepositorioFACTURA _repositorioFACTURA = new RepositorioFACTURA(context);
                    FACTURA            _objFACTURA         = _repositorioFACTURA.GetById(FACTURAId);
                    if (Equals(_objFACTURA, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado FACTURA con Id =", FACTURAId.ToString()));
                    }

                    RepositorioPRESTACION _repositorioPRESTACION = new RepositorioPRESTACION(context);
                    PRESTACION            _objPRESTACION         = _repositorioPRESTACION.GetById(PRESTACIONId);
                    if (Equals(_objPRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", PRESTACIONId.ToString()));
                    }

                    //properties

                    _FACTURA_DETALLE.MONTO_TOTAL   = MONTO_TOTAL;
                    _FACTURA_DETALLE.MONTO_COBRADO = MONTO_COBRADO;

                    //parents

                    _FACTURA_DETALLE.FACTURA    = _objFACTURA;
                    _FACTURA_DETALLE.PRESTACION = _objPRESTACION;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
示例#6
0
        private void lstAtenciones_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblError.Visible   = true;
            lblError.Text      = "Consultando aseguradora...";
            lblError.ForeColor = System.Drawing.Color.Violet;
            mostrarLabelDescuento();
            try
            {
                ATENCION_AGEN atencion             = new ATENCION_AGEN();
                PACIENTE      paciente             = new PACIENTE();
                PRESTACION    prestacion           = new PRESTACION();
                ResultadoVerificacionSeguro seguro = new ResultadoVerificacionSeguro();
                using (var context = new CMHEntities())
                {
                    atencion   = context.ATENCION_AGEN.Find(((ComboboxItem)lstAtenciones.SelectedItem).Value);
                    paciente   = context.PACIENTE.Find(atencion.ID_PACIENTE);
                    prestacion = context.PRESTACION.Find(atencion.ID_PRESTACION);
                }

                seguro           = at.verificarSeguro(prestacion, paciente);
                lblSubtotal.Text = atencion.PRESTACION.PRECIO_PRESTACION.ToString();
                lblTotal.Text    = seguro.Descuento.ToString();
                if (seguro.Aseguradora == "No tiene seguro")
                {
                    lblTotal.Text     = atencion.PRESTACION.PRECIO_PRESTACION.ToString();
                    lblDescuento.Text = "0";
                }
                else
                {
                    lblTotal.Text     = seguro.Descuento.ToString();
                    lblDescuento.Text = (int.Parse(lblSubtotal.Text) - int.Parse(lblTotal.Text)).ToString();
                }
                lblAseguradora.Text = seguro.Aseguradora;
                btnIngresar.Enabled = true;
                lblError.Visible    = false;
            }
            catch (Exception ex)
            {
                lblError.Visible    = true;
                lblError.Text       = "Error al buscar descuento";
                lblError.ForeColor  = System.Drawing.Color.Red;
                lblSubtotal.Text    = string.Empty;
                lblTotal.Text       = string.Empty;
                lblDescuento.Text   = string.Empty;
                btnIngresar.Enabled = false;
            }
        }
示例#7
0
        public int Add(int EXAMENId, int PRESTACIONId, int?VALOR = null)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioEXAMEN _repositorioEXAMEN = new RepositorioEXAMEN(context);
                    EXAMEN            _objEXAMEN         = _repositorioEXAMEN.GetById(EXAMENId);
                    if (Equals(_objEXAMEN, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado EXAMEN con Id =", EXAMENId.ToString()));
                    }

                    RepositorioPRESTACION _repositorioPRESTACION = new RepositorioPRESTACION(context);
                    PRESTACION            _objPRESTACION         = _repositorioPRESTACION.GetById(PRESTACIONId);
                    if (Equals(_objPRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", PRESTACIONId.ToString()));
                    }

                    PRESTACION_EXAMEN _PRESTACION_EXAMEN = new PRESTACION_EXAMEN();

                    //properties

                    _PRESTACION_EXAMEN.VALOR  = VALOR;
                    _PRESTACION_EXAMEN.ACTIVO = true;

                    //parents

                    _PRESTACION_EXAMEN.EXAMEN     = _objEXAMEN;
                    _PRESTACION_EXAMEN.PRESTACION = _objPRESTACION;

                    context.AddObject("PRESTACION_EXAMEN", _PRESTACION_EXAMEN);
                    context.SaveChanges();

                    return(_PRESTACION_EXAMEN.ID);
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
示例#8
0
 public void obtenerPrestacionTest()
 {
     using (var entities = new SeguroEntities())
     {
         #region Caso1
         //Prestación existe
         PRESTACION prestacion = new PRESTACION();
         prestacion.NOMBRE = "Prestacion ex";
         string codigo = "la prestacion" + System.DateTime.Now.ToString();
         prestacion.CODIGO = codigo;
         entities.PRESTACION.Add(prestacion);
         entities.SaveChangesAsync();
         int        idPrestacion = prestacion.ID_PRESTACION;
         PRESTACION result       = new AccionesSeguro().obtenerPrestacion(codigo);
         Assert.IsTrue(result.ID_PRESTACION == idPrestacion, "IDs no coinciden");
         #endregion
     }
 }
示例#9
0
        public void obtenerBeneficioPrestacion()
        {
            PRESTACION prestacion = new PRESTACION();

            prestacion.ID_PRESTACION = 1;
            prestacion.NOMBRE        = "Prestacion ex";
            prestacion.CODIGO        = "CodigoEx" + System.DateTime.Today.ToString();
            BENEFICIO beneficio = new BENEFICIO();

            beneficio.ID_BENEFICIO  = 1;
            beneficio.ID_PRESTACION = 1;
            List <BENEFICIO> beneficios = new List <BENEFICIO>();

            beneficios.Add(beneficio);
            AccionesSeguro accionesSeguro = new AccionesSeguro();
            BENEFICIO      resultado      = accionesSeguro.obtenerBeneficioPrestacion(prestacion, beneficios);

            Assert.IsTrue(resultado.ID_BENEFICIO == beneficio.ID_BENEFICIO);
        }
示例#10
0
        public void Update(int Id, int PRESTACIONId, string NOMBRE)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioPRESTACION_MUESTRA repositorio         = new RepositorioPRESTACION_MUESTRA(context);
                    PRESTACION_MUESTRA            _PRESTACION_MUESTRA = repositorio.GetById(Id);
                    if (Equals(_PRESTACION_MUESTRA, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION_MUESTRA con Id =", Id.ToString()));
                    }

                    RepositorioPRESTACION _repositorioPRESTACION = new RepositorioPRESTACION(context);
                    PRESTACION            _objPRESTACION         = _repositorioPRESTACION.GetById(PRESTACIONId);
                    if (Equals(_objPRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", PRESTACIONId.ToString()));
                    }

                    //properties

                    if (!string.IsNullOrEmpty(NOMBRE))
                    {
                        _PRESTACION_MUESTRA.NOMBRE = NOMBRE;
                    }

                    //parents

                    _PRESTACION_MUESTRA.PRESTACION = _objPRESTACION;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
示例#11
0
 public PRESTACION obtenerPrestacion(string codigoPrestacion)
 {
     using (var entities = new SeguroEntities())
     {
         PRESTACION prestacion = new PRESTACION();
         try
         {
             prestacion = (
                 from p in entities.PRESTACION
                 where codigoPrestacion == p.CODIGO
                 select p
                 ).First <PRESTACION>();
             return(prestacion);
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
 }
示例#12
0
        public int obtenerDescuentoPrestacion(int rutAfiliado, string codigoPrestacion, int precioPrestacion)
        {
            //obtenerner afiliado
            AFILIADO afiliado = obtenerAfiliado(rutAfiliado);

            if (afiliado == null)
            {
                return(0);
            }
            //obtener plan afiliado
            PLAN plan = obtenerPlanAfiliado(afiliado);
            //obtener beneficios del afiliado
            List <BENEFICIO> beneficios = obtenerBeneficiosPlan(plan.ID_PLAN);
            //obtener prestacion
            PRESTACION prestacion = obtenerPrestacion(codigoPrestacion);
            //obtener beneficio aplicable a la prestación
            BENEFICIO beneficio = obtenerBeneficioPrestacion(prestacion, beneficios);
            //obtener descuento
            int descuento = calcularDescuentoPrestacion(precioPrestacion, beneficio);

            return(descuento);
        }
示例#13
0
        public int Add(int PRESTACIONId, string NOMBRE)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioPRESTACION _repositorioPRESTACION = new RepositorioPRESTACION(context);
                    PRESTACION            _objPRESTACION         = _repositorioPRESTACION.GetById(PRESTACIONId);
                    if (Equals(_objPRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", PRESTACIONId.ToString()));
                    }

                    PRESTACION_MUESTRA _PRESTACION_MUESTRA = new PRESTACION_MUESTRA();

                    //properties

                    _PRESTACION_MUESTRA.NOMBRE = NOMBRE;
                    _PRESTACION_MUESTRA.ACTIVO = true;

                    //parents

                    _PRESTACION_MUESTRA.PRESTACION = _objPRESTACION;

                    context.AddObject("PRESTACION_MUESTRA", _PRESTACION_MUESTRA);
                    context.SaveChanges();

                    return(_PRESTACION_MUESTRA.ID);
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
示例#14
0
        public int Add(int CLIENTEId, int GARANTIAId, int PREVISIONId, int TIPO_PRESTACIONId, System.DateTime FECHA_RECEPCION, string MEDICO = "", string RECEPCION = "", string PENDIENTE = "")
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCLIENTE _repositorioCLIENTE = new RepositorioCLIENTE(context);
                    CLIENTE            _objCLIENTE         = _repositorioCLIENTE.GetById(CLIENTEId);
                    if (Equals(_objCLIENTE, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CLIENTE con Id =", CLIENTEId.ToString()));
                    }

                    RepositorioGARANTIA _repositorioGARANTIA = new RepositorioGARANTIA(context);
                    GARANTIA            _objGARANTIA         = _repositorioGARANTIA.GetById(GARANTIAId);
                    if (Equals(_objGARANTIA, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado GARANTIA con Id =", GARANTIAId.ToString()));
                    }

                    RepositorioPREVISION _repositorioPREVISION = new RepositorioPREVISION(context);
                    PREVISION            _objPREVISION         = _repositorioPREVISION.GetById(PREVISIONId);
                    if (Equals(_objPREVISION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PREVISION con Id =", PREVISIONId.ToString()));
                    }

                    RepositorioTIPO_PRESTACION _repositorioTIPO_PRESTACION = new RepositorioTIPO_PRESTACION(context);
                    TIPO_PRESTACION            _objTIPO_PRESTACION         = _repositorioTIPO_PRESTACION.GetById(TIPO_PRESTACIONId);
                    if (Equals(_objTIPO_PRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado TIPO_PRESTACION con Id =", TIPO_PRESTACIONId.ToString()));
                    }

                    PRESTACION _PRESTACION = new PRESTACION();

                    //properties

                    _PRESTACION.MEDICO          = MEDICO;
                    _PRESTACION.FECHA_RECEPCION = FECHA_RECEPCION;
                    _PRESTACION.RECEPCION       = RECEPCION;
                    _PRESTACION.PENDIENTE       = PENDIENTE;
                    _PRESTACION.ACTIVO          = true;

                    //parents

                    _PRESTACION.CLIENTE         = _objCLIENTE;
                    _PRESTACION.GARANTIA        = _objGARANTIA;
                    _PRESTACION.PREVISION       = _objPREVISION;
                    _PRESTACION.TIPO_PRESTACION = _objTIPO_PRESTACION;

                    context.AddObject("PRESTACION", _PRESTACION);
                    context.SaveChanges();

                    return(_PRESTACION.ID);
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
 public void AddToPRESTACION(PRESTACION pRESTACION)
 {
     base.AddObject("PRESTACION", pRESTACION);
 }
示例#16
0
        private void btnAgendar_Click(object sender, EventArgs e)
        {
            string mensajeCorrecto = "Atención agendada correctamente";
            string mensajeError    = string.Empty;

            lblError_ACM.Visible = false;
            try
            {
                AccionesTerminal at             = new AccionesTerminal();
                ATENCION_AGEN    atencion       = new ATENCION_AGEN();
                PACIENTE         paciente       = new PACIENTE();
                PRESTACION       prestacion     = new PRESTACION();
                ESTADO_ATEN      estado         = new ESTADO_ATEN();
                PERS_MEDICO      personalMedico = new PERS_MEDICO();
                BLOQUE           bloque         = new BLOQUE();
                if (dtFecha_ACM.Value < DateTime.Today)
                {
                    mensajeError = "La fecha de atención ha expirado";
                }
                else
                {
                    using (var context = new CMHEntities())
                    {
                        estado         = context.ESTADO_ATEN.Where(d => d.NOM_ESTADO_ATEN.ToUpper() == "VIGENTE").FirstOrDefault();
                        personalMedico = context.PERS_MEDICO.Find((int)cmbPersonal_ACM.SelectedValue);
                    }
                    if (txtRut_ACM.Text == string.Empty || txtDv_ACM.Text == string.Empty)
                    {
                        mensajeError = "Complete los campos de RUT";
                    }
                    else
                    {
                        paciente = at.buscarPaciente(int.Parse(txtRut_ACM.Text), txtDv_ACM.Text.ToUpper());
                        if (!Util.isObjetoNulo(paciente))
                        {
                            atencion.FECHOR           = dtFecha_ACM.Value;
                            atencion.ID_PACIENTE      = paciente.ID_PACIENTE;
                            atencion.ID_PRESTACION    = (int)cmbPrestacion_ACM.SelectedValue;
                            atencion.ID_ESTADO_ATEN   = estado.ID_ESTADO_ATEN;
                            atencion.ID_PERS_ATIENDE  = (int)cmbPersonal_ACM.SelectedValue;
                            atencion.ID_BLOQUE        = ((ComboboxItem)cmbHora_ACM.SelectedItem).Value;
                            atencion.OBSERVACIONES    = rtObservacion.Text;
                            atencion.ID_PERS_SOLICITA = FrmLogin.usuarioLogeado.Personal.ID_PERSONAL;
                            if (!at.agendarAtencion(atencion))
                            {
                                mensajeError = "Error al agendar atención";
                            }
                            actualizarBloques();
                        }
                        else
                        {
                            mensajeError = "Paciente no encontrado";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                mensajeError = "Error al agendar atención";
            }
            if (mensajeError == string.Empty)
            {
                MessageBox.Show(mensajeCorrecto, "Creada", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
                MessageBox.Show(mensajeError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public static PRESTACION CreatePRESTACION(int id, global::System.DateTime fECHA_RECEPCION, bool aCTIVO)
 {
     PRESTACION pRESTACION = new PRESTACION();
     pRESTACION.ID = id;
     pRESTACION.FECHA_RECEPCION = fECHA_RECEPCION;
     pRESTACION.ACTIVO = aCTIVO;
     return pRESTACION;
 }
示例#18
0
        private void lstAtenciones_SelectedIndexChanged(object sender, EventArgs e)
        {
            mostrarLabelDescuento();
            try
            {
                ATENCION_AGEN atencion             = new ATENCION_AGEN();
                PACIENTE      paciente             = new PACIENTE();
                PRESTACION    prestacion           = new PRESTACION();
                BONO          bono                 = new BONO();
                ASEGURADORA   aseguradora          = new ASEGURADORA();
                ResultadoVerificacionSeguro seguro = new ResultadoVerificacionSeguro();
                bool necesitaDevolucion            = false;

                using (var context = new CMHEntities())
                {
                    atencion             = context.ATENCION_AGEN.Find(((ComboboxItem)lstAtenciones.SelectedItem).Value);
                    atencion.ESTADO_ATEN = context.ESTADO_ATEN.Find(atencion.ID_ESTADO_ATEN);
                    if (atencion.ESTADO_ATEN.NOM_ESTADO_ATEN.ToUpper() == "PAGADO")
                    {
                        necesitaDevolucion = true;
                    }
                    if (necesitaDevolucion)
                    {
                        paciente   = context.PACIENTE.Find(atencion.ID_PACIENTE);
                        prestacion = context.PRESTACION.Find(atencion.ID_PRESTACION);
                        pago       = context.PAGO.Where(d => d.ID_ATENCION_AGEN == atencion.ID_ATENCION_AGEN).FirstOrDefault();
                        if (pago.ID_BONO != null)
                        {
                            bono        = context.BONO.Find(pago.ID_BONO);
                            aseguradora = context.ASEGURADORA.Find(bono.ID_ASEGURADORA);
                        }
                    }
                }
                if (necesitaDevolucion)
                {
                    lblSubtotal.Text = atencion.PRESTACION.PRECIO_PRESTACION.ToString();
                    lblTotal.Text    = pago.MONTO_PAGO.ToString();
                    if (pago.ID_BONO != null)
                    {
                        lblDescuento.Text   = pago.BONO.CANT_BONO.ToString();
                        lblAseguradora.Text = aseguradora.NOM_ASEGURADORA;
                    }
                    else
                    {
                        lblDescuento.Text   = "0";
                        lblAseguradora.Text = "No tiene seguro";
                    }
                    btnAnular.Enabled = true;
                    lblError.Visible  = false;
                    txtRazon.Enabled  = true;
                }
                else
                {
                    txtRazon.Enabled  = false;
                    btnAnular.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                lblError.Visible   = true;
                lblError.Text      = "Error al buscar pago";
                lblError.ForeColor = System.Drawing.Color.Red;
                lblSubtotal.Text   = string.Empty;
                lblTotal.Text      = string.Empty;
                lblDescuento.Text  = string.Empty;
                btnAnular.Enabled  = false;
            }
        }
示例#19
0
        public void Update(int Id, int CLIENTEId, int GARANTIAId, int PREVISIONId, int TIPO_PRESTACIONId, System.DateTime FECHA_RECEPCION, string MEDICO = "", string RECEPCION = "", string PENDIENTE = "")
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioPRESTACION repositorio = new RepositorioPRESTACION(context);
                    PRESTACION            _PRESTACION = repositorio.GetById(Id);
                    if (Equals(_PRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PRESTACION con Id =", Id.ToString()));
                    }

                    RepositorioCLIENTE _repositorioCLIENTE = new RepositorioCLIENTE(context);
                    CLIENTE            _objCLIENTE         = _repositorioCLIENTE.GetById(CLIENTEId);
                    if (Equals(_objCLIENTE, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CLIENTE con Id =", CLIENTEId.ToString()));
                    }

                    RepositorioGARANTIA _repositorioGARANTIA = new RepositorioGARANTIA(context);
                    GARANTIA            _objGARANTIA         = _repositorioGARANTIA.GetById(GARANTIAId);
                    if (Equals(_objGARANTIA, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado GARANTIA con Id =", GARANTIAId.ToString()));
                    }

                    RepositorioPREVISION _repositorioPREVISION = new RepositorioPREVISION(context);
                    PREVISION            _objPREVISION         = _repositorioPREVISION.GetById(PREVISIONId);
                    if (Equals(_objPREVISION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado PREVISION con Id =", PREVISIONId.ToString()));
                    }

                    RepositorioTIPO_PRESTACION _repositorioTIPO_PRESTACION = new RepositorioTIPO_PRESTACION(context);
                    TIPO_PRESTACION            _objTIPO_PRESTACION         = _repositorioTIPO_PRESTACION.GetById(TIPO_PRESTACIONId);
                    if (Equals(_objTIPO_PRESTACION, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado TIPO_PRESTACION con Id =", TIPO_PRESTACIONId.ToString()));
                    }

                    //properties

                    if (!string.IsNullOrEmpty(MEDICO))
                    {
                        _PRESTACION.MEDICO = MEDICO;
                    }
                    _PRESTACION.FECHA_RECEPCION = FECHA_RECEPCION;
                    if (!string.IsNullOrEmpty(RECEPCION))
                    {
                        _PRESTACION.RECEPCION = RECEPCION;
                    }
                    if (!string.IsNullOrEmpty(PENDIENTE))
                    {
                        _PRESTACION.PENDIENTE = PENDIENTE;
                    }

                    //parents

                    _PRESTACION.CLIENTE         = _objCLIENTE;
                    _PRESTACION.GARANTIA        = _objGARANTIA;
                    _PRESTACION.PREVISION       = _objPREVISION;
                    _PRESTACION.TIPO_PRESTACION = _objTIPO_PRESTACION;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }