public void Delete(int Id)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ESTADO repositorio = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO _CARGA_PRESTACIONES_ESTADO = repositorio.GetById(Id);

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

                    _CARGA_PRESTACIONES_ESTADO.ACTIVO = false;

                    context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                 throw ex;
            }
        }
        public int Add(int CARGA_PRESTACIONES_ESTADOId, int TIPO_PRESTACIONId, System.DateTime FECHA_CARGA, string ARCHIVO)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ESTADO _repositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO _objCARGA_PRESTACIONES_ESTADO = _repositorioCARGA_PRESTACIONES_ESTADO.GetById(CARGA_PRESTACIONES_ESTADOId);
                    if(Equals(_objCARGA_PRESTACIONES_ESTADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ESTADO con Id =",CARGA_PRESTACIONES_ESTADOId.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()));
                    }

                    CARGA_PRESTACIONES_ENCABEZADO _CARGA_PRESTACIONES_ENCABEZADO = new CARGA_PRESTACIONES_ENCABEZADO();

                    //properties

                    _CARGA_PRESTACIONES_ENCABEZADO.FECHA_CARGA = FECHA_CARGA;
                    _CARGA_PRESTACIONES_ENCABEZADO.ARCHIVO = ARCHIVO;
                    _CARGA_PRESTACIONES_ENCABEZADO.ACTIVO = true;

                    //parents

                    _CARGA_PRESTACIONES_ENCABEZADO.CARGA_PRESTACIONES_ESTADO = _objCARGA_PRESTACIONES_ESTADO;
                    _CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION = _objTIPO_PRESTACION;

                    context.AddObject("CARGA_PRESTACIONES_ENCABEZADO",_CARGA_PRESTACIONES_ENCABEZADO);
                    context.SaveChanges();

                    return _CARGA_PRESTACIONES_ENCABEZADO.ID;
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
Ejemplo n.º 3
0
 public CARGA_PRESTACIONES_ESTADO GetById(int ID)
 {
     Init();
     try
     {
         using (LQCEEntities context = new LQCEEntities())
         {
             RepositorioCARGA_PRESTACIONES_ESTADO repositorio = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
             return(repositorio.GetById(ID));
         }
     }
     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())
                {
                    RepositorioCARGA_PRESTACIONES_ESTADO repositorio = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO _CARGA_PRESTACIONES_ESTADO = repositorio.GetById(Id);
                    if(Equals(_CARGA_PRESTACIONES_ESTADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ESTADO con Id =",Id.ToString()));
                    }

                    //properties

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

                    //parents

                    context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                 throw ex;
            }
        }
 public CARGA_PRESTACIONES_ESTADO GetById(int ID)
 {
     Init();
     try
     {
         using (LQCEEntities context = new LQCEEntities())
         {
             RepositorioCARGA_PRESTACIONES_ESTADO repositorio = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
             return repositorio.GetById(ID);
         }
     }
     catch (Exception ex)
     {
          ISException.RegisterExcepcion(ex);
         Error = ex.Message;
         throw ex;
     }
 }
        public void Update(int Id, int CARGA_PRESTACIONES_ESTADOId, int TIPO_PRESTACIONId, System.DateTime FECHA_CARGA, string ARCHIVO)
        {
            Init();
            try
            {
                 using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ENCABEZADO repositorio = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context);
                    CARGA_PRESTACIONES_ENCABEZADO _CARGA_PRESTACIONES_ENCABEZADO = repositorio.GetById(Id);
                    if(Equals(_CARGA_PRESTACIONES_ENCABEZADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ENCABEZADO con Id =",Id.ToString()));
                    }

                    RepositorioCARGA_PRESTACIONES_ESTADO _repositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO _objCARGA_PRESTACIONES_ESTADO = _repositorioCARGA_PRESTACIONES_ESTADO.GetById(CARGA_PRESTACIONES_ESTADOId);
                    if(Equals(_objCARGA_PRESTACIONES_ESTADO,null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ESTADO con Id =",CARGA_PRESTACIONES_ESTADOId.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

                        _CARGA_PRESTACIONES_ENCABEZADO.FECHA_CARGA = FECHA_CARGA;
                    if (!string.IsNullOrEmpty(ARCHIVO))
                    {
                        _CARGA_PRESTACIONES_ENCABEZADO.ARCHIVO = ARCHIVO;
                    }

                    //parents

                    _CARGA_PRESTACIONES_ENCABEZADO.CARGA_PRESTACIONES_ESTADO = _objCARGA_PRESTACIONES_ESTADO;
                    _CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION = _objTIPO_PRESTACION;

                    context.SaveChanges();
                }
            }
            catch(Exception ex)
            {
                 ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                 throw ex;
            }
        }
        /// <summary>
        /// Realiza carga en tablas temporales del contenido del archivo Excel
        /// </summary>
        /// <param name="IdTipoPrestacion">Id. de tipo de prestación</param>
        /// <param name="NombreArchivo">Nombre del archivo adjunto</param>
        /// <param name="ContenidoArchivo">Contenido binario del archivo adjunto</param>
        /// <returns>Retorna Id. de encabezado de carga de prestaciones</returns>
        public int UploadArchivoPrestaciones(int IdTipoPrestacion, string NombreArchivo, byte[] ContenidoArchivo)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    if (string.IsNullOrEmpty(NombreArchivo))
                        throw new Exception("No se ha señalado nombre de archivo Excel");
                    if (ContenidoArchivo == null)
                        throw new Exception("No se ha incluido contenido del archivo Excel");

                    RepositorioTIPO_PRESTACION _RepositorioTIPO_PRESTACION = new RepositorioTIPO_PRESTACION(context);
                    RepositorioCARGA_PRESTACIONES_ESTADO _RepositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO = new RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO(context);

                    var objTipoPrestacion = _RepositorioTIPO_PRESTACION.GetById(IdTipoPrestacion);
                    if (objTipoPrestacion == null)
                        throw new Exception("No se ha encontrado información del Tipo de Prestación");

                    var objEstado = _RepositorioCARGA_PRESTACIONES_ESTADO.GetById((int)ENUM_CARGA_PRESTACIONES_ESTADO.Pendiente);
                    if (objEstado == null)
                        throw new Exception("No se ha encontrado información del Estado de Carga de Prestaciones");

                    var objEstadoDetalle = _RepositorioCARGA_PRESTACIONES_DETALLE_ESTADO.GetById((int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Pendiente);
                    if (objEstadoDetalle == null)
                        throw new Exception("No se ha encontrado información del Estado de Detalle de Carga de Prestaciones");

                    string archivo = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + NombreArchivo;
                    File.WriteAllBytes(Properties.Settings.Default.DIR_CARGA_EXCEL + archivo, ContenidoArchivo);

                    var datos = ISExcel.ReadExcelFile(Properties.Settings.Default.DIR_CARGA_EXCEL + archivo, true);
                    if (datos == null)
                        throw new Exception("No se ha leido información en la planilla Excel");

                    CARGA_PRESTACIONES_ENCABEZADO objEncabezado = new CARGA_PRESTACIONES_ENCABEZADO();
                    objEncabezado.FECHA_CARGA = DateTime.Now;
                    objEncabezado.TIPO_PRESTACION = objTipoPrestacion;
                    objEncabezado.CARGA_PRESTACIONES_ESTADO = objEstado;
                    objEncabezado.ARCHIVO = archivo;
                    objEncabezado.ACTIVO = true;
                    context.AddToCARGA_PRESTACIONES_ENCABEZADO(objEncabezado);

                    if (IdTipoPrestacion == (int)ENUM_TIPO_PRESTACION.Humanas)
                    {
                        foreach (DataRow item in datos.Rows)
                        {
                            bool TieneDatos = false;
                            foreach (var col in item.ItemArray)
                            {
                                if (!string.IsNullOrEmpty(col.ToString()))
                                    TieneDatos = true;
                            }
                            if (TieneDatos)
                            {
                                // Convertir fecha formato dd.mm.aa
                                DateTime? pasoFR = null;
                                if (!string.IsNullOrEmpty(item["FECHA RECEPCION"].ToString()))
                                {
                                    string[] arrFechaRecepcion = item["FECHA RECEPCION"].ToString().Split('.');
                                    if (arrFechaRecepcion.Count() == 3)
                                    {
                                        int? dias = ISConvert.ToNullableInteger(arrFechaRecepcion[0]);
                                        int? mes = ISConvert.ToNullableInteger(arrFechaRecepcion[1]);
                                        int? año = ISConvert.ToNullableInteger(arrFechaRecepcion[2]);
                                        if (dias.HasValue && mes.HasValue && año.HasValue)
                                        {
                                            if (año < 100)
                                            {
                                                año = año + 2000;
                                            }
                                            string fr = dias.Value.ToString() + "-"
                                                + mes.Value.ToString() + "-"
                                                + año.Value.ToString();
                                            pasoFR = ISConvert.ToNullableDateTime(fr);
                                        }
                                    }
                                }

                                CARGA_PRESTACIONES_HUMANAS_DETALLE objDetalle = new CARGA_PRESTACIONES_HUMANAS_DETALLE();
                                objDetalle.CARGA_PRESTACIONES_ENCABEZADO = objEncabezado;
                                objDetalle.NOMBRE = item["NOMBRE"].ToString();
                                objDetalle.FICHA = item["FICHA"].ToString();
                                if (pasoFR.HasValue)
                                {
                                    objDetalle.FECHA_RECEPCION = pasoFR.Value.ToString("dd-MM-yyyy") + " " + item["HORA RECEPCION"].ToString();
                                }
                                else
                                {
                                    objDetalle.FECHA_RECEPCION = item["FECHA RECEPCION"].ToString() + "." + item["HORA RECEPCION"].ToString();
                                }
                                objDetalle.TELEFONO = item["TELEFONO"].ToString();
                                objDetalle.MEDICO = item["MEDICO"].ToString();
                                objDetalle.PROCEDENCIA = item["PROCEDENCIA"].ToString();
                                objDetalle.PREVISION = item["PREVISION"].ToString();
                                objDetalle.GARANTIA = item["GARANTIA"].ToString();
                                objDetalle.PENDIENTE = item["PENDIENTE"].ToString();
                                objDetalle.PAGADO = item["PAGADO"].ToString();
                                objDetalle.TOTAL = item["TOTAL"].ToString();
                                objDetalle.RECEPCION = item["RECEPCION"].ToString();
                                objDetalle.EDAD = item["EDAD"].ToString();
                                objDetalle.RUT = item["RUT"].ToString();

                                objDetalle.ACTIVO = true;
                                objDetalle.CARGA_PRESTACIONES_DETALLE_ESTADO = objEstadoDetalle;
                                objDetalle.MENSAJE_ERROR = "";
                                objDetalle.FECHA_ACTUALIZACION = DateTime.Now;
                                objDetalle.CLIENTE = null;
                                objDetalle.VALOR_FICHA = null;
                                objDetalle.VALOR_FECHA_MUESTRA = null;
                                objDetalle.VALOR_FECHA_RECEPCION = null;
                                objDetalle.PREVISION1 = null;
                                objDetalle.GARANTIA1 = null;
                                objDetalle.VALOR_FECHA_ENTREGA_RESULTADOS = null;

                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 1", "VALOR 1");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 2", "VALOR 2");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 3", "VALOR 3");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 4", "VALOR 4");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 5", "VALOR 5");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 6", "VALOR 6");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 7", "VALOR 7");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 8", "VALOR 8");
                                AgregarExamenHumano(context, objDetalle, item, "EXAMEN 9", "VALOR 9");

                                ValidarPrestacionHumana(context, objDetalle);

                                context.AddToCARGA_PRESTACIONES_HUMANAS_DETALLE(objDetalle);
                            }
                        }
                    }
                    else if (IdTipoPrestacion == (int)ENUM_TIPO_PRESTACION.Veterinarias)
                    {
                        foreach (DataRow item in datos.Rows)
                        {
                            // Convertir fecha formato dd.mm.aa
                            DateTime? pasoFR = null;
                            if (!string.IsNullOrEmpty(item["FECHA RECEPCION"].ToString()))
                            {
                                string[] arrFechaRecepcion = item["FECHA RECEPCION"].ToString().Split('.');
                                if (arrFechaRecepcion.Count() == 3)
                                {
                                    int? dias = ISConvert.ToNullableInteger(arrFechaRecepcion[0]);
                                    int? mes = ISConvert.ToNullableInteger(arrFechaRecepcion[1]);
                                    int? año = ISConvert.ToNullableInteger(arrFechaRecepcion[2]);
                                    if (dias.HasValue && mes.HasValue && año.HasValue)
                                    {
                                        if (año < 100)
                                        {
                                            año = año + 2000;
                                        }
                                        string fr = dias.Value.ToString() + "-"
                                            + mes.Value.ToString() + "-"
                                            + año.Value.ToString();
                                        pasoFR = ISConvert.ToNullableDateTime(fr);
                                    }
                                }
                            }

                            CARGA_PRESTACIONES_VETERINARIAS_DETALLE objDetalle = new CARGA_PRESTACIONES_VETERINARIAS_DETALLE();
                            objDetalle.CARGA_PRESTACIONES_ENCABEZADO = objEncabezado;
                            objDetalle.FICHA = item["INGRESO"].ToString();
                            objDetalle.NOMBRE = item["NOMBRE"].ToString();
                            objDetalle.ESPECIE = item["ESPECIE"].ToString();
                            objDetalle.RAZA = item["RAZA"].ToString();
                            objDetalle.SEXO = item["SEXO"].ToString();
                            objDetalle.EDAD = item["EDAD"].ToString();
                            objDetalle.TELEFONO = item["TELEFONO"].ToString();
                            objDetalle.PROCEDENCIA = item["PROCEDENCIA"].ToString();
                            objDetalle.GARANTIA = item["GARANTIA"].ToString();
                            objDetalle.PENDIENTE = item["PENDIENTE"].ToString();
                            objDetalle.TOTAL = item["TOTAL"].ToString();
                            objDetalle.RECEPCION = item["RECEPCION"].ToString();
                            objDetalle.MEDICO = item["MEDICO"].ToString();
                            objDetalle.SOLICITA = item["SOLICITANTE"].ToString();
                            if (pasoFR.HasValue)
                            {
                                objDetalle.FECHA_RECEPCION = pasoFR.Value.ToString("dd-MM-yyyy") + " " + item["HORA RECEPCION"].ToString();
                            }
                            else
                            {
                                objDetalle.FECHA_RECEPCION = item["FECHA RECEPCION"].ToString() + "." + item["HORA RECEPCION"].ToString();
                            }
                            objDetalle.FICHA_CLINICA = item["FICHA"].ToString();
                            //objDetalle.FECHA_MUESTRA = item["FECHA MUESTRA"].ToString();
                            //objDetalle.FECHA_RESULTADOS = item["FECHA RESULTADOS"].ToString();
                            //objDetalle.PAGADO = item["PAGADO"].ToString();
                            objDetalle.ACTIVO = true;
                            objDetalle.CARGA_PRESTACIONES_DETALLE_ESTADO = objEstadoDetalle;
                            objDetalle.MENSAJE_ERROR = "";
                            objDetalle.FECHA_ACTUALIZACION = DateTime.Now;
                            objDetalle.VALOR_FICHA = null;
                            objDetalle.CLIENTE = null;
                            //objDetalle.VALOR_FECHA_MUESTRA = null;
                            objDetalle.VALOR_FECHA_RECEPCION = null;
                            objDetalle.PREVISION = null;
                            objDetalle.GARANTIA1 = null;
                            //objDetalle.VALOR_FECHA_ENTREGA_RESULTADOS = null;
                            objDetalle.ESPECIE1 = null;
                            objDetalle.RAZA1 = null;

                            AgregarExamenVeterinario(context, objDetalle, item, "EXAMEN 1", "VALOR 1");
                            AgregarExamenVeterinario(context, objDetalle, item, "EXAMEN 2", "VALOR 2");
                            AgregarExamenVeterinario(context, objDetalle, item, "EXAMEN 3", "VALOR 3");
                            AgregarExamenVeterinario(context, objDetalle, item, "EXAMEN 4", "VALOR 4");
                            AgregarExamenVeterinario(context, objDetalle, item, "EXAMEN 5", "VALOR 5");

                           ValidarPrestacionVeterinaria(context, objDetalle);

                            context.AddToCARGA_PRESTACIONES_VETERINARIAS_DETALLE(objDetalle);

                        }
                    }
                    else
                    {
                        throw new Exception("Tipo de prestación no válido");
                    }

                    context.SaveChanges();

                    return objEncabezado.ID;
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
        //public int GetDetalleCargaPrestacionesCount(int IdCargaPrestacionesEncabezado,
        //    string NUMERO_FICHA, string NOMBRE, int? ID_ESTADO_DETALLE, string PROCEDENCIA, int PAGINA, int REGISTROS)
        //{
        //    try
        //    {
        //        using (LQCEEntities context = new LQCEEntities())
        //        {
        //            RepositorioCARGA_PRESTACIONES_ENCABEZADO _RepositorioCARGA_PRESTACIONES_ENCABEZADO = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context);
        //            RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE _RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE = new RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE(context);
        //            RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE _RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE = new RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE(context);
        //            CARGA_PRESTACIONES_ENCABEZADO objEncabezado = _RepositorioCARGA_PRESTACIONES_ENCABEZADO.GetByIdWithReferences(IdCargaPrestacionesEncabezado);
        //            if (objEncabezado == null)
        //                throw new Exception("No se encuentra informacion de carga de prestaciones");
        //            if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas)
        //            {
        //                var q = from d in _RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE.GetByFilterWithReferences(IdCargaPrestacionesEncabezado,
        //                        ID_ESTADO_DETALLE, null, null, null, null, NUMERO_FICHA, NOMBRE,
        //                        "", "", "", "", PROCEDENCIA, "", "", "", "", "", "", "", "", "", null, null, null, null)
        //                        select d;
        //                var r = from item in q.OrderBy(d => d.ID).Skip((PAGINA - 1) * REGISTROS).Take(10)
        //                        select new DTO_DETALLE_CARGA_PRESTACIONES
        //                        {
        //                            ID = item.ID,
        //                            ID_TIPO_PRESTACION = item.CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION.ID,
        //                            NUMERO_FICHA = item.FICHA,
        //                            NOMBRE = item.NOMBRE,
        //                            ID_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.ID,
        //                            NOMBRE_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.NOMBRE,
        //                            PROCEDENCIA = item.PROCEDENCIA,
        //                            FECHA_RECEPCION = item.FECHA_RECEPCION
        //                        };
        //                return r.ToList().Count();
        //            }
        //            else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias)
        //            {
        //                var q = from d in _RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE.GetByFilterWithReferences(IdCargaPrestacionesEncabezado,
        //                        ID_ESTADO_DETALLE, null, null, null, null, null, null,
        //                        NUMERO_FICHA, NOMBRE, "", "", "", "", "", "", "", PROCEDENCIA,
        //                        "", "", "", "", "", "", "", "", null, null, null, null)
        //                        select d;
        //                var r = from item in q.OrderBy(d => d.ID).Skip((PAGINA - 1) * REGISTROS).Take(10)
        //                        select new DTO_DETALLE_CARGA_PRESTACIONES
        //                        {
        //                            ID = item.ID,
        //                            ID_TIPO_PRESTACION = item.CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION.ID,
        //                            NUMERO_FICHA = item.FICHA,
        //                            NOMBRE = item.NOMBRE,
        //                            ID_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.ID,
        //                            NOMBRE_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.NOMBRE,
        //                            PROCEDENCIA = item.PROCEDENCIA,
        //                            FECHA_RECEPCION = item.FECHA_RECEPCION
        //                        };
        //                return r.ToList().Count();
        //            }
        //            else
        //            {
        //                throw new Exception("Tipo de carga no identificada");
        //            }
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        ISException.RegisterExcepcion(ex);
        //        Error = ex.Message;
        //        throw ex;
        //    }
        //}
        public void CambiarEstadoCarga(int IdCargaPrestacionesEncabezado, int IdCargaPrestacionesEstado)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ENCABEZADO _RepositorioCARGA_PRESTACIONES_ENCABEZADO = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context);
                    RepositorioCARGA_PRESTACIONES_ESTADO _RepositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    RepositorioTIPO_PRESTACION _RepositorioTIPO_PRESTACION = new RepositorioTIPO_PRESTACION(context);
                    RepositorioCLIENTE _RepositorioCLIENTE = new RepositorioCLIENTE(context);

                    CARGA_PRESTACIONES_ENCABEZADO objEncabezado = _RepositorioCARGA_PRESTACIONES_ENCABEZADO.GetByIdWithReferencesFull(IdCargaPrestacionesEncabezado);
                    if (objEncabezado == null)
                        throw new Exception("No se encuentra informacion de la carga");

                    CARGA_PRESTACIONES_ESTADO objEstado = _RepositorioCARGA_PRESTACIONES_ESTADO.GetById(IdCargaPrestacionesEstado);
                    if (objEstado == null)
                        throw new Exception("No se encuentra informacion del estado");

                    // Validaciones
                    if (objEncabezado.CARGA_PRESTACIONES_ESTADO.ID != (int)ENUM_CARGA_PRESTACIONES_ESTADO.Pendiente)
                        throw new Exception("La carga seleccionada no esta en revision pendiente");

                    int IdCargaDetalleEstadoPendiente = (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Pendiente;
                    int IdCargaDetalleEstadoValidado = (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado;

                    if (objEstado.ID == (int)ENUM_CARGA_PRESTACIONES_ESTADO.Completado)
                    {
                        if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas)
                        {
                            if (objEncabezado.CARGA_PRESTACIONES_HUMANAS_DETALLE
                           .Any(d => d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID != IdCargaDetalleEstadoValidado))
                            {
                                throw new Exception("La carga no se puede completar mientras tenga fichas pendientes o con errores");
                            }
                        }
                        else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias)
                        {
                            if (objEncabezado.CARGA_PRESTACIONES_VETERINARIAS_DETALLE
                           .Any(d => d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID != IdCargaDetalleEstadoValidado))
                            {
                                throw new Exception("La carga no se puede completar mientras tenga fichas pendientes o con errores");
                            }
                        }
                    }

                    objEncabezado.CARGA_PRESTACIONES_ESTADO = objEstado;
                    context.ApplyPropertyChanges("CARGA_PRESTACIONES_ENCABEZADO", objEncabezado);

                    // Mover prestaciones y examenes a tablas definitivas
                    if (objEstado.ID == (int)ENUM_CARGA_PRESTACIONES_ESTADO.Completado)
                    {
                        if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas)
                        {
                            TIPO_PRESTACION _TIPO_PRESTACION = _RepositorioTIPO_PRESTACION.GetById((int)ENUM_TIPO_PRESTACION.Humanas);
                            if (_TIPO_PRESTACION == null)
                                throw new Exception("No se encuentra informacion de tipo de prestación humana");

                            foreach (CARGA_PRESTACIONES_HUMANAS_DETALLE _CARGA_PRESTACIONES_HUMANAS_DETALLE in objEncabezado.CARGA_PRESTACIONES_HUMANAS_DETALLE
                                 .Where(d => d.ACTIVO && d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID == (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado))
                            {
                                if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_HUMANAS_DETALLE.NOMBRE))
                                    throw new Exception("No se ha señalado nombre");
                                if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FICHA.HasValue)
                                    throw new Exception("No se ha señalado ficha");
                                if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FECHA_RECEPCION.HasValue)
                                    throw new Exception("Fecha de recepción debe tener valor");
                                if(_CARGA_PRESTACIONES_HUMANAS_DETALLE.CLIENTE == null)
                                    throw new Exception("No se ha identificado al cliente");
                                if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_TOTAL.HasValue)
                                    throw new Exception("No se ha señalado valor total de prestaciones");

                                PRESTACION _PRESTACION = new PRESTACION();
                                _PRESTACION.ID = _CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FICHA.Value;
                                _PRESTACION.TIPO_PRESTACION = _TIPO_PRESTACION;
                                _PRESTACION.FECHA_RECEPCION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FECHA_RECEPCION.Value;
                                _PRESTACION.MEDICO = _CARGA_PRESTACIONES_HUMANAS_DETALLE.MEDICO;
                                _PRESTACION.CLIENTE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.CLIENTE;
                                _PRESTACION.PREVISION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.PREVISION1;
                                _PRESTACION.GARANTIA = _CARGA_PRESTACIONES_HUMANAS_DETALLE.GARANTIA1;
                                _PRESTACION.PENDIENTE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.PENDIENTE;
                                _PRESTACION.RECEPCION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.RECEPCION;
                                _PRESTACION.ACTIVO = true;
                                context.AddToPRESTACION(_PRESTACION);

                                PRESTACION_HUMANA _PRESTACION_HUMANA = new PRESTACION_HUMANA();
                                _PRESTACION_HUMANA.PRESTACION = _PRESTACION;
                                _PRESTACION_HUMANA.NOMBRE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.NOMBRE;
                                _PRESTACION_HUMANA.TELEFONO = _CARGA_PRESTACIONES_HUMANAS_DETALLE.TELEFONO;
                                _PRESTACION_HUMANA.EDAD = _CARGA_PRESTACIONES_HUMANAS_DETALLE.EDAD;
                                _PRESTACION_HUMANA.RUT = _CARGA_PRESTACIONES_HUMANAS_DETALLE.RUT;
                                _PRESTACION_HUMANA.ACTIVO = true;
                                context.AddToPRESTACION_HUMANA(_PRESTACION_HUMANA);

                                foreach (CARGA_PRESTACIONES_HUMANAS_EXAMEN _CARGA_PRESTACIONES_HUMANAS_EXAMEN in _CARGA_PRESTACIONES_HUMANAS_DETALLE
                                    .CARGA_PRESTACIONES_HUMANAS_EXAMEN.Where(d => d.ACTIVO))
                                {
                                    PRESTACION_EXAMEN _PRESTACION_EXAMEN = new PRESTACION_EXAMEN();
                                    _PRESTACION_EXAMEN.PRESTACION = _PRESTACION;
                                    _PRESTACION_EXAMEN.EXAMEN = _CARGA_PRESTACIONES_HUMANAS_EXAMEN.EXAMEN;
                                    _PRESTACION_EXAMEN.VALOR = _CARGA_PRESTACIONES_HUMANAS_EXAMEN.VALOR_VALOR_EXAMEN;
                                    _PRESTACION_EXAMEN.ACTIVO = true;
                                    context.AddToPRESTACION_EXAMEN(_PRESTACION_EXAMEN);
                                }
                            }
                        }
                        else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias)
                        {
                            TIPO_PRESTACION _TIPO_PRESTACION = _RepositorioTIPO_PRESTACION.GetById((int)ENUM_TIPO_PRESTACION.Veterinarias);
                            if (_TIPO_PRESTACION == null)
                                throw new Exception("No se encuentra informacion de tipo de prestación veterinaria");

                            foreach (CARGA_PRESTACIONES_VETERINARIAS_DETALLE _CARGA_PRESTACIONES_VETERINARIAS_DETALLE in objEncabezado.CARGA_PRESTACIONES_VETERINARIAS_DETALLE
                                 .Where(d => d.ACTIVO && d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID == (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado))
                            {
                                if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.NOMBRE))
                                    throw new Exception("No se ha señalado nombre");
                                if (!_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA.HasValue)
                                    throw new Exception("No se ha señalado ingreso");
                                if (_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE1 == null)
                                    throw new Exception("No se ha identificado ESPECIE");
                                if (_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CLIENTE == null)
                                    throw new Exception("No se ha identificado al cliente");
                                if (!_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_TOTAL.HasValue)
                                    throw new Exception("No se ha señalado valor total de prestaciones");
                                if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SOLICITA))
                                    throw new Exception("No se ha señalado solicitante");
                                if (!_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_RECEPCION.HasValue)
                                    throw new Exception("Fecha de recepción debe tener valor");

                                PRESTACION _PRESTACION = new PRESTACION();
                                _PRESTACION.ID = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA.Value;
                                _PRESTACION.TIPO_PRESTACION = _TIPO_PRESTACION;
                                _PRESTACION.CLIENTE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CLIENTE;
                                _PRESTACION.GARANTIA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.GARANTIA1;
                                _PRESTACION.PENDIENTE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PENDIENTE;
                                _PRESTACION.RECEPCION = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RECEPCION;
                                _PRESTACION.MEDICO = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.MEDICO;
                                _PRESTACION.FECHA_RECEPCION = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_RECEPCION.Value;
                                _PRESTACION.PREVISION = null;
                                _PRESTACION.ACTIVO = true;

                                context.AddToPRESTACION(_PRESTACION);

                                PRESTACION_VETERINARIA _PRESTACION_VETERINARIA = new PRESTACION_VETERINARIA();
                                _PRESTACION_VETERINARIA.PRESTACION = _PRESTACION;
                                _PRESTACION_VETERINARIA.NOMBRE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.NOMBRE;
                                _PRESTACION_VETERINARIA.ESPECIE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE1;
                                _PRESTACION_VETERINARIA.RAZA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RAZA1;
                                _PRESTACION_VETERINARIA.SEXO = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SEXO;
                                _PRESTACION_VETERINARIA.EDAD = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.EDAD;
                                _PRESTACION_VETERINARIA.TELEFONO = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.TELEFONO;
                                _PRESTACION_VETERINARIA.PROCEDENCIA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PROCEDENCIA;
                                _PRESTACION_VETERINARIA.SOLICITANTE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SOLICITA;
                                _PRESTACION_VETERINARIA.FICHA_CLINICA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA_CLINICA;
                                _PRESTACION_VETERINARIA.ACTIVO = true;

                                context.AddToPRESTACION_VETERINARIA(_PRESTACION_VETERINARIA);

                                foreach (CARGA_PRESTACIONES_VETERINARIAS_EXAMEN _CARGA_PRESTACIONES_VETERINARIAS_EXAMEN in _CARGA_PRESTACIONES_VETERINARIAS_DETALLE
                                    .CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.Where(d => d.ACTIVO))
                                {
                                    PRESTACION_EXAMEN _PRESTACION_EXAMEN = new PRESTACION_EXAMEN();
                                    _PRESTACION_EXAMEN.PRESTACION = _PRESTACION;
                                    _PRESTACION_EXAMEN.EXAMEN = _CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.EXAMEN;
                                    _PRESTACION_EXAMEN.VALOR = _CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.VALOR_VALOR_EXAMEN;
                                    _PRESTACION_EXAMEN.ACTIVO = true;
                                    context.AddToPRESTACION_EXAMEN(_PRESTACION_EXAMEN);
                                }
                            }
                        }
                    }

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
Ejemplo n.º 9
0
        public void Delete(int Id)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ESTADO repositorio = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO            _CARGA_PRESTACIONES_ESTADO = repositorio.GetById(Id);

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

                    _CARGA_PRESTACIONES_ESTADO.ACTIVO = false;

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

                    //properties

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

                    //parents


                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
