Файл: protected/views/page/settings_deals.php
Строк: 309
<?php $this->pageTitle = 'Сделки | Настройки'; ?>
<div class="clients-hat">
    <div class="settings-name">
        <?php echo CHtml::link('Настройки', array('page/settings_additional_field')); ?>
        <img src="/img/right-arrow-button.svg">
        Сделки
    </div>
    <div class="goback-link pull-right" style="margin-bottom: 25px;">
    </div>
</div>
<?php
$form = $this->beginWidget('CActiveForm', array(
    'id' => 'reason',
    'htmlOptions' => [
        'class' => 'page-form deals'
    ]
    // 'enableAjaxValidation' => true,
));
?>
<main class="content full2 deals settingsLabels" role="main">
    <div class="box_edituser_left">
        <div class="edit_user_0anketa">
            <div class="content-01">
                <?php $this->renderPartial('settings_main_nav', array('deals' => true)); ?>
                <div class="user-table-block_pola fixWidth">
                    <ul id="ul-listTabs">
                        <?php
                        $typeDeals = $typeDeals ?? array_keys($listTabs)[0];
                        foreach ($listTabs as $key => $tab) {
                            echo
                                '<li id="' . $key . '" class="button-change-table sectorsBlock '
                                . ($typeDeals != $key ?: 'active') . '" onclick="changeTabs(' . "'" . $key . "'" . ');">' . $tab . '</li>';
                        }
                        ?>
                    </ul>
                </div>
                <? if ($isShowBlockSave) { ?>
                    <script type="module">
                        import {NotificationBar} from '/js/notificationBar.js';
                        const notificationBar = new NotificationBar({
                            type: 'success',
                            title: 'Сохранено',
                            description: 'Поле успешно изменено'
                        });
                        notificationBar.show();
                    </script>
                <? } ?>
                <div id="refusalBlock" class="hide">
                    <? if ($listTabs['refusal']) { ?>
                        <div class="centre_setting_3">
                            <div class="block-info editSelect" id="selectOptions">
                                <div class="block-row addSelectOption">
                                    <div class="row-label">Причины отказов:<span class="star">*</span></div>
                                    <div class="row-label label-weight">№:<span class="star">*</span></div>
                                </div>
                                <div class="block-options addSelectOption">
                                    <?
                                    foreach ($reasons as $reason) {
                                        $countClient = 0;
                                        $countClient = count(DealAndReason::model()->findAll('deals_reason_id = ' . $reason->id));
                                        ?>
                                        <div class="block-row">
                                            <div class="row-input input-option hide" id="inputId">
                                                <? echo CHtml::textField("Reasons[$reason->id][id]", $reason->id) ?>
                                            </div>
                                            <div class="row-input input-option">
                                                <? echo CHtml::textField("Reasons[$reason->id][name]", $reason->name, ['maxlength' => 80, 'placeholder' => 'Вариант ' . $reason->id, 'autocomplete' => 'off',]) ?>
                                            </div>
                                            <div class="row-input input-weight">
                                                <? echo CHtml::textField("Reasons[$reason->id][weight]", $reason->weight, ['maxlength' => 2, 'autocomplete' => 'off', 'class' => 'optionWeight', 'id' => "inputWeight", 'pattern' => "^[ 0-9]+$"]) ?>
                                            </div>
                                            <? if ($countClient < 1) { ?>
                                                <div class="row-input">
                                                    <img class="delDocument_set" onclick="deleteOption(event)"
                                                         src="/img/cancel_newdoc.svg" alt="">
                                                </div>
                                            <? } else { ?>
                                                <div class="row-input">
                                                    <img class="delDocument_set" id="delete<? echo $reason->id ?>"
                                                         onclick="showBlockDelete(event, <? echo $reason->id ?>)"
                                                         src="/img/cancel_newdoc.svg" alt="">
                                                </div>
                                            <? } ?>
                                        </div>
                                        <div class="delete-option hide" id="blockDelete<? echo $reason->id ?>">Есть проигранные сделки (<? echo $countClient ?> шт.), в которых, указана эта причина отказа. Если удалить, тогда сделки примут причину отказа по умолчанию. Затем нажмите "Сохранить". <a onclick="deleteOption(event, <? echo $reason->id ?>)"style="cursor: pointer;"> Удалить</a>
                                        </div>
                                        <?
                                    }
                                    $count = 1;
                                    foreach ($customReason as $value) { ?>
                                        <div class="block-row">
                                            <div class="row-input input-option">
                                                <? echo CHtml::textField("Reasons[exampleId" . $count . "][name]", $value['name'], ['maxlength' => 80, 'placeholder' => 'Вариант ' . $count, 'autocomplete' => 'off',]) ?>
                                            </div>
                                            <div class="row-input input-weight">
                                                <? echo CHtml::textField("Reasons[exampleId" . $count . "][weight]", $value['weight'], ['maxlength' => 2, 'autocomplete' => 'off', 'class' => 'optionWeight', 'id' => "inputWeight", 'pattern' => "^[ 0-9]+$"]) ?>
                                            </div>
                                            <div class="row-input">
                                                <img class="delDocument_set" onclick="deleteOption(event)"
                                                     src="/img/cancel_newdoc.svg" alt="">
                                            </div>
                                        </div>
                                        <?
                                        $count++;
                                    } ?>
                                </div>
                                <div class="block-row addSelectOption buttonAdd">
                                    <a class="add" id="addOption" href="#">Добавить</a>
                                </div>
                                <? if ($errorMessageList) {
                                    foreach ($errorMessageList as $error) {
                                        echo "
                                                <div class="block-row addSelectOption">
                                                    <div class="custom-error">$error[0]</div>
                                                </div>
                                            ";
                                        break;
                                    }
                                    ?>
                                <? } ?>
                            </div>
                        </div>
                    <? } ?>
                </div>
                <div class="save_button">
                    <?php echo CHtml::submitButton('Сохранить', array('class' => 'btn', 'id' => 'save')); ?>
                    <div id="preloader"></div>
                </div>
                <?php $this->endWidget(); ?>
            </div>
        </div>
    </div>
    <div class="right-sidebar">
            <div class="title_name_2">Справка
                <div class="more"><img src="/img/external-link-symbol.svg"><a href="https://inclient.ru/category/help-crm/" target="_blank" style="color: #707070;">Подробнее</a></div>
            </div>
            <div class="popup__form_actions">
                <p><strong>Причины отказов</strong></p>
                <br>
                <p>Причины отказов используются в сделках. При закрытии проигранной сделки, нужно указать причину - почему контакт отказался от сделки. В будущем появится статистика отказов - это позволит понять, почему клиенты отказываются от сделок.</p>
            </div>
        </div>
