<?php

/**
 * test 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';

//require 'Wkhtmltopdf.php';

class testActions extends sfActions {

    /**
     * Metodo personalidao para envio email Desiganacion supervisor a correo especifico de un contrato especifico
     * 
     * @param sfWebRequest $request
     */
    public function executeSendEmail(sfWebRequest $request) {

        //Obtenemos la entidad
        $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_contrato = $request['id_contrato'];
        $id_aprueba_poliza = $request['id_aprueba_poliza'];
        $email = $request['id_contrato'];

        echo "Contrato = $id_contrato - email: $email - id_aprueba_poliza: $id_aprueba_poliza";

        $sql = <<<EOD
select tab0.no_contrato,tab0.id_anhos,tab0.valor, tab0.objeto, tab0.tipo, tab0.nom_contra,tab0.completo_contra, tab0.completo_supervisor,
    tab0.completo_ordenador,
    tab0.NOMBRE_ORDENADOR_GASTO,
    tab0.id_estudios_previos, tab0.rp
, tab0.dia_rp||' de '||tab0.mes_rp||' del '||tab0.anho_rp AS FECHA_RP
, tab0.dia_poliza||' de '||tab0.mes_poliza||' del '||tab0.anho_poliza AS FECHA_POLIZA
, tab0.dia_inicio||' de '||tab0.mes_inicio||' del '||tab0.anho_inicio AS FECHA_INICIO
, tab0.dia_terminacion||' de '||tab0.mes_terminacion||' del '||tab0.anho_terminacion AS FECHA_TERMINACION
, case when tab0.dia_liquida is null then 'No Aplica' else tab0.dia_liquida||' de '||tab0.mes_liquida||' del '||tab0.anho_liquida end AS FECHA_LIQUIDACION
from(


select tab0.no_contrato,tab0.id_anhos, tab0.valor, tab0.objeto, tab0.tipo, tab0.nom_contra,tab0.completo_contra, 
    tab0.completo_supervisor, tab1.id_estudios_previos, tab0.completo_ordenador,tab0.NOMBRE_ORDENADOR_GASTO,
nvl(tab3.rp,0) as rp,
LPAD(to_char(tab3.fecha,'dd'),2,'0') as dia_rp,
trim(initcap(to_char(tab3.fecha,'MONTH','nls_date_language=spanish'))) as mes_rp,
TO_CHAR(tab3.fecha,'yyyy') as anho_rp,

LPAD(to_char(tab4.fecha_aprueba_poliza,'dd'),2,'0') as dia_poliza,
trim(initcap(to_char(tab4.fecha_aprueba_poliza,'MONTH','nls_date_language=spanish'))) as mes_poliza,
TO_CHAR(tab4.fecha_aprueba_poliza,'yyyy') as anho_poliza,

LPAD(to_char(tab4.fecha_inicio,'dd'),2,'0') as dia_inicio,
trim(initcap(to_char(tab4.fecha_inicio,'MONTH','nls_date_language=spanish'))) as mes_inicio,
TO_CHAR(tab4.fecha_inicio,'yyyy') as anho_inicio,

LPAD(to_char(tab4.fecha_terminacion,'dd'),2,'0') as dia_terminacion,
trim(initcap(to_char(tab4.fecha_terminacion,'MONTH','nls_date_language=spanish'))) as mes_terminacion,
TO_CHAR(tab4.fecha_terminacion,'yyyy') as anho_terminacion,

LPAD(to_char(tab2.fecha_liquidacion,'dd'),2,'0') as dia_liquida,
trim(initcap(to_char(tab2.fecha_liquidacion,'MONTH','nls_date_language=spanish'))) as mes_liquida,
TO_CHAR(tab2.fecha_liquidacion,'yyyy') as anho_liquida

from co_aprueba_poliza tab4
join co_contrato_v tab0 ON tab0.id_contrato = tab4.id_contrato
join co_seleccion_ep tab1 ON tab1.id_seleccion_ep = tab0.id_seleccion_ep
left join co_legaliza_contrato tab2 on tab2.id_contrato = tab4.id_contrato
left join rps_v tab3 ON tab3.id = tab2.id_rp
where tab4.id_contrato = $id_contrato
    )tab0
EOD;

        $records = CN_TABLE::executeSQL($sql);

        $rp = $records[0]['rp'];
        $fecha_rp = $records[0]['fecha_rp'];
        $fecha_poliza = $records[0]['fecha_poliza'];
        $fecha_inicio = $records[0]['fecha_inicio'];
        $fecha_terminacion = $records[0]['fecha_terminacion'];
        $fecha_liquidacion = $records[0]['fecha_liquidacion'];

        $no_contrato = $records[0]['no_contrato'];
        $id_anhos = $records[0]['id_anhos'];
        $tipo = $records[0]['tipo'];
        $contratista = $records[0]['completo_contra'];
        $nom_contra = $records[0]['nom_contra'];
        $supervisor = $records[0]['completo_supervisor'];
        $nom_ordenador = $records[0]['nombre_ordenador_gasto'];

        $config = HTMLPurifier_Config::createDefault();
        $config->set('CSS.AllowedProperties', array());
        $config->set('HTML.ForbiddenElements', array('font'));
        $purifier = new HTMLPurifier($config);

        $objeto = $this->htmlClear($purifier->purify($records[0]['objeto']));
        $id_estudios_previos = $records[0]['id_estudios_previos'];

        //NOTIFICACION DE DESIGNACION DE SUPERVISOR
        /*
         * 
         * 1. Se genera el PDF de la comunicación interna y se guarda en la carpeta de memorandos
         * 
         * 
         */

        //Inicio Paso 1. Generación del PDF de Comunicacion Interna
        $pdf = new CDPDF('P', 'mm', 'letter');

        $pdf->SetFont('helvetica', '', 10);
        $pdf->SetFillColor(255);
        $pdf->SetTextColor(0);
        $pdf->setTipo(17);

        $pdf->setTitulo("COMUNICACIÓN INTERNA");

        $pdf->AddPage(); //adhiero la pagina

        $pdf->SetTopMargin(40);
        $pdf->SetRightMargin(30);
        $pdf->SetLeftMargin(30);


        $sql = <<<EOD
select 
tab1.razon_soc as secretario

from co_param_gen tab0
left join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_secretario_general

where tab0.id_param_gen = 1
EOD;

        $records = CN_TABLE::executeSQL($sql);

        $secretario = "";
        if (count($records) > 0) {
            $secretario = $records[0]['secretario'];
        }

        // Obtenemos informacion del RP
        $sql = <<<EOD
        select tab0.*, to_char(tab1.fecha,'DD/MM/YYYY') as fecha_rp
from CO_LEGALIZA_CONTRATO tab0
join PR_RP tab1 on tab1.id = tab0.id_rp and tab0.vigencia_rp = tab1.vigencia
where tab0.id_contrato  =  $id_contrato

EOD;

        $records = CN_TABLE::executeSQL($sql);
        $contratoRps = array();
        $adjuntosRps = array();
        $i = 0;
        foreach ($records as $record) {
            $contratoRps[$i] = $record['id_rp'] . " - " . $record['fecha_rp'];
            $adjuntosRps[$record['id_rp']] = $record['adjunto_rp'];
            $i++;
        }
        $textoRps = implode(',', $contratoRps);

        //Actualización 4 de Junio: Se modifica quien firma el memorando para que unicamente salga el cargo de Secretario General y no el nombre
        if ($entidadCliente != 1) {
            $html = "";


            $html .= "<p><b>PARA: $supervisor</b></p><br/>";

            //$html.="<p><b>DE: $secretario<br>Secretario General</b></p>";
            $html .= "<p><b>DE: Secretario General</b></p>";
            $html .= "<p><b>ASUNTO: Asignacion de supervisión</b></p><br/>";

            $html .= '<p style="text-align:justify">Teniendo en cuenta que el SERVICIO GEOLÓGICO COLOMBIANO como parte contratante, '
                    . 'ha celebrado un contrato  de prestación de servicios para ser ejecutado en el área ' . $area . ''
                    . ', cordialmente le informo que ha sido designado(a) supervisor(a) del contrato No. ' . $no_contrato . " de " . $id_anhos . ' '
                    . 'suscrito con ' . $nom_contra . '.</p><br/>';

            $html .= '<p style="text-align:justify">Con fundamento en lo anterior, se adjunta copia del contrato citado, así como del formulario de aprobación de póliza, '
                    . 'con el fin de dar cumplimiento a lo establecido en la Resolución No. 166 del 4 de abril de 2014, por medio de la cual '
                    . 'se adoptó el nuevo Manual de Supervisión e Interventoría del SERVICIO GEOLÓGICO COLOMBIANO, resaltando que la supervisión '
                    . 'de los contratos inicia con la suscripción de los mismos.</p><br/>';

            //$html.='<p><b>Atentamente,<br/><br/><br/><br/><br/>'.$secretario.'<br/>SECRETARIO GENERAL</b>';
            $html .= '<p><b>Atentamente,<br/><br/><br/><br/><br/>SECRETARIO GENERAL</b>';
        } else {

            // 20210311 ACtualizacion memorandum ticket 20820
            //Se cambia a SECOP I - 20210603::LAVILA
            $fecha_memo = date("d/m/Y");
            $ciudad_memo = "Bogota D.C.";
            $html = <<<EOD
<p style="text-align:center"> 
<u><strong>COMUNICACIÓN DESIGNACIÓN DE SUPERVISIÓN</strong></u>
</p>
<strong>Ciudad:</strong> $ciudad_memo<br/>
<strong>Fecha:</strong> $fecha_memo<br/>
<br/>
<b>PARA: $supervisor<br/>
DE: $nom_ordenador<br/>
Secretario General<br/></b>
<br/>
<b>ASUNTO: Comunicación de Supervisión Contrato $no_contrato - $id_anhos</b>

<p style="text-align:justify">
Por medio de la presente se informa que ha sido designado(a) supervisor(a) del contrato de prestación de servicios No. $no_contrato - $id_anhos, 
suscrito entre el <strong>SERVICIO GEOLOGICO COLOMBIANO</strong> y <strong>$nom_contra</strong>, cuyo objeto consiste en “<i>$objeto</i>", 
el cual fue perfeccionado y ha cumplido los requisitos señalados en el artículo 41° de la Ley 80 de 1993 para su ejecución.
</p>
<p style="text-align:justify">
En consecuencia y con el propósito de realizar el seguimiento y supervisión del mismo, le solicito revisar el expediente contractual 
a través del Sistema Electrónico de Contratación Pública - SECOP I, en donde encontrará la documentación que requiera con el fin de realizar su 
labor como supervisor del contrato.
</p>
<p style="text-align:justify">
Es importante resaltar que para que inicie la ejecución del contrato se requiere la expedición del Registro Presupuestal $textoRps, 
la aprobación de la garantía única de cumplimiento en el Sistema Electrónico de Contratación Pública - SECOP I y el inicio de la cobertura 
de la Administración de Riesgos Laborales a el contratista que se genera a partir del día siguiente de la afiliación a ARL. 
</p> 
<p style="text-align:justify">
Para el ejercicio de la función de supervisión es importante que tenga en cuenta las siguientes pautas:
</p>
<p style="text-align:justify">
1. Es su responsabilidad cumplir con las obligaciones derivadas de esta designación, de conformidad con lo establecido en el 
artículo 84 de la Ley 1474 de 2011, por lo cual se recomienda efectuar la revisión de las cláusulas contractuales y el manual de contratación, 
supervisión e interventoría de la Entidad.
</p>
<p style="text-align:justify">
2. Es necesario que verifique con el Área de Talento Humano – Salud Ocupacional de la Entidad, que el contratista este afiliado y ya amparado 
ante la ARL respectiva.
</p>
<p style="text-align:justify">
3. Es importante que como supervisor asista a las capacitaciones – socializaciones de contratación, que convoque el Grupo de Contratos y 
Convenios u otras dependencias de la Entidad y que se encuentre relacionadas con la función de supervisión.
</p>
<p style="text-align:justify">
Cordialmente,
</p>
EOD;
        }


        $pdf->writeHTML($html, true, false, true, false, '');

        $pdf->Output($_SERVER['DOCUMENT_ROOT'] . "/contratacion/web/uploads/memorando_supervisor/MemorandoContrato_" . $no_contrato . "_" . $id_anhos . ".pdf", "F");
        echo "Genero y almaceno Memorando ...";


        //Inicio Paso 2. Generación del Correo Electronico

        $subject = "Notificacion de Designacion de Supervisor";


        $sql = <<<EOD
                select tab0.adjunto_contrato, tab0.adjunto_poliza
from CO_APRUEBA_POLIZA tab0
where tab0.id_aprueba_poliza = $id_aprueba_poliza

EOD;

        $records = CN_TABLE::executeSQL($sql);

        $adjunto_contrato = $records[0]['adjunto_contrato'];
        $adjunto_poliza = $records[0]['adjunto_poliza'];

        // foreach ($records as $correos) {

        $documento = $correos['num_doc'];
        $tipo_doc = $correos['id_tipo_doc'];
        $nombre = $correos['razon_soc'];
        $email = $correos['email'];
        $rol = $correos['rol'];

        $parametros = "0;0;" . $email . ";usuario;Envio notificacion";

        $datos_usuario = array();

        if ($parametros != "") {
            $datos_usuario = explode('/', $parametros);
        }

//CUERPO DEL MENSAJE

        $body = "<html><body> </body></html>";
//Body
        $body = <<<EOD
            <html><body> 
            <br/>
            Bogotá, $fecha_creacion
            <br/>
            <br/>
            Señor(a)<br/>
            $nombre<br/>
            $rol
            <br/><br/>
            Por medio del presente se notifica la designación como supervisor del Contrato No. $no_contrato del $id_anhos, 
                Adjunto encontrara el memorando de designación asi como el Contrato y el formulario de aprobación de la póliza.</b><br/><br/>

            </body></html>
EOD;

        $currentUri = "";

        $adjunto = true;
        $ruta = $_SERVER['DOCUMENT_ROOT'] . "/contratacion/web/uploads/";
        $array_adjuntos = array("MemorandoContrato_" . $no_contrato . "_" . $id_anhos . ".pdf" => "memorando_supervisor/MemorandoContrato_" . $no_contrato . "_" . $id_anhos . ".pdf",
            $adjunto_contrato => "contrato/" . $adjunto_contrato,
            $adjunto_poliza => "adjunto_poliza/" . $adjunto_poliza,
                //$adjunto_rp => "adjunto_rp/" . $adjunto_rp
        );
        // Añadimos adjuntos Rps
        foreach ($adjuntosRps as $key => $adjunto) {
            $array_adjuntos[$adjunto] = "adjunto_rp/" . $adjunto;
        }


        //Obtenemos la entidad
        $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++;
        }


        //Se desactiva Incidente #18295 - 20200813::LAVILA
        // $logger->info("CN_TABLE::envioCorreo 2");
        //SGC-1, ANM-2, SGR-3, CYC-4, COL-5, INCI-6, LOCAL-7, CEV-8, CEV PUB-9
        if ($entidadCliente != "2") {
            echo "enviando correo...";
            CN_TABLE::envioCorreo($request, $datos_usuario, $subject, $currentUri, $ruta, $adjunto, $progress_key, $array_adjuntos, $body);
        }
        // }   
        echo "finalizo proceso.";
        die();
    }

    /**
     * Incidente #37665,pdf para sacar informe en SGC - 20240223::LAVILA
     */
    public function executePdfds(sfWebRequest $request) {

        //Obtenemos la entidad
        $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_contrato = $request['id_contrato'];


        //echo "Pdfds - Contrato = $id_contrato - email: $email - id_aprueba_poliza: $id_aprueba_poliza";

        $sql = <<<EOD
select 

tab0.no_contrato,tab0.id_anhos,tab0.valor, tab0.objeto, tab0.tipo, tab0.nom_contra,
    tab0.completo_contra, tab0.completo_supervisor,
    tab0.completo_ordenador,
    tab0.NOMBRE_ORDENADOR_GASTO,
    tab0.id_estudios_previos, tab0.rp,
  to_char(tab0.fecha_registro,'DD/MM/YYYY') as fecha_legalizacion
, tab0.dia_rp||' de '||tab0.mes_rp||' del '||tab0.anho_rp AS FECHA_RP
, tab0.dia_poliza||' de '||tab0.mes_poliza||' del '||tab0.anho_poliza AS FECHA_POLIZA
, tab0.dia_inicio||' de '||tab0.mes_inicio||' del '||tab0.anho_inicio AS FECHA_INICIO
, tab0.dia_terminacion||' de '||tab0.mes_terminacion||' del '||tab0.anho_terminacion AS FECHA_TERMINACION
, case when tab0.dia_liquida is null then 'No Aplica' else tab0.dia_liquida||' de '||tab0.mes_liquida||' del '||tab0.anho_liquida end AS FECHA_LIQUIDACION

   from(

    select 
    tab0.no_contrato,tab0.id_anhos, tab0.valor, tab0.objeto, tab0.tipo, tab0.nom_contra,tab0.completo_contra, 
        tab0.completo_supervisor, tab1.id_estudios_previos, tab0.completo_ordenador,tab0.NOMBRE_ORDENADOR_GASTO,
    nvl(tab3.rp,0) as rp,
    LPAD(to_char(tab3.fecha,'dd'),2,'0') as dia_rp,
    trim(initcap(to_char(tab3.fecha,'MONTH','nls_date_language=spanish'))) as mes_rp,
    TO_CHAR(tab3.fecha,'yyyy') as anho_rp,

    LPAD(to_char(tab4.fecha_aprueba_poliza,'dd'),2,'0') as dia_poliza,
    trim(initcap(to_char(tab4.fecha_aprueba_poliza,'MONTH','nls_date_language=spanish'))) as mes_poliza,
    TO_CHAR(tab4.fecha_aprueba_poliza,'yyyy') as anho_poliza,

    LPAD(to_char(tab4.fecha_inicio,'dd'),2,'0') as dia_inicio,
    trim(initcap(to_char(tab4.fecha_inicio,'MONTH','nls_date_language=spanish'))) as mes_inicio,
    TO_CHAR(tab4.fecha_inicio,'yyyy') as anho_inicio,

    LPAD(to_char(tab4.fecha_terminacion,'dd'),2,'0') as dia_terminacion,
    trim(initcap(to_char(tab4.fecha_terminacion,'MONTH','nls_date_language=spanish'))) as mes_terminacion,
    TO_CHAR(tab4.fecha_terminacion,'yyyy') as anho_terminacion,

    LPAD(to_char(tab2.fecha_liquidacion,'dd'),2,'0') as dia_liquida,
    trim(initcap(to_char(tab2.fecha_liquidacion,'MONTH','nls_date_language=spanish'))) as mes_liquida,
    TO_CHAR(tab2.fecha_liquidacion,'yyyy') as anho_liquida,
    tab4.fecha_registro

    from co_aprueba_poliza tab4
    join co_contrato_v tab0 ON tab0.id_contrato = tab4.id_contrato
    join co_seleccion_ep tab1 ON tab1.id_seleccion_ep = tab0.id_seleccion_ep
    left join co_legaliza_contrato tab2 on tab2.id_contrato = tab4.id_contrato
    left join rps_v tab3 ON tab3.id = tab2.id_rp
    where tab4.id_contrato = $id_contrato
                
)tab0
EOD;

        $records = CN_TABLE::executeSQL($sql);

        $rp = $records[0]['rp'];
        $fecha_rp = $records[0]['fecha_rp'];
        $fecha_poliza = $records[0]['fecha_poliza'];
        $fecha_inicio = $records[0]['fecha_inicio'];
        $fecha_terminacion = $records[0]['fecha_terminacion'];
        $fecha_liquidacion = $records[0]['fecha_liquidacion'];
        $fecha_memo = $records[0]['fecha_legalizacion'];

        $no_contrato = $records[0]['no_contrato'];
        $id_anhos = $records[0]['id_anhos'];
        $tipo = $records[0]['tipo'];
        $contratista = $records[0]['completo_contra'];
        $nom_contra = $records[0]['nom_contra'];
        $supervisor = $records[0]['completo_supervisor'];
        $nom_ordenador = $records[0]['nombre_ordenador_gasto'];

        $config = HTMLPurifier_Config::createDefault();
        $config->set('CSS.AllowedProperties', array());
        $config->set('HTML.ForbiddenElements', array('font'));
        $purifier = new HTMLPurifier($config);

        $objeto = $this->htmlClear($purifier->purify($records[0]['objeto']));
        $id_estudios_previos = $records[0]['id_estudios_previos'];

        //NOTIFICACION DE DESIGNACION DE SUPERVISOR
        /*
         * 
         * 1. Se genera el PDF de la comunicación interna y se guarda en la carpeta de memorandos
         * 
         * 
         */

        //Inicio Paso 1. Generación del PDF de Comunicacion Interna
        $pdf = new CDPDF('P', 'mm', 'letter');

        $pdf->SetFont('helvetica', '', 10);
        $pdf->SetFillColor(255);
        $pdf->SetTextColor(0);
        $pdf->setTipo(17);

        $pdf->setTitulo("COMUNICACIÓN INTERNA");

        $pdf->AddPage(); //adhiero la pagina

        $pdf->SetTopMargin(40);
        $pdf->SetRightMargin(30);
        $pdf->SetLeftMargin(30);


        $sql = <<<EOD
select 
tab1.razon_soc as secretario

from co_param_gen tab0
left join interceros_v tab1 ON tab1.id_mae_ter = tab0.id_secretario_general

where tab0.id_param_gen = 1
EOD;

        $records = CN_TABLE::executeSQL($sql);

        $secretario = "";
        if (count($records) > 0) {
            $secretario = $records[0]['secretario'];
        }

        // Obtenemos informacion del RP
        $sql = <<<EOD
        select tab0.*, to_char(tab1.fecha,'DD/MM/YYYY') as fecha_rp
from CO_LEGALIZA_CONTRATO tab0
join PR_RP tab1 on tab1.id = tab0.id_rp and tab0.vigencia_rp = tab1.vigencia
where tab0.id_contrato  =  $id_contrato

EOD;

        $records = CN_TABLE::executeSQL($sql);
        $contratoRps = array();
        $adjuntosRps = array();
        $i = 0;
        foreach ($records as $record) {
            $contratoRps[$i] = $record['id_rp'] . " - " . $record['fecha_rp'];
            $adjuntosRps[$record['id_rp']] = $record['adjunto_rp'];
            $i++;
        }
        $textoRps = implode(',', $contratoRps);

        //Actualización 4 de Junio: Se modifica quien firma el memorando para que unicamente salga el cargo de Secretario General y no el nombre
        if ($entidadCliente != 1) {
            $html = "";


            $html .= "<p><b>PARA: $supervisor</b></p><br/>";

            //$html.="<p><b>DE: $secretario<br>Secretario General</b></p>";
            $html .= "<p><b>DE: Secretario General</b></p>";
            $html .= "<p><b>ASUNTO: Asignacion de supervisión</b></p><br/>";

            $html .= '<p style="text-align:justify">Teniendo en cuenta que el SERVICIO GEOLÓGICO COLOMBIANO como parte contratante, '
                    . 'ha celebrado un contrato  de prestación de servicios para ser ejecutado en el área ' . $area . ''
                    . ', cordialmente le informo que ha sido designado(a) supervisor(a) del contrato No. ' . $no_contrato . " de " . $id_anhos . ' '
                    . 'suscrito con ' . $nom_contra . '.</p><br/>';

            $html .= '<p style="text-align:justify">Con fundamento en lo anterior, se adjunta copia del contrato citado, así como del formulario de aprobación de póliza, '
                    . 'con el fin de dar cumplimiento a lo establecido en la Resolución No. 166 del 4 de abril de 2014, por medio de la cual '
                    . 'se adoptó el nuevo Manual de Supervisión e Interventoría del SERVICIO GEOLÓGICO COLOMBIANO, resaltando que la supervisión '
                    . 'de los contratos inicia con la suscripción de los mismos.</p><br/>';

            //$html.='<p><b>Atentamente,<br/><br/><br/><br/><br/>'.$secretario.'<br/>SECRETARIO GENERAL</b>';
            $html .= '<p><b>Atentamente,<br/><br/><br/><br/><br/>SECRETARIO GENERAL</b>';
        } else {

            // 20210311 ACtualizacion memorandum ticket 20820
            //Se cambia a SECOP I - 20210603::LAVILA
            
            $ciudad_memo = "Bogota D.C.";
            $html = <<<EOD
<p style="text-align:center"> 
<u><strong>COMUNICACIÓN DESIGNACIÓN DE SUPERVISIÓN</strong></u>
</p>
<strong>Ciudad:</strong> $ciudad_memo<br/>
<strong>Fecha:</strong> $fecha_memo<br/>
<br/>
<b>PARA: $supervisor<br/>
DE: $nom_ordenador<br/>
Secretario General<br/></b>
<br/>
<b>ASUNTO: Comunicación de Supervisión Contrato $no_contrato - $id_anhos</b>

<p style="text-align:justify"> 
Por medio de la presente se informa que ha sido designado(a) supervisor(a) del contrato de prestación de servicios No. $no_contrato - $id_anhos, 
suscrito entre el <strong>SERVICIO GEOLOGICO COLOMBIANO</strong> y <strong>$nom_contra</strong>, cuyo objeto consiste en “<i>$objeto</i>", 
el cual fue perfeccionado y ha cumplido los requisitos señalados en el artículo 41° de la Ley 80 de 1993 para su ejecución.
</p>
<p style="text-align:justify">
En consecuencia y con el propósito de realizar el seguimiento y supervisión del mismo, le solicito revisar el expediente contractual 
a través del Sistema Electrónico de Contratación Pública - SECOP I, en donde encontrará la documentación que requiera con el fin de realizar su 
labor como supervisor del contrato.
</p>
<p style="text-align:justify">
Es importante resaltar que para que inicie la ejecución del contrato se requiere la expedición del Registro Presupuestal $textoRps, 
la aprobación de la garantía única de cumplimiento en el Sistema Electrónico de Contratación Pública - SECOP I y el inicio de la cobertura 
de la Administración de Riesgos Laborales a el contratista que se genera a partir del día siguiente de la afiliación a ARL. 
</p> 
<p style="text-align:justify">
Para el ejercicio de la función de supervisión es importante que tenga en cuenta las siguientes pautas:
</p>
<p style="text-align:justify">
1. Es su responsabilidad cumplir con las obligaciones derivadas de esta designación, de conformidad con lo establecido en el 
artículo 84 de la Ley 1474 de 2011, por lo cual se recomienda efectuar la revisión de las cláusulas contractuales y el manual de contratación, 
supervisión e interventoría de la Entidad.
</p>
<p style="text-align:justify">
2. Es necesario que verifique con el Área de Talento Humano – Salud Ocupacional de la Entidad, que el contratista este afiliado y ya amparado 
ante la ARL respectiva.
</p>
<p style="text-align:justify">
3. Es importante que como supervisor asista a las capacitaciones – socializaciones de contratación, que convoque el Grupo de Contratos y 
Convenios u otras dependencias de la Entidad y que se encuentre relacionadas con la función de supervisión.
</p>
<p style="text-align:justify">
Cordialmente,
</p>
EOD;
        }


        $pdf->writeHTML($html, true, false, true, false, '');

        $pdf->Output("MemorandoContrato_" . $id_contrato . "_2024.pdf", "D");
    }

    /**
     * 
     * @param sfWebRequest $request
     */
    public function executePdfwk(sfWebRequest $request) {

        //echo("1,2,3");


        $config = HTMLPurifier_Config::createDefault();
        $config->set('CSS.AllowedProperties', array());
        $config->set('HTML.ForbiddenElements', array('font'));
        $purifier = new HTMLPurifier($config);
        $consul = Doctrine_Manager::getInstance()->connection();


        //$pdf = new CDPDF6('P', 'mm', 'letter');
        //$pdf->SetFont('Times', 'B', 10);
        //$pdf->SetFillColor(255);
        //$pdf->SetTextColor(0);
        //Establecemos el encabezado por entidad
        //$pdf->setTipo(20);

        $id_contrato = $request['id_contrato'];

        $sql = <<<EOD
                select 
tab0.*,
    tab1.direccion as direccion_contratista,
    tab1.email as email_contratista,
    tab1.telefono as telefono_contratista,
    tab1.representante_legal,
    tab1.dv as digito_verificacion_contra,
    tab1.id_tipo_iden as id_tipo_doc_contra,
    tab8.descripcion as tipo_doc_contra,
    tab1.num_doc as num_doc_contra,
    tab2.norma_nombramiento,
    tab2.nombre as nombre_ordenador,
    tab2.documento as doc_ordenador,
    tab4.id_estudios_previos,
    tab4.abogado as nom_abogado,
    tab5.razon_soc as nom_supervisor,
    tab6.razon_soc as nom_coordinador,
    tab7.descripcion as tipo_regimen_contra            
from co_contrato_v tab0
left join co_contratista tab1 on tab1.id_contratista = tab0.id_contratista
left join co_tipo_iden tab8 on tab8.id_tipo_iden = tab1.id_tipo_iden 
left join rvc_tipo_regimen tab7 on tab7.id_tipo_regimen = tab1.id_tipo_regimen
left join co_ordenador_gasto tab2 on tab2.id_ordenador_gasto = tab0.id_ordenador_gasto
LEFT JOIN co_seleccion_ep tab3 ON tab3.id_seleccion_ep = tab0.id_seleccion_ep
LEFT JOIN co_estudios_previos_v tab4 ON tab4.id_estudios_previos = tab3.id_estudios_previos
LEFT JOIN interceros_v tab5 ON tab5.id_mae_ter = tab4.id_supervisor 
LEFT JOIN interceros_v tab6 ON tab6.id_mae_ter = tab4.id_coordina_contra
where
1=1  
and tab0.ID_CONTRATO =$id_contrato 
EOD;
        $st = $consul->execute($sql);
        $records = $st->fetchAll();


        //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 048', PDF_HEADER_STRING);
        // set margins
        //$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
        //$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
        //$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
        // set auto page breaks
        //$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
        //$pdf->SetFont('helvetica', 'B', 11);
        //Obtenemos los datos del contrato
        $id_estudios_previos = $records[0]['ID_ESTUDIOS_PREVIOS'];
        $no_contrato = $records[0]['NO_CONTRATO'];
        $vigencia = $records[0]['ID_ANHOS'];
        $secretario_general = $records[0]['COMPLETO_ORDENADOR']; //NOMBRE + DOCUMENTO
        $nombre_secretario_general = $records[0]['NOMBRE_ORDENADOR'];
        $nombre_secretario_general = strtoupper($nombre_secretario_general);
        $doc_secretario_general = $records[0]['DOC_ORDENADOR'];
        $norma_nombramiento = $records[0]['NORMA_NOMBRAMIENTO'];
        $contratista = $records[0]['COMPLETO_CONTRA']; //NOMBRE + DOCUMENTO
        $nom_contratista = $records[0]['NOM_CONTRA'];
        $direccion_contratista = $records[0]['DIRECCION_CONTRATISTA'];
        $email_contratista = $records[0]['EMAIL_CONTRATISTA'];
        $dv_contratista = $records[0]['DIGITO_VERIFICACION_CONTRA'];
        $representante_legal = $records[0]['REPRESENTANTE_LEGAL'];
        $tipo_doc_contratista = $records[0]['TIPO_DOC_CONTRA'];
        $tipo_regimen_contratista = $records[0]['TIPO_REGIMEN_CONTRA'];
        $doc_contratista = $records[0]['NUM_DOC_CONTRA'];
        $nom_supervisor = $records[0]['NOM_SUPERVISOR'];
        $nom_coordinador = $records[0]['NOM_COORDINADOR'];
        $nom_abogado = $records[0]['NOM_ABOGADO'];
        $objeto = $this->htmlClear($purifier->purify($records[0]['OBJETO']));
        $plazo = $this->htmlClear($purifier->purify($records[0]['PLAZO']));
        $monto_valor = $this->htmlClear($purifier->purify($records[0]['VALOR']));
        $contratante = 'COMISIÓN PARA EL ESCLARECIMIENTO DE LA VERDAD, LA CONVIVENCIA Y LA NO REPETICIÓN (LA COMISIÓN DE LA VERDAD)';
        $nit_contratante = '901179431 - 9';
        //$consideraciones = $this->htmlClear($purifier->purify($records[0]['CONSIDERACIONES']));
        //$perfeccionamiento_ejec = $this->htmlClear($purifier->purify($records[0]['PERFECCIONAMIENTO_EJEC']));
        //$obliga_gen_contratista = $this->htmlClear($purifier->purify($records[0]['OBLIGA_GEN_CONTRATISTA']));
        $consideraciones = $purifier->purify($records[0]['CONSIDERACIONES']);
        $perfeccionamiento_ejec = $purifier->purify($records[0]['PERFECCIONAMIENTO_EJEC']);
        $obliga_gen_contratista = $purifier->purify($records[0]['OBLIGA_GEN_CONTRATISTA']);


        //OBTENEMOS LOS CAMPOS QUE VIENEN DESDE EL ESTUDIO PREVIO
        $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();
        /* Se define los campos a mostrar en el contrato y provenientes del estudio previo asi como 
         * la posicion donde se ubican por palabras especificas incluidas en el codigo del campo
         * Las palabras que debe contener el codigo del campo y la seccion donde apareceran es el siguiente
         * MAYUSCULA Y MINUSCULA IGNORADO
         * obligaciones - primera parte de la seccion 2)ACTIVIDADES ESPECIFICAS, OBLIGACIONES Y/O PRODUCTOS DE LA CONTRATISTA
         * resultado - segunda parte de la seccion 2)ACTIVIDADES ESPECIFICAS, OBLIGACIONES Y/O PRODUCTOS DE LA CONTRATISTA
         * valor - 4) VALOR:
         * fpago - 5) FORMA DE PAGO:
         * disponibilidad - 7) DISPONIBILIDAD PRESUPUESTAL
         * garantia - 9) GARANTÍAS LEGALES:
         * superv - 10) SUPERVISOR
         * anexot - ANEXO TECNICO
         * LUGARE - LUGAR EJECUCION
         * OBJETO - OBJETO EP
         */
        foreach ($records as $rec) {
            $codigo = $rec['CODIGO'];
            $valor = $rec['VALOR'];
            //$valor = $this->htmlClear($purifier->purify($valor));
            $valor = $purifier->purify($valor);
            if (stristr(strtoupper($codigo), 'OBLIGACIONES') !== FALSE) {
                $obligaciones = $valor;
            }
            if (stristr(strtoupper($codigo), 'RESULTADO') !== FALSE) {
                $resultado = $valor;
            }
            if (stristr(strtoupper($codigo), 'VALOR') !== FALSE) {
                $valor_contrato = $valor;
            }
            if (stristr(strtoupper($codigo), 'FPAGO') !== FALSE) {
                $forma_pago = $valor;
            }
            if (stristr(strtoupper($codigo), 'DISPONIBILIDAD') !== FALSE) {
                $disponibilidad = $valor;
            }
            if (stristr(strtoupper($codigo), 'GARANTIA') !== FALSE) {
                $garantias = $valor;
            }
            if (stristr(strtoupper($codigo), 'SUPERV') !== FALSE) {
                $supervision = $valor;
            }
            if (stristr(strtoupper($codigo), 'ANEXOT') !== FALSE) {
                $anexo_tec = $valor;
            }
            if (stristr(strtoupper($codigo), 'LUGARE') !== FALSE) {
                $lugar_ejecucion = $valor;
            }
            if (stristr(strtoupper($codigo), 'OBJETO') !== FALSE) {
                $objeto_ep = $valor;
            }
        }
        //echo($objeto);
        $estilos = <<<EOD
                    <style>
//body { font-family: serif; }
  //p {margin:0 !important;padding:0 !important;min-height:0px !important;border:1px solid red}
  //div{margin:0 !important;padding:0 !important;min-height:0px !important;border:1px solid green}
  //div p{margin:0 !important;padding:0 !important;min-height:0px !important;border:1px solid blue}
  //span{margin:0;padding:0;min-height:10px;border:1px solid blue}
p {margin:0 !important;padding:0 !important;min-height:0px !important;}
  div{margin:0 !important;padding:0 !important;min-height:0px !important;}
  span{margin:0;padding:0;min-height:10px;border:}
  ol{margin:0;}
</style>
EOD;
        $contrato = <<<EOD
$estilos
<div align="CENTER"><strong>ACEPTACI&Oacute;N DE OFERTA</strong><br />
<strong>ORDEN DE SERVICIO No CO-AJ-$no_contrato-$vigencia</strong></div>
<div align="LEFT">
Se&ntilde;or<br />
$representante_legal<br />
Representante Legal<br />
$nom_contratista<br />
$tipo_doc_contratista $doc_contratista $dv_contratista<br />
$direccion_contratista<br />
$email_contratista<br />
</div>
<div>
<p style="text-align:justify;">La Comisi&oacute;n para el Esclarecimiento de la Verdad, la Convivencia y la No repetici&oacute;n, (en adelante la Comisi&oacute;n de la Verdad), identificada con el NIT 901179431-9, en desarrollo de la contrataci&oacute;n para $objeto_ep, procede a trav&eacute;s de este documento a aceptar la oferta presentada por usted de conformidad con lo establecido en el Manual de contrataci&oacute;n, teniendo en cuenta que la cuant&iacute;a no excede el valor correspondiente a setecientos veinticinco (725) SMLMV. </p>
<p style="text-align:justify;">De otra parte, las condiciones de la aceptaci&oacute;n de su oferta, estar&aacute;n sujetas a lo aqu&iacute; dispuesto sin perjuicio de lo se&ntilde;alado en los estudios y documentos previos, as&iacute; como la totalidad de anexos y especificaciones t&eacute;cnicas, documentos que hacen parte integral de la presente orden.</p>
</div>
<div style="text-align:justify;">
<p style="text-align:left;"><strong>OBJETO:</strong></p> 
$objeto
</div>
<div style="text-align:justify;">                            
<p style="text-align:center;"><strong>ANEXO T&Eacute;CNICO: </strong></p>
$anexo_tec
</div>
<div style="text-align:justify;">                             
<p style="text-align:left;"><strong>VALOR:</strong></p>
$valor_contrato
</div>
<div style="text-align:justify;">                            
<p style="text-align:left;"><strong>FORMA DE PAGO:</strong></p>
$forma_pago
</div>
<div style="text-align:justify;">                             
<p style="text-align:left;"><strong>PLAZO:</strong></p>
$plazo
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>LUGAR DE EJECUCI&Oacute;N:</strong></p> 
    $lugar_ejecucion
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>SUPERVISI&Oacute;N:</strong></p> 
    $supervision
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>OBLIGACIONES DE LAS PARTES:</strong></p>
    <p> </p>                            
    <p style="text-align:left;"><strong>OBLIGACIONES GENERALES DEL CONTRATISTA: </strong></p>
    $obliga_gen_contratista
</div>
<div style="text-align:justify;">                             
<p style="text-align:left;"><strong>OBLIGACIONES ESPEC&Iacute;FICAS DEL CONTRATISTA:</strong></p>
$obligaciones                          
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>OBLIGACIONES DE LA COMISION DE LA VERDAD:</strong></p>
    <ol style="text-align:justify;">
    <li>Exigir al Contratista la ejecuci&oacute;n id&oacute;nea del objeto del contrato/ orden bajo las condiciones y caracter&iacute;sticas t&eacute;cnicas previstas.</li>
    <li>Ejercer el control sobre el cumplimiento del objeto del contrato/ orden a trav&eacute;s del Supervisor del mismo.</li>
    <li>Pagar el valor del contrato/ orden en la forma pactada.</li>
    <li>Suministrar los elementos y/o espacios necesarios para la ejecuci&oacute;n del objeto contractual (si a ello hubiere lugar).</li>
    <li>Aprobar la Garant&iacute;a &uacute;nica que en debida forma constituya el contratista.</li>
    <li>Exigir la certificaci&oacute;n de pago de aportes al sistema general de seguridad social y aportes parafiscales.</li>
    <li>Aplicar las sanciones y correctivos establecidos en la Ley, el Estudio Previo y el mismo contrato/ orden, en caso de incumplimiento total o parcial por parte del contratista, adelantando las acciones necesarias para el reconocimiento y cobro de las sanciones pecuniarias y de las garant&iacute;as a que hubiere lugar.</li>
    <li>Notificar por escrito al garante de los hechos o circunstancias no previsibles que sobrevengan con posterioridad a la celebraci&oacute;n del contrato/ orden y que, conforme al criterio consignado en el inciso 1&deg; del art&iacute;culo 1058 del C&oacute;digo de Comercio, signifiquen agravaci&oacute;n del riesgo o variaci&oacute;n de su identidad local seg&uacute;n lo establece el art&iacute;culo 1060 del C&oacute;digo de Comercio.</li>
    <li>Liquidar el contrato/ orden, si a ello hubiere lugar</li>
    </ol>
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>CLAUSULA PENAL PECUNARIA:</strong></p>                            
    <p style="text-align:justify;"> El contratista reconocer&aacute; a La Comisi&oacute;n de la Verdad a t&iacute;tulo de cl&aacute;usula penal pecuniaria como estimaci&oacute;n anticipada de perjuicios, una suma equivalente hasta del veinte (20%) del valor total de la presente orden, de acuerdo con la certificaci&oacute;n emanada por parte del supervisor, mediante la cual se acredite el porcentaje de cumplimiento e incumplimiento de las obligaciones principales, suma que la entidad har&aacute; efectiva, previa declaratoria del incumplimiento, directamente por compensaci&oacute;n de los saldos que se le adeude al contratista si los hubiere respecto de este contrato o de los saldos que en su favor existieren producto de cualquier relaci&oacute;n jur&iacute;dica negocial entre el contratista y la Comisi&oacute;n de la Verdad, o si esto no fuere posible, podr&aacute; acudir a la jurisdicci&oacute;n competente, incluida la coactiva.</p>
</div>  
<div style="text-align:justify;">     
    <p style="text-align:left;"><strong>MULTAS:</strong></p>                            
    <p style="text-align:justify;"> En caso de incumplimiento parcial de las obligaciones a cargo de EL CONTRATISTA, en virtud de la presente orden, LA COMISI&Oacute;N tendr&aacute; la facultad de conminar a EL CONTRATISTA para su cumplimiento mediante la imposici&oacute;n de multas o sanciones pecuniarias de apremio, as&iacute;:&nbsp;a)&nbsp;Por incumplimiento en entregar, ampliar adicionar o mantener vigentes las p&oacute;lizas:&nbsp;Por no mantener en vigor, renovar, prorrogar, corregir o adicionar las garant&iacute;as, en los plazos y por los montos y amparos establecidos en la cl&aacute;usula correspondiente se causar&aacute; una multa diaria por el cero punto cinco por ciento (0.5%) del valor total del contrato, por cada d&iacute;a calendario transcurrido a partir de la fecha prevista para el cumplimiento de esta obligaci&oacute;n.&nbsp;b) Por mora en el cumplimiento, o incumplimiento parcial de cualquiera de las obligaciones y sus resultados y/o productos de EL CONTRATISTA durante la totalidad de la ejecuci&oacute;n del contrato. Si EL CONTRATISTA incurre en mora o incumplimiento parcial de alguna o algunas de las obligaciones del contrato, o las cumple parcialmente o deficientemente &oacute; tard&iacute;amente, se causar&aacute;n multas sucesivas diarias, equivalentes cada una al cero punto cinco por ciento (0.5%) del valor total del contrato, sin que la totalidad de ellas supere el veinte por ciento (20%) del valor del contrato, durante la vigencia del mismo. Por no cumplir con los resultados y/o productos esperados se causar&aacute;n multas sucesivas diarias, equivalentes cada una al cero punto cinco por ciento (0.5%) del valor total del contrato, sin que la totalidad de ellas supere el veinte por ciento (20%) del valor del contrato, durante la vigencia del mismo. Si pasaren veinte (20) d&iacute;as calendario, sin que EL CONTRATISTA haya cumplido con esta obligaci&oacute;n.&nbsp;c) Por Incumplimiento en los requisitos de personal ofertado (cuando aplique):&nbsp;Por mora o incumplimiento injustificado de las obligaciones referentes a la oportuna disponibilidad del personal ofertado conforme con este contrato y la oferta presentada por EL CONTRATISTA, se causar&aacute; una multa equivalente a cinco (5) salarios m&iacute;nimos legales mensuales vigentes. Si pasaren veinte (20) d&iacute;as calendario, sin que EL CONTRATISTA haya cumplido con esta obligaci&oacute;n.&nbsp;PAR&Aacute;GRAFO 1: El procedimiento para la imposici&oacute;n de multas ser&aacute; el siguiente: a) Mediante comunicaci&oacute;n escrita LA COMISI&Oacute;N requerir&aacute; a EL CONTRATISTA, para que exponga las razones de su incumplimiento, indicando las razones y atrasos que se le imputan, b)Dentro de los cinco (5) d&iacute;as calendario siguientes EL CONTRATISTA deber&aacute; responder por escrito el requerimiento de LA COMISI&Oacute;N, c) LA COMISI&Oacute;N analizados los descargos de EL CONTRATISTA proceder&aacute; a imponer o no las multas, y establecer&aacute; las cuant&iacute;as de acuerdo a la cl&aacute;usula que antecede. En caso que EL CONTRATISTA no presente descargos, LA COMISI&Oacute;N proceder&aacute; a informarle su decisi&oacute;n de imponer o no la multa.&nbsp;PAR&Aacute;GRAFO 2:&nbsp;La imposici&oacute;n de multas se har&aacute; directamente por LA COMISI&Oacute;N expresando las causas que dieron lugar a ellas y no eximir&aacute;n a EL CONTRATISTA del cumplimiento de sus obligaciones. LA COMISI&Oacute;N podr&aacute; descontar y tomar directamente el valor de las multas de cualquier suma que le adeude a EL CONTRATISTA en raz&oacute;n del presente o de cualquier otro contrato, sin que requiera para ello autorizaci&oacute;n previa del CONTRATISTA; ni autorizaci&oacute;n judicial o haciendo efectivas las garant&iacute;as respectivas. El pago o la deducci&oacute;n de dichas multas no exoneran a EL CONTRATISTA del cumplimiento de su obligaci&oacute;n ni de las responsabilidades que emanen del presente contrato.&nbsp;</p>
