<?php
date_default_timezone_set('America/Sao_Paulo');
// verifica se foram criados mais de dez novos avisos baseado na cultura, UF e cobertura no mesmo dia (dia atual)
preg_match("/^agrobr-app02\.*/", gethostname(), $matches);

$env = parse_ini_file(dirname(__DIR__).'/application/config/application.ini');

if (count($matches)>0) {
    set_include_path(get_include_path().':/var/www/html/library/');
} else {
    set_include_path(get_include_path().':/usr/share/php/:../library/');
}

require_once('Zend/Loader.php');
require_once('Zend/Http/Client.php');
require_once('Zend/Http/Client/Adapter/Curl.php');
require_once('Zend/Mail.php');
require_once('Zend/Mail/Transport/Smtp.php');
//require_once('Zend/Mime.php');

$log_file = '/tmp/novos_avisos.log';

if (count($matches)>0) {
    $curl_options = array(
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_SSL_VERIFYPEER => true,
    );
} else {
    $curl_options = array(
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1,
        CURLOPT_SSL_CIPHER_LIST => 'TLSv1'
    );
}

$config = array(
    'adapter' => 'Zend_Http_Client_Adapter_Curl',
    'ssltransport' => 'tls',
    'strict' => false,
    'persistent' => true,
    'curloptions' => $curl_options
);

if (count($matches)>0) {
    $host = 'agronet.agrobrasilseguros.com.br';
    $proto = 'https';
    $url = 'https://'.$host.'/login';
    $uri = 'https://'.$host.'/sinistro2/avisossinistro/';
} else {
    $host = 'tonismar.agrobrasilseguros.com.br';
    $proto = 'http';
}

$url = $proto.'://'.$host.'/login';
$uri = $proto.'://'.$host.'/sinistro2/avisosinistro/mailnewavisos';

$client = new Zend_Http_Client($url, $config);
$postArray = array('usuario' => $env['constants.SYSTEM_USERNAME'], 'senha' => $env['constants.SYSTEM_PASSWORD']);
$client->setParameterPost($postArray);

$client->setHeaders(array(
    'Host: '.$host,
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0',
    'Accept: text/javascript, application/javascript, */*',
    'Accept-Language: en-gb,en;q=5.0',
    'Accept-Encoding: gzip, deflate',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With: XMLHttpRequest',
    'Referer: '.$proto.'://'.$host
));

$client->setCookie('__utma', '174057141.1507422797.1392357517.1392698281.1392702703.3');
$client->setCookie('__utmz', '174057141.1392357517.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)');
$client->setCookie('__atuvc', '58');
$client->setCookie('PHPSESSID', '0a12ket5d8d7otlo6uh66p658a5');
$response = $client->request('POST');

$client->setParameterPost(array());
$client->setUri($uri);
$client->setHeaders(array(
    'Host: '.$host,
    'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0',
    'Accept: text/javascript, application/javascript, */*',
    'Accept-Language: en-gb,en;q=5.0',
    'Accept-Encoding: gzip, deflate',
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8',
    'X-Requested-With: XMLHttpRequest',
    'Referer: '.$proto.'://'.$host
));

$response = $client->request('POST');
$avisos = json_decode($response->getBody());

if (count(jaAvisadoHoje($avisos)) > 0) {

    $table = '';
    $html = "<html>
                <head>
                    <title>Agronet 2.0 - Sistema de notificações</title>
                </head>
                <body>
                    <h4>Agronet 2.0 - Sistema de notificações</h4>
                    <p style=\"width: 600px;\">Contagem de avisos diária por Cultura, UF e Evento (acima de 10).</p>
                    <table border=1 style='border: 1px solid black; border-collapse: collapse;' cellpadding='3'>
                        <tr><td><b>Cultura</b></td><td><b>UF</b></td><td><b>Evento</b></td><td><b>Quantidade</b></td></tr>";

                        foreach ($avisos as $aviso) {
                            $table .= "<tr><td>".$aviso->ds_nome_cultura.
                                     "</td><td>".$aviso->ds_sigla.
                                     "</td><td>".$aviso->ds_nome_evento.
                                     "</td><td>".$aviso->total.
                                     "</td></tr>";
                        }

    $html .= $table ."     </table>
                </body>
            </html>";

    sendMail($html, $env);
}

function sendMail($dados, $app) {

    $mail = new Zend_Mail('UTF-8');
    $mail->setFrom("ti@agrobrasilseguros.com.br", "Agronet 2.0 - Sistema de noficação");

    $config = array(
        'ssl'      => $app['constants.MAIL_SSL'],
        'port'     => $app['constants.MAIL_PORT'],
        'auth'     => $app['constants.MAIL_AUTH'],
        'username' => $app['constants.MAIL_USERNAME'],
        'password' => $app['constants.MAIL_PASSWORD']
        );

    $transport = new Zend_Mail_Transport_Smtp($app['constants.MAIL_SMTP'], $config);
    $mail->setDefaultTransport($transport);

    $to = array(
      'Tonismar Bernardo' => 'tonismar.bernardo@agrobrasilseguros.com.br',
      'Moacir Emmer' => 'moacir.emmer@agrobrasilseguros.com.br',
      'Randal Brandolt' => 'randal.brandolt@agrobrasilseguros.com.br',
    );
    $cc = array('Luana Beck' => 'luana.beck@agrobrasilseguros.com.br',
                'Tiago Zschornack' => 'tiago.zschornack@agrobrasilseguros.com.br');

    try {
        $mail->addTo($to);
        $mail->addCc($cc);
        $mail->setBodyHtml($dados);
        $mail->setSubject("Número de avisos de sinistro alto em um único dia.");
        $mail->send();

        return true;
    } catch (Exception $e) {
        return true;
    }
}

function jaAvisadoHoje($dados) {
    $result = array();
    $i = 0;
    $filename = '/tmp/'.date('Ymd').'.txt';
    $handle = fopen($filename, "a+");

    foreach ($dados as $aviso) {
        $linha = $aviso->ds_sigla.';'.$aviso->ds_nome_cultura;

        if (filesize($filename) > 0) {
            if (strpos(file_get_contents($filename), $linha) === false) {
                $tmp = explode(';', $linha);
                $result[$i]['uf'] = $tmp[0];
                $result[$i]['cultura'] = $tmp[1];
                fputs($handle, $linha."\n");
            }
        } else {
            fputs($handle, $linha."\n");
            $result[$i]['uf'] = $aviso->ds_sigla;
            $result[$i]['cultura'] = $aviso->ds_nome_cultura;
        }

        $i++;
    }

    fclose($handle);
    return $result;
}
