<?php

/**
 * adjunto_avoca_conoc actions.
 *
 * @package    cobro_coactivo
 * @subpackage adjunto_avoca_conoc
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class adjunto_avoca_conocActions extends sfActions
{
    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 = "avoca_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);
             
            //guardar log
            // Solo registra log la primera vez de consulta
            //Operaciones: 1-CONSULTAR, 2-ACTUALIZAR, 3-ADICIONAR, 4-ELIMINAR, 5-ANULAR
            /*
            $id_ope_bd = 3;
            //obtener id maestro tabla
            $id_mae_bd = CN_TABLE::consultarIdTablaBD('CBR_VERIFICACION_ADJUNTO');
            //registro de consulta en tabla de log- la observacion puede o no enviarse ($request, $id_ope_bd, $id_mae_bd, $observacion)
            $sql = CN_TABLE::registrarLog($request, $id_ope_bd, $id_mae_bd, // observacion
                            "Se verificó la existencia de adjuntos");
            */
            
            
            /*
             * Verificar adjuntos de Avoca Conocimiento
             */
            
            //Consultar los registros cuyo campo "adjunto" no sea nulo
            
            $sql = <<<EOD
SELECT id_avoca_conoc,
adjunto
FROM CBR_AVOCA_CONOC tab0 
JOIN CBR_REMISION_TITULO tab1 ON tab1.id_remision_titulo = tab0.id_remision_titulo
WHERE tab1.fecha_remision BETWEEN to_date('$fecha_ini', 'YYYY-MM-DD') AND to_date('$fecha_fin', 'YYYY-MM-DD')
    AND tab0.adjunto is not null
EOD;
            
            $records = CN_TABLE::executeSQL($sql, true);
            
            foreach($records as $value){
               $idAvocaConoc = $value['id_avoca_conoc'];
               $adjunto = $value['adjunto'];
               $estado = 0;
               //Verificar si el id_avoca_conoc ya está en la tabla de adjuntos
               $sql = <<<EOD
SELECT count(*) as cantidad FROM CBR_VERIFICACION_ADJUNTO
WHERE id_registro =  $idAvocaConoc
and funcionalidad = '$funcionalidad'
EOD;
               $adjuntoAvoca = CN_TABLE::executeSQL($sql, true);
               
                $this->logMessage($Contacts_uploads );
                $this->logMessage($adjunto);
               
                if (file_exists($Contacts_uploads . '/' . $adjunto)){
                        $estado=1;
                    }    
               
                if($adjuntoAvoca[0]['cantidad']==0){
                   
                   
                    $sql = <<<EOD
INSERT INTO CBR_VERIFICACION_ADJUNTO
(id_registro, adjunto, funcionalidad, estado) values ($idAvocaConoc, '$adjunto',  '$funcionalidad', $estado)
EOD;
                    CN_TABLE::executeSQL($sql, true);
                   
               }
               else{
                    $sql = <<<EOD
UPDATE CBR_VERIFICACION_ADJUNTO
SET estado=$estado
WHERE id_registro=$idAvocaConoc
and funcionalidad = '$funcionalidad'
EOD;
                    CN_TABLE::executeSQL($sql, true);
                  
               }
               
            }
            
            
             /*
             * Verificar adjuntos de oficio deudor
             */
            $funcionalidad = "oficio_deudor";
            $Contacts_uploads = $uploadDir . '/' . $funcionalidad;
            //Consultar los registros cuyo campo "adjunto" no sea nulo
            $sql = <<<EOD
SELECT id_oficio_deudor,
adjunto
FROM CBR_OFICIO_DEUDOR tab0 
JOIN CBR_REMISION_TITULO tab1 ON tab1.id_remision_titulo = tab0.id_remision_titulo
WHERE tab1.fecha_remision BETWEEN to_date('$fecha_ini', 'YYYY-MM-DD') AND to_date('$fecha_fin', 'YYYY-MM-DD')
    AND tab0.adjunto is not null