</div>  
<div style="text-align:justify;">                              
<p style="text-align:left;"><strong>CONFIDENCIALIDAD:</strong></p>                            
<p style="text-align:justify;"> EL CONTRATISTA y su personal, excepto previo consentimiento por escrito del Contratante, no podr&aacute;n revelar en ning&uacute;n momento a cualquier persona o entidad ninguna informaci&oacute;n confidencial adquirida en curso de la ejecuci&oacute;n de contrato; as&iacute; mismo no podr&aacute;n publicar las recomendaciones formuladas resultado del contrato, cuando a ello hubiere lugar.</p>
</div>  
<div style="text-align:justify;">                              
    <p style="text-align:left;"><strong>GARANT&Iacute;AS</strong></p>
    $garantias
</div>  
<div style="text-align:justify;">  
<p style="text-align:left;"><strong>PERFECCIONAMIENTO Y EJECUCI&Oacute;N:</strong></p> 
$perfeccionamiento_ejec
</div>
<div style="text-align:justify;">
Atentamente,<br />
<p> </p>  
<strong>MAURICIO KATZ GARCIA </strong><br />
Secretario General<br />
Comisi&oacute;n de la Verdad<br />
Aprob&oacute;: $nom_coordinador.<br />
Proyect&oacute;: $nom_abogado.<br />
</div>                             
EOD;
        $titulo = "Prueba";
        $header = "<!DOCTYPE HTML>este es un encabezado de prueba";
        //$pdf->setTitulo($titulo);
        //$pdf->AddPage();
        //$pdf->SetFont('helvetica', '', 11);
        $html = $contrato;
        //$html = $this->htmlClear($purifier->purify($contrato));
        //$pdf->writeHTML($html, true, false, true, false, '');
        //$pdf->Output("estudios_previos.pdf", "D");
        //echo $html;
        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";
            $wkhtmltopdf->setHeaderSpacing("20");
            $wkhtmltopdf->setHeaderHtml("https://cevpruebas.sofhouse.net/contratacion/web/html_dev.php/header/index");
            $wkhtmltopdf->setHtmlUtf8($html);
            $wkhtmltopdf->output(Wkhtmltopdf::MODE_DOWNLOAD, "file.pdf");
            //$wkhtmltopdf->output(Wkhtmltopdf::MODE_EMBEDDED, "file.pdf");
        } catch (Exception $e) {
            echo $e->getMessage();
        }





        die();
    }

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

        echo("1,2,3");


        $config = HTMLPurifier_Config::createDefault();
        $config->set('CSS.AllowedProperties', array());
        $config->set('HTML.ForbiddenElements', array('font'));
        $purifier = new HTMLPurifier($config);
        $consul = Doctrine_Manager::getInstance()->connection();


        $pdf = new CDPDF6('P', 'mm', 'letter');

        $pdf->SetFont('Times', 'B', 10);
        $pdf->SetFillColor(255);
        $pdf->SetTextColor(0);
        //Establecemos el encabezado por entidad

        $pdf->setTipo(20);

        $id_contrato = $request['id_contrato'];

        $sql = <<<EOD
                select 
