<?php

/**
 * adjunto_cobro_coactivo actions.
 *
 * @package    cobro_coactivo
 * @subpackage adjunto_cobro_coactivo
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class adjunto_cobro_coactivoActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
    
  public $conn;  
    
  public function executeAdd(sfWebRequest $request)
  {
    //Guardar los parametros del request en el log
    $this->logMessage("---BEGIN Logging request");
    foreach ($request->getPostParameters() as $key => $value) {
        $this->logMessage("request[$key] = $value");
    }
    $this->logMessage("--------------------------------------------------* Ip: " . $_SERVER['REMOTE_ADDR']);
    foreach ($request->getGetParameters() as $key => $value) {
        $this->logMessage("request[$key] = $value");
    }
    $this->logMessage("---END Logging request");

    //leer variables gwt
    $fecha_ini = $request['fecha_ini'];
    $fecha_fin = $request['fecha_fin'];

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

    /*
     * Manejo de errores
     */
    try {
        /*
         * Paginacion
         */
        if (isset($request['_startRow'])) {
            $rowStart = $request['_startRow'];
        } else {
            $rowStart = 0;
        }

        if (isset($request['_endRow'])) {
            $rowEnd = $request['_endRow'];
        } else {
            $rowEnd = 75;
        }

        $fecha_sistema = CN_TABLE::fechaSistema();
        
        $funcionalidad = "actuacion_auto";
        
        $uploadDir = sfConfig::get("sf_upload_dir");
        $this->logMessage("uploadDir");
        $this->logMessage($uploadDir);
        $this->logMessage("Contacts_uploads");
        $Contacts_uploads = $uploadDir . '/' . $funcionalidad;
        $this->logMessage($Contacts_uploads);
        
        
            /*
             * Verificar adjuntos Actuación Procesal
             */
        
        //Consultar los registros cuyo campo "adjunto" no sea nulo
            
            $sql = <<<EOD
SELECT tab0.id_registro_etapa, 
  tab0.adjunto
FROM CBR_REGISTRO_ETAPA tab0
JOIN CBR_PROCESO_COACTIVO tab1 ON tab1.id_proceso_coactivo = tab0.id_proceso_coactivo
JOIN CBR_REMISION_TITULO  tab2 ON tab2.id_remision_titulo = tab1.id_remision_titulo
EOD;
        $records = CN_TABLE::executeSQL($sql, true);
        
        foreach($records as $value){
               $idRegistroEtapa = $value['id_registro_etapa'];
               $adjunto = $value['adjunto'];
               $estado = 0;
               //Verificar si el id_registro_etapa ya está en la tabla de adjuntos
               $sql = <<<EOD
SELECT count(*) as cantidad FROM CBR_VERIFICACION_ADJUNTO
WHERE id_registro =  $idRegistroEtapa
and funcionalidad = '$funcionalidad'
EOD;
               $adjuntoRegistroEtapa = CN_TABLE::executeSQL($sql, true);
               
                $this->logMessage($Contacts_uploads );
                $this->logMessage($adjunto);
               
                if (file_exists($Contacts_uploads . '/' . $adjunto)){
                        $estado=1;
                    }    
               
                if($adjuntoRegistroEtapa[0]['cantidad']==0){
                   
                   
                    $sql = <<<EOD
INSERT INTO CBR_VERIFICACION_ADJUNTO
(id_registro, adjunto, funcionalidad, estado) values ($idRegistroEtapa, '$adjunto',  '$funcionalidad', $estado)
EOD;
                    CN_TABLE::executeSQL($sql, true);
                   
               }
               else{
                    $sql = <<<EOD
UPDATE CBR_VERIFICACION_ADJUNTO
SET estado=$estado
WHERE id_registro=$idRegistroEtapa
and funcionalidad = '$funcionalidad'
EOD;
                    CN_TABLE::executeSQL($sql, true);
                  
               }
               
            }
        
        $this->conn->commit();
        $this->status = 0;
        $this->list_data = array();
        $this->logMessage("[VERIFICACION_ADJUNTOS] Consulta exitosa");    
        
    
    } catch (Exception $e){
        
        //ROLLBACK DE TODAS LAS TRANSACCIONES EN CASO DE QUE OCURRA ALGUN ERROR
        $this->conn->rollback();

        $this->status = 1;
        $this->mensajeError = "[VERIFICACION_ADJUNTOS] Ocurrio un error: " . $e->getMessage();
        $this->list_data = array();
        $this->logMessage("[VERIFICACION_ADJUNTOS] ERROR!");
        $this->logMessage($e->getMessage());
        
    }
  }
}
