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 List<EXAMEN_SINONIMO> GetByFilterWithReferences(int? EXAMENId = null, string NOMBRE = "") { Init(); try { using (LQCEEntities context = new LQCEEntities()) { RepositorioEXAMEN_SINONIMO repositorio = new RepositorioEXAMEN_SINONIMO(context); return repositorio.GetByFilterWithReferences(EXAMENId, NOMBRE).OrderBy(i => i.ID).ToList(); } } catch (Exception ex) { ISException.RegisterExcepcion(ex); Error = ex.Message; throw ex; } }