tab0.*,
    tab1.direccion as direccion_contratista,
    tab1.email as email_contratista,
    tab1.telefono as telefono_contratista,
    tab1.representante_legal,
    tab1.dv as digito_verificacion_contra,
    tab1.id_tipo_iden as id_tipo_doc_contra,
    tab8.descripcion as tipo_doc_contra,
    tab1.num_doc as num_doc_contra,
    tab2.norma_nombramiento,
    tab2.nombre as nombre_ordenador,
    tab2.documento as doc_ordenador,
    tab4.id_estudios_previos,
    tab4.abogado as nom_abogado,
    tab5.razon_soc as nom_supervisor,
    tab6.razon_soc as nom_coordinador,
    tab7.descripcion as tipo_regimen_contra            
from co_contrato_v tab0
left join co_contratista tab1 on tab1.id_contratista = tab0.id_contratista
left join co_tipo_iden tab8 on tab8.id_tipo_iden = tab1.id_tipo_iden 
left join rvc_tipo_regimen tab7 on tab7.id_tipo_regimen = tab1.id_tipo_regimen
left join co_ordenador_gasto tab2 on tab2.id_ordenador_gasto = tab0.id_ordenador_gasto
LEFT JOIN co_seleccion_ep tab3 ON tab3.id_seleccion_ep = tab0.id_seleccion_ep
LEFT JOIN co_estudios_previos_v tab4 ON tab4.id_estudios_previos = tab3.id_estudios_previos
LEFT JOIN interceros_v tab5 ON tab5.id_mae_ter = tab4.id_supervisor 
LEFT JOIN interceros_v tab6 ON tab6.id_mae_ter = tab4.id_coordina_contra
where
1=1  
and tab0.ID_CONTRATO =$id_contrato 
EOD;
        $st = $consul->execute($sql);
        $records = $st->fetchAll();


        //$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 048', PDF_HEADER_STRING);
        // set margins
        //$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
        //$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
        //$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
        // set auto page breaks
        //$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
        $pdf->SetFont('helvetica', 'B', 11);
        //Obtenemos los datos del contrato
        $id_estudios_previos = $records[0]['ID_ESTUDIOS_PREVIOS'];
        $no_contrato = $records[0]['NO_CONTRATO'];
        $vigencia = $records[0]['ID_ANHOS'];
        $secretario_general = $records[0]['COMPLETO_ORDENADOR']; //NOMBRE + DOCUMENTO
        $nombre_secretario_general = $records[0]['NOMBRE_ORDENADOR'];
        $nombre_secretario_general = strtoupper($nombre_secretario_general);
        $doc_secretario_general = $records[0]['DOC_ORDENADOR'];
        $norma_nombramiento = $records[0]['NORMA_NOMBRAMIENTO'];
        $contratista = $records[0]['COMPLETO_CONTRA']; //NOMBRE + DOCUMENTO
        $nom_contratista = $records[0]['NOM_CONTRA'];
        $direccion_contratista = $records[0]['DIRECCION_CONTRATISTA'];
        $email_contratista = $records[0]['EMAIL_CONTRATISTA'];
        $dv_contratista = $records[0]['DIGITO_VERIFICACION_CONTRA'];
        $representante_legal = $records[0]['REPRESENTANTE_LEGAL'];
        $tipo_doc_contratista = $records[0]['TIPO_DOC_CONTRA'];
        $tipo_regimen_contratista = $records[0]['TIPO_REGIMEN_CONTRA'];
        $doc_contratista = $records[0]['NUM_DOC_CONTRA'];
        $nom_supervisor = $records[0]['NOM_SUPERVISOR'];
        $nom_coordinador = $records[0]['NOM_COORDINADOR'];
        $nom_abogado = $records[0]['NOM_ABOGADO'];
        $objeto = $this->htmlClear($purifier->purify($records[0]['OBJETO']));
        $plazo = $this->htmlClear($purifier->purify($records[0]['PLAZO']));
        $monto_valor = $this->htmlClear($purifier->purify($records[0]['VALOR']));
        $contratante = 'COMISIÓN PARA EL ESCLARECIMIENTO DE LA VERDAD, LA CONVIVENCIA Y LA NO REPETICIÓN (LA COMISIÓN DE LA VERDAD)';
        $nit_contratante = '901179431 - 9';
        $consideraciones = $this->htmlClear($purifier->purify($records[0]['CONSIDERACIONES']));
        $perfeccionamiento_ejec = $this->htmlClear($purifier->purify($records[0]['PERFECCIONAMIENTO_EJEC']));
        $obliga_gen_contratista = $this->htmlClear($purifier->purify($records[0]['OBLIGA_GEN_CONTRATISTA']));

        //OBTENEMOS LOS CAMPOS QUE VIENEN DESDE EL ESTUDIO PREVIO
        $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();
        /* Se define los campos a mostrar en el contrato y provenientes del estudio previo asi como 
         * la posicion donde se ubican por palabras especificas incluidas en el codigo del campo
         * Las palabras que debe contener el codigo del campo y la seccion donde apareceran es el siguiente
         * MAYUSCULA Y MINUSCULA IGNORADO
         * obligaciones - primera parte de la seccion 2)ACTIVIDADES ESPECIFICAS, OBLIGACIONES Y/O PRODUCTOS DE LA CONTRATISTA
         * resultado - segunda parte de la seccion 2)ACTIVIDADES ESPECIFICAS, OBLIGACIONES Y/O PRODUCTOS DE LA CONTRATISTA
         * valor - 4) VALOR:
         * fpago - 5) FORMA DE PAGO:
         * disponibilidad - 7) DISPONIBILIDAD PRESUPUESTAL
         * garantia - 9) GARANTÍAS LEGALES:
         * superv - 10) SUPERVISOR
         * anexot - ANEXO TECNICO
         * LUGARE - LUGAR EJECUCION
         * OBJETO - OBJETO EP
         */
        foreach ($records as $rec) {
            $codigo = $rec['CODIGO'];
            $valor = $rec['VALOR'];
            $valor = $this->htmlClear($purifier->purify($valor));
            if (stristr(strtoupper($codigo), 'OBLIGACIONES') !== FALSE) {
                $obligaciones = $valor;
            }
            if (stristr(strtoupper($codigo), 'RESULTADO') !== FALSE) {
                $resultado = $valor;
            }
            if (stristr(strtoupper($codigo), 'VALOR') !== FALSE) {
                $valor_contrato = $valor;
            }
            if (stristr(strtoupper($codigo), 'FPAGO') !== FALSE) {
                $forma_pago = $valor;
            }
            if (stristr(strtoupper($codigo), 'DISPONIBILIDAD') !== FALSE) {
                $disponibilidad = $valor;
            }
            if (stristr(strtoupper($codigo), 'GARANTIA') !== FALSE) {
                $garantias = $valor;
            }
            if (stristr(strtoupper($codigo), 'SUPERV') !== FALSE) {
                $supervision = $valor;
            }
            if (stristr(strtoupper($codigo), 'ANEXOT') !== FALSE) {
                $anexo_tec = $valor;
            }
            if (stristr(strtoupper($codigo), 'LUGARE') !== FALSE) {
                $lugar_ejecucion = $valor;
            }
            if (stristr(strtoupper($codigo), 'OBJETO') !== FALSE) {
                $objeto_ep = $valor;
            }
        }
        $contrato = <<<EOD
