<?php
error_reporting(-1); // reports all errors
ini_set('display_errors', true);
ini_set('log_errors', true);
set_time_limit(0);
ini_set('memory_limit', '-1');
ini_set('default_charset', 'ISO-8859-1');
date_default_timezone_set('America/Sao_paulo');
$php_dir = dirname(__FILE__) . '/../php';
if(is_dir($php_dir)) {
    ini_set("include_path", $php_dir . ':' . ini_get("include_path"));
}
defined('BASE_TESTES') or define('BASE_TESTES', false);
defined('VERSAO') or define('VERSAO', '3.2.2');

require_once "protected/extensions/Utils/SendEmail.php";
require_once "protected/extensions/Utils/Util.php";
require_once "protected/extensions/Utils/Mask.php";

function sendEmail($to, $subject, $text, $extra = array()) {
    $mail = new SendEmail(BASE_TESTES, VERSAO);
    $mail->send($to, $subject, $text, $extra);
}
function getButtonLink($id, $controller, $text) {
    $url = 'http://crm.windel.com.br/index.php?r=' . $controller . '/view&id='.$id;
    return Util::createMailButton($url, $text);
}
function getCon() {
    $con = new mysqli('localhost', 'windel', '@free3i0m8vq3', 'windel_crm');
    //$con = new mysqli('localhost', 'root', 'root', 'windel_crm');

    if ($con->connect_errno) die('Erro de conexão número ' . $con->connect_errno . ': ' . $con->connect_error);
    return $con;
}

$con = getCon();
$resumo = "";
$addResumo = '';
$addResumoErros = '';

$todos = array();
class Lista {
    var $titulo;
    var $acao;
    var $cancelamentos;
}

class Cancelamento {
    var $cnpj;
    var $razao;
    var $contratacao;
    var $valor;
    var $usuarios;
    var $cidade;
    var $uf;
    var $revenda;
    var $observacao;
    var $motivo;
    var $termino;
    var $motivoVendedor;
    var $empresa;
    var $vencimento;
}

