<div class="form">
    <?php
        $form = $this->beginWidget('GxActiveForm', array(
            'id' => 'enderecos-form',
            'enableAjaxValidation' => false,
            'focus'=>array($model,'END_DESCRICAO'),
             'htmlOptions' => array('class'=>'col-xs-12 form-cadastro inline-addon')
        ));
    ?>
        <?php
            $this->widget('application.extensions.emultiselect.EMultiSelect');
            echo FaHtml::getFormInfo($form, $model);
        ?>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_TIPO_NEGOCIACAO'); ?>
            <?php
                $opcoes = $model->tiposNegociacao;
                echo $form->dropDownList($model, 'FEN_TIPO_NEGOCIACAO', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_TIPO_NEGOCIACAO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDCLIENTE'); ?>
            <?php
                $this->widget('ext.select2.ESelect2', array(
                    'model' => $model,
                    'attribute' => 'FEN_IDCLIENTE',
                    'relatedModel' => 'Clientes',
                    'ajaxConf' => array(
                        'url' => Yii::app()->createUrl('autocomplete/clientes'),
                        'params' => array(
                            'field: "CLI_NOME"',
                            'id: "CLI_IDCLIENTE"',
                            'situacao: ["A", "I"]',
                            'all: "true"',
                        )
                    ),
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDCLIENTE'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDCONTRATO'); ?>
            <?php
                $opcoes = array();
                echo $form->dropDownList($model, 'FEN_IDCONTRATO', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDCONTRATO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model,'FEN_VLRIMPLANTACAO'); ?>
            <?php echo $form->textField($model, 'FEN_VLRIMPLANTACAO', array('class' => 'maskMoeda')); ?>
            <?php echo $form->error($model,'FEN_VLRIMPLANTACAO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model,'FEN_VLRNEGOCIADO'); ?>
            <?php echo $form->textField($model, 'FEN_VLRNEGOCIADO', array('class' => 'maskMoeda')); ?>
            <?php echo $form->error($model,'FEN_VLRNEGOCIADO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model,'FEN_VLRDIFERENCA'); ?>
            <?php echo $form->textField($model, 'FEN_VLRDIFERENCA', array('class' => 'maskMoedaAllowNegative')); ?>
            <?php echo $form->error($model,'FEN_VLRDIFERENCA'); ?>

            <?php
                $display = "none";
                if ($model->FEN_TIPO_NEGOCIACAO == FechamentosNegociacoes::TRANSFERENCIAS_COM_ACRESCIMO) {
                    $display = "block";
                }
            ?>
            <div class="alert alert-info" id="msgDiferencaComAcrescimo" style="display: <?= $display; ?>">
                <i class="fa fa-info-circle"></i>
                <div class="alert-message">
                    O Valor da Diferença deve ser <b>maior que zero</b> em
                    <type>Transferências</type> com Acréscimo.
                </div>
            </div>

            <?php
                $display = "none";
                if ($model->FEN_TIPO_NEGOCIACAO == FechamentosNegociacoes::TRANSFERENCIAS_SEM_ACRESCIMO) {
                    $display = "block";
                }
            ?>
            <div class="alert alert-info" id="msgDiferencaSemAcrescimo" style="display: <?= $display; ?>">
                <i class="fa fa-info-circle"></i>
                <div class="alert-message">
                    O Valor da Diferença deve ser <b>menor ou igual a zero</b> em
                    <type>Transferências</type> sem Acréscimo.
                </div>
            </div>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDPRODUTO'); ?>
            <?php
                $opcoes = GxHtml::listDataEx(
                    Modulos::model()->findAll('
                        MOD_SITUACAO="A" and
                        MOD_TIPO = 2 and
                        MOD_COMPLEMENTO = "N"
                        order by MOD_DESCRICAO
                    ')
                );
                echo $form->dropDownList($model, 'FEN_IDPRODUTO', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDPRODUTO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'modulosComplementares'); ?>
            <?php
                $opcoes = GxHtml::listDataEx(
                    Modulos::model()->findAll('
                        MOD_SITUACAO="A" AND
                        MOD_COMPLEMENTO = "S"
                        ORDER BY MOD_DESCRICAO
                    '),
                    'MOD_IDMODULO',
                    'MOD_DESCRICAO'
                );
                echo $form->dropDownList($model, 'modulosComplementares', $opcoes, array(
                    'multiple' => 'multiple',
                    'class' => 'multiselect',
                    'size' => '7'
                ));
            ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model,'FEN_NROUSUARIOS'); ?>
            <?php
                echo $form->numberField($model, 'FEN_NROUSUARIOS', array(
                    'min' => -99,
                    'max' => 99
                ));
            ?>
            <?php echo $form->error($model,'FEN_NROUSUARIOS'); ?>

            <?php
                $display = "none";
                if (
                    in_array(
                        $model->FEN_TIPO_NEGOCIACAO,
                        array(
                            FechamentosNegociacoes::TRANSFERENCIAS_COM_ACRESCIMO,
                            FechamentosNegociacoes::ADENDOS_COM_ACRESCIMO,
                            FechamentosNegociacoes::TRANSFERENCIAS_SEM_ACRESCIMO,
                            FechamentosNegociacoes::ADENDOS_SEM_ACRESCIMO,
                        )
                    )
                ) {
                    $display = "block";
                }
            ?>
            <div class="alert alert-info" id="msgTransferenciasAdendos" style="display: <?= $display; ?>">
                <i class="fa fa-info-circle"></i>
                <div class="alert-message">
                    Para adendos e transferências você deve informar a diferença entre o novo número de usuários e o anterior.
                    Caso não haja diferença, digite 0 (zero).
                </div>
            </div>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDREVENDA'); ?>
            <?php
                $revendas = Revendas::model()->findAll(array('order' => 'REV_SITUACAO, REV_TIPO, REV_FANTASIA'));
                $opcoes = CHtml::listData($revendas, 'REV_IDREVENDA', 'REV_FANTASIA', 'SituacaoPlural');
                echo $form->dropDownList($model, 'FEN_IDREVENDA', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDREVENDA'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDVENDEDOR'); ?>
            <?php
                $opcoes = array(
                    'Ativos' => (
                        array('Ativos' => 'Selecione a unidade de negócios')
                    ),
                    'Inativos' => (
                        array('Inativos' => 'Selecione a unidade de negócios')
                    )
                );

                echo $form->dropDownList($model, 'FEN_IDVENDEDOR', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDVENDEDOR'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDMOTIVO'); ?>
            <?php
                $opcoes = FechamentosNegociacoes::getMotivosCadastro($model->FEN_TIPO_NEGOCIACAO);
                echo $form->dropDownList($model, 'FEN_IDMOTIVO', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDMOTIVO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model, 'FEN_IDMOTIVO_VENDEDOR'); ?>
            <?php
                $opcoes = GxHtml::listDataEx(
                    Motivos::model()->findAll('
                        MOT_SITUACAO="A" AND
                        MOT_TIPO = 3 and
                        MOT_IDMOTIVO <> 110
                        order by MOT_DESCRICAO
                    ')
                );
                echo $form->dropDownList($model, 'FEN_IDMOTIVO_VENDEDOR', $opcoes, array(
                    'prompt' => 'Selecione'
                ));
            ?>
            <?php echo $form->error($model, 'FEN_IDMOTIVO_VENDEDOR'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model,'FEN_DTCONTRATACAO'); ?>
            <?php
                $form->widget('ext.Utils.widgets.CrmDatePicker', array(
                    'model' => $model,
                    'attribute' => 'FEN_DTCONTRATACAO'
                ));
            ?>
            <?php echo $form->error($model,'FEN_DTCONTRATACAO'); ?>
        </div>

        <div class="row">
            <?php echo $form->labelEx($model,'FEN_DTRESCISAO'); ?>
            <?php
                $form->widget('ext.Utils.widgets.CrmDatePicker', array(
                    'model' => $model,
                    'attribute' => 'FEN_DTRESCISAO'
                ));
            ?>
            <?php echo $form->error($model,'FEN_DTRESCISAO'); ?>
        </div>

        <?= FaHtml::saveButton(); ?>
    <?php $this->endWidget(); ?>
</div>

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

$CLIENTES_NOVOS = FechamentosNegociacoes::CLIENTES_NOVOS;
$TRANSFERENCIAS_COM_ACRESCIMO = FechamentosNegociacoes::TRANSFERENCIAS_COM_ACRESCIMO;
$ADENDOS_COM_ACRESCIMO = FechamentosNegociacoes::ADENDOS_COM_ACRESCIMO;
$TRANSFERENCIAS_SEM_ACRESCIMO = FechamentosNegociacoes::TRANSFERENCIAS_SEM_ACRESCIMO;
$ADENDOS_SEM_ACRESCIMO = FechamentosNegociacoes::ADENDOS_SEM_ACRESCIMO;
$CANCELAMENTOS = FechamentosNegociacoes::CANCELAMENTOS;
$CANCELAMENTOS_TRANSFERENCIA = FechamentosNegociacoes::CANCELAMENTOS_TRANSFERENCIA;
$REATIVACOES_CLIENTES = FechamentosNegociacoes::REATIVACOES_CLIENTES;
$script = <<<JAVASCRIPT
    jQuery(document).ready(function($) {
        var tipo = $("#FechamentosNegociacoes_FEN_TIPO_NEGOCIACAO").val();
        $("#FechamentosNegociacoes_FEN_TIPO_NEGOCIACAO").on('change', function() {
            var tipo = $(this).val();

            var documento = $("#FechamentosNegociacoes_FEN_IDCONTRATO").parent();
            var valorImplantacao = $("#FechamentosNegociacoes_FEN_VLRIMPLANTACAO").parent();
            var valorNegociado = $("#FechamentosNegociacoes_FEN_VLRNEGOCIADO").parent();
            var valorDiferenca = $("#FechamentosNegociacoes_FEN_VLRDIFERENCA").parent();
            var produto = $("#FechamentosNegociacoes_FEN_IDPRODUTO").parent();
            var modulosAdicionais = $("#FechamentosNegociacoes_modulosComplementares").parent();
            var numUsuarios = $("#FechamentosNegociacoes_FEN_NROUSUARIOS").parent();
            var revenda = $("#FechamentosNegociacoes_FEN_IDREVENDA").parent();
            var vendedor = $("#FechamentosNegociacoes_FEN_IDVENDEDOR").parent();
            var motivo = $("#FechamentosNegociacoes_FEN_IDMOTIVO").parent();
            var motivoVendedor = $("#FechamentosNegociacoes_FEN_IDMOTIVO_VENDEDOR").parent();
            var dataContratacao = $("#FechamentosNegociacoes_FEN_DTCONTRATACAO").parent();
            var dataRescisao = $("#FechamentosNegociacoes_FEN_DTRESCISAO").parent();

            var msgTransferenciasAdendos = $("#msgTransferenciasAdendos");
            msgTransferenciasAdendos.hide();

            var msgDiferencaComAcrescimo = $("#msgDiferencaComAcrescimo");
            msgDiferencaComAcrescimo.hide();

            var msgDiferencaSemAcrescimo = $("#msgDiferencaSemAcrescimo");
            msgDiferencaSemAcrescimo.hide();

            documento.fadeOut(400).find('input, select').prop('disabled', true);
            valorImplantacao.fadeOut(400).find('input, select').prop('disabled', true);
            valorNegociado.fadeOut(400).find('input, select').prop('disabled', true);
            valorDiferenca.fadeOut(400).find('input, select').prop('disabled', true);
            produto.fadeOut(400).find('input, select').prop('disabled', true);
            modulosAdicionais.fadeOut(400).find('input, select').prop('disabled', true);
            numUsuarios.fadeOut(400).find('input, select').prop('disabled', true);
            revenda.fadeOut(400).find('input, select').prop('disabled', true);
            vendedor.fadeOut(400).find('input, select').prop('disabled', true);
            motivo.fadeOut(400).find('input, select').prop('disabled', true);
            motivoVendedor.fadeOut(400).find('input, select').prop('disabled', true);
            dataContratacao.fadeOut(400).find('input, select').prop('disabled', true);
            dataRescisao.fadeOut(400).find('input, select').prop('disabled', true);

            if (tipo != "") {
                comoNosConheceu(tipo);

                produto.find('input, select').prop('disabled', false);
                produto.fadeIn(400);

                numUsuarios.find('input, select').prop('disabled', false);
                numUsuarios.fadeIn(400);

                revenda.find('input, select').prop('disabled', false);
                revenda.fadeIn(400);

                dataContratacao.find('input, select').prop('disabled', false);
                dataContratacao.fadeIn(400);
                dataContratacao.find('label').html("Data de Contratação <span class=\"required\">*</span>");
            }

            switch (tipo) {
                case "{$CLIENTES_NOVOS}":
                case "{$REATIVACOES_CLIENTES}":
                    valorImplantacao.find('input, select').prop('disabled', false);
                    valorImplantacao.fadeIn(400);

                    valorNegociado.find('input, select').prop('disabled', false);
                    valorNegociado.fadeIn(400);

                    modulosAdicionais.find('input, select').prop('disabled', false);
                    modulosAdicionais.fadeIn(400);

                    vendedor.find('input, select').prop('disabled', false);
                    vendedor.fadeIn(400);

                    motivo.find('label').html("Forma de Venda <span class=\"required\">*</span>");
                    motivo.find('input, select').prop('disabled', false);
                    motivo.fadeIn(400);

                    break;

                case "{$ADENDOS_COM_ACRESCIMO}":
                case "{$ADENDOS_SEM_ACRESCIMO}":
                    valorImplantacao.find('input, select').prop('disabled', false);
                    valorImplantacao.fadeIn(400);

                    valorNegociado.find('input, select').prop('disabled', false);
                    valorNegociado.fadeIn(400);

                    vendedor.find('input, select').prop('disabled', false);
                    vendedor.fadeIn(400);

                    valorDiferenca.find('input, select').prop('disabled', false);
                    valorDiferenca.fadeIn(400);

                    msgTransferenciasAdendos.show();

                    var type = "Adendos";
                    if (tipo == "{$ADENDOS_COM_ACRESCIMO}") {
                        msgDiferencaComAcrescimo.find('type').html(type);
                        msgDiferencaComAcrescimo.fadeIn(400);
                    } else {
                        msgDiferencaSemAcrescimo.find('type').html(type);
                        msgDiferencaSemAcrescimo.fadeIn(400);
                    }

                    break;

                case "{$TRANSFERENCIAS_COM_ACRESCIMO}":
                case "{$TRANSFERENCIAS_SEM_ACRESCIMO}":
                    valorImplantacao.find('input, select').prop('disabled', false);
                    valorImplantacao.fadeIn(400);

                    valorDiferenca.find('input, select').prop('disabled', false);
                    valorDiferenca.fadeIn(400);

                    vendedor.find('input, select').prop('disabled', false);
                    vendedor.fadeIn(400);

                    dataContratacao.find('label').html("Data <span class=\"required\">*</span>");

                    msgTransferenciasAdendos.show();

                    var type = "Transferências";
                    if (tipo == "{$TRANSFERENCIAS_COM_ACRESCIMO}") {
                        msgDiferencaComAcrescimo.find('type').html(type);
                        msgDiferencaComAcrescimo.fadeIn(400);
                    } else {
                        msgDiferencaSemAcrescimo.find('type').html(type);
                        msgDiferencaSemAcrescimo.fadeIn(400);
                    }

                    break;

                case "{$CANCELAMENTOS}":
                case "{$CANCELAMENTOS_TRANSFERENCIA}":
                    valorNegociado.find('input, select').prop('disabled', false);
                    valorNegociado.fadeIn(400);

                    motivo.find('label').html("Motivo da Rescisão <span class=\"required\">*</span>");
                    motivo.find('input, select').prop('disabled', false);
                    motivo.fadeIn(400);

                    motivoVendedor.find('input, select').prop('disabled', false);
                    motivoVendedor.fadeIn(400);

                    dataRescisao.find('input, select').prop('disabled', false);
                    dataRescisao.fadeIn(400);
                    break;
            }

            return true;
        });

        function comoNosConheceu(tipo_negociacao) {
            var motivoSelecionado = $("#FechamentosNegociacoes_FEN_IDMOTIVO").val();
            $.ajax({
                url: createUrl('fechamentosComercial/motivosCadastro'),
                type: 'POST',
                dataType: 'json',
                data: {
                    tipo: tipo_negociacao
                },
            })
            .done(function(result) {
                var str = "<option value>Selecione</option>";
                $.each(result, function(chave,valor){
                      str += "<option value='"+chave+"'>"+valor+"</option>";
                })
                $("#FechamentosNegociacoes_FEN_IDMOTIVO").html(str);

                selectField('FechamentosNegociacoes_FEN_IDMOTIVO', motivoSelecionado);
            });
        }

        $("#FechamentosNegociacoes_FEN_IDCLIENTE").on('change', function() {
            var cliente = $(this).val();

            $.ajax({
                url: createUrl('clientes/loadDadosCliente'),
                type: 'POST',
                dataType: 'json',
                data: {
                    id: cliente
                },
            })
            .done(function(result) {
                $("#FechamentosNegociacoes_FEN_VLRNEGOCIADO").val(result.valor);
                $("#FechamentosNegociacoes_FEN_IDPRODUTO").val(result.produto);
                $("#FechamentosNegociacoes_FEN_NROUSUARIOS").val(result.usuarios);
                $("#FechamentosNegociacoes_FEN_IDREVENDA").val(result.revenda);
                $("#FechamentosNegociacoes_FEN_IDVENDEDOR").val(result.vendedor);
                $("#FechamentosNegociacoes_FEN_IDMOTIVO").val(result.motivo);
                $("#FechamentosNegociacoes_FEN_DTCONTRATACAO").val(result.data_contratacao);
                $("#FechamentosNegociacoes_FEN_DTRESCISAO").val(result.data_rescisao);

                $("#FechamentosNegociacoes_FEN_IDREVENDA").change();
            });
        });

        $("#FechamentosNegociacoes_FEN_TIPO_NEGOCIACAO").change();

        $("#FechamentosNegociacoes_FEN_IDREVENDA").on('change', function() {
            var revenda = $(this).val();

            $.ajax({
                contentType: 'application/json; charset=utf-8',
                url: createUrl('autocomplete/vendedoresPorRevenda'),
                type: 'GET',
                dataType: 'json',
                data: {
                    revenda: revenda
                },
                dataType: 'json',
                timeout: 10000,
            })
            .done(function(json) {
                var ativos = $('#FechamentosNegociacoes_FEN_IDVENDEDOR')
                    .find('option')
                    .remove().end().prepend('<option value>Selecione</option>')
                    .find('optgroup[label=Ativos]');
                var inativos = $('#FechamentosNegociacoes_FEN_IDVENDEDOR')
                    .find('optgroup[label=Inativos]');

                var existe_ativos = false;
                var existe_inativos = false;
                $.each(json, function(i, d) {
                    if(d.FUN_SITUACAO == 'A') {
                        ativos.append('<option value="'+d.FUN_IDFUNCIONARIO+
                            '">'+d.FUN_NOME+'</option>');
                        existe_ativos = true;

                    } else {
                        inativos.append('<option value="'+d.FUN_IDFUNCIONARIO+
                            '">'+d.FUN_NOME+'</option>');
                        existe_inativos = true;
                    }
                })
                if (existe_ativos == false) {
                    ativos.append('<option value>Não existem vendedores '+
                        'ativos vinculados</option>');
                }
                if (existe_inativos == false) {
                    inativos.append('<option value>Não existem vendedores '+
                        'inativos vinculados</option>');
                }
            }).fail(function(request, status, error){
                    console.log(request, status, error);
            });
        });

        $("#FechamentosNegociacoes_FEN_IDREVENDA").change();
    });
JAVASCRIPT;
$cs->registerScript(Util::uid(), $script);

$css = <<<CSS
    #msgDiferencaComAcrescimo,
    #msgDiferencaSemAcrescimo,
    #msgTransferenciasAdendos {
        width: 464px;
        display: block;
        float: none;
    }
    #FechamentosNegociacoes_FEN_VLRDIFERENCA + .errorMessage {
        float: none;
        margin-bottom: 10px;
    }
CSS;
$cs->registerCss(Util::uid(), $css);