<style>
  p {margin:0 !important;padding:0 !important;min-height:0px !important;border:1px solid red}
  div{margin:0 !important;padding:0 !important;min-height:0px !important;border:1px solid green}
  //div p{margin:0 !important;padding:0 !important;min-height:0px !important;border:1px solid blue}
  span{margin:0;padding:0;min-height:10px;border:1px solid blue}
</style>
<div align="CENTER"><strong>ACEPTACI&Oacute;N DE OFERTA</strong><br />
<strong>ORDEN DE SERVICIO No CO-AJ-$no_contrato-$vigencia</strong></div>
<div align="LEFT">
Se&ntilde;or<br />
$representante_legal<br />
Representante Legal<br />
$nom_contratista<br />
$tipo_doc_contratista $doc_contratista $dv_contratista<br />
$direccion_contratista<br />
$email_contratista<br />
</div>
<div>
<p style="text-align:justify;">La Comisi&oacute;n para el Esclarecimiento de la Verdad, la Convivencia y la No repetici&oacute;n, (en adelante la Comisi&oacute;n de la Verdad), identificada con el NIT 901179431-9, en desarrollo de la contrataci&oacute;n para $objeto_ep, procede a trav&eacute;s de este documento a aceptar la oferta presentada por usted de conformidad con lo establecido en el Manual de contrataci&oacute;n, teniendo en cuenta que la cuant&iacute;a no excede el valor correspondiente a setecientos veinticinco (725) SMLMV. </p>
<p style="text-align:justify;">De otra parte, las condiciones de la aceptaci&oacute;n de su oferta, estar&aacute;n sujetas a lo aqu&iacute; dispuesto sin perjuicio de lo se&ntilde;alado en los estudios y documentos previos, as&iacute; como la totalidad de anexos y especificaciones t&eacute;cnicas, documentos que hacen parte integral de la presente orden.</p>
</div>
<div style="text-align:justify;">
<p style="text-align:left;"><strong>OBJETO:</strong></p> 
$objeto
</div>
<div style="text-align:justify;">                            
<p style="text-align:center;"><strong>ANEXO T&Eacute;CNICO: </strong></p>
$anexo_tec
</div>
<div style="text-align:justify;">                             
<p style="text-align:left;"><strong>VALOR:</strong></p>
$valor_contrato
</div>
<div style="text-align:justify;">                            
<p style="text-align:left;"><strong>FORMA DE PAGO:</strong></p>
$forma_pago
</div>
<div style="text-align:justify;">                             
<p style="text-align:left;"><strong>PLAZO:</strong></p>
$plazo
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>LUGAR DE EJECUCI&Oacute;N:</strong></p> 
    $lugar_ejecucion
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>SUPERVISI&Oacute;N:</strong></p> 
    $supervision
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>OBLIGACIONES DE LAS PARTES:</strong></p>
    <p> </p>                            
    <p style="text-align:left;"><strong>OBLIGACIONES GENERALES DEL CONTRATISTA: </strong></p>
    $obliga_gen_contratista
