<?php

/**
 * com_plan_cerrar_comis actions.
 *
 * @package    controlComisiones
 * @subpackage com_plan_cerrar_comis
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class com_plan_cerrar_comisActions extends sfActions {

    /**
     * Executes index action
     *
     * @param sfRequest $request A request object
     */
    public function executeUpdate(sfWebRequest $request) {
        $mensaje = '';
        $status = 0;

        $this->conn = Doctrine_Manager::getInstance()->getCurrentConnection();
        $this->conn->beginTransaction();

        //Parametros 
        $id_comision = $request['id_comision'];
        $vigencia = $request['vigencia'];


        //parametros
        //datos usuario operacion
        $id_usuario_estado = $request['id_username'];
        $fecha_estado = CN_TABLE::fechaSistema();

        $id_comision = '';
        if (isset($request['id_comision'])) {
            $id_comision = $request['id_comision'];
        }
        $id_comisiones = '';
        if (isset($request['id_comisiones'])) {
            $id_comisiones = $request['id_comisiones'];
        }
        $vigencia = '';
        if (isset($request['vigencia'])) {
            $vigencia = $request['vigencia'];
        }

        $vigencia_comisiones = '';
        if (isset($request['vigencia_comisiones'])) {
            $vigencia_comisiones = $request['vigencia_comisiones'];
        }

        if ($id_comisiones != '' && $vigencia_comisiones != '') {
            try {

                $sql = <<<EOD
update COMISIONES 
set ACTIVO = 0 
where id = $id_comisiones and vigencia = $vigencia_comisiones
EOD;
                //Ejecutar SQL
                //20190218 comentado codigo que genera numero de rsolucion
                $this->conn->execute($sql);
                $this->logMessage("Envio correo al responsable,supervisor.");
                //Consulta datos envio correo
                //Sql
                $sql = <<<EOD
SELECT
placom.id_plan_comisiones,
placom.vigencia,
placom.id_comisiones,
placom.vigencia_comisiones,
comis.descomi as prefijo,
'$correoEnvio' as email_envio,
'' as mensaje_extra,
'' as mensaje_firma,
'Se realiza el cierre de la comisión No.'|| placom.id_comisiones ||' - ' || placom.vigencia_comisiones || '; ' || comis.descomi || ', verificar en control de comisiones.' as mensaje,

--Datos correo responsable
nvl(placom.num_doc_terlog,'') as num_doc,
nvl(placom.razon_soc_terlog,'') as razon_soc,
nvl(placom.correo_terlog,'') as correo,

--Datos correo supervisor
nvl(placom.num_doc_tersup,'') as num_doc_tersup,
nvl(placom.razon_soc_tersup,'') as razon_soc_tersup,
nvl(placom.correo_tersup,'') as correo_tersup
    
FROM com_plan_program_comis_v placom

left join comisiones_v comis
on comis.id_comisiones = placom.id_comisiones
and comis.vigencia = placom.vigencia_comisiones 

where
placom.id_plan_comisiones = $id_plan_comisiones
and placom.vigencia = $id_vigencia 
and placom.id_comisiones = $id_comisiones
and placom.vigencia_comisiones = $vigencia_comisiones 
EOD;
                //Ejecutar SQL
                $records = CN_TABLE::executeSQL($sql);

                $this->logMessage("Envio correo");

                if (count($records) > 0) {

                    $report_params = $records[0];
                    $prefijo = $records[0]['prefijo'];

                    //Ejemplo de la persona que se envia el correo: 
                    //123;1;pepito perez;correo@gmal.com
                    //DATOS RESPONSABLE
                    $num_doc = $records[0]['num_doc'];
                    $id_tipo_doc = 1;
                    $razon_soc = $records[0]['razon_soc'];
                    $correo = $records[0]['correo'];
                    $datos_usuario = array(
                        '0' => $num_doc . ';' . $id_tipo_doc . ';' . $razon_soc . ';' . $correo
                    );
                    //DATOS SUPERVISOR
                    $num_doc_tersup = $records[0]['num_doc_tersup'];
                    $id_tipo_doc_tersup = 1;
                    $razon_soc_tersup = $records[0]['razon_soc_tersup'];
                    $correo_tersup = $records[0]['correo_tersup'];
                    $datos_usuario_tersup = array(
                        '0' => $num_doc_tersup . ';' . $id_tipo_doc_tersup . ';' . $razon_soc_tersup . ';' . $correo_tersup
                    );
                    //PARAMETROS STANDART                 
                    $subject = "Cerrada Comision por Supervisor: " . $num_doc_tersup . " No." . $id_comisiones . " - " . $vigencia_comisiones . "; " . $prefijo;
                    $currentUri = '';
                    $ruta = '';
                    $adjunto = false;
                    $progress_key = $request['comando'] . $request['username'];
                    $array_adjuntos = array();
                    $entidad_cliente = $entidadCliente;
                    $entidad_nombre = $entidadNombre;
                    $addAddress = true;

                    $this->logMessage("Subject: " . $subject);
                    //Incidente #13850, se desactiva envio de correo, este se envia al firmar digitalmente - 20190828
                    //CN_TABLE::envioCorreo($report_params, $datos_usuario_tersup, $subject, $currentUri, $ruta, $adjunto, $progress_key, $array_adjuntos, $entidad_cliente, $entidad_nombre, $addAddress);
                    //CN_TABLE::envioCorreo($report_params, $datos_usuario, $subject, $currentUri, $ruta, $adjunto, $progress_key, $array_adjuntos, $entidad_cliente, $entidad_nombre, $addAddress);
                }
                $status = 0;

                //Ejecutar SQL
                //20190218 comentado codigo que genera numero de rsolucion
                //$this->conn->execute($sql);
            } catch (Exception $e) {
                $this->status = 1;
                $this->totalRows = 0;
                $this->startRow = 0;
                $this->endRow = 0;
                $this->list_data = array();
                $this->logMessage("ERROR!!!");
                $this->logMessage($e->getMessage());
                //echo $exc->getTraceAsString();
            }
        } else {
            $mensaje .= "Error parametros incompletos.";
            $status = 1;
            $this->logMessage($mensaje);
            $api_errors = array();
        }
        if ($status == 0) {
            $this->conn->commit();
            $this->status = 0;
            $this->list_data = array();
            $this->logMessage("[Firmado Digital] Exitoso");
        } else {
            $this->conn->rollback();
            $this->status = 1;
            $this->mensajeError = $mensaje;
            $this->mensaje = $mensaje;
            $this->servicio = "CERRADO DE COMISION";
            $this->list_data = array();
            $this->logMessage("[com_plan_cerrar_comis] ERROR!");
            $this->logMessage($mensaje);
        }
    }

    public function email_content(sfWebRequest $request, $cedula_comisionado) {
        $this->conn = Doctrine_Manager::getInstance()->getCurrentConnection();
        $this->conn->beginTransaction();

        //Parametros 
        $id_comision = $request['id_comision'];
        $vigencia = $request['vigencia'];
        $text = null;

        //parametros
        //datos usuario operacion
        $id_usuario_estado = $request['id_username'];
        $fecha_estado = CN_TABLE::fechaSistema();

        $id_comision = '';
        if (isset($request['id_comision'])) {
            $id_comision = $request['id_comision'];
        }
        $id_comisiones = '';
        if (isset($request['id_comisiones'])) {
            $id_comisiones = $request['id_comisiones'];
        }
        $vigencia = '';
        if (isset($request['vigencia'])) {
            $vigencia = $request['vigencia'];
        }

        $vigencia_comisiones = '';
        if (isset($request['vigencia_comisiones'])) {
            $vigencia_comisiones = $request['vigencia_comisiones'];
        }
        //CONSULTAMOS LAS TABLAS BASE ara armar el informe
        //consultamos que el comisionado tenga correo configurado
        $sql = <<<EOD
select * from terceros where nitocc = $cedula_comisionado               
EOD;
        $email_record = CN_TABLE::executeSQL($sql);
        if (count($records) > 0) {
            $email = $email_record[0]['email'];
            $razsoc = $email_record[0]['razsoc'];
            $nitocc = $email_record[0]['nitocc'];
            if (isset($email)) {
                //Datos Comision
                $sql = <<<EOD
select comisiones.*,areas.descripcion as area,tab3.descomi as tipo_comision,tab4.descripcion
from comisiones 
left join areas on areas.codigo = comisiones.codare  
left join tipos_comision tab3 on tab3.tipcomi = comisiones.tipcomi   
left join proyectos tab4 on tab4.codigo = comisiones.codpro
where id_comision =  $id_comisiones and vigencia =  $vigencia_comisiones            
EOD;
                $comision = CN_TABLE::executeSQL($sql);
                $objetivo_comision = $comision[0]['objetivo'];
                $actividad_comision = $comision[0]['actividad'];
                $area_comision = $comision[0]['area'];
                $fecha_comision = $comision[0]['fecha'];
                $tipo_comision = $comision[0]['tipo_comision'];
                $id_original = $comision[0]['id_original'];
                $codpro = $comision[0]['codpro'];
                $proyecto = $comision[0]['proyecto'];
                //Obtenemos destinos
                $sql = <<<EOD
select * from destinos_comisionados where nitocc = $cedula_comisionado and id_comision =  $id_comisiones and vigencia =  $vigencia_comisiones            
EOD;
                $destinos = CN_TABLE::executeSQL($sql);
                //Obtenemos Objetos
                $sql = <<<EOD
select * from destinos_comisionados where nitocc = $cedula_comisionado and id_comision =  $id_comisiones and vigencia =  $vigencia_comisiones            
EOD;
                $objetos = CN_TABLE::executeSQL($sql);
                //Obtenemos Taxis
                $sql = <<<EOD
select * from destinos_comisionados where nitocc = $cedula_comisionado and id_comision =  $id_comisiones and vigencia =  $vigencia_comisiones            
EOD;
                $taxis = CN_TABLE::executeSQL($sql);
                //ARMAMOS TEXTO CORREO
                $text = <<<EOD
<head>

<style>

body {
        font-size: 10pt;
        font-family: sans-serif;
}

table.data th {
        border: 1px solid black;
        padding: 3px;
}

table.data td {
        padding-left: 5px;
}

table.show td,th {
        border-collapse: collapse;
        border: 1px solid black;
        padding: 5px;
}

table.reporte {
        border-collapse: collapse;
}

table.reporte td {
        padding-left: 10px;
        padding-right: 10px;
}

th {
        background-color: #B0C5EF;
        font-weight: normal;
}

th.alt {
        background-color: #CCCCCC;
}

th.reporte {
        font-weight: bolder;
        background-color: white;
        border: 0px none;
        paddings-left: 20px;
}

td.bottom {
        border-bottom: 2px solid black;
}

td.menu {
        width: 280px;
        vertical-align: top;
}

tr.alt {
        background-color: #e0e0e0;
}

td.numero {
        text-align: right;
}

.divider {
        background-color: #dee3ec;
}

a:link {
        color: #3366CC;
        text-decoration: none;
}

a:hover {
        color: #339999;
        text-decoration: underline;
}

a:visited {
        color: #3366CC;
        text-decoration: none;
}

a.menu:link {
        color: #363e4e;
}

a.menu:hover:visited {
        color: #339999;
}

a.menu:visited {
        color: #363e4e;
}

.bold {
        font-weight: bolder;
}

.error {
        font-style: italic;
        color: red;
}

.warning {
        font-style: italic;
        color: #FF9900;
        font-weight: bolder;
}

.success {
        font-style: italic;
        color: #2E9AFE;
        font-weight: bolder;
}
#ordenar {
  list-style: url("../images/order.png");
}

#ordenar li {
  margin:2px;
}

.title {
        font-size: 15pt;
        font-weight: bold;
        color: #1D336D;
}

.small {
        font-size: x-small;
}

h1,h2,h3 {
        color: #2771bc;
}

h1 {
        font-size: 16pt;
}

h2 {
        font-size: 14pt;
}

img {
        border: 0px;
        vertical-align: middle;
}


</style>

</head>


<h1 color="red">Detalle Comisionado</h1>
<h2> $nitocc - $razsoc</h2>
<h2>Comisi&oacute;n $id_comisiones -  $vigencia_comisiones</h2>

<!--- Se modifica por Incidente #6210
<h3>A continuaci&oacute;n encuenta relacionada la informaci&oacute;n pertinente con la PROGRAMACION de  
comisi&oacute;n, por favor verifique e informe a su Jefe Inmediato y/&oacute; Grupo de Presupuesto
si encuentra inconsistencias.<br/><br/>

En ning&uacute;n caso la PROGRAMACI&Oacute;N DE COMISIONES lo autoriza para que ejecute la comisi&oacute;n
sin antes producirse la RESOLUCION DE COMISION y el REGISTRO PRESUPUESTAL. </h3>
-->
<h3>A continuaci&oacute;n encontrara relacionada la informaci&oacute;n pertinente con la PROGRAMACI&Oacute;N de comisi&oacute;n, 
por favor verifique la informaci&oacute;n all&iacute; registrada; en caso de encontrar inconsistencias informe a 
su Jefe Inmediato y/&oacute; al programador de comisiones de su respectiva &aacute;rea. </h3>

<table cellspacing="25">
        <tr>
                <td><b>Objetivos:</b>$objetivo_comision</td>
        </tr>
        <tr>
                <td><b>Actividades:</b>$actividad_comision</td>
        </tr>
        <tr>
                <td>
                        <!-- Resumen comision -->
                        <table class="reporte" border="1">
                                <tr>
                                        <th colspan="2" class="alt">Detalles Comisi&oacute;n</th>
                                </tr>
                          <tr>
                            <th align="left"><strong>&Aacute;REA</strong></th>
                            <td>$area_comision</td>
                          </tr>
                          <tr>
                            <th align="left"><strong>FECHA DE CREACI&Oacute;N</strong></th>
                            <td>$fecha_comision</td>
                          </tr>
                          <tr>
                            <th align="left"><strong>TIPO COMISI&Oacute;N</strong></th>
EOD;
                if ($tipo_comision == 'Ordinaria' || $tipo_comision == 'Extraordinaria') {
                    $text = $text . "<td>" . $tipo_comision . "</td>";
                } else {
                    $text = $text . "<td>" . $tipo_comision . " AL PLAN DE COMISION: " . $id_original . "</td>";
                }
                $text = <<<EOD
                        $text
                          </tr>
                          <tr>
                            <th align="left"><strong>PROYECTO</strong></th>
                            <td><b>$codpro</b>$proyecto</td>
                          </tr> 
                          <tr>
                            <th align="left"><strong>NUMERO DE DIAS</strong></th>
                            <td><?php echo $comisionado->getDias()?></td>
                          </tr>
                          <?
                          $c = new Criteria();
                            $c->add(ComisionadosObjsPeer::ID_COMISION, $idComision);
                            $c->add(ComisionadosObjsPeer::VIGENCIA, $vigencia);
                            $c->add(ComisionadosObjsPeer::NITOCC, $comisionado->getNitocc());
                            $c->add(ComisionadosObjsPeer::CODOBJ, '06');
                            $tarifa=ComisionadosObjsPeer::doSelectOne($c)->getTarifa();

                          ?>
                          <tr>
                            <th align="left"><strong>TARIFA VIATICOS</strong></th>
                            <td><?php echo number_format($tarifa,2)?></td>
                          </tr>
                          <tr>
                            <th align="left"><strong>FECHA SALIDA</strong></th>
                            <td><?php echo $comisionado->getFechaSalida()?></td>
                          </tr>

                          <tr>
                            <th align="left"><strong>FECHA DE REGRESO</strong></th>
                            <td><?php echo $comision->getInterrupcion() ? 'Comision con interrupcion' : $comisionado->getFechaRegreso()?></td>
                          </tr>
                          <tr>
                            <th align="left"><strong>TIPO TRANSPORTE</strong></th>
                            <td><?php echo $comisionado->getTransportes()->getDescripcion()?></td>
                          </tr>
                          <tr>
                                <th align="left"><b>SUELDO COMISIONADO</b></th>
                                <td>$ <?php echo format_number($comisionado->getTerceros()->getSueldo())?></td>
                          </tr>
                        </table>
                        <!-- END resumen comision -->

                </td>
                <td valign="top">
                        <!-- Destinos comisionado -->
                        <table class="reporte" border="1">
                                <tr>
                                        <th class="alt" colspan="3">Destinos Comisionado</th>
                                </tr>
                                <?php if(!$destinos):?>
                                        <tr>
                                                <td colspan="2"><p>No tiene destinos asignados</p></td>
                                        </tr>
                                <?php else: ?>
                                <tr>
                                        <th>Destino</th>
                                        <th>Observaciones</th>
                                        <th>Transporte</th>
                                </tr>
                                <?php foreach($destinos as $destino): ?>
                                <tr>
                                        <td><?php echo $destino->getMunicipios()->getMunicipio() ?></td>
                                        <td><?php

                                        $criteria=new Criteria();
                                        $criteria->add(DestinosPeer::ID_COMISION,$idComision);
                                        $criteria->add(DestinosPeer::VIGENCIA,$vigencia);
                                        $criteria->add(DestinosPeer::CODMUN,$destino->getMunicipios()->getCodmun());
                                        $destinos_1=DestinosPeer::doSelectOne($criteria);

                                        echo $destinos_1->getObservacion() ?></td>
                                        <td><?php echo $destino->getTransportes()->getDescripcion()?></td>
                                </tr>
                                <?php endforeach;?>
                                <?php endif;?>
                        </table>
                        <!-- END Destinos comisionado -->

                </td>
        </tr>
        <tr>
                <td valign="top">
                        <!-- Objetos de gasto -->
                        <table class="reporte" border="1" width="100%">
                                <tr>
                                        <th class="alt" colspan="3">Objetos de Gasto</th>
                                </tr>
                                <?php if(!$objetos): ?>
                                        <tr>
                                                <td colspan="3"><p>No tiene objetos de gasto registrados</p></td>
                                        </tr>
                                <?php else: ?>
                                <tr>
                                        <th>Objeto de Gasto</th>
                                        <th>Valor</th>
                                        <th>Observaciones</th>
                                </tr>
                                <?php $sum = 0?>
                                <?php foreach($objetos as $obj): ?>
                                <?if($obj->getObjetosGasto()->getCodigo()=='06'){?>				
                                <tr>
                                        <td><?php echo $obj->getObjetosGasto()->getCodigo()." ". $obj->getObjetosGasto()->getDescripcion()?></td>
                                        <td align="right">
                                        <table width="100%" border="1">
                        <tr>
                        <th align="left" width="50%" bgcolor="#B0C5EF"><b>VIATICOS</b></th>
                        <td align="right" width="50%"><?echo number_format($obj->getViaticos())?></td>
                        </tr>
                        <tr>
                        <th align="left" width="50%" bgcolor="#B0C5EF"><b>GASTOS DE VIAJE</b></th>
                        <td align="right" width="50%"><?echo number_format($obj->getValor()-$obj->getViaticos())?></td>
                        </tr>

                        </table>

                                        </td>
                                        <td><?php echo $obj->getObserva()?></td>
                                </tr>
                                <?}else{?>

                                <tr>
                                        <td><?php echo $obj->getObjetosGasto()->getCodigo()." ". $obj->getObjetosGasto()->getDescripcion()?></td>
                                        <td align="right">$<?php echo format_number(round($obj->getValor()))?></td>
                                        <td><?php echo $obj->getObserva()?></td>
                                </tr>
                                <?}?>
                                <?php $sum += round($obj->getValor())?>
                                <?php endforeach; ?>
                                <tr>
                                        <td><b>Total</b></td>
                                        <td align="right"><b>$<?php echo format_number($sum)?></b></td>
                                        <td></td>
                                </tr>
                                <?php endif;?>
                        </table>
                        <!-- END Objetos de gasto -->

                </td>
                <td valign="top">
                        <!-- Taxis asignados -->

                        <table class="reporte" border="1">
                                <thead>
                                        <tr>
                                                <th colspan="4" class="alt">Tarifas de taxis asignadas (en la fecha)</th>
                                        </tr>
                                </thead>
                                <?php if(!$taxis): ?>
                                        <tr>
                                                <td colspan="4"><p>No tiene gastos de viaje para taxis asignados</p></td>
                                        </tr>
                                <?php else: ?>
                                <tr>
                                        <th>Destino</th>
                                        <th>Valor</th>
                                        <th>Cantidad</th>
                                        <th>Subtotal</th>
                                </tr>
                                <?php 
                                        $sum = 0;
                                        $num = 0;
                                ?>
                                <?php foreach($taxis as $taxi): ?>
                                <tr align="right">
                                        <td align="left"><?php echo $taxi->getTarifasTaxis()->getDescripcion()?></td>
                                        <td>$<?php echo format_number(round($taxi->getTotal() / $taxi->getNumViajes()))?></td>
                                        <td><?php echo $taxi->getNumViajes()?></td>
                                        <td>$<?php echo format_number($taxi->getTotal())?></td>
                                </tr>
                                <?php 
                                        $sum += $taxi->getTotal();
                                        $num += $taxi->getNumViajes();
                                ?>
                                <?php endforeach;?>
                                <tfoot>
                                        <tr class="bold" align="right">
                                                <td align="left" colspan="2">Total</td>
                                                <td><?php echo $num?></td>
                                                <td>$<?php echo format_number($sum)?></td>
                                        </tr>
                                </tfoot>
                                <?php endif;?>
                        </table>
                        <!-- END Taxis -->

                </td>
        </tr>
<tr>
                <td><b>Observaciones Generales:</b><?php echo $comision->getObserva()?></td>
        </tr>
</table>
EOD;
            }
        }
        return $text;
    }

}
