<?php

/**
 * co_pdf_ep actions.
 *
 * @package    contratacion
 * @subpackage co_pdf_ep
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
require_once 'HTMLPurifier.auto.php';
require 'HTMLPurifier.autoload.php';

class co_pdf_epActions extends sfActions {

    /**
     * Executes index action
     *
     * @param sfRequest $request A request object
     */
    public function executePdf(sfWebRequest $request) {

        //Revisar que sea post
        //$this->forward404Unless($request->isMethod('post'));
        //Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("--------------------------------------------------* Ip: " . $_SERVER['REMOTE_ADDR']);
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");

        //Obtenemos la entidad
        /*
         * (SGC-1, ANM-2, SGR-3, CYC-4, COL-5, INCI-6, LOCAL-7)
         */
        $array = sfYaml::load(dirname(__FILE__) . '/../../../../api/config/app-gwt.yml');
        $int = 0;
        foreach ($array as $routeName => $routeData) {
            //echo $routeName . "\n";
            if ('entidad_cliente' == $routeName) {
                foreach ($routeData as $key => $value) {
                    //echo $value . "\n";
                    if ($key == 'value') {
                        $entidadCliente = $value;
                    }
                }
            }
            $int++;
        }

        $id_estudios_previos = $request['id_estudios_previos'];

        $config = HTMLPurifier_Config::createDefault();
        //$purifier = new HTMLPurifier($config);
        //Establecemos el encabezado por entidad
        switch ($entidadCliente) {
            CASE "8":
                $config->set('CSS.AllowedProperties', array());
                $config->set('HTML.ForbiddenElements', array('font'));
                $purifier = new HTMLPurifier($config);
                /* $pdf = new CDPDF('P', 'mm', 'letter');
                  $pdf->SetFont('Times', 'B', 10);
                  $pdf->SetFillColor(255);
                  $pdf->SetTextColor(0);
                  $pdf->setTipo(9); */
                $ruta_tmp = getcwd() . "/uploads/tmp/";
                $pdf = new Wkhtmltopdf(array('path' => $ruta_tmp));
                $tipo = "9";
                break;
            CASE "2":
                $config->set('CSS.AllowedProperties', array());
                $config->set('HTML.ForbiddenElements', array('font'));
                $purifier = new HTMLPurifier($config);
                $pdf = new CDPDF6('P', 'mm', 'letter');
                $pdf->SetFont('Times', 'B', 10);
                $pdf->SetFillColor(255);
                $pdf->SetTextColor(0);
                $pdf->setTipo(11);
                break;
            default:
                $purifier = new HTMLPurifier($config);
                $pdf = new CDPDF6('P', 'mm', 'letter');
                $pdf->SetFont('Times', 'B', 10);
                $pdf->SetFillColor(255);
                $pdf->SetTextColor(0);
                $pdf->setTipo(1);
                break;
        }



        $consul = Doctrine_Manager::getInstance()->connection();

        //pie de pagina de aprobado - 20200918
        $sql = "SELECT
apr.*,
ter.num_doc,
initcap_sofhouse(INITCAP(ter.razon_soc)) as razon_soc

FROM co_aprueba_ep apr

left join interceros_v ter
on ter.id_mae_ter = apr.id_usuario_aprueba

where
apr.id_estudios_previos = " . $id_estudios_previos;
        $st = $consul->execute($sql);
        $detalle = $st->fetchAll();
        if (count($detalle) > 0) {
            $razon_soc = "Aprobado: " . $detalle[0]['RAZON_SOC'];
            $pdf->setAprobado($razon_soc);
        }


        // Header

        if ($entidadCliente == "1") {

            //Obtenemos la fecha de generacion del contrato para identificar si se aplica el formtato a usar a partir del 1ero de julio del 2019
            $formato20190701 = 1;
            $pdf->setTipo(7);
            $sql = "select tab0.fecha_contrato
from co_contrato tab0
LEFT JOIN co_seleccion_ep tab1 ON tab1.id_seleccion_ep = tab0.id_seleccion_ep
LEFT JOIN co_estudios_previos tab2 ON tab2.id_estudios_previos = tab1.id_estudios_previos 
where tab2.id_estudios_previos =" . $id_estudios_previos;
            $st = $consul->execute($sql);
            $detalle = $st->fetchAll();
            if (count($detalle) > 0) {
                $fecha = $detalle[0]['FECHA_CONTRATO'];
                if (true) {
                    if (strtotime($fecha) < strtotime('2019-07-01')) {
                        $formato20190701 = 0;
                        $pdf->setTipo(1);
                    }
                }
            }
        }

        $tag_ent_sgr = '';
        if ($entidadCliente == "2") {
            $tag_ent_sgr = '.ANM.LOCAL';
        }

        //fecha_per - 20200925
        $sql = "select to_char(max(fecha_fin),'yyyy-mm-dd') as fecha_per from no_periodo where id_tipo_periodo = 1";
        $st = $consul->execute($sql);
        $detalle_per = $st->fetchAll();
        if (count($detalle_per) > 0) {
            $fecha_per = $detalle_per[0]['FECHA_PER'];
        }

        /**
         * Incidente #2204 <-> Se agrega cant_sgr y tag_nue( 1 -> nuevo, 0 -> anterior), para conocer si es de texto anterior a 2016 - 2016012
         * Se modifica, para tener encuenta la  tabla co_seleccion_ep 
         *      Si fechacierre no es vacia y tiene seleccion ep, valida fecha inicio, coloca año de fecha inicio y nuevo texto
         *      Si fechacierre no es vacia y no tiene seleccion ep, coloca año actual y nuevo texto
         *      Si fechacierre es vacio, coloca año actual y nuevo texto
         * - 20160112
         * Se agrega area del supervisor desde nomina - 20171212
         * Campo tag_nue20220725 para cambios de texto bienio - 20220725::LAVILA
         */
        $sql = "select

tab0.id_estudios_previos,
tab0.version,
case 
when tab0.fecha_cierre is not null and (select count(ep.id_seleccion_ep) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) >= 1 
--and to_char((select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos), 'yyyy') >= 2015 
then to_char((select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos), 'yyyy')
else to_char(sysdate, 'YYYY') end as anho_actual_texto,
to_char(sysdate, 'YYYY') as anho_actual,
tab0.fecha_cierre,
(select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) as fecha_seleccion_ep,
--case when tab0.fecha_cierre is null or to_char(tab0.fecha_cierre, 'YYYY') >= '2016' or to_char(tab0.fecha_creacion, 'YYYY') >= '2016' then 1 else 0 end as tag_nue,
case 
when tab0.fecha_cierre is not null and (select count(ep.id_seleccion_ep) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) >= 1 
and to_char((select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos), 'yyyy') >= 2016 then 1 
when tab0.fecha_cierre is not null and (select count(ep.id_seleccion_ep) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) = 0 then 1
when tab0.fecha_cierre is null then 1 
else 0 end as tag_nue,

case when tab0.fecha_creacion >= to_date('2022-07-01','yyyy-mm-dd') then 1 else 0 end as tag_nue20220725,

(select count(co_proyecto_ep.id_proyecto_ep) from co_proyecto_ep where tab0.id_estudios_previos = co_proyecto_ep.id_estudios_previos and co_proyecto_ep.sgr = 1) as cant_sgr,

( select tab.vigencia_inicial || ' - ' || tab.vigencia_final from doble_anualidad@PNG_SGR$tag_ent_sgr tab where tab0.id_anhos between tab.vigencia_inicial and tab.vigencia_final and rownum <= 1) as text_vigencia,
( select tab.vigencia_inicial || ' - ' || tab.vigencia_final from doble_anualidad@PNG_SGR$tag_ent_sgr tab where to_char(sysdate, 'YYYY') between tab.vigencia_inicial and tab.vigencia_final and rownum <= 1) as text_actual_vigencia,

tab0.id_anhos,tab0.autorizado_extra,

to_char(tab0.fecha_creacion,'yyyy-mm-dd') AS FECHA_CREA,
to_char(tab0.FECHA_CIERRE,'yyyy-mm-dd') AS FECHA_CIERRE_TEXT,
tab0.proceso AS PROCESO,tab1.aplica_proceso as aplica_proceso,
tab2.descripcion as area, tab0.valor as valor_total, tab3.razon_soc as supervisor,tab1.descripcion as modal, tab0.id_area,

tab3.num_doc as num_doc_supervisor,
upper(nvl(area.descripcion,tab2.descripcion)) as area_supervisor

from co_estudios_previos_v tab0

join co_modalidad_sel tab1 ON tab1.id_modalidad_sel = tab0.id_modalidad_sel
left join area tab2 ON tab2.id_area = tab0.id_area
left join interceros_v tab3 ON tab3.id_mae_ter = tab0.id_supervisor

left join no_estado_func_v estfunc
on estfunc.num_doc = tab3.num_doc
and estfunc.id_anhos = extract(year from nvl(tab0.FECHA_CIERRE, to_date('" . $fecha_per . "','yyyy-mm-dd') ))
and estfunc.id_meses = extract(month from nvl(tab0.FECHA_CIERRE, to_date('" . $fecha_per . "','yyyy-mm-dd') ))

left join no_periodo_v per
on per.id_periodo = estfunc.periodo

left join area area
ON area.id_area = estfunc.id_ea

where 
tab0.id_estudios_previos = " . $id_estudios_previos . "
and nvl(per.id_tipo_periodo,1) = 1 ";

        $st = $consul->execute($sql);
        $datos_gen = $st->fetchAll();

        //Incidente #7947, la vigencia_ep para el cambio de texto por nuevas normas - 20180109
        $modal = $datos_gen[0]['MODAL'];
        $version = $datos_gen[0]['VERSION'];
        $vigencia_ep = $vigencia = $datos_gen[0]['ID_ANHOS'];
        $anho_actual_texto = $datos_gen[0]['ANHO_ACTUAL_TEXTO'];
        $text_vigencia = $datos_gen[0]['TEXT_VIGENCIA'];
        $cant_sgr = $datos_gen[0]['CANT_SGR'];
        $tag_nue = $datos_gen[0]['TAG_NUE'];
        $tag_nue20220725 = $datos_gen[0]['TAG_NUE20220725']; //tag_nue20220725
        $area_supervisor = $datos_gen[0]['AREA_SUPERVISOR'];
        $autorizado_extra = $datos_gen[0]['AUTORIZADO_EXTRA'];
        $fecha_creacion_estudio_previo = $datos_gen[0]['FECHA_CREA'];

        if ($modal == "PRESTACIÓN DE SERVICIOS PROFESIONALES Y DE APOYO A LA GESTIÓN") {
            switch ($entidadCliente) {
                CASE "8":
                    $titulo = $modal;
                    /* $pdf->setTitulo($modal);
                      $pdf->AddPage();
                      $pdf->SetFont('Times', '', 10); */
                    $pdf->setTitle($titulo);
                    $html = '<table style="border-collapse: collapse;border:1px solid;margin:0;padding:0">';
                    $sql = <<<EOD
                select 
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS = $id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){/
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }
                    //SE ESTABLECE SECCION REA DE ORIGEN LUEGO DE TODOS LOS CAMPOS Y ANTES DE LAS FIRMAS TICKET 15089
                    $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>AREA DE ORIGEN</b></td>
                    </tr>
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%"><br/></td>
                    </tr>
EOD;
                    /* $html.= '<tr>';
                      $html.= '<td colspan="2" style="text-align:justify;width:100%">';
                      $html.= '<br/>';
                      $html.= '<br/>';
                      //Mostramos firmas configuradas para el Estudio previo en la tabla co_firma_ep
                      $html.= 'Nombre: __________________________';
                      $html.= '<br/>';
                      $html.= 'Cargo: __________________________';
                      $html.= '</td>';
                      $html.= '</tr>'; */
                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table><tr>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';

                        if ($i % 2 == 0) {
                            $html .= '</tr><br/><br/><tr>';
                        }
                        $i++;
                    }

                    $html .= '</tr></table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                CASE "2":
                    $titulo = $modal;
                    $pdf->setTitulo($modal);
                    $pdf->setVersion($version);
                    $pdf->AddPage();
                    $pdf->SetFont('Times', '', 10);
                    $html = '<table border="1" cellpadding="2">';
                    $sql = <<<EOD
                select 
tab1.introductorio,
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS = $id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    //Agregamos el texto introductorio para la modalidad si existe
                    $valor = $records[0]['introductorio'];
                    if (!empty($valor)) {
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                    </tr>
EOD;
                    }
                    //Fin texto introductorio
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }

                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<tr>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '</tr>';
                        /* if ($i % 2 == 0) {
                          $html .= '</tr><br/><br/><tr>';
                          } */
                        $i++;
                    }

                    $html .= '</table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                default:
                    /*
                     * Incidente #36328, nuevo titulo - 20230814::LAVILA
                     */
                    //$titulo = "JUSTIFICACIÓN PARA LA CELEBRACIÓN DE CONTRATOS DE PRESTACIÓN DE SERVICIOS CON PERSONAS NATURALES";
                    $titulo = "JUSTIFICACIÓN PARA LA CELEBRACIÓN DE CONTRATOS DE PRESTACIÓN DE SERVICIOS CON PERSONAS NATURALES Y/O JURÍDICAS";
                    $pdf->setTitulo($titulo);
                    $pdf->AddPage();
                    $pdf->SetFont('Times', '', 10);
                    $html = '<table border="1" cellpadding="2">';
                    if ($formato20190701 == 1) {
                        $html .= '<tr>';
                        $html .= '<td style="text-align:center;">';
                        //$html .= 'DOCUMENTO Y ESTUDIOS PREVIOS';
                        $html .= $titulo;
                        $html .= '</td>';
                        $html .= '</tr>';
                    }
                    //1 CIUDAD Y FECHA

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'ciudad_fecha'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $ciudad = $detalle[0]['VALOR'];

                    $html .= '<tr>
                    <td style="text-align:left;width:50%"><b>Ciudad y Fecha:</b></td>
                    <td style="text-align:left;width:50%">' . $ciudad . '</td>
                    </tr>';
                    //2 NOMBRE CARGO

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'solicitante'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $solicitante = $detalle[0]['VALOR'];

                    $literal_d = '';
                    /*
                      Se modifica, para tener encuenta la  tabla co_seleccion_ep
                     *      Si fechacierre no es vacia y tiene seleccion ep, valida fecha inicio, coloca año de fecha inicio y nuevo texto
                     *      Si fechacierre no es vacia y no tiene seleccion ep, coloca año actual y nuevo texto
                     *      Si fechacierre es vacio, coloca año actual y nuevo texto
                     * - 20160112 
                     */
                    if ($tag_nue == 1) {
                        $vigencia = $anho_actual_texto;
                        if ($cant_sgr >= 1) {
                            //$literal_d = 'Presupuesto de Gastos SGR para la bianualidad ' . $text_vigencia . ', en';
                            $literal_d = 'Presupuesto de Gastos SGR para la bianualidad ' . $text_vigencia . ''; // Incidente #10478 - 20181115
                            if ($tag_nue20220725 == 1) {
                                $literal_d = 'Presupuesto de Gastos SGR para el bienio ' . $text_vigencia . ''; // Incidente #30724 - 20220725                                
                            }
                        } else {
                            //$literal_d = 'Presupuesto de Gastos para la vigencia ' . $vigencia . ', en';
                            $literal_d = 'Presupuesto de Gastos para la vigencia actual'; // Incidente #10478 - 20181115
                        }
                    } else {
                        $vigencia = $vigencia;
                        $literal_d = 'Plan Operativo';
                    }

                    // Incidente #10478 - 20181115
                    //<td style="text-align:justify;width:100%";colspan="2">El jefe del Area solicitante certifica que la adquisicion del bien y/o servicio se encuentra incluida en el ' . $literal_d . ' y el Plan Anual de Adquisiciones y no hay existencia en el almacen del Servicio Geologico Colombiano y por lo anterior es necesaria la contratación.</td>
                    $html .= '

        <tr>
        <td style="text-align:left;width:50%"><b>Nombre y cargo del solicitante:</b></td>
        <td style="text-align:left;width:50%">' . $solicitante . '</td>
        </tr>
        <tr>
        <td style="text-align:justify;width:100%";colspan="2">El ordenador del gasto del área solicitante certifica que el objeto cuya contratación se requiere, se encuentra incluido en el ' . $literal_d . ' y en el plan anual de adquisiciones, del mismo modo certifica, que validado con el grupo de Talento Humano de la entidad, no existe personal de planta para realizar las actividades u obligaciones derivadas y/o el personal existente no es suficiente.</td>
        </tr>';
                    //3 NECESIDAD

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'necesidad_area'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $necesidad = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:left;width:100%"><b>DESCRIPCIÓN DE LA NECESIDAD QUE LA ENTIDAD PRETENDE SATISFACER CON LA CONTRATACIÓN</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($necesidad)) . '</td>
        </tr>';

                    //4 OBJETO

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'objeto'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $objeto = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:justify;width:100%"><b>OBJETO DEL CONTRATO</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($objeto)) . '</td>
        </tr>';
                    // Código UNSPSC
                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'codigo'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();
                    if (count(detalle) > 0) {
                        $codigoUNSPSC = $detalle[0]['VALOR'];

                        $html .= '

        <tr>
        <td colspan="2" style="text-align:justify;width:100%"><b>CÓDIGO UNSPSC</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($codigoUNSPSC)) . '</td>
        </tr>';
                    }

                    // PLAN ANUAL DE ADQUISICIÓN
                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'plan'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();
                    if (count(detalle) > 0) {
                        $planAnual = $detalle[0]['VALOR'];
                        $html .= '

        <tr>
        <td colspan="2" style="text-align:justify;width:100%"><b>PLAN ANUAL DE ADQUISICIÓN</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($planAnual)) . '</td>
        </tr>';
                    }

                    //5 OBLIGACIONES DEL CONTRATISTA

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'obliga_contratista'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $obliga_contratista = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:left;width:100%"><b>OBLIGACIONES DEL CONTRATISTA</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($obliga_contratista)) . '</td>
        </tr>';

                    //6 FUNDAMENTOS DE LA MODALIDAD

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'justificacion_modali'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $justificacion_modali = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:center;width:100%"><b>B: FUNDAMENTOS JURÍDICOS QUE SOPORTAN LA MODALIDAD DE SELECCIÓN</b></td>
        </tr>';

                    ///6 FUNDAMENTOS DE LA MODALIDAD

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'jefe'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $jefe = $detalle[0]['VALOR'];

                    if ($vigencia_ep >= 2018) {
                        $testo_b = "artículo 2.2.1.2.1.4.9. del Decreto 1082 de 2015";
                        $testo_b2 = "citado artículo";
                    } else {
                        $testo_b = "artículo 81 del Decreto 1510 de 2013";
                        $testo_b2 = "artículo 81 del Decreto 1510 de 2013";
                    }

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:justify;width:100%"><b>' . $jefe . '</b> para dar cumplimiento a lo dispuesto en el ' . $testo_b . ', señala:</td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">Que la presente contratación se rige por lo establecido en el ' . $testo_b . '.<br/>Que analizada la documentación presentada por la persona a contratar, se pudo verificar cada uno de los datos suministrados, lo que permitió establecer que posee las calidades indicadas e idoneidad con relación al objeto del contrato.<br/>Que en consecuencia, haciendo uso de la facultad prevista en el ' . $testo_b2 . ', en lo relacionado con la idoneidad y experiencia para la contratación de prestación de servicios profesionales y apoyo a la gestión, se solicita la contratación a que se refiere el presente documento.</td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:center;width:100%"><b>C. INFORMACIÓN DEL CONTRATO</b></td>
        </tr>';

                    //7. CONTRATISTA 

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'nombre_contra'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $nombre_contra = $detalle[0]['VALOR'];

                    //8. PROFESION 

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'profesion'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $profesion = $detalle[0]['VALOR'];

                    //9. IDENTIFICACION y TIPO DOCUMENTO
                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'tipo_doc'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $tipo_doc = $detalle[0]['VALOR'];

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'num_iden'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $num_iden = $detalle[0]['VALOR'];

                    //10. EXPEDIDA EN 

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'expedida'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $expedida = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td style="text-align:left;width:50%">Que por la anterior justificación, se hace necesario contratar a: ' . $nombre_contra . '</td>
        <td style="text-align:left;width:50%"><b>Profesión o actividad: </b>' . $profesion . '</td>
        </tr>

        <tr>
        <td style="text-align:left;width:50%"><b>Identificado con</b>' . $tipo_doc . $num_iden . '</td>
        <td style="text-align:left;width:50%"><b>Expedida en: </b>' . $expedida . '</td>
        </tr>';

                    //11. PLAZO

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'plazo'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $plazo = $detalle[0]['VALOR'];

                    //12.   VALOR

                    $sql = "select numero_a_texto(tab0.valor)||' PESOS M/CTE' VALOR_LETRAS, tab0.valor
                from co_estudios_previos tab0
        where tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $valor = $detalle[0]['VALOR'];
                    $valor_letras = $detalle[0]['VALOR_LETRAS'];


                    $html .= '

        <tr>
        <td style="text-align:left;width:50%"><b>Plazo: </b>' . $this->htmlClear($purifier->purify($plazo)) . '</td>
        <td style="text-align:left;width:50%"><b>Valor del contrato: </b>' . $valor_letras . ' (' . number_format($valor) . ')</td>
        </tr>';

                    //13. FORMA DE PAGO

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'forma_pago'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $forma_pago = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td style="text-align:left;width:50%"><b>Forma de Pago</b></td>
        <td style="text-align:left;width:50%">' . $this->htmlClear($purifier->purify($forma_pago)) . '</td>
        </tr>';

                    //14. SEDE

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'sede'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $sede = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td style="text-align:left;width:50%"><b>Sede donde se prestará el servicio:</b></td>
        <td style="text-align:left;width:50%">' . $sede . '</td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">Es necesario que el contratista tenga desplazamientos fuera de la sede habitual de prestación del servicio?<br/> <br/>SI   __ NO ___ <br/> <br/>El SERVICIO GEOLÓGICO COLOMBIANO pagará los gastos de desplazamiento correspondientes según la equivalencia establecida para los viáticos de los funcionarios.<br/><br/>El SERVICIO GEOLÓGICO COLOMBIANO proveerá los elementos necesarios para la prestación del servicio en campo y oficina.</td>
        </tr>';

                    $modal = $datos_gen[0]['MODAL'];

                    //15. NOMBRE Y CARGO DEL SUPERVISOR

                    $supervisor = $datos_gen[0]['SUPERVISOR'];


                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'cargo_supervisor'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $cargo_supervisor = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td style="text-align:left;width:50%"><b>CARGO DEL SUPERVISOR</b></td>
        <td style="text-align:left;width:50%">' . $cargo_supervisor . ' </td>
        </tr>';

                    //16. RIESGOS

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'riesgo'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $riesgo = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:left;width:100%"><b>SOPORTE PARA TIPIFICAR, ESTIMAR Y ASIGNAR LOS RIESGOS PREVISIBLES</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($riesgo)) . '</td>
        </tr>';

                    //17. GARANTIAS

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'garantia'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $garantia = $detalle[0]['VALOR'];

                    $html .= '

        <tr>
        <td colspan="2" style="text-align:left;width:100%"><b>ANALISIS QUE SUSTENTA LA EXIGENCIA DE LAS GARANTIAS</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($garantia)) . '</td>
        </tr>   
        <tr>
        <td colspan="2" style="text-align:center;width:100%"><b>D: INFORMACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
        </tr>';

                    //18. TALENTO HUMANO

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'coordina_talento'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $coordina_talento = $detalle[0]['VALOR'];

                    //Se cambia por co_proyectos_all_v, ya que esta vista tiene todos los proyectos y discrimina si es sgr o no - 20160108
                    $sql = "select 