EOD;
            
            $records = CN_TABLE::executeSQL($sql, true);
            
            foreach($records as $value){
               $idOficioDeudor = $value['id_oficio_deudor'];
               $adjunto = $value['adjunto'];
               $estado = 0;
               //Verificar si el id_oficio_deudor ya está en la tabla de adjuntos
               $sql = <<<EOD
SELECT count(*) as cantidad FROM CBR_VERIFICACION_ADJUNTO
WHERE id_registro =  $idOficioDeudor
and funcionalidad = '$funcionalidad'
EOD;
               $adjuntoOficioDeudor = CN_TABLE::executeSQL($sql, true);
               
               
                if (file_exists($Contacts_uploads . '/' . $adjunto)){
                        $estado=1;
                    }    
               
                if($adjuntoOficioDeudor[0]['cantidad']==0){
                   
                   
                    $sql = <<<EOD
INSERT INTO CBR_VERIFICACION_ADJUNTO
(id_registro, adjunto, funcionalidad, estado) values ($idOficioDeudor, '$adjunto', '$funcionalidad', $estado)
EOD;
                    CN_TABLE::executeSQL($sql, true);
                   
               }
               else{
                    $sql = <<<EOD
UPDATE CBR_VERIFICACION_ADJUNTO
SET estado=$estado
WHERE id_registro=$idOficioDeudor
and funcionalidad = '$funcionalidad'
EOD;
                    CN_TABLE::executeSQL($sql, true);
                  
               }
               
            }  
            
             /*
             * Verificar adjuntos de investigacion de bienes
             */
            $funcionalidad = "investigacion";
            $Contacts_uploads = $uploadDir . '/' . $funcionalidad;
            //Consultar los registros cuyo campo "adjunto" no sea nulo
            $sql = <<<EOD
SELECT id_investiga_bienes,
adjunto
FROM CBR_INVESTIGA_BIENES tab0 
JOIN CBR_REMISION_TITULO tab1 ON tab1.id_remision_titulo = tab0.id_remision_titulo
WHERE tab1.fecha_remision BETWEEN to_date('$fecha_ini', 'YYYY-MM-DD') AND to_date('$fecha_fin', 'YYYY-MM-DD')
    AND tab0.adjunto is not null
EOD;
            
            $records = CN_TABLE::executeSQL($sql, true);
            
            foreach($records as $value){
               $idInvestigaBienes = $value['id_investiga_bienes'];
               $adjunto = $value['adjunto'];
               $estado = 0;
               //Verificar si el id_investiga_bienes ya está en la tabla de adjuntos
               $sql = <<<EOD
SELECT count(*) as cantidad FROM CBR_VERIFICACION_ADJUNTO
WHERE id_registro =  $idInvestigaBienes
and funcionalidad = '$funcionalidad'
EOD;
               $adjuntoInvestigaBienes = CN_TABLE::executeSQL($sql, true);
               
               
                if (file_exists($Contacts_uploads . '/' . $adjunto)){
                        $estado=1;
                    }    
               
                if($adjuntoInvestigaBienes[0]['cantidad']==0){
                   
                   
                    $sql = <<<EOD
INSERT INTO CBR_VERIFICACION_ADJUNTO
(id_registro, adjunto, funcionalidad, estado) values ($idInvestigaBienes, '$adjunto',  '$funcionalidad', $estado)
EOD;
                    CN_TABLE::executeSQL($sql, true);
		}
		else{
				    $sql = <<<EOD
		UPDATE CBR_VERIFICACION_ADJUNTO
		SET estado=$estado
		WHERE id_registro=$idInvestigaBienes
		and funcionalidad = '$funcionalidad'
EOD;
                    CN_TABLE::executeSQL($sql, true);
				  
                }
               
            }

            
         /*
             * Verificar adjuntos de cierre persuasivo
             */
            $funcionalidad = "cobro_coactivo";
            $Contacts_uploads = $uploadDir . '/' . $funcionalidad;
            //Consultar los registros cuyo campo "adjunto" no sea nulo
            $sql = <<<EOD
