<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of actions
 *
 * @author ManuelEnriqueParedesLopez
 */
class notifica_terminacionActions extends sfActions {

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


        $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");


        /*
         * Manejo de errores
         */
        try {



            //sentencia sql
            $sql = <<<EOD
ALTER SESSION SET NLS_DATE_FORMAT = "YYYY-MM-DD"
EOD;

            CN_TABLE::executeSQL($sql);



            //sentencia sql
            $sql = <<<EOD
SELECT USERNAME,
       PASS,
       ID_PERFIL,
       ESTADO,
       ID_TIPO_DOC,
       NUM_DOC,
       NOMBRE,
       APELLIDO,
       EMAIL
FROM USUARIO
WHERE 1=1 AND ID_PERFIL=57
EOD;

            $resultado = CN_TABLE::executeSQL($sql);
            $email_e = $resultado[0]['email'];
            if ($email_e != null) {


                //sentencia sql
                $sql = <<<EOD
SELECT 
to_char(sysdate + INTERVAL '15' DAY,'yyyy-mm-dd') as fecha_i,
to_char(add_months(tab0.fecha_ingreso,12),'yyyy-mm-dd') as fecha_ingreso,
to_char(tab1.nombre_completo) as contrato
FROM  NO_NOMBRAMIENTO tab0 
LEFT JOIN NO_DATOS_FUNCIONARIO_V tab1 ON tab0.num_doc=tab1.num_doc and tab0.id_tipo_doc=tab1.id_tipo_doc
WHERE 1=1
AND to_char(sysdate + INTERVAL '15' DAY,'yyyy-mm-dd')=to_char(add_months(tab0.fecha_ingreso,12),'yyyy-mm-dd')
EOD;

                $records = CN_TABLE::executeSQL($sql);

                if (count($records) > 0) {

                    //CUERPO DEL MENSAJE
                    $body = "<html><body> </body></html>";
                    $contratos = "";
                    foreach ($records as $rec) {
                        if ($contratos == "") {
                            $contratos = $rec['contrato'];
                        } else {
                            $contratos = $contratos . " <br/> " . $rec['contrato'];
                        }
                    }



                    $sql = "
                     SELECT tab0.dia_sistema||' de '||tab0.mes_sistema||' del '||anho_sistema AS FECHA_SISTEMA,
                            tab0.dia_sistema_terminacion||' de '||tab0.mes_sistema_terminacion||' del '||anho_sistema_terminacion AS FECHA_SISTEMA_TERMINACION
                        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,
                         sysdate as fecha_registro,
                         TO_CHAR(sysdate,'yyyy') as anho_sistema,
                         
                         LPAD(to_char(sysdate + INTERVAL '09' DAY,'dd'),2,'0')  as dia_sistema_terminacion,
                         trim(initcap(to_char(sysdate + INTERVAL '09' DAY,'MONTH','nls_date_language=spanish'))) as mes_sistema_terminacion,
                         TO_CHAR(sysdate + INTERVAL '09' DAY,'yyyy') as anho_sistema_terminacion   
                         from dual
                     )tab0
                     ";

                    $recc = CN_TABLE::executeSQL($sql);
                    $fecha_creacion = $recc[0]['fecha_sistema'];
                    $fecha_terminacion = $recc[0]['fecha_sistema_terminacion'];



                    $body = <<<EOD
                <html><body> 
                <br/>
                Bogotá, $fecha_creacion
                <br/>
                <br/><br/>
                Estimado Usuario, Se relaciona los proximos contratos que llegaran a su proximo vencimiento el dia $fecha_terminacion.<br/><br/>
                $contratos
                <br/><br/>
                 WebsafiERP NOMINA   
                        
                        
                
                </body></html>
EOD;

                    $this->logMessage(">>>> envio_correo");
                    /**
                     * Variables
                     */
                    $i = 0;

                    //Mensaje
                    if (!isset($request["mensaje"])) {
                        $request["mensaje"] = $body;
                    }

                    //Email Para
                    if (!isset($request["email"])) {
                        $request["email"] = $request["email_envio"];
                    } else {
                        if ($request["email"] == null || $request["email"] == '' || $request["email"] == 'null') {
                            $request["email"] = $request["email_envio"];
                        }
                    }
                    //Email Envio
                    if (!isset($request["email_envio"])) {
                        $request["email_envio"] = "desprendibles.nomina@anm.gov.co";
                    }

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

                    if (!isset($request['username'])) {
                        $request['username'] = 'sofhouse';
                    }

                    //si teien mensaje extra en datos_usuario
//            $request["mensaje_extra"] = "";

                    /*
                     * For parametros
                     */

                    $documento = '';
                    $tipo_doc = '1';
                    $email = $email_e;
                    $nombre = '';
                    $rol = '';

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



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

                    $subject = 'Notificacion de Terminacion de Contratos';

                    $adjunto = false;

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

                    $array_adjuntos = array();

                    /**
                     * Envio de correo
                     */
                    $currentUri = "";
                    CN_TABLE::envioCorreo($request, $datos_usuario, $subject, $currentUri, $ruta, $adjunto, $progress_key, $array_adjuntos, 0, '');
                }

                $this->logMessage("Fin de envio de correos.");
                
                $this->status = 0;
                $this->list_data = array(array('Envio de correo terminado'));
            } else {
                $this->status = 0;
                $this->list_data = array(array('No existe Correo Electronico de este Perfil'));
            }
        } 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());
        }
    }

}
