<?php
    $this->pageTitle = "Controle de Negociações";

    $menus = array();

    $menus[] = array(
        'label'=> FaHtml::iconNovo(),
        'url'=>array('create'),
        'linkOptions' => array(
            'target' => '_blank',
            'class' => 'novo'
        )
    );
    if (isset($_GET['busca'])) {
        $menus[] = array('label' => FaHtml::iconExcel(),
                         'url' => array('generateExcel'),
                         'linkOptions' => array('class' => 'novo exportar')
        );
    }

    $menus[] = array(
        'label' => FaHtml::iconSetaClose(),
        'url' => '#',
        'linkOptions' => array('class' => 'search-button')
    );
    $menus[] = array(
        'label' => FaHtml::iconRefresh(),
        'url' => 'javascript:void(0);',
        'linkOptions' => array(
            'onclick' => 'reloadFrame();',
            'class' => 'refresh-button'
        )
    );
    $this->menu = $menus;
    $dataProvider = $model->search();
?>
<div class="search-form" style="display:<?php echo (isset($_GET['busca'])) ? 'none' : 'block'; ?>">
    <?php $this->renderPartial('_search_negociacoes', array('model' => $model)); ?>
</div><!-- search-form -->

<?php if (isset($_GET['busca']) && $_GET['busca'] == 1) { ?>
    <?php
        $columns = array(
            'FEN_IDNEGOCIACAO',
            'Cliente.CLI_NOME',
            array(
                'name' => 'FEN_TIPO_NEGOCIACAO',
                'value' => '$data->getTipoNegociacao()'
            )
        );
    if (
        in_array(
            $model->FEN_TIPO_NEGOCIACAO,
            [
                FechamentosNegociacoes::CLIENTES_NOVOS,
                FechamentosNegociacoes::REATIVACOES_CLIENTES
            ]
        )
    ) {
        $columns[] = array(
            'name' => 'FEN_VLRIMPLANTACAO',
            'value' => '
                $data->Revenda->REV_TIPO == 3
                    ?
                        $data->FEN_IDMOTIVO == 67
                        ?
                            Util::verMoeda($data->FEN_VLRIMPLANTACAO)
                        :
                            Util::verMoeda(0)
                    :
                        Util::verMoeda($data->FEN_VLRIMPLANTACAO)
            ', // se for revenda só exibe valor quando for reativação
        );
        $columns[] = array(
            'name' => 'FEN_VLRNEGOCIADO',
            'value' => 'Util::verMoeda($data->FEN_VLRNEGOCIADO)',
        );
        $columns[] = 'FEN_NROUSUARIOS';
        $columns[] = array(
            'name' => 'Cliente.Cidade',
            'value' => '$data->Cliente->Cidade->CidadeEstado',
        );
        $columns[] = 'Revenda';
        $columns[] = 'Vendedor';
        $columns[] = 'Motivo';
        $columns[] = 'Produto';
    } elseif (
        in_array(
            $model->FEN_TIPO_NEGOCIACAO,
            [
                FechamentosNegociacoes::TRANSFERENCIAS_COM_ACRESCIMO,
                FechamentosNegociacoes::TRANSFERENCIAS_SEM_ACRESCIMO
            ]
        )
    ) {
        $columns[] = array(
            'name' => 'FEN_VLRIMPLANTACAO',
            'value' => 'Util::verMoeda($data->FEN_VLRIMPLANTACAO)',
        );
        $columns[] = array(
            'name' => 'FEN_VLRDIFERENCA',
            'value' => 'Util::verMoeda($data->FEN_VLRDIFERENCA)',
        );
        $columns[] = 'FEN_NROUSUARIOS';
        $columns[] = array(
            'name' => 'Cliente.Cidade',
            'value' => '$data->Cliente->Cidade->CidadeEstado',
        );
        $columns[] = 'Revenda';
        $columns[] = 'Vendedor';
        $columns[] = 'Produto';
    } elseif (
        in_array(
            $model->FEN_TIPO_NEGOCIACAO,
            [
                FechamentosNegociacoes::ADENDOS_COM_ACRESCIMO,
                FechamentosNegociacoes::ADENDOS_SEM_ACRESCIMO
            ]
        )
    ) {
        $columns[] = array(
            'name' => 'FEN_VLRIMPLANTACAO',
            'value' => '
                $data->Revenda->REV_TIPO == 3
                    ?
                        $data->FEN_IDMOTIVO == 67
                        ?
                            Util::verMoeda($data->FEN_VLRIMPLANTACAO)
                        :
                            Util::verMoeda(0)
                    :
                        Util::verMoeda($data->FEN_VLRIMPLANTACAO)
            ', // se for revenda só exibe valor quando for reativação
        );
        $columns[] = array(
            'name' => 'FEN_VLRNEGOCIADO',
            'value' => 'Util::verMoeda($data->FEN_VLRNEGOCIADO)',
        );
        $columns[] = array(
            'name' => 'FEN_VLRDIFERENCA',
            'value' => 'Util::verMoeda($data->FEN_VLRDIFERENCA)',
        );
        $columns[] = 'FEN_NROUSUARIOS';
        $columns[] = array(
            'name' => 'Cliente.Cidade',
            'value' => '$data->Cliente->Cidade->CidadeEstado',
        );
        $columns[] = 'Revenda';
        $columns[] = 'Vendedor';
        $columns[] = array(
            'name' => 'Motivo',
            'value' => '$data->Motivo ?? "-"',
        );
        $columns[] = 'Produto';
    } elseif (
        in_array(
            $model->FEN_TIPO_NEGOCIACAO,
            [
                FechamentosNegociacoes::CANCELAMENTOS,
                FechamentosNegociacoes::CANCELAMENTOS_TRANSFERENCIA
            ]
        )
    ) {
        $columns[] = 'FEN_DTCONTRATACAO';
        $columns[] = array(
            'name' => 'FEN_VLRNEGOCIADO',
            'value' => 'Util::verMoeda($data->FEN_VLRNEGOCIADO)',
        );
        $columns[] = 'FEN_NROUSUARIOS';
        $columns[] = array(
            'name' => 'Cliente.Cidade',
            'value' => '$data->Cliente->Cidade->CidadeEstado',
        );
        $columns[] = 'Revenda';
        $columns[] = array(
            'name' => 'Motivo',
            'value' => '$data->Motivo ?? "-"',
        );
    }
    $columns[] = array(
        'name'  => 'FEN_STATUS',
        'value' => '$data->getStatus()',
        'htmlOptions' => array(
            'class' => 'colunaStatus'
        )
    );
    $columns[] = 'FEN_OBS';

    $buttons = "{view}";

    if (User::canUpdate()) {
        $buttons .= " {update}";
    }

    if (in_array(User::getPrivilegio(), [1, 7])) {
        $buttons .= " {status}";
    }

    $columns[] = array(
        'class' => 'CButtonColumn',
        'template' => $buttons,
        'viewButtonOptions' => array('target'=>'_blank'),
        'updateButtonOptions' => array('target'=>'_blank'),
        'buttons' => array(
            'view' => array(
                'label' => 'Exibir',
                'url' => 'Yii::app()->createUrl("fechamentosComercial/view", array("id"=>$data->FEN_IDNEGOCIACAO))',
            ),
            'update' => array(
                'label' => 'Editar',
                'url' => 'Yii::app()->createUrl("fechamentosComercial/update", array("id"=>$data->FEN_IDNEGOCIACAO))',
                'visible' => '$data->canUpdate()',
            ),
            'status' => array(
                'label' => 'Alterar Status',
                'imageUrl' => FaHtml::getImgUrl('ico-power.png'),
                'url' => 'Yii::app()->createUrl("fechamentosComercial/status", array("id"=>$data->FEN_IDNEGOCIACAO))',
                'options' => array(
                    'class' => 'changeStatus'
                ),
            ),
        ),
    );

    $this->widget('ext.Utils.widgets.CrmGridView', array(
        'id' => 'admin-grid',
        'dataProvider' => $dataProvider,
        'afterAjaxUpdate'=>'updated',
        'selectableRows'=>1,
        'pager' => Util::getPagerDefaultConfig(),
        'columns' => $columns,
    ));
}

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

$script = <<<JAVASCRIPT
    $(document).on('click', '.changeStatus', function(event) {
        event.preventDefault();
        var href = $(this).attr('href');
        var tr = $(this).parents('tr');
        var colunaStatus = tr.find('.colunaStatus');

        if (confirm('Deseja alterar o status?')) {
            $.ajax({
                url: href,
                type: 'GET',
            })
            .done(function(status) {
                colunaStatus.html(status);
            })
            .fail(function(error) {
                alert(error.responseText);
            });
        }
        return false;
    });
JAVASCRIPT;

$cs->registerScript(Util::uid(), $script);