Exemple #1
0
        public Decimal ActualizarPruebasPerfil(Decimal ID_PERFIL, List <pruebaPerfil> pruebas, Boolean realizarVersionamientoManual, Decimal ID_VERSIONAMIENTO, ManualServicio _manual, Decimal ID_EMPRESA, Conexion conexion)
        {
            Boolean continuarNormalmente = true;

            pruebaPerfil _pruebaPerfil  = new pruebaPerfil(Empresa, Usuario);
            Boolean      eliminarPrueba = true;
            Boolean      insertarPrueba = true;

            DataTable tablaPruebasActuales = _pruebaPerfil.ObtenerPorIdPerfil(ID_PERFIL, conexion);

            for (int i = 0; i < tablaPruebasActuales.Rows.Count; i++)
            {
                DataRow filaPruebaActual = tablaPruebasActuales.Rows[i];
                Decimal ID_PRUEBA_ACTUAL = Convert.ToDecimal(filaPruebaActual["Código Prueba"]);

                eliminarPrueba = true;

                foreach (pruebaPerfil p in pruebas)
                {
                    if (p.IDPRUEBA == ID_PRUEBA_ACTUAL.ToString())
                    {
                        eliminarPrueba = false;
                        break;
                    }
                }

                if (eliminarPrueba == true)
                {
                    if (realizarVersionamientoManual == true)
                    {
                        ID_VERSIONAMIENTO = _manual.RegistrarDesactivacionRegistroTabla(ID_EMPRESA, ManualServicio.ListaSecciones.Seleccion, ManualServicio.AccionesManual.Eliminar, "PRUEBA_PERFIL", "Prueba de Perfil", ID_PRUEBA_ACTUAL.ToString(), ID_VERSIONAMIENTO, conexion);
                        if (ID_VERSIONAMIENTO == -1)
                        {
                            continuarNormalmente = false;
                            ID_VERSIONAMIENTO    = 0;
                            return(-1);
                        }
                    }

                    if (continuarNormalmente == true)
                    {
                        if (_pruebaPerfil.EliminarPruebaDePerfil(ID_PERFIL, ID_PRUEBA_ACTUAL, conexion) == false)
                        {
                            MensajeError = _pruebaPerfil.MensajeError;
                            return(-1);
                        }
                    }
                }
            }

            foreach (pruebaPerfil p in pruebas)
            {
                insertarPrueba = true;

                for (int i = 0; i < tablaPruebasActuales.Rows.Count; i++)
                {
                    DataRow filaPruebaActual = tablaPruebasActuales.Rows[i];
                    Decimal ID_PRUEBA_ACTUAL = Convert.ToDecimal(filaPruebaActual["Código Prueba"]);

                    if (p.IDPRUEBA == ID_PRUEBA_ACTUAL.ToString())
                    {
                        insertarPrueba = false;
                        break;
                    }
                }

                if (insertarPrueba == true)
                {
                    if (realizarVersionamientoManual == true)
                    {
                        ID_VERSIONAMIENTO = _manual.RegistrarInsersionRegistroTabla(ID_VERSIONAMIENTO, ManualServicio.ListaSecciones.Seleccion, "PRUEBA_PERFIL", "Prueba de Perfil", p.IDPRUEBA, ManualServicio.AccionesManual.Insertar, ID_EMPRESA, conexion);
                        if (ID_VERSIONAMIENTO == -1)
                        {
                            continuarNormalmente = false;
                            ID_VERSIONAMIENTO    = 0;
                            return(-1);
                        }
                    }

                    if (continuarNormalmente == true)
                    {
                        if (_pruebaPerfil.Adicionar(ID_PERFIL, Convert.ToDecimal(p.IDPRUEBA), conexion) == false)
                        {
                            MensajeError = _pruebaPerfil.MensajeError;
                            return(-1);
                        }
                    }
                }
            }

            return(ID_VERSIONAMIENTO);
        }
    /// <summary>
    /// hecho por cear pulido
    /// el dia 17 de enero de 2013
    /// paracargar en el pdf la seccion de docuemntos y pruebas aplicadas a un perfil
    /// </summary>
    /// <param name="ID_EMPRESA"></param>
    /// <returns></returns>
    private String CargarDocumentosPruebasPerfiles(Decimal ID_EMPRESA, Conexion _datos)
    {
        DataTable tablaPerfilesDocumentosPruebas = ConfigurarTablaPerfilesDocumentosPruebas();

        //capturamos los perfils de la empresa
        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        //ok -----------------------
        DataTable tablaPerfiles = _perfil.ObtenerVenDPerfilesConOcupacionPorIdEmpresa(ID_EMPRESA, _datos);

        String htmlSeccion = String.Empty;

        //recorremos cada uno de los perfiles de la tabla
        foreach (DataRow filaPerfil in tablaPerfiles.Rows)
        {
            Decimal ID_PERFIL = Convert.ToDecimal(filaPerfil["REGISTRO"]);

            //CAPTURAMMOS DOCUEMNTOS REQUERIDOS PARA ESTE PERFIL
            documentoPerfil _documentoPerfil = new documentoPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            //ok ------------------------
            DataTable tablaDocumentos = _documentoPerfil.ObtenerPorIdPerfil(ID_PERFIL, _datos);

            String DOCUMENTOS_REQUERIDOS = String.Empty;

            foreach (DataRow filaDocumento in tablaDocumentos.Rows)
            {
                if (String.IsNullOrEmpty(DOCUMENTOS_REQUERIDOS) == true)
                {
                    DOCUMENTOS_REQUERIDOS = filaDocumento["Documento"].ToString().Trim();
                }
                else
                {
                    DOCUMENTOS_REQUERIDOS += ", " + filaDocumento["Documento"].ToString().Trim();
                }
            }

            //CAPTURAMOS LAS PRUEBAS QUE DEBEN SER APLICADAS AL PERFIL
            pruebaPerfil _pruebaPerfil = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            //ok ---------------------------------
            DataTable tablaPruebas = _pruebaPerfil.ObtenerPorIdPerfil(ID_PERFIL, _datos);

            String PRUEBAS_APLICADAS = String.Empty;

            foreach (DataRow filaPrueba in tablaPruebas.Rows)
            {
                if (String.IsNullOrEmpty(PRUEBAS_APLICADAS) == true)
                {
                    PRUEBAS_APLICADAS = filaPrueba["Prueba"].ToString().Trim();
                }
                else
                {
                    PRUEBAS_APLICADAS += ", " + filaPrueba["Prueba"].ToString().Trim();
                }
            }

            //ahora creamos la fila que se le ira asignando a la tabla para llenar a grilla de docuemntos y pruebas por perfil
            DataRow filaPerfilDocumentosPruebas = tablaPerfilesDocumentosPruebas.NewRow();

            /*
                tablaTemp.Columns.Add("REGISTRO");
                tablaTemp.Columns.Add("NOM_OCUPACION");
                tablaTemp.Columns.Add("DOCUMENTOS_REQUERIDOS");
                tablaTemp.Columns.Add("PRUEBAS_APLICADAS");
            */
            filaPerfilDocumentosPruebas["REGISTRO"] = filaPerfil["REGISTRO"];
            filaPerfilDocumentosPruebas["NOM_OCUPACION"] = filaPerfil["NOM_OCUPACION"];
            if (String.IsNullOrEmpty(DOCUMENTOS_REQUERIDOS) == true)
            {
                filaPerfilDocumentosPruebas["DOCUMENTOS_REQUERIDOS"] = "Ninguno.";
            }
            else
            {
                filaPerfilDocumentosPruebas["DOCUMENTOS_REQUERIDOS"] = DOCUMENTOS_REQUERIDOS;
            }

            if (String.IsNullOrEmpty(PRUEBAS_APLICADAS) == true)
            {
                filaPerfilDocumentosPruebas["PRUEBAS_APLICADAS"] = "Ninguna.";
            }
            else
            {
                filaPerfilDocumentosPruebas["PRUEBAS_APLICADAS"] = PRUEBAS_APLICADAS;
            }

            //asignamos la fila a la tabla final
            tablaPerfilesDocumentosPruebas.Rows.Add(filaPerfilDocumentosPruebas);
            tablaPerfilesDocumentosPruebas.AcceptChanges();
        }

        //tablaTemp.Columns.Add("REGISTRO");
        //tablaTemp.Columns.Add("NOM_OCUPACION");
        //tablaTemp.Columns.Add("DOCUMENTOS_REQUERIDOS");
        //tablaTemp.Columns.Add("PRUEBAS_APLICADAS");

        foreach(DataRow fila in tablaPerfilesDocumentosPruebas.Rows)
        {
            htmlSeccion += "<tr>";
            htmlSeccion += "  <td width=\"25%\" style=\"text-align:left;\">";
            htmlSeccion += fila["NOM_OCUPACION"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"42%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["DOCUMENTOS_REQUERIDOS"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"33%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["PRUEBAS_APLICADAS"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "</tr>";
        }

        return htmlSeccion;
    }
Exemple #3
0
        public Decimal Adicionar(Decimal ID_EMPRESA,
                                 Decimal ID_OCUPACION,
                                 String EDAD_MIN,
                                 String EDAD_MAX,
                                 String SEXO,
                                 String EXPERIENCIA,
                                 String NIV_ESTUDIOS,
                                 List <documentoPerfil> documentos,
                                 List <pruebaPerfil> pruebas,
                                 String OBSERVACIONES_ESPECIALES,
                                 String TIPO_ENTREVISTA,
                                 Decimal ID_CATEGORIA_REFERENCIA,
                                 Decimal ID_ASSESMENT_CENTER,
                                 Boolean ESTADO,
                                 String NIVEL_REQUERIMIENTO)
        {
            Decimal        ID_VERSIONAMIENTO            = 0;
            Boolean        realizarVersionamientoManual = true;
            Boolean        continuarNormalmente         = true;
            ManualServicio _manual = new ManualServicio(Empresa, Usuario);

            Boolean correcto  = true;
            Decimal ID_PERFIL = 0;

            Conexion conexion = new Conexion(Empresa);

            conexion.IniciarTransaccion();

            try
            {
                realizarVersionamientoManual = _manual.EmpresaConManualDeServicioCreado(ID_EMPRESA, conexion);

                if (realizarVersionamientoManual == true)
                {
                    ID_VERSIONAMIENTO = _manual.RegistrarInsersionRegistroTabla(ID_VERSIONAMIENTO, ManualServicio.ListaSecciones.Seleccion, "PERFIL", "Perfil", ID_OCUPACION.ToString(), ManualServicio.AccionesManual.Insertar, ID_EMPRESA, conexion);
                    if (ID_VERSIONAMIENTO == -1)
                    {
                        conexion.DeshacerTransaccion();
                        correcto             = false;
                        continuarNormalmente = false;
                        ID_VERSIONAMIENTO    = 0;
                    }
                }

                if (continuarNormalmente == true)
                {
                    ID_PERFIL = AdicionarVenDPerfiles(ID_EMPRESA, ID_OCUPACION, EDAD_MIN, EDAD_MAX, SEXO, EXPERIENCIA, NIV_ESTUDIOS, OBSERVACIONES_ESPECIALES, TIPO_ENTREVISTA, ESTADO, ID_CATEGORIA_REFERENCIA, ID_ASSESMENT_CENTER, NIVEL_REQUERIMIENTO, conexion);

                    if (ID_PERFIL <= 0)
                    {
                        conexion.DeshacerTransaccion();
                        correcto  = false;
                        ID_PERFIL = 0;
                    }
                    else
                    {
                        documentoPerfil _documentoPerfil = new documentoPerfil(Empresa, Usuario);

                        foreach (documentoPerfil d in documentos)
                        {
                            if (_documentoPerfil.Adicionar(ID_PERFIL, Convert.ToDecimal(d.IDDOCUMENTO), conexion) == false)
                            {
                                conexion.DeshacerTransaccion();
                                correcto     = false;
                                ID_PERFIL    = 0;
                                MensajeError = _documentoPerfil.MensajeError;
                                break;
                            }
                        }

                        if (correcto == true)
                        {
                            pruebaPerfil _pruebaPerfil = new pruebaPerfil(Empresa, Usuario);
                            foreach (pruebaPerfil p in pruebas)
                            {
                                if (_pruebaPerfil.Adicionar(ID_PERFIL, Convert.ToDecimal(p.IDPRUEBA), conexion) == false)
                                {
                                    conexion.DeshacerTransaccion();
                                    correcto     = false;
                                    ID_PERFIL    = 0;
                                    MensajeError = _pruebaPerfil.MensajeError;
                                    break;
                                }
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                correcto     = false;
                MensajeError = ex.Message;
            }
            finally
            {
                conexion.Desconectar();
            }

            return(ID_PERFIL);
        }
    /// <summary>
    /// HECHO POR CESAR PULIDO
    /// EL DIA 18 DE DICIMEBRE DE 2012
    /// PARA GENERAR LA ENTRVISTA CON O SIN COMPETENCIAS
    /// </summary>
    /// <returns></returns>
    public byte[] GenerarPDFEntrevista(Decimal ID_SOLICITUD, Decimal ID_PERFIL)
    {
        //ok
        tools _tools = new tools();

        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 TIPO_VIVIENDA_ASPIRANTE = "Desconocida";
        if(DBNull.Value.Equals(filaSolicitud["TIPO_VIVIENDA"]) == false)
        {
            TIPO_VIVIENDA_ASPIRANTE = filaSolicitud["TIPO_VIVIENDA"].ToString().Trim();
        }

        String CIUDAD_ASPIRANTE = "Desconocida";
        if (DBNull.Value.Equals(filaSolicitud["NOMBRE_CIUDAD"]) == false)
        {
            CIUDAD_ASPIRANTE = filaSolicitud["NOMBRE_CIUDAD"].ToString().Trim();
        }

        String DIRECCION_ASPIRANTE = filaSolicitud["DIR_ASPIRANTE"].ToString().Trim();

        String SECTOR_ASPIRANTE = filaSolicitud["SECTOR"].ToString().Trim();

        String ESTRATO_ASPIRANTE = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["ESTRATO"]) == false) { ESTRATO_ASPIRANTE = filaSolicitud["ESTRATO"].ToString().Trim(); }

        String TELEFONOS_ASPIRANTE = filaSolicitud["TEL_ASPIRANTE"].ToString();

        String ASPIRACION_SALARIAL_ASPIRANTE;
        try { ASPIRACION_SALARIAL_ASPIRANTE = Convert.ToInt32(filaSolicitud["ASPIRACION_SALARIAL"]).ToString(); }
        catch { ASPIRACION_SALARIAL_ASPIRANTE = "Desconocido."; }

        String ESTADO_CIVIL = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["ESTADO_CIVIL"]) == false)
        {
            ESTADO_CIVIL = filaSolicitud["ESTADO_CIVIL"].ToString().Trim();
        }

        String EMAIL_ASPIRANTE = filaSolicitud["E_MAIL"].ToString().Trim();

        //FEMENINO, MASCULINO
        String SEXO = "Desconocido.";
        String LIBRETA_MILITAR = "Desconocida.";
        if (DBNull.Value.Equals(filaSolicitud["SEXO"]) == false)
        {
            if (filaSolicitud["SEXO"].ToString().ToUpper() == "F")
            {
                SEXO = "Femenino";
                LIBRETA_MILITAR = "No Aplica";
            }
            else
            {
                if (filaSolicitud["SEXO"].ToString().ToUpper() == "M")
                {
                    SEXO = "Masculino";
                    LIBRETA_MILITAR = filaSolicitud["LIB_MILITAR"].ToString();
                }
            }
        }

        //cargo al que aspira el candidato (cargo generico)
        String CARGO_APLICA = "Desconocido";
        Decimal ID_OCUPACION = 0;
        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPerfil = new DataTable();
        Decimal ID_ASSESMENT_CENTER = 0;

        if (ID_PERFIL <= 0)
        {
            CARGO_APLICA = "Entrevista por Producción.";
            ID_ASSESMENT_CENTER = 0;
        }
        else
        {
            tablaPerfil = _perfil.ObtenerPorRegistro(ID_PERFIL);
            if (tablaPerfil.Rows.Count <= 0)
            {
                CARGO_APLICA = "Desconocido.";
                ID_ASSESMENT_CENTER = 0;
            }
            else
            {
                DataRow filaPerfil = tablaPerfil.Rows[0];
                try
                {
                    ID_OCUPACION = Convert.ToDecimal(filaPerfil["ID_OCUPACION"]);
                }
                catch
                {
                    ID_OCUPACION = 0;
                }

                if (ID_OCUPACION > 0)
                {
                    cargo _cargo = new cargo(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
                    DataTable tablaOcupacionAspira = _cargo.ObtenerOcupacionPorIdOcupacion(ID_OCUPACION);

                    if (tablaOcupacionAspira.Rows.Count > 0)
                    {
                        DataRow filaOcupacionAspira = tablaOcupacionAspira.Rows[0];
                        CARGO_APLICA = filaOcupacionAspira["NOM_OCUPACION"].ToString().Trim();
                    }
                }

                //DETERMINAMOS SI SE TIENE UN ID_ASSESMENT_CENTER ASOCIADO AL PERFIL
                if(filaPerfil["TIPO_ENTREVISTA"].ToString().Trim() == "A")
                {
                    try
                    {
                        ID_ASSESMENT_CENTER = Convert.ToDecimal(filaPerfil["ID_ASSESMENT_CENTAR"]);
                    }
                    catch
                    {
                        ID_ASSESMENT_CENTER = 0;
                    }
                }
                else
                {
                    ID_ASSESMENT_CENTER = 0;
                }
            }
        }

        //si la entrevista basica existe ya
        hojasVida _hojasVida = new hojasVida(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEntrevista = _hojasVida.ObtenerSelRegEntrevistasPorIdSolicitud(ID_SOLICITUD);

        String FECHA_ENTREVISTA = "Desconocida.";
        String COMPOSICION_FAMILIAR_ASPIRANTE = "Desconocida.";
        String INFO_ACADEMICA_ASPIRANTE = "Desconocida.";
        String EXPERIENCIA_LAB_ASPIRANTE = "Desconocida.";
        String CONCEPTO_GENERAL = "Desconodido.";
        String USUARIO_ENTREVISTADOR = Session["USU_LOG"].ToString();

        Decimal ID_ENTREVISTA = 0;

        if (tablaEntrevista.Rows.Count > 0)
        {
            DataRow filaEntrevista = tablaEntrevista.Rows[0];

            ID_ENTREVISTA = Convert.ToDecimal(filaEntrevista["REGISTRO"]);

            try
            {
                FECHA_ENTREVISTA = Convert.ToDateTime(filaEntrevista["FCH_ENTREVISTA"]).ToShortDateString();
            }
            catch
            {
                FECHA_ENTREVISTA = "Desconocida.";
            }

            COMPOSICION_FAMILIAR_ASPIRANTE = filaEntrevista["COM_C_FAM"].ToString().Trim();
            INFO_ACADEMICA_ASPIRANTE = filaEntrevista["COM_C_ACA"].ToString().Trim();
            EXPERIENCIA_LAB_ASPIRANTE = filaEntrevista["COM_F_LAB"].ToString().Trim();
            CONCEPTO_GENERAL = filaEntrevista["COM_C_GEN"].ToString().Trim();

            if (DBNull.Value.Equals(filaEntrevista["USU_MOD"]) == false)
            {
                USUARIO_ENTREVISTADOR = filaEntrevista["USU_MOD"].ToString().Trim();
            }
            else
            {
                USUARIO_ENTREVISTADOR = filaEntrevista["USU_CRE"].ToString().Trim();
            }
        }

        String NIVEL_ESCOLARIDAD = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["NIVEL_ESCOLARIDAD"]) == false)
        {
            if (filaSolicitud["NIVEL_ESCOLARIDAD"].ToString().Trim() == "NO REQUERIDO")
            {
                NIVEL_ESCOLARIDAD = "NO APLICA";
            }
            else
            {
                NIVEL_ESCOLARIDAD = filaSolicitud["NIVEL_ESCOLARIDAD"].ToString().Trim();
            }
        }

        String PROFESION_ASPIRANTE = "Desconocida";
        if (DBNull.Value.Equals(filaSolicitud["ID_NUCLEO_FORMACION"]) == false)
        {
            PROFESION_ASPIRANTE = filaSolicitud["ID_NUCLEO_FORMACION"].ToString().Trim();
        }

        String ESPECIALIZACION_ASPIRANTE = "Desconocida";
        if (DBNull.Value.Equals(filaSolicitud["AREA_INTERES"]) == false)
        {
            ESPECIALIZACION_ASPIRANTE = filaSolicitud["AREA_INTERES"].ToString().Trim().ToUpper();
        }

        String CABEZA_FAMILIA = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["C_FMLIA"]) == false)
        {
            if (filaSolicitud["C_FMLIA"].ToString().Trim() == "S")
            {
                CABEZA_FAMILIA = "SI";
            }
            else
            {
                CABEZA_FAMILIA = "NO";
            }
        }

        String NUM_HIJOS = "Desconocido";
        if (DBNull.Value.Equals(filaSolicitud["NRO_HIJOS"]) == false)
        {
            NUM_HIJOS = filaSolicitud["NRO_HIJOS"].ToString().Trim();
        }

        /*
         * Generación del archi de informe de selección
         * 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>";

        //para el concepto general en entrevista o resultado de competencias.
        String html_concepto = "<div style=\"text-align: left; margin: 0 0 0 20px; text-decoration: underline; font-weight: bold;\">";
        html_concepto += "CONCEPTO DEL ENTREVISTADOR";
        html_concepto += "</div>";
        html_concepto += "<br />";
        html_concepto += "<div style=\"text-align: justify;\">";
        html_concepto += "[CONCEPTO_GENERAL]";
        html_concepto += "</div>";

        //En esta variable cargamos el documento plantilla
        StreamReader archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\entrevista.htm"));

        String html_formato_entrevista = html_encabezado + archivo_original.ReadToEnd();

        archivo_original.Dispose();
        archivo_original.Close();

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[CARGO_APLICA]", CARGO_APLICA);
        html_formato_entrevista = html_formato_entrevista.Replace("[FECHA_ENTREVISTA]", FECHA_ENTREVISTA);
        // -----------------------------------

        // -----------------------------------
        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("[TIPO_VIVIENDA_ASPIRANTE]", TIPO_VIVIENDA_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("[ESTRATO_ASPIRANTE]", ESTRATO_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[TELEFONOS_ASPIRANTE]", TELEFONOS_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[ASPIRACION_SALARIAL_ASPIRANTE]", ASPIRACION_SALARIAL_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[ESTADO_CIVIL_ASPIRANTE]", ESTADO_CIVIL);

        html_formato_entrevista = html_formato_entrevista.Replace("[EMAIL_ASPIRANTE]", EMAIL_ASPIRANTE);

        html_formato_entrevista = html_formato_entrevista.Replace("[LIBRETA_MILITAR]", LIBRETA_MILITAR);
        // -----------------------------------

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[COMPOSICION_FAMILIAR_ASPIRANTE]", COMPOSICION_FAMILIAR_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[INFO_ACADEMICA_ASPIRANTE]", INFO_ACADEMICA_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[EXPERIENCIA_LAB_ASPIRANTE]", EXPERIENCIA_LAB_ASPIRANTE);
        // -----------------------------------

        // -----------------------------------
        html_formato_entrevista = html_formato_entrevista.Replace("[NIVEL_ESCOLARIDAD]", NIVEL_ESCOLARIDAD);
        html_formato_entrevista = html_formato_entrevista.Replace("[PROFESION_ASPIRANTE]", PROFESION_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[ESPECIALIZACION_ASPIRANTE]", ESPECIALIZACION_ASPIRANTE);
        html_formato_entrevista = html_formato_entrevista.Replace("[CABEZA_FAMILIA]", CABEZA_FAMILIA);
        html_formato_entrevista = html_formato_entrevista.Replace("[NUM_HIJOS]", NUM_HIJOS);
        // -----------------------------------

        //TABLA DE COMPOSICION FAMILIAR
        String html_tabla_composicion_familiar = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_composicion_familiar += "<tr>";
        html_tabla_composicion_familiar += "<td width=\"14%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_composicion_familiar += "PARENTESCO";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_composicion_familiar += "NOMBRES Y APELLIDOS";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"10%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_composicion_familiar += "EDAD";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"20%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_composicion_familiar += "¿A QUÉ SE DEDICA?";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"19%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_composicion_familiar += "VIVE EN";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "<td width=\"12%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_composicion_familiar += "VIVE CON EL CANDIDATO";
        html_tabla_composicion_familiar += "</td>";
        html_tabla_composicion_familiar += "</tr>";

        DataTable tablainfofamiliar = _hojasVida.ObtenerSelRegComposicionFamiliar(ID_ENTREVISTA);

        foreach(DataRow filaComposicion in tablainfofamiliar.Rows)
        {
            html_tabla_composicion_familiar += "<tr>";
            html_tabla_composicion_familiar += "<td width=\"14%\" style=\"text-align:left;\">";
            html_tabla_composicion_familiar += filaComposicion["ID_TIPO_FAMILIAR"].ToString().Trim();
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"25%\" style=\"text-align:left;\">";
            html_tabla_composicion_familiar += filaComposicion["NOMBRES"].ToString().Trim() + " " + filaComposicion["APELLIDOS"].ToString().Trim();
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"10%\" style=\"text-align:center;\">";
            try
            {
                html_tabla_composicion_familiar += _tools.ObtenerEdadDesdeFechaNacimiento(Convert.ToDateTime(filaComposicion["FECHA_NACIMIENTO"]));
            }
            catch
            {
                html_tabla_composicion_familiar += "Desconocida";
            }
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"20%\" style=\"text-align:left;\">";
            html_tabla_composicion_familiar += filaComposicion["PROFESION"].ToString().Trim();
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"19%\" style=\"text-align:left;\">";
            if (filaComposicion["ID_CIUDAD"].ToString().Trim() == "EXTRA")
            {
                html_tabla_composicion_familiar += "Extranjero";
            }
            else
            {
                html_tabla_composicion_familiar += filaComposicion["NOMBRE_CIUDAD"].ToString().Trim();
            }
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "<td width=\"12%\" style=\"text-align:center;\">";
            if(filaComposicion["VIVE_CON_EL"].ToString().Trim().ToUpper() == "TRUE")
            {
                html_tabla_composicion_familiar += "SI";
            }
            else
            {
                html_tabla_composicion_familiar += "NO";
            }
            html_tabla_composicion_familiar += "</td>";
            html_tabla_composicion_familiar += "</tr>";
        }

        html_tabla_composicion_familiar += "</table>";
        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_COMPOSICION_FAMILIAR]", html_tabla_composicion_familiar);

        //EDUCACION FORMAL
        String html_tabla_educacion_formal = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_educacion_formal += "<tr>";
        html_tabla_educacion_formal += "<td width=\"40%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_formal += "Grado de Instrucción alcanzado:<\br>Especialización, Profesional, Bachiller.";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_formal += "Institución";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "<td width=\"12%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_formal += "Año";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "<td width=\"23%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_formal += "Observaciones";
        html_tabla_educacion_formal += "</td>";
        html_tabla_educacion_formal += "</tr>";

        DataTable tablaEducacionFormal = _hojasVida.ObtenerSelRegInformacionAcademica(ID_ENTREVISTA, "FORMAL");

        foreach (DataRow filaEducacionFormal in tablaEducacionFormal.Rows)
        {
            html_tabla_educacion_formal += "<tr>";
            html_tabla_educacion_formal += "<td width=\"40%\" style=\"text-align:left;\">";
            html_tabla_educacion_formal += filaEducacionFormal["NOMBRE_NIVEL_ACADEMICO"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "<td width=\"25%\" style=\"text-align:left;\">";
            html_tabla_educacion_formal += filaEducacionFormal["INSTITUCION"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "<td width=\"12%\" style=\"text-align:center;\">";
            html_tabla_educacion_formal += filaEducacionFormal["ANNO"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "<td width=\"23%\" style=\"text-align:justify;\">";
            html_tabla_educacion_formal += filaEducacionFormal["OBSERVACIONES"].ToString().Trim();
            html_tabla_educacion_formal += "</td>";
            html_tabla_educacion_formal += "</tr>";
        }

        html_tabla_educacion_formal += "</table>";
        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_EDUCACION_FORMAL]", html_tabla_educacion_formal);

        //EDUCACION NO FORMAL
        String html_tabla_educacion_no_formal = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
        html_tabla_educacion_no_formal += "<tr>";
        html_tabla_educacion_no_formal += "<td width=\"40%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_no_formal += "Cursos libres - Diplomados";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
        html_tabla_educacion_no_formal += "Institución";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "<td width=\"12%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_no_formal += "Duración";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "<td width=\"23%\" style=\"text-align:center; font-weight: bold; \">";
        html_tabla_educacion_no_formal += "Observaciones";
        html_tabla_educacion_no_formal += "</td>";
        html_tabla_educacion_no_formal += "</tr>";

        DataTable tablaEducacionNoFormal = _hojasVida.ObtenerSelRegInformacionAcademica(ID_ENTREVISTA, "NO FORMAL");

        foreach (DataRow filaEducacionNoFormal in tablaEducacionNoFormal.Rows)
        {
            html_tabla_educacion_no_formal += "<tr>";
            html_tabla_educacion_no_formal += "<td width=\"40%\" style=\"text-align:left;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["CURSO"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "<td width=\"25%\" style=\"text-align:left;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["INSTITUCION"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "<td width=\"12%\" style=\"text-align:center;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["DURACION"].ToString().Trim() + " " + filaEducacionNoFormal["UNIDAD_DURACION"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "<td width=\"23%\" style=\"text-align:justify;\">";
            html_tabla_educacion_no_formal += filaEducacionNoFormal["OBSERVACIONES"].ToString().Trim();
            html_tabla_educacion_no_formal += "</td>";
            html_tabla_educacion_no_formal += "</tr>";
        }

        html_tabla_educacion_no_formal += "</table>";
        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_EDUCACION_NO_FORMAL]", html_tabla_educacion_no_formal);

        //EXPERIENCIA LABORAL
        String html_tabla_experiencia_laboral = "";
        DataTable tablaExperiencia = _hojasVida.ObtenerSelRegExperienciaLaboral(ID_ENTREVISTA);

        Int32 contador = 1;
        foreach (DataRow filaExperienciaLaboral in tablaExperiencia.Rows)
        {
            if (contador == 1)
            {
                html_tabla_experiencia_laboral += "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
            }
            else
            {
                html_tabla_experiencia_laboral += "<br><table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
            }

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += contador.ToString() + ". EMPRESA:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["EMPRESA"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "CARGO DESEMPEÑADO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["CARGO"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "FUNCIONES REALIZADAS:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["FUNCIONES"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "FECHA INGRESO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += Convert.ToDateTime(filaExperienciaLaboral["FECHA_INGRESO"]).ToShortDateString();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "FECHA RETIRO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            try
            {
                html_tabla_experiencia_laboral += Convert.ToDateTime(filaExperienciaLaboral["FECHA_RETIRO"]).ToShortDateString();
            }
            catch
            {
                html_tabla_experiencia_laboral += "";
            }
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "TIEMPO TRABAJADO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            Boolean correcto = true;
            DateTime fechaIngreso;
            DateTime fechaRetiro;
            try
            {
                fechaIngreso = Convert.ToDateTime(filaExperienciaLaboral["FECHA_INGRESO"]);
            }
            catch
            {
                correcto = false;
                fechaIngreso = new DateTime();
            }

            if (correcto == true)
            {
                Boolean conContratoVigente = true;
                try
                {
                    fechaRetiro = Convert.ToDateTime(filaExperienciaLaboral["FECHA_RETIRO"]);
                    conContratoVigente = false;
                }
                catch
                {
                    conContratoVigente = true;
                    fechaRetiro = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                }

                if (fechaRetiro < fechaIngreso)
                {
                    html_tabla_experiencia_laboral += "Error en fechas.";
                }
                else
                {
                    if (conContratoVigente == true)
                    {
                        html_tabla_experiencia_laboral += "Lleva trabajando: " + _tools.DiferenciaFechas(fechaRetiro, fechaIngreso);
                    }
                    else
                    {
                        html_tabla_experiencia_laboral += "Trabajó: " + _tools.DiferenciaFechas(fechaRetiro, fechaIngreso);
                    }
                }
            }
            else
            {
                html_tabla_experiencia_laboral += "Desconocido.";
            }
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "MOTIVO_RETIRO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += filaExperienciaLaboral["MOTIVO_RETIRO"].ToString().Trim();
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "<tr>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += "ULTIMO SALARIO:";
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "<td width=\"50%\" style=\"text-align:left;\">";
            html_tabla_experiencia_laboral += String.Format("$ {0:N2}", Convert.ToDecimal(filaExperienciaLaboral["ULTIMO_SALARIO"]));
            html_tabla_experiencia_laboral += "</td>";
            html_tabla_experiencia_laboral += "</tr>";

            html_tabla_experiencia_laboral += "</table>";

            contador += 1;
        }

        html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_EXPERIENCIA_LABORAL]", html_tabla_experiencia_laboral);

        //ahora: si es entrevista por produccion se debe determinar que pruebas se han aplicado al candidato
        //y mostrarlas en el informe de seleccion
        //lo mismo con habilidades / competencias

        pruebaPerfil _pruebaPerfil = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        FabricaAssesment _fabrica = new FabricaAssesment(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaPruebas = new DataTable();
        DataTable tablaAssesmentCenter = new DataTable();
        DataTable tablaCompetencias = new DataTable();
        String TIPO_ENTREVISTA = String.Empty;
        if (ID_PERFIL <= 0)
        {
            //ES ENTREVISTA POR PRODUCCION
            tablaPruebas = _pruebaPerfil.ObtenerAplicadasAIdSolicitudConResultados(ID_SOLICITUD);
            tablaCompetencias = _fabrica.ObtenerAplicacionCompetenciasPorSolicitudIngreso(ID_SOLICITUD);
            if (tablaCompetencias.Rows.Count <= 0)
            {
                TIPO_ENTREVISTA = "B";
            }
            else
            {
                TIPO_ENTREVISTA = "A";
            }
        }
        else
        {
            //es entrevista asociada a perfil entonces cargamos lo pertinente a ese perfil
            tablaPruebas = _pruebaPerfil.ObtenerPorIdPerfilConResultadosIdSolicitud(ID_PERFIL, ID_SOLICITUD);

            if (ID_ASSESMENT_CENTER > 0)
            {
                TIPO_ENTREVISTA = "A";
                //se tiene un assesmentcenter associado
                tablaAssesmentCenter = _fabrica.ObtenerAssesmentCentePorId(ID_ASSESMENT_CENTER);
                tablaCompetencias = _fabrica.ObtenerCompetenciasAssesmentCenteActivos(ID_ASSESMENT_CENTER, ID_SOLICITUD);
            }
            else
            {
                TIPO_ENTREVISTA = "B";
            }
        }

        //AHORA SI SEGUN LOS ObTENIDOS DE LAS TABLAS SE MUESTRA EN EL INFORME.
        if (tablaPruebas.Rows.Count > 0)
        {
            String html_resultados_pruebas;
            html_resultados_pruebas = "<br />";
            html_resultados_pruebas += "<div style=\"text-align: left; margin: 0 0 0 20px; text-decoration: underline; font-weight: bold;\">";
            html_resultados_pruebas += "RESULTADO DE PRUEBAS PSICOTÉCNICAS";
            html_resultados_pruebas += "</div>";

            for (int i = 0; i < tablaPruebas.Rows.Count; i++)
            {
                DataRow filaPrueba = tablaPruebas.Rows[i];

                String NOM_PRUEBA = filaPrueba["NOM_PRUEBA"].ToString().Trim();
                String RESULTADO = filaPrueba["RESULTADOS"].ToString().Trim();

                html_resultados_pruebas += "<br />";
                html_resultados_pruebas += "<div style=\"text-align: left; margin: 0 0 0 20px; font-weight: bold; font-size:9px;\">";
                html_resultados_pruebas += NOM_PRUEBA;
                html_resultados_pruebas += "</div>";
                html_resultados_pruebas += "<div style=\"text-align: justify;\">";
                if (String.IsNullOrEmpty(RESULTADO) == false)
                {
                    html_resultados_pruebas += RESULTADO;
                }
                else
                {
                    html_resultados_pruebas += "Desconocido.";
                }
                html_resultados_pruebas += "</div>";
            }

            html_resultados_pruebas += "<br />";
            html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_RESULTADO_PRUEBAS]", html_resultados_pruebas);
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[TABLA_RESULTADO_PRUEBAS]", "<br />");
        }

        //FORMATO DE ASSESMENT CENTER
        if (TIPO_ENTREVISTA.Contains("A") == true)
        {
            String NOMBRE_ASSESMENT = "";
            if (tablaAssesmentCenter.Rows.Count > 0)
            {
                DataRow filaAssesment = tablaAssesmentCenter.Rows[0];
                NOMBRE_ASSESMENT = filaAssesment["NOMBRE_ASSESMENT"].ToString().Trim();
            }

            //En esta variable cargamos el documento plantilla por habilidades
            archivo_original = new StreamReader(Server.MapPath(@"~\plantillas_reportes\formato_evaluacion_assesmentcenter.htm"));

            String html_formato_assesment_center = archivo_original.ReadToEnd();

            archivo_original.Dispose();
            archivo_original.Close();

            String html_tabla_assesment = "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\" align=\"center\" style=\"font-size:8px; line-height:9px;\">";
            html_tabla_assesment += "<tr>";
            html_tabla_assesment += "<td width=\"25%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_assesment += "COMPETENCIA / HABILIDAD";
            html_tabla_assesment += "</td>";
            html_tabla_assesment += "<td width=\"35%\" style=\"text-align:center; font-weight: bold;\">";
            html_tabla_assesment += "CALIFICACIÓN";
            html_tabla_assesment += "</td>";
            html_tabla_assesment += "<td width=\"40%\" style=\"text-align:center; font-weight: bold; \">";
            html_tabla_assesment += "OBSERVACIONES";
            html_tabla_assesment += "</td>";
            html_tabla_assesment += "</tr>";

            foreach (DataRow filaCalificacionCompetencias in tablaCompetencias.Rows)
            {
                html_tabla_assesment += "<tr>";
                html_tabla_assesment += "<td width=\"25%\" style=\"text-align:left; \">";
                html_tabla_assesment += filaCalificacionCompetencias["COMPETENCIA"].ToString().Trim();
                html_tabla_assesment += "</td>";
                html_tabla_assesment += DevuelveTdsConCalificacionSegunDataRow(filaCalificacionCompetencias);
                html_tabla_assesment += "<td width=\"40%\" style=\"text-align:justify; \">";
                html_tabla_assesment += filaCalificacionCompetencias["OBSERVACIONES"].ToString().Trim();
                html_tabla_assesment += "</td>";
            }

            html_tabla_assesment += "</table>";

            html_formato_assesment_center = html_formato_assesment_center.Replace("[NOMBRE_ASSESMENT]", NOMBRE_ASSESMENT);
            html_formato_assesment_center = html_formato_assesment_center.Replace("[TABLA_DE_ASSESMENT_CENTER]", html_tabla_assesment);
            html_formato_entrevista = html_formato_entrevista.Replace("[FORMATO_EVALUACION_ASSESMENTCENTER]", html_formato_assesment_center);
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[FORMATO_EVALUACION_ASSESMENTCENTER]", "");
        }

        // concepto general
        html_concepto = html_concepto.Replace("[CONCEPTO_GENERAL]", CONCEPTO_GENERAL);
        // concepto general
        html_formato_entrevista = html_formato_entrevista.Replace("[CONCEPTO_GENERAL]", html_concepto);

        // USUARIO QUE HIZO LA ENTREVISTA
        usuario _usuario = new usuario(Session["idEmpresa"].ToString());
        DataTable tablaUsuario = _usuario.ObtenerUsuarioPorUsuLog(USUARIO_ENTREVISTADOR); //ACA VA ES EL DE LA ENTREVISTA
        DataRow filaUsuario = tablaUsuario.Rows[0];

        if (filaUsuario["USU_TIPO"].ToString().ToUpper() == "PLANTA")
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_PSICOLOGO]", filaUsuario["NOMBRES"].ToString().Trim() + " " + filaUsuario["APELLIDOS"].ToString().Trim());
        }
        else
        {
            html_formato_entrevista = html_formato_entrevista.Replace("[NOMBRE_PSICOLOGO]", filaUsuario["NOMBRES_EXTERNO"].ToString().Trim() + " " + filaUsuario["APELLIDOS_EXTERNO"].ToString().Trim());
        }

        html_formato_entrevista = html_formato_entrevista.Replace("[CARGO_SICOLOGO]", "Psicólogo de Selección");

        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";

            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();
        }
    }
    /// <summary>
    /// HECHO POR CESAR
    /// EL DIA 18 DE DICIEMBRE DE 2012
    /// PARA GENERAR LOS ARCHIVOS DE LAS PRUEBAS
    /// </summary>
    /// <param name="prefijoNombreArchivo"></param>
    /// <returns></returns>
    public Dictionary<String, byte[]> ObtenerArchivosPruebas(String prefijoNombreArchivo, Decimal ID_PERFIL, Decimal ID_SOLICITUD)
    {
        Dictionary<String, byte[]> listaArchivos = new Dictionary<string, byte[]>();

        //obtenemos las pruebas por perfil y con los resultados asociados
        /*
            SRAP.ARCHIVO_PRUEBA,
            SRAP.ARCHIVO_EXTENSION,
            SRAP.ARCHIVO_TAMANO,
            SRAP.ARCHIVO_TYPE,
        */
        pruebaPerfil _pruebaPerfil = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPruebas = _pruebaPerfil.ObtenerPorIdPerfilConResultadosIdSolicitud(ID_PERFIL, ID_SOLICITUD);

        for (int i = 0; i < tablaPruebas.Rows.Count; i++)
        {
            DataRow filaArchivo = tablaPruebas.Rows[i];

            if (DBNull.Value.Equals(filaArchivo["ARCHIVO_PRUEBA"]) == false)
            {
                String NOM_PRUEBA = filaArchivo["NOM_PRUEBA"].ToString().Trim();
                NOM_PRUEBA = NOM_PRUEBA.Replace(' ', '_');

                byte[] ARCHIVO = (byte[])filaArchivo["ARCHIVO_PRUEBA"];
                String EXTENSION = filaArchivo["ARCHIVO_EXTENSION"].ToString().Trim();

                listaArchivos.Add((prefijoNombreArchivo + "PRUEBA-" + NOM_PRUEBA + EXTENSION).Replace(' ', '_'), ARCHIVO);
            }
        }

        return listaArchivos;
    }
    private void Actualizar()
    {
        Decimal ID_PERFIL = Convert.ToDecimal(HiddenField_ID_PERFIL.Value);
        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

        String EDADMIN = TextBox_EDAD_MINIMA.Text;
        String EDADMAX = TextBox_EDAD_MAXIMA.Text;

        String EXPERIENCIA = DropDownList_Experiencia.SelectedValue;
        String SEXO = DropDownList_SEXO.SelectedValue;
        String NIV_ACADEMICO = DropDownList_NIV_ACADEMICO.SelectedValue;

        String OBSERVACIONES_ESPECIALES = TextBox_OBSERVACIONES_ESPECIALES.Text;

        Boolean ESTADO = true;

        List<documentoPerfil> listaDocumentos = new List<documentoPerfil>();
        foreach (DataRow fila in obtenerTablaDeGrillaDocumentos().Rows)
        {
            documentoPerfil _documento = new documentoPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            _documento.IDDOCUMENTO = fila["Código Documento"].ToString().Trim();
            _documento.IDEMPRESA = ID_EMPRESA;
            listaDocumentos.Add(_documento);
        }

        List<pruebaPerfil> listaPruebas = new List<pruebaPerfil>();
        foreach (DataRow fila in obtenerTablaDeGrillaPruebas().Rows)
        {
            pruebaPerfil _pruebaPerfil = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            _pruebaPerfil.IDPRUEBA = fila["Código Prueba"].ToString().Trim();
            listaPruebas.Add(_pruebaPerfil);
        }

        String NIVEL_REQUERIMIENTO = RadioButtonList_NivelDificultadReq.SelectedValue;

        Decimal ID_CATEGORIA_REFERENCIA = Convert.ToDecimal(DropDownList_TipoConfirmacionReferencia.SelectedValue);
        Decimal ID_ASSESMENT_CENTER = 0;

        Boolean actualizarTipoEntrevista = true;
        String TIPO_ENTREVISTA = null;

        actualizarTipoEntrevista = true;

        if (CheckBox_TipoBasica.Checked == true)
        {
            TIPO_ENTREVISTA = "B";
        }
        else
        {
            if (CheckBox_TipoCompetencias.Checked == true)
            {
                TIPO_ENTREVISTA = "A";

                ID_ASSESMENT_CENTER = Convert.ToDecimal(DropDownList_AssesmentCenter.SelectedValue);
            }
        }

        perfil _perfil = new perfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Boolean correcto = _perfil.Actualizar(ID_PERFIL, ID_EMPRESA, EDADMIN, EDADMAX, SEXO, EXPERIENCIA, NIV_ACADEMICO, listaDocumentos, listaPruebas, OBSERVACIONES_ESPECIALES, actualizarTipoEntrevista, TIPO_ENTREVISTA,ID_CATEGORIA_REFERENCIA, ID_ASSESMENT_CENTER, ESTADO, NIVEL_REQUERIMIENTO);

        if (correcto == false)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _perfil.MensajeError, Proceso.Error);
        }
        else
        {
            maestrasInterfaz _maestrasInterfaz = new maestrasInterfaz();
            _maestrasInterfaz.CargarEnBdElManualServicioActual(ID_EMPRESA);

            Cargar(ID_PERFIL, false);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "El Perfil fue modificado correctamente.", Proceso.Correcto);
        }
    }
    private void llenarGridPruebas(Decimal idPerfil)
    {
        pruebaPerfil _prueba = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable _dataTable = _prueba.ObtenerPorIdPerfil(idPerfil);

        if (_dataTable.Rows.Count > 0)
        {
            Cargar_GridView_NOMBRE_PRUEBA_desde_tabla(_dataTable);
        }
        else
        {
            GridView_NOMBRE_PRUEBA.DataSource = null;
            GridView_NOMBRE_PRUEBA.DataBind();
        }
    }
