public void Delete(int Id)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioGARANTIA repositorio = new RepositorioGARANTIA(context);
                    GARANTIA _GARANTIA = repositorio.GetById(Id);

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

                    _GARANTIA.ACTIVO = false;

                    context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                 throw ex;
            }
        }
        public void Update(int Id, string NOMBRE)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioGARANTIA repositorio = new RepositorioGARANTIA(context);
                    GARANTIA _GARANTIA = repositorio.GetById(Id);
                    if(Equals(_GARANTIA,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado GARANTIA con Id =",Id.ToString()));
                    }

                    //properties

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

                    //parents

                    context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                 throw ex;
            }
        }
 public List<GARANTIA> GetByFilterWithReferences(string NOMBRE = "")
 {
     Init();
     try
     {
          using (LQCEEntities context = new LQCEEntities())
         {
             RepositorioGARANTIA repositorio = new RepositorioGARANTIA(context);
             return repositorio.GetByFilterWithReferences(NOMBRE).OrderBy(i => i.ID).ToList();
         }
     }
     catch (Exception ex)
     {
          ISException.RegisterExcepcion(ex);
         Error = ex.Message;
         throw ex;
     }
 }
 public GARANTIA GetByIdWithReferences(int ID)
 {
     Init();
     try
     {
         using (LQCEEntities context = new LQCEEntities())
         {
             RepositorioGARANTIA repositorio = new RepositorioGARANTIA(context);
             return repositorio.GetByIdWithReferences(ID);
         }
     }
     catch (Exception ex)
     {
          ISException.RegisterExcepcion(ex);
         Error = ex.Message;
         throw ex;
     }
 }
        private List<string> ValidarPrestacionVeterinaria(LQCEEntities context, CARGA_PRESTACIONES_VETERINARIAS_DETALLE objDetalle)
        {
            RepositorioPRESTACION_VETERINARIA _RepositorioPRESTACION_VETERINARIA = new RepositorioPRESTACION_VETERINARIA(context);
            RepositorioCLIENTE _RepositorioCLIENTE = new RepositorioCLIENTE(context);
            RepositorioCLIENTE_SINONIMO _RepositorioCLIENTE_SINONIMO = new RepositorioCLIENTE_SINONIMO(context);
            RepositorioPREVISION _RepositorioPREVISION = new RepositorioPREVISION(context);
            RepositorioGARANTIA _RepositorioGARANTIA = new RepositorioGARANTIA(context);
            RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO = new RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO(context);
            RepositorioEXAMEN _RepositorioEXAMEN = new RepositorioEXAMEN(context);
            RepositorioEXAMEN_SINONIMO _RepositorioEXAMEN_SINONIMO = new RepositorioEXAMEN_SINONIMO(context);
            RepositorioESPECIE _RepositorioESPECIE = new RepositorioESPECIE(context);
            RepositorioRAZA _RepositorioRAZA = new RepositorioRAZA(context);

            var EstadoConError = _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO.GetById((int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.ConError);
            if (EstadoConError == null)
                throw new Exception("No se encuentra registro de error en la tabla Estado de Detalle Carga Prestaciones");

            var EstadoValidado = _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO.GetById((int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado);
            if (EstadoValidado == null)
                throw new Exception("No se encuentra registro de error en la tabla Estado de Detalle Carga Prestaciones");

            List<string> ListaValidaciones = new List<string>();

            // Ingreso
            if (string.IsNullOrEmpty(objDetalle.FICHA))
            {
                ListaValidaciones.Add("No se ha señalado numero de ingreso");
            }
            else
            {
                int? _ficha = ISConvert.ToNullableInteger(objDetalle.FICHA);
                if (!_ficha.HasValue)
                {
                    ListaValidaciones.Add("INGRESO debe ser numérico");
                }
                else
                {
                    objDetalle.VALOR_FICHA = _ficha.Value;

                    var objPrestacionVeterinaria = _RepositorioPRESTACION_VETERINARIA.GetById(_ficha.Value);
                    if (objPrestacionVeterinaria != null)
                        ListaValidaciones.Add("Ya existe una prestación en el sistema con el mismo número de ingreso");
                }
            }

            // Nombre
            if (string.IsNullOrEmpty(objDetalle.NOMBRE))
            {
                ListaValidaciones.Add("No se ha señalado nombre del paciente");
            }

            // Especie
            if (string.IsNullOrEmpty(objDetalle.ESPECIE))
            {
                ListaValidaciones.Add("No se ha señalado ESPECIE en la ficha");
            }
            else
            {
                var objEspecie = _RepositorioESPECIE.GetByFilter(objDetalle.ESPECIE).FirstOrDefault();
                if (objEspecie != null)
                {
                    objDetalle.ESPECIE1 = objEspecie;

                    // Raza
                    if (string.IsNullOrEmpty(objDetalle.RAZA))
                    {
                        //ListaValidaciones.Add("No se ha señalado RAZA en la ficha");
                    }
                    else
                    {
                        var objRaza = _RepositorioRAZA.GetByFilter(objEspecie.ID, objDetalle.RAZA).FirstOrDefault();
                        if (objRaza != null)
                        {
                            objDetalle.RAZA1 = objRaza;
                        }
                        else
                        {
                            ListaValidaciones.Add("No se ha podido identificar la RAZA en la ficha");
                        }
                    }
                }
                else
                {
                    ListaValidaciones.Add("No se ha podido identificar la ESPECIE en la ficha");
                }
            }

            // Procedencia
            ////if (string.IsNullOrEmpty(objDetalle.PROCEDENCIA))
            ////{
            ////    ListaValidaciones.Add("No se ha señalado PROCEDENCIA en la ficha");
            ////}

            // Garantia
            if (string.IsNullOrEmpty(objDetalle.GARANTIA))
            {
                //ListaValidaciones.Add("No se ha señalado GARANTIA en la ficha");
            }
            else
            {
                var objGarantia = _RepositorioGARANTIA.GetByFilter(objDetalle.GARANTIA).FirstOrDefault();
                if (objGarantia != null)
                {
                    objDetalle.GARANTIA1 = objGarantia;
                }
                else
                {
                    ListaValidaciones.Add("No se ha podido identificar la GARANTIA en la ficha");
                }
            }

            // Total
            if (string.IsNullOrEmpty(objDetalle.TOTAL))
            {
                ListaValidaciones.Add("No se ha señalado TOTAL en la ficha");
            }
            else
            {
                int? _total = ISConvert.ToNullableInteger(objDetalle.TOTAL);
                if (!_total.HasValue)
                {
                    ListaValidaciones.Add("Total no tiene el formato correcto");
                }
                else
                {
                    objDetalle.VALOR_TOTAL = _total.Value;
                }
            }

            // Solicitante
            if (string.IsNullOrEmpty(objDetalle.SOLICITA))
            {
                ListaValidaciones.Add("No se ha señalado SOLICITANTE en la ficha");
            }
            else
            {
                if (objDetalle.SOLICITA.ToUpper().Trim() == "PARTICULAR")
                {
                    var objCliente = _RepositorioCLIENTE.GetByFilter(null, null, null, null, "", objDetalle.MEDICO).FirstOrDefault();
                    if (objCliente != null)
                    {
                        objDetalle.CLIENTE = objCliente;
                    }
                    else
                    {
                        var objClienteSinonimo = _RepositorioCLIENTE_SINONIMO.GetByFilterWithReferences(null, objDetalle.MEDICO).FirstOrDefault();
                        if (objClienteSinonimo != null)
                        {
                            objClienteSinonimo.CLIENTE = objClienteSinonimo.CLIENTE;
                        }
                        else
                        {
                            ListaValidaciones.Add("No se ha podido identificar CLIENTE MEDICO de la prestación");
                        }
                    }
                }
                else
                {
                    var objCliente = _RepositorioCLIENTE.GetByFilter(null, null, null, null, "", objDetalle.SOLICITA).FirstOrDefault();
                    if (objCliente != null)
                    {
                        objDetalle.CLIENTE = objCliente;
                    }
                    else
                    {
                        var objClienteSinonimo = _RepositorioCLIENTE_SINONIMO.GetByFilterWithReferences(null, objDetalle.SOLICITA).FirstOrDefault();
                        if (objClienteSinonimo != null)
                        {
                            objClienteSinonimo.CLIENTE = objClienteSinonimo.CLIENTE;
                        }
                        else
                        {
                            ListaValidaciones.Add("No se ha podido identificar CLIENTE SOLICITANTE de la prestación");
                        }
                    }
                }
            }

            // Fecha de Recepcion
            if (string.IsNullOrEmpty(objDetalle.FECHA_RECEPCION))
            {
                ListaValidaciones.Add("No se ha señalado FECHA DE RECEPCIÓN en la ficha");
            }
            else
            {
                DateTime? pasoFR = ISConvert.ToNullableDateTime(objDetalle.FECHA_RECEPCION);
                if (!pasoFR.HasValue)
                {
                    ListaValidaciones.Add("FECHA DE RECEPCIÓN no tiene el formato correcto");
                }
                else
                {
                    objDetalle.VALOR_FECHA_RECEPCION = pasoFR.Value;
                }
            }

            // Ficha Clinica
            if (string.IsNullOrEmpty(objDetalle.FICHA_CLINICA))
            {
                //ListaValidaciones.Add("No se ha señalado TOTAL en la ficha");
            }
            else
            {
                int? _ficha = ISConvert.ToNullableInteger(objDetalle.FICHA_CLINICA);
                if (!_ficha.HasValue)
                {
                    ListaValidaciones.Add("FICHA no tiene el formato correcto");
                }
                else
                {
                    objDetalle.VALOR_FICHA_CLINICA = _ficha.Value;
                }
            }

            // Examenes
            int contadorExamen = 1;
            int contadorExamenesRegistrados = 0;
            int contadorValorExamen = 0;
            foreach (var item in objDetalle.CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.Where(pe => pe.ACTIVO))
            {
                if (!string.IsNullOrEmpty(item.VALOR_EXAMEN) || !string.IsNullOrEmpty(item.NOMBRE_EXAMEN))
                {
                    contadorExamenesRegistrados++;
                    if (string.IsNullOrEmpty(item.NOMBRE_EXAMEN))
                    {
                        ListaValidaciones.Add("No ha señalado nombre de examen [" + contadorExamen.ToString() + "]");
                    }
                    else
                    {
                        bool ExamenExiste = false;
                        var objExamen = _RepositorioEXAMEN.GetByFilter((int)ENUM_TIPO_PRESTACION.Humanas, "", item.NOMBRE_EXAMEN).FirstOrDefault();
                        if (objExamen != null)
                        {
                            ExamenExiste = true;
                            item.EXAMEN = objExamen;
                        }
                        else
                        {
                            var objExamenSinonimo = _RepositorioEXAMEN_SINONIMO.GetByFilterWithReferences(null, item.NOMBRE_EXAMEN).FirstOrDefault();
                            if (objExamenSinonimo != null)
                            {
                                ExamenExiste = true;
                                item.EXAMEN = objExamenSinonimo.EXAMEN;
                            }
                            else
                            {
                                ListaValidaciones.Add("No se ha encontrado información del examen [" + contadorExamen.ToString() + "]");
                            }
                        }
                        if (ExamenExiste && string.IsNullOrEmpty(item.VALOR_EXAMEN))
                        {
                            ListaValidaciones.Add("No se ha señalado valor del examen [" + contadorExamen.ToString() + "; " + item.NOMBRE_EXAMEN + "]");
                        }
                    }
                    if (string.IsNullOrEmpty(item.VALOR_EXAMEN))
                    {
                        //ListaValidaciones.Add("No se ha señalado valor de examen [" + contadorExamen.ToString() + "]");
                    }
                    else
                    {
                        int? _valorExamen = ISConvert.ToNullableInteger(item.VALOR_EXAMEN);
                        if (!_valorExamen.HasValue)
                        {
                            ListaValidaciones.Add("Valor de examen no tiene el formato correcto [" + contadorExamen.ToString() + "]");
                        }
                        //else if (_valorExamen == 0)
                        //{
                        //    //ListaValidaciones.Add("Valor de examen no tiene el formato correcto [" + contadorExamen.ToString() + "]");
                        //}
                        else
                        {
                            contadorValorExamen++;
                            item.VALOR_VALOR_EXAMEN = _valorExamen;
                        }
                    }
                    // PENDIENTE: Validar que el valor del examen sea igual al convenio

                    //context.ApplyPropertyChanges("CARGA_PRESTACIONES_VETERINARIAS_EXAMEN", item);
                }
                else if (contadorExamen == 1)
                {
                    ListaValidaciones.Add("No ha señalado nombre y valor de examen [" + contadorExamen.ToString() + "]");
                }
                contadorExamen++;
            }

            if(contadorExamenesRegistrados == 0)
                ListaValidaciones.Add("La ficha debe registrar al menos 1 examen. ");
            if (contadorValorExamen == 0)
                ListaValidaciones.Add("La ficha debe registrar al menos 1 examen con valor. ");

            if (ListaValidaciones.Any())
            {
                objDetalle.CARGA_PRESTACIONES_DETALLE_ESTADO = EstadoConError;
                string errores = "";
                foreach (var item in ListaValidaciones)
                    errores += item + Environment.NewLine;
                objDetalle.MENSAJE_ERROR = errores;
            }
            else
            {
                objDetalle.CARGA_PRESTACIONES_DETALLE_ESTADO = EstadoValidado;
                objDetalle.MENSAJE_ERROR = "";
            }
            //context.ApplyPropertyChanges("CARGA_PRESTACIONES_VETERINARIAS_DETALLE", objDetalle);

            return ListaValidaciones;
        }
        public int Add(int CARGA_PRESTACIONES_DETALLE_ESTADOId, int CARGA_PRESTACIONES_ENCABEZADOId, int CLIENTEId, int ESPECIE1Id, int GARANTIA1Id, int PREVISIONId, int RAZA1Id, System.DateTime FECHA_ACTUALIZACION, string FICHA = "", string NOMBRE = "", string ESPECIE = "", string RAZA = "", string EDAD = "", string SEXO = "", string SOLICITA = "", string TELEFONO = "", string MEDICO = "", string PROCEDENCIA = "", string FECHA_RECEPCION = "", string FECHA_MUESTRA = "", string FECHA_RESULTADOS = "", string PENDIENTE = "", string GARANTIA = "", string PAGADO = "", string TOTAL = "", string FICHA_CLINICA = "", string RECEPCION = "", string MENSAJE_ERROR = "", int? VALOR_FICHA = null, DateTime? VALOR_FECHA_MUESTRA = null, DateTime? VALOR_FECHA_RECEPCION = null, DateTime? VALOR_FECHA_ENTREGA_RESULTADOS = null, int? VALOR_FICHA_CLINICA = null, int? VALOR_TOTAL = null)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO _repositorioCARGA_PRESTACIONES_DETALLE_ESTADO = new RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO(context);
                    CARGA_PRESTACIONES_DETALLE_ESTADO _objCARGA_PRESTACIONES_DETALLE_ESTADO = _repositorioCARGA_PRESTACIONES_DETALLE_ESTADO.GetById(CARGA_PRESTACIONES_DETALLE_ESTADOId);
                    if(Equals(_objCARGA_PRESTACIONES_DETALLE_ESTADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_DETALLE_ESTADO con Id =",CARGA_PRESTACIONES_DETALLE_ESTADOId.ToString()));
                    }

                    RepositorioCARGA_PRESTACIONES_ENCABEZADO _repositorioCARGA_PRESTACIONES_ENCABEZADO = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context);
                    CARGA_PRESTACIONES_ENCABEZADO _objCARGA_PRESTACIONES_ENCABEZADO = _repositorioCARGA_PRESTACIONES_ENCABEZADO.GetById(CARGA_PRESTACIONES_ENCABEZADOId);
                    if(Equals(_objCARGA_PRESTACIONES_ENCABEZADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ENCABEZADO con Id =",CARGA_PRESTACIONES_ENCABEZADOId.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()));
                    }

                    RepositorioESPECIE _repositorioESPECIE1 = new RepositorioESPECIE(context);
                    ESPECIE _objESPECIE1 = _repositorioESPECIE1.GetById(ESPECIE1Id);
                    if(Equals(_objESPECIE1,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado ESPECIE1 con Id =",ESPECIE1Id.ToString()));
                    }

                    RepositorioGARANTIA _repositorioGARANTIA1 = new RepositorioGARANTIA(context);
                    GARANTIA _objGARANTIA1 = _repositorioGARANTIA1.GetById(GARANTIA1Id);
                    if(Equals(_objGARANTIA1,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado GARANTIA1 con Id =",GARANTIA1Id.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()));
                    }

                    RepositorioRAZA _repositorioRAZA1 = new RepositorioRAZA(context);
                    RAZA _objRAZA1 = _repositorioRAZA1.GetById(RAZA1Id);
                    if(Equals(_objRAZA1,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado RAZA1 con Id =",RAZA1Id.ToString()));
                    }

                    CARGA_PRESTACIONES_VETERINARIAS_DETALLE _CARGA_PRESTACIONES_VETERINARIAS_DETALLE = new CARGA_PRESTACIONES_VETERINARIAS_DETALLE();

                    //properties

                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FICHA = FICHA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.NOMBRE = NOMBRE;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE = ESPECIE;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RAZA = RAZA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.EDAD = EDAD;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SEXO = SEXO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SOLICITA = SOLICITA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.TELEFONO = TELEFONO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.MEDICO = MEDICO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PROCEDENCIA = PROCEDENCIA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_RECEPCION = FECHA_RECEPCION;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_MUESTRA = FECHA_MUESTRA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_RESULTADOS = FECHA_RESULTADOS;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PENDIENTE = PENDIENTE;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.GARANTIA = GARANTIA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PAGADO = PAGADO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.TOTAL = TOTAL;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FICHA_CLINICA = FICHA_CLINICA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RECEPCION = RECEPCION;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.MENSAJE_ERROR = MENSAJE_ERROR;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_ACTUALIZACION = FECHA_ACTUALIZACION;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA = VALOR_FICHA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_MUESTRA = VALOR_FECHA_MUESTRA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_RECEPCION = VALOR_FECHA_RECEPCION;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_ENTREGA_RESULTADOS = VALOR_FECHA_ENTREGA_RESULTADOS;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA_CLINICA = VALOR_FICHA_CLINICA;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_TOTAL = VALOR_TOTAL;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ACTIVO = true;

                    //parents

                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CARGA_PRESTACIONES_DETALLE_ESTADO = _objCARGA_PRESTACIONES_DETALLE_ESTADO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CARGA_PRESTACIONES_ENCABEZADO = _objCARGA_PRESTACIONES_ENCABEZADO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CLIENTE = _objCLIENTE;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE1 = _objESPECIE1;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.GARANTIA1 = _objGARANTIA1;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PREVISION = _objPREVISION;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RAZA1 = _objRAZA1;

                    context.AddObject("CARGA_PRESTACIONES_VETERINARIAS_DETALLE",_CARGA_PRESTACIONES_VETERINARIAS_DETALLE);
                    context.SaveChanges();

                    return _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ID;
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
        public void Update(int Id, int CARGA_PRESTACIONES_DETALLE_ESTADOId, int CARGA_PRESTACIONES_ENCABEZADOId, int CLIENTEId, int ESPECIE1Id, int GARANTIA1Id, int PREVISIONId, int RAZA1Id, System.DateTime FECHA_ACTUALIZACION, string FICHA = "", string NOMBRE = "", string ESPECIE = "", string RAZA = "", string EDAD = "", string SEXO = "", string SOLICITA = "", string TELEFONO = "", string MEDICO = "", string PROCEDENCIA = "", string FECHA_RECEPCION = "", string FECHA_MUESTRA = "", string FECHA_RESULTADOS = "", string PENDIENTE = "", string GARANTIA = "", string PAGADO = "", string TOTAL = "", string FICHA_CLINICA = "", string RECEPCION = "", string MENSAJE_ERROR = "", int? VALOR_FICHA = null, DateTime? VALOR_FECHA_MUESTRA = null, DateTime? VALOR_FECHA_RECEPCION = null, DateTime? VALOR_FECHA_ENTREGA_RESULTADOS = null, int? VALOR_FICHA_CLINICA = null, int? VALOR_TOTAL = null)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE repositorio = new RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE(context);
                    CARGA_PRESTACIONES_VETERINARIAS_DETALLE _CARGA_PRESTACIONES_VETERINARIAS_DETALLE = repositorio.GetById(Id);
                    if(Equals(_CARGA_PRESTACIONES_VETERINARIAS_DETALLE,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_VETERINARIAS_DETALLE con Id =",Id.ToString()));
                    }

                    RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO _repositorioCARGA_PRESTACIONES_DETALLE_ESTADO = new RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO(context);
                    CARGA_PRESTACIONES_DETALLE_ESTADO _objCARGA_PRESTACIONES_DETALLE_ESTADO = _repositorioCARGA_PRESTACIONES_DETALLE_ESTADO.GetById(CARGA_PRESTACIONES_DETALLE_ESTADOId);
                    if(Equals(_objCARGA_PRESTACIONES_DETALLE_ESTADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_DETALLE_ESTADO con Id =",CARGA_PRESTACIONES_DETALLE_ESTADOId.ToString()));
                    }

                    RepositorioCARGA_PRESTACIONES_ENCABEZADO _repositorioCARGA_PRESTACIONES_ENCABEZADO = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context);
                    CARGA_PRESTACIONES_ENCABEZADO _objCARGA_PRESTACIONES_ENCABEZADO = _repositorioCARGA_PRESTACIONES_ENCABEZADO.GetById(CARGA_PRESTACIONES_ENCABEZADOId);
                    if(Equals(_objCARGA_PRESTACIONES_ENCABEZADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ENCABEZADO con Id =",CARGA_PRESTACIONES_ENCABEZADOId.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()));
                    }

                    RepositorioESPECIE _repositorioESPECIE1 = new RepositorioESPECIE(context);
                    ESPECIE _objESPECIE1 = _repositorioESPECIE1.GetById(ESPECIE1Id);
                    if(Equals(_objESPECIE1,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado ESPECIE1 con Id =",ESPECIE1Id.ToString()));
                    }

                    RepositorioGARANTIA _repositorioGARANTIA1 = new RepositorioGARANTIA(context);
                    GARANTIA _objGARANTIA1 = _repositorioGARANTIA1.GetById(GARANTIA1Id);
                    if(Equals(_objGARANTIA1,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado GARANTIA1 con Id =",GARANTIA1Id.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()));
                    }

                    RepositorioRAZA _repositorioRAZA1 = new RepositorioRAZA(context);
                    RAZA _objRAZA1 = _repositorioRAZA1.GetById(RAZA1Id);
                    if(Equals(_objRAZA1,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado RAZA1 con Id =",RAZA1Id.ToString()));
                    }

                    //properties

                    if (!string.IsNullOrEmpty(FICHA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FICHA = FICHA;
                    }
                    if (!string.IsNullOrEmpty(NOMBRE))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.NOMBRE = NOMBRE;
                    }
                    if (!string.IsNullOrEmpty(ESPECIE))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE = ESPECIE;
                    }
                    if (!string.IsNullOrEmpty(RAZA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RAZA = RAZA;
                    }
                    if (!string.IsNullOrEmpty(EDAD))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.EDAD = EDAD;
                    }
                    if (!string.IsNullOrEmpty(SEXO))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SEXO = SEXO;
                    }
                    if (!string.IsNullOrEmpty(SOLICITA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SOLICITA = SOLICITA;
                    }
                    if (!string.IsNullOrEmpty(TELEFONO))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.TELEFONO = TELEFONO;
                    }
                    if (!string.IsNullOrEmpty(MEDICO))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.MEDICO = MEDICO;
                    }
                    if (!string.IsNullOrEmpty(PROCEDENCIA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PROCEDENCIA = PROCEDENCIA;
                    }
                    if (!string.IsNullOrEmpty(FECHA_RECEPCION))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_RECEPCION = FECHA_RECEPCION;
                    }
                    if (!string.IsNullOrEmpty(FECHA_MUESTRA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_MUESTRA = FECHA_MUESTRA;
                    }
                    if (!string.IsNullOrEmpty(FECHA_RESULTADOS))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_RESULTADOS = FECHA_RESULTADOS;
                    }
                    if (!string.IsNullOrEmpty(PENDIENTE))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PENDIENTE = PENDIENTE;
                    }
                    if (!string.IsNullOrEmpty(GARANTIA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.GARANTIA = GARANTIA;
                    }
                    if (!string.IsNullOrEmpty(PAGADO))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PAGADO = PAGADO;
                    }
                    if (!string.IsNullOrEmpty(TOTAL))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.TOTAL = TOTAL;
                    }
                    if (!string.IsNullOrEmpty(FICHA_CLINICA))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FICHA_CLINICA = FICHA_CLINICA;
                    }
                    if (!string.IsNullOrEmpty(RECEPCION))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RECEPCION = RECEPCION;
                    }
                    if (!string.IsNullOrEmpty(MENSAJE_ERROR))
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.MENSAJE_ERROR = MENSAJE_ERROR;
                    }
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.FECHA_ACTUALIZACION = FECHA_ACTUALIZACION;
                    if (VALOR_FICHA.HasValue)
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA = VALOR_FICHA.Value;
                    }
                    if (VALOR_FECHA_MUESTRA.HasValue)
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_MUESTRA = VALOR_FECHA_MUESTRA.Value;
                    }
                    if (VALOR_FECHA_RECEPCION.HasValue)
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_RECEPCION = VALOR_FECHA_RECEPCION.Value;
                    }
                    if (VALOR_FECHA_ENTREGA_RESULTADOS.HasValue)
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_ENTREGA_RESULTADOS = VALOR_FECHA_ENTREGA_RESULTADOS.Value;
                    }
                    if (VALOR_FICHA_CLINICA.HasValue)
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA_CLINICA = VALOR_FICHA_CLINICA.Value;
                    }
                    if (VALOR_TOTAL.HasValue)
                    {
                        _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_TOTAL = VALOR_TOTAL.Value;
                    }

                    //parents

                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CARGA_PRESTACIONES_DETALLE_ESTADO = _objCARGA_PRESTACIONES_DETALLE_ESTADO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CARGA_PRESTACIONES_ENCABEZADO = _objCARGA_PRESTACIONES_ENCABEZADO;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CLIENTE = _objCLIENTE;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE1 = _objESPECIE1;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.GARANTIA1 = _objGARANTIA1;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PREVISION = _objPREVISION;
                    _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RAZA1 = _objRAZA1;

                    context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                 throw ex;
            }
        }
        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 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;
            }
        }