tab1.codigo||' '||tab1.descripcion AS CPO,
tab0.*,
tab1.sgr as sgr_all_v
from co_proyecto_ep tab0
left join co_proyectos_all_v tab1 ON tab1.id = tab0.id_cpo and tab1.sgr = tab0.sgr
where tab0.id_estudios_previos = " . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $datos_cpo = $st->fetchAll();
                    $proyecto = "";
                    $arrayProyectos = array();
                    foreach ($datos_cpo as $datos_cpo) {

                        $proyectos .= $datos_cpo['CPO'] . '<br/>';
                        array_push($arrayProyectos, $datos_cpo['CPO']);
                    }

                    /**
                     * SOLICITUD MODIFICACION TEXTO ESTUDIOS PREVIOS 
                     * En los Estudios Previos de Contratacion, se debe condicionar parte del texto del literal D: INFORMACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA, asi:

                      Reemplazar la parte que dice:

                      que, de acuerdo con el Plan Operativo aprobado para la vigencia , en


                      Si tiene un proyecto relacionado del SGR,:
                      que, de acuerdo con el Presupuesto de Gastos aprobado para la bianualidad 2015 - 2016,  en

                      Si no es el SGR
                      que, de acuerdo con el Presupuesto de Gastos aprobado para la vigencia 2016 , en
                     * 
                     * - 20160108
                     */
                    //$literal_d = 'que, de acuerdo con el Plan Operativo aprobado para la vigencia ' . $vigencia . ', en';
                    $literal_d = '';
                    /*
                      Se modifica, para tener encuenta la  tabla co_seleccion_ep
                     *      Si fechacierre no es vacia y tiene seleccion ep, valida fecha inicio, coloca año de fecha inicio y nuevo texto
                     *      Si fechacierre no es vacia y no tiene seleccion ep, coloca año actual y nuevo texto
                     *      Si fechacierre es vacio, coloca año actual y nuevo texto
                     * - 20160112 
                     */
                    if ($tag_nue == 1) {
                        $vigencia = $anho_actual_texto;
                        if ($cant_sgr >= 1) {
                            $literal_d = 'que, de acuerdo con el Presupuesto de Gastos SGR aprobado para la bianualidad ' . $text_vigencia . ', en';
                            if ($tag_nue20220725 == 1) {
                                $literal_d = 'que, de acuerdo con el Presupuesto de Gastos SGR aprobado para el bienio ' . $text_vigencia . ', en'; // Incidente #30724 - 20220725                                
                            }
                        } else {
                            $literal_d = 'que, de acuerdo con el Presupuesto de Gastos aprobado para la vigencia ' . $vigencia . ', en';
                        }
                    } else {
                        $vigencia = $vigencia;
                        $literal_d = 'que, de acuerdo con el Plan Operativo aprobado para la vigencia ' . $vigencia . ', en';
                    }


                    $html .= '

        <tr>
        <td style="text-align:left;width:100%">' . strtoupper($coordina_talento) . '</td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">Manifiesta ' . $literal_d . ' relación con las necesidades de personal identificadas y autorizadas por los respectivos Jefes de Dependencia, y atendiendo la solicitud de ' . $jefe . ' , se revisó que la fecha no existe personal disponible y suficiente para ejecutar las actividades requeridas por el Proyecto ' . $proyectos . '.<br/><br/><br/>
        
        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>COORDINADOR(A) GRUPO DE TALENTO HUMANO</b></p>
         </td>
        </tr>';

                    //19. ORDENADOR

                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'ordenador'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $ordenador = $detalle[0]['VALOR'];

                    //<td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución 337 del 23 de diciembre de 2013, certifica, teniendo en cuenta la información contenida en el literal D del presente documento, que la Entidad no cuenta con el personal suficiente para completar el equipo de trabajo del Proyecto ' . $proyectos . '.<br/>De acuerdo con lo previsto en el artículo 81 del Decreto 1510 de 2013, para efectuar la presente contratación no es necesaria la obtención de varias ofertas.<br/><br/><br/>
                    if (strtotime('2022-12-01') < strtotime($fecha_creacion_estudio_previo)) {
                        $html .= '
                        <tr>
                        <td colspan="2" style="text-align:center;width:100%"><b>E: CERTIFICACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
                        </tr>



                        <tr>
                        <td style="text-align:left;width:100%"> ' . strtoupper($ordenador) . '</td>
                        </tr>


                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución 480 de 22 de diciembre 
                        de 2022, se certifica que teniendo en cuenta la información contenida en el literal D del presente documento, 
                        que la Entidad no cuenta con el personal de planta suficiente para completar el equipo de trabajo del 
                        Proyecto ' . implode(',', $arrayProyectos) . '.<br/><br/>

                        De acuerdo con el artículo 2.2.1.2.1.4.9 del Decreto 1082 de 2015, el Servicio Geológico Colombiano podrá contratar 
                        directamente con la persona natural y/o jurídica que esté en capacidad de ejecutar el objeto del contrato siempre y que haya 
                        demostrado la idoneidad o experiencia directamente relacionada con el área de que se trate. En este caso, no es necesario que 
                        la entidad estatal haya obtenido previamente varias ofertas. por tratarse de una contratación directa.<br/><br/><br/>

                        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>
                        DIRECTOR(A) TECNICO Y/O SECRETARIA GENERAL<br/>
                        (La Secretaria General sólo firmará el estudio previo cuando la necesidad sea de los Grupos que la integran)</b></p>
                         </td>
                        </tr>
                        </table>';
                    } else if (strtotime('2022-10-01') < strtotime($fecha_creacion_estudio_previo)) { // Aplica nuevo texto
                        $html .= '
        <tr>
        <td colspan="2" style="text-align:center;width:100%"><b>E: CERTIFICACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
        </tr>

        

        <tr>
        <td style="text-align:left;width:100%"> ' . strtoupper($ordenador) . '</td>
        </tr>
        

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución No. D-337 del 23 de 
        diciembre de 2013 “Por la cual se delegan unas funciones”, modificada mediante Resolución No. D-439 del 29 de noviembre de 2022
        “Por medio de la cual se modifica la Resolución 337 de 23 de diciembre de 2013 y se deroga la resolución No. 420 de 15 de 
        noviembre de 2022”, se certifica que teniendo en cuenta la información contenida en el literal D del presente documento, 
        que la Entidad no cuenta con el personal de planta suficiente para completar el equipo de trabajo del 
        Proyecto ' . $proyectos . '.<br/><br/>

        De acuerdo con el artículo 2.2.1.2.1.4.9 del Decreto 1082 de 2015, el Servicio Geológico Colombiano podrá contratar 
        directamente con la persona natural y/o jurídica que esté en capacidad de ejecutar el objeto del contrato siempre y que haya 
        demostrado la idoneidad o experiencia directamente relacionada con el área de que se trate. En este caso, no es necesario que 
        la entidad estatal haya obtenido previamente varias ofertas.<br/><br/><br/>
        
        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>
        DIRECTOR TÉCNICO O SECRETARIA GENERAL</b></p>
         </td>

        
        </tr>';
                    } else {
                        $html .= '
        <tr>
        <td colspan="2" style="text-align:center;width:100%"><b>E: CERTIFICACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
        </tr>

        

        <tr>
        <td style="text-align:left;width:100%">' . strtoupper($ordenador) . '</td>
        </tr>
        

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución 337 del 23 de diciembre 
        de 2013, certifica, teniendo en cuenta la información contenida en el literal D del presente documento, que la Entidad no 
        cuenta con el personal suficiente para completar el equipo de trabajo del Proyecto ' . $proyectos . '.
        <br/>De acuerdo con lo previsto en el articulo 2.2.1.2.1.4.9 del Decreto 1082 de 2015, para efectuar la presente 
        contratación no es necesaria la obtención de varias ofertas.<br/><br/><br/>
        
        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>ORDENADOR(A) DEL GASTO</b></p>
         </td>

        
        </tr>';
                    }
                    $html .= '</table>';

                    break;
            }
        } else {
            switch ($entidadCliente) {
                CASE "8":
                    $titulo = $modal;
                    /* $pdf->setTitulo($modal);
                      $pdf->AddPage();
                      $pdf->SetFont('Times', '', 10); */
                    $pdf->setTitle($titulo);
                    $html = '<table style="border-collapse: collapse;border:1px solid;margin:0;padding:0">';
                    $sql = <<<EOD
                select 
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS =$id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }
                    //SE ESTABLECE SECCION REA DE ORIGEN LUEGO DE TODOS LOS CAMPOS Y ANTES DE LAS FIRMAS TICKET 15089
                    $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>AREA DE ORIGEN</b></td>
                    </tr>
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%"><br/></td>
                    </tr>
EOD;
                    /* $html.= '<tr>';
                      $html.= '<td colspan="2" style="text-align:justify;width:100%">';
                      $html.= '<br/>';
                      $html.= '<br/>';
                      $html.= 'Nombre: __________________________';
                      $html.= '<br/>';
                      $html.= 'Cargo: __________________________';
                      $html.= '</td>';
                      $html.= '</tr>'; */
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();

                    $html .= '<table><tr>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';

                        if ($i % 2 == 0) {
                            $html .= '</tr><br/><br/><tr>';
                        }
                        $i++;
                    }

                    $html .= '</tr></table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                CASE "2":
                    $titulo = $modal;
                    $pdf->setTitulo($modal);
                    $pdf->setVersion($version);
                    $pdf->AddPage();
                    $pdf->SetFont('Times', '', 10);

                    $html = '<table border="1" cellpadding="2">';
                    $sql = <<<EOD
                select 
