<?php

/**
 * co_send_mail actions.
 *
 * @package    contratacion
 * @subpackage co_send_mail
 * @author     Manuel Enrique Paredes Lopez
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class co_send_mailActions extends sfActions {

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

        //Revisar que sea post
        //$this->forward404Unless($request->isMethod('post'));
        //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");


        try {

            $this->logMessage('Entro en estado general');

            /*
             * (SGC-1, ANM-2, SGR-3, CYC-4, COL-5, INCI-6, LOCAL-7)
             */
            $array = sfYaml::load(dirname(__FILE__) . '/../../../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;
                        }
                    }
                }
                if ('correoEnvio' == $routeName) {
                    foreach ($routeData as $key => $value) {
                        //echo $value . "\n";
                        if ($key == 'value') {
                            $correoEnvio = $value;
                        }
                    }
                }
                if ('jasper_url' == $routeName) {
                    foreach ($routeData as $key => $value) {
                        //echo $value . "\n";
                        if ($key == 'value') {
                            $url_jasper = $value;
                        }
                    }
                }
                if ('serviceHtml_url' == $routeName) {
                    foreach ($routeData as $key => $value) {
                        if ($key == 'value') {
                            $url_html = $value;
                        }
                    }
                }


                $int++;
            }



            $this->logMessage('CONSULTO VARIABLES DE ARCHIVOS!!!');




            if (isset($request['id_estudios_previos'])) {

                $id_estudios_previos = $request['id_estudios_previos'];
            } else {


                $id_estudios_previos = 0;
            }
            if ($entidadCliente == 2) {

                /*
                 * GENERAMOS Los dos reportes 
                 */
                //BORRADOR EP
                $nombreArchivo = "estudios_previos_" . $id_estudios_previos;
                $nombre_reporte_uno = $nombreArchivo . ".pdf";
                $this->logMessage("estudio_previo :" . $nombreArchivo);
                $this->logMessage("PHP URI:!!" . $url_html);
                //Generamos PDF JASPER
                $url = $url_html;
                $url = $url . 'co_pdf_ep/pdf_borrador';
                $url = $url . '?id_estudios_previos=' . $id_estudios_previos;
                $url = $url . '&save=true'; //tag_adjunto_modulo

                $adjunto_nombre = $nombre_reporte_uno;



                $this->logMessage('URISS!!!');
                $this->logMessage('URL--' . $url);
                $ch = curl_init($url);

                //Parametros de retorno en cURL
                curl_setopt($ch, CURLOPT_HEADER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Skip SSL Verification
                //Ejecuta la petición
                $rta = curl_exec($ch);
                //Se cierra la conexión
                curl_close($ch);


                $this->logMessage('REGRESO');



                $this->logMessage(' PREPARO ENVIO');

                $uploadDir = sfConfig::get("sf_upload_dir");
                $adjunto = true;
                $ruta = $uploadDir . '/adj_estudios_previos/';
                $array_adjuntos = array(
                    $adjunto_nombre => $adjunto_nombre
                        // $nombre_reporte =>  $nombre_reporte
                );
                //$array_adjuntos=array();  







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

                $sql = "
                     SELECT tab0.dia_sistema||' de '||tab0.mes_sistema||' del '||anho_sistema AS FECHA_SISTEMA
                        from(
                         select LPAD(to_char(sysdate,'dd'),2,'0') as dia_sistema,
                         trim(initcap(to_char(sysdate,'MONTH','nls_date_language=spanish'))) as mes_sistema,
                         TO_CHAR(sysdate,'yyyy') as anho_sistema
                         from dual
                     )tab0
                     ";

                $records = CN_TABLE::executeSQL($sql);
                $fecha_creacion = $records[0]['fecha_sistema'];

                $sql = <<<EOD
                   select tab0.*, interc.mail from co_estudios_previos_v tab0 
                    left join INTERCEROS_DU_DIR_V interc ON tab0.id_supervisor=interc.id_mae_ter   
                    where tab0.id_estudios_previos = $id_estudios_previos
EOD;

                $records = CN_TABLE::executeSQL($sql);
                $nroestudio = $records[0]['id_estudios_previos'];
                $responsable = $records[0]['nombre_responsable'];
                $supervisor = $records[0]['razon_soc_sup'];
                $area = $records[0]['area'];
                $valor = $records[0]['valor'];
                $valor = number_format($valor);
                $modalidad = $records[0]['modalidad'];
                $abogado = $records[0]['abogado'];
                $proceso = $records[0]['proceso'];
                $objeto = $records[0]['descripcion'];
                $email_supervisor = $records[0]['mail'];



                $currentUri = "";

                //PARAMETROS GENERALES



                if (!isset($request["email_envio"])) {
                    $request["email_envio"] = $correoEnvio;
                }
                //$adjunto = false;
                //$ruta = "";

                /*
                 * Variable Memcache
                 */

                $progress_key = $request['progress_key'] . $request['username'];
                $this->logMessage("Valor de progress_key: " . $progress_key);

                //$array_adjuntos = array();

                $documento = 'ANM';
                $tipo_doc = '1';
                $email = 'contratacion@anm.gov.co';
                //$email='mparedes@sofhouse.net';
                $nombre = 'Talento Humano';
                $rol = 'Usuario de Talento Humano';

                $parametros = $documento . ";" . $tipo_doc . ";" . $email . ";" . $nombre . ";Envio notificacion";

                $datos_usuario = array();

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




                $subject = "SOLICITUD CERTIFICADO INSUFICIENCIA DE PERSONAL";

                //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/>
                Se registro el Estudio previo número $nroestudio con los siguientes datos; y por lo cual se solicita expedir el certificado de insuficiencia de personal.<br/><br/>
                <b>No. Estudio Previo</b> $nroestudio<br/><br/>
                <b>Valor Estudio Previo:</b> $valor<br/><br/>
                <b>Area:</b> $area<br/><br/>
                <b>Responsable:</b> $responsable<br/><br/>
                <b>Supervisor:</b> $supervisor<br/><br/>
                <b>Objeto o Contratista:</b> $objeto<br/><br/>
                <br/><br/>
                </body></html>
EOD;
                CN_TABLE::envioCorreo($request, $datos_usuario, $subject, $currentUri, $ruta, $adjunto, $progress_key, $array_adjuntos, $body);





                if ($email_supervisor != null && preg_match('/^([a-z0-9_\.-]+)@anm\.gov\.co$/', $email_supervisor)) {


                    $documento = 'ANM';
                    $tipo_doc = '1';

                    $nombre = 'Supervisor';
                    //$rol='Usuario de Talento Humano';

                    $parametros = $documento . ";" . $tipo_doc . ";" . $email_supervisor . ";" . $nombre . ";Envio notificacion";

                    $datos_usuario = array();

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



                    $subject = 'INFORME REGISTRO DE ESTUDIO PREVIO';

                    //CUERPO DEL MENSAJE
                    $body = "<html><body> </body></html>";
//Body
                    $body = <<<EOD
                <html><body> 
                <br/>
                Bogotá, $fecha_creacion
                <br/>
                <br/>
                Señor(a)<br/>
                $supervisor<br/>
                <br/><br/>
                Se notifica que el dia de hoy ha sido realizado el registro del estudio Previo Número $nroestudio , al cual usted ha sido asignado como supervisor.<br/><br/>
                <b>No. Estudio Previo</b> $nroestudio<br/><br/>
                <b>Responsable:</b> $responsable<br/><br/>                
                <b>Valor Estudio Previo:</b> $valor<br/><br/>
                <b>Objeto o Contratista:</b> $objeto<br/><br/>
                <b>Puede verificar en la plataforma de contratación</b>
                <br/><br/>
                </body></html>
EOD;
                    $adjunto = false;
                    $array_adjuntos = array();

                    CN_TABLE::envioCorreo($request, $datos_usuario, $subject, $currentUri, $ruta, $adjunto, $progress_key, $array_adjuntos, $body);
                }
                //$array_adjuntos = array();
            }







            $record = array();


            $this->totalRows = count($record);
            $this->startRow = 0;
            $this->endRow = 0 + count($record);
            $this->list_data = $record;
            $this->logMessage("[co_send_mail] Envio exitoso.");
        } 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());
        }
    }

    public function eliminar_acentos($cadena) {

        //Reemplazamos la A y a
        $cadena = str_replace(
                array('Á', 'À', 'Â', 'Ä', 'á', 'à', 'ä', 'â', 'ª'), array('A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a'), $cadena
        );

        //Reemplazamos la E y e
        $cadena = str_replace(
                array('É', 'È', 'Ê', 'Ë', 'é', 'è', 'ë', 'ê'), array('E', 'E', 'E', 'E', 'e', 'e', 'e', 'e'), $cadena);

        //Reemplazamos la I y i
        $cadena = str_replace(
                array('Í', 'Ì', 'Ï', 'Î', 'í', 'ì', 'ï', 'î'), array('I', 'I', 'I', 'I', 'i', 'i', 'i', 'i'), $cadena);

        //Reemplazamos la O y o
        $cadena = str_replace(
                array('Ó', 'Ò', 'Ö', 'Ô', 'ó', 'ò', 'ö', 'ô'), array('O', 'O', 'O', 'O', 'o', 'o', 'o', 'o'), $cadena);

        //Reemplazamos la U y u
        $cadena = str_replace(
                array('Ú', 'Ù', 'Û', 'Ü', 'ú', 'ù', 'ü', 'û'), array('U', 'U', 'U', 'U', 'u', 'u', 'u', 'u'), $cadena);

        //Reemplazamos la N, n, C y c
        $cadena = str_replace(
                array('Ñ', 'ñ', 'Ç', 'ç'), array('N', 'n', 'C', 'c'), $cadena
        );

        return $cadena;
    }

}
