<?php

class envioAlertasTask extends sfBaseTask {

    protected function configure() {
        // // add your own arguments here
        // $this->addArguments(array(
        //   new sfCommandArgument('my_arg', sfCommandArgument::REQUIRED, 'My argument'),
        // ));

        $this->addOptions(array(
            new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'frontend'),
            new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
            new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'doctrine'),
                // add your own options here
        ));

        $this->namespace = 'comisionesSGR';
        $this->name = 'envioAlertas';
        $this->briefDescription = '';
        $this->detailedDescription = <<<EOF
The [comisionesSGR:envioAlertas|INFO] task does things.
Call it with:

  [php symfony comisionesSGR:envioAlertas|INFO]
EOF;
    }

    protected function execute($arguments = array(), $options = array()) {


        $logPath = sfConfig::get('sf_log_dir') . '/alarmas.log';
        $custom_logger = new sfFileLogger(new sfEventDispatcher(), array('file' => $logPath));
        $custom_logger->info(SqlTablePeer::fechaSistema()."The [alarmas:envio|INFO] task does things.\n");
        
        $custom_logger->info("[alarmas:envio|INFO] Fin envio de Alarmas\n");

        $address = array(
          /*'0' => array(
              'username'=>'websafi',
              'correo'=>'websafi@sgc.gov.co'
          ),*/
          '1' => array(
              'username'=>'lavila',
              'correo'=>'lavila@sofhouse.net'
          )
        );
        //envioEmail($subject, $from, $address, $body, $addReplyTo, $ruta = null, $attachment = null)
        SqlTablePeer::envioEmail('prueba', 'alerta', $address, 'envio de correo', false, null, null);


        $urlEjecucionAlertas = "http://localhost/comisiones_sgr/web/frontend_dev.php/comisionados/cronAlertas";
        $parametros_post = 'id_vigencia=2016';

        $arrayRes = array();
        array_push($arrayRes, SqlTablePeer::fechaSistema());

        /** This is needed because in some PHP versions (e.g. 5.2.10) the CURLOPT_TIMEOUT_MS and
         * CURLOPT_CONNECTTIMEOUT_MS are not defined.
         * @egiraldo - 20140610: Modifricacion, se ingresan las variables que hacen falta en cURL para la ejecucion en live, con esto se obvia los warnings
         */
        if (!defined('CURLOPT_CONNECTTIMEOUT_MS')) {
            define('CURLOPT_CONNECTTIMEOUT_MS', 156);
        }
        if (!defined('CURLOPT_TIMEOUT_MS')) {
            define('CURLOPT_TIMEOUT_MS', 155);
        }

        //Se inicializa con la URL el cURL
        $sesion = curl_init($urlEjecucionAlertas);
        //Define el tipo de ejecución, en este caso POST
        curl_setopt($sesion, CURLOPT_POST, true);
        //Se ingresan los parametos estabelcidos 
        curl_setopt($sesion, CURLOPT_POSTFIELDS, $parametros_post);
        //Parametros de retorno en cURL
        curl_setopt($sesion, CURLOPT_HEADER, false);
        curl_setopt($sesion, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($sesion, CURLOPT_TIMEOUT_MS, 0.1);
        curl_setopt($sesion, CURLOPT_NOSIGNAL, 0.1);
        //Ejecuta la petición
        $respuesta = curl_exec($sesion);
        //Se cierra la conexión
        curl_close($sesion);
        //Retorna la respuesta que genero el cURL
        array_push($arrayRes, "Respuesta de la llamada en cURL executeCronAlertas CON: " . $respuesta);

        //print_r($arrayRes);
    }

}