tab1.introductorio,
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS = $id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    //Agregamos el texto introductorio para la modalidad si existe
                    $valor = $records[0]['introductorio'];
                    if (!empty($valor)) {
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                    </tr>
EOD;
                    }
                    //Fin texto introductorio
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }

                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table>';
                    $i = 1;
                    foreach ($firmas as $firmas) {

                        if ($autorizado_extra == 1) {
                            $html .= '<tr>';
                            $html .= '<td><img width="70px" height="55px" src="images/autorizado.png" /></td>';
                            $html .= '<br/>';
                            $html .= '<br/>';
                            $html .= '</tr>';
                            $html .= '<tr>';
                        } else {
                            $html .= '<tr>';
                            $html .= '<br/>';
                            $html .= '<br/>';
                        }

                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '</tr>';
                        /* if ($i % 2 == 0) {
                          $html .= '</tr><br/><br/><tr>';
                          } */
                        $i++;
                    }

                    $html .= '</table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                default:
                    $titulo = "DOCUMENTOS Y ESTUDIOS PREVIOS";
                    $pdf->setTitulo("DOCUMENTOS Y ESTUDIOS PREVIOS");
                    $pdf->AddPage();
                    $pdf->SetFont('Times', '', 10);

                    $sql = "select tab1.codigo||' '||tab1.descripcion AS CPO
                    from co_proyecto_ep tab0
                    left join co_proyectos_all_v tab1 ON tab1.id = tab0.id_cpo and tab1.sgr = tab0.sgr
                    where tab0.id_estudios_previos = " . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $datos_cpo = $st->fetchAll();

                    $sql = "select distinct 'No. '||tab1.cdp||' del '||to_char(tab1.fecha,'dd-mm-yyyy') AS CDP
                    from co_cdps_ep tab0
                    left join co_cdps_v tab1 ON tab1.cdp = tab0.id_cdp and tab0.sgr=tab1.sgr
                    where tab0.id_estudios_previos =" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $datos_cdp = $st->fetchAll();

                    $fecha_creacion = $datos_gen[0]['FECHA_CREA'];
                    $fecha_cierre_text = $datos_gen[0]['FECHA_CIERRE_TEXT'];
                    $proceso = $datos_gen[0]['PROCESO'];
                    $aplica_proceso = $datos_gen[0]['APLICA_PROCESO'];
                    $area = $datos_gen[0]['AREA'];
                    $id_area = $datos_gen[0]['ID_AREA'];
                    $supervisor = $datos_gen[0]['SUPERVISOR'];
                    $valor = $datos_gen[0]['VALOR_TOTAL'];

                    //Cambio por fecha cierre - 20171024
                    $html = '<table border="1" cellpadding="4">';
                    if ($formato20190701 == 1) {
                        $html .= '<tr>';
                        $html .= '<td style="text-align:center;">';
                        //$html .= 'DOCUMENTO Y ESTUDIOS PREVIOS';
                        $html .= $titulo;
                        $html .= '</td>';
                        $html .= '</tr>';
                    }
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Ciudad y Fecha</b></td><td style="width:50%">Bogotá, ' . $fecha_cierre_text . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    if ($aplica_proceso == 1) {
                        $html .= '<td style="width:50%"><b>Número Proceso</b></td><td style="width:50%">' . $proceso . '</td>';
                    } else {
                        $html .= '<td style="width:50%"><b>Número de Estudio Previo</b></td><td style="width:50%">' . $proceso . '</td>';
                    }
                    $html .= '</tr>';


                    //solo activos de campo modalidad
                    $sql = "select 
                    tab2.campo_ep.tipo_captura.descripcion as descripcion_captura,
                    tab2.campo_ep.id_campo_ep as id_campo_ep,
                    tab2.campo_ep.codigo as codigo,
                    tab2.campo_ep.descripcion as descripcion,
                    tab2.campo_ep.estado as estado,
                    tab2.campo_ep.tipo_campo as tipo_campo,
                    tab2.campo_ep.tamano_campo as tamano_campo,
                    tab2.campo_ep.obligatorio as obligatorio,
                    tab2.campo_ep.aplica_relacion as aplica_relacion,
                    tab2.campo_ep.tipo_captura.descripcion as descripcion_captura,
                    tab2.campo_ep.tabla_cc.cc as nombre_cc,
                    tab2.campo_ep.tabla_cc.tabla as tabla_cc,    
                    case when lower(tab8.descripcion)=lower(tab1.descripcion) then tab1.descripcion 
                    else  tab8.descripcion||' '||tab1.descripcion end AS des_modalidad,
                    tab1.fundamentos_juridicos,
                    tab8.descripcion as tipo,
                    tab2.campo_ep.tabla_cc.campo_mostrar AS CAMPO_MOSTRAR,
                    tab2.campo_ep.tabla_cc.id_campo_buscar AS CAMPO_BUSCAR,                
                    tab7.valor, tab7.id_detalle_ep
                    from co_estudios_previos tab0
                    left join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
                    left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel  
                    left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
                    left join co_tipo_proceso tab8 ON tab8.id_tipo_proceso = tab1.id_tipo_proceso
                    where
                    1=1
                    AND tab0.id_estudios_previos=" . $id_estudios_previos . "
                    and tab2.estado = 1     
                    order by tab2.orden";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $modalidad = $detalle[0]['DES_MODALIDAD'];
                    $tipo_proceso = $detalle[0]['TIPO'];

                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>TIPO DE PROCESO</b></td><td style="width:50%">' . $modalidad . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Area:</b></td><td style="width:50%">' . $area . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Valor Total:</b></td><td style="width:50%">' . number_format($valor, 2) . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Proyecto</b></td><td style="width:50%">';
                    foreach ($datos_cpo as $datos_cpo) {

                        $html .= $datos_cpo['CPO'] . '<br/>';
                    }
                    $html .= '</td></tr>';

                    if (count($datos_cdp) > 0) {
                        $html .= '<tr><td style="width:50%"><b>Certificado de Disponibilidad Presupuestal</b></td><td style="width:50%">';
                        foreach ($datos_cdp as $datos_cdp) {

                            $html .= $datos_cdp['CDP'] . '<br/>';
                        }
                        $html .= '</td></tr>';
                    }
                    $html .= '</table>';


                    $html .= '<p style="text-align:justify">El jefe del Area solicitante certifica que la adquisicion del bien y/o servicio se encuentra incluida en el Plan Operativo y el Plan Anual de Adquisiciones y no hay existencia en el almacen del Servicio Geologico Colombiano y por lo anterior es necesaria la contratacion.</p>';
                    if ($tipo_proceso == 'Mínima Cuantía') {

                        //4 OBJETO

                        $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'objeto'
                    ";
                        $st = $consul->execute($sql);
                        $deta = $st->fetchAll();

                        $objeto = $deta[0]['VALOR'];

                        //Incidente #2345, cambio de texto para los nuevos estudios previos 2016 - 20160127
                        //Se purifica el html para el objeto - 20160524
                        if ($tag_nue == 1) {
                            $html .= '<p style="text-align:justify">En cumplimiento de lo establecido en el Artículo 2.2.1.2.1.5.1 del Decreto 1082 / 2015, el Área ' . $area . ' elabora el presente documento y estudios previos para contratar:  ' . $this->htmlClear($purifier->purify($objeto)) . '</p>';
                        } else {
                            $html .= '<p style="text-align:justify">En cumplimiento de lo establecido en el Artículo 84 del Decreto 1510 de 2013, el Área ' . $area . ' elabora el presente documento y estudios previos para contratar:  ' . $this->htmlClear($purifier->purify($objeto)) . '</p>';
                        }
                    } else {

                        if ($modal == "ARRENDAMIENTO DE BIENES INMUEBLES") {

                            //20190521 se actualiza el texto de este apartado a partir de la fecha 20190521
                            if (strtotime($fecha_creacion) < strtotime('2019-05-21')) {
                                $html .= '<p>En cumplimiento de lo establecido en el Artículo 28 del Decreto 1510 de 2013, el Área ' . $area . ' elabora el presente documento y estudios previos</p>';
                            } else {
                                $html .= '<p>En cumplimiento de lo establecido en el Artículo 2.2.1.1.2.1.1 del decreto 1082 de 2015, el Área ' . $area . ' elabora el presente documento y estudios previos</p>';
                            }
                        } else {


                            $sql = "select case when tab0.id_nivel = 1 then tab0.descripcion else (select descripcion from area where id_area = tab0.id_dependencia) end AS DIRECCION 
                            from area tab0
                            where tab0.id_area = " . $id_area;
                            $st = $consul->execute($sql);
                            $areas = $st->fetchAll();
                            $area = $areas[0]['DIRECCION'];

                            //Incidente #10200 - 20181010
                            if ($tag_nue == 1 && $modal == "CONVENIOS INTERADMINISTRATIVOS") {

                                $html .= '<p style="text-align:justify">De conformidad con lo establecido en el artículo 2.2.1.1.2.1.1 del Decreto 1082 de 2015, la ' . $area . ' , emite los presentes estudios y documentos previos, que soportan la elaboración de los documentos del proceso de selección y el contrato.<br/><br/>En atención a la previsión del artículo 25, numeral 12 de la Ley 80 de 1993, modificado por el artículo 87 de la Ley 1474 de 2011, en concordancia con el artículo 2.2.1.1.2.1.1 del Decreto 1082 de 2015, los estudios y documentos previos estarán a disposición del público durante el desarrollo del Proceso de Contratación y contienen los elementos mínimos exigidos en las normas aplicables.</p>';
                            } else if ($tag_nue == 1 && $tipo_proceso == 'Contratación Directa') {// Incidente #10378 - 20181030
                                if ($vigencia_ep >= 2018) {
                                    $testo_b = "artículo 2.2.1.1.2.1.1. del Decreto 1082 de 2015";
                                    $testo_b2 = "citado artículo";
                                } else {
                                    $testo_b = "artículo 20 del Decreto 1510 de 2013";
                                    $testo_b2 = "artículo 20 del Decreto 1510 de 2013";
                                }
                                $html .= '<p style="text-align:justify">De conformidad con lo establecido en el ' . $testo_b . ', la ' . $area . ' , con apoyo del Grupo de Contratos y Convenios, emite los presentes estudios y documentos previos, que soportan la elaboración de los documentos del proceso de selección y el contrato.<br/><br/>En atención a la previsión del artículo 25, numeral 12 de la Ley 80 de 1993, modificado por el artículo 87 de la Ley 1474 de 2011, en concordancia con el ' . $testo_b . ', los estudios y documentos previos estarán a disposición del público durante el desarrollo del Proceso de Contratación y contienen los elementos mínimos exigidos en las normas aplicables.</p>';
                            } else {

                                $html .= '<p style="text-align:justify">De conformidad con lo establecido en el artículo 20 del Decreto 1510 de 2013, la ' . $area . ' , con apoyo del Grupo de Contratos y Convenios, emite los presentes estudios y documentos previos, que soportan la elaboración de los documentos del proceso de selección y el contrato, con el fin de permitir a los proponentes valorar adecuadamente el alcance de lo requerido por el SGC y la distribución de riesgos propuesta.<br/><br/>En atención a la previsión del artículo 25, numeral 12 de la Ley 80 de 1993, modificado por el artículo 87 de la Ley 1474 de 2011, en concordancia con el artículo 20 del Decreto 1510 de 2013, los estudios y documentos previos estarán a disposición del público durante el desarrollo del Proceso de Contratación y contienen los elementos mínimos exigidos en las normas aplicables.</p>';
                            }
                        }
                    }

                    $html .= '<table border="1" cellpadding="4">';
                    foreach ($detalle as $detalle) {

                        $aplica_relacion = $detalle['APLICA_RELACION'];

                        if ($aplica_relacion == 1) {

                            $tabla = $detalle['TABLA_CC'];
                            $campo = $detalle['CAMPO_MOSTRAR'];
                            $campo_buscar = $detalle['CAMPO_BUSCAR'];
                            $valor = $detalle['VALOR'];

                            if ($valor != "") {

                                $sql = "select " . $campo . " from " . $tabla . " where " . $campo_buscar . "= " . $valor;
                                $st = $consul->execute($sql);
                                $datos = $st->fetchAll();

                                $valor_mostrar = $datos[0]['CAMPO'];
                                $titulo = $detalle['DESCRIPCION'];
                            } else {
                                $titulo = $detalle['DESCRIPCION'];
                                $valor_mostrar = "";
                            }
                            $html .= '<tr>';
                            $html .= '<td style="width:30%"><b>' . $titulo . '</b></td><td style="width:70%">' . $valor_mostrar . '</td>';
                            $html .= '</tr>';
                        } else {

                            $tipo = $detalle['DESCRIPCION_CAPTURA'];
                            $titulo = $detalle['DESCRIPCION'];
                            $codigo = $detalle['CODIGO'];
                            $valor = $detalle['VALOR'];

                            if ($tipo != "ArchivoItem") {

                                if ($tipo == "RichTextItem") {


                                    $html .= '<tr>';
                                    $html .= '<td style="width:100%" colspan="2"><b>' . $titulo . '</b></td>';
                                    $html .= '</tr>';
                                    $html .= '<tr>';
                                    $html .= '<td style="width:100%;text-align:justify" colspan="2">' . $this->htmlClear($purifier->purify($valor)) . '</td>';
                                    $html .= '</tr>';
                                } else {

                                    if ($codigo != "garantias" && $codigo != "fundamentos" && $codigo != "requisitos" && $codigo != "documentos") {
                                        $html .= '<tr>';
                                        $html .= '<td style="width:30%"td><b>' . $titulo . '</b></td><td style="width:70%">' . $valor . '</td>';
                                        $html .= '</tr>';
                                    } else {


                                        if ($codigo == "fundamentos") {

                                            $fundamentos_jur = $detalle['FUNDAMENTOS_JURIDICOS'];

                                            $html .= '<tr>';
                                            $html .= '<td style="width:30%"><b>' . $titulo . '</b></td><td style="width:70%;text-align:justify">' . $this->htmlClear($purifier->purify($fundamentos_jur)) . '</td>';
                                            $html .= '</tr>';
                                        } else if ($codigo == "garantias") {

                                            $sql = "select case when tab1.id_garantia_ep IS NULL then '' else 'X' end AS MARCA, tab0.modalidad, tab1.porcentaje, tab1.valor AS VIGENCIA_AMPARO
                                            from co_garantia tab0
                                            join co_garantia_ep tab1 ON tab1.id_garantia = tab0.id_garantia and tab1.id_estudios_previos=" . $id_estudios_previos;
                                            $st = $consul->execute($sql);
                                            $garantias = $st->fetchAll();

                                            if (count($garantias) > 0) {

                                                $html .= '<tr>';
                                                $html .= '<td style="width:30%"><b>' . $titulo . '</b></td>';
                                                $html .= '<td style="width:70%">
                                            <table border="1" style="width:100%">
                                            <tr>
                                            <td colspan="4" style="width:100%;text-align:justify">
                                            Para garantizar a la entidad el cumplimiento de todos y cada una de las obligaciones contractuales y considerando los posibles riesgos que se pueden presentar con ocasión del contrato, el contratista deberá constituir a su costa y a favor del Instituto, póliza única que ampare los siguientes riesgos</td></tr>';

                                                $html .= '<tr>
                                            <td style="width:20%;text-align:center">MARQUE CON UNA X</td>
                                            <td style="width:30%;text-align:center">MODALIDAD</td>
                                            <td style="width:20%;text-align:center">PORCENTAJE</td>
                                            <td style="width:30%;text-align:center">VIGENCIA DE AMPAROS</td>
                                            </tr>';



                                                foreach ($garantias as $garantias) {

                                                    $html .= '<tr>
                                            <td style="width:20%;text-align:center"><b>' . $garantias['MARCA'] . '</b></td>
                                            <td style="width:30%;text-align:center">' . $garantias['MODALIDAD'] . '</td>
                                            <td style="width:20%;text-align:center">' . $garantias['PORCENTAJE'] . '</td>
                                            <td style="width:30%;text-align:center">' . $garantias['VIGENCIA_AMPARO'] . '</td>
                                            </tr>';
                                                }

                                                //Incidente #2345, cambio de texto para los nuevos estudios previos 2016 - 20160127
                                                if ($tag_nue == 1) {
                                                    $html .= '<tr>
                                            <td colspan="4" style="width:100%;text-align:justify"><br/>  En  caso  de  que  se  requiera,  y  con  el  fin  de  amparar  los  perjuicios  de  naturaleza  contractual  derivados  del
    incumplimiento del contrato que pueda surgir para la administración por las actuaciones, hechos u omisiones del
    contratista, este deberá presentar las garantías requeridas de conformidad con el Decreto 1082 de 2015, articulo
    2.2.1.2.3.1.2. y concordantes, dentro de los dos (2) días hábiles siguientes a la fecha de la comunicación de la
    carta  de  aceptación  de  su  oferta.  En  caso  de  no  otorgarse  ni  presentarse  la  garantía  requerida  en  el  término
    establecido, dada la necesidad de dar inicio a la ejecución contractual la Entidad podrá retractar su aceptación y
    proceder a aceptar la oferta del oferente ubicado en el segundo lugar del orden de elegibilidad.</td></tr>';
                                                }

                                                $html .= '</table></td>';

                                                $html .= '</tr>';
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if ($tipo_proceso == 'Mínima Cuantía') {

                        $html .= '<tr>';
                        //Incidente #2345, cambio de texto para los nuevos estudios previos 2016 - 20160127
                        if ($tag_nue == 1) {
                            $fecha_creacion_ep = strtotime($fecha_creacion_estudio_previo . "00:00:00");
                            $fecha_nuevo_formato = strtotime("2021-05-14" . "00:00:00");
                            $fec_new_fort = strtotime("2024-01-01" . "00:00:00");
                            $fecha20250201 = strtotime("2025-02-01" . "00:00:00");
                            if ($fecha_creacion_ep >= $fecha_nuevo_formato) {
                                 if ($fecha_creacion_ep >= $fec_new_fort) {
                                     if ($fecha_creacion_ep >= $fecha20250201) {
                                         $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/>
                                        El presente proceso de selección estará sometido a la legislación y jurisdicción colombiana y se rige por la Ley 80 de 1993, Artículo 94 de la Ley 1474 de 2011, así como los artículos 2.2.1.2.1.5.1. a 2.2.1.2.1.5.4 del Decreto 1082 de 2015 modificado por el artículo 5 del Decreto 0142 de 2023 y el artículo 2.2.1.2.1.5.2 del Decreto 1082 de 2015 modificado por el artículo 2 del Decreto 1860 de 2021, las demás normas que las complementen, modifiquen o reglamenten y por las normas civiles y comerciales que regulen el objeto del presente proceso de selección.
                                        <br/><br/>
                                        En virtud de lo anterior y como quiera que el valor de los bienes a adquirir y servicios a prestar, no supera el 10% de la menor cuantía establecida para el presupuesto de la vigencia 2024 del Servicio Geológico Colombiano, se adelantará el proceso mediante la modalidad de SELECCIÓN DE MÍNIMA CUANTÍA.
                                        <br/><br/>
                                        Mediante la Circular No. 003 del 17 de enero de 2025, expedida por la Secretaría General del Servicio Geológico Colombiano se establecieron los límites de las cuantías para las diferentes modalidades de contratación de acuerdo al presupuesto asignado a la Entidad, así: "(…) Mínima cuantía y Mínima Cuantía Grandes Superficies Hasta 64.057.500 (…)".
                                        <br/><br/>
                                        Lo anterior de conformidad con lo previsto en el artículo 2.2.1.2.1.5.2. modificado por el artículo 2 del Decreto 1860 de 2021, en el que se señala que se seguirá el procedimiento de mínima cuantía cuando el valor del bien, servicio u obra a adquirir no exceda del diez por ciento (10%) de la menor cuantía de la Entidad contratante, independientemente de su objeto.
                                        <br/>
                                        </td></tr>';
                                     } else {
                                        $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/>
                                        El presente proceso de selección estará sometido a la legislación y jurisdicción colombiana y se rige por la Ley 80 de 1993, Artículo 94 de la Ley 1474 de 2011, así como el artículo 2.2.1.2.1.5.1 del Decreto 1082 de 2015 modificado por el artículo 5 del Decreto 0142 de 2023 y el artículo 2.2.1.2.1.5.2 del Decreto 1082 de 2015 modificado por el artículo 2 del Decreto 1860 de 2021, las demás normas que las complementen, modifiquen o reglamenten y por las normas civiles y comerciales que regulen el objeto del presente proceso de selección.
                                        <br/><br/>
                                        En virtud de lo anterior y como quiera que el valor de los bienes a adquirir y servicios a prestar, no supera el 10% de la menor cuantía establecida para el presupuesto de la vigencia 2024 del Servicio Geológico Colombiano, se adelantará el proceso mediante la modalidad de SELECCIÓN DE MÍNIMA CUANTÍA.
                                        <br/><br/>
                                        Mediante la Circular No. 006 del 13 de febrero de 2024, expedida por la Secretaría General del Servicio Geológico Colombiano se establecieron los límites de las cuantías para las diferentes modalidades de contratación de acuerdo al presupuesto asignado a la Entidad, así: "(…) Mínima cuantía y Mínima Cuantía Grandes Superficies hasta $36.400.000 (…)".
                                        <br/><br/>
                                        Lo anterior de conformidad con lo previsto en el artículo 2.2.1.2.1.5.2. modificado por el artículo 2 del Decreto 1860 de 2021, en el que se señala que se seguirá el procedimiento de mínima cuantía cuando el valor del bien, servicio u obra a adquirir no exceda del diez por ciento (10%) de la menor cuantía de la Entidad contratante, independientemente de su objeto.
                                        <br/>
                                        </td></tr>';
                                     }
                                }else{

                                    $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/> Se acoge la modalidad de contratación de Mínima Cuantía teniendo en cuenta que el presupuesto oficial asignado para la contratación no excede el 10% de la Menor Cuantía de la Entidad de conformidad con lo estipulado en la ley 2069 de 2020.</td></tr>';
                                }
                            } else {
                                $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/> Se acoge la modalidad de contratación de Mínima Cuantía teniendo en cuenta que el presupuesto oficial asignado no para la contratación no excede del 10% de la menor cuantía de la Entidad de acuerdo con lo estipulado en el artículo 2.2.1.2.1.5.2. del Decreto 1082 de 2015.</td></tr>';
                            }
                        } else {
                            $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/> Se acoge la modalidad de contratación de Mínima Cuantía teniendo en cuenta que el presupuesto oficial asignado no excede el 10% de la Menor Cuantía de la entidad, la modalidad de selección que se adopta es la Mínima Cuantía, de conformidad con lo dispuesto en el Articulo 2 de la Ley 1150 de 2007 y el Capítulo V del Decreto 1510 de 2013.</td></tr>';
                        }
                    }


                    /**
                     * Incidente #7412, area del supervisor, solo para si son funcionarios - 20171212
                     */
                    $html .= '<tr>';
                    $html .= '<td style="width:100%;text-align:justify"><b>INTERVENTOR O SUPERVISOR: </b> El supervisor o interventor para el presente contrato será ' . $supervisor . '  del grupo ' . $area_supervisor . ', quien haga sus veces o quien designe la ordenadora del gasto por escrito,  quien hará seguimiento y control del cumplimiento de las obligaciones contractuales a cargo del contratista, y recibirá a satisfacción el Objeto contratado, de acuerdo con lo establecido en el Manual de Interventoría y Supervisión del Servicio Geológico Colombiano.</td></tr>';



                    $sql = "SELECT tab0.*, tab2.descripcion as tipoevaluador

    from co_comite_evaluador tab0
    join co_seleccion_ep tab1 ON tab1.id_seleccion_ep = tab0.id_seleccion_ep and tab1.id_estudios_previos = " . $id_estudios_previos . "
    left join co_tipo_evaluador tab2 ON tab2.id_tipo_evaluador = tab0.id_tipo_evaluador";
                    $st = $consul->execute($sql);
                    $comite = $st->fetchAll();

                    if (count($comite) > 0) {

                        $html .= '<tr>';
                        $html .= '<td style="width:100%;text-align:justify"><b>DESIGNACIÓN DEL COMITE EVALUADOR</b> De conformidad con el Artículo 27 del Decreto 1510 de 2013, el Comité Evaluador para el presente proceso de Selección es el siguiente:<br/><br/>';

                        foreach ($comite as $comite) {

                            $html .= '<b>Evaluador ' . ucfirst($comite['TIPOEVALUADOR']) . ': </b>' . $comite['NOMBRE_RAZON_EVALUADOR'] . '<br/>';
                        }

                        $html .= '</td></tr>';
                    }


                    /*
                     * Se retira linea de documentos, solicitud chat TM - 20240606::LAVILA
                      $html .= '<tr>';
                      $html .= '<td style="width:100%"><b>DOCUMENTOS ANEXOS</b> Para efectos de trámite anexo los siguientes documentos:</td></tr>';

                      $sql = "select tab0.descripcion
                      from co_documento_ep tab1
                      left join co_docum_modalidad tab2 ON tab2.id_docum_modalidad = tab1.id_docum_modalidad
                      left join co_tipo_documento tab0 ON tab0.id_tipo_documento = tab2.id_tipo_documento
                      where tab1.id_estudios_previos=" . $id_estudios_previos;
                      $st = $consul->execute($sql);
                      $documentos = $st->fetchAll();


                      foreach ($documentos as $documentos) {

                      $html .= '<tr><td style="width:90%;text-align:left">' . $documentos['DESCRIPCION'] . '</td><td style="width:10%;text-align:center"><b>X</b></td></tr>';
                      }
                     */


                    $html .= '</table><br/><br/>';

                    $html .= '<p>NOTA: El documento de estudios previos deberá presentarse debidamente suscrito por el RESPONSABLE DEL AREA CORRESPONDIENTE, junto con los documentos que soporten los estudios realizados.</p><br/><br/><br/><br/><br/><br/>';

                    /**
                     *   Para la firma si la descripción o tipo es vacía coloca la firma en dos lineas y si no coloca una sola linea.

                      Dos Lineas:
                      _____________________________________
                      ARANGO OSORIO FABIO
                      COORDINADOR SERVICIOS ADMINISTRATIVOS

                      Una linea:
                      ELABORO: ESTEFANÍA INSIGNARES CASTAÑEDA - CONTRATISTA
                     */
                    /* $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                      from co_firma_ep tab0
                      join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                      where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                      $st = $consul->execute($sql);
                      $firmas = $st->fetchAll();

                      $html .= '<table>';
                      $i = 1;
                      foreach ($firmas as $firmas) {

                      if ($autorizado_extra == 1) {
                      $html .= '<tr>';
                      $html .= '<td><img width="70px" height="55px" src="images/autorizado.png" /></td>';
                      $html .= '<br/>';
                      $html .= '<br/>';
                      $html .= '</tr>';
                      $html .= '<tr>';
                      } else {
                      $html .= '<tr>';
                      $html .= '<br/>';
                      $html .= '<br/>';
                      }

                      $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';

                      if ($i % 2 == 0) {
                      $html .= '</tr><br/><br/><tr>';
                      }
                      $i++;
                      }

                      $html .= '</tr></table><br/>'; */
                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<table><tr>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        //$html.= '<br/>';
                        //$html.= '<br/>';
                        if ($autorizado_extra == 1) {
                            $html .= '<td><img width="70px" height="55px" src="images/autorizado.png" /><br/><br/>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';
                        } else {
                            $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';
                        }

                        if ($i % 2 == 0) {
                            $html .= '</tr><br/><br/><tr>';
                        }
                        $i++;
                    }

                    $html .= '</tr></table><br/>';


                    //ACTUALIZACIÓN 13/04/2015, se modifica el formato para que las firmas no se salgan de la hoja.
                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is not null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    foreach ($firmas as $firmas) {
                        //$html.= '<br/>';
                        //$html.= '<br/>';
                        $html .= '<p>' . $firmas['DESCRIPCION'] . ': ' . $firmas['NOMBRE'] . ' - ' . $firmas['CARGO'] . '</p>';
                    }
                    break;
            }



            //echo $html;
            //die();
        }

        if ($entidadCliente == "8") {
            try {
                //echo(getcwd() . "/uploads/tmp/");
                //$ruta_tmp = getcwd() . "/uploads/tmp/";
                //$wkhtmltopdf = new Wkhtmltopdf(array('path' => $ruta_tmp));
                //$wkhtmltopdf->setTitle("Prueba");
                //$wkhtmltopdf->setHtml($html);
                //$html = "esto es una prueba";
                $pdf->setHeaderSpacing("5");
                $pdf->setHeaderHtml("https://erp.comisiondelaverdad.co/contratacion/web/html.php/header_footer/header?tipo=$tipo&titulo=$titulo");
                $pdf->setFooterHtml("https://erp.comisiondelaverdad.co/contratacion/web/html.php/header_footer/footer?tipo=$tipo&titulo=$titulo");
                $pdf->setHtmlUtf8($html);
                $pdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf");
                //$wkhtmltopdf->output(Wkhtmltopdf::MODE_EMBEDDED, "file.pdf");
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        } else {
            $pdf->writeHTML($html, true, false, true, false, '');

            $pdf->Output("estudios_previos.pdf", "D");
        }

        die();
    }

    public function executePdf_borrador(sfWebRequest $request) {

        //Revisar que sea post
        //$this->forward404Unless($request->isMethod('post'));
        //Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("--------------------------------------------------* Ip: " . $_SERVER['REMOTE_ADDR']);
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");
        //Obtenemos la entidad
        /*
         * (SGC-1, ANM-2, SGR-3, CYC-4, COL-5, INCI-6, LOCAL-7)
         */
        $array = sfYaml::load(dirname(__FILE__) . '/../../../../api/config/app-gwt.yml');
        $int = 0;
        foreach ($array as $routeName => $routeData) {
            //echo $routeName . "\n";
            if ('entidad_cliente' == $routeName) {
                foreach ($routeData as $key => $value) {
                    //echo $value . "\n";
                    if ($key == 'value') {
                        $entidadCliente = $value;
                    }
                }
            }
            $int++;
        }

        $id_estudios_previos = $request['id_estudios_previos'];
        $guardar = $request['save'];
        // Se instancia el purificador
        $config = HTMLPurifier_Config::createDefault();
        //$purifier = new HTMLPurifier($config);


        switch ($entidadCliente) {
            CASE "8":
                $config->set('CSS.AllowedProperties', array());
                $config->set('HTML.ForbiddenElements', array('font'));
                $purifier = new HTMLPurifier($config);
                /* $pdf = new CDPDF('P', 'mm', 'letter');
                  $pdf->SetFont('Times', 'B', 8);
                  $pdf->SetFillColor(255);
                  $pdf->SetTextColor(0);
                  $pdf->setTipo(10); */
                //20200204 Llamado a nueva libreria Wkhtmltopdf
                $ruta_tmp = getcwd() . "/uploads/tmp/";
                $pdf = new Wkhtmltopdf(array('path' => $ruta_tmp));
                $tipo = "10";
                break;
            CASE "2":
                $config->set('CSS.AllowedProperties', array());
                $config->set('HTML.ForbiddenElements', array('font'));
                $purifier = new HTMLPurifier($config);
                $pdf = new CDPDF6('P', 'mm', 'letter');
                $pdf->SetFont('Times', 'B', 8);
                $pdf->SetFillColor(255);
                $pdf->SetTextColor(0);
                $pdf->setTipo(12);
                $pdf->SetFont('Times', '', 10);
                break;
            default:
                $purifier = new HTMLPurifier($config);
                $pdf = new CDPDF6('P', 'mm', 'letter');
                $pdf->SetFont('Times', 'B', 8);
                $pdf->SetFillColor(255);
                $pdf->SetTextColor(0);
                $pdf->setTipo(8);
                $pdf->SetFont('Times', '', 10);
                break;
        }

        $consul = Doctrine_Manager::getInstance()->connection();

        //pie de pagina de aprobado - 20200918
        $sql = "SELECT
apr.*,
ter.num_doc,
initcap_sofhouse(INITCAP(ter.razon_soc)) as razon_soc

FROM co_aprueba_ep apr

left join interceros_v ter
on ter.id_mae_ter = apr.id_usuario_aprueba

where
apr.id_estudios_previos = " . $id_estudios_previos;
        $st = $consul->execute($sql);
        $detalle = $st->fetchAll();
        if (count($detalle) > 0) {
            $razon_soc = "Aprobado: " . $detalle[0]['RAZON_SOC'];
            $pdf->setAprobado($razon_soc);
        }

        if ($entidadCliente == "1") {
            //Obtenemos la fecha de generacion del contrato para identificar si se aplica el formtato a usar a partir del 1ero de julio del 2019
            $formato20190701 = 1;
            $pdf->setTipo(8);
            $sql = "select tab0.fecha_contrato
    from co_contrato tab0
    LEFT JOIN co_seleccion_ep tab1 ON tab1.id_seleccion_ep = tab0.id_seleccion_ep
    LEFT JOIN co_estudios_previos tab2 ON tab2.id_estudios_previos = tab1.id_estudios_previos 
    where tab2.id_estudios_previos =" . $id_estudios_previos;
            $st = $consul->execute($sql);
            $detalle = $st->fetchAll();
            if (count($detalle) > 0) {
                $fecha = $detalle[0]['FECHA_CONTRATO'];
                if (true) {
                    if (strtotime($fecha) < strtotime('2019-07-01')) {
                        $formato20190701 = 0;
                        $pdf->setTipo(2);
                    }
                }
            }
            //$pdf->AddPage();
        }

        //fecha_per - 20200925
        $sql = "select to_char(max(fecha_fin),'yyyy-mm-dd') as fecha_per from no_periodo where id_tipo_periodo = 1";
        $st = $consul->execute($sql);
        $detalle_per = $st->fetchAll();
        if (count($detalle_per) > 0) {
            $fecha_per = $detalle_per[0]['FECHA_PER'];
        }

        // Header
        //$pdf->AddPage();
        //$pdf->SetFont('Times', '', 10);

        /**
         * Incidente #2204 <-> Se agrega cant_sgr y tag_nue( 1 -> nuevo, 0 -> anterior), para conocer si es de texto anterior a 2016 - 2016012
         * Se modifica, para tener encuenta la  tabla co_seleccion_ep 
         *      Si fechacierre no es vacia y tiene seleccion ep, valida fecha inicio, coloca año de fecha inicio y nuevo texto
         *      Si fechacierre no es vacia y no tiene seleccion ep, coloca año actual y nuevo texto
         *      Si fechacierre es vacio, coloca año actual y nuevo texto
         * - 20160112
         * Se agrega area del supervisor desde nomina - 20171212
         */
        $sql = "select


tab0.id_estudios_previos,
tab0.version,
case 
when tab0.fecha_cierre is not null and (select count(ep.id_seleccion_ep) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) >= 1 
--and to_char((select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos), 'yyyy') >= 2015 
then to_char((select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos), 'yyyy')
else to_char(sysdate, 'YYYY') end as anho_actual_texto,
to_char(sysdate, 'YYYY') as anho_actual,
tab0.fecha_cierre,
(select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) as fecha_seleccion_ep,
--case when tab0.fecha_cierre is null or to_char(tab0.fecha_cierre, 'YYYY') >= '2016' or to_char(tab0.fecha_creacion, 'YYYY') >= '2016' then 1 else 0 end as tag_nue,
case 
when tab0.fecha_cierre is not null and (select count(ep.id_seleccion_ep) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) >= 1 
and to_char((select min(ep.fecha_inicio) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos), 'yyyy') >= 2016 then 1 
when tab0.fecha_cierre is not null and (select count(ep.id_seleccion_ep) from co_seleccion_ep ep where ep.estado = 1 and ep.id_estudios_previos = tab0.id_estudios_previos) = 0 then 1
when tab0.fecha_cierre is null then 1 
else 0 end as tag_nue,

case when tab0.fecha_creacion >= to_date('2022-07-01','yyyy-mm-dd') then 1 else 0 end as tag_nue20220725,

(select count(co_proyecto_ep.id_proyecto_ep) from co_proyecto_ep where tab0.id_estudios_previos = co_proyecto_ep.id_estudios_previos and co_proyecto_ep.sgr = 1) as cant_sgr,

( select tab.vigencia_inicial || ' - ' || tab.vigencia_final from doble_anualidad@PNG_SGR tab where tab0.id_anhos between tab.vigencia_inicial and tab.vigencia_final and rownum <= 1) as text_vigencia,
( select tab.vigencia_inicial || ' - ' || tab.vigencia_final from doble_anualidad@PNG_SGR tab where to_char(sysdate, 'YYYY') between tab.vigencia_inicial and tab.vigencia_final and rownum <= 1) as text_actual_vigencia,

tab0.id_anhos,tab0.autorizado_extra,

to_char(tab0.fecha_creacion,'yyyy-mm-dd') AS FECHA_CREA,
to_char(tab0.FECHA_CIERRE,'yyyy-mm-dd') AS FECHA_CIERRE_TEXT,
tab0.proceso AS PROCESO,tab1.aplica_proceso as aplica_proceso,
tab2.descripcion as area, tab0.valor as valor_total, tab3.razon_soc as supervisor,tab1.descripcion as modal, tab0.id_area,

tab3.num_doc as num_doc_supervisor,
upper(nvl(area.descripcion,tab2.descripcion)) as area_supervisor

from co_estudios_previos_v tab0

join co_modalidad_sel tab1 ON tab1.id_modalidad_sel = tab0.id_modalidad_sel
left join area tab2 ON tab2.id_area = tab0.id_area
left join interceros_v tab3 ON tab3.id_mae_ter = tab0.id_supervisor

left join no_estado_func_v estfunc
on estfunc.num_doc = tab3.num_doc
and estfunc.id_anhos = extract(year from nvl(tab0.FECHA_CIERRE, to_date('" . $fecha_per . "','yyyy-mm-dd') ))
and estfunc.id_meses = extract(month from nvl(tab0.FECHA_CIERRE, to_date('" . $fecha_per . "','yyyy-mm-dd') ))

left join no_periodo_v per
on per.id_periodo = estfunc.periodo

left join area area
ON area.id_area = estfunc.id_ea

where 
tab0.id_estudios_previos = " . $id_estudios_previos . "
and nvl(per.id_tipo_periodo,1) = 1 ";

        $st = $consul->execute($sql);
        $datos_gen = $st->fetchAll();

        //Incidente #7947, la vigencia_ep para el cambio de texto por nuevas normas - 20180109
        $modal = $datos_gen[0]['MODAL'];
        $version = $datos_gen[0]['VERSION'];
        $vigencia_ep = $vigencia = $datos_gen[0]['ID_ANHOS'];
        $anho_actual_texto = $datos_gen[0]['ANHO_ACTUAL_TEXTO'];
        $text_vigencia = $datos_gen[0]['TEXT_VIGENCIA'];
        $cant_sgr = $datos_gen[0]['CANT_SGR'];
        $tag_nue = $datos_gen[0]['TAG_NUE'];
        $tag_nue20220725 = $datos_gen[0]['TAG_NUE20220725']; //tag_nue20220725
        $area_supervisor = $datos_gen[0]['AREA_SUPERVISOR'];
        $fecha_creacion_estudio_previo = $datos_gen[0]['FECHA_CREA'];

        if ($modal == "PRESTACIÓN DE SERVICIOS PROFESIONALES Y DE APOYO A LA GESTIÓN") {
            switch ($entidadCliente) {
                CASE "8":
                    $titulo = $modal;
                    /* $pdf->setTitulo($modal);
                      $pdf->AddPage();
                      $pdf->SetFont('Times', '', 10); */
                    $pdf->setTitle($titulo);
                    $html = '<table style="border-collapse: collapse;border:1px solid;margin:0;padding:0">';
                    $sql = <<<EOD
                select 
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS =$id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }
                    //SE ESTABLECE SECCION REA DE ORIGEN LUEGO DE TODOS LOS CAMPOS Y ANTES DE LAS FIRMAS TICKET 15089
                    $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>AREA DE ORIGEN</b></td>
                    </tr>
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%"><br/></td>
                    </tr>
EOD;
                    /* $html.= '<tr>';
                      $html.= '<td colspan="2" style="text-align:justify;width:100%">';
                      $html.= '<br/>';
                      $html.= '<br/>';
                      //Mostramos firmas configuradas para el Estudio previo en la tabla co_firma_ep
                      $html.= 'Nombre: __________________________';
                      $html.= '<br/>';
                      $html.= 'Cargo: __________________________';
                      $html.= '</td>';
                      $html.= '</tr>'; */
                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table><tr>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';

                        if ($i % 2 == 0) {
                            $html .= '</tr><br/><br/><tr>';
                        }
                        $i++;
                    }

                    $html .= '</tr></table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                CASE "2":
                    $titulo = $modal;
                    $pdf->setTitulo($modal);
                    $pdf->setVersion($version);
                    $pdf->AddPage();
                    $pdf->SetFont('Times', '', 10);
                    $html = '<table border="1" cellpadding="2">';
                    $sql = <<<EOD
                select 
tab1.introductorio,
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS = $id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    //Agregamos el texto introductorio para la modalidad si existe
                    $valor = $records[0]['introductorio'];
                    if (!empty($valor)) {
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                    </tr>
EOD;
                    }
                    //Fin texto introductorio
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }

                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<tr>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '</tr>';
                        /* if ($i % 2 == 0) {
                          $html .= '</tr><br/><br/><tr>';
                          } */
                        $i++;
                    }

                    $html .= '</table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                default:
                    /*
                     * Incidente #36328, nuevo titulo - 20230814::LAVILA
                     */
                    //$titulo = "JUSTIFICACIÓN PARA LA CELEBRACIÓN DE CONTRATOS DE PRESTACIÓN DE SERVICIOS CON PERSONAS NATURALES";
                    $titulo = "JUSTIFICACIÓN PARA LA CELEBRACIÓN DE CONTRATOS DE PRESTACIÓN DE SERVICIOS CON PERSONAS NATURALES Y/O JURÍDICAS";
                    $pdf->setTitulo($titulo);
                    $pdf->AddPage();


                    $html = '<table border="1" cellpadding="2">';

                    if ($formato20190701 == 1) {
                        $html .= '<tr>';
                        $html .= '<td style="text-align:center;">';
                        //$html .= 'DOCUMENTO Y ESTUDIOS PREVIOS';
                        $html .= $titulo;
                        $html .= '</td>';
                        $html .= '</tr>';
                    }

                    //1 CIUDAD Y FECHA

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'ciudad_fecha'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $ciudad = $detalle[0]['VALOR'];

                    $html .= '<tr>
                    <td style="text-align:left;width:50%"><b>Ciudad y Fecha:</b></td>
                    <td style="text-align:left;width:50%">' . $ciudad . '</td>
                    </tr>';

                    //2 NOMBRE CARGO

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'solicitante'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $solicitante = $detalle[0]['VALOR'];

                    $literal_d = '';
                    /*
                      Se modifica, para tener encuenta la  tabla co_seleccion_ep
                     *      Si fechacierre no es vacia y tiene seleccion ep, valida fecha inicio, coloca año de fecha inicio y nuevo texto
                     *      Si fechacierre no es vacia y no tiene seleccion ep, coloca año actual y nuevo texto
                     *      Si fechacierre es vacio, coloca año actual y nuevo texto
                     * - 20160112 
                     */
                    if ($tag_nue == 1) {
                        $vigencia = $anho_actual_texto;
                        if ($cant_sgr >= 1) {
                            //$literal_d = 'Presupuesto de Gastos SGR para la bianualidad ' . $text_vigencia . ', en';
                            $literal_d = 'Presupuesto de Gastos SGR para la bianualidad ' . $text_vigencia . ''; // Incidente #10478 - 20181115
                            if ($tag_nue20220725 == 1) {
                                $literal_d = 'Presupuesto de Gastos SGR para el bienio ' . $text_vigencia . ''; // Incidente #30724 - 20220725                                
                            }
                        } else {
                            //$literal_d = 'Presupuesto de Gastos para la vigencia ' . $vigencia . ', en';
                            $literal_d = 'Presupuesto de Gastos para la vigencia actual'; // Incidente #10478 - 20181115
                        }
                    } else {
                        $vigencia = $vigencia;
                        $literal_d = 'Plan Operativo';
                    }

                    // Incidente #10478 - 20181115
                    //<td style="text-align:justify;width:100%";colspan="2">El jefe del Area solicitante certifica que la adquisicion del bien y/o servicio se encuentra incluida en el ' . $literal_d . ' y el Plan Anual de Adquisiciones y no hay existencia en el almacen del Servicio Geologico Colombiano y por lo anterior es necesaria la contratación.</td>
                    $html .= '

                    <tr>
                    <td style="text-align:left;width:50%"><b>Nombre y cargo del solicitante:</b></td>
                    <td style="text-align:left;width:50%">' . $solicitante . '</td>
                    </tr>
                    <tr>
                    <td style="text-align:justify;width:100%";colspan="2">El ordenador del gasto del área solicitante certifica que el objeto cuya contratación se requiere, se encuentra incluido en el ' . $literal_d . ' y en el plan anual de adquisiciones, del mismo modo certifica, que validado con el grupo de Talento Humano de la entidad, no existe personal de planta para realizar las actividades u obligaciones derivadas y/o el personal existente no es suficiente.</td>
                    </tr>';

                    //3 NECESIDAD

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'necesidad_area'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $necesidad = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>DESCRIPCIÓN DE LA NECESIDAD QUE LA ENTIDAD PRETENDE SATISFACER CON LA CONTRATACIÓN</b></td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($necesidad)) . '</td>
                    </tr>';

                    //4 OBJETO

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'objeto'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $objeto = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%"><b>OBJETO DEL CONTRATO</b></td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($objeto)) . '</td>
                    </tr>';

                    // Código UNSPSC
                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'codigo'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();
                    if (count(detalle) > 0) {
                        $codigoUNSPSC = $detalle[0]['VALOR'];

                        $html .= '

        <tr>
        <td colspan="2" style="text-align:justify;width:100%"><b>CÓDIGO UNSPSC</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($codigoUNSPSC)) . '</td>
        </tr>';
                    }

                    // PLAN ANUAL DE ADQUISICIÓN
                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'plan'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();
                    if (count(detalle) > 0) {
                        $planAnual = $detalle[0]['VALOR'];
                        $html .= '

        <tr>
        <td colspan="2" style="text-align:justify;width:100%"><b>PLAN ANUAL DE ADQUISICIÓN</b></td>
        </tr>

        <tr>
        <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($planAnual)) . '</td>
        </tr>';
                    }

                    //5 OBLIGACIONES DEL CONTRATISTA

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'obliga_contratista'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $obliga_contratista = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>OBLIGACIONES DEL CONTRATISTA</b></td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($obliga_contratista)) . '</td>
                    </tr>';

                    //6 FUNDAMENTOS DE LA MODALIDAD

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'justificacion_modali'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $justificacion_modali = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:center;width:100%"><b>B: FUNDAMENTOS JURÍDICOS QUE SOPORTAN LA MODALIDAD DE SELECCIÓN</b></td>
                    </tr>';

                    //6 FUNDAMENTOS DE LA MODALIDAD

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'jefe'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $jefe = $detalle[0]['VALOR'];

                    if ($vigencia_ep >= 2018) {
                        $testo_b = "artículo 2.2.1.2.1.4.9. del Decreto 1082 de 2015";
                        $testo_b2 = "citado artículo";
                    } else {
                        $testo_b = "artículo 81 del Decreto 1510 de 2013";
                        $testo_b2 = "artículo 81 del Decreto 1510 de 2013";
                    }

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%"><b>' . $jefe . '</b>, para dar cumplimiento a lo dispuesto en el ' . $testo_b . ', señala:</td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">Que la presente contratación se rige por lo establecido en el ' . $testo_b . '.<br/>Que analizada la documentación presentada por la persona a contratar, se pudo verificar cada uno de los datos suministrados, lo que permitió establecer que posee las calidades indicadas e idoneidad con relación al objeto del contrato.<br/>Que en consecuencia, haciendo uso de la facultad prevista en el ' . $testo_b2 . ', en lo relacionado con la idoneidad y experiencia para la contratación de prestación de servicios profesionales y apoyo a la gestión, se solicita la contratación a que se refiere el presente documento.</td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:center;width:100%"><b>C. INFORMACIÓN DEL CONTRATO</b></td>
                    </tr>';

                    //7. CONTRATISTA 

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'nombre_contra'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $nombre_contra = $detalle[0]['VALOR'];

                    //8. PROFESION 

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'profesion'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $profesion = $detalle[0]['VALOR'];

                    //9. IDENTIFICACION y TIPO DOCUMENTO
                    $sql = "select tab7.valor
                from co_detalle_ep tab7
        join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                where
                1=1
                AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'tipo_doc'
                ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $tipo_doc = $detalle[0]['VALOR'];

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'num_iden'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $num_iden = $detalle[0]['VALOR'];

                    //10. EXPEDIDA EN 

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'expedida'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $expedida = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td style="text-align:left;width:50%">Que por la anterior justificación, se hace necesario contratar a: ' . $nombre_contra . '</td>
                    <td style="text-align:left;width:50%"><b>Profesión o actividad: </b>' . $profesion . '</td>
                    </tr>

                    <tr>
                    <td style="text-align:left;width:50%"><b>Identificado con</b>' . $tipo_doc . $num_iden . '</td>
                    <td style="text-align:left;width:50%"><b>Expedida en: </b>' . $expedida . '</td>
                    </tr>';

                    //11. PLAZO

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'plazo'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $plazo = $detalle[0]['VALOR'];

                    //12.   VALOR

                    $sql = "select numero_a_texto(tab0.valor)||' PESOS M/CTE' VALOR_LETRAS, tab0.valor
                    from co_estudios_previos tab0
                    where tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $valor = $detalle[0]['VALOR'];
                    $valor_letras = $detalle[0]['VALOR_LETRAS'];


                    $html .= '

                    <tr>
                    <td style="text-align:left;width:50%"><b>Plazo: </b>' . $this->htmlClear($purifier->purify($plazo)) . '</td>
                    <td style="text-align:left;width:50%"><b>Valor del contrato: </b>' . $valor_letras . ' (' . number_format($valor) . ')</td>
                    </tr>';

                    //13. FORMA DE PAGO

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'forma_pago'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $forma_pago = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td style="text-align:left;width:50%"><b>Forma de Pago</b></td>
                    <td style="text-align:left;width:50%">' . $this->htmlClear($purifier->purify($forma_pago)) . '</td>
                    </tr>';

                    //14. SEDE

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'sede'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $sede = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td style="text-align:left;width:50%"><b>Sede donde se prestará el servicio:</b></td>
                    <td style="text-align:left;width:50%">' . $sede . '</td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">Es necesario que el contratista tenga desplazamientos fuera de la sede habitual de prestación del servicio?<br/> <br/>SI   __ NO ___ <br/> <br/>El SERVICIO GEOLÓGICO COLOMBIANO pagará los gastos de desplazamiento correspondientes según la equivalencia establecida para los viáticos de los funcionarios.<br/><br/>El SERVICIO GEOLÓGICO COLOMBIANO proveerá los elementos necesarios para la prestación del servicio en campo y oficina.</td>
                    </tr>';

                    $modal = $datos_gen[0]['MODAL'];

                    //15. NOMBRE Y CARGO DEL SUPERVISOR

                    $supervisor = $datos_gen[0]['SUPERVISOR'];


                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'cargo_supervisor'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $cargo_supervisor = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td style="text-align:left;width:50%"><b>CARGO DEL SUPERVISOR</b></td>
                    <td style="text-align:left;width:50%">' . $cargo_supervisor . ' </td>
                    </tr>';

                    //16. RIESGOS

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'riesgo'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $riesgo = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>SOPORTE PARA TIPIFICAR, ESTIMAR Y ASIGNAR LOS RIESGOS PREVISIBLES</b></td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($riesgo)) . '</td>
                    </tr>';

                    //17. GARANTIAS

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'garantia'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $garantia = $detalle[0]['VALOR'];

                    $html .= '

                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>ANALISIS QUE SUSTENTA LA EXIGENCIA DE LAS GARANTIAS</b></td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">' . $this->htmlClear($purifier->purify($garantia)) . '</td>
                    </tr>
  
                    <tr>
                    <td colspan="2" style="text-align:center;width:100%"><b>D: INFORMACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
                    </tr>';

                    //18. TALENTO HUMANO

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'coordina_talento'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $coordina_talento = $detalle[0]['VALOR'];

                    //Se cambia por co_proyectos_all_v, ya que esta vista tiene todos los proyectos y discrimina si es sgr o no - 20160108
                    $sql = "select 
    tab1.codigo||' '||tab1.descripcion AS CPO,
    tab0.*,
    tab1.sgr as sgr_all_v
    from co_proyecto_ep tab0
    left join co_proyectos_all_v tab1 ON tab1.id = tab0.id_cpo and tab1.sgr = tab0.sgr
    where tab0.id_estudios_previos = " . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $datos_cpo = $st->fetchAll();
                    $proyecto = "";
                    $arrayProyectos = array();
                    foreach ($datos_cpo as $datos_cpo) {

                        $proyectos .= $datos_cpo['CPO'] . '<br/>';
                        array_push($arrayProyectos, $datos_cpo['CPO']);
                    }

                    /**
                     * SOLICITUD MODIFICACION TEXTO ESTUDIOS PREVIOS 
                     * En los Estudios Previos de Contratacion, se debe condicionar parte del texto del literal D: INFORMACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA, asi:

                      Reemplazar la parte que dice:

                      que, de acuerdo con el Plan Operativo aprobado para la vigencia , en


                      Si tiene un proyecto relacionado del SGR,:
                      que, de acuerdo con el Presupuesto de Gastos aprobado para la bianualidad 2015 - 2016,  en

                      Si no es el SGR
                      que, de acuerdo con el Presupuesto de Gastos aprobado para la vigencia 2016 , en
                     * 
                     * - 20160108
                     */
                    //$literal_d = 'que, de acuerdo con el Plan Operativo aprobado para la vigencia ' . $vigencia . ', en';
                    $literal_d = '';
                    /*
                      Se modifica, para tener encuenta la  tabla co_seleccion_ep
                     *      Si fechacierre no es vacia y tiene seleccion ep, valida fecha inicio, coloca año de fecha inicio y nuevo texto
                     *      Si fechacierre no es vacia y no tiene seleccion ep, coloca año actual y nuevo texto
                     *      Si fechacierre es vacio, coloca año actual y nuevo texto
                     * - 20160112 
                     */
                    if ($tag_nue == 1) {
                        $vigencia = $anho_actual_texto;
                        if ($cant_sgr >= 1) {
                            $literal_d = 'que, de acuerdo con el Presupuesto de Gastos SGR aprobado para la bianualidad ' . $text_vigencia . ', en';
                            if ($tag_nue20220725 == 1) {
                                $literal_d = 'que, de acuerdo con el Presupuesto de Gastos SGR aprobado para el bienio ' . $text_vigencia . ', en'; // Incidente #30724 - 20220725                                
                            }
                        } else {
                            $literal_d = 'que, de acuerdo con el Presupuesto de Gastos aprobado para la vigencia ' . $vigencia . ', en';
                        }
                    } else {
                        $vigencia = $vigencia;
                        $literal_d = 'que, de acuerdo con el Plan Operativo aprobado para la vigencia ' . $vigencia . ', en';
                    }

                    $html .= '

                    <tr>
                    <td style="text-align:left;width:100%">' . strtoupper($coordina_talento) . '</td>
                    </tr>

                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">Manifiesta ' . $literal_d . ' relación con las necesidades de personal identificadas y autorizadas por los respectivos Jefes de Dependencia, y atendiendo la solicitud de ' . $jefe . ' , se revisó que la fecha no existe personal disponible y suficiente para ejecutar las actividades requeridas por el Proyecto ' . $proyectos . '.<br/><br/><br/>

                    <br/><br/><p style="text-align:center"><b>_________________________________________<br/>COORDINADOR(A) GRUPO DE TALENTO HUMANO</b></p>
                     </td>
                    </tr>';

                    //19. ORDENADOR

                    $sql = "select tab7.valor
                    from co_detalle_ep tab7
                    join co_campo_ep tab1 ON tab1.id_campo_ep = tab7.id_campo_ep
                    where
                    1=1
                    AND tab7.id_estudios_previos=" . $id_estudios_previos . " and tab1.codigo = 'ordenador'
                    ";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $ordenador = $detalle[0]['VALOR'];
                    if (strtotime('2022-12-01') < strtotime($fecha_creacion_estudio_previo)) {
                        $html .= '
                        <tr>
                        <td colspan="2" style="text-align:center;width:100%"><b>E: CERTIFICACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
                        </tr>



                        <tr>
                        <td style="text-align:left;width:100%"> ' . strtoupper($ordenador) . '</td>
                        </tr>


                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución 480 de 22 de diciembre 
                        de 2022, se certifica que teniendo en cuenta la información contenida en el literal D del presente documento, 
                        que la Entidad no cuenta con el personal de planta suficiente para completar el equipo de trabajo del 
                        Proyecto ' . implode(',', $arrayProyectos) . '.<br/><br/>

                        De acuerdo con el artículo 2.2.1.2.1.4.9 del Decreto 1082 de 2015, el Servicio Geológico Colombiano podrá contratar 
                        directamente con la persona natural y/o jurídica que esté en capacidad de ejecutar el objeto del contrato siempre y que haya 
                        demostrado la idoneidad o experiencia directamente relacionada con el área de que se trate. En este caso, no es necesario que 
                        la entidad estatal haya obtenido previamente varias ofertas. por tratarse de una contratación directa.<br/><br/><br/>

                        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>
                        DIRECTOR(A) TECNICO Y/O SECRETARIA GENERAL<br/>
                        (La Secretaria General sólo firmará el estudio previo cuando la necesidad sea de los Grupos que la integran)</b></p>
                         </td>
                        </tr>
                        </table>';
                    } else if (strtotime('2022-10-01') < strtotime($fecha_creacion_estudio_previo)) { // Aplica nuevo texto
                        $html .= '
                        <tr>
                        <td colspan="2" style="text-align:center;width:100%"><b>E: CERTIFICACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
                        </tr>



                        <tr>
                        <td style="text-align:left;width:100%"> ' . strtoupper($ordenador) . '</td>
                        </tr>


                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución No. D-337 del 23 de 
                        diciembre de 2013 “Por la cual se delegan unas funciones”, modificada mediante Resolución No. D-439 del 29 de noviembre de 2022
                        “Por medio de la cual se modifica la Resolución 337 de 23 de diciembre de 2013 y se deroga la resolución No. 420 de 15 de 
                        noviembre de 2022”, se certifica que teniendo en cuenta la información contenida en el literal D del presente documento, 
                        que la Entidad no cuenta con el personal de planta suficiente para completar el equipo de trabajo del 
                        Proyecto ' . $proyectos . '.<br/><br/>

                        De acuerdo con el artículo 2.2.1.2.1.4.9 del Decreto 1082 de 2015, el Servicio Geológico Colombiano podrá contratar 
                        directamente con la persona natural y/o jurídica que esté en capacidad de ejecutar el objeto del contrato siempre y que haya 
                        demostrado la idoneidad o experiencia directamente relacionada con el área de que se trate. En este caso, no es necesario que 
                        la entidad estatal haya obtenido previamente varias ofertas.<br/><br/><br/>

                        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>
                        DIRECTOR TÉCNICO O SECRETARIA GENERAL</b></p>
                         </td>
                        </tr>
                        </table>';
                    } else {

                        // Incidente #10478 - 20181115
                        //<td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución 337 del 23 de diciembre de 2013, certifica, teniendo en cuenta la información contenida en el literal D del presente documento, que la Entidad no cuenta con el personal suficiente para completar el equipo de trabajo del Proyecto ' . $proyectos . '.<br/>De acuerdo con lo previsto en el artículo 81 del Decreto 1510 de 2013, para efectuar la presente contratación no es necesaria la obtención de varias ofertas.<br/><br/><br/>
                        $html .= '
                        <tr>
                        <td colspan="2" style="text-align:center;width:100%"><b>E: CERTIFICACIÓN SOBRE INSUFICIENCIA DE PERSONAL DE PLANTA</b></td>
                        </tr>

                        <tr>
                        <td style="text-align:left;width:100%">' . strtoupper($ordenador) . '</td>
                        </tr>


                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">De conformidad con lo previsto en la Resolución 337 del 23 de diciembre de 2013, certifica, teniendo en cuenta la información contenida en el literal D del presente documento, que la Entidad no cuenta con el personal suficiente para completar el equipo de trabajo del Proyecto ' . $proyectos . '.<br/>De acuerdo con lo previsto en el articulo 2.2.1.2.1.4.9 del Decreto 1082 de 2015, para efectuar la presente contratación no es necesaria la obtención de varias ofertas.<br/><br/><br/>

                        <br/><br/><p style="text-align:center"><b>_________________________________________<br/>ORDENADOR(A) DEL GASTO</b></p>
                         </td>

                        </tr>
                        </table>';
                    }
                    break;
            }
        } else {
            switch ($entidadCliente) {
                CASE "8":
                    $titulo = $modal;
                    /* $pdf->setTitulo($modal);
                      $pdf->AddPage();
                      $pdf->SetFont('Times', '', 10); */
                    $pdf->setTitle($titulo);
                    $html = '<table style="border-collapse: collapse;border:1px solid;margin:0;padding:0">';
                    $sql = <<<EOD
                select 
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS =$id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }
                    //SE ESTABLECE SECCION REA DE ORIGEN LUEGO DE TODOS LOS CAMPOS Y ANTES DE LAS FIRMAS TICKET 15089
                    $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>AREA DE ORIGEN</b></td>
                    </tr>
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%"><br/></td>
                    </tr>
EOD;
                    /* $html.= '<tr>';
                      $html.= '<td colspan="2" style="text-align:justify;width:100%">';
                      $html.= '<br/>';
                      $html.= '<br/>';
                      //Mostramos firmas configuradas para el Estudio previo en la tabla co_firma_ep
                      $html.= 'Nombre: __________________________';
                      $html.= '<br/>';
                      $html.= 'Cargo: __________________________';
                      $html.= '</td>';
                      $html.= '</tr>'; */
                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table><tr>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';

                        if ($i % 2 == 0) {
                            $html .= '</tr><br/><br/><tr>';
                        }
                        $i++;
                    }

                    $html .= '</tr></table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                CASE "2":
                    $titulo = $modal;
                    $pdf->setTitulo($modal);
                    $pdf->setVersion($version);
                    $pdf->AddPage();
                    $pdf->SetFont('Times', '', 10);
                    $html = '<table border="1" cellpadding="2">';
                    $sql = <<<EOD
                select 