</div>
<div style="text-align:justify;">                             
<p style="text-align:left;"><strong>OBLIGACIONES ESPEC&Iacute;FICAS DEL CONTRATISTA:</strong></p>
$obligaciones                          
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>OBLIGACIONES DE LA COMISION DE LA VERDAD:</strong></p>
    <ol style="text-align:justify;">
    <li>Exigir al Contratista la ejecuci&oacute;n id&oacute;nea del objeto del contrato/ orden bajo las condiciones y caracter&iacute;sticas t&eacute;cnicas previstas.</li>
    <li>Ejercer el control sobre el cumplimiento del objeto del contrato/ orden a trav&eacute;s del Supervisor del mismo.</li>
    <li>Pagar el valor del contrato/ orden en la forma pactada.</li>
    <li>Suministrar los elementos y/o espacios necesarios para la ejecuci&oacute;n del objeto contractual (si a ello hubiere lugar).</li>
    <li>Aprobar la Garant&iacute;a &uacute;nica que en debida forma constituya el contratista.</li>
    <li>Exigir la certificaci&oacute;n de pago de aportes al sistema general de seguridad social y aportes parafiscales.</li>
    <li>Aplicar las sanciones y correctivos establecidos en la Ley, el Estudio Previo y el mismo contrato/ orden, en caso de incumplimiento total o parcial por parte del contratista, adelantando las acciones necesarias para el reconocimiento y cobro de las sanciones pecuniarias y de las garant&iacute;as a que hubiere lugar.</li>
    <li>Notificar por escrito al garante de los hechos o circunstancias no previsibles que sobrevengan con posterioridad a la celebraci&oacute;n del contrato/ orden y que, conforme al criterio consignado en el inciso 1&deg; del art&iacute;culo 1058 del C&oacute;digo de Comercio, signifiquen agravaci&oacute;n del riesgo o variaci&oacute;n de su identidad local seg&uacute;n lo establece el art&iacute;culo 1060 del C&oacute;digo de Comercio.</li>
    <li>Liquidar el contrato/ orden, si a ello hubiere lugar</li>
    </ol>