</main>
<script>
    $("#reason").submit(function () {
        $("#preloader").addClass('preloader');
        $("#save_and_create").hide();
        $("#save").hide();
    });
    var tabActive = $('#ul-listTabs li.active');
    $('#' + tabActive[0].id + 'Block').show();
    changeTabs = function (tab) {
        tabActive.removeClass('active');
        $('#' + tabActive[0].id + 'Block').hide();
        tabActive = $('#' + tab);
        tabActive.addClass('active');
        $('#' + tabActive[0].id + 'Block').show();
    };
    var count = <?echo $count?>;
    $('#addOption').click(function () {
        event.preventDefault();
        var listOptions = $('.block-options.addSelectOption .block-row'),
            Weights = $('.optionWeight'),
            listWeight = [];
        // массив с весами
        for (var i = 0; i < Weights.length; i++) {
            listWeight.push(+Weights[i].value);
        }
        var weight = null;
        for (var i = 1; i <= listOptions.length; i++) {
            if (listWeight.indexOf(i) < 0) {
                weight = i;
                break;
            }
        }
        count++;
        weight = weight || listOptions.length + 1;
        var blockOption = '<div class="block-row">n' +
            '                                <div class="row-input input-option">n' +
            '                                    <input type="text" autocomplete="off" name="Reasons[exampleId' + count + '][name]" class="optionName" placeholder="Вариант ' + count + '" maxlength="80">' +
            '                                </div>n' +
            '                                <div class="row-input input-weight">n' +
            '                                    <input type="text" autocomplete="off" name="Reasons[exampleId' + count + '][weight]" id="inputWeight" pattern="^[ 0-9]+$" maxlength="2" class="optionWeight" value="' + weight + '">' +
            '                                </div>n' +
            '                                <div class="row-input">n' +
            '                                    <img class="delDocument_set" onclick="deleteOption(event)" src="/img/cancel_newdoc.svg" alt="">n' +
            '                                </div>n' +
            '                            </div>';
        var blockListOptions = $('.block-options.addSelectOption');
        blockListOptions.append(blockOption);
        changeShowButtonDelete();
    });
    deleteOption = function (event, id) {
        event.preventDefault();
        var blockOption = event.path[2];
        if (id) {
            var linkDelete = $('#delete' + id);
            linkDelete.show();
            $('#blockDelete' + id).hide();
            blockOption = linkDelete.closest('.block-row');
        }
        var listOptions = $('.block-options.addSelectOption .block-row');
        if (listOptions.length > 1) {
            blockOption.remove();
            $('#blockDelete' + id).remove();
            changeShowButtonDelete();
        } else {
            alert('Последнюю причину удалить невозможно')
        }
    };
    showBlockDelete = function (event, id) {
        event.preventDefault();
        var listOptions = $('.block-options.addSelectOption .block-row');
        if (listOptions.length > 1) {
            $('#blockDelete' + id).removeClass('hide');
        } else {
            alert('Последнюю причину удалить невозможно')
        }
    };
    function changeShowButtonDelete() {
        var listButtonDelete = $('.block-row').find('.delete');
        if (listButtonDelete.length <= 2) {
            $('.delete-option').addClass('hide');
            for (var i = 0; i <= listButtonDelete.length - 1; i++) {
                listButtonDelete[i].classList.add('hide');
            }
        } else {
            for (var i = 0; i <= listButtonDelete.length - 1; i++) {
                listButtonDelete[i].classList.remove('hide');
            }
            // затираем  ссылку "удалить" активного радиобаттон
            $("input:radio:checked").closest('.block-row').find('.delete').addClass('hide');
        }
    }
    cancelDelete = function (event, id) {
        event.preventDefault();
        $('#delete' + id).removeClass('hide');
        $('#blockDelete' + id).addClass('hide');
    };
    changeRadioActive = function (radioId) {
        $('input:radio').prop('checked', false);
        $('#radio' + radioId).prop("checked", true);
        // затираем  ссылку "блок опций удалить" активного радиобаттон
        var id = $("input:radio:checked").closest('.block-row').find('#inputId input').val();
        $('#blockDelete' + id).addClass('hide');
        changeShowButtonDelete();
    };
    function closeNotification(event) {
        var notification = event.target;
        notification = notification.closest('.save-message');
        notification.classList.add('hide');
    }
</script>