<?php
    if ($metasVendas->MEV_TIPO == MetasVendas::UNIDADE) {
        $relacionado = Revendas::model()->findByPk($metasVendas->MEV_FOREIGN_KEY);
        $nome = $relacionado->REV_FANTASIA;
    } else {
        $vendedor = Funcionarios::model()->findByPk($metasVendas->MEV_FOREIGN_KEY);
        $nome = $vendedor->FUN_NOME . " (" . $vendedor->Revenda->REV_FANTASIA . ")";
    }

    $outraMeta = MetasVendas::model()->find('MEV_ANO = ' . $metasVendas->MEV_ANO . ' AND MEV_TIPO = ' . $metasVendas->MEV_TIPO . " AND MEV_TIPO_COBRANCA != " . $metasVendas->MEV_TIPO_COBRANCA . " AND MEV_FOREIGN_KEY = " . $metasVendas->MEV_FOREIGN_KEY);
    if ($metasVendas->MEV_TIPO_COBRANCA == MetasVendas::META_MENSALIDADE) {
        $metaM = $metasVendas;
        $metaI = $outraMeta;
    } else {
        $metaI = $metasVendas;
        $metaM = $outraMeta;
    }

    $campos = array('MEV_JAN', 'MEV_FEV', 'MEV_MAR', 'MEV_ABR', 'MEV_MAI', 'MEV_JUN', 'MEV_JUL', 'MEV_AGO', 'MEV_SET', 'MEV_OUT', 'MEV_NOV', 'MEV_DEZ', 'MEV_SOMA');
    $meses = [1 => 'Janeiro', 2 => 'Fevereiro', 3 => 'Março', 4 => 'Abril', 5 => 'Maio', 6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro', 12 => 'Dezembro'];
    $colHeaders = array_values($meses);
    $colHeaders[] = date('Y');

    $rowHeaders[] = $nome;

    $readOnlyColumns = false;
    if ($metasVendas->MEV_TIPO == MetasVendas::VENDEDOR) {
        if ($vendedor->foiAtivadoNesseMes()) {
            $temp = array_slice($meses, date('m')-1);
        } else {
            $temp = array_slice($meses, date('m'));
        }
        $temp = array_diff($meses, $temp);
        foreach ($temp as $col => $value) {
            $readOnlyColumns[0][] = $col;
        }
    }
?>

<div id="mensagens">
    <div id="sucessoFinalizar" class="alert alert-success alert-dismissible" role="alert" style="display:none;">
        <i class="fa fa-check"></i>
        <div class="alert-message">Metas salvas com sucesso!</div>
    </div>
    <div id="erroDadosInvalidos" class="alert alert-danger alert-dismissible" role="alert" style="display:none;">
        <i class="fa fa-exclamation-triangle"></i>
        <div class="alert-message">Preencha os campos corretamente!</div>
    </div>
    <div id="erroSalvar" class="alert alert-danger alert-dismissible" role="alert" style="display:none;">
        <i class="fa fa-exclamation-triangle"></i>
        <div class="alert-message">Ocorreu um erro ao salvar!</div>
    </div>
</div>

<h1>Meta de Mensalidade</h1>
<div id="mensalidade"></div>
<?php

    $valores = array();
    foreach ($campos as $coluna => $campo) {
        if ($campo != "MEV_SOMA") {
            $valores[$coluna]['data'] = $campo;
            $valores[$coluna]['values'][1] = $metaM->{$campo};
        } else {
            $valores[$coluna]['data'] = $campo;
            $valores[$coluna]['soma'] = true;
        }
    }
    $columns = $metaM->getColumnConfig($colHeaders);

    $handsontable = $this->widget('application.extensions.Handsontable.Handsontable', array(
        'target' => '#mensalidade',
        'colHeaders' => $colHeaders,
        'rowHeaders' => $rowHeaders,
        'columns' => $columns,
        'readOnlyLine' => count($rowHeaders)-1,
        'readOnlyColumns' => $readOnlyColumns,
        'valores' => $valores,
    ));
    $metasMensalidade = $handsontable->id;
?>

<h1 id="metasImplantacao">Meta de Implantação</h1>
<div id="implantacao"></div>
<?php
$valores = array();
foreach ($campos as $coluna => $campo) {
    if ($campo != "MEV_SOMA") {
        $valores[$coluna]['data'] = $campo;
        if ($metaI) {
            $valores[$coluna]['values'][1] = $metaI->{$campo};
        } else {
            $valores[$coluna]['values'][1] = 0.00;
        }
    } else {
        $valores[$coluna]['data'] = $campo;
        $valores[$coluna]['soma'] = true;
    }
}
$columns = $metaI->getColumnConfig($colHeaders);

$handsontable = $this->widget('application.extensions.Handsontable.Handsontable', array(
    'target' => '#implantacao',
    'colHeaders' => $colHeaders,
    'rowHeaders' => $rowHeaders,
    'columns' => $columns,
    'readOnlyLine' => count($rowHeaders)-1,
    'readOnlyColumns' => $readOnlyColumns,
    'valores' => $valores,
));
$metasImplantacao = $handsontable->id;

if ($metaI) {
    $codMetaI = $metaI->MEV_ID ?? false;
}
?>

<button type="button" class="btn btn-success btn-info-full" id="save">
    <i class="fa fa-floppy-o" aria-hidden="true"></i> Salvar
</button>

<?php
$cs = Yii::app()->getClientScript();

$mensalidade = MetasVendas::META_MENSALIDADE;
$implantacao = MetasVendas::META_IMPLANTACAO;
$script = <<<JAVASCRIPT
    $(document).on('click', '#save', function(event) {
        var dataMensalidade = {$metasMensalidade}.getData();
        var dataImplantacao = {$metasImplantacao}.getData();

        $.ajax({
            url: createUrl('metasVendas/updateMeta'),
            type: 'POST',
            data: {
                codMensalidade: {$metaM->MEV_ID},
                dataMensalidade: dataMensalidade,
                codImplantacao: {$codMetaI},
                dataImplantacao: dataImplantacao,
            },
        })
        .done(function(retorno) {
            switch (retorno) {
                case 'salvo':
                    $("#sucessoFinalizar").fadeIn();
                    break;
                case 'erro':
                    $("#erroSalvar").fadeIn();
                    break;
                default:
                    var invalidos = jQuery.parseJSON(retorno);
                    $.each(invalidos.mensalidade, function(index, val) {
                        var td = {$metasMensalidade}.getCell(val['linha'], val['coluna']);
                        td.style.background = '#ff4c42';
                    });

                    $.each(invalidos.implantacao, function(index, val) {
                        var td = {$metasImplantacao}.getCell(val['linha'], val['coluna']);
                        td.style.background = '#ff4c42';
                    });
                    $("#erroDadosInvalidos").fadeIn();
                    break;
            }
        });
    });
JAVASCRIPT;

$cs->registerScript("updateMetas", $script);
