/// <summary> /// HECHO POR CESAR PULIDO /// EL DIA 18 DE DICIEMBRE DE 2012 /// PARA GENERAR LA REFERENCIA /// </summary> /// <returns></returns> public byte[] GenerarPDFReferencia(Decimal ID_REFERENCIA, Decimal ID_SOLICITUD) { tools _tools = new tools(); String html_encabezado = "<html>"; html_encabezado += "<body>"; String html_pie = "</body>"; html_pie += "</html>"; radicacionHojasDeVida _radicacionHojasDeVida = new radicacionHojasDeVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaSolicitud = _radicacionHojasDeVida.ObtenerRegSolicitudesingresoPorIdSolicitud(Convert.ToInt32(ID_SOLICITUD)); DataRow filaSolicitud = tablaSolicitud.Rows[0]; referencia _referencia = new referencia(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaReferencia = _referencia.ObtenerPorIdReferencia(ID_REFERENCIA); DataRow filaReferencia = tablaReferencia.Rows[0]; String NOMBRE_CANDIDATO = filaSolicitud["NOMBRES"].ToString().Trim() + " " + filaSolicitud["APELLIDOS"].ToString().Trim(); String NUM_DOC_IDENTIDAD_CANDIDATO = filaSolicitud["NUM_DOC_IDENTIDAD"].ToString().Trim(); String EMPRESA_DONDE_TRABAJO_CANDIDATO = filaReferencia["EMPRESA_TRABAJO"].ToString().Trim(); String TELEFONO_EMPRESA = filaReferencia["NUM_TELEFONO"].ToString().Trim(); String EMPRESA_TEMPORAL = filaReferencia["EMPRESA_TEMPORAL"].ToString().Trim(); String NUM_TELEFONO_TEMPORAL = filaReferencia["NUM_TELEFONO_TEMPOAL"].ToString().Trim(); String TIPO_CONTRATO = filaReferencia["TIPO_CONTRATO"].ToString().Trim(); String FECHA_INGRESO_CANDIDATO = ""; if (DBNull.Value.Equals(filaReferencia["FECHA_INGRESO"]) == false) { FECHA_INGRESO_CANDIDATO = Convert.ToDateTime(filaReferencia["FECHA_INGRESO"]).ToShortDateString(); } String FECHA_RETIRO_CANDIDATO = ""; if (DBNull.Value.Equals(filaReferencia["FECHA_RETIRO"]) == false) { FECHA_RETIRO_CANDIDATO = Convert.ToDateTime(filaReferencia["FECHA_RETIRO"]).ToShortDateString(); } String ULTIMO_CARGO_CANDIDATO = filaReferencia["ULTIMO_CARGO"].ToString().Trim(); String NOMBRE_INFORMANTE = filaReferencia["NOMBRE_INFORMANTE"].ToString().Trim(); String CARGO_INFORMANTE = filaReferencia["CARGO_INFORMANTE"].ToString().Trim(); String NOMBRE_JEFE = filaReferencia["NOMBRE_JEFE"].ToString().Trim(); String CARGO_JEFE = filaReferencia["CARGO_JEFE"].ToString().Trim(); String ULTIMO_SALARIO_CANDIDATO = "Desconocido."; try { ULTIMO_SALARIO_CANDIDATO = Convert.ToDecimal(filaReferencia["ULTIMO_SALARIO"]).ToString(); } catch { ULTIMO_SALARIO_CANDIDATO = "Desconocido."; } String COMISIONES = filaReferencia["COMISIONES"].ToString().Trim(); String BONOS = filaReferencia["BONOS"].ToString().Trim(); String MOTIVO_RETIRO = filaReferencia["MOTIVO_RETIRO"].ToString().Trim(); String USUARIO_REFERENCIADOR = Session["USU_LOG"].ToString(); String NOMBRE_REFERENCIADOR = "Desconocido."; if (DBNull.Value.Equals(filaReferencia["USU_MOD"]) == false) { USUARIO_REFERENCIADOR = filaReferencia["USU_MOD"].ToString().Trim(); } else { USUARIO_REFERENCIADOR = filaReferencia["USU_CRE"].ToString().Trim(); } String CUALIDADES_CALIFICACION = filaReferencia["CUALIDADES_CALIFICACION"].ToString().Trim(); usuario _usuario = new usuario(Session["idEmpresa"].ToString()); DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(USUARIO_REFERENCIADOR); DataRow filaUsuario = tablaUsuario.Rows[0]; if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA") { NOMBRE_REFERENCIADOR = filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim(); } else { NOMBRE_REFERENCIADOR = filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim(); } //En esta variable cargamos el documento plantilla StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\referencia.htm")); String html_formato_referencia = html_encabezado + archivo_original.ReadToEnd(); archivo_original.Dispose(); archivo_original.Close(); html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_CANDIDATO]", NOMBRE_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[NUM_DOC_IDENTIDAD_CANDIDATO]", NUM_DOC_IDENTIDAD_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[EMPRESA_DONDE_TRABAJO_CANDIDATO]", EMPRESA_DONDE_TRABAJO_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[TELEFONO_EMPRESA]", TELEFONO_EMPRESA); html_formato_referencia = html_formato_referencia.Replace("[EMPRESA_TEMPORAL]", EMPRESA_TEMPORAL); html_formato_referencia = html_formato_referencia.Replace("[TELEFONO_TEMPORAL]", NUM_TELEFONO_TEMPORAL); if (TIPO_CONTRATO == "OBRA O LABOR") { html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", " X "); html_formato_referencia = html_formato_referencia.Replace("[FIJO]", "___"); html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", "___"); } else { if (TIPO_CONTRATO == "FIJO") { html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", "___"); html_formato_referencia = html_formato_referencia.Replace("[FIJO]", " X "); html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", "___"); } else { if (TIPO_CONTRATO == "INDEFINIDO") { html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", "___"); html_formato_referencia = html_formato_referencia.Replace("[FIJO]", "___"); html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", " X "); } else { html_formato_referencia = html_formato_referencia.Replace("[OBRA_LABOR]", "___"); html_formato_referencia = html_formato_referencia.Replace("[FIJO]", "___"); html_formato_referencia = html_formato_referencia.Replace("[INDEFINIDO]", "___"); } } } html_formato_referencia = html_formato_referencia.Replace("[FECHA_INGRESO_CANDIDATO]", FECHA_INGRESO_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[FECHA_RETIRO_CANDIDATO]", FECHA_RETIRO_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[ULTIMO_CARGO_CANDIDATO]", ULTIMO_CARGO_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_INFORMANTE]", NOMBRE_INFORMANTE); html_formato_referencia = html_formato_referencia.Replace("[CARGO_INFORMANTE]", CARGO_INFORMANTE); html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_JEFE]", NOMBRE_JEFE); html_formato_referencia = html_formato_referencia.Replace("[CARGO_JEFE]", CARGO_JEFE); html_formato_referencia = html_formato_referencia.Replace("[ULTIMO_SALARIO_CANDIDATO]", ULTIMO_SALARIO_CANDIDATO); html_formato_referencia = html_formato_referencia.Replace("[COMISIONES]", COMISIONES); html_formato_referencia = html_formato_referencia.Replace("[BONOS]", BONOS); html_formato_referencia = html_formato_referencia.Replace("[MOTIVO_RETIRO]", MOTIVO_RETIRO); html_formato_referencia = html_formato_referencia.Replace("[NOMBRE_REFERENCIADOR]", NOMBRE_REFERENCIADOR); if (DBNull.Value.Equals(filaReferencia["FCH_MOD"]) == false) { html_formato_referencia = html_formato_referencia.Replace("[FECHA_REFERECIA]", Convert.ToDateTime(filaReferencia["FCH_MOD"]).ToShortDateString()); } else { html_formato_referencia = html_formato_referencia.Replace("[FECHA_REFERECIA]", Convert.ToDateTime(filaReferencia["FCH_CRE"]).ToShortDateString()); } //ya esta la informacion de la referecia basica ahora le adicionadmos al informe los datos de las preguntas DataTable tablaPreguntasRespuestas = _referencia.ObtenerPreguntasRespuestasReferencia(ID_REFERENCIA); if (tablaPreguntasRespuestas.Rows.Count > 0) { int contadorPreguntas = 0; //recorrido por las preguntas String html_tabla_preguntas = ""; html_tabla_preguntas += "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\">"; html_tabla_preguntas += "<tr>"; html_tabla_preguntas += "<td width=\"15%\" style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "#"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "CUESTIONARIO"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "RESPUESTA"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "</tr>"; for (int i = 0; i < tablaPreguntasRespuestas.Rows.Count; i++) { DataRow filaPregunta = tablaPreguntasRespuestas.Rows[i]; contadorPreguntas += 1; String textoPregunta = filaPregunta["CONTENIDO"].ToString().Trim(); String textoRespuesta = filaPregunta["RESPUESTA"].ToString().Trim(); html_tabla_preguntas += "<tr>"; html_tabla_preguntas += "<td width=\"15%\" style=\"text-align:center;\">"; html_tabla_preguntas += contadorPreguntas.ToString(); html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td style=\"text-align:justify;\">"; html_tabla_preguntas += textoPregunta; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td style=\"text-align:center;\">"; html_tabla_preguntas += textoRespuesta; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "</tr>"; } html_tabla_preguntas += "</table>"; html_formato_referencia = html_formato_referencia.Replace("[TABLA_CUESTIONARIO]", html_tabla_preguntas); } if (String.IsNullOrEmpty(CUALIDADES_CALIFICACION) == false) { String html_tabla_preguntas = ""; html_tabla_preguntas += "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"80%\" align=\"center\">"; html_tabla_preguntas += "<tr>"; html_tabla_preguntas += "<td width=\"50%\" style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "CUALIDAD"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "EXCELENTE"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "BUENO"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "REGULAR"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center; font-weight: bold;\">"; html_tabla_preguntas += "MALO"; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "</tr>"; String[] cualidadesCalificacionesArray = CUALIDADES_CALIFICACION.Split(';'); foreach(String cualidadCalificacion in cualidadesCalificacionesArray) { String CUALIDAD = cualidadCalificacion.Split(':')[0]; String CALIFICACION = cualidadCalificacion.Split(':')[1]; html_tabla_preguntas += "<tr>"; html_tabla_preguntas += "<td width=\"50%\" style=\"text-align:left;\">"; html_tabla_preguntas += CUALIDAD; html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:justify;\">"; if(CALIFICACION == "EXCELENTE") { html_tabla_preguntas += "X"; } html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center;\">"; if (CALIFICACION == "BUENO") { html_tabla_preguntas += "X"; } html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"12%\" style=\"text-align:center;\">"; if (CALIFICACION == "REGULAR") { html_tabla_preguntas += "X"; } html_tabla_preguntas += "</td>"; html_tabla_preguntas += "<td width=\"13%\" style=\"text-align:center;\">"; if (CALIFICACION == "MALO") { html_tabla_preguntas += "X"; } html_tabla_preguntas += "</td>"; html_tabla_preguntas += "</tr>"; } html_tabla_preguntas += "</table>"; html_formato_referencia = html_formato_referencia.Replace("[TABLA_CUALIDADES]", html_tabla_preguntas); } html_formato_referencia += 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 = "referencia"; 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_referencia); } //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 CargarPreguntasAsociadasAReferencia(Decimal ID_REFERENCIA) { referencia _referencia = new referencia(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString()); DataTable tablaPreguntas = _referencia.ObtenerPreguntasRespuestasReferencia(ID_REFERENCIA); if (tablaPreguntas.Rows.Count <= 0) { if (_referencia.MensajeError != null) { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _referencia.MensajeError, Proceso.Error); } else { Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se encontraron preguntas y respuestas asociadas a la confirmación de referencia Laboral seleccionada.", Proceso.Advertencia); } } else { CargarGrillaPreguntasConRespuesta(tablaPreguntas); } }