Exemple #8
0
        public Decimal Adicionar(Decimal ID_EMPRESA,
            Decimal ID_OCUPACION,
            String EDAD_MIN,
            String EDAD_MAX,
            String SEXO,
            String EXPERIENCIA,
            String NIV_ESTUDIOS,
            List<documentoPerfil> documentos,
            List<pruebaPerfil> pruebas,
            String OBSERVACIONES_ESPECIALES,
            String TIPO_ENTREVISTA,
            Decimal ID_CATEGORIA_REFERENCIA,
            Decimal ID_ASSESMENT_CENTER,
            Boolean ESTADO,
            String NIVEL_REQUERIMIENTO)
        {
            Decimal ID_VERSIONAMIENTO = 0;
            Boolean realizarVersionamientoManual = true;
            Boolean continuarNormalmente = true;
            ManualServicio _manual = new ManualServicio(Empresa, Usuario);

            Boolean correcto = true;
            Decimal ID_PERFIL = 0;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                realizarVersionamientoManual = _manual.EmpresaConManualDeServicioCreado(ID_EMPRESA, conexion);

                if (realizarVersionamientoManual == true)
                {
                    ID_VERSIONAMIENTO = _manual.RegistrarInsersionRegistroTabla(ID_VERSIONAMIENTO, ManualServicio.ListaSecciones.Seleccion, "PERFIL", "Perfil", ID_OCUPACION.ToString(), ManualServicio.AccionesManual.Insertar, ID_EMPRESA, conexion);
                    if (ID_VERSIONAMIENTO == -1)
                    {
                        conexion.DeshacerTransaccion();
                        correcto = false;
                        continuarNormalmente = false;
                        ID_VERSIONAMIENTO = 0;
                    }
                }

                if (continuarNormalmente == true)
                {
                    ID_PERFIL = AdicionarVenDPerfiles(ID_EMPRESA, ID_OCUPACION, EDAD_MIN, EDAD_MAX, SEXO, EXPERIENCIA, NIV_ESTUDIOS, OBSERVACIONES_ESPECIALES, TIPO_ENTREVISTA, ESTADO, ID_CATEGORIA_REFERENCIA, ID_ASSESMENT_CENTER, NIVEL_REQUERIMIENTO, conexion);

                    if (ID_PERFIL <= 0)
                    {
                        conexion.DeshacerTransaccion();
                        correcto = false;
                        ID_PERFIL = 0;
                    }
                    else
                    {
                        documentoPerfil _documentoPerfil = new documentoPerfil(Empresa, Usuario);

                        foreach (documentoPerfil d in documentos)
                        {
                            if (_documentoPerfil.Adicionar(ID_PERFIL, Convert.ToDecimal(d.IDDOCUMENTO), conexion) == false)
                            {
                                conexion.DeshacerTransaccion();
                                correcto = false;
                                ID_PERFIL = 0;
                                MensajeError = _documentoPerfil.MensajeError;
                                break;
                            }
                        }

                        if (correcto == true)
                        {
                            pruebaPerfil _pruebaPerfil = new pruebaPerfil(Empresa, Usuario);
                            foreach (pruebaPerfil p in pruebas)
                            {
                                if (_pruebaPerfil.Adicionar(ID_PERFIL, Convert.ToDecimal(p.IDPRUEBA), conexion) == false)
                                {
                                    conexion.DeshacerTransaccion();
                                    correcto = false;
                                    ID_PERFIL = 0;
                                    MensajeError = _pruebaPerfil.MensajeError;
                                    break;
                                }
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                conexion.DeshacerTransaccion();
                correcto = false;
                MensajeError = ex.Message;
            }
            finally
            {
                conexion.Desconectar();
            }

            return ID_PERFIL;
        }
Exemple #9
0
        public Decimal ActualizarPruebasPerfil(Decimal ID_PERFIL, List<pruebaPerfil> pruebas, Boolean realizarVersionamientoManual, Decimal ID_VERSIONAMIENTO, ManualServicio _manual, Decimal ID_EMPRESA, Conexion conexion)
        {
            Boolean continuarNormalmente = true;

            pruebaPerfil _pruebaPerfil = new pruebaPerfil(Empresa, Usuario);
            Boolean eliminarPrueba = true;
            Boolean insertarPrueba = true;

            DataTable tablaPruebasActuales = _pruebaPerfil.ObtenerPorIdPerfil(ID_PERFIL, conexion);

            for (int i = 0; i < tablaPruebasActuales.Rows.Count; i++)
            {
                DataRow filaPruebaActual = tablaPruebasActuales.Rows[i];
                Decimal ID_PRUEBA_ACTUAL = Convert.ToDecimal(filaPruebaActual["Código Prueba"]);

                eliminarPrueba = true;

                foreach (pruebaPerfil p in pruebas)
                {
                    if (p.IDPRUEBA == ID_PRUEBA_ACTUAL.ToString())
                    {
                        eliminarPrueba = false;
                        break;
                    }
                }

                if (eliminarPrueba == true)
                {
                    if (realizarVersionamientoManual == true)
                    {
                        ID_VERSIONAMIENTO = _manual.RegistrarDesactivacionRegistroTabla(ID_EMPRESA, ManualServicio.ListaSecciones.Seleccion, ManualServicio.AccionesManual.Eliminar, "PRUEBA_PERFIL", "Prueba de Perfil", ID_PRUEBA_ACTUAL.ToString(), ID_VERSIONAMIENTO, conexion);
                        if (ID_VERSIONAMIENTO == -1)
                        {
                            continuarNormalmente = false;
                            ID_VERSIONAMIENTO = 0;
                            return -1;
                        }
                    }

                    if (continuarNormalmente == true)
                    {
                        if (_pruebaPerfil.EliminarPruebaDePerfil(ID_PERFIL, ID_PRUEBA_ACTUAL, conexion) == false)
                        {
                            MensajeError = _pruebaPerfil.MensajeError;
                            return -1;
                        }
                    }
                }
            }

            foreach (pruebaPerfil p in pruebas)
            {
                insertarPrueba = true;

                for (int i = 0; i < tablaPruebasActuales.Rows.Count; i++)
                {
                    DataRow filaPruebaActual = tablaPruebasActuales.Rows[i];
                    Decimal ID_PRUEBA_ACTUAL = Convert.ToDecimal(filaPruebaActual["Código Prueba"]);

                    if (p.IDPRUEBA == ID_PRUEBA_ACTUAL.ToString())
                    {
                        insertarPrueba = false;
                        break;
                    }
                }

                if (insertarPrueba == true)
                {
                    if (realizarVersionamientoManual == true)
                    {
                        ID_VERSIONAMIENTO = _manual.RegistrarInsersionRegistroTabla(ID_VERSIONAMIENTO, ManualServicio.ListaSecciones.Seleccion, "PRUEBA_PERFIL", "Prueba de Perfil", p.IDPRUEBA, ManualServicio.AccionesManual.Insertar, ID_EMPRESA, conexion);
                        if (ID_VERSIONAMIENTO == -1)
                        {
                            continuarNormalmente = false;
                            ID_VERSIONAMIENTO = 0;
                            return -1;
                        }
                    }

                    if (continuarNormalmente == true)
                    {
                        if (_pruebaPerfil.Adicionar(ID_PERFIL, Convert.ToDecimal(p.IDPRUEBA), conexion) == false)
                        {
                            MensajeError = _pruebaPerfil.MensajeError;
                            return -1;
                        }
                    }
                }
            }

            return ID_VERSIONAMIENTO;
        }
    private void CargarSeleccion(Decimal ID_EMPRESA,tabla.proceso proceso)
    {
        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactosOriginal = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA, proceso);

        GridView_ContactosSeleccion.DataSource = tablaContactosOriginal;
        GridView_ContactosSeleccion.DataBind();

        pruebaPerfil  _pp = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPruebas = _pp.ObtenerPruebasVSCargoPorEmpresa(ID_EMPRESA);
        CargarTablaConfiguradaParaPruebasCargosSeleccion(tablaPruebas);

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCondicionesEnvio = _envioCandidato.ObtenerTodosLosContactosParaEnvioDeCandidatosPorIdEmpresa(ID_EMPRESA);

        if (tablaCondicionesEnvio.Rows.Count > 0)
        {
            GridView_CondEnvioSeleccion.DataSource = tablaCondicionesEnvio;
            GridView_CondEnvioSeleccion.DataBind();
        }
        else
        {
            GridView_CondEnvioSeleccion.DataSource = null;
            GridView_CondEnvioSeleccion.DataBind();
        }
    }