</div>
<div style="text-align:justify;">                             
    <p style="text-align:left;"><strong>CLAUSULA PENAL PECUNARIA:</strong></p>                            
    <p style="text-align:justify;"> El contratista reconocer&aacute; a La Comisi&oacute;n de la Verdad a t&iacute;tulo de cl&aacute;usula penal pecuniaria como estimaci&oacute;n anticipada de perjuicios, una suma equivalente hasta del veinte (20%) del valor total de la presente orden, de acuerdo con la certificaci&oacute;n emanada por parte del supervisor, mediante la cual se acredite el porcentaje de cumplimiento e incumplimiento de las obligaciones principales, suma que la entidad har&aacute; efectiva, previa declaratoria del incumplimiento, directamente por compensaci&oacute;n de los saldos que se le adeude al contratista si los hubiere respecto de este contrato o de los saldos que en su favor existieren producto de cualquier relaci&oacute;n jur&iacute;dica negocial entre el contratista y la Comisi&oacute;n de la Verdad, o si esto no fuere posible, podr&aacute; acudir a la jurisdicci&oacute;n competente, incluida la coactiva.</p>
</div>  
<div style="text-align:justify;">     
    <p style="text-align:left;"><strong>MULTAS:</strong></p>                            
    <p style="text-align:justify;"> En caso de incumplimiento parcial de las obligaciones a cargo de EL CONTRATISTA, en virtud de la presente orden, LA COMISI&Oacute;N tendr&aacute; la facultad de conminar a EL CONTRATISTA para su cumplimiento mediante la imposici&oacute;n de multas o sanciones pecuniarias de apremio, as&iacute;:&nbsp;a)&nbsp;Por incumplimiento en entregar, ampliar adicionar o mantener vigentes las p&oacute;lizas:&nbsp;Por no mantener en vigor, renovar, prorrogar, corregir o adicionar las garant&iacute;as, en los plazos y por los montos y amparos establecidos en la cl&aacute;usula correspondiente se causar&aacute; una multa diaria por el cero punto cinco por ciento (0.5%) del valor total del contrato, por cada d&iacute;a calendario transcurrido a partir de la fecha prevista para el cumplimiento de esta obligaci&oacute;n.&nbsp;b) Por mora en el cumplimiento, o incumplimiento parcial de cualquiera de las obligaciones y sus resultados y/o productos de EL CONTRATISTA durante la totalidad de la ejecuci&oacute;n del contrato. Si EL CONTRATISTA incurre en mora o incumplimiento parcial de alguna o algunas de las obligaciones del contrato, o las cumple parcialmente o deficientemente &oacute; tard&iacute;amente, se causar&aacute;n multas sucesivas diarias, equivalentes cada una al cero punto cinco por ciento (0.5%) del valor total del contrato, sin que la totalidad de ellas supere el veinte por ciento (20%) del valor del contrato, durante la vigencia del mismo. Por no cumplir con los resultados y/o productos esperados se causar&aacute;n multas sucesivas diarias, equivalentes cada una al cero punto cinco por ciento (0.5%) del valor total del contrato, sin que la totalidad de ellas supere el veinte por ciento (20%) del valor del contrato, durante la vigencia del mismo. Si pasaren veinte (20) d&iacute;as calendario, sin que EL CONTRATISTA haya cumplido con esta obligaci&oacute;n.&nbsp;c) Por Incumplimiento en los requisitos de personal ofertado (cuando aplique):&nbsp;Por mora o incumplimiento injustificado de las obligaciones referentes a la oportuna disponibilidad del personal ofertado conforme con este contrato y la oferta presentada por EL CONTRATISTA, se causar&aacute; una multa equivalente a cinco (5) salarios m&iacute;nimos legales mensuales vigentes. Si pasaren veinte (20) d&iacute;as calendario, sin que EL CONTRATISTA haya cumplido con esta obligaci&oacute;n.&nbsp;PAR&Aacute;GRAFO 1: El procedimiento para la imposici&oacute;n de multas ser&aacute; el siguiente: a) Mediante comunicaci&oacute;n escrita LA COMISI&Oacute;N requerir&aacute; a EL CONTRATISTA, para que exponga las razones de su incumplimiento, indicando las razones y atrasos que se le imputan, b)Dentro de los cinco (5) d&iacute;as calendario siguientes EL CONTRATISTA deber&aacute; responder por escrito el requerimiento de LA COMISI&Oacute;N, c) LA COMISI&Oacute;N analizados los descargos de EL CONTRATISTA proceder&aacute; a imponer o no las multas, y establecer&aacute; las cuant&iacute;as de acuerdo a la cl&aacute;usula que antecede. En caso que EL CONTRATISTA no presente descargos, LA COMISI&Oacute;N proceder&aacute; a informarle su decisi&oacute;n de imponer o no la multa.&nbsp;PAR&Aacute;GRAFO 2:&nbsp;La imposici&oacute;n de multas se har&aacute; directamente por LA COMISI&Oacute;N expresando las causas que dieron lugar a ellas y no eximir&aacute;n a EL CONTRATISTA del cumplimiento de sus obligaciones. LA COMISI&Oacute;N podr&aacute; descontar y tomar directamente el valor de las multas de cualquier suma que le adeude a EL CONTRATISTA en raz&oacute;n del presente o de cualquier otro contrato, sin que requiera para ello autorizaci&oacute;n previa del CONTRATISTA; ni autorizaci&oacute;n judicial o haciendo efectivas las garant&iacute;as respectivas. El pago o la deducci&oacute;n de dichas multas no exoneran a EL CONTRATISTA del cumplimiento de su obligaci&oacute;n ni de las responsabilidades que emanen del presente contrato.&nbsp;</p>
