public byte[] GenerarPDFEntrevistaRetiro(Decimal ID_EMPLEADO, Decimal ID_SOLICITUD, Decimal ID_EMPRESA) { String USULOG_ENTREVISTA = Session["USU_LOG"].ToString(); tools _tools = new tools(); // OBTENEMOS INFORMACION DE USUARIO usuario _usuario = new usuario(Session["idEmpresa"].ToString()); DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(USULOG_ENTREVISTA); //ACA VA ES EL DE LA ENTREVISTA DataRow filaUsuario = tablaUsuario.Rows[0]; String NOMBRE_DILIGENCIA = ""; if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA") { NOMBRE_DILIGENCIA = filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim(); } else { NOMBRE_DILIGENCIA = filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim(); } //OBTENEMOS LA INFORMACION DEL CLIENTE cliente _cliente = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaCliente = _cliente.ObtenerEmpresaConIdEmpresa(ID_EMPRESA); DataRow filaCliente = tablaCliente.Rows[0]; String RAZ_SOCIAL = filaCliente["RAZ_SOCIAL"].ToString().Trim(); String NIT_EMPRESA = filaCliente["NIT_EMPRESA"].ToString().Trim() + "-" + filaCliente["DIG_VER"].ToString().Trim(); String DIR_EMPRESA = filaCliente["DIR_EMP"].ToString().Trim() + " " + filaCliente["ID_CIUDAD_EMPRESA"].ToString().Trim(); //OBTENEMOS LA INFORMACION DE LA SOLICITUD DE INGRESO radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD)); DataRow filaSolicitud = tablaSolicitud.Rows[0]; String NOMBRE_ASPIRANTE = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim(); String DOC_IDENTIDAD_ASPIRANTE = filaSolicitud["TIP_DOC_IDENTIDAD"].ToString().Trim() + " " + filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim(); int EDAD_ASPIRANTE = 0; if (DBNull.Value.Equals(filaSolicitud["FCH_NACIMIENTO"]) == false) { try { EDAD_ASPIRANTE = _tools.ObtenerEdadDesdeFechaNacimiento(Convert.ToDateTime(filaSolicitud["FCH_NACIMIENTO"])); } catch { EDAD_ASPIRANTE = 0; } } String DIRECCION_ASPIRANTE = filaSolicitud["DIR_ASPIRANTE"].ToString().Trim(); String CIUDAD_ASPIRANTE = filaSolicitud["NOMBRE_CIUDAD"].ToString().Trim(); String SECTOR_ASPIRANTE = filaSolicitud["SECTOR"].ToString(); String TELEFONOS_ASPIRANTE = filaSolicitud["TEL_ASPIRANTE"].ToString(); String EMAIL_ASPIRANTE = filaSolicitud["E_MAIL"].ToString().Trim(); //DATOS DEL MOTIVO DE RETIRO MotivoRotacionRetiro _motivo = new MotivoRotacionRetiro(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaResultadosEntrevista = _motivo.ObtenerResultadosEntrevistaDeRetiroParaEmpleado(ID_EMPLEADO); //CREAMOS LA TABLA DE MOTIVOS DE RETIRO Boolean yaSeTieneObservaciones = false; String OBSERVACIONES = null; String html_tabla_motivos = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"95%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">"; html_tabla_motivos += "<tr>"; html_tabla_motivos += "<td width=\"50%\" style=\"text-align:center;\">"; html_tabla_motivos += "CATEGORÍA"; html_tabla_motivos += "</td>"; html_tabla_motivos += "<td width=\"50%\" style=\"text-align:center;\">"; html_tabla_motivos += "MOTIVO"; html_tabla_motivos += "</td>"; html_tabla_motivos += "</tr>"; foreach (DataRow filaMotivo in tablaResultadosEntrevista.Rows) { if (yaSeTieneObservaciones == false) { //SOLO UNA VEZ OBSERVACIONES = filaMotivo["OBSERVACIONES"].ToString().Trim(); yaSeTieneObservaciones = true; } Decimal ID_DETALLE_ROTACION_EMPLEADO = Convert.ToDecimal(filaMotivo["ID_DETALLE_ROTACION_EMPLEADO"]); Decimal ID_MAESTRA_ROTACION_EMPLEADO = Convert.ToDecimal(filaMotivo["ID_MAESTRA_ROTACION_EMPLEADO"]); Decimal ID_ROTACION_EMPRESA = Convert.ToDecimal(filaMotivo["ID_ROTACION_EMPRESA"]); //OBTENEMOS DATOS COMPLEMENTARIOS POR MEDIO DE ID_ROTACION_EMPRESA DataTable tablaInfoComplementaria = _motivo.ObtenerMotivoEmpresaPorId(ID_ROTACION_EMPRESA); DataRow filaInfoComplementaria = tablaInfoComplementaria.Rows[0]; html_tabla_motivos += "<tr>"; html_tabla_motivos += "<td width=\"50%\" style=\"text-align:justify;\">"; html_tabla_motivos += filaInfoComplementaria["TITULO_MAESTRA_ROTACION"]; html_tabla_motivos += "</td>"; html_tabla_motivos += "<td width=\"50%\" style=\"text-align:justify;\">"; html_tabla_motivos += filaInfoComplementaria["TITULO"]; html_tabla_motivos += "</td>"; html_tabla_motivos += "</tr>"; } html_tabla_motivos += "</table>"; /* * Generación del archi de informe de entrevista de retiro * Stream con el contenido del pdf. */ String html_encabezado = "<html>"; html_encabezado += "<head>"; html_encabezado += "</head>"; html_encabezado += "<body>"; String html_pie = "</body>"; html_pie += "</html>"; //En esta variable cargamos el documento plantilla StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\entrevista_retiro.htm")); String html_formato_entrevista = html_encabezado + archivo_original.ReadToEnd(); archivo_original.Dispose(); archivo_original.Close(); html_formato_entrevista = html_formato_entrevista.Replace("[RAZ_SOCIAL]", RAZ_SOCIAL); html_formato_entrevista = html_formato_entrevista.Replace("[NIT_EMPRESA]", NIT_EMPRESA); html_formato_entrevista = html_formato_entrevista.Replace("[DIR_EMPRESA]", DIR_EMPRESA); html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_ASPIRANTE]", NOMBRE_ASPIRANTE); html_formato_entrevista = html_formato_entrevista.Replace("[DOC_IDENTIDAD_ASPIRANTE]", DOC_IDENTIDAD_ASPIRANTE); if (EDAD_ASPIRANTE > 0) { html_formato_entrevista = html_formato_entrevista.Replace("[EDAD_ASPIRANTE]", EDAD_ASPIRANTE.ToString() + " Años."); } else { html_formato_entrevista = html_formato_entrevista.Replace("[EDAD_ASPIRANTE]", "Desconocida."); } html_formato_entrevista = html_formato_entrevista.Replace("[DIRECCION_ASPIRANTE]", DIRECCION_ASPIRANTE); html_formato_entrevista = html_formato_entrevista.Replace("[CIUDAD_ASPIRANTE]", CIUDAD_ASPIRANTE); html_formato_entrevista = html_formato_entrevista.Replace("[SECTOR_ASPIRANTE]", SECTOR_ASPIRANTE); html_formato_entrevista = html_formato_entrevista.Replace("[TELEFONOS_ASPIRANTE]", TELEFONOS_ASPIRANTE); html_formato_entrevista = html_formato_entrevista.Replace("[EMAIL_ASPIRANTE]", EMAIL_ASPIRANTE); html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_MOTIVOS_RETIRO]", html_tabla_motivos); html_formato_entrevista = html_formato_entrevista.Replace("[OBSERVACIONES]", OBSERVACIONES); html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_DILIGENCIA]", NOMBRE_DILIGENCIA); html_formato_entrevista += html_pie; //creamos un configuramos el documento de pdf //(tamaño de la hoja,margen izq, margen der, margin arriba margen abajo) iTextSharp.text.Document document = new iTextSharp.text.Document(new Rectangle(595, 842), 50, 50, 80, 45); using (MemoryStream streamArchivo = new MemoryStream()) { iTextSharp.text.pdf.PdfWriter writer = PdfWriter.GetInstance(document, streamArchivo); // Our custom Header and Footer is done using Event Handler pdfEvents PageEventHandler = new pdfEvents(); writer.PageEvent = PageEventHandler; // Define the page header // Define the page header if (Session["idEmpresa"].ToString() == "1") { PageEventHandler.dirImagenHeader = Server.MapPath("~/imagenes/reportes/logo_sertempo.png"); } else { PageEventHandler.dirImagenHeader = Server.MapPath("~/imagenes/reportes/logo_eficiencia.png"); } PageEventHandler.fechaImpresion = DateTime.Now; PageEventHandler.tipoDocumento = "entrevista_retiro"; document.Open(); //capturamos el archivo temporal del response String tempFile = Path.GetTempFileName(); //y lo llenamos con el html de la plantilla using (StreamWriter tempwriter = new StreamWriter(tempFile, false)) { tempwriter.Write(html_formato_entrevista); } //leeemos el archivo temporal y lo colocamos en el documento de pdf List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StreamReader(tempFile), new StyleSheet()); foreach (IElement element in htmlarraylist) { if (element.Chunks.Count > 0) { if (element.Chunks[0].Content == "linea para paginacion de pdf") { document.NewPage(); } else { document.Add(element); } } else { document.Add(element); } } //limpiamos todo document.Close(); writer.Close(); return streamArchivo.ToArray(); } }
private void Cargar(Decimal ID_SOLICITUD, Decimal ID_EMPLEADO, Decimal ID_EMPRESA, Decimal REGISTRO_CONTRATO) { HiddenField_ID_SOLICITUD.Value = ID_SOLICITUD.ToString(); HiddenField_ID_EMPLEADO.Value = ID_EMPLEADO.ToString(); HiddenField_ID_EMPRESA.Value = ID_EMPRESA.ToString(); HiddenField_REGISTRO_CONTRATO.Value = REGISTRO_CONTRATO.ToString(); radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaInfoTrabajador = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD)); cliente _cliente = new cliente(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaCliente = _cliente.ObtenerEmpresaConIdEmpresa(ID_EMPRESA); if (tablaInfoTrabajador.Rows.Count <= 0) { if (_radicacionHojasDeVida.MensajeError != null) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _radicacionHojasDeVida.MensajeError, Proceso.Error); } else { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información del Trabajador Seleciconado.", Proceso.Advertencia); } } else { if (tablaCliente.Rows.Count <= 0) { if (_cliente.MensajeError != null) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _cliente.MensajeError, Proceso.Error); } else { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontró información de la Empresa asociada al trabajador.", Proceso.Advertencia); } } else { DataRow filainfoCliente = tablaCliente.Rows[0]; cargarInfoTrabajador(tablaInfoTrabajador.Rows[0], filainfoCliente); MotivoRotacionRetiro _motivo = new MotivoRotacionRetiro(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaMotivosAsociadosAEmpresa = _motivo.ObtenerMotivosActivosEmpresa(ID_EMPRESA); if (tablaMotivosAsociadosAEmpresa.Rows.Count <= 0) { if (_motivo.MensajeError != null) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _motivo.MensajeError, Proceso.Error); } else { Ocultar(Acciones.Inicio); Desactivar(Acciones.Inicio); Mostrar(Acciones.Inicio); Cargar(Acciones.Inicio); Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La empresa no tiene Motivos de Rotación y Retiros asociados.", Proceso.Advertencia); } } else { _motivo.MensajeError = null; Boolean correcto = true; DataTable tablaResultadosEntrevistaRetiro = _motivo.ObtenerResultadosEntrevistaDeRetiroParaEmpleado(ID_EMPLEADO); if (tablaResultadosEntrevistaRetiro.Rows.Count <= 0) { if (_motivo.MensajeError != null) { if (_motivo.MensajeError != null) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _motivo.MensajeError, Proceso.Error); correcto = false; } } } if (correcto == true) { DataTable tablaparaGrilla = configurarTablaParaGrillaMotivos(); Boolean idEncontrado = false; Int32 contadorResultados = 0; for (int i = 0; i < tablaMotivosAsociadosAEmpresa.Rows.Count; i++) { idEncontrado = false; DataRow filaMotivo = tablaMotivosAsociadosAEmpresa.Rows[i]; DataRow filaParaGrilla = tablaparaGrilla.NewRow(); filaParaGrilla["ID_MAESTRA_ROTACION"] = filaMotivo["ID_MAESTRA_ROTACION"]; filaParaGrilla["ID_DETALLE_ROTACION"] = filaMotivo["ID_DETALLE_ROTACION"]; filaParaGrilla["ID_ROTACION_EMPRESA"] = filaMotivo["ID_ROTACION_EMPRESA"]; filaParaGrilla["TITULO"] = filaMotivo["TITULO"]; filaParaGrilla["TITULO_MAESTRA_ROTACION"] = filaMotivo["TITULO_MAESTRA_ROTACION"]; Decimal ID_ROTACION_EMPRESA_1 = Convert.ToDecimal(filaMotivo["ID_ROTACION_EMPRESA"]); Decimal ID_DETALLE_ROTACION_EMPLEADO = 0; for(int j = 0; j < tablaResultadosEntrevistaRetiro.Rows.Count; j++) { DataRow filaResultado = tablaResultadosEntrevistaRetiro.Rows[j]; Decimal ID_ROTACION_EMPRESA_2 = Convert.ToDecimal(filaResultado["ID_ROTACION_EMPRESA"]); if(ID_ROTACION_EMPRESA_1 == ID_ROTACION_EMPRESA_2) { contadorResultados += 1; ID_DETALLE_ROTACION_EMPLEADO = Convert.ToDecimal(filaResultado["ID_DETALLE_ROTACION_EMPLEADO"]); idEncontrado = true; if (contadorResultados == 1) { HiddenField_ID_MAESTRA_ENTREVISTA_EMPLEADO.Value = filaResultado["ID_MAESTRA_ROTACION_EMPLEADO"].ToString().Trim(); TextBox_Observaciones.Text = filaResultado["OBSERVACIONES"].ToString().Trim(); } break; } } if(idEncontrado == true) { filaParaGrilla["ID_DETALLE_ROTACION_EMPLEADO"] = ID_DETALLE_ROTACION_EMPLEADO; } else { filaParaGrilla["ID_DETALLE_ROTACION_EMPLEADO"] = 0; } tablaparaGrilla.Rows.Add(filaParaGrilla); } CargarGrillaMotivosRotacionDesdeTabla(tablaparaGrilla); Ocultar(Acciones.Inicio); if (contadorResultados <= 0) { Mostrar(Acciones.Nuevo); Activar(Acciones.Nuevo); Limpiar(Acciones.Nuevo); habilitarFilasGrilla(GridView_MotivosRotacion, 0); } else { Mostrar(Acciones.Cargar); Desactivar(Acciones.Cargar); inhabilitarFilasGrilla(GridView_MotivosRotacion, 0); } } } } } }