Ejemplo n.º 11
0
        public void Update(int Id, int CARGA_PRESTACIONES_ESTADOId, int TIPO_PRESTACIONId, System.DateTime FECHA_CARGA, string ARCHIVO)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ENCABEZADO repositorio = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context);
                    CARGA_PRESTACIONES_ENCABEZADO            _CARGA_PRESTACIONES_ENCABEZADO = repositorio.GetById(Id);
                    if (Equals(_CARGA_PRESTACIONES_ENCABEZADO, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ENCABEZADO con Id =", Id.ToString()));
                    }

                    RepositorioCARGA_PRESTACIONES_ESTADO _repositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO            _objCARGA_PRESTACIONES_ESTADO         = _repositorioCARGA_PRESTACIONES_ESTADO.GetById(CARGA_PRESTACIONES_ESTADOId);
                    if (Equals(_objCARGA_PRESTACIONES_ESTADO, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ESTADO con Id =", CARGA_PRESTACIONES_ESTADOId.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

                    _CARGA_PRESTACIONES_ENCABEZADO.FECHA_CARGA = FECHA_CARGA;
                    if (!string.IsNullOrEmpty(ARCHIVO))
                    {
                        _CARGA_PRESTACIONES_ENCABEZADO.ARCHIVO = ARCHIVO;
                    }

                    //parents

                    _CARGA_PRESTACIONES_ENCABEZADO.CARGA_PRESTACIONES_ESTADO = _objCARGA_PRESTACIONES_ESTADO;
                    _CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION           = _objTIPO_PRESTACION;

                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }
Ejemplo n.º 12
0
        public int Add(int CARGA_PRESTACIONES_ESTADOId, int TIPO_PRESTACIONId, System.DateTime FECHA_CARGA, string ARCHIVO)
        {
            Init();
            try
            {
                using (LQCEEntities context = new LQCEEntities())
                {
                    RepositorioCARGA_PRESTACIONES_ESTADO _repositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context);
                    CARGA_PRESTACIONES_ESTADO            _objCARGA_PRESTACIONES_ESTADO         = _repositorioCARGA_PRESTACIONES_ESTADO.GetById(CARGA_PRESTACIONES_ESTADOId);
                    if (Equals(_objCARGA_PRESTACIONES_ESTADO, null))
                    {
                        throw new Exception(String.Concat("No se ha encontrado CARGA_PRESTACIONES_ESTADO con Id =", CARGA_PRESTACIONES_ESTADOId.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()));
                    }

                    CARGA_PRESTACIONES_ENCABEZADO _CARGA_PRESTACIONES_ENCABEZADO = new CARGA_PRESTACIONES_ENCABEZADO();

                    //properties

                    _CARGA_PRESTACIONES_ENCABEZADO.FECHA_CARGA = FECHA_CARGA;
                    _CARGA_PRESTACIONES_ENCABEZADO.ARCHIVO     = ARCHIVO;
                    _CARGA_PRESTACIONES_ENCABEZADO.ACTIVO      = true;

                    //parents

                    _CARGA_PRESTACIONES_ENCABEZADO.CARGA_PRESTACIONES_ESTADO = _objCARGA_PRESTACIONES_ESTADO;
                    _CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION           = _objTIPO_PRESTACION;

                    context.AddObject("CARGA_PRESTACIONES_ENCABEZADO", _CARGA_PRESTACIONES_ENCABEZADO);
                    context.SaveChanges();

                    return(_CARGA_PRESTACIONES_ENCABEZADO.ID);
                }
            }
            catch (Exception ex)
            {
                ISException.RegisterExcepcion(ex);
                Error = ex.Message;
                throw ex;
            }
        }