</div>  
<div style="text-align:justify;">                              
<p style="text-align:left;"><strong>CONFIDENCIALIDAD:</strong></p>                            
<p style="text-align:justify;"> EL CONTRATISTA y su personal, excepto previo consentimiento por escrito del Contratante, no podr&aacute;n revelar en ning&uacute;n momento a cualquier persona o entidad ninguna informaci&oacute;n confidencial adquirida en curso de la ejecuci&oacute;n de contrato; as&iacute; mismo no podr&aacute;n publicar las recomendaciones formuladas resultado del contrato, cuando a ello hubiere lugar.</p>
</div>  
<div style="text-align:justify;">                              
    <p style="text-align:left;"><strong>GARANT&Iacute;AS</strong></p>
    $garantias
</div>  
<div style="text-align:justify;">  
<p style="text-align:left;"><strong>PERFECCIONAMIENTO Y EJECUCI&Oacute;N:</strong></p> 
$perfeccionamiento_ejec
</div>
<div style="text-align:justify;">
Atentamente,<br />
<p> </p>  
<strong>MAURICIO KATZ GARCIA </strong><br />
Secretario General<br />
Comisi&oacute;n de la Verdad<br />
Aprob&oacute;: $nom_coordinador.<br />
Proyect&oacute;: $nom_abogado.<br />
</div>                             
EOD;
        $titulo = "Prueba";
        $pdf->setTitulo($titulo);
        $pdf->AddPage();
        $pdf->SetFont('helvetica', '', 11);
        $html = $contrato;

        $pdf->writeHTML($html, true, false, true, false, '');

        $pdf->Output("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);
    }

}