tab1.introductorio,
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
tab2.campo_ep.descripcion AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab2.campo_ep.fase_ep.orden as HOJA,
tab2.orden
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
where
1=1  
and tab0.ID_ESTUDIOS_PREVIOS = $id_estudios_previos
order by tab2.campo_ep.fase_ep.orden,tab2.orden  
EOD;
                    $st = $consul->execute($sql);
                    $records = $st->fetchAll();
                    //Agregamos el texto introductorio para la modalidad si existe
                    $valor = $records[0]['introductorio'];
                    if (!empty($valor)) {
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                    </tr>
EOD;
                    }
                    //Fin texto introductorio
                    foreach ($records as $rec) {
                        $codigo = $rec['CODIGO'];
                        $tit = $rec['DESCRIPCION'];
                        $valor = $rec['VALOR'];
                        $valor = $this->htmlClear($purifier->purify($valor));
                        $html .= <<<EOD
                    <tr>
                    <td colspan="2" style="text-align:left;width:100%"><b>$tit</b></td>
                    </tr>
EOD;
                        //if(strtoupper($codigo) != 'TITULO'){
                        if (stristr(strtoupper($codigo), 'TITULO') === FALSE) {
                            $html .= <<<EOD
                        <tr>
                        <td colspan="2" style="text-align:justify;width:100%">$valor</td>
                        </tr>
EOD;
                        }
                    }

                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    $html .= '<tr>';
                    $html .= '<td colspan="2" style="text-align:justify;width:100%">';
                    $html .= '<table>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        $html .= '<tr>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';
                        $html .= '<br/>';
                        $html .= '<br/>';
                        $html .= '</tr>';
                        /* if ($i % 2 == 0) {
                          $html .= '</tr><br/><br/><tr>';
                          } */
                        $i++;
                    }

                    $html .= '</table><br/>';
                    $html .= '</td>';
                    $html .= '</tr>';
                    $html .= '</table>';
                    break;
                default:

                    $pdf->AddPage();

                    $sql = "select tab1.codigo||' '||tab1.descripcion AS CPO
                    from co_proyecto_ep tab0
                    left join co_proyectos_all_v tab1 ON tab1.id = tab0.id_cpo and tab1.sgr = tab0.sgr
                    where tab0.id_estudios_previos = " . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $datos_cpo = $st->fetchAll();

                    $sql = "select distinct 'No. '||tab1.cdp||' del '||to_char(tab1.fecha,'dd-mm-yyyy') AS CDP
                    from co_cdps_ep tab0
                    left join co_cdps_v tab1 ON tab1.cdp = tab0.id_cdp and tab1.sgr=tab0.sgr
                    where tab0.id_estudios_previos =" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $datos_cdp = $st->fetchAll();

                    $fecha_creacion = $datos_gen[0]['FECHA_CREA'];
                    $proceso = $datos_gen[0]['PROCESO'];
                    $aplica_proceso = $datos_gen[0]['APLICA_PROCESO'];
                    $area = $datos_gen[0]['AREA'];
                    $id_area = $datos_gen[0]['ID_AREA'];
                    $supervisor = $datos_gen[0]['SUPERVISOR'];
                    $valor = $datos_gen[0]['VALOR_TOTAL'];


                    $html = '<table border="1" cellpadding="4">';
                    if ($formato20190701 == 1) {
                        $html .= '<tr>';
                        $html .= '<td style="text-align:center;">';
                        $html .= 'DOCUMENTO Y ESTUDIOS PREVIOS';
                        $html .= '</td>';
                        $html .= '</tr>';
                    }
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Fecha de Solicitud</b></td><td style="width:50%">' . $fecha_creacion . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    if ($aplica_proceso == 1) {
                        $html .= '<td style="width:50%"><b>Número Proceso</b></td><td style="width:50%">' . $proceso . '</td>';
                    } else {
                        $html .= '<td style="width:50%"><b>Número de Estudio Previo</b></td><td style="width:50%">' . $proceso . '</td>';
                    }
                    $html .= '</tr>';



                    $sql = "select 
                    tab2.campo_ep.tipo_captura.descripcion as descripcion_captura,
                    tab2.campo_ep.id_campo_ep as id_campo_ep,
                    tab2.campo_ep.codigo as codigo,
                    tab2.campo_ep.descripcion as descripcion,
                    tab2.campo_ep.estado as estado,
                    tab2.campo_ep.tipo_campo as tipo_campo,
                    tab2.campo_ep.tamano_campo as tamano_campo,
                    tab2.campo_ep.obligatorio as obligatorio,
                    tab2.campo_ep.aplica_relacion as aplica_relacion,
                    tab2.campo_ep.tipo_captura.descripcion as descripcion_captura,
                    tab2.campo_ep.tabla_cc.cc as nombre_cc,
                    tab2.campo_ep.tabla_cc.tabla as tabla_cc,    
                    case when lower(tab8.descripcion)=lower(tab1.descripcion) then tab1.descripcion 
                    else  tab8.descripcion||' '||tab1.descripcion end AS des_modalidad,
                    tab1.fundamentos_juridicos,
                    tab8.descripcion as tipo,
                    tab2.campo_ep.tabla_cc.campo_mostrar AS CAMPO_MOSTRAR,
                    tab2.campo_ep.tabla_cc.id_campo_buscar AS CAMPO_BUSCAR,                
                    tab7.valor, tab7.id_detalle_ep
                    from co_estudios_previos tab0
                    left join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
                    left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
                    left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
                    left join co_tipo_proceso tab8 ON tab8.id_tipo_proceso = tab1.id_tipo_proceso
                    where
                    1=1
                    AND tab0.id_estudios_previos=" . $id_estudios_previos . "
                    order by tab2.orden";
                    $st = $consul->execute($sql);
                    $detalle = $st->fetchAll();

                    $modalidad = $detalle[0]['DES_MODALIDAD'];
                    $tipo_proceso = $detalle[0]['TIPO'];
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>TIPO DE PROCESO</b></td><td style="width:50%">' . $modalidad . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Area:</b></td><td style="width:50%">' . $area . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Valor Total:</b></td><td style="width:50%">' . number_format($valor, 2) . '</td>';
                    $html .= '</tr>';
                    $html .= '<tr>';
                    $html .= '<td style="width:50%"><b>Proyecto</b></td><td style="width:50%">';
                    foreach ($datos_cpo as $datos_cpo) {

                        $html .= $datos_cpo['CPO'] . '<br/>';
                    }
                    $html .= '</td></tr>';
                    //
                    $html .= '<tr><td style="width:50%"><b>Certificado de Disponibilidad Presupuestal</b></td><td style="width:50%">';
                    foreach ($datos_cdp as $datos_cdp) {

                        $html .= $datos_cdp['CDP'] . '<br/>';
                    }
                    $html .= '</td></tr>';

                    $html .= '</table>';

                    $html .= '<p style="text-align:justify">El jefe del Area solicitante certifica que la adquisicion del bien y/o servicio se encuentra incluida en el Plan Operativo y el Plan Anual de Adquisiciones y no hay existencia en el almacen del Servicio Geologico Colombiano y por lo anterior es necesaria la contratacion.</p>';
                    if ($tipo_proceso == 'Mínima Cuantía') {

                        $html .= '<p>En cumplimiento de lo establecido en el Artículo 20 del Decreto 1510 de 2013, el Área ' . $area . ' elabora el presente documento y estudios previos</p>';
                    } else {

                        if ($modal == "ARRENDAMIENTO DE BIENES INMUEBLES") {

                            //20190521 se actualiza el texto de este apartado a partir de la fecha 20190521
                            if (strtotime($fecha_creacion) < strtotime('2019-05-21')) {
                                $html .= '<p>En cumplimiento de lo establecido en el Artículo 28 del Decreto 1510 de 2013, el Área ' . $area . ' elabora el presente documento y estudios previos</p>';
                            } else {
                                $html .= '<p>En cumplimiento de lo establecido en el Artículo 2.2.1.1.2.1.1 del decreto 1082 de 2015, el Área ' . $area . ' elabora el presente documento y estudios previos</p>';
                            }
                        } else {

                            $sql = "select case when tab0.id_nivel = 1 then tab0.descripcion else (select descripcion from area where id_area = tab0.id_dependencia) end AS DIRECCION 
                            from area tab0
                            where tab0.id_area = " . $id_area;
                            $st = $consul->execute($sql);
                            $areas = $st->fetchAll();
                            $area = $areas[0]['DIRECCION'];

                            //Incidente #10200 - 20181010
                            if ($tag_nue == 1 && $modal == "CONVENIOS INTERADMINISTRATIVOS") {
                                $html .= '<p style="text-align:justify">De conformidad con lo establecido en el artículo 2.2.1.1.2.1.1 del Decreto 1082 de 2015, la ' . $area . ' , emite los presentes estudios y documentos previos, que soportan la elaboración de los documentos del proceso de selección y el contrato.<br/><br/>En atención a la previsión del artículo 25, numeral 12 de la Ley 80 de 1993, modificado por el artículo 87 de la Ley 1474 de 2011, en concordancia con el artículo 2.2.1.1.2.1.1 del Decreto 1082 de 2015, los estudios y documentos previos estarán a disposición del público durante el desarrollo del Proceso de Contratación y contienen los elementos mínimos exigidos en las normas aplicables.</p>';
                            } else if ($tag_nue == 1 && $tipo_proceso == 'Contratación Directa') {// Incidente #10378 - 20181030
                                if ($vigencia_ep >= 2018) {
                                    $testo_b = "artículo 2.2.1.1.2.1.1. del Decreto 1082 de 2015";
                                    $testo_b2 = "citado artículo";
                                } else {
                                    $testo_b = "artículo 20 del Decreto 1510 de 2013";
                                    $testo_b2 = "artículo 20 del Decreto 1510 de 2013";
                                }
                                $html .= '<p style="text-align:justify">De conformidad con lo establecido en el ' . $testo_b . ', la ' . $area . ' , con apoyo del Grupo de Contratos y Convenios, emite los presentes estudios y documentos previos, que soportan la elaboración de los documentos del proceso de selección y el contrato.<br/><br/>En atención a la previsión del artículo 25, numeral 12 de la Ley 80 de 1993, modificado por el artículo 87 de la Ley 1474 de 2011, en concordancia con el ' . $testo_b . ', los estudios y documentos previos estarán a disposición del público durante el desarrollo del Proceso de Contratación y contienen los elementos mínimos exigidos en las normas aplicables.</p>';
                            } else {
                                $html .= '<p style="text-align:justify">De conformidad con lo establecido en el artículo 20 del Decreto 1510 de 2013, la ' . $area . ' , con apoyo del Grupo de Contratos y Convenios, emite los presentes estudios y documentos previos, que soportan la elaboración de los documentos del proceso de selección y el contrato, con el fin de permitir a los proponentes valorar adecuadamente el alcance de lo requerido por el SGC y la distribución de riesgos propuesta.<br/><br/>En atención a la previsión del artículo 25, numeral 12 de la Ley 80 de 1993, modificado por el artículo 87 de la Ley 1474 de 2011, en concordancia con el artículo 20 del Decreto 1510 de 2013, los estudios y documentos previos estarán a disposición del público durante el desarrollo del Proceso de Contratación y contienen los elementos mínimos exigidos en las normas aplicables.</p>';
                            }
                        }
                    }

                    $html .= '<table border="1" cellpadding="4">';
                    foreach ($detalle as $detalle) {

                        $aplica_relacion = $detalle['APLICA_RELACION'];

                        if ($aplica_relacion == 1) {

                            $tabla = $detalle['TABLA_CC'];
                            $campo = $detalle['CAMPO_MOSTRAR'];
                            $campo_buscar = $detalle['CAMPO_BUSCAR'];
                            $valor = $detalle['VALOR'];

                            if ($valor != "") {

                                $sql = "select " . $campo . " from " . $tabla . " where " . $campo_buscar . "= " . $valor;
                                $st = $consul->execute($sql);
                                $datos = $st->fetchAll();

                                $valor_mostrar = $datos[0]['CAMPO'];
                                $titulo = $detalle['DESCRIPCION'];
                            } else {
                                $titulo = $detalle['DESCRIPCION'];
                                $valor_mostrar = "";
                            }
                            $html .= '<tr>';
                            $html .= '<td style="width:30%"><b>' . $titulo . '</b></td><td style="width:70%">' . $valor_mostrar . '</td>';
                            $html .= '</tr>';
                        } else {

                            $tipo = $detalle['DESCRIPCION_CAPTURA'];
                            $titulo = $detalle['DESCRIPCION'];
                            $codigo = $detalle['CODIGO'];
                            $valor = $detalle['VALOR'];

                            if ($tipo != "ArchivoItem") {

                                if ($tipo == "RichTextItem") {


                                    $html .= '<tr>';
                                    $html .= '<td style="width:100%" colspan="2"><b>' . $titulo . '</b></td>';
                                    $html .= '</tr>';
                                    $html .= '<tr>';
                                    $html .= '<td style="width:100%;text-align:justify" colspan="2">' . $this->htmlClear($purifier->purify($valor)) . '</td>';
                                    $html .= '</tr>';
                                } else {

                                    if ($codigo != "garantias" && $codigo != "fundamentos" && $codigo != "requisitos" && $codigo != "documentos") {
                                        $html .= '<tr>';
                                        $html .= '<td style="width:30%"td><b>' . $titulo . '</b></td><td style="width:70%">' . $valor . '</td>';
                                        $html .= '</tr>';
                                    } else {


                                        if ($codigo == "fundamentos") {

                                            $fundamentos_jur = $detalle['FUNDAMENTOS_JURIDICOS'];

                                            $html .= '<tr>';
                                            $html .= '<td style="width:30%"><b>' . $titulo . '</b></td><td style="width:70%;text-align:justify">' . $this->htmlClear($purifier->purify($fundamentos_jur)) . '</td>';
                                            $html .= '</tr>';
                                        } else if ($codigo == "garantias") {

                                            $sql = "select case when tab1.id_garantia_ep IS NULL then '' else 'X' end AS MARCA, tab0.modalidad, tab1.porcentaje, tab1.valor AS VIGENCIA_AMPARO
                                            from co_garantia tab0
                                            join co_garantia_ep tab1 ON tab1.id_garantia = tab0.id_garantia and tab1.id_estudios_previos=" . $id_estudios_previos;
                                            $st = $consul->execute($sql);
                                            $garantias = $st->fetchAll();

                                            if (count($garantias) > 0) {

                                                $html .= '<tr>';
                                                $html .= '<td style="width:30%"><b>' . $titulo . '</b></td>';

                                                $html .= '<td style="width:70%">
                                            <table border="1" style="width:100%">
                                            <tr>
                                            <td colspan="4" style="width:100%;text-align:justify">
                                            Para garantizar a la entidad el cumplimiento de todos y cada una de las obligaciones contractuales y considerando los posibles riesgos que se pueden presentar con ocasión del contrato, el contratista deberá constituir a su costa y a favor del Instituto, póliza única que ampare los siguientes riesgos</td></tr>';

                                                $html .= '<tr>
                                            <td style="width:20%;text-align:center">MARQUE CON UNA X</td>
                                            <td style="width:30%;text-align:center">MODALIDAD</td>
                                            <td style="width:20%;text-align:center">PORCENTAJE</td>
                                            <td style="width:30%;text-align:center">VIGENCIA DE AMPAROS</td>
                                            </tr>';



                                                foreach ($garantias as $garantias) {

                                                    $html .= '<tr>
                                            <td style="width:20%;text-align:center"><b>' . $garantias['MARCA'] . '</b></td>
                                            <td style="width:30%;text-align:center">' . $garantias['MODALIDAD'] . '</td>
                                            <td style="width:20%;text-align:center">' . $garantias['PORCENTAJE'] . '</td>
                                            <td style="width:30%;text-align:center">' . $garantias['VIGENCIA_AMPARO'] . '</td>
                                            </tr>';
                                                }

                                                //Incidente #2345, cambio de texto para los nuevos estudios previos 2016 - 20160127
                                                if ($tag_nue == 1) {
                                                    $html .= '<tr>
                                            <td colspan="4" style="width:100%;text-align:justify"><br/>  En  caso  de  que  se  requiera,  y  con  el  fin  de  amparar  los  perjuicios  de  naturaleza  contractual  derivados  del
    incumplimiento del contrato que pueda surgir para la administración por las actuaciones, hechos u omisiones del
    contratista, este deberá presentar las garantías requeridas de conformidad con el Decreto 1082 de 2015, articulo
    2.2.1.2.3.1.2. y concordantes, dentro de los dos (2) días hábiles siguientes a la fecha de la comunicación de la
    carta  de  aceptación  de  su  oferta.  En  caso  de  no  otorgarse  ni  presentarse  la  garantía  requerida  en  el  término
    establecido, dada la necesidad de dar inicio a la ejecución contractual la Entidad podrá retractar su aceptación y
    proceder a aceptar la oferta del oferente ubicado en el segundo lugar del orden de elegibilidad.</td></tr>';
                                                }

                                                $html .= '</table></td>';

                                                $html .= '</tr>';
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if ($tipo_proceso == 'Mínima Cuantía') {

                        $html .= '<tr>';

                        //Incidente #2345, cambio de texto para los nuevos estudios previos 2016 - 20160127
                        if ($tag_nue == 1) {
                            $fecha_creacion_ep = strtotime($fecha_creacion_estudio_previo . "00:00:00");
                            $fecha_nuevo_formato = strtotime("2021-05-14" . "00:00:00");
                            $fec_new_fort = strtotime("2024-01-01" . "00:00:00");
                            $fecha20250201 = strtotime("2025-02-01" . "00:00:00");

                            if ($fecha_creacion_ep >= $fecha_nuevo_formato) {

                                if ($fecha_creacion_ep >= $fec_new_fort) {
                                    if ($fecha_creacion_ep >= $fecha20250201) {
                                        $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/>
                                        El presente proceso de selección estará sometido a la legislación y jurisdicción colombiana y se rige por la Ley 80 de 1993, Artículo 94 de la Ley 1474 de 2011, así como los artículos 2.2.1.2.1.5.1. a 2.2.1.2.1.5.4 del Decreto 1082 de 2015 modificado por el artículo 5 del Decreto 0142 de 2023 y el artículo 2.2.1.2.1.5.2 del Decreto 1082 de 2015 modificado por el artículo 2 del Decreto 1860 de 2021, las demás normas que las complementen, modifiquen o reglamenten y por las normas civiles y comerciales que regulen el objeto del presente proceso de selección.
                                        <br/><br/>
                                        En virtud de lo anterior y como quiera que el valor de los bienes a adquirir y servicios a prestar, no supera el 10% de la menor cuantía establecida para el presupuesto de la vigencia 2024 del Servicio Geológico Colombiano, se adelantará el proceso mediante la modalidad de SELECCIÓN DE MÍNIMA CUANTÍA.
                                        <br/><br/>
                                        Mediante la Circular No. 003 del 17 de enero de 2025, expedida por la Secretaría General del Servicio Geológico Colombiano se establecieron los límites de las cuantías para las diferentes modalidades de contratación de acuerdo al presupuesto asignado a la Entidad, así: "(…) Mínima cuantía y Mínima Cuantía Grandes Superficies Hasta 64.057.500 (…)".
                                        <br/><br/>
                                        Lo anterior de conformidad con lo previsto en el artículo 2.2.1.2.1.5.2. modificado por el artículo 2 del Decreto 1860 de 2021, en el que se señala que se seguirá el procedimiento de mínima cuantía cuando el valor del bien, servicio u obra a adquirir no exceda del diez por ciento (10%) de la menor cuantía de la Entidad contratante, independientemente de su objeto.
                                        <br/>
                                        </td></tr>';
                                    } else {
                                        $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/>
                                        El presente proceso de selección estará sometido a la legislación y jurisdicción colombiana y se rige por la Ley 80 de 1993, Artículo 94 de la Ley 1474 de 2011, así como el artículo 2.2.1.2.1.5.1 del Decreto 1082 de 2015 modificado por el artículo 5 del Decreto 0142 de 2023 y el artículo 2.2.1.2.1.5.2 del Decreto 1082 de 2015 modificado por el artículo 2 del Decreto 1860 de 2021, las demás normas que las complementen, modifiquen o reglamenten y por las normas civiles y comerciales que regulen el objeto del presente proceso de selección.
                                        <br/><br/>
                                        En virtud de lo anterior y como quiera que el valor de los bienes a adquirir y servicios a prestar, no supera el 10% de la menor cuantía establecida para el presupuesto de la vigencia 2024 del Servicio Geológico Colombiano, se adelantará el proceso mediante la modalidad de SELECCIÓN DE MÍNIMA CUANTÍA.
                                        <br/><br/>
                                        Mediante la Circular No. 006 del 13 de febrero de 2024, expedida por la Secretaría General del Servicio Geológico Colombiano se establecieron los límites de las cuantías para las diferentes modalidades de contratación de acuerdo al presupuesto asignado a la Entidad, así: "(…) Mínima cuantía y Mínima Cuantía Grandes Superficies hasta $36.400.000 (…)".
                                        <br/><br/>
                                        Lo anterior de conformidad con lo previsto en el artículo 2.2.1.2.1.5.2. modificado por el artículo 2 del Decreto 1860 de 2021, en el que se señala que se seguirá el procedimiento de mínima cuantía cuando el valor del bien, servicio u obra a adquirir no exceda del diez por ciento (10%) de la menor cuantía de la Entidad contratante, independientemente de su objeto.
                                        <br/>
                                        </td></tr>';
                                    }
                                }else{

                                    $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/> Se acoge la modalidad de contratación de Mínima Cuantía teniendo en cuenta que el presupuesto oficial asignado para la contratación no excede el 10% de la Menor Cuantía de la Entidad de conformidad con lo estipulado en la ley 2069 de 2020.</td></tr>';
                                }
                            } else {
                                $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/> Se acoge la modalidad de contratación de Mínima Cuantía teniendo en cuenta que el presupuesto oficial asignado no para la contratación no excede del 10% de la menor cuantía de la Entidad de acuerdo con lo estipulado en el artículo 2.2.1.2.1.5.2. del Decreto 1082 de 2015.</td></tr>';
                            }
                        } else {
                            $html .= '<td style="width:100%;text-align:justify"><b>FUNDAMENTOS JURÍDICOS QUE SUSTENTAN LA MODALIDAD </b> <br/><br/> Se acoge la modalidad de contratación de Mínima Cuantía teniendo en cuenta que el presupuesto oficial asignado no excede el 10% de la Menor Cuantía de la entidad, la modalidad de selección que se adopta es la Mínima Cuantía, de conformidad con lo dispuesto en el Articulo 2 de la Ley 1150 de 2007 y el Capítulo V del Decreto 1510 de 2013.</td></tr>';
                        }
                    }

                    /**
                     * Incidente #7412, area del supervisor, solo para si son funcionarios - 20171212
                     */
                    $html .= '<tr>';
                    $html .= '<td style="width:100%;text-align:justify"><b>INTERVENTOR O SUPERVISOR: </b> El supervisor o interventor para el presente contrato será' . $supervisor . '  del grupo ' . $area_supervisor . ', quien haga sus veces o quien designe la ordenadora del gasto por escrito,  quien hará seguimiento y control del cumplimiento de las obligaciones contractuales a cargo del contratista, y recibirá a satisfacción el Objeto contratado, de acuerdo con lo establecido en el Manual de Interventoría y Supervisión del Servicio Geológico Colombiano.</td></tr>';





                    $sql = "SELECT tab0.*, tab2.descripcion as tipoevaluador

    from co_comite_evaluador tab0
    join co_seleccion_ep tab1 ON tab1.id_seleccion_ep = tab0.id_seleccion_ep and tab1.id_estudios_previos = " . $id_estudios_previos . "
    left join co_tipo_evaluador tab2 ON tab2.id_tipo_evaluador = tab0.id_tipo_evaluador";
                    $st = $consul->execute($sql);
                    $comite = $st->fetchAll();

                    if (count($comite) > 0) {

                        $html .= '<tr>';
                        $html .= '<td style="width:100%;text-align:justify"><b>DESIGNACIÓN DEL COMITE EVALUADOR</b> De conformidad con el Artículo 27 del Decreto 1510 de 2013, el Comité Evaluador para el presente proceso de Selección es el siguiente:<br/><br/>';

                        foreach ($comite as $comite) {

                            $html .= '<b>Evaluador ' . ucfirst($comite['TIPOEVALUADOR']) . ': </b>' . $comite['NOMBRE_RAZON_EVALUADOR'] . '<br/>';
                        }

                        $html .= '</td></tr>';
                    }


                    /*
                     * Se retira linea de documentos, solicitud chat TM - 20240606::LAVILA
                      $html .= '<tr>';
                      $html .= '<td style="width:100%"><b>DOCUMENTOS ANEXOS</b> Para efectos de trámite anexo los siguientes documentos:</td></tr>';

                      $sql = "select tab0.descripcion
                      from co_documento_ep tab1
                      left join co_docum_modalidad tab2 ON tab2.id_docum_modalidad = tab1.id_docum_modalidad
                      left join co_tipo_documento tab0 ON tab0.id_tipo_documento = tab2.id_tipo_documento
                      where tab1.id_estudios_previos=" . $id_estudios_previos;
                      $st = $consul->execute($sql);
                      $documentos = $st->fetchAll();


                      foreach ($documentos as $documentos) {

                      $html .= '<tr><td style="width:90%;text-align:left">' . $documentos['DESCRIPCION'] . '</td><td style="width:10%;text-align:center"><b>X</b></td></tr>';
                      } */




                    $html .= '</table><br/><br/>';

                    $html .= '<p>NOTA: El documento de estudios previos deberá presentarse debidamente suscrito por el RESPONSABLE DEL AREA CORRESPONDIENTE, junto con los documentos que soporten los estudios realizados.</p><br/><br/>';

                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();

                    $html .= '<table><tr>';
                    $i = 1;
                    foreach ($firmas as $firmas) {
                        //$html.= '<br/>';
                        //$html.= '<br/>';
                        $html .= '<td>_____________________________________<br/>' . $firmas['NOMBRE'] . '<br/>' . $firmas['CARGO'] . '<br/></td>';

                        if ($i % 2 == 0) {
                            $html .= '</tr><br/><br/><tr>';
                        }
                        $i++;
                    }

                    $html .= '</tr></table><br/>';

                    //ACTUALIZACIÓN 13/04/2015, se modifica el formato para que las firmas no se salgan de la hoja.

                    $sql = "select tab0.*,tab1.num_doc, tab1.razon_soc AS NOMBRE
                   from co_firma_ep tab0 
                   join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_mae_ter
                   where tab0.descripcion is not null and tab0.id_estudios_previos=" . $id_estudios_previos;
                    $st = $consul->execute($sql);
                    $firmas = $st->fetchAll();
                    foreach ($firmas as $firmas) {
                        //$html.= '<br/>';
                        //$html.= '<br/>';
                        $html .= '<p>' . $firmas['DESCRIPCION'] . ': ' . $firmas['NOMBRE'] . ' - ' . $firmas['CARGO'] . '</p>';
                    }
                    break;
            }



            //echo $html;
            //die();
        }
        if ($entidadCliente == "8") {
            try {
                //echo(getcwd() . "/uploads/tmp/");
                //$ruta_tmp = getcwd() . "/uploads/tmp/";
                //$wkhtmltopdf = new Wkhtmltopdf(array('path' => $ruta_tmp));
                //$wkhtmltopdf->setTitle("Prueba");
                //$wkhtmltopdf->setHtml($html);
                //$html = "esto es una prueba";
                $pdf->setHeaderSpacing("5");
                $pdf->setHeaderHtml("https://erp.comisiondelaverdad.co/contratacion/web/html.php/header_footer/header?tipo=$tipo&titulo=$titulo");
                $pdf->setFooterHtml("https://erp.comisiondelaverdad.co/contratacion/web/html.php/header_footer/footer?tipo=$tipo&titulo=$titulo");
                $pdf->setHtmlUtf8($html);
                $pdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf");
                //$wkhtmltopdf->output(Wkhtmltopdf::MODE_EMBEDDED, "file.pdf");
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        } else {
            $pdf->writeHTML($html, true, false, true, false, '');

            if ($guardar != null) {
                if ($guardar == true) {
                    $id = $request['id_estudios_previos'];
                    $val = "estudios_previos_" . $id_estudios_previos . ".pdf";
                    $uploadDir = sfConfig::get("sf_upload_dir");
                    $ruta = $uploadDir . '/adj_estudios_previos/';
                    $pdf->Output($ruta . $val, "F");
                    $uploadDir = sfConfig::get("sf_upload_dir");
                    $ruta = $uploadDir . '/documentos/';

                    $pdf->Output($ruta . $val, "F");
                }
            } else {
                $pdf->Output("estudios_previos.pdf", "D");
            }
        }




        die();
    }

    public function executePdf_comentario(sfWebRequest $request) {

        /*
         * (SGC-1, ANM-2, SGR-3, CYC-4, COL-5, INCI-6, LOCAL-7)
         */
        $array = sfYaml::load(dirname(__FILE__) . '/../../../../api/config/app-gwt.yml');
        $int = 0;
        foreach ($array as $routeName => $routeData) {
            //echo $routeName . "\n";
            if ('entidad_cliente' == $routeName) {
                foreach ($routeData as $key => $value) {
                    //echo $value . "\n";
                    if ($key == 'value') {
                        $entidadCliente = $value;
                    }
                }
            }
            $int++;
        }
        $saveFile = false;
        if (isset($request['savefile']) && $request['savefile'] == "true") {
            $saveFile = true;
        }


        $id_estudios_previos = $request['id_estudios_previos'];

        $config = HTMLPurifier_Config::createDefault();
        //$purifier = new HTMLPurifier($config);

        $consul = Doctrine_Manager::getInstance()->connection();
        switch ($entidadCliente) {
            CASE "8":
                $config->set('CSS.AllowedProperties', array());
                $config->set('HTML.ForbiddenElements', array('font'));
                $purifier = new HTMLPurifier($config);
                /* $pdf = new CDPDF('P', 'mm', 'letter');
                  $pdf->SetFont('Times', 'B', 8);
                  $pdf->SetFillColor(255);
                  $pdf->SetTextColor(0);
                  $pdf->setTipo(10); */
                //20200204 Llamado a nueva libreria Wkhtmltopdf
                $ruta_tmp = getcwd() . "/uploads/tmp/";
                $pdf = new Wkhtmltopdf(array('path' => $ruta_tmp));
                $tipo = "10";
                break;
            CASE "2":
                $config->set('CSS.AllowedProperties', array());
                $config->set('HTML.ForbiddenElements', array('font'));
                $purifier = new HTMLPurifier($config);
                $pdf = new CDPDF6('P', 'mm', 'letter');
                $pdf->SetFont('Times', 'B', 8);
                $pdf->SetFillColor(255);
                $pdf->SetTextColor(0);
                $pdf->setTipo(11);
                $pdf->SetFont('Times', '', 10);
                break;
            default:
                $purifier = new HTMLPurifier($config);
                $pdf = new CDPDF6('P', 'mm', 'letter');
                $pdf->SetFont('Times', 'B', 8);
                $pdf->SetFillColor(255);
                $pdf->SetTextColor(0);
                $pdf->setTipo(8);
                $pdf->SetFont('Times', '', 10);
                break;
        }

        /*
         * Filtro para que levante por CO_ESTUDIOS_PREVIOS y por FASE
         */
        if (isset($request['id_estudios_previos'])) {
            $whereEstudiosFase = "AND tab0.id_estudios_previos='" . $request['id_estudios_previos'] . "'";
        }
        /*
         * Obtiene las vigencias/periodo que se encuentre en la tabla de saldos
         */
        $sql = <<<EOD
SELECT *
                    
from(
                 
select 
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
case when tab8.id_campo_obliga is null then tab2.campo_ep.descripcion||' ' when tab8.obligatorio = 0 then tab2.campo_ep.descripcion||' ' else tab2.campo_ep.descripcion||' '||'(Obligatorio)' end AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
tab2.campo_ep.tamano_campo as tamano_campo,
tab2.campo_ep.obligatorio as obligatorio,
tab2.campo_ep.aplica_relacion as aplica_relacion,
tab2.campo_ep.tipo_captura.descripcion as descripcion_captura,
tab2.campo_ep.tabla_cc.cc as nombre_cc,
tab2.campo_ep.tabla_cc.tabla as tabla_cc,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab7.id_detalle_ep,
tab2.orden,
tab7.comentario as comentario,
tab0.version as version,
tab2.campo_ep.fase_ep.id_fase_ep as nro_fase
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep    
   where
1=1  
$whereEstudiosFase

                    
union all 
    
select 
tab2.campo_ep.id_campo_ep as id_campo_ep,
tab2.campo_ep.codigo as codigo,
case when tab8.id_campo_obliga is null then tab2.campo_ep.descripcion||' ' when tab8.obligatorio = 0 then tab2.campo_ep.descripcion||' ' else tab2.campo_ep.descripcion||' '||'(Obligatorio)' end AS descripcion,                     
tab2.campo_ep.estado as estado,
tab2.campo_ep.tipo_campo as tipo_campo,
tab2.campo_ep.tamano_campo as tamano_campo,
tab2.campo_ep.obligatorio as obligatorio,
tab2.campo_ep.aplica_relacion as aplica_relacion,
'DescargarItem' as descripcion_captura,
tab2.campo_ep.tabla_cc.cc as nombre_cc,
tab2.campo_ep.tabla_cc.tabla as tabla_cc,
case when tab7.valor is null then tab2.default_value else tab7.valor end as valor,  
tab7.id_detalle_ep,
tab2.orden,
tab7.comentario as comentario,
tab0.version as version,
tab2.campo_ep.fase_ep.id_fase_ep as nro_fase
from co_estudios_previos tab0
join co_modalidad_sel tab1 on tab0.id_modalidad_sel=tab1.id_modalidad_sel
left join co_campo_modalidad tab2 on tab1.id_modalidad_sel=tab2.id_modalidad_sel
left join co_detalle_ep tab7 on tab0.id_estudios_previos=tab7.id_estudios_previos and tab2.campo_ep.id_campo_ep=tab7.id_campo_ep
left join co_campo_obliga tab8 ON tab8.id_modalidad_sel = tab0.id_modalidad_sel and tab8.id_campo_ep = tab2.campo_ep.id_campo_ep
where

tab2.campo_ep.tipo_captura.descripcion='ArchivoItem' and tab7.valor is not null 
$whereEstudiosFase
)order by orden,descripcion_captura
                    
                    
EOD;
        $st = $consul->execute($sql);
        $records = $st->fetchAll();


        $titulo = "Detalles Estudio Previo: " . $id_estudios_previos . " con comentario.";
        $version = $records[0]['VERSION'];
        $pdf->setTitulo($titulo);
        $pdf->setVersion($version);
        $pdf->AddPage();
        $pdf->SetFont('Times', '', 10);


        $html .= '<table border="1" cellpadding="4">';

        //$html .= '<tr>';
        //$html .= '<td style="width:100%;text-align:center"><b>' . $titulo . '</b></td>';
        //$html .= '</tr>';
        $i = 0;
        foreach ($records as $rec) {
            $i++;
            $fase = "Fase Nro " . $rec['NRO_FASE'] . ":";
            $comen = "Comentario: ";
            $descripcion = $rec['DESCRIPCION'];
            $valor = $rec['VALOR'];
            $comentario = $rec['COMENTARIO'];
            if ($descripcion != null) {
                $html .= '<tr>';
                $html .= '<td style="width:30%"><b>' . $fase . '</b></td><td style="width:70%">' . $descripcion . '</td>';
                $html .= '</tr>';
            }
            if ($valor != null) {
                $html .= '<tr>';
                $html .= '<td style="width:100%;text-align:justify" colspan="2">' . $this->htmlClear($purifier->purify($valor)) . '</td>';
                $html .= '</tr>';
            }
            if ($comentario != null) {
                $html .= '<tr>';
                $html .= '<td style="width:30%"><b>' . $comen . '</b></td><td style="width:70%;text-align:justify" colspan="2">' . $comentario . '</td>';
                $html .= '</tr>';
            }
        }
        $html .= '</table>';
        if ($entidadCliente == "8") {
            try {
                //echo(getcwd() . "/uploads/tmp/");
                //$ruta_tmp = getcwd() . "/uploads/tmp/";
                //$wkhtmltopdf = new Wkhtmltopdf(array('path' => $ruta_tmp));
                //$wkhtmltopdf->setTitle("Prueba");
                //$wkhtmltopdf->setHtml($html);
                //$html = "esto es una prueba";
                $pdf->setHeaderSpacing("5");
                $pdf->setHeaderHtml("https://erp.comisiondelaverdad.co/contratacion/web/html.php/header_footer/header?tipo=$tipo&titulo=$titulo");
                $pdf->setFooterHtml("https://erp.comisiondelaverdad.co/contratacion/web/html.php/header_footer/footer?tipo=$tipo&titulo=$titulo");
                $pdf->setHtmlUtf8($html);
                $pdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf");
                //$wkhtmltopdf->output(Wkhtmltopdf::MODE_EMBEDDED, "file.pdf");
            } catch (Exception $e) {
                echo $e->getMessage();
            }
        } else {
            $pdf->writeHTML($html, true, false, true, false, '');
            if (!$saveFile) {
                $this->logMessage("GENERAR CONTRATO PARA DESCARGAR");
                $this->pdf->Output("detalle_estudios_previos_$id_estudios_previos.pdf", "D");
            } else {
                $this->logMessage("GENERAR Y GUARDAR DETALLE ESTUDIO PREVIO EN :" . $_SERVER['DOCUMENT_ROOT'] . "/contratacion/web/uploads/tmp/");
                $this->pdf->Output($_SERVER['DOCUMENT_ROOT'] . "/contratacion/web/uploads/tmp/detalle_estudios_previos_$id_estudios_previos.pdf", "F");
                /* if($service_url_new) {
                  $url = $service_url_new . "radicacionvirtualcuentas/file/index.json";
                  $file_name_with_full_path = $_SERVER['DOCUMENT_ROOT'] . "/contratacion/web/uploads/contrato/contrato_" . $id_contrato . ".pdf";
                  $cFile = curl_file_create($file_name_with_full_path);
                  $post = array('funcionalidad' => 'adj_contrato','file_name' => "contrato_" . $id_contrato . ".pdf",'file'=> $cFile);
                  $ch = curl_init();
                  curl_setopt($ch, CURLOPT_URL,$url);
                  curl_setopt($ch, CURLOPT_POST,1);
                  curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                  $result= curl_exec($ch);
                  curl_close ($ch);
                  } */
            }
            //$pdf->Output("detalle_estudios_previos.pdf", "D");            
        }




        die();
    }

    /**
     *
     * Metodo que reemplaza las etiquetas html para modificar el formato de tamaño y alineación de los textos
     */
    private function htmlClear($string) {

        $string = str_replace('<p>', '<p align="justify">', $string);
        $string = str_replace('<br>', '<br/>', $string);
        $string = str_replace('class=', '', $string);
        $string = str_replace('<img', '', $string);
        $string = str_replace('<td>X</td>', '<td align="center">X</td>', $string);
        $string = str_replace('<td rowspan="2">', '<td rowspan="2" align="justify">', $string);

        $string = str_replace('<font size="2">', '<font size="10">', $string);
        $string = str_replace('<font size="3">', '<font size="12">', $string);
        $string = str_replace('<font size="4">', '<font size="14">', $string);
        $string = str_replace('<font size="5">', '<font size="18">', $string);
        $string = str_replace('<font size="6">', '<font size="24">', $string);
        $string = str_replace('<font size="7">', '<font size="36">', $string);
        $string = str_replace('<table ', '<center><table ', $string);
        $string = str_replace('</table> ', '</table></center>', $string);
        $string = str_replace('<table ', '<table border="1"', $string);

        $string = str_replace('size="1"', 'size="10"', $string);
        $string = str_replace('size="2"', 'size="10"', $string);
        $string = str_replace('size="3"', 'size="12"', $string);
        $string = str_replace('size="4"', 'size="14"', $string);
        $string = str_replace('size="5"', 'size="18"', $string);
        $string = str_replace('size="6"', 'size="24"', $string);
        $string = str_replace('size="7"', 'size="36"', $string);

        $string = str_replace('border="0"', 'border="1"', $string);


        $string = str_replace('<div>', '<div align="justify">', $string);
        $string = str_replace('&amp;amp;amp;amp;amp;nbsp;', ' ', $string);
        $string = str_replace('&amp;amp;amp;amp;nbsp;', ' ', $string);
        $string = str_replace('&amp;amp;amp;nbsp;', ' ', $string);
        $string = str_replace('&amp;amp;nbsp;', '', $string);
        $string = str_replace('&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;', '', $string);
        $string = str_replace('amp;', '', $string);

        $string = str_replace('<td colspan="2">', '<td colspan="2" align="justify">', $string);
        $string = str_replace('<td rowspan="3">', '<td rowspan="3" align="justify">', $string);
        $string = str_replace('<td colspan="3">', '<td colspan="3" align="justify">', $string);
        $string = str_replace('<td rowspan="4">', '<td rowspan="4" align="justify">', $string);
        $string = str_replace('<td colspan="4">', '<td colspan="4" align="justify">', $string);
        $string = str_replace('  ', ' ', $string);
        $string = str_replace('   ', ' ', $string);
        $string = str_replace('    ', ' ', $string);
        $string = str_replace('     ', ' ', $string);
        $string = str_replace('         ', ' ', $string);
        $string = str_replace('valign', 'align', $string);
        $string = str_replace('width=', '', $string);
        $string = str_replace('bordercolor=', '', $string);
        $string = str_replace('<td>', '<td align="justify">', $string);
        $string = str_replace('<li>', '<li align="justify">', $string);
        $string = str_replace('style=', '', $string);

        return trim($string);
    }

}