$date = new DateTime('now');
$date->modify('first day of this month');
//if(date('d') == $date->format('d')) {
    // clientes ativos com solicitação de cancelamento processada e que tenham 2 títulos em aberto no último dia do mês
    // serão cancelados de imediato - financeiro irá cancelar com motivo informado pelo cliente e não irá gerar nova fatura
    $sql = "SELECT
            CLC_IDCANCELAMENTO,
            CLC_IDMOTIVO,
            CLC_DT_ENCERRAMENTO,
            CLC_IDCLIENTE,
            CLC_IDVENDEDOR,
            CLI_VLRMENSAL,
            CLI_NOME,
            CLI_CNPJCPF,
            CLI_PRODUTO,
            CLI_QTDUSUARIOS,
            CLI_DTATIVACAO,
            CLI_CIDADE,
            FUN_NOME,
            mot.MOT_DESCRICAO as motivo,
            motvend.MOT_DESCRICAO as motivovendedor,
            CLI_IDEMPRESA,
            CLI_DTCONTRATO,
            CID_DESCRICAO,
            CID_UF,
            REV_FANTASIA,
            CLI_DIAVENCIMENTO,
            CLC_IDMOTIVO_VENDEDOR,
            (SELECT COT_TIPOASSINATURA from contratos where COT_IDCLIENTE = CLI_IDCLIENTE and COT_SITUACAO = 1 and COT_FOI_ATIVADO = 1 order by COT_DTCADASTRO desc limit 1) as COT_TIPOASSINATURA
        FROM
            clientes_cancelamentos
        LEFT JOIN 
            clientes ON CLC_IDCLIENTE = CLI_IDCLIENTE
        LEFT JOIN 
            funcionarios ON CLC_IDVENDEDOR = FUN_IDFUNCIONARIO
        LEFT JOIN 
            motivos as mot ON CLC_IDMOTIVO = mot.MOT_IDMOTIVO
        LEFT JOIN 
            motivos as motvend ON CLC_IDMOTIVO_VENDEDOR = motvend.MOT_IDMOTIVO
        LEFT JOIN
            cidades on CID_IDCIDADE = CLI_CIDADE
        LEFT JOIN
            regioescidades on RCD_IDCIDADE = CID_IDCIDADE
        LEFT JOIN 
            revendas on REV_IDREVENDA = RCD_IDREVENDA
        WHERE
            CLC_STATUS = 'P' AND
            CLI_SITUACAO = 'A' AND
            (select count(*) from titulos where TIT_IDCLIENTE = CLI_IDCLIENTE and TIT_SITUACAO = 1 AND TIT_VENCIMENTO <= CURDATE()) > 1
        group by CLC_IDCANCELAMENTO
        order by CLI_IDEMPRESA DESC, CLI_NOME";

    $result = $con->query($sql);
    if (!empty($result->num_rows)) {
        $lista = new Lista();
        $lista->titulo = 1;
        $lista->acao = 1;
        $lista->cancelamentos = [];

        while ($clienteCancelamento = $result->fetch_assoc()) {
            $clienteCancelamento = (object)$clienteCancelamento;
            $erro_message = "";

            // Atualiza status do cliente para aguardando inativação
            $sqlUpdate = "
            UPDATE
                clientes
            SET
                CLI_SITUACAO = 'AI'
            WHERE
                CLI_IDCLIENTE = '{$clienteCancelamento->CLC_IDCLIENTE}' and CLI_SITUACAO = 'A'";
            if(!$con->query($sqlUpdate)) {
                $erro_message .= "<p>";
                $erro_message .= "* Não atualizou corretamente status do cliente para aguardando inativação.<br />";
                $erro_message .= "Consulta executada: {$sqlUpdate}";
                $erro_message .= "</p>";
            }

            // Atualiza a solicitação de cancelamento para tipo imediato 
            $sqlUpdate = "
            UPDATE
                clientes_cancelamentos
            SET
                CLC_TIPO_CANCELAMENTO = 'I'
            WHERE
                CLC_IDCANCELAMENTO = '{$clienteCancelamento->CLC_IDCANCELAMENTO}' and CLC_TIPO_CANCELAMENTO = 'N'";
            if(!$con->query($sqlUpdate)) {
                $erro_message .= "<p>";
                $erro_message .= "* Não atualizou tipo da solicitação de cancelamento para cancelamento imediato.<br />";
                $erro_message .= "Consulta executada: {$sqlUpdate}";
                $erro_message .= "</p>";
            }

            // Atualiza o fim do aviso prévio para data atual
            $ontem = new DateTime('now');
            $ontem->modify('last day of last month');
            $ontem = $ontem->format("Y-m-d");
            $sqlUpdate = "
            UPDATE
                clientes_cancelamentos
            SET
                CLC_AVISO_PREVIO_FIM = '{$ontem}',
                CLC_DT_ENCERRAMENTO = '{$ontem}'
            WHERE
                CLC_IDCANCELAMENTO = '{$clienteCancelamento->CLC_IDCANCELAMENTO}'";
            if(!$con->query($sqlUpdate)) {
                $erro_message .= "<p>";
                $erro_message .= "* Não atualizou o fim do aviso prévio/data de encerramento da solicitação de cancelamento para {$ontem}.<br />";
                $erro_message .= "Consulta executada: {$sqlUpdate}";
                $erro_message .= "</p>";
            }

            // Consulta o último título do cliente para obter a data de vencimento.
            $data_vcto_ultimo_titulo = "";
            $sqlSelect = "
            SELECT 
                TIT_VENCIMENTO
            FROM
                titulos
            WHERE
                TIT_IDCLIENTE = '{$clienteCancelamento->CLC_IDCLIENTE}'
            ORDER BY TIT_IDTITULO DESC LIMIT 1 ";
            if(!$con->query($sqlSelect)) {
                $erro_message .= "<p>";
                $erro_message .= "* Não selecionou o último título do cliente para obter a data de vencimento.<br />";
                $erro_message .= "Consulta executada: {$sqlSelect}";
                $erro_message .= "</p>";
            } else {
                $resultSelect = $con->query($sqlSelect);
                while ($vencimento = $resultSelect->fetch_assoc()) {
                    $vencimento = (object)$vencimento;
                    $data_vcto_ultimo_titulo = $vencimento->TIT_VENCIMENTO;
                }
            }

            // Altera a data da última fatura para a data de vencimento do último título gerado.
            if($data_vcto_ultimo_titulo) {
                $sqlUpdate = "
                UPDATE
                    clientes_cancelamentos
                SET
                    CLC_DT_ULTIMA_MENSALIDADE = '{$data_vcto_ultimo_titulo}'
                WHERE
                    CLC_IDCANCELAMENTO = '{$clienteCancelamento->CLC_IDCANCELAMENTO}'";
                if(!$con->query($sqlUpdate)) {
                    $erro_message .= "<p>";
                    $erro_message .= "* Não alterou a data de vencimento da última fatura para a data de vencimento do último título gerado pelo cliente.<br />";
                    $erro_message .= "Consulta executada: {$sqlUpdate}";
                    $erro_message .= "</p>";
                }
            }

            // registra atendimento na solicitação de cancelamento informando que foi alterada para tipo imediato, pois o
            // cliente tem dois títulos em aberto.
            $data_atual = date("d/m/Y");
            if($data_vcto_ultimo_titulo) {
                $date = DateTime::createFromFormat('Y-m-d', date("Y-m-d"));
                if($date) {
                    $data_vcto_ultimo_titulo = $date->format('d/m/Y');
                }
            }
            $corpo = "<p>";
            $corpo .= "A solicitação de cancelamento Nº {$clienteCancelamento->CLC_IDCANCELAMENTO} teve o tipo alterado ";
            $corpo .= "para <b>Imediato</b> e o cliente para <b>Aguardando Inativação</b>, ";
            $corpo .= "pois o cliente tem dois títulos em aberto.";
            $corpo .= "</p>";
            $corpo = "<p>";
            $corpo .= "O fim do aviso prévio foi alterado para a data atual ({$data_atual}), ";
            $corpo .= "e a data da última fatura foi atualizada com a data de vencimento do último título gerado ({$data_vcto_ultimo_titulo}).";
            $corpo .= "</p>";
            $corpo .= "<p>";
            $corpo .= "<b>Código da solicitação:</b> {$clienteCancelamento->CLC_IDCANCELAMENTO}<br />";
            $corpo .= "<b>Cliente:</b> {$clienteCancelamento->CLI_NOME}<br />";
            $corpo .= "<b>CPF/ CNPJ Cliente:</b> {$clienteCancelamento->CLI_CNPJCPF}<br />";
            $corpo .= "<b>Motivo informado pelo cliente:</b> {$clienteCancelamento->motivo}<br />";
            $corpo .= "<b>Vendedor:</b> {$clienteCancelamento->FUN_NOME}<br />";
            $empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel" : "Winsul";
            $corpo .= "<b>Empresa:</b> {$empresa}<br />";
            $corpo .= "</p>";

            $descricaoAtendimento = strip_tags(str_replace("<br />", "\n", $corpo));

            $atividade = [
                'ATD_IDCLIENTE'         => $clienteCancelamento->CLC_IDCLIENTE,
                'ATD_IDSOLCANCELAMENTO' => $clienteCancelamento->CLC_IDCANCELAMENTO,
                'ATD_TIPO'              => "O",
                'ATD_DTLANCAMENTO'      => date('Y-m-d H:i:s'),
                'ATD_HORAINICIO'        => date('H:i:s'),
                'ATD_HORAFINAL'         => date('H:i:s', strtotime('+1 minute')),
                'ATD_TOTALHORAS'        => '00:01:00',
                'ATD_IDMOTIVO'          => 77,
                'ATD_OBS'               => $descricaoAtendimento,
                'ATD_DTCADASTRO'        => date('Y-m-d'),
                'ATD_SITUACAO'          => 'R',
                'ATD_IDUSUARIO'         => 16,
                'ATD_DTALTERACAO'       => date('Y-m-d')
            ];

            $fields = implode(', ', array_keys($atividade));
            $values = "'" . implode("', '", $atividade) . "'";
            $sqlInsert = "INSERT INTO atendimentos ({$fields}) VALUES ({$values})";
            if (!$con->query($sqlInsert)) {
                $erro_message .= "<p>";
                $erro_message .= "* Atendimento não registrado corretamente no cliente.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }

            // Busca revenda responsável pelo cliente para registrar na negociação
            $sqlRevenda = "
            SELECT
                RCD_IDREVENDA
            FROM
                regioescidades
            WHERE
                RCD_IDCIDADE = '{$clienteCancelamento->CLI_CIDADE}'
            LIMIT 1";
            $result3 = $con->query($sqlRevenda)->fetch_object();
            $revenda = isset($result3->RCD_IDREVENDA) ? $result3->RCD_IDREVENDA : false;
            if(!$revenda) {
                $erro_message .= "<p>";
                $erro_message .= "* Negociação não vinculada corretamente a revenda responsável.<br />";
                $erro_message .= "Consulta executada: {$sqlRevenda}";
                $erro_message .= "</p>";
            }

            // salva negociação
            $negociacao = array(
                'FEN_IDCLIENTE'         => $clienteCancelamento->CLC_IDCLIENTE,
                'FEN_SOLCANCELAMENTO'   => $clienteCancelamento->CLC_IDCANCELAMENTO,
                'FEN_TIPO_NEGOCIACAO'   => 'CANCELAMENTOS',
                'FEN_IDREVENDA'         => $revenda,
                'FEN_VLRNEGOCIADO'      => $clienteCancelamento->CLI_VLRMENSAL,
                'FEN_IDPRODUTO'         => $clienteCancelamento->CLI_PRODUTO,
                'FEN_NROUSUARIOS'       => $clienteCancelamento->CLI_QTDUSUARIOS,
                'FEN_IDMOTIVO'          => $clienteCancelamento->CLC_IDMOTIVO,
                'FEN_DTRESCISAO'        => $clienteCancelamento->CLC_DT_ENCERRAMENTO,
                'FEN_DTCADASTRO'        => date('Y-m-d H:i:s'),
                'FEN_STATUS'            => 1,
                'FEN_IDMOTIVO_VENDEDOR' => $clienteCancelamento->CLC_IDMOTIVO_VENDEDOR
            );

            if($clienteCancelamento->CLI_DTATIVACAO)
                $negociacai['FEN_DTCONTRATACAO']     = $clienteCancelamento->CLI_DTATIVACAO;
            $fields = implode(', ', array_keys($negociacao));
            $values = "'" . implode("', '", $negociacao) . "'";
            $sqlInsert = "INSERT INTO fechamentos_negociacoes ({$fields}) VALUES ({$values})";
            if(!$con->query($sqlInsert)) {
                $erro_message .= "<p>";
                $erro_message .= "* Negociação não registrada corretamente.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}<br />";
                $erro_message .= "</p>";
            }

            $ontem = new DateTime('now');
            $ontem->modify('last day of last month');
            $ontem = $ontem->format("d/m/Y");

            $cancelamento = new Cancelamento();
            $cancelamento->cnpj = $clienteCancelamento->CLI_CNPJCPF;
            $cancelamento->razao = $clienteCancelamento->CLI_NOME;
            $cancelamento->contratacao = $clienteCancelamento->CLI_DTCONTRATO;
            $cancelamento->valor = $clienteCancelamento->CLI_VLRMENSAL;
            $cancelamento->usuarios = $clienteCancelamento->CLI_QTDUSUARIOS;
            $cancelamento->cidade = $clienteCancelamento->CID_DESCRICAO;
            $cancelamento->uf = $clienteCancelamento->CID_UF;
            $cancelamento->revenda = $clienteCancelamento->REV_FANTASIA;
            $cancelamento->observacao = $clienteCancelamento->COT_TIPOASSINATURA == 3 ? 'Li e aceito' : 'Assinado manualmente';
            $cancelamento->motivo = $clienteCancelamento->motivo;
            $cancelamento->termino = $ontem;
            $cancelamento->motivoVendedor = $clienteCancelamento->motivovendedor;
            $cancelamento->vencimento = $clienteCancelamento->CLI_DIAVENCIMENTO;
            $cancelamento->empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel Sistemas Ltda" : "Winsul Serviços de Informática Ltda";
            $lista->cancelamentos[] = $cancelamento;

            if (!empty($erro_message)) { // caso ocorra algum erro aviso é enviado para envolvidos no desenvolvimento
                $corpo = "<p>";
                $corpo .= "Houve um erro na geração de relatório de clientes inadimplentes<br />";
                $corpo .= "Solicitação de cancelamento <b>Nº {$clienteCancelamento->CLC_IDCANCELAMENTO}</b> do cliente {$clienteCancelamento->CLI_NOME}.";
                $corpo .= "</p>";
                $corpo .= "<br /><b>Detalhes do erro:</b><br />";
                $corpo .= $erro_message;
                $corpo .= $botao;
                $addResumoErros .= $corpo;
                $addResumoErros .= "<br><br>";
            }
        }
        $todos[] = $lista;
    }

    ///
    ///
    /// clientes para cancelar após faturamento (dia 10)
    /// clientes cancelar sem faturamento (dia 20)
    ///
    ///
    // busca todas solicitações de cancelamento que passaram da data final do aviso prévio
    $sql = "
    SELECT
        CLC_IDCANCELAMENTO,
        CLC_IDMOTIVO,
        CLC_DT_ENCERRAMENTO,
        CLC_IDCLIENTE,
        CLC_IDVENDEDOR,
        CLI_VLRMENSAL,
        CLI_NOME,
        CLI_PRODUTO,
        CLI_QTDUSUARIOS,
        CLI_DTATIVACAO,
        CLI_CIDADE,
        CLI_IDEMPRESA,
        FUN_NOME,
        mot.MOT_DESCRICAO as motivo,
        motvend.MOT_DESCRICAO as motivovendedor,
        CLI_IDEMPRESA,
        CLI_DTCONTRATO,
        CID_DESCRICAO,
        CID_UF,
        REV_FANTASIA,
        CLI_DIAVENCIMENTO,
        CLC_IDMOTIVO_VENDEDOR,
        CLI_CNPJCPF ,
        (SELECT COT_TIPOASSINATURA from contratos where COT_IDCLIENTE = CLI_IDCLIENTE and COT_SITUACAO = 1 and COT_FOI_ATIVADO = 1 order by COT_DTCADASTRO desc limit 1) as COT_TIPOASSINATURA
    FROM
        clientes_cancelamentos
    LEFT JOIN 
        clientes ON CLC_IDCLIENTE = CLI_IDCLIENTE
    LEFT JOIN 
        funcionarios ON CLC_IDVENDEDOR = FUN_IDFUNCIONARIO
    LEFT JOIN 
        motivos as mot ON CLC_IDMOTIVO = mot.MOT_IDMOTIVO
    LEFT JOIN 
        motivos as motvend ON CLC_IDMOTIVO_VENDEDOR = motvend.MOT_IDMOTIVO
    LEFT JOIN
        cidades on CID_IDCIDADE = CLI_CIDADE
    LEFT JOIN
        regioescidades on RCD_IDCIDADE = CID_IDCIDADE
    LEFT JOIN 
        revendas on REV_IDREVENDA = RCD_IDREVENDA
    WHERE
        CLC_STATUS = 'P' AND
        CLI_SITUACAO = 'A' AND
        CLC_AVISO_PREVIO_FIM < CURDATE()
    group by CLC_IDCANCELAMENTO
    order by CLI_IDEMPRESA DESC, CLI_DIAVENCIMENTO, CLI_NOME";
    $result = $con->query($sql);
    if (!empty($result->num_rows)) {
        $lista = new Lista();
        $lista->titulo = 2;
        $lista->acao = 2;
        $lista->cancelamentos = [];

        $lista20 = new Lista();
        $lista20->titulo = 2;
        $lista20->acao = 3;
        $lista20->cancelamentos = [];

        while ($clienteCancelamento = $result->fetch_assoc()) {
            $clienteCancelamento = (object)$clienteCancelamento;
            $erro_message = "";
            // Atualiza status da negociação para aguardando efetivação
            $sqlUpdate = "
            UPDATE
                clientes_cancelamentos
            SET
                CLC_STATUS = 'AE'
            WHERE
                CLC_IDCANCELAMENTO = '{$clienteCancelamento->CLC_IDCANCELAMENTO}' AND CLC_STATUS='P'";
            if(!$con->query($sqlUpdate)) {
                $erro_message .= "<p>";
                $erro_message .= "* Não atualizou status corretamente status da solicitação de cancelamento para aguardando efetivação.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlUpdate}<br />";
                $erro_message .= "</p>";
            }

            if($clienteCancelamento->CLI_DIAVENCIMENTO == 20) {
            // Consulta o último título do cliente para obter a data de vencimento.
            $data_vcto_ultimo_titulo = "";
            $sqlSelect = "
            SELECT 
                TIT_VENCIMENTO
            FROM
                titulos
            WHERE
                TIT_IDCLIENTE = '{$clienteCancelamento->CLC_IDCLIENTE}'
            ORDER BY TIT_IDTITULO DESC LIMIT 1 ";
                if(!$con->query($sqlSelect)) {
                    $erro_message .= "<p>";
                    $erro_message .= "* Não selecionou o último título do cliente para obter a data de vencimento.<br />";
                    $erro_message .= "Consulta executada: {$sqlSelect}";
                    $erro_message .= "</p>";
                } else {
                    $resultSelect = $con->query($sqlSelect);
                    while ($vencimento = $resultSelect->fetch_assoc()) {
                        $vencimento = (object)$vencimento;
                        $data_vcto_ultimo_titulo = $vencimento->TIT_VENCIMENTO;
                    }
                }

                // Altera a data da última fatura para a data de vencimento do último título gerado.
                if($data_vcto_ultimo_titulo) {
                    $sqlUpdate = "
                    UPDATE
                        clientes_cancelamentos
                    SET
                        CLC_DT_ULTIMA_MENSALIDADE = '{$data_vcto_ultimo_titulo}'
                    WHERE
                        CLC_IDCANCELAMENTO = '{$clienteCancelamento->CLC_IDCANCELAMENTO}'";
                    if(!$con->query($sqlUpdate)) {

                        $erro_message .= "<p>";

                        $erro_message .= "* Não alterou a data de vencimento da última fatura para a data de vencimento do último título gerado pelo cliente.<br />";
                        $erro_message .= "Consulta executada: {$sqlUpdate}";
                        $erro_message .= "</p>";
                    }
                }
            }

            // Busca revenda responsável pelo cliente para registrar na negociação
            $sqlRevenda = "
            SELECT
                RCD_IDREVENDA
            FROM
                regioescidades
            WHERE
                RCD_IDCIDADE = '{$clienteCancelamento->CLI_CIDADE}'
            LIMIT 1";
            $result3 = $con->query($sqlRevenda)->fetch_object();
            $revenda = isset($result3->RCD_IDREVENDA) ? $result3->RCD_IDREVENDA : false;
            if(!$revenda) {
                $erro_message .= "<p>";
                $erro_message .= "* Negociação não vinculada corretamente a revenda responsável.<br />";
                $erro_message .= "Consulta executada: {$sqlRevenda}";
                $erro_message .= "</p>";
            }

            // salva negociação
            $negociacao = array(
                'FEN_IDCLIENTE'         => $clienteCancelamento->CLC_IDCLIENTE,
                'FEN_SOLCANCELAMENTO'   => $clienteCancelamento->CLC_IDCANCELAMENTO,
                'FEN_TIPO_NEGOCIACAO'   => 'CANCELAMENTOS',
                'FEN_IDREVENDA'         => $revenda,
                'FEN_VLRNEGOCIADO'      => $clienteCancelamento->CLI_VLRMENSAL,
                'FEN_IDPRODUTO'         => $clienteCancelamento->CLI_PRODUTO,
                'FEN_NROUSUARIOS'       => $clienteCancelamento->CLI_QTDUSUARIOS,
                'FEN_IDMOTIVO'          => $clienteCancelamento->CLC_IDMOTIVO,
                'FEN_DTRESCISAO'        => $clienteCancelamento->CLC_DT_ENCERRAMENTO,
                'FEN_DTCADASTRO'        => date('Y-m-d H:i:s'),
                'FEN_STATUS'            => 1,
                'FEN_IDMOTIVO_VENDEDOR' => $clienteCancelamento->CLC_IDMOTIVO_VENDEDOR
            );
            if($clienteCancelamento->CLI_DTATIVACAO) {
                $negociacao['FEN_DTCONTRATACAO'] = $clienteCancelamento->CLI_DTATIVACAO;
            }

            $fields = implode(', ', array_keys($negociacao));
            $values = "'" . implode("', '", $negociacao) . "'";
            $sqlInsert = "INSERT INTO fechamentos_negociacoes ({$fields}) VALUES ({$values})";
            if(!$con->query($sqlInsert)) {
                $erro_message .= "<p>";
                $erro_message .= "* Negociação não registrada corretamente.<br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }

            // atualiza status do cliente para aguardando cancelamento
            $sqlUpdate = "
            UPDATE
                clientes
            SET
                CLI_SITUACAO = 'AI'
            WHERE
                CLI_IDCLIENTE = '{$clienteCancelamento->CLC_IDCLIENTE}'";
            if (!$con->query($sqlUpdate)) {
                $erro_message .= "<p>";
                $erro_message .= "* Status do cliente não foi atualizado corretamente para aguardando cancelamento.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }
            // registra atendimento na solicitação de cancelamento informando que o status foi alterado
            $corpo = "<p>";
            $corpo .= "A solicitação de cancelamento Nº {$clienteCancelamento->CLC_IDCANCELAMENTO} teve o status alterado ";
            $corpo .= "para <b>Aguardando Efetivação</b> e o cliente para <b>Aguardando Cancelamento</b> ";
            $corpo .= "por ter passado do fim do aviso prévio.";
            $corpo .= "</p>";
            $corpo .= "<p>";
            $corpo .= "<b>Código da solicitação:</b> {$clienteCancelamento->CLC_IDCANCELAMENTO}<br />";
            $corpo .= "<b>Cliente:</b> {$clienteCancelamento->CLI_NOME}<br />";
            $corpo .= "<b>CPF/ CNPJ Cliente:</b> {$clienteCancelamento->CLI_CNPJCPF}<br />";
            $corpo .= "<b>Motivo informado pelo cliente:</b> {$clienteCancelamento->motivo}<br />";
            $corpo .= "<b>Vendedor:</b> {$clienteCancelamento->FUN_NOME}<br />";
            $empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel Sistemas Ltda" : "Winsul Serviços de Informática Ltda";
            $corpo .= "<b>Empresa:</b> {$empresa}<br />";
            $corpo .= "<b>Dia Vencimento:</b> {$clienteCancelamento->CLI_DIAVENCIMENTO}";
            $corpo .= "</p>";

            $descricaoAtendimento = strip_tags(str_replace("<br />", "\n", $corpo));
            $atividade = [
                'ATD_IDCLIENTE'         => $clienteCancelamento->CLC_IDCLIENTE,
                'ATD_IDSOLCANCELAMENTO' => $clienteCancelamento->CLC_IDCANCELAMENTO,
                'ATD_TIPO'              => "O",
                'ATD_DTLANCAMENTO'      => date('Y-m-d H:i:s'),
                'ATD_HORAINICIO'        => date('H:i:s'),
                'ATD_HORAFINAL'         => date('H:i:s', strtotime('+1 minute')),
                'ATD_TOTALHORAS'        => '00:01:00',
                'ATD_IDMOTIVO'          => 77,
                'ATD_OBS'               => $descricaoAtendimento,
                'ATD_DTCADASTRO'        => date('Y-m-d'),
                'ATD_SITUACAO'          => 'R',
                'ATD_IDUSUARIO'         => 16,
                'ATD_DTALTERACAO'       => date('Y-m-d')
            ];
            $fields = implode(', ', array_keys($atividade));
            $values = "'" . implode("', '", $atividade) . "'";
            $sqlInsert = "INSERT INTO atendimentos ({$fields}) VALUES ({$values})";
            if (!$con->query($sqlInsert)) {
                $erro_message .= "<p>";
                $erro_message .= "* Atendimento não registrado corretamente no cliente.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }
            
            // atualiza status do cliente para aguardando cancelamento
            $sqlUpdate = "
            UPDATE
                clientes
            SET
                CLI_SITUACAO = 'AI'
            WHERE
                CLI_IDCLIENTE = '{$clienteCancelamento->CLC_IDCLIENTE}'";
            if (!$con->query($sqlUpdate)) {
                $erro_message .= "<p>";
                $erro_message .= "* Status do cliente não foi atualizado corretamente para aguardando cancelamento.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }
            // registra atendimento na solicitação de cancelamento informando que o status foi alterado
            $corpo = "<p>";
            $corpo .= "A solicitação de cancelamento Nº {$clienteCancelamento->CLC_IDCANCELAMENTO} teve o status alterado ";
            $corpo .= "para <b>Aguardando Efetivação</b> e o cliente para <b>Aguardando Cancelamento</b> ";
            $corpo .= "por ter passado do fim do aviso prévio.";
            $corpo .= "</p>";
            $corpo .= "<p>";
            $corpo .= "<b>Código da solicitação:</b> {$clienteCancelamento->CLC_IDCANCELAMENTO}<br />";
            $corpo .= "<b>Cliente:</b> {$clienteCancelamento->CLI_NOME}<br />";
            $corpo .= "<b>CPF/ CNPJ Cliente:</b> {$clienteCancelamento->CLI_CNPJCPF}<br />";
            $corpo .= "<b>Motivo informado pelo cliente:</b> {$clienteCancelamento->motivo}<br />";
            $corpo .= "<b>Vendedor:</b> {$clienteCancelamento->FUN_NOME}<br />";
            $empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel Sistemas Ltda" : "Winsul Serviços de Informática Ltda";
            $corpo .= "<b>Empresa:</b> {$empresa}<br />";
            $corpo .= "<b>Dia Vencimento:</b> {$clienteCancelamento->CLI_DIAVENCIMENTO}";
            $corpo .= "</p>";

            $descricaoAtendimento = strip_tags(str_replace("<br />", "\n", $corpo));
            $atividade = [
                'ATD_IDCLIENTE'         => $clienteCancelamento->CLC_IDCLIENTE,
                'ATD_IDSOLCANCELAMENTO' => $clienteCancelamento->CLC_IDCANCELAMENTO,
                'ATD_TIPO'              => "O",
                'ATD_DTLANCAMENTO'      => date('Y-m-d H:i:s'),
                'ATD_HORAINICIO'        => date('H:i:s'),
                'ATD_HORAFINAL'         => date('H:i:s', strtotime('+1 minute')),
                'ATD_TOTALHORAS'        => '00:01:00',
                'ATD_IDMOTIVO'          => 77,
                'ATD_OBS'               => $descricaoAtendimento,
                'ATD_DTCADASTRO'        => date('Y-m-d'),
                'ATD_SITUACAO'          => 'R',
                'ATD_IDUSUARIO'         => 16,
                'ATD_DTALTERACAO'       => date('Y-m-d')
            ];
            $fields = implode(', ', array_keys($atividade));
            $values = "'" . implode("', '", $atividade) . "'";
            $sqlInsert = "INSERT INTO atendimentos ({$fields}) VALUES ({$values})";
            if (!$con->query($sqlInsert)) {
                $erro_message .= "<p>";
                $erro_message .= "* Atendimento não registrado corretamente no cliente.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }
            
            // e-mails de aviso
            $botao = getButtonLink($clienteCancelamento->CLC_IDCANCELAMENTO, 'clientesCancelamentos', 'ABRIR SOLICITAÇÃO');
            $corpo .= $botao;
            
            if (!empty($erro_message)) { // caso ocorra algum erro aviso é enviado para envolvidos no desenvolvimento
                $corpo = "<p>";
                $corpo .= "Houve um erro ao atualizar o status da ";
                $corpo .= "solicitação de cancelamento <b>Nº {$clienteCancelamento->CLC_IDCANCELAMENTO}</b> do cliente {$clienteCancelamento->CLI_NOME}.";
                $corpo .= "</p>";
                $corpo .= "<br /><b>Detalhes do erro:</b><br />";
                $corpo .= $erro_message;
                $corpo .= $botao;
                $addResumoErros .= $corpo;
                $addResumoErros .= "<br><br>";
            }

            $ontem = new DateTime('now');
            $ontem->modify('last day of last month');
            $ontem = $ontem->format("d/m/Y");

            $cancelamento = new Cancelamento();
            $cancelamento->cnpj = $clienteCancelamento->CLI_CNPJCPF;
            $cancelamento->razao = $clienteCancelamento->CLI_NOME;
            $cancelamento->contratacao = $clienteCancelamento->CLI_DTCONTRATO;
            $cancelamento->valor = $clienteCancelamento->CLI_VLRMENSAL;
            $cancelamento->usuarios = $clienteCancelamento->CLI_QTDUSUARIOS;
            $cancelamento->cidade = $clienteCancelamento->CID_DESCRICAO;
            $cancelamento->uf = $clienteCancelamento->CID_UF;
            $cancelamento->revenda = $clienteCancelamento->REV_FANTASIA;
            $cancelamento->observacao = $clienteCancelamento->COT_TIPOASSINATURA == 3 ? 'Li e aceito' : 'Assinado manualmente';
            $cancelamento->motivo = $clienteCancelamento->motivo;
            $cancelamento->termino = $ontem;
            $cancelamento->motivoVendedor = $clienteCancelamento->motivovendedor;
            $cancelamento->empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel Sistemas Ltda" : "Winsul Serviços de Informática Ltda";
            $cancelamento->vencimento = $clienteCancelamento->CLI_DIAVENCIMENTO;
            if($clienteCancelamento->CLI_DIAVENCIMENTO == 20) {
                $lista20->cancelamentos[] = $cancelamento;
            } else {
                $lista->cancelamentos[] = $cancelamento;
            }
        }
        if(!empty($lista20->cancelamentos)) {
            $todos[] = $lista20;
        }
        if(!empty($lista->cancelamentos)) {
            $todos[] = $lista;
        }
    }

    // busca termo de cancelamento que passou do aviso prévio (no caso de solicitaçõs de transferência de sistema)
    $con = getCon();
    $sql_contratos = "
        SELECT
            CLT_IDCLIENTE,
            CLT_IDCLIENTE_AUTORIZADO,
            COT_IDCLIENTE,
            CLT_IDTRANSFERENCIA,
            cnt.COT_IDCONTRATO,
            CLI_NOME,
            CLI_CNPJCPF,
            CLI_VLRMENSAL,
            FUN_NOME,
            CLI_IDEMPRESA,
            CLI_DIAVENCIMENTO,
            CLI_PRODUTO,
            CLI_QTDUSUARIOS,
            CLI_DTATIVACAO,
            CLI_CIDADE,
            CLI_DTCONTRATO,
            CID_DESCRICAO,
            CID_UF,
            REV_FANTASIA,
            CLI_SITUACAO,
            (SELECT cot.COT_TIPOASSINATURA from contratos cot where cot.COT_IDCLIENTE = CLI_IDCLIENTE and cot.COT_SITUACAO = 1 and cot.COT_FOI_ATIVADO = 1 order by cot.COT_DTCADASTRO desc limit 1) as COT_TIPOASSINATURA
        FROM
            contratos cnt
        LEFT JOIN 
            clientes_transferencias ON CLT_IDTRANSFERENCIA = COT_ID_SOLICITACAO_TRANSFERENCIA
        LEFT JOIN 
            clientes ON cnt.COT_IDCLIENTE = CLI_IDCLIENTE
        LEFT JOIN 
            funcionarios ON COT_IDVENDEDOR = FUN_IDFUNCIONARIO
        LEFT JOIN
            cidades on CID_IDCIDADE = CLI_CIDADE
        LEFT JOIN
            regioescidades on RCD_IDCIDADE = CID_IDCIDADE
        LEFT JOIN 
            revendas on REV_IDREVENDA = RCD_IDREVENDA
        WHERE
            COT_SITUACAO = 5 
            AND COT_STATUS = 14
            AND CLT_AVISO_PREVIO_FIM < CURDATE()
            AND CLI_SITUACAO = 'A'
            AND (CLT_IDCLIENTE <> CLT_IDCLIENTE_AUTORIZADO OR CLI_IDEMPRESA = 2)
        group by CLT_IDTRANSFERENCIA
        order by CLI_IDEMPRESA DESC, CLI_DIAVENCIMENTO, CLI_NOME";
    $result = $con->query($sql_contratos);

    if (!empty($result->num_rows)) {
        $lista = new Lista();
        $lista->titulo = 3;
        $lista->acao = 4;
        $lista->cancelamentos = [];

        $listaWinsul = new Lista();
        $listaWinsul->titulo = 4;
        $listaWinsul->acao = 5;
        $listaWinsul->cancelamentos = [];

        while ($clienteCancelamento = $result->fetch_assoc()) {
            $clienteCancelamento = (object)$clienteCancelamento;
            $erro_inativacao = "";

            if($clienteCancelamento->CLI_SITUACAO ==  "A") {
                if($clienteCancelamento->CLT_IDCLIENTE != $clienteCancelamento->CLT_IDCLIENTE_AUTORIZADO) {
                    $sqlUpdate = "
                    UPDATE
                        clientes
                    SET
                        CLI_SITUACAO = 'AI'
                    WHERE
                        CLI_IDCLIENTE = '{$clienteCancelamento->COT_IDCLIENTE}'";
                    if (!$con->query($sqlUpdate)) {
                        $erro_inativacao .= "<p>";
                        $erro_inativacao .= "* Status do cliente não foi atualizado corretamente para aguardando cancelamento.<br />";
                        $erro_inativacao .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                        $erro_inativacao .= "Atualização executada: {$sqlUpdate}";
                        $erro_inativacao .= "</p>";
                    }
                } else {
                   $sqlUpdate = "
                    UPDATE
                        clientes
                    SET
                        CLI_IDEMPRESA = 1
                    WHERE
                        CLI_IDCLIENTE = '{$clienteCancelamento->COT_IDCLIENTE}'";
                    if (!$con->query($sqlUpdate)) {
                        $erro_inativacao .= "<p>";
                        $erro_inativacao .= "* Empresa do cliente não foi atualizada corretamente para Windel.<br />";
                        $erro_inativacao .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                        $erro_inativacao .= "Atualização executada: {$sqlUpdate}";
                        $erro_inativacao .= "</p>";
                    }
                }

                // registra atendimento com motivo transferência a ser listado nas atividades do cliente Autorizador.
                $corpo = "<p>";
                if($clienteCancelamento->CLT_IDCLIENTE != $clienteCancelamento->CLT_IDCLIENTE_AUTORIZADO) {
                    $corpo .= "O cliente teve o status alterado para <b>Aguardando Inativação</b> ";
                    $corpo .= "pois é um Autorizador (Processo de Solicitação de Transferência Nº {$clienteCancelamento->CLT_IDTRANSFERENCIA}), cujo Termo ";
                    $corpo .= "de Cancelamento teve seu período de Aviso Prévio ultrapassado.";
                } else {
                    $corpo .= "Cliente alterado de Winsul para Windel, ";
                    $corpo .= "pois é um Autorizador (Processo de Solicitação de Transferência Nº {$clienteCancelamento->CLT_IDTRANSFERENCIA}), cujo Termo ";
                    $corpo .= "de Cancelamento teve seu período de Aviso Prévio ultrapassado.";
                }
                $corpo .= "</p>"; // Adaptar novo texto.
                $corpo .= "<p>";
                $corpo .= "<br />";
                $corpo .= "<b>Código do Termo de Cancelamento: </b> {$clienteCancelamento->COT_IDCONTRATO}<br />";
                $corpo .= "<b>Cliente:</b> {$clienteCancelamento->CLI_NOME}<br />";
                $corpo .= "<b>CPF/ CNPJ Cliente:</b> {$clienteCancelamento->CLI_CNPJCPF}<br />";
                $corpo .= "<b>Motivo:</b> Transferência<br />";
                $corpo .= "<b>Vendedor:</b> {$clienteCancelamento->FUN_NOME}<br />";
                $empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel Sistemas Ltda" : "Winsul Serviços de Informática Ltda";
                if($clienteCancelamento->CLT_IDCLIENTE == $clienteCancelamento->CLT_IDCLIENTE_AUTORIZADO) {
                    $empresa = "Winsul";
                }
                $corpo .= "<b>Empresa:</b> {$empresa}<br />";
                $corpo .= "<b>Vencimento:</b> {$clienteCancelamento->CLI_DIAVENCIMENTO}";
                $corpo .= "</p>";
                $descricaoAtendimento = strip_tags(str_replace("<br />", "\n", $corpo));

                $atividade = [
                    'ATD_IDCLIENTE'          => $clienteCancelamento->COT_IDCLIENTE,         
                    'ATD_IDSOLTRANSFERENCIA' => $clienteCancelamento->CLT_IDTRANSFERENCIA,    
                    'ATD_TIPO'               => "O",
                    'ATD_DTLANCAMENTO'       => date('Y-m-d H:i:s'),
                    'ATD_HORAINICIO'         => date('H:i:s'),
                    'ATD_HORAFINAL'          => date('H:i:s', strtotime('+1 minute')),
                    'ATD_TOTALHORAS'         => '00:01:00',
                    'ATD_IDMOTIVO'           => 79,
                    'ATD_OBS'                => $descricaoAtendimento,
                    'ATD_DTCADASTRO'         => date('Y-m-d'),
                    'ATD_SITUACAO'           => 'R',
                    'ATD_IDUSUARIO'          => 16,
                    'ATD_DTALTERACAO'        => date('Y-m-d')
                ];

                $fields = implode(', ', array_keys($atividade));
                $values = "'" . implode("', '", $atividade) . "'";
                $sqlInsert = "INSERT INTO atendimentos ({$fields}) VALUES ({$values})";
                if (!$con->query($sqlInsert)) {
                    $erro_inativacao .= "<p>";
                    $erro_inativacao .= "* Atendimento não registrado corretamente no cliente.<br />";
                    $erro_inativacao .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                    $erro_inativacao .= "Consulta executada: {$sqlInsert}";
                    $erro_inativacao .= "</p>";
                }

                if (!empty($erro_inativacao)) { // caso ocorra algum erro aviso é enviado para envolvidos no desenvolvimento
                    $corpo = "<p>";
                    $corpo .= "Houve um erro no processo de alteração de status de cliente com Termo de Cancelamento que teve ";
                    $corpo .= "seu período de Aviso Prévio ultrapassado.";
                    $corpo .= "Contrato <b>Nº {$clienteCancelamento->COT_IDCONTRATO}</b> do cliente {$clienteCancelamento->CLI_NOME}.";
                    $corpo .= "</p>";
                    $corpo .= "<br /><b>Detalhes do erro:</b><br />";
                    $corpo .= $erro_inativacao;
                    //$corpo .= $botao;
                    $addResumoErros .= $corpo;
                    $addResumoErros .= "<br><br>";
                }
            }

            // registra atendimento com motivo transferência a ser listado nas atividades do cliente Autorizador.
            $ontem = new DateTime('now');
            $ontem->modify('last day of last month');
            $ontem = $ontem->format("d/m/Y");

            $cancelamento = new Cancelamento();
            $cancelamento->cnpj = $clienteCancelamento->CLI_CNPJCPF;
            $cancelamento->razao = $clienteCancelamento->CLI_NOME;
            $cancelamento->contratacao = $clienteCancelamento->CLI_DTCONTRATO;
            $cancelamento->valor = $clienteCancelamento->CLI_VLRMENSAL;
            $cancelamento->usuarios = $clienteCancelamento->CLI_QTDUSUARIOS;
            $cancelamento->cidade = $clienteCancelamento->CID_DESCRICAO;
            $cancelamento->uf = $clienteCancelamento->CID_UF;
            $cancelamento->revenda = $clienteCancelamento->REV_FANTASIA;
            $cancelamento->observacao = $clienteCancelamento->COT_TIPOASSINATURA == 3 ? 'Li e aceito' : 'Assinado manualmente';
            $cancelamento->motivo = 'Transferência';
            $cancelamento->termino = $ontem;
            $cancelamento->motivoVendedor = '-';
            $cancelamento->empresa = $clienteCancelamento->CLI_IDEMPRESA == 1 ? "Windel Sistemas Ltda" : "Winsul Serviços de Informática Ltda";
            $cancelamento->vencimento = $clienteCancelamento->CLI_DIAVENCIMENTO;

            if($clienteCancelamento->CLT_IDCLIENTE == $clienteCancelamento->CLT_IDCLIENTE_AUTORIZADO) {
                $cancelamento->empresa = "Winsul Serviços de Informática Ltda";
                $listaWinsul->cancelamentos[] = $cancelamento;
            } else {
                $lista->cancelamentos[] = $cancelamento;
            }
        }
        if(!empty($lista->cancelamentos)) {
            $todos[] = $lista;
        }
        if(!empty($listaWinsul->cancelamentos)) {
            $todos[] = $listaWinsul;
        }
    }

if (!empty($todos)) {
    $erro_message = "";
    $mes = date("m", strtotime("-1 month", time()));
    $ano = date("Y", strtotime("-1 month", time()));
    foreach($todos as $lista) {
        foreach($lista->cancelamentos as $cancelamento) {
            $valor = Util::moeda($cancelamento->valor);
            $contratacao = implode('/', array_reverse(explode('-', $cancelamento->contratacao)));
            $cnpj = Util::mask($cancelamento->cnpj, 'CPF OU CNPJ');
            $sqlInsert = "INSERT INTO relatorio_cancelamentos(RCC_MES, RCC_ANO, RCC_IDLISTA, RCC_IDACAO, RCC_CNPJ, RCC_RAZAO, RCC_CONTRATACAO, RCC_VALOR, RCC_USUARIOS, RCC_CIDADE, RCC_UF, RCC_REVENDA, RCC_OBSERVACAO, RCC_TERMINO, RCC_MOTIVO, RCC_MOTIVOVENDEDOR, RCC_EMPRESA, RCC_VENCIMENTO) VALUES ('{$mes}', '{$ano}', '{$lista->titulo}', '{$lista->acao}', '{$cnpj}', '{$cancelamento->razao}', '{$contratacao}', '{$valor}', '{$cancelamento->usuarios}', '{$cancelamento->cidade}', '{$cancelamento->uf}', '{$cancelamento->revenda}', '{$cancelamento->observacao}', '{$cancelamento->termino}', '{$cancelamento->motivo}', '{$cancelamento->motivoVendedor}', '{$cancelamento->empresa}', '{$cancelamento->vencimento}')";

            if (!$con->query($sqlInsert)) {
                $erro_message .= "<p>";
                $erro_message .= "* Cancelamento não registrado no relatório.<br />";
                $erro_message .= "<br /><span style='color:red'><b>Erro</b>: {$con->error}</span><br />";
                $erro_message .= "Consulta executada: {$sqlInsert}";
                $erro_message .= "</p>";
            }
        }
    }
    if (!empty($erro_message)) { // caso ocorra algum erro aviso é enviado para envolvidos no desenvolvimento
        $corpo = "<p>";
        $corpo .= "Houve um erro na geração de relatório de clientes inadimplentes<br />";
        $corpo .= "</p>";
        $corpo .= "<br /><b>Detalhes do erro:</b><br />";
        $corpo .= $erro_message;
        $addResumoErros .= $corpo;
        $addResumoErros .= "<br><br>";
    }

    $resumo = "<style>
        .clientes th, .clientes td{border: 1px solid black; padding: 10px;}
        .clientes thead tr th{background: #c2e2ff; color: #4D89BD;}
        h2 {line-height: 20px;margin-bottom: 10px; padding-bottom: 0px;}
        </style>
        <p>Bom dia / Boa tarde!<br />
        Segue lista de clientes para cancelamento referente a {$mes}/{$ano}: <br />";

        $link = "https://crm.windel.com.br/index.php?r=RelatorioCancelamentos/excel&RelatorioCancelamentos[RCC_MES]={$mes}&RelatorioCancelamentos[RCC_ANO]={$ano}";
        $button = Util::createMailButton($link, 'BAIXAR LISTA');
        $resumo .= $button;

    $extra = array('CC' => array(
        'marcio@agenciavirtuos.com.br',
        'controladoria@windel.com.br',
        'comercial02@windel.com.br'
    ));
    sendEmail('financeiro@windel.com.br', 'Clientes com fim de aviso prévio aguardando inativação', $resumo, $extra);
    echo $resumo;
}

if ($addResumoErros != '') {
    $resumoErros = "<h2>Resumo de erros em processo de transferência</h2><br />" . $addResumoErros . '<br /><br />';
    echo $resumoErros;
    $extra_emails_desenv = array('CC' => array(
        'marcio@agenciavirtuos.com.br'
    ));
    sendEmail('controladoria@windel.com.br', 'Erros gerados em processo de transferência', $resumoErros, $extra_emails_desenv);
    echo $resumoErros;
}

echo 'Finalizado';
mysqli_close($con);
//}