<?php

/**
 * inf_contrato actions.
 *
 * @package    contratacion
 * @subpackage inf_contrato
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class inf_contratoActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeInformeContrato(sfWebRequest $request)
  {
    
      $id_contrato = $request['id_contrato'];
      $id_anhos = $request['id_anhos'];
      $observaciones = $request['observaciones'];
      
      
      $pdf = new CDPDF('P', 'mm', 'letter');
        
        $pdf->SetFont('Times', 'B', 8);
        $pdf->SetFillColor(255);
        $pdf->SetTextColor(0);
        $pdf->setTipo(4);
        $pdf->setTitulo("INFORME DETALLADO DE EJECUCION");
        // Header
        $pdf->AddPage();
           

        $pdf->SetFont('Times', '', 12);

        $consul = Doctrine_Manager::getInstance()->connection();
        
        $sql="select tab0.*, numero_a_texto(tab0.valor)||' PESOS' as VALOR_LETRAS from co_contrato_v tab0 where tab0.id_contrato = $id_contrato and tab0.id_anhos = $id_anhos";
        
        $st = $consul->execute($sql);
        $datos = $st->fetchAll();
        
        
        $sql="select tab0.* from co_firma_liquida tab0";
        
        $st = $consul->execute($sql);
        $firma = $st->fetchAll();
        
        
        $no_contrato = $datos[0]['NO_CONTRATO'];
        $tipo_contrato=$datos[0]['TIPO_COMPLETO'];
        $tip_contrato=$datos[0]['TIPO'];
        $contratista = $datos[0]['NOM_CONTRA'];
        $supervisor = $datos[0]['COMPLETO_SUPERVISOR'];
        $doc_contratista = $datos[0]['DOC_CONTRA'];
        
        $doc_firma = $firma[0]['DOCUMENTO'];
        $nombre_firma = $firma[0]['NOMBRE'];
        $cargo_firma = $firma[0]['CARGO'];
        $norma_firma = $firma[0]['NORMATIVIDAD'];
        
        $objeto = $datos[0]['OBJETO'];
        $plazo = $datos[0]['PLAZO'];
        
        $valor = $datos[0]['VALOR'];
        $valor_letras = $datos[0]['VALOR_LETRAS'];
        
        $sql="select tab0.cdp, tab0.dia_cdp||' de '||tab0.mes_cdp||' del '||anho_cdp AS FECHA_CDP
        from(
        select tab3.cdp, LPAD(to_char(tab3.fecha,'dd'),2,'0') as dia_cdp,
        trim(initcap(to_char(tab3.fecha,'MONTH','nls_date_language=spanish'))) as mes_cdp,
        TO_CHAR(tab3.fecha,'yyyy') as anho_cdp

        from co_cdps_ep tab0
        JOIN co_seleccion_ep tab1 ON tab1.id_estudios_previos = tab0.id_estudios_previos
        join co_contrato tab2 ON tab2.id_seleccion_ep = tab1.id_seleccion_ep
        join co_cdps_v tab3 ON tab3.id = tab0.id_cdp
        where tab2.id_contrato = $id_contrato

        )tab0";
        
        $st = $consul->execute($sql);
        $cdps = $st->fetchAll();
        $certificado = "";
        foreach ($cdps as $cdps){
            
            $certificado.="CDP. No. ".$cdps['CDP']." del ".$cdps['FECHA_CDP']."<br/>";
        }
        
        $sql="select tab0.rp, tab0.dia_rp||' de '||tab0.mes_rp||' del '||anho_rp AS FECHA_RP

            from(

            select tab1.rp,LPAD(to_char(tab1.fecha,'dd'),2,'0') as dia_rp,
            trim(initcap(to_char(tab1.fecha,'MONTH','nls_date_language=spanish'))) as mes_rp,
            TO_CHAR(tab1.fecha,'yyyy') as anho_rp

            from co_legaliza_contrato tab0
            left join rps_v tab1  ON tab0.id_rp = tab1.id
            where tab0.id_contrato = $id_contrato

            )tab0";
        
        $st = $consul->execute($sql);
        $rps = $st->fetchAll();
        $registro_presup = "";
        foreach ($rps as $rps){
            
            $registro_presup.="RP No. ".$rps['RP']." del ".$rps['FECHA_RP']."<br/>";
        }
        
        $sql="select tab0.no_adicion,
            tab0.dia_sol||' de '||tab0.mes_sol||' del '||anho_sol as FECHA_ADICION,
            tab0.valor AS VALOR_ADICION,numero_a_texto(tab0.valor)||' PESOS M/CTE' VALOR_LETRAS,
            tab0.rp, tab0.dia_rp||' de '||tab0.mes_rp||' del '||anho_rp AS FECHA_RP,
            tab0.cdp, tab0.dia_cdp||' de '||tab0.mes_cdp||' del '||anho_cdp AS FECHA_CDP

            from(

            select tab1.no_adicion, LPAD(to_char(tab1.fecha_solicitud,'dd'),2,'0') as dia_sol,
            trim(initcap(to_char(tab1.fecha_solicitud,'MONTH','nls_date_language=spanish'))) as mes_sol,
            TO_CHAR(tab1.fecha_solicitud,'yyyy') as anho_sol, tab1.valor,

            tab2.cdp, LPAD(to_char(tab2.fecha,'dd'),2,'0') as dia_cdp,
            trim(initcap(to_char(tab2.fecha,'MONTH','nls_date_language=spanish'))) as mes_cdp,
            TO_CHAR(tab2.fecha,'yyyy') as anho_cdp,

            tab3.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

            from co_adicion_contrato tab0
            left join co_solicitud_adicion tab1 ON tab1.id_solicitud_adicion = tab0.id_solicitud_adicion
            join co_cdps_v tab2 ON tab2.id = tab1.id_cdp
            left join rps_v tab3  ON tab3.id = tab0.id_rp
            where tab1.id_contrato = $id_contrato

            )tab0";
        
        $st = $consul->execute($sql);
        $adiciones = $st->fetchAll();
        $adicion_texto = "";
        $cdps_adicion="";
        $rps_adicion="";
        $valor_adiciones=0;
        foreach ($adiciones as $adiciones){
            
            $adicion_texto.="Adicion No. ".$adiciones['NO_ADICION']." de fecha ".$adiciones['FECHA_ADICION'].",en la cual se adiciona el valor del contrato en la suma de "
                    .$adiciones['VALOR_LETRAS']."($".number_format($adiciones['VALOR_ADICION']).")<br/>";
            
            $cdps_adicion.="CDP. No. ".$cdps['CDP']." del ".$cdps['FECHA_CDP']."<br/>";
            $rps_adicion.="RP No. ".$rps['RP']." del ".$rps['FECHA_RP']."<br/>";
            $valor_adiciones +=$adiciones['VALOR_ADICION']; 
            
            
        }
        
        $valor_total = $valor_adiciones + $valor;
        
        
        $sql="select numero_a_texto($valor_total)||' PESOS M/CTE' VALOR_LETRAS from dual";
        
        $st = $consul->execute($sql);
        $totales = $st->fetchAll();
        
        $valor_total_letras = $totales[0]['VALOR_LETRAS'];
        
        
        $sql="select tab0.dia_inicio||' de '||tab0.mes_inicio||' del '||anho_inicio AS FECHA_INICIO, TO_CHAR(tab0.fecha_terminacion,'dd-mm-yyyy') fecha_terminacion, TO_CHAR(tab0.fecha_inicio,'dd-mm-yyyy') AS fecha_inicio_b

        from(

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

        from co_legaliza_contrato tab0

        where tab0.id_contrato = $id_contrato

        )tab0";
        
        $st = $consul->execute($sql);
        $legaliza = $st->fetchAll();
        
        $fecha_inicio = $legaliza[0]['FECHA_INICIO'];
        $fecha_inicio_b = $legaliza[0]['FECHA_INICIO_B'];
        $fecha_terminacion = $legaliza[0]['FECHA_TERMINACION'];
        
        $sql="select tab0.no_prorroga,
        tab0.dias_prorroga,
        tab0.dia_prorroga||' de '||tab0.mes_prorroga||' del '||anho_prorroga AS FECHA_PRORROGA,
        tab0.dia_plazo||' de '||tab0.mes_plazo||' del '||anho_plazo AS FECHA_PLAZO

        FROM(

        select tab1.no_prorroga, 
        LPAD(to_char(tab1.fecha_solicitud,'dd'),2,'0') as dia_prorroga,
        trim(initcap(to_char(tab1.fecha_solicitud,'MONTH','nls_date_language=spanish'))) as mes_prorroga,
        TO_CHAR(tab1.fecha_solicitud,'yyyy') as anho_prorroga, tab1.dias_prorroga,
        LPAD(to_char(tab1.plazo_terminacion,'dd'),2,'0') as dia_plazo,
        trim(initcap(to_char(tab1.plazo_terminacion,'MONTH','nls_date_language=spanish'))) as mes_plazo,
        TO_CHAR(tab1.plazo_terminacion,'yyyy') as anho_plazo       


        from co_prorroga_contrato tab0
        join co_solicitud_prorroga tab1 ON tab1.id_solicitud_prorroga = tab0.id_solicitud_prorroga

        where tab1.id_contrato = $id_contrato

        order by tab1.no_prorroga

        )tab0";
        
        $st = $consul->execute($sql);
        $prorrogas = $st->fetchAll();
        $prorroga_texto = "";
        $dias_prorroga=0;
        foreach ($prorrogas as $prorrogas){
            
            $prorroga_texto.="<b>Prorroga No.</b> ".$prorrogas['NO_PRORROGA']." de fecha ".$prorrogas['FECHA_PRORROGA'].",en la cual se prorroga el plazo por  "
                    .$prorrogas['DIAS_PRORROGA']." dias habiles, es decir hasta el ".$prorrogas['FECHA_PLAZO']."<br/>";
            
            $dias_prorroga +=$prorrogas['DIAS_PRORROGA']; 
            
            
        }
        
        $sql="select tab0.no_suspension,
        tab0.dias_suspension,tab0.meses_suspension, tab0.anhos_suspension,
        tab0.dia_suspension||' de '||tab0.mes_suspension||' del '||anho_prorroga AS FECHA_SUSPENSION,
        tab0.dia_terminacion||' de '||tab0.mes_terminacion||' del '||anho_terminacion AS FECHA_TERMINACION

        FROM(

        select tab1.no_suspension,LPAD(to_char(tab1.fecha_solicitud,'dd'),2,'0') as dia_suspension,
        trim(initcap(to_char(tab1.fecha_solicitud,'MONTH','nls_date_language=spanish'))) as mes_suspension,
        TO_CHAR(tab1.fecha_solicitud,'yyyy') as anho_prorroga, tab1.dias_suspension,tab1.meses_suspension, tab1.anhos_suspension,
        LPAD(to_char(tab1.fecha_terminacion,'dd'),2,'0') as dia_terminacion,
        trim(initcap(to_char(tab1.fecha_terminacion,'MONTH','nls_date_language=spanish'))) as mes_terminacion,
        TO_CHAR(tab1.fecha_terminacion,'yyyy') as anho_terminacion  



        from co_suspension_contrato tab0
        join co_solicitud_suspension tab1 ON tab1.id_solicitud_suspension = tab0.id_solicitud_suspension

        where tab1.id_contrato = $id_contrato

        )tab0";
        
        $st = $consul->execute($sql);
        $suspensiones = $st->fetchAll();
        $suspension_texto = "";
        $dias_suspension=0;
        $meses_suspension=0;
        $anhos_suspension=0;
        foreach ($suspensiones as $suspensiones){
            
            $suspension_texto.="<b>Suspension No.</b> ".$suspensiones['NO_SUSPENSION']." de fecha ".$suspensiones['FECHA_SUSPENSION'].",en la cual se suspende el contrato por un plazo de  "
                    .$suspensiones['DIAS_SUSPENSION']." dias,".$suspensiones['MESES_SUSPENSION']." meses y ".$suspensiones['ANHOS_SUSPENSION']." años habiles, es decir hasta el ".$suspensiones['FECHA_TERMINACION']."<br/>";
            
            $dias_suspension +=$suspensiones['DIAS_SUSPENSION'];
            $meses_suspension +=$suspensiones['MESES_SUSPENSION'];
            $anhos_suspension +=$suspensiones['ANHOS_SUSPENSION'];
            
            
        }
        
        
        $sql="select to_char((to_date('$fecha_terminacion','DD-MM-YYYY') + interval '$dias_prorroga' day + interval '$dias_suspension' day + interval '$meses_suspension' month + interval '$anhos_suspension' year ),'dd-mm-yyyy') FECHA_TERMINA  from dual";
        
        $st = $consul->execute($sql);
        $fechas = $st->fetchAll();
        
        $fecha_terminacion_efectiva = $fechas[0]['FECHA_TERMINA'];
        
        $fechaInicial = new DateTime($fecha_inicio_b);
        
        $fechaFinal = new DateTime($fecha_terminacion_efectiva);
        
        $interval = $fechaInicial->diff($fechaFinal);
        
        $anhos = $interval->format('%y');
        $meses= $interval->format('%m');
        $dias= $interval->format('%d');
        
        $sql="select 

        case when $anhos = 0 then '' else lower(numero_a_texto($anhos))||'($anhos) Año(s)' end AS ANHOS,
        case when $meses = 0 then '' else lower(numero_a_texto($meses))||'($meses) Mes(es)' end AS MESES,
        case when $dias = 0 then '' else lower(numero_a_texto($dias))||'($dias) Dia(s)' end AS DIAS

        from dual";
        
        $st = $consul->execute($sql);
        $duracion = $st->fetchAll();
        
        $duracion_total = $duracion[0]['ANHOS']." ". $duracion[0]['MESES']." ".$duracion[0]['DIAS'];
        
        
        $sql="
        SELECT tab0.dia_final||' de '||tab0.mes_final||' del '||anho_final AS FECHA_FINAL
           from(
        select LPAD(to_char(to_date('$fecha_terminacion_efectiva','DD-MM-YYYY'),'dd'),2,'0') as dia_final,
        trim(initcap(to_char(to_date('$fecha_terminacion_efectiva','DD-MM-YYYY'),'MONTH','nls_date_language=spanish'))) as mes_final,
        TO_CHAR(to_date('$fecha_terminacion_efectiva','DD-MM-YYYY'),'yyyy') as anho_final
        from dual
               )tab0
        ";
        
        $st = $consul->execute($sql);
        $fecha_termina = $st->fetchAll();
        $fecha_final = $fecha_termina[0]['FECHA_FINAL'];
        
        
        
        $sql="select nvl(sum(tab0.valor),0) as valor

            from(

            select tab0.id_contrato,tab0.valor - tab0.amortizacion_anticipo valor

            from co_ejecucion_contrato tab0

            where tab0.id_contrato = $id_contrato
            )tab0";
        $st = $consul->execute($sql);
        $pagos = $st->fetchAll();   
        $valor_pago = $pagos[0]['VALOR'];
        
        $sql="
            SELECT tab2.modalidad, to_char(tab0.fecha_ini,'YYYY-MM-DD') DESDE, to_char(tab0.fecha_fin,'YYYY-MM-DD') HASTA, tab0.valor

            from co_amparo_cont tab0
            join co_garantia_ep tab1 ON tab1.id_garantia_ep = tab0.id_garantia_ep
            join co_garantia tab2 ON tab2.id_garantia = tab1.id_garantia
            where tab0.id_contrato = $id_contrato
            ";
        $st = $consul->execute($sql);
        $polizas = $st->fetchAll();   
        
        
        $html.='<table border="1" cellpadding="2px">';
        $html.='<tr><td style="text-align:left;width:50%"><b>TIPO</b></td><td style="text-align:left;width:50%">'.$tip_contrato.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>NUMERO</b></td><td style="text-align:left;width:50%">'.$no_contrato.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>CONTRATISTA</b></td><td style="text-align:left;width:50%">'.$contratista.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>IDENTIFICACIÓN</b></td><td style="text-align:left;width:50%">'.number_format($doc_contratista).'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>OBJETO</b></td><td style="text-align:left;width:50%">'.$objeto.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>VALOR INICIAL</b></td><td style="text-align:left;width:50%">'.$valor_letras.'M/CTE ($'.number_format($valor).') INCLUIDO IVA'.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>CERTIFICADO DE DISPONIBILIDAD PRESUPUESTAL</b></td><td style="text-align:left;width:50%">'.$certificado.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>CERTIFICADO DE REGISTRO PRESUPUESTAL</b></td><td style="text-align:left;width:50%">'.$registro_presup.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>ADICIONES</b></td><td style="text-align:left;width:50%">'.$adicion_texto.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>VALOR TOTAL DEL CONTRATO</b></td><td style="text-align:left;width:50%">'.$valor_total_letras.'M/CTE ($'.number_format($valor_total).') INCLUIDO IVA'.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>CERTIFICADO DE DISPONIBILIDAD PRESUPUESTAL DE LA ADICIÓN</b></td><td style="text-align:left;width:50%">'.$cdps_adicion.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>CERTIFICADO DE REGISTRO PRESUPUESTAL DE LA ADICIÓN</b></td><td style="text-align:left;width:50%">'.$rps_adicion.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>VALOR TOTAL EJECUTADO</b></td><td style="text-align:left;width:50%">'.$valor_total_letras.'M/CTE ($'.number_format($valor_total).') INCLUIDO IVA'.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>PLAZO DE EJECUCION INICIAL</b></td><td style="text-align:left;width:50%">'.$plazo.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>FECHA DE INICIO</b></td><td style="text-align:left;width:50%">'.$fecha_inicio.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>PRORROGAS</b></td><td style="text-align:left;width:50%">'.$prorroga_texto.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>SUSPENSIONES</b></td><td style="text-align:left;width:50%">'.$suspension_texto.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>DURACIÓN TOTAL</b></td><td style="text-align:left;width:50%">'.$duracion_total.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>FECHA DE TERMINACIÓN EFECTIVA DEL CONTRATO</b></td><td style="text-align:left;width:50%">'.$fecha_final.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>VALOR DESEMBOLSADO POR EL SERVICIO GEOLÓGICO COLOMBIANO</b></td><td style="text-align:left;width:50%">$'.number_format($valor_pago).''.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>VALOR PENDIENTES DE PAGO POR EL SERVICIO GEOLÓGICO COLOMBIANO</b></td><td style="text-align:left;width:50%">$'.number_format($valor_total - $valor_pago).''.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>OBSERVACIONES</b></td><td style="text-align:left;width:50%">'.$observaciones.'</td></tr>';
        $html.='<tr><td style="text-align:left;width:50%"><b>SUPERVISOR</b></td><td style="text-align:left;width:50%">'.$supervisor.'</td></tr>';
        $html.='</table>';
        
        $html.='<p style="text-align:justify">POLIZAS</p>';
        
        $html.='<table border="1">
                <tr>
                    <td style="text-align:center;width:20%"><b>COMPAÑÍA ASEGURADORA</b></td>
                    <td style="text-align:center;width:20%"><b>No. POLIZA</b></td>
                    <td style="text-align:center;width:20%"><b>AMPARO</b></td>
                    <td style="text-align:center;width:20%"><table border="1"><tr><td style="text-align:center;width:100%"><b>VIGENCIA</b></td></tr><tr><td style="text-align:center;width:50%">DESDE</td><td style="text-align:center;width:50%">HASTA</td></tr></table></td>
                    <td style="text-align:center;width:20%"><b>VALOR ASEGURADO</b></td></tr>';
        
                    
            foreach($polizas as $polizas){
                $html.='<tr>
                    <td style="text-align:center;width:20%"></td>
                    <td style="text-align:center;width:20%"></td>
                    <td style="text-align:center;width:20%">'.$polizas['MODALIDAD'].'</td>
                    <td style="text-align:center;width:10%">'.$polizas['DESDE'].'</td><td style="text-align:center;width:10%">'.$polizas['HASTA'].'</td>
                    <td style="text-align:center;width:20%">$'.number_format($polizas['VALOR'],2).'</td></tr>';
                
            }
        
        
        $html.='</table>';
        
        
        $pdf->writeHTML($html, true, false, true, false, '');
        
        $pdf->Output("INFORME.pdf", "D");
      
      
  }
}
