public HttpResponseMessage ObtenerReporteExcel(EDCarguePerfil cargue) { HttpResponseMessage response = null; try { LNCargueDx logica = new LNCargueDx(); var archivo = logica.CargarPlantillaDx(cargue); if (archivo != null) { response = Request.CreateResponse <EDCarguePerfil>(HttpStatusCode.Created, archivo); return(response); } else { response = Request.CreateResponse(HttpStatusCode.ExpectationFailed); return(response); } } catch (Exception ex) { response = Request.CreateResponse(HttpStatusCode.InternalServerError); return(response); } }
/// <summary> /// Carga una hoja de excel y retorna un datatable con la información de la misma /// </summary> /// <param name="rutaArchivo"></param> /// <param name="nombreHoja"></param> /// <returns></returns> public EDCarguePerfil CargarArchivoPlanificacion(EDCarguePerfil cargue) { RegistraLog registraLog = new RegistraLog(); EDCarguePerfil edCargue = new EDCarguePerfil(); try { using (ExcelPackage package = new ExcelPackage(new FileInfo(cargue.path))) { var sheet = package.Workbook.Worksheets["PlantillaPerfilSocioDemografico"]; // bool validaEstruc = ValidarNombreColumnas(sheet); if (validaEstruc) { edCargue = ProcesarCargue(sheet, cargue); } else { edCargue.Message = "El cargue falló: Los nombres de las columnas de la plantilla fueron modificados."; } return(edCargue); } } catch (Exception ex) { registraLog.RegistrarError(typeof(LNCargue), string.Format("Error en el método CargarArchivoPerfil {0}: {1}", DateTime.Now, ex.StackTrace), ex); edCargue.Message = "El proceso falló: La estructura del archivo no es valida"; return(edCargue); } }
public bool ValidarDocumento(string documento, EDCarguePerfil cargue) { try { List <EDTipoDocumento> ListaDocumentos = lnausencia.ObtenerTipoDocumento(); if (!string.IsNullOrEmpty(documento)) { var esValido = false; foreach (var tdoc in ListaDocumentos) { var cliente = new RestSharp.RestClient(cargue.rutaServicio); var request = new RestRequest("wssst/afiliadoEmpresaActivo?", RestSharp.Method.GET); request.Parameters.Clear(); request.AddParameter("tpEm", cargue.SiglaTipoDocumentoEmpresa); request.AddParameter("docEm", cargue.NitEmpresa); request.AddParameter("tpAfiliado", tdoc.Sigla.ToLower()); request.AddParameter("docAfiliado", documento); request.AddHeader("Content-Type", "application/json"); request.AddHeader("Accept", "application/json"); ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); }; IRestResponse <List <EDPerfilSocioDemograficoWS> > response = cliente.Execute <List <EDPerfilSocioDemograficoWS> >(request); var result = response.Content; var respuesta = Newtonsoft.Json.JsonConvert.DeserializeObject <List <EDPerfilSocioDemograficoWS> >(result); var nitEmpresaU = ""; if (respuesta.Count != 0) { nitEmpresaU = respuesta[0].documentoEmp; } if (nitEmpresaU.Equals(nitEmpresa)) { esValido = true; break; } else { esValido = false; } } if (esValido) { return(true); } else { return(false); } } return(false); } catch (Exception e) { return(false); } }
public EDCarguePerfil CargarPlantillaDx(EDCarguePerfil cargueP) { RegistraLog registraLog = new RegistraLog(); EDCarguePerfil edCargue = new EDCarguePerfil(); try { edCargue = CargarArchivoDx(cargueP); } catch (Exception ex) { registraLog.RegistrarError(typeof(LNCargue), string.Format("Error en el método Cargar Plantilla Dx {0}: {1}", DateTime.Now, ex.StackTrace), ex); edCargue.Message = "El cargue fallo: la estructura del archivo no es valida"; return(edCargue); } return(edCargue); }
private EDCarguePerfil ProcesarCargue(ExcelWorksheet sheet, EDCarguePerfil cargue) { EDCarguePerfil edCargue = new EDCarguePerfil(); List <EDPerfilSocioDemografico> perfiles = new List <EDPerfilSocioDemografico>(); string mensaje = ""; string nFilaD = ""; string nFilaS = ""; string nFilaBla = ""; string nfilaRep = ""; string nfilaP = ""; string nfilaRPel = ""; string mensajeEspBlancos = "Existen campos en blanco, es obligatorio diligenciar todas las columnas hasta la columna W, la columna R(Cod Proceso) no es obligatoria , revisar la(s) fila(s)."; string mensajeDocumento = "Revisar la columna A(Número Identificación) ya que el documento no pertenece a la empresa,revisar la(s) fila(s)"; string mensajeSede = "Revisar la Columna s(CodSede) ya que la sede no pertenece a la empresa, revisar la(s) fila(s)"; string mensajeRepetidos = "No se pudo realizar el cargue, debido a que algunos perfiles a cargar ya existen, revisar la(s) fila(s)"; string mensajeProceso = "Revisar la Columna R(Cod Proceso) ya que el proceso no pertenece a la empresa, revisar la(s) fila(s)"; string mensajeRepetidosPlantilla = ""; string mensajeDescPeligros = "Revisar las descripciones de peligro, ya que se ha ingresado una descripción no valida, revisar la(s) fila(s)"; bool esValidoDescripcionPel = true; try { var dt = new DataTable(); var rowCnt = 0; rowCnt = sheet.Dimension.End.Row; bool noBlancos = true; bool esValidoPerfil = true; bool resu = false; bool documentoValido = false; //Verificamos los nombres de las columnas // Loop through Columns List <EDProceso> procesos = per.ObtenerProcesoEmpresa(cargue.NitEmpresa); List <EDSede> sedes = em.ObtenernerSedesPorEmpresa(cargue.NitEmpresa); for (var fila = 2; fila <= rowCnt; fila++) { esValidoDescripcionPel = true; string numeroIdentificacion; List <EDCondicionesRiesgoPerfil> condincionesRiesgo = new List <EDCondicionesRiesgoPerfil>(); EDCondicionesRiesgoPerfil condicionRiesgo = new EDCondicionesRiesgoPerfil(); EDPerfilSocioDemografico perfil = new EDPerfilSocioDemografico(); bool companeroPer = false; bool tieneHijos = false; if (sheet.Cells[fila, 1].Value != null) { if (sheet.Cells[fila, 1].Value == null || sheet.Cells[fila, 2].Value == null || sheet.Cells[fila, 3].Value == null || sheet.Cells[fila, 4].Value == null || sheet.Cells[fila, 5].Value == null || sheet.Cells[fila, 6].Value == null || sheet.Cells[fila, 7].Value == null || sheet.Cells[fila, 8].Value == null || sheet.Cells[fila, 9].Value == null || sheet.Cells[fila, 10].Value == null || sheet.Cells[fila, 11].Value == null || sheet.Cells[fila, 12].Value == null || sheet.Cells[fila, 13].Value == null || sheet.Cells[fila, 14].Value == null || sheet.Cells[fila, 15].Value == null || sheet.Cells[fila, 16].Value == null || sheet.Cells[fila, 17].Value == null || sheet.Cells[fila, 19].Value == null || sheet.Cells[fila, 20].Value == null || sheet.Cells[fila, 21].Value == null || sheet.Cells[fila, 22].Value == null || sheet.Cells[fila, 23].Value == null) { nFilaBla += " " + fila; esValidoPerfil = false; noBlancos = false; } if (noBlancos) { int?codProceso = null; numeroIdentificacion = sheet.Cells[fila, 1].Value.ToString(); string gradoEscolaridad = sheet.Cells[fila, 2].Value.ToString(); string ingresos = sheet.Cells[fila, 3].Value.ToString(); int municipioResidencia = int.Parse(sheet.Cells[fila, 44].Value.ToString()); string companeroPermanente = sheet.Cells[fila, 6].Value.ToString(); if (companeroPermanente.Equals("SI")) { companeroPer = true; } else { companeroPer = false; } string hijos = sheet.Cells[fila, 7].Value.ToString(); if (hijos.Equals("SI")) { tieneHijos = true; } else { tieneHijos = false; } int estratoSocioEconomico = int.Parse(sheet.Cells[fila, 8].Value.ToString()); int estadoCivil = int.Parse(sheet.Cells[fila, 45].Value.ToString()); int etnia = int.Parse(sheet.Cells[fila, 46].Value.ToString()); string sexo = sheet.Cells[fila, 11].Value.ToString(); int vinculacionLaboral = int.Parse(sheet.Cells[fila, 47].Value.ToString()); string turnoTrabajo = sheet.Cells[fila, 13].Value.ToString(); // DateTime fechaUltimoCargo = Convert.ToDateTime(sheet.Cells[fila, 14].Value.ToString()); DateTime fechaUltimoCargo = DateTime.FromOADate(double.Parse(sheet.Cells[fila, 43].Value.ToString())); string caracteristicasFisicas = sheet.Cells[fila, 15].Value.ToString(); string caracteristicasPsicologicas = sheet.Cells[fila, 16].Value.ToString(); string evaluacionMedicaRequerida = sheet.Cells[fila, 17].Value.ToString(); if (sheet.Cells[fila, 18].Value != null) { codProceso = int.Parse(sheet.Cells[fila, 18].Value.ToString()); } var Otro = "Otro"; int clasificacionPeligroA = 0; int sede = int.Parse(sheet.Cells[fila, 19].Value.ToString()); string zona = sheet.Cells[fila, 20].Value.ToString(); if (sheet.Cells[fila, 49].Value != "") { clasificacionPeligroA = int.Parse(sheet.Cells[fila, 49].Value.ToString()); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoPerfil = false; } string tiempoExposicionA = sheet.Cells[fila, 23].Value.ToString(); if (clasificacionPeligroA == 46) { condicionRiesgo.Otro = Otro; } condicionRiesgo.FK_Clasificacion_De_Peligro = clasificacionPeligroA; condicionRiesgo.tiempoExpos = tiempoExposicionA; condincionesRiesgo.Add(condicionRiesgo); EDCondicionesRiesgoPerfil condicionRiesgo2 = new EDCondicionesRiesgoPerfil(); if (sheet.Cells[fila, 25].Value != null && sheet.Cells[fila, 26].Value != null) { int clasificacionPeligroB = 0; if (sheet.Cells[fila, 50].Value != "") { clasificacionPeligroB = int.Parse(sheet.Cells[fila, 50].Value.ToString()); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoPerfil = false; } if (clasificacionPeligroB == 46) { condicionRiesgo2.Otro = Otro; } string tiempoExposicionB = sheet.Cells[fila, 26].Value.ToString(); condicionRiesgo2.FK_Clasificacion_De_Peligro = clasificacionPeligroB; condicionRiesgo2.tiempoExpos = tiempoExposicionB; condincionesRiesgo.Add(condicionRiesgo2); } EDCondicionesRiesgoPerfil condicionRiesgo3 = new EDCondicionesRiesgoPerfil(); if (sheet.Cells[fila, 28].Value != null && sheet.Cells[fila, 29].Value != null) { int clasificacionPeligroC = 0; if (sheet.Cells[fila, 51].Value != "") { clasificacionPeligroC = int.Parse(sheet.Cells[fila, 51].Value.ToString()); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoPerfil = false; } if (clasificacionPeligroC == 46) { condicionRiesgo3.Otro = Otro; } string tiempoExposicionC = sheet.Cells[fila, 29].Value.ToString(); condicionRiesgo3.FK_Clasificacion_De_Peligro = clasificacionPeligroC; condicionRiesgo3.tiempoExpos = tiempoExposicionC; condincionesRiesgo.Add(condicionRiesgo3); } documentoValido = ValidarDocumento(numeroIdentificacion, cargue); if (documentoValido == false) { nFilaD += " " + fila; esValidoPerfil = false; } //registros repetidos var perfilesdb = db.Tbl_PerfilSocioDemograficoPlanificacion.Where(e => e.PK_Numero_Documento_Empl.Equals(numeroIdentificacion)).FirstOrDefault(); if (perfilesdb != null) { nfilaRep += " " + fila; esValidoPerfil = false; } if (!sedes.Exists(s => s.IdSede == sede)) { nFilaS += " " + fila; esValidoPerfil = false; } if (codProceso > 0) { if (!procesos.Exists(p => p.Id_Proceso == codProceso)) { nfilaP += " " + fila; esValidoPerfil = false; } } if (esValidoDescripcionPel == false) { nfilaRPel += " " + fila; } if (esValidoPerfil) { perfil.condicionesRiesgo = condincionesRiesgo; perfil.PK_Numero_Documento_Empl = numeroIdentificacion; perfil.GradoEscolaridad = gradoEscolaridad; perfil.Ingresos = ingresos; perfil.Fk_Id_Municipio = municipioResidencia; perfil.Conyuge = companeroPer; perfil.Hijos = tieneHijos; perfil.FK_Estrato = estratoSocioEconomico; perfil.FK_Estado_Civil = estadoCivil; perfil.FK_Etnia = etnia; perfil.Sexo = sexo; perfil.FK_VinculacionLaboral = vinculacionLaboral; perfil.TurnoTrabajo = turnoTrabajo; perfil.FechaIngresoUltimoCargo = fechaUltimoCargo; perfil.caracteristicasFisicas = caracteristicasFisicas; perfil.caracteristicasPsicologicas = caracteristicasPsicologicas; perfil.evaluacionesMedicasRequeridas = evaluacionMedicaRequerida; perfil.Pk_Id_Sede = sede; perfil.Procesos = codProceso; perfil.ZonaLugar = zona; perfil.nitEmpresa = cargue.NitEmpresa; perfil.EDInfoAuditoria = cargue.EDInfoAuditoria; perfiles.Add(perfil); } } } else { break; } } //Listo aca va mensajes y resto string[] documento = new string[perfiles.Count()]; for (int i = 0; i < perfiles.Count(); i++) { documento[i] = Convert.ToString(perfiles[i].PK_Numero_Documento_Empl); } bool resultado = documento.Distinct().Count() == documento.Length; if (resultado == false) { mensajeRepetidosPlantilla = "Revisar la Columna A(Número Identificación) ya que existen registros repetidos" + "\n"; esValidoPerfil = false; } if (nfilaRep.Equals("")) { mensajeRepetidos = ""; } else { mensajeRepetidos += nfilaRep + "\n"; } if (nfilaRPel.Equals("")) { mensajeDescPeligros = ""; } else { mensajeDescPeligros += nfilaRPel + "\n"; } if (nFilaBla.Equals("")) { mensajeEspBlancos = ""; } else { mensajeEspBlancos += nFilaBla + "\n"; } if (nFilaD.Equals("")) { mensajeDocumento = ""; } else { mensajeDocumento += nFilaD + "\n"; } if (nFilaS.Equals("")) { mensajeSede = ""; } else { mensajeSede += nFilaS + "\n"; } if (nfilaP.Equals("")) { mensajeProceso = ""; } else { mensajeProceso += nfilaP + "\n"; } mensaje = mensajeRepetidosPlantilla + " " + mensajeRepetidos + " " + mensajeEspBlancos + " " + mensajeDocumento + " " + mensajeSede + mensajeProceso + " " + mensajeDescPeligros + " "; if (esValidoPerfil == false) { edCargue.Message = mensaje; return(edCargue); } if (esValidoPerfil == true) { resu = per.InsertarCargueMasivoPerfil(perfiles); } else { edCargue.Message = "No se puede realizar la carga,revise e intente de nuevo"; return(edCargue); } if (resu) { if (esValidoPerfil) { edCargue.Message = "OK"; } else { edCargue.Message = mensaje; } } else { edCargue.Message = "El proceso de cargue falló"; } } catch (Exception ex) { RegistraLog registraLog = new RegistraLog(); registraLog.RegistrarError(typeof(LNCarguePerfilSocioDemografico), string.Format("Error en el método WorksheetToDataTable {0}: {1}", DateTime.Now, ex.StackTrace), ex); edCargue.Message = "El proceso falló: revise la información y por favor intentelo de nuevo."; return(edCargue); } return(edCargue); }
public ActionResult CargueMasivo(object form_data) { try { var objEvaluacion = ObtenerUsuarioEnSesion(System.Web.HttpContext.Current); if (System.Web.HttpContext.Current.Request.Files.AllKeys.Any()) { var pic = System.Web.HttpContext.Current.Request.Files["cargarArchivo"]; HttpPostedFileBase file = new HttpPostedFileWrapper(pic); if (file.FileName.EndsWith("xls") || file.FileName.EndsWith("xlsx")) { var fileName = Path.GetFileName(file.FileName); string path = string.Empty; path = Path.Combine(rutaPlantillaAusentismo, objEvaluacion.NitEmpresa); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path = Path.Combine(path, fileName); if (System.IO.File.Exists(path)) { System.IO.File.Delete(path); } file.SaveAs(path); EDCarguePerfil cargue = new EDCarguePerfil(); cargue.path = path; cargue.NitEmpresa = objEvaluacion.NitEmpresa; EDInformacionAuditoria edInfoauditoria = new EDInformacionAuditoria()//Auditoria { IdentificacionUsuario = objEvaluacion.Documento, NombreUsuario = objEvaluacion.NombreUsuario, NitEmpresa = objEvaluacion.NitEmpresa, NombreEmpresa = objEvaluacion.RazonSocialEmpresa, IpUsuario = System.Web.HttpContext.Current.Request.Form["ipUsuario"].ToString() }; cargue.EDInfoAuditoria = edInfoauditoria; ServiceClient.EliminarParametros(); var result = ServiceClient.RealizarPeticionesPostJsonRestFul <EDCarguePerfil>(urlServicioPlanificacion, CapacidadCargarDx, cargue); if (result != null) { if (result.Message.Equals("OK")) { return(Json(new { Data = "Plantilla cargada correctamente!.", Mensaje = "Success" })); } else { return(Json(new { Data = result.Message, Mensaje = "ERROR" })); } } else { return(Json(new { Data = "Se presentó un error de comunicación con el servidor; por favor intente nuevamente o comuníquese con el administrador del sistema.", Mensaje = "ERROR" })); } } else { return(Json(new { Data = "Debe seleccionar un archivo en formato Excel con extensión .xls o .xlsx", Mensaje = "ERROR" })); } } else { return(Json(new { Data = "Se presentó un error en la carga del archivo; por favor intente ingresando nuevamente o comuníquese con el administrador del sistema.", Mensaje = "ERROR" })); } } catch (Exception e) { return(Json(new { Data = "Se presentó un error con la conexión.", Mensaje = "CONEXION" })); } }
private EDCarguePerfil ProcesarCargue(ExcelWorksheet sheet, EDCarguePerfil cargue) { EDCarguePerfil edCargue = new EDCarguePerfil(); List <EDDxSalud> diagnosticos = new List <EDDxSalud>(); bool resu = false; bool esValidoDx = true; bool noBlancos = true; string nFilaBla = ""; string nFilaS = ""; string nfilaP = ""; string nfilaT = ""; string nFilaPV = ""; string nfilaRPel = ""; string nfilaV = ""; string nFilaFr = ""; string nFilaNit = ""; string nFilaRango = ""; string nFilaCodDiag = ""; string mensajePlantillaVacia = "La plantilla ingresada no tiene datos"; string mensajeTamano = "El número de trabajadores no puede ser superior al total de trabajadores de la zona o lugar, revisar la(s) fila(s):"; string mensajeRangoFecha = "La fecha final no puede ser menor que la fecha inicial, revisar la(s) fila(s):"; string mensajeNitEmpresa = "El Nit ingresado no es válido, revisar la(s) fila(s):"; string mensajesFechas = "Las fechas final e inicial no pueden ser mayores a la fecha actual, revisar la(s) fila(s):"; string mensajeVigencia = "La vigencia seleccionada no puede ser superior al año actual, revisar la(s) fila(s):"; string mensajeSede = "Revisar la Columna E(Código de la Sede) ya que la sede no pertenece a la empresa, revisar la(s) fila(s):"; string mensajeEspBlancos = "Existen campos en blanco, es obligatorio diligenciar por lo menos un registro de cada grupo, los otros campos son obligatorios exceptuado G (Código del Proceso) , revisar la(s) fila(s):"; string mensajeProceso = "Revisar la Columna G (Código del Proceso) ya que el proceso no pertenece a la empresa, revisar la(s) fila(s):"; string mensajeCodDiagnostico = "El código de diagnóstico ingresado no es válido, revisar la(s) fila(s):"; string mensajeDescPeligros = "Revisar las descripciones de peligro, ya que se ha ingresado una descripción no valida, revisar la(s) fila(s)"; bool esValidoDescripcionPel = true; bool esValidoTrabajadores = true; string mensaje = ""; try { var dt = new DataTable(); var rowCnt = 0; rowCnt = sheet.Dimension.End.Row; //Verificamos los nombres de las columnas // Loop through Columns List <EDProceso> procesos = per.ObtenerProcesoEmpresa(cargue.NitEmpresa); List <EDSede> sedes = em.ObtenernerSedesPorEmpresa(cargue.NitEmpresa); for (var fila = 2; fila <= rowCnt; fila++) { esValidoTrabajadores = true; esValidoDescripcionPel = true; List <EDClasificacionPeligroDx> peligros = new List <EDClasificacionPeligroDx>(); List <EDSintomatologiaDx> sintomologias = new List <EDSintomatologiaDx>(); List <EDPruebasClinicasDx> pruebasClinicas = new List <EDPruebasClinicasDx>(); List <EDPruebasPClinicasDx> pruebasParaClinicas = new List <EDPruebasPClinicasDx>(); List <EDDiagnosticoCie10Dx> diagnosticosCie = new List <EDDiagnosticoCie10Dx>(); EDDxSalud diagnostico = new EDDxSalud(); //g string NumeroIdentificacion = sheet.Cells[fila, 1].Value.ToString(); if (sheet.Cells[fila, 1].Value != null) { if (sheet.Cells[fila, 1].Value == null || sheet.Cells[fila, 2].Value == null || sheet.Cells[fila, 3].Value == null || sheet.Cells[fila, 4].Value == null || sheet.Cells[fila, 5].Value == null || sheet.Cells[fila, 6].Value == null || sheet.Cells[fila, 8].Value == null || sheet.Cells[fila, 9].Value == null || sheet.Cells[fila, 10].Value == null || sheet.Cells[fila, 19].Value == null || sheet.Cells[fila, 20].Value == null || sheet.Cells[fila, 29].Value == null || sheet.Cells[fila, 30].Value == null || sheet.Cells[fila, 39].Value == null || sheet.Cells[fila, 40].Value == null || sheet.Cells[fila, 49].Value == null || sheet.Cells[fila, 50].Value == null || sheet.Cells[fila, 51].Value == null || sheet.Cells[fila, 64].Value == null || sheet.Cells[fila, 65].Value == null || sheet.Cells[fila, 66].Value == null ) { nFilaBla += " " + fila; esValidoDx = false; noBlancos = false; } if (noBlancos) { int?codProceso = null; // DateTime Fecha_Inicial_Dx = Convert.ToDateTime(sheet.Cells[fila, 2].Value.ToString()); // DateTime Fecha_Final_Dx = Convert.ToDateTime(sheet.Cells[fila, 3].Value.ToString()); DateTime Fecha_Inicial_Dx = DateTime.FromOADate(double.Parse(sheet.Cells[fila, 196].Value.ToString())); DateTime Fecha_Final_Dx = DateTime.FromOADate(double.Parse(sheet.Cells[fila, 197].Value.ToString())); DateTime FechaDx = DateTime.Now; var vigencia = int.Parse(sheet.Cells[fila, 4].Value.ToString()); var anyoActual = DateTime.Now.Year; var vigencia2 = 0; if (vigencia <= anyoActual) { vigencia2 = int.Parse(sheet.Cells[fila, 4].Value.ToString()); } else { nfilaV += " " + fila; esValidoDx = false; } if (Fecha_Inicial_Dx > DateTime.Now || Fecha_Final_Dx > DateTime.Now) { nFilaFr += " " + fila; esValidoDx = false; } if (Fecha_Inicial_Dx > Fecha_Final_Dx) { nFilaRango += " " + fila; esValidoDx = false; } var sede = int.Parse(sheet.Cells[fila, 5].Value.ToString()); var zona = sheet.Cells[fila, 6].Value.ToString(); var totalTraZonaLugar = int.Parse(sheet.Cells[fila, 8].Value.ToString()); var responsableInformacion = sheet.Cells[fila, 64].Value.ToString(); var Profesion_Responsable = sheet.Cells[fila, 65].Value.ToString(); var Tarjeta_Profesional = sheet.Cells[fila, 66].Value.ToString(); var nitEmpresa = sheet.Cells[fila, 1].Value.ToString(); if (sheet.Cells[fila, 7].Value != null) { codProceso = int.Parse(sheet.Cells[fila, 7].Value.ToString()); } if (!nitEmpresa.Equals(cargue.NitEmpresa)) { nFilaNit += " " + fila; esValidoDx = false; } EDClasificacionPeligroDx clasificacinPeligroA = new EDClasificacionPeligroDx(); if (sheet.Cells[fila, 9].Value != null && sheet.Cells[fila, 10].Value != null) { if (sheet.Cells[fila, 186].Value != "") { clasificacinPeligroA.idClasifiacionPeligro = int.Parse(sheet.Cells[fila, 186].Value.ToString()); peligros.Add(clasificacinPeligroA); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoDx = false; } } EDClasificacionPeligroDx clasificacinPeligroB = new EDClasificacionPeligroDx(); if (sheet.Cells[fila, 11].Value != null && sheet.Cells[fila, 12].Value != null) { if (sheet.Cells[fila, 187].Value != "") { clasificacinPeligroB.idClasifiacionPeligro = int.Parse(sheet.Cells[fila, 187].Value.ToString()); peligros.Add(clasificacinPeligroB); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoDx = false; } } EDClasificacionPeligroDx clasificacinPeligroC = new EDClasificacionPeligroDx(); if (sheet.Cells[fila, 13].Value != null && sheet.Cells[fila, 14].Value != null) { if (sheet.Cells[fila, 188].Value != "") { clasificacinPeligroC.idClasifiacionPeligro = int.Parse(sheet.Cells[fila, 188].Value.ToString()); peligros.Add(clasificacinPeligroC); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoDx = false; } } EDClasificacionPeligroDx clasificacinPeligroD = new EDClasificacionPeligroDx(); if (sheet.Cells[fila, 15].Value != null && sheet.Cells[fila, 16].Value != null) { if (sheet.Cells[fila, 189].Value != "") { clasificacinPeligroD.idClasifiacionPeligro = int.Parse(sheet.Cells[fila, 189].Value.ToString()); peligros.Add(clasificacinPeligroD); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoDx = false; } } EDClasificacionPeligroDx clasificacinPeligroE = new EDClasificacionPeligroDx(); if (sheet.Cells[fila, 17].Value != null && sheet.Cells[fila, 18].Value != null) { if (sheet.Cells[fila, 190].Value != "") { clasificacinPeligroE.idClasifiacionPeligro = int.Parse(sheet.Cells[fila, 190].Value.ToString()); peligros.Add(clasificacinPeligroE); } else { // nfilaRPel += " " + fila; esValidoDescripcionPel = false; esValidoDx = false; } } EDSintomatologiaDx sintomologiaA = new EDSintomatologiaDx(); if (sheet.Cells[fila, 19].Value != null && sheet.Cells[fila, 20].Value != null) { sintomologiaA.Trabajadores_Sintomatologia = int.Parse(sheet.Cells[fila, 20].Value.ToString()); sintomologiaA.Sintomatologia = sheet.Cells[fila, 19].Value.ToString(); if (sintomologiaA.Trabajadores_Sintomatologia <= totalTraZonaLugar) { sintomologias.Add(sintomologiaA); } else { // nfilaT += " " + fila; esValidoTrabajadores = false; esValidoDx = false; } } EDSintomatologiaDx sintomologiaB = new EDSintomatologiaDx(); if (sheet.Cells[fila, 21].Value != null && sheet.Cells[fila, 22].Value != null) { sintomologiaB.Sintomatologia = sheet.Cells[fila, 21].Value.ToString(); sintomologiaB.Trabajadores_Sintomatologia = int.Parse(sheet.Cells[fila, 22].Value.ToString()); if (sintomologiaB.Trabajadores_Sintomatologia <= totalTraZonaLugar) { sintomologias.Add(sintomologiaB); } else { // nfilaT += " " + fila; esValidoTrabajadores = false; esValidoDx = false; } } EDSintomatologiaDx sintomologiaC = new EDSintomatologiaDx(); if (sheet.Cells[fila, 23].Value != null && sheet.Cells[fila, 24].Value != null) { sintomologiaC.Sintomatologia = sheet.Cells[fila, 23].Value.ToString(); sintomologiaC.Trabajadores_Sintomatologia = int.Parse(sheet.Cells[fila, 24].Value.ToString()); if (sintomologiaC.Trabajadores_Sintomatologia <= totalTraZonaLugar) { sintomologias.Add(sintomologiaC); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDSintomatologiaDx sintomologiaD = new EDSintomatologiaDx(); if (sheet.Cells[fila, 25].Value != null && sheet.Cells[fila, 26].Value != null) { sintomologiaD.Sintomatologia = sheet.Cells[fila, 25].Value.ToString(); sintomologiaD.Trabajadores_Sintomatologia = int.Parse(sheet.Cells[fila, 26].Value.ToString()); if (sintomologiaD.Trabajadores_Sintomatologia <= totalTraZonaLugar) { sintomologias.Add(sintomologiaD); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDSintomatologiaDx sintomologiaE = new EDSintomatologiaDx(); if (sheet.Cells[fila, 27].Value != null && sheet.Cells[fila, 28].Value != null) { sintomologiaE.Sintomatologia = sheet.Cells[fila, 27].Value.ToString(); sintomologiaE.Trabajadores_Sintomatologia = int.Parse(sheet.Cells[fila, 28].Value.ToString()); if (sintomologiaE.Trabajadores_Sintomatologia <= totalTraZonaLugar) { sintomologias.Add(sintomologiaE); } else { esValidoTrabajadores = false; //nfilaT += " " + fila; esValidoDx = false; } } EDPruebasClinicasDx pruebaClinicaA = new EDPruebasClinicasDx(); if (sheet.Cells[fila, 29].Value != null && sheet.Cells[fila, 30].Value != null) { pruebaClinicaA.Prueba_Clinica = sheet.Cells[fila, 29].Value.ToString(); pruebaClinicaA.Trabajadores_Con_Prueba = int.Parse(sheet.Cells[fila, 30].Value.ToString()); if (pruebaClinicaA.Trabajadores_Con_Prueba <= totalTraZonaLugar) { pruebasClinicas.Add(pruebaClinicaA); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasClinicasDx pruebaClinicaB = new EDPruebasClinicasDx(); if (sheet.Cells[fila, 31].Value != null && sheet.Cells[fila, 32].Value != null) { pruebaClinicaB.Prueba_Clinica = sheet.Cells[fila, 31].Value.ToString(); pruebaClinicaB.Trabajadores_Con_Prueba = int.Parse(sheet.Cells[fila, 32].Value.ToString()); if (pruebaClinicaB.Trabajadores_Con_Prueba <= totalTraZonaLugar) { pruebasClinicas.Add(pruebaClinicaB); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasClinicasDx pruebaClinicaC = new EDPruebasClinicasDx(); if (sheet.Cells[fila, 33].Value != null && sheet.Cells[fila, 34].Value != null) { pruebaClinicaC.Prueba_Clinica = sheet.Cells[fila, 33].Value.ToString(); pruebaClinicaC.Trabajadores_Con_Prueba = int.Parse(sheet.Cells[fila, 34].Value.ToString()); if (pruebaClinicaC.Trabajadores_Con_Prueba <= totalTraZonaLugar) { pruebasClinicas.Add(pruebaClinicaC); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasClinicasDx pruebaClinicaD = new EDPruebasClinicasDx(); if (sheet.Cells[fila, 35].Value != null && sheet.Cells[fila, 36].Value != null) { pruebaClinicaD.Prueba_Clinica = sheet.Cells[fila, 35].Value.ToString(); pruebaClinicaD.Trabajadores_Con_Prueba = int.Parse(sheet.Cells[fila, 36].Value.ToString()); if (pruebaClinicaD.Trabajadores_Con_Prueba <= totalTraZonaLugar) { pruebasClinicas.Add(pruebaClinicaD); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasClinicasDx pruebaClinicaE = new EDPruebasClinicasDx(); if (sheet.Cells[fila, 37].Value != null && sheet.Cells[fila, 38].Value != null) { pruebaClinicaE.Prueba_Clinica = sheet.Cells[fila, 37].Value.ToString(); pruebaClinicaE.Trabajadores_Con_Prueba = int.Parse(sheet.Cells[fila, 38].Value.ToString()); if (pruebaClinicaE.Trabajadores_Con_Prueba <= totalTraZonaLugar) { pruebasClinicas.Add(pruebaClinicaE); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasPClinicasDx pruebaParaClinicaA = new EDPruebasPClinicasDx(); if (sheet.Cells[fila, 39].Value != null && sheet.Cells[fila, 40].Value != null) { pruebaParaClinicaA.Prueba_P_Clinica = sheet.Cells[fila, 39].Value.ToString(); pruebaParaClinicaA.Trabajadores_Con_Prueba_P = int.Parse(sheet.Cells[fila, 40].Value.ToString()); if (pruebaParaClinicaA.Trabajadores_Con_Prueba_P <= totalTraZonaLugar) { pruebasParaClinicas.Add(pruebaParaClinicaA); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasPClinicasDx pruebaParaClinicaB = new EDPruebasPClinicasDx(); if (sheet.Cells[fila, 41].Value != null && sheet.Cells[fila, 42].Value != null) { pruebaParaClinicaB.Prueba_P_Clinica = sheet.Cells[fila, 41].Value.ToString(); pruebaParaClinicaB.Trabajadores_Con_Prueba_P = int.Parse(sheet.Cells[fila, 42].Value.ToString()); if (pruebaParaClinicaB.Trabajadores_Con_Prueba_P <= totalTraZonaLugar) { pruebasParaClinicas.Add(pruebaParaClinicaB); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasPClinicasDx pruebaParaClinicaC = new EDPruebasPClinicasDx(); if (sheet.Cells[fila, 43].Value != null && sheet.Cells[fila, 44].Value != null) { pruebaParaClinicaC.Prueba_P_Clinica = sheet.Cells[fila, 43].Value.ToString(); pruebaParaClinicaC.Trabajadores_Con_Prueba_P = int.Parse(sheet.Cells[fila, 44].Value.ToString()); if (pruebaParaClinicaC.Trabajadores_Con_Prueba_P <= totalTraZonaLugar) { pruebasParaClinicas.Add(pruebaParaClinicaC); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasPClinicasDx pruebaParaClinicaD = new EDPruebasPClinicasDx(); if (sheet.Cells[fila, 45].Value != null && sheet.Cells[fila, 46].Value != null) { pruebaParaClinicaD.Prueba_P_Clinica = sheet.Cells[fila, 45].Value.ToString(); pruebaParaClinicaD.Trabajadores_Con_Prueba_P = int.Parse(sheet.Cells[fila, 46].Value.ToString()); if (pruebaParaClinicaD.Trabajadores_Con_Prueba_P <= totalTraZonaLugar) { pruebasParaClinicas.Add(pruebaParaClinicaD); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDPruebasPClinicasDx pruebaParaClinicaE = new EDPruebasPClinicasDx(); if (sheet.Cells[fila, 47].Value != null && sheet.Cells[fila, 48].Value != null) { pruebaParaClinicaE.Prueba_P_Clinica = sheet.Cells[fila, 47].Value.ToString(); pruebaParaClinicaE.Trabajadores_Con_Prueba_P = int.Parse(sheet.Cells[fila, 48].Value.ToString()); pruebaParaClinicaD.Trabajadores_Con_Prueba_P = int.Parse(sheet.Cells[fila, 46].Value.ToString()); if (pruebaParaClinicaE.Trabajadores_Con_Prueba_P <= totalTraZonaLugar) { pruebasParaClinicas.Add(pruebaParaClinicaE); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } EDDiagnosticoCie10Dx diagnosticoCIE100A = new EDDiagnosticoCie10Dx(); if (sheet.Cells[fila, 49].Value != null && sheet.Cells[fila, 51].Value != null) { var valDiagnostic = sheet.Cells[fila, 50].Value.ToString(); if (!valDiagnostic.Equals("NO ES VÁLIDO")) { diagnosticoCIE100A.IdDiagnostico = int.Parse(sheet.Cells[fila, 191].Value.ToString()); diagnosticoCIE100A.NumeroTrabajadoresConDiagnostico = int.Parse(sheet.Cells[fila, 51].Value.ToString()); if (diagnosticoCIE100A.NumeroTrabajadoresConDiagnostico <= totalTraZonaLugar) { diagnosticosCie.Add(diagnosticoCIE100A); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } else { nFilaCodDiag += " " + fila; esValidoDx = false; } } EDDiagnosticoCie10Dx diagnosticoCIE100B = new EDDiagnosticoCie10Dx(); if (sheet.Cells[fila, 52].Value != null && sheet.Cells[fila, 54].Value != null) { var valDiagnostic = sheet.Cells[fila, 53].Value.ToString(); if (!valDiagnostic.Equals("NO ES VÁLIDO")) { diagnosticoCIE100B.IdDiagnostico = int.Parse(sheet.Cells[fila, 192].Value.ToString()); diagnosticoCIE100B.NumeroTrabajadoresConDiagnostico = int.Parse(sheet.Cells[fila, 54].Value.ToString()); if (diagnosticoCIE100B.NumeroTrabajadoresConDiagnostico <= totalTraZonaLugar) { diagnosticosCie.Add(diagnosticoCIE100B); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } else { nFilaCodDiag += " " + fila; esValidoDx = false; } } EDDiagnosticoCie10Dx diagnosticoCIE100C = new EDDiagnosticoCie10Dx(); if (sheet.Cells[fila, 55].Value != null && sheet.Cells[fila, 57].Value != null) { var valDiagnostic = sheet.Cells[fila, 56].Value.ToString(); if (!valDiagnostic.Equals("NO ES VÁLIDO")) { diagnosticoCIE100C.IdDiagnostico = int.Parse(sheet.Cells[fila, 193].Value.ToString()); diagnosticoCIE100C.NumeroTrabajadoresConDiagnostico = int.Parse(sheet.Cells[fila, 57].Value.ToString()); if (diagnosticoCIE100C.NumeroTrabajadoresConDiagnostico <= totalTraZonaLugar) { diagnosticosCie.Add(diagnosticoCIE100C); } else { // nfilaT += " " + fila; esValidoTrabajadores = false; esValidoDx = false; } } else { nFilaCodDiag += " " + fila; esValidoDx = false; } } EDDiagnosticoCie10Dx diagnosticoCIE100D = new EDDiagnosticoCie10Dx(); if (sheet.Cells[fila, 58].Value != null && sheet.Cells[fila, 60].Value != null) { var valDiagnostic = sheet.Cells[fila, 59].Value.ToString(); if (!valDiagnostic.Equals("NO ES VÁLIDO")) { diagnosticoCIE100D.IdDiagnostico = int.Parse(sheet.Cells[fila, 194].Value.ToString()); diagnosticoCIE100D.NumeroTrabajadoresConDiagnostico = int.Parse(sheet.Cells[fila, 60].Value.ToString()); if (diagnosticoCIE100D.NumeroTrabajadoresConDiagnostico <= totalTraZonaLugar) { diagnosticosCie.Add(diagnosticoCIE100D); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } else { nFilaCodDiag += " " + fila; esValidoDx = false; } } EDDiagnosticoCie10Dx diagnosticoCIE100E = new EDDiagnosticoCie10Dx(); if (sheet.Cells[fila, 61].Value != null && sheet.Cells[fila, 63].Value != null) { var valDiagnostic = sheet.Cells[fila, 62].Value.ToString(); if (!valDiagnostic.Equals("NO ES VÁLIDO")) { diagnosticoCIE100E.IdDiagnostico = int.Parse(sheet.Cells[fila, 195].Value.ToString()); diagnosticoCIE100E.NumeroTrabajadoresConDiagnostico = int.Parse(sheet.Cells[fila, 63].Value.ToString()); if (diagnosticoCIE100E.NumeroTrabajadoresConDiagnostico <= totalTraZonaLugar) { diagnosticosCie.Add(diagnosticoCIE100E); } else { esValidoTrabajadores = false; // nfilaT += " " + fila; esValidoDx = false; } } else { nFilaCodDiag += " " + fila; esValidoDx = false; } } if (!sedes.Exists(s => s.IdSede == sede)) { nFilaS += " " + fila; esValidoDx = false; } if (codProceso > 0) { if (!procesos.Exists(p => p.Id_Proceso == codProceso)) { nfilaP += " " + fila; esValidoDx = false; } } if (esValidoTrabajadores == false) { nfilaT += " " + fila; } if (esValidoDescripcionPel == false) { nfilaRPel += " " + fila; } if (esValidoDx) { diagnostico.nitEmpresa = nitEmpresa; diagnostico.ZonaLugar = zona; diagnostico.Fecha_Inicial_Dx = Fecha_Inicial_Dx; diagnostico.Fecha_Final_Dx = Fecha_Final_Dx; diagnostico.vigencia = vigencia2; diagnostico.Pk_Id_Sede = sede; diagnostico.Procesos = codProceso; diagnostico.NumeroTrabajadoresLugar = totalTraZonaLugar; diagnostico.Responsable_informacion = responsableInformacion; diagnostico.Profesion_Responsable = Profesion_Responsable; diagnostico.Tarjeta_Profesional = Tarjeta_Profesional; diagnostico.EDClasificacionPeligroDx = peligros; diagnostico.EDSintomatologiaDx = sintomologias; diagnostico.EDPruebasClinicasDx = pruebasClinicas; diagnostico.EDPruebasPClinicasDx = pruebasParaClinicas; diagnostico.EDDiagnosticoCie10Dx = diagnosticosCie; diagnostico.FechaCreacionDiagnostico = FechaDx; diagnostico.EDInfoAuditoria = cargue.EDInfoAuditoria; diagnosticos.Add(diagnostico); } } } else { if (fila == 2) { nFilaPV += "" + fila; esValidoDx = false; } break; } } //Listo aca va mensajes y resto if (nFilaPV.Equals("")) { mensajePlantillaVacia = ""; } else { mensajePlantillaVacia += "\n"; } if (nFilaBla.Equals("")) { mensajeEspBlancos = ""; } else { mensajeEspBlancos += nFilaBla + "\n"; } if (nFilaS.Equals("")) { mensajeSede = ""; } else { mensajeSede += nFilaS + "\n"; } if (nfilaP.Equals("")) { mensajeProceso = ""; } else { mensajeProceso += nfilaP + "\n"; } if (nfilaV.Equals("")) { mensajeVigencia = ""; } else { mensajeVigencia += nfilaV + "\n"; } if (nfilaT.Equals("")) { mensajeTamano = ""; } else { mensajeTamano += nfilaT + "\n"; } if (nFilaRango.Equals("")) { mensajeRangoFecha = ""; } else { mensajeRangoFecha += nFilaRango + "\n"; } if (nFilaFr.Equals("")) { mensajesFechas = ""; } else { mensajesFechas += nFilaFr + "\n"; } if (nFilaNit.Equals("")) { mensajeNitEmpresa = ""; } else { mensajeNitEmpresa += nFilaNit + "\n"; } if (nFilaCodDiag.Equals("")) { mensajeCodDiagnostico = ""; } else { mensajeCodDiagnostico += nFilaCodDiag + "\n"; } if (nfilaRPel.Equals("")) { mensajeDescPeligros = ""; } else { mensajeDescPeligros += nfilaRPel + "\n"; } mensaje = mensajePlantillaVacia + " " + mensajeEspBlancos + " " + mensajeSede + mensajeProceso + " " + mensajeVigencia + " " + mensajeTamano + " " + mensajeRangoFecha + " " + mensajesFechas + " " + mensajeNitEmpresa + " " + mensajeCodDiagnostico + " " + mensajeDescPeligros + " "; if (esValidoDx == false) { edCargue.Message = mensaje; return(edCargue); } if (esValidoDx == true) { resu = dia.InsertarCargueMasivoDx(diagnosticos); } else { edCargue.Message = "No se puede realizar la carga,revise e intente de nuevo"; return(edCargue); } if (resu) { if (esValidoDx) { edCargue.Message = "OK"; } else { edCargue.Message = mensaje; } } else { edCargue.Message = "El proceso de cargue falló"; } } catch (Exception ex) { RegistraLog registraLog = new RegistraLog(); registraLog.RegistrarError(typeof(LNCarguePerfilSocioDemografico), string.Format("Error en el método WorksheetToDataTable {0}: {1}", DateTime.Now, ex.StackTrace), ex); edCargue.Message = "El proceso falló: revise la información y por favor intentelo de nuevo."; return(edCargue); } return(edCargue); }