<?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
     * Se quito cron ya que esto se hace con el servicio de envio_Alertas - 20210128::LAVILA
     *
     * @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);
            $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);


            //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);

            //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=52 OR ID_PERFIL=77
EOD;

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

            foreach ($resultado as $objetc) {

                $email_e = $objetc['email'];
                if ($email_e != null) {




                    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'];
                            }
                        }




                        $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"] = "nomina@comisiondelaverdad.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'));
        } 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());
        }
    }

}