SELECT id_cierre_persuasivo,
adjunto
FROM CBR_CIERRE_PERSUASIVO tab0 
JOIN CBR_REMISION_TITULO tab1 ON tab1.id_remision_titulo = tab0.id_remision_titulo
WHERE tab1.fecha_remision BETWEEN to_date('$fecha_ini', 'YYYY-MM-DD') AND to_date('$fecha_fin', 'YYYY-MM-DD')
    AND tab0.adjunto is not null
EOD;
            
            $records = CN_TABLE::executeSQL($sql, true);
            
            foreach($records as $value){
               $idCierrePersuasivo = $value['id_cierre_persuasivo'];
               $adjunto = $value['adjunto'];
               $estado = 0;
               //Verificar si el id_cierre_persuasivo ya está en la tabla de adjuntos
               $sql = <<<EOD
SELECT count(*) as cantidad FROM CBR_VERIFICACION_ADJUNTO
WHERE id_registro =  $idCierrePersuasivo
and funcionalidad = '$funcionalidad'
EOD;
               $adjuntoCierrePersuasivo = CN_TABLE::executeSQL($sql, true);
               
               
                if (file_exists($Contacts_uploads . '/' . $adjunto)){
                        $estado=1;
                    }    
               
                if($adjuntoCierrePersuasivo[0]['cantidad']==0){
                   
                   
                    $sql = <<<EOD
INSERT INTO CBR_VERIFICACION_ADJUNTO
(id_registro, adjunto, funcionalidad, estado) values ($idCierrePersuasivo, '$adjunto', '$funcionalidad', $estado)
EOD;
                    CN_TABLE::executeSQL($sql, true);
		}
		else{
				    $sql = <<<EOD
		UPDATE CBR_VERIFICACION_ADJUNTO
		SET estado=$estado
		WHERE id_registro=$idCierrePersuasivo
		and funcionalidad = '$funcionalidad'
EOD;
                    CN_TABLE::executeSQL($sql, true);
				  
                }
               
            }
        
            
         /*
             * Verificar adjuntos de auto cierre persuasivo
             */
            $funcionalidad = "auto_cierre";
            $Contacts_uploads = $uploadDir . '/' . $funcionalidad;
            //Consultar los registros cuyo campo "adjunto" no sea nulo
            $sql = <<<EOD
SELECT id_auto_cierre,
adjunto
FROM CBR_AUTO_CIERRE tab0 
JOIN CBR_REMISION_TITULO tab1 ON tab1.id_remision_titulo = tab0.id_remision_titulo
WHERE tab1.fecha_remision BETWEEN to_date('$fecha_ini', 'YYYY-MM-DD') AND to_date('$fecha_fin', 'YYYY-MM-DD')
    AND tab0.adjunto is not null
EOD;
            
            $records = CN_TABLE::executeSQL($sql, true);
            
            foreach($records as $value){
               $idAutoCierre = $value['id_auto_cierre'];
               $adjunto = $value['adjunto'];
               $estado = 0;
               //Verificar si el id_auto_cierre ya está en la tabla de adjuntos
               $sql = <<<EOD
SELECT count(*) as cantidad FROM CBR_VERIFICACION_ADJUNTO
WHERE id_registro =  $idAutoCierre
and funcionalidad = '$funcionalidad'
EOD;
               $adjuntoAutoCierre = CN_TABLE::executeSQL($sql, true);
               
               
                if (file_exists($Contacts_uploads . '/' . $adjunto)){
                        $estado=1;
                    }    
               
                if($adjuntoAutoCierre[0]['cantidad']==0){
                   
                   
                    $sql = <<<EOD
INSERT INTO CBR_VERIFICACION_ADJUNTO
(id_registro, adjunto, funcionalidad, estado) values ($idAutoCierre, '$adjunto',  '$funcionalidad', $estado)
EOD;
                    CN_TABLE::executeSQL($sql, true);
		}
		else{
				    $sql = <<<EOD
		UPDATE CBR_VERIFICACION_ADJUNTO
		SET estado=$estado
		WHERE id_registro=$idAutoCierre
		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());
             
        }
    }
}
