Joywork/js/crm.js
2026-07-03 10:04:01 +03:00

12957 lines
513 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(function() {
$('.left-menu').slimScroll({
height: "100%",
position: "right",
size: "6px",
color: "#dcdcdc"
});
$('.fr-send-presentation__modal .inner').slimScroll({
height: "100%",
width: "100%",
position: "right",
size: "6px",
color: "#000",
disableFadeOut: true
});
$(document).tooltip({
show: {
duration: 200
},
position: {
my: "center bottom-10",
at: "center top",
collision: "flipfit",
using: function(position, feedback) {
$(this).css(position, feedback);
$("<div>")
.addClass("arrow")
.addClass(feedback.vertical)
.addClass(feedback.horizontal)
.appendTo(this);
}
}
});
});
testIfResendAllCanBeActive();
var add_knban = true;
var page_kanban = 1;
var phone2Index = 0;
$(function () {
var lastScrollTop = 0;
kanbanScrollHandler = async function () {
var st = $('#kanban___list').scrollTop();
if (st < lastScrollTop) {
} else {
checkTop();
if ($('.view-kanban.active').length > 0) {
var skroll_top = $('.kanban').scrollTop();
var hw = $('.kanban').height();
var top_kanban = $('.kanban__items-lists').offset().top;
var hk = $('.kanban__items-lists').height();
const divUl = $('.kanban__items-lists').find('.kanban__items-list');
if(divUl){
for(let i=0; i<divUl.length; i++){
if(i == 0){
// let divLi = $(divUl[i]).find('.block_li_kanban');
$(divUl[i]).addClass('no-heigth');
let heigthLi = $(divUl[i]).find('ul').height();
$(divUl[i]).removeClass('no-heigth');
/*console.log(clientHeight+scrollTop);
console.log(heigthLi);*/
if (skroll_top + hw >= heigthLi && add_knban) {
console.log('clients li');
add_knban = false;
page_kanban++;
get_list();
lastScrollTop = st;
}
}
}
}
if (document.location.pathname === '/clients.php') {
if (skroll_top + hw >= hk && add_knban) {
console.log('clients');
add_knban = false;
page_kanban++;
get_list();
lastScrollTop = st;
}
}
//console.log((skroll_top + hw)+' '+(top_kanban + hk));
}
}
//lastScrollTop = st;
};
});
function parseQueryString(queryString) {
if (!queryString) {
return false;
}
let queries = queryString.substr(1).split("&"),
params = {},
temp;
for (let i = 0, l = queries.length; i < l; i++) {
temp = queries[i].split('=');
if (temp[1] !== '') {
params[temp[0]] = temp[1];
}
}
return params;
}
function checkTop() {
if (localStorage['collapse_push'] > 0) {
$(".confirm_mess").css('top', '200px').css('width', '50px').css('height', '80px').css('overflow', 'hidden').css('position', 'fixed');
} else {
var bH = window.innerHeight;
var readmoreBlock = $(".confirm_mess");
if (readmoreBlock.length) {
var point = readmoreBlock.offset().top;
var heigthReadmore = readmoreBlock.height();
var windowTop = $(window).scrollTop();
readmoreBlock.css("top", (bH - heigthReadmore + windowTop) + "px").css('width', 'unset').css('height', 'unset').css('overflow', 'none').css('position', 'absolute');
}
}
}
function get_mes_clients() {
//console.log($('#session_user_id').val());
$.get("/ajax/getEventsClient.php?user_id=" + $('#session_user_id').val(), function(data) {
//console.log('Полученные события:', data);
data = JSON.parse(data);
var mainTotal = 0;
if(data.total !== undefined){
mainTotal = data.total;
} else {
mainTotal = data;
}
//console.log(mainTotal);
if (mainTotal != 0) {
const total = data.total;
let othersData = data.others || [];
const extension_reservations = data.extension_reservations || [];
const confirm_and_unconfirm_extension_reservations = data.confirm_and_unconfirm_extension_reservations || [];
// Получаем все существующие уведомления на странице
const existingNotifications = $('.confirm_mess .client-confirm[id^="client-confirm_message_other_"]');
// Собираем ID из DOM
const existingIds = Array.from(existingNotifications).map(el => el.id.replace('client-confirm_message_other_', ''));
// Собираем ID из новых данных
const newIds = othersData.map(item => item.id.toString());
// Находим ID, которых больше нет в новых данных
const removedIds = existingIds.filter(id => !newIds.includes(id));
// Удаляем устаревшие уведомления
removedIds.forEach(id => {
$('#client-confirm_message_other_' + id).remove();
});
if (localStorage['collapse_push'] > 0) {
$('.confirm_mess').html('<div id="total_confirm" class="client-confirm">' + total + '</div>');
} else {
$('.confirm_mess').html(""); // очистка, чтобы не дублировать
for (var i = 0; i < othersData.length; i++) {
if ($('.confirm_mess #client-confirm_message_other_' + othersData[i].id).length == 0) {
var text = othersData[i].post + ' ' + othersData[i].fio + ' передал вам клиента' + othersData[i].objects;
if (othersData[i].req_id > 0) {
text = othersData[i].post + ' ' + othersData[i].fio + ' передал вам заявку' + othersData[i].objects;
}
if (othersData[i].tr == 1) {
text = othersData[i].post + ' ' + othersData[i].fio + ' приглашает вас<br>к совместной работе' + othersData[i].objects;
}
var part_text = 'Взять клиента ' + othersData[i].fio_client + ' в работу?';
if (othersData[i].req_id > 0) {
part_text = 'Взять заявку ' + othersData[i].fio_client + ' в работу?';
}
var html = '<div class="client-confirm" id="client-confirm_message_other_' + othersData[i].id + '" style="margin: 0;">' +
'<div class="client-confirm__inner">' +
'<h3>' + text + '.</h3>' +
'<h3>' + part_text + '</h3>' +
'<div class="client-confirm__buttons">';
if (othersData[i].tr == 1 || $('#session_agency_id').val() == 11417) {
html += '<a class="unconfirmClient small-button" data-event="' + othersData[i].id + '" data-req="' + othersData[i].req_id + '" data-id="' + othersData[i].client_id + '" data-tr="' + othersData[i].tr + '" data-manager="' + othersData[i].in + '" href="javascript:{};">Нет</a>';
}
html += '<a class="confirmClient small-green-button" data-event="' + othersData[i].id + '" data-req="' + othersData[i].req_id + '" data-id="' + othersData[i].client_id + '" data-tr="' + othersData[i].tr + '" data-manager="' + othersData[i].from + '" href="javascript:{};">Да</a>' +
'</div>' +
'</div>' +
'<div class="client-confirm__preloader" id="client-confirm__preloader__' + othersData[i].client_id + '" style="display: none;">' +
'<img src="/images/ajax_preloader.gif">' +
'</div>' +
'</div>';
$('.confirm_mess').prepend(html);
}
}
if (extension_reservations.length)
{
extension_reservations.forEach((val, _) => {
if (!$('.confirm_mess #client-confirm_message_extension_reservation_' + val.id).length)
{
var html = `<div class="client-confirm client-message-extension-reservation" id="client-confirm_message_extension_reservation_${val.id}" style="max-width: 540px; margin: 0;">
<div class="client-confirm__inner">
<h3>${val.dop_text}</h3>
<div class="client-confirm__buttons" style="display: flex; justify-content: space-between;">
<div style="display: flex; gap: 10px; margin-right: 50px;">
<a class="confirm_extension_reservation small-green-button" id="confirm-extension_reservation-${val.id}" data-event="${val.id}" data-employees_no_required="${val.er_confirmation}" data-specify_comment="${val.specify_comment_confirm}" href="javascript:{};">Да</a>
<a class="unconfirm_extension_reservation small-button" id="unconfirm-extension_reservation-${val.id}" data-event="${val.id}" data-employees_no_required="${val.er_unconfirmation}" data-specify_comment="${val.specify_comment_unconfirm}" href="javascript:{};">Нет</a>
</div>
<a
style="border-radius: 6px; border-color: rgb(198, 132, 132); border-width: 1px; background-color: rgb(255 255 255 / 1); padding-left: 16px; padding-right: 16px; padding-top: 7px; padding-bottom: 7px; color: rgb(236 46 46 / 1);"
class="view_history_tasks" data-event="${val.id}" onclick="openClientEventsWindowNew(${val.client_id}, ${val.from}, 0, ${val.req_id}, false)" href="javascript:{};">Перейти в карточку заявки</a>
</div>
</div>
<div class="client-confirm__preloader" id="client-confirm__preloader__${val.client_id}" style="display: none;">
<img src="/images/ajax_preloader.gif">
</div>
</div>`;
$('.confirm_mess').prepend(html);
}
})
}
if (confirm_and_unconfirm_extension_reservations.length)
{
confirm_and_unconfirm_extension_reservations.forEach((val, _) => {
if (!$('.confirm_mess #client-confirm_and_unconfirm_extension_reservations_' + val.id).length)
{
var html = `<div class="client-confirm client-message-extension-reservation" id="client-confirm_and_unconfirm_extension_reservations_${val.id}" style="max-width: 540px; margin: 0;">
<div class="client-confirm__inner">
<h3>${val.dop_text}</h3>
<div class="client-confirm__buttons" style="display: flex; justify-content: space-between;">
<div style="display: flex; gap: 10px; margin-right: 50px;">
<a class="employee_confirming_extension_reservation small-green-button" id="employee-confirming-extension-reservation-${val.id}" data-event="${val.id}" href="javascript:{};">Принять</a>
<a class="employee_unconfirming_extension_reservation small-button" id="employee-confirming-extension-reservation-${val.id}" data-event="${val.id}" href="javascript:{};">Отказать</a>
</div>
<a
style="border-radius: 6px; border-color: rgb(198, 132, 132); border-width: 1px; background-color: rgb(255 255 255 / 1); padding-left: 16px; padding-right: 16px; padding-top: 7px; padding-bottom: 7px; color: rgb(236 46 46 / 1);"
class="view_history_tasks" data-event="${val.id}" onclick="openClientEventsWindowNew(${val.client_id}, ${val.from}, 0, ${val.req_id}, false)" href="javascript:{};">Перейти в карточку заявки</a>
</div>
</div>
<div class="client-confirm__preloader" id="client-confirm__preloader__${val.client_id}" style="display: none;">
<img src="/images/ajax_preloader.gif">
</div>
</div>`;
$('.confirm_mess').prepend(html);
}
})
}
if (total > 0 && $("#confirm_button_group").length == 0) {
var html = '';
html += '<div id="confirm_button_group" style="margin-top:0px; margin-bottom: 50px" class="client-confirm">';
html += '<div class="client-confirm__buttons">';
html += '<a class="confirmClient small-green-button" style="background: #EBBF5E; border: 1px solid #EBBF5E;" href="javascript:{};">Свернуть всё</a>';
html += '<a style="margin-left: 10px;" class="acceptAllClient small-green-button" href="javascript:{};">Принять всё</a>';
html += '</div></div>';
$('.confirm_mess').append(html);
}
}
} else {
let objects = $('.confirm_mess .object-confirm').length;
//console.log(objects);
if (objects == 0) {
$('.confirm_mess').html('');
}
}
checkTop();
});
}
function get_mes_objects() {
$.get("/ajax/getSendedObjects.php?user_id=" + $('#session_user_id').val(), function(data) {
// console.log(data);
$('.confirm_mess').css({
'max-width': '400px',
'width': '100%',
});
if (data != 0) {
var res = JSON.parse(data);
var total = res.length;
if (localStorage['collapse_push'] > 0) {
$('.confirm_mess').html('<div id="total_confirm" class="object-confirm">' + total + '</div>');
} else {
var res = JSON.parse(data);
for (var i = 0; i < res.length; i++) {
if ($('.confirm_mess #object-confirm_message' + res[i].id).length == 0) {
var html = '<div class="object-confirm" id="object-confirm_message' + res[i].id + '">' +
'<div class="object-confirm__inner">' +
'<h3>' + res[i].first_line + '</h3>' +
'<h3>' + res[i].sec_line + '</h3>' +
'<div class="object-confirm__buttons" id="object-confirm__buttons__' + res[i].id + '">' +
'<a class="unconfirmObject small-button" data-record-id="' + res[i].id + '" href="javascript:{};">Нет</a>' +
'<a class="confirmObject small-green-button" data-record-id="' + res[i].id + '" href="javascript:{};">Да</a>' +
'</div>' +
'</div>' +
'<div class="object-confirm__preloader" id="object-confirm__preloader__' + res[i].id + '" style="display: none;">' +
'<img src="/images/ajax_preloader.gif">' +
'</div>' +
'</div>';
$('.confirm_mess').prepend(html);
}
}
if (total > 0 && $("#confirm_button_group").length == 0) {
var html = '';
html += '<div id="confirm_button_group" style="margin-top:0px; margin-bottom: 50px" class="client-confirm">';
html += '<div class="client-confirm__buttons">';
html += '<a class="confirmClient small-green-button" style="background: #EBBF5E; border: 1px solid #EBBF5E;" href="javascript:{};">Свернуть всё</a>';
html += '<a style="margin-left: 10px;" class="acceptAllObjects small-green-button" href="javascript:{};">Принять всё</a>';
html += '</div></div>';
$('.confirm_mess').append(html);
}
}
} else {
let clients = $('.confirm_mess .client-confirm').length;
if (clients == 0) {
$('.confirm_mess').html('');
}
}
checkTop();
});
}
function get_objects_list(page, sort, param = {}) {
$('#objects').hide();
$('.object-content__preloader').show();
var page_script = window.location.pathname;
var is_custom = 0;
if(page_script == '/my-objects2.php'){
is_custom = 1
}
param.is_custom = is_custom;
if (page)
param.page = page;
if ($('.jw__page__tabs .tab.selected').length > 0) {
param.selected = $('.jw__page__tabs .tab.selected').attr('data-id');
} else {
param.selected = 'active';
}
var states = [];
if ($('#filter-ads-status-objects').val() !== null && $('#filter-ads-status-objects').val() != '') {
states = $('#filter-ads-status-objects').val();
}
$('.filter-popup-type').each(function() {
if ($(this).hasClass('active')) {
param[$(this).attr('data-id')] = 1;
}
});
if (param.rent && $('#objects').length) {
param.sale = 0;
window.history.pushState(null, null, "my-objects.php");
}
if (param.id_agent) {
param.sale = 0;
param.rent = 0;
}
if ($('.view-changer .view-adv-table.active').length > 0)
param.view = 'table';
else
param.view = 'list';
if(param.view == 'table'){
if(param.selected == 'active'){
$('.showAdvertMyObject').show();
} else {
$('.showAdvertMyObject').hide();
}
} else {
$('.showAdvertMyObject').hide();
}
if ($('#filter-object-employee').val() !== null && $('#filter-object-employee').val() != '')
param.filter_employee = JSON.stringify($('#filter-object-employee').val());
if ($('#filter-object-type').val() !== null && $('#filter-object-type').val() != '')
param.filter_type = JSON.stringify($('#filter-object-type').val());
if ($('#filter-object-activities').val() !== null && $('#filter-object-activities').val() != '')
param.filter_activities = JSON.stringify($('#filter-object-activities').val());
param.dealTypes = '';
if (param.sale && param.sale == 1) {
if ($('#filter-object-deal-type').val() !== null && $('#filter-object-deal-type').val() != '') {
param.dealTypes = JSON.stringify($('#filter-object-deal-type').val());
}
}
if ($('#objects_filter_cena_ot').val() != '')
param.object_cena_ot = $('#objects_filter_cena_ot').val();
if ($('#objects_filter_cena_do').val() != '')
param.object_cena_do = $('#objects_filter_cena_do').val();
if ($('#objects_filter_commission').val() != '')
param.object_commission = $('#objects_filter_commission').val();
if ($('#objects_filter_commission_to').val() != '')
param.object_commission_to = $('#objects_filter_commission_to').val();
if ($(".filter-obj-komnat").css('display') == 'block' && $('#objects_filter_komnat_from').val() != '')
param.object_komnat_from = $('#objects_filter_komnat_from').val();
if ($(".filter-obj-komnat").css('display') == 'block' && $('#objects_filter_komnat_to').val() != '')
param.object_komnat_to = $('#objects_filter_komnat_to').val();
if ($('#search_filter_input').val() != '')
param.search = $('#search_filter_input').val();
if (typeof param.id_agent !== "undefined")
param.id_agent = $('#session_user_id').val();
if (param.selected == 'potential' || param.selected == 'favor') {
$('.search-toolbar .selectedToOtherUser').hide();
$('.search-toolbar .showAddObjectsToArchiveWin').hide();
} else {
$('.search-toolbar .selectedToOtherUser').show();
if (param.selected == 'archive') {
$('.search-toolbar .showDeleteMyObjectsWindow').show();
$('.search-toolbar .selectedFromArchive').show();
$('.search-toolbar .showAddObjectsToArchiveWin').hide();
} else {
$('.search-toolbar .showDeleteMyObjectsWindow').hide();
$('.search-toolbar .selectedFromArchive').hide();
$('.search-toolbar .showAddObjectsToArchiveWin').show();
}
}
param.not_advert = states.includes('1') ? 1 : 0;
param.ads_errors = states.includes('3') ? 1 : 0;
param.ads_sended = states.includes('2') ? 1 : 0;
param.ads_good_adv = states.includes('4') ? 1 : 0;
param.removed_publication = states.includes('5') ? 1 : 0;
param.object_fields = $('#filter-object-fields').attr('data-active');
param.is_reports = $('#filter_is_reports').attr('data-active');
param.is_free = $('#filter_is_free').attr('data-active');
param.filter_is_package = $('#filter_is_package').attr('data-active');
param.addToAvitoFilter = 0;
param.addToCianFilter = 0;
param.addToDomClickFilter = 0;
param.addToEMLSFilter = 0;
param.addToYandexFilter = 0;
if ($('#filter_is_promotion').attr('data-active') > 0) {
let form = $('#searchPromotionForm');
param.avito_highlight = (form.find('[name="avito_highlight"]').prop('checked')) ? 1 : 0;
param.avito_xl = (form.find('[name="avito_xl"]').prop('checked')) ? 1 : 0;
param.avito_x2_1 = (form.find('[name="avito_x2_1"]').prop('checked')) ? 1 : 0;
param.avito_x2_7 = (form.find('[name="avito_x2_7"]').prop('checked')) ? 1 : 0;
param.avito_x5_1 = (form.find('[name="avito_x5_1"]').prop('checked')) ? 1 : 0;
param.avito_x5_7 = (form.find('[name="avito_x5_7"]').prop('checked')) ? 1 : 0;
param.avito_x10_1 = (form.find('[name="avito_x10_1"]').prop('checked')) ? 1 : 0;
param.avito_x10_7 = (form.find('[name="avito_x10_7"]').prop('checked')) ? 1 : 0;
param.cian_highlight = (form.find('[name="cian_highlight"]').prop('checked')) ? 1 : 0;
param.cian_standard = (form.find('[name="cian_standard"]').prop('checked')) ? 1 : 0;
param.cian_paid = (form.find('[name="cian_paid"]').prop('checked')) ? 1 : 0;
param.cian_premium = (form.find('[name="cian_premium"]').prop('checked')) ? 1 : 0;
param.cian_top3 = (form.find('[name="cian_top3"]').prop('checked')) ? 1 : 0;
param.cian_bet = form.find('[name="cian_bet"]').val();
param.cian_ignore_pkg = (form.find('[name="cian_ignore_pkg"]').prop('checked')) ? 1 : 0;
param.yandex_premium = (form.find('[name="yandex_premium"]').prop('checked')) ? 1 : 0;
param.yandex_raise = (form.find('[name="yandex_raise"]').prop('checked')) ? 1 : 0;
param.yandex_promotion = (form.find('[name="yandex_promotion"]').prop('checked')) ? 1 : 0;
param.domclick_express = (form.find('[name="domclick_express"]').prop('checked')) ? 1 : 0;
param.domclick_premium = (form.find('[name="domclick_premium"]').prop('checked')) ? 1 : 0;
param.domclick_top = (form.find('[name="domclick_top"]').prop('checked')) ? 1 : 0;
}
if ($('#addToAvitoFilter').hasClass('active')) {
param.addToAvitoFilter = 1;
}
if ($('#addToCianFilter').hasClass('active')) {
param.addToCianFilter = 1;
}
if ($('#addToDomClickFilter').hasClass('active')) {
param.addToDomClickFilter = 1;
}
if ($('#addToEMLSFilter').hasClass('active')) {
param.addToEMLSFilter = 1;
}
if ($('#addToYandexFilter').hasClass('active')) {
param.addToYandexFilter = 1;
}
param.filter_ads_state_objects = JSON.stringify(states)
if (typeof client_fields_filtr != "undefined") {
param.is_contract = client_fields_filtr.filtr.is_contract;
param.type_contract = client_fields_filtr.filtr.type_contract;
param.numder_contract = client_fields_filtr.filtr.numder_contract;
param.onDateContract = $('#contractClientOnDate').val();
param.offDateContract = $('#contractClientOffDate').val();
}
let query = parseQueryString(window.location.search);
if (typeof query === "object") {
var param_temp = query;
for (var i in param_temp) {
param[i] = param_temp[i];
}
}
if (localStorage['edit_object_prev_url'] && localStorage['edit_object_prev_url'] != 0) {
param = localStorage['param_get_object'];
} else {
localStorage['param_get_object'] = param;
}
if (sort) {
param.sort_order = sort;
} else {
if (sort === 0) {
param.sort_order = sort;
}
}
console.log(param);
$.post('/ajax/getObjectsView.php', param, function(data) {
$('#objects').html(data);
$('#objects .fotorama').fotorama();
$('#objects .fotorama').on('fotorama:ready', function(e, fotorama, extra) {
$('.object-content__preloader').hide();
});
if (typeof param.selected !== "undefined") {
$('.jw__page__tabs .tab').removeClass('selected');
$('.jw__page__tabs .tab[data-id="' + param.selected + '"]').addClass('selected');
}
$('.view-changer .view-adv-list, .view-changer .view-adv-table').removeClass('active');
if (param.view == 'list') {
$('.view-changer .view-adv-list').addClass('active');
} else if (param.view == 'table') {
$('.view-changer .view-adv-table').addClass('active');
}
$('.object-content__preloader').hide();
$('#objects').show();
get_bar_obj();
getReSearchObjectsCounts();
getClientsForObjects();
getTaskCountersForObjects();
});
}
function getClientsForObjects() {
const objectIds = [];
const elementsMap = {};
$('.object_clients').each(function() {
const objectId = $(this).data("oid");
if (objectId) {
objectIds.push(objectId);
elementsMap[objectId] = $(this);
}
});
if (objectIds.length === 0) return;
$.ajax({
url: "/ajax/getObjectClients.php",
method: "GET",
data: {
object_ids: objectIds.join(',')
},
dataType: 'json',
success: function(response) {
console.log(response);
if (response.success) {
// Обрабатываем данные для каждого объекта
response.data.forEach(objectData => {
const element = elementsMap[objectData.object_id];
if (element) {
element.html(renderClients(objectData));
}
});
}
getNoClientsForObjects(response.hidden_objects || []);
},
error: function(xhr, status, error) {
console.error("Error fetching clients data:", error);
getNoClientsForObjects([]);
}
});
}
function getNoClientsForObjects(hiddenObjects = []){
const hiddenObjectsSet = new Set(hiddenObjects.map(id => parseInt(id)));
const isSalePage = window.location.pathname.indexOf('/sale.php') !== -1;
$('.object_clients').each(function() {
const objectId = $(this).data("oid");
const allowEdit = $(this).attr("data-allow-edit");
if (objectId) {
const shouldHideButton = hiddenObjectsSet.has(objectId);
if($(this).find('.obj_client').length == 0 && allowEdit > 0 && !shouldHideButton && !isSalePage) {
let html = '';
html += `<div class="obj_client">`;
html += `
<b class="big">
<a
class="openClientReqBind" href="javascript:{}"><i class="ti-plus"></i>
<span>Добавить собственника</span>
</a>
</b>`;
html += `</div>`;
$(this).html(html);
} else if (shouldHideButton && $(this).find('.obj_client').length == 0) {
$(this).html('');
}
}
});
}
/**
* Возвращает tooltip-строку с контактами клиента в формате "телефон, email".
* Пустые/null значения пропускаются, запятая ставится только между РЕАЛЬНО заполненными полями.
* client = {phone: "+79...", email: "i@x.ru"} → "+79..., i@x.ru"
* client = {phone: "+79...", email: null} → "+79..."
* client = {phone: "+79...", email: "null"} → "+79..." (строка "null" из JSON тоже отсекается)
* client = {phone: null, email: "i@x.ru"} → "i@x.ru"
* client = {phone: null, email: null} → ""
*/
function buildClientContactsTooltip(client) {
const parts = [];
if (client.phone) parts.push(client.phone);
if (client.email && client.email !== 'null') parts.push(client.email);
return parts.join(', ');
}
function renderClients(data) {
let html = '';
const firstClient = data.clients[0];
html += `<div class="obj_client${!(data.clients_count > 1) ? ' no-more' : ''}">`;
if (firstClient.can_edit) {
html += `
<a href="javascript:void(0)" onclick="openClientEventsWindowNew(${firstClient.id}, $('#session_to_send').val(), 0);"
style="border-bottom: none; font-size: 18px; margin-right: 3px;">
<i title="История и Задачи (клиент)" class="fa fa-chalkboard-teacher"></i>
</a>
<b class="big">
<a title="${buildClientContactsTooltip(firstClient)}"
data-id="${firstClient.id}" class="neweditClient" href="javascript:void(0)">
${firstClient.fio}
</a>
</b>`;
} else {
html += `
<a href="javascript:void(0)" onclick="openClientEventsWindowNew(${firstClient.id}, $('#session_to_send').val(), 0);"
style="border-bottom: none; font-size: 18px; margin-right: 3px;">
<i title="История и Задачи (клиент)" class="fa fa-chalkboard-teacher"></i>
</a>
<b class="big">
<p style="display: inline-block; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; overflow: hidden; line-height: inherit; vertical-align: bottom;" title="${buildClientContactsTooltip(firstClient)}">
${firstClient.fio}
</p>
</b>`;
}
if (data.clients_count > 1) {
html += `
<br/>
<a href="javascript:void(0);" class="jw__clients_popup" data-id="${data.object_id}">
показать ещё ${data.clients_count - 1}+…
</a>
<div id="popup_clients__${data.object_id}" class="object-content__clients source-how">
<div class="jw__popup source-how__popup clients__popup">
<ul class="obj_client_list">`;
for (let i = 1; i < data.clients.length; i++) {
const client = data.clients[i];
html += `<li>`;
if (client.can_edit) {
html += `
<b class="big">
<a title="${buildClientContactsTooltip(client)}"
data-id="${client.id}" class="neweditClient" href="javascript:void(0)">
${client.fio}
</a>
</b>`;
if (client.phone) {
html += ` (<a href="tel:${client.phone}">${client.phone}</a>)`;
}
} else {
html += `
<b class="big">
<p title="${buildClientContactsTooltip(client)}">
<i title="История и Задачи (клиент)" class="fa fa-chalkboard-teacher"></i>
${client.fio}
</p>
</b>`;
}
html += `</li>`;
}
html += `
</ul>
</div>
</div>`;
}
html += `</div>`;
return html;
}
function getTaskCountersForObjects(container = '.jw__objects', item = '.jw__object') {
const ids = []
$(`${container} ${item}`).each(function() {
ids.push($(this).attr("id").replace("item", ""))
})
$.ajax({
url: `/ajax/getLogSummaryForEvents.php?object_ids=${JSON.stringify(ids)}`,
success: function(result) {
if (!result) return;
JSON.parse(result).map((el) => {
if (el.schedule_group === "1") {
el.color = 'dd6360';
} else if (el.schedule_group === "2") {
el.color = 'efcd81';
} else {
el.color = '4CAF50';
}
$(`${item}#item${el.object_id}`).find('.jw__action-button .tasks').append(
$(`<span class="counter" style="background: #${el.color}">${el.total}</span>`)
)
})
},
})
}
function get_funnels(funnel_id, section, use_custom) {
let filter = $('#crm_filter_left');
// Получаем состояния фильтров
const filter_stage_work = filter.find('#filter_stage_work').hasClass('active') ? 1 : 0;
const filter_stage_close = filter.find('#filter_stage_close').hasClass('active') ? 1 : 0;
const filter_stage_hit = filter.find('#filter_stage_hit').hasClass('active') ? 1 : 0;
const filter_stage_send = filter.find('#filter_stage_send').hasClass('active') ? 1 : 0;
const filter_stage_hot = filter.find('#filter_stage_hot').hasClass('active') ? 1 : 0;
const filter_confirm = filter.find('#filter_confirm').hasClass('active') ? 1 : 0;
// Проверяем, все ли фильтры равны 0
const allFiltersOff = (
filter_stage_work === 0 &&
filter_stage_close === 0 &&
filter_stage_hit === 0 &&
filter_stage_send === 0 &&
filter_stage_hot === 0 &&
filter_confirm === 0
);
return $.post('/ajax/getFunnels.php', {
funnel_id: funnel_id,
section: section,
use_custom: use_custom,
filter_stage_work: filter_stage_work,
filter_stage_close: filter_stage_close,
filter_stage_hit: filter_stage_hit,
filter_stage_send: filter_stage_send,
filter_stage_hot: filter_stage_hot,
filter_confirm: filter_confirm,
filter_emp: allFiltersOff ? 1 : 0, // добавляем filter_emp
}, function(data) {
$('#app_clients .funnels_client .funnels_list').replaceWith($(data));
}).promise();
}
function goToClientsPage(event, input) {
if (event.keyCode === 13) {
var pageNum = $(input).val();
if (pageNum) {
get_list(pageNum);
}
}
}
function applyChangesForFilter() {
get_list();
$('.crm__filter-popup').removeClass("is__show");
}
function get_params(){
var app_clients_li = $('#funnelIdClients').val();
var param = {};
param.get_list_count = 1;
param.all = 'all';
if ($('#order').prop("checked")) {
param.order = 1;
}
if ($('#todayTasks').prop("checked")) {
param.todayTasks = 1;
}
if ($('#overTasks').prop("checked")) {
param.overTasks = 1;
}
if ($('#isPartner').prop("checked")) {
param.isPartner = 1;
}
if ($('#noTasks').prop("checked")) {
param.noTasks = 1;
}
if ($('.filter-priority1').hasClass('active')) {
param.priority1 = 1;
}
if ($('.filter-priority2').hasClass('active')) {
param.priority2 = 1;
}
if ($('.filter-priority3').hasClass('active')) {
param.priority3 = 1;
}
if ($('.filter-priority4').hasClass('active')) {
param.priority4 = 1;
}
if (app_clients_li != '') {
param.funnel = app_clients_li;
}
if ($('#of_objects').val()) {
param.of_objects = $('#of_objects').val();
}
param.date_tasks = $('#date_tasks [name=date_tasks]:checked').val();
if (typeof client_fields_filtr != "undefined") {
param.fields = client_fields_filtr.filtr.fields;
param.is_contract = client_fields_filtr.filtr.is_contract;
param.type_contract = client_fields_filtr.filtr.type_contract;
param.numder_contract = client_fields_filtr.filtr.numder_contract;
param.onDateContract = $('#contractClientOnDate').val();
param.offDateContract = $('#contractClientOffDate').val();
}
var queryParams = parseQueryString(window.location.search);
if (queryParams) {
if (queryParams.emp !== undefined) {
param.emp = queryParams.emp;
}
if (queryParams.filter_stage !== undefined) {
param.filter_stage = queryParams.filter_stage;
}
if (queryParams.denial !== undefined) {
param.denial = queryParams.denial;
}
if (queryParams.objects !== undefined) {
param.objects = queryParams.objects;
}
if (queryParams.step !== undefined) {
param.step = queryParams.step;
}
if (queryParams.source !== undefined) {
param.source = queryParams.source;
}
if (queryParams.transmitted !== undefined) {
param.transmitted = queryParams.transmitted;
}
if (queryParams.accepted !== undefined) {
param.accepted = queryParams.accepted;
}
if (queryParams.expired_stages !== undefined) {
param.expired_stages = queryParams.expired_stages;
}
}
//console.log(queryParams);
if ($('#search_filter_input').val() != '') param.search = $('#search_filter_input').val();
var period = $('.ms-crm-client-period').val();
if (period && period != '') {
param.period = period;
}
if (period == 'period') {
param.onDate = $('#onDate').val();
param.offDate = $('#offDate').val();
}
$('.filter-popup-type').each(function() {
if ($(this).hasClass('active')) {
param[$(this).attr('id')] = 1;
}
});
if ($('#filter_emp').val() !== null && $('#filter_emp').val() != '') {
param.filter_emp = JSON.stringify($('#filter_emp').val());
}
if ($('#filter-client-type').val() !== null && $('#filter-client-type').val() != '') {
param.filter_client_type = JSON.stringify($('#filter-client-type').val());
}
if ($('#filter-client-objects-type').val() !== null && $('#filter-client-objects-type').val() != '') {
param.filter_client_objects_type = JSON.stringify($('#filter-client-objects-type').val());
}
if ($('#filter_source').val() !== null && $('#filter_source').val() != '') {
param.filter_source = JSON.stringify($('#filter_source').val());
}
if ($('#filter_partner').val() !== null && $('#filter_partner').val() != '') {
param.filter_partner = JSON.stringify($('#filter_partner').val());
}
if ($('#filter_activities').val() !== null && $('#filter_activities').val() != '') {
param.filter_activities = JSON.stringify($('#filter_activities').val());
}
if ($('#filter_client_rol').val() !== null && $('#ffilter_client_rol').val() != '') {
param.filter_client_rol = JSON.stringify($('#filter_client_rol').val());
}
if ($('#filter_etap').val() !== null && $('#filter_etap').val() != '') {
param.filter_etap = JSON.stringify($('#filter_etap').val());
}
if ($('#filter_denial_work').val() !== null && $('#filter_denial_work').val() != '') {
param.filter_denial_work = JSON.stringify($('#filter_denial_work').val());
}
var page = 1;
if (page) {
param.page = page;
}
// sort_order = 0;
param.sort_order = 0;
//}
//$('#sortOrder select[name="sort_order"]').prop('selectedIndex', sort_order);
if ($('.view-kanban.active').length > 0) {
ac.kanban = true;
param.kanban = 1;
param.kanban_page = page_kanban;
$('#groupClients').hide();
}
if ($('.view-list.active').length > 0) {
param.list_view = 1;
$('#groupClients').show();
}
if ($('.view-table.active').length > 0) {
param.table_view = 1;
$('#groupClients').hide();
}
return param;
}
function get_count_clients(){
let param = get_params();
$.post('/ajax/getClientsView.php', param, function(data) {
if(data){
let count = $('.kanban__rails[data-count]').data('count') || $('.clients[data-count]').data('count') || $('.crm__table[data-count]').data('count');
let res_count = JSON.parse(data);
Object.entries(res_count).forEach(([key, value]) => {
let index = key;
//$('.kanban__head').eq(index).find('.task-count').text(value);
let countTd = parseInt(value);
let rawPercent = (countTd / count) * 100 || 0;
const percent = Number.isInteger(rawPercent) ? rawPercent.toString() : rawPercent.toFixed(2) || 0;
const color = $('.stage-step-'+index).find('.task-count-percent').css('color') || '#43A047';
let htmlTd = `
<div class="circle-progress" style="background: conic-gradient(${color} 0% ${percent}%, #dfdfdf ${percent}% 100%);
-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), black calc(100% - 3px));
mask: radial-gradient(farthest-side, transparent calc(100% - 3px), black calc(100% - 3px));">
</div>
<div style="color: ${color};"class="task-count-percent">${percent}%</div>
<div style="background-color: ${color};" class="task-count">${countTd}</div>
`;
$('.stage-step-'+index).find('.task-count-holder').html(htmlTd);
});
}
});
}
function get_list(page, sort_order, preloader) {
if (typeof preloader == "undefined")
preloader = true;
let funnel_id = $('#funnelIdClients').val();
let use_custom_funnel = $('#useCustomFunnel').val();
get_funnels(funnel_id, 'clients', use_custom_funnel);
$('#changeClientAllDiv').removeClass('active');
$('.changeClientInput').prop('checked', false);
if (preloader && !$('.view-changer .view-kanban.active').length) {
$('.object-content__preloader').show();
$('#clients_list').hide();
}
var app_clients_li = $('#funnelIdClients').val();
var param = {};
param.get_list = 'all';
param.all = 'all';
if ($('#order').prop("checked")) {
param.order = 1;
}
if ($('#todayTasks').prop("checked")) {
param.todayTasks = 1;
}
if ($('#overTasks').prop("checked")) {
param.overTasks = 1;
}
if ($('#isPartner').prop("checked")) {
param.isPartner = 1;
}
if ($('#noTasks').prop("checked")) {
param.noTasks = 1;
}
if ($('.filter-priority1').hasClass('active')) {
param.priority1 = 1;
}
if ($('.filter-priority2').hasClass('active')) {
param.priority2 = 1;
}
if ($('.filter-priority3').hasClass('active')) {
param.priority3 = 1;
}
if ($('.filter-priority4').hasClass('active')) {
param.priority4 = 1;
}
if (app_clients_li != '') {
param.funnel = app_clients_li;
}
if ($('#of_objects').val()) {
param.of_objects = $('#of_objects').val();
}
param.date_tasks = $('#date_tasks [name=date_tasks]:checked').val();
if (typeof client_fields_filtr != "undefined") {
param.fields = client_fields_filtr.filtr.fields;
param.is_contract = client_fields_filtr.filtr.is_contract;
param.type_contract = client_fields_filtr.filtr.type_contract;
param.numder_contract = client_fields_filtr.filtr.numder_contract;
param.onDateContract = $('#contractClientOnDate').val();
param.offDateContract = $('#contractClientOffDate').val();
}
var queryParams = parseQueryString(window.location.search);
if (queryParams) {
if (queryParams.emp !== undefined) {
param.emp = queryParams.emp;
}
if (queryParams.filter_stage !== undefined) {
param.filter_stage = queryParams.filter_stage;
}
if (queryParams.denial !== undefined) {
param.denial = queryParams.denial;
}
if (queryParams.objects !== undefined) {
param.objects = queryParams.objects;
}
if (queryParams.step !== undefined) {
param.step = queryParams.step;
}
if (queryParams.source !== undefined) {
param.source = queryParams.source;
}
if (queryParams.transmitted !== undefined) {
param.transmitted = queryParams.transmitted;
}
if (queryParams.accepted !== undefined) {
param.accepted = queryParams.accepted;
}
if (queryParams.expired_stages !== undefined) {
param.expired_stages = queryParams.expired_stages;
}
}
//console.log(queryParams);
if ($('#search_filter_input').val() != '') param.search = $('#search_filter_input').val();
var period = $('.ms-crm-client-period').val();
if (period && period != '') {
param.period = period;
}
if (period == 'period') {
param.onDate = $('#onDate').val();
param.offDate = $('#offDate').val();
}
$('.filter-popup-type').each(function() {
if ($(this).hasClass('active')) {
param[$(this).attr('id')] = 1;
}
});
if ($('#filter_emp').val() !== null && $('#filter_emp').val() != '') {
param.filter_emp = JSON.stringify($('#filter_emp').val());
}
if ($('#filter-client-type').val() !== null && $('#filter-client-type').val() != '') {
param.filter_client_type = JSON.stringify($('#filter-client-type').val());
}
if ($('#filter-client-objects-type').val() !== null && $('#filter-client-objects-type').val() != '') {
param.filter_client_objects_type = JSON.stringify($('#filter-client-objects-type').val());
}
if ($('#filter_source').val() !== null && $('#filter_source').val() != '') {
param.filter_source = JSON.stringify($('#filter_source').val());
}
if ($('#filter_partner').val() !== null && $('#filter_partner').val() != '') {
param.filter_partner = JSON.stringify($('#filter_partner').val());
}
if ($('#filter_activities').val() !== null && $('#filter_activities').val() != '') {
param.filter_activities = JSON.stringify($('#filter_activities').val());
}
if ($('#filter_client_rol').val() !== null && $('#ffilter_client_rol').val() != '') {
param.filter_client_rol = JSON.stringify($('#filter_client_rol').val());
}
if ($('#filter_etap').val() !== null && $('#filter_etap').val() != '') {
param.filter_etap = JSON.stringify($('#filter_etap').val());
}
if ($('#filter_denial_work').val() !== null && $('#filter_denial_work').val() != '') {
param.filter_denial_work = JSON.stringify($('#filter_denial_work').val());
}
//var page = -1;
if (page) {
param.page = page;
page_kanban = page;
}
if (sort_order) {
param.sort_order = sort_order;
} else {
sort_order = 0;
param.sort_order = sort_order;
}
//$('#sortOrder select[name="sort_order"]').prop('selectedIndex', sort_order);
if ($('.view-kanban.active').length > 0) {
ac.kanban = true;
param.kanban = 1;
param.kanban_page = page_kanban;
$('#groupClients').hide();
}
if ($('.view-list.active').length > 0) {
param.list_view = 1;
$('#groupClients').show();
}
if ($('.view-table.active').length > 0) {
param.table_view = 1;
$('#groupClients').hide();
}
$.post('/ajax/getClientsView.php', param, function(data) {
//console.log(data);
/* if (preloader)
$('.object-content__preloader').hide();*/
if ($('.view-kanban.active').length > 0 && page_kanban == 1) {
if($('#clients_list').length > 0){
$('#clients_list').html(data);
$(".kanban__sortable").sortable({
connectWith: ".connectedSortable",
helper: "clone",
placeholder: "is__highlight",
update: function(event, ui) {
var id = $('.funnels_client li.active').data("id");
var stage = $(ui.item).closest('.kanban__sortable').data("stage");
var idclient = $(ui.item).attr("id").replace("kanban_item_li_", "");
if (id === undefined || id === 0) {
//console.log($(event));
var turn = 0;
var turns = {};
$(ui.item).closest('.kanban__sortable').find('li').each(function(index) {
// console.log($(this).attr("id"));
if ($(this).attr("id") == "kanban_item_li_" + idclient) {
turn = (index + 1);
}
turns[$(this).attr("id").replace("kanban_item_li_", "")] = (index + 1);
});
if (stage === 8) {
if (!$("#del_client_bg").is(":visible")) {
$("#del_client_bg").fadeIn(500);
$("#del_client").toggle(10);
$("#del_client").find('input[name="id_funnel_client"]').val('0');
$("#del_client").find('input[name="id_del_client"]').val(idclient);
set_select_denial_work(0);
$("body").addClass("lock");
}
} else {
$.post('/ajax/addEditClient.php', {
stage_edit: stage,
id: idclient,
turn: JSON.stringify(turns)
},
function() {
delete param.get_list;
param.get_list_count = 1;
$.post('/ajax/getClientsView.php', param, function(data) {
if(data){
let count = $('.kanban__rails[data-count]').data('count') || $('.clients[data-count]').data('count') || $('.crm__table[data-count]').data('count');
let res_count = JSON.parse(data);
Object.entries(res_count).forEach(([key, value]) => {
let index = key - 1;
//$('.kanban__head').eq(index).find('.task-count').text(value);
let countTd = parseInt(value);
let rawPercent = (countTd / count) * 100 || 0;
const percent = Number.isInteger(rawPercent) ? rawPercent.toString() : rawPercent.toFixed(2) || 0;
const color = $('.kanban__head').eq(index).find('.task-count-percent').css('color') || '#43A047';
let htmlTd = `
<div class="circle-progress" style="background: conic-gradient(${color} 0% ${percent}%, #dfdfdf ${percent}% 100%);
-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), black calc(100% - 3px));
mask: radial-gradient(farthest-side, transparent calc(100% - 3px), black calc(100% - 3px));">
</div>
<div style="color: ${color};"class="task-count-percent">${percent}%</div>
<div style="background-color: ${color};" class="task-count">${countTd}</div>
`;
$('.kanban__head').eq(index).find('.task-count-holder').html(htmlTd);
});
}
});
});
}
} else {
$.post('/ajax/funnel_step_check_close.php', { 'step': stage, 'client': idclient }, function(checkRes) {
//console.log(checkRes);
var resParsed = JSON.parse(checkRes);
if (resParsed.result === '0') {
//showAfterStageFail();
ac.clientId = idclient;
ac.openPrevStep();
//return;
//$(".kanban__sortable").sortable("cancel");
} else {
if (app_clients_li != '' && app_clients_li == 0) {
} else {
$.post('/ajax/funnel_step_close.php', {
'step': resParsed.etap,
'client': idclient
}, function(res) {
ac.closesStep = true;
ac.kanban = true;
ac.step = JSON.parse(res);
ac.clientId = idclient;
ac.stepId = resParsed.etap;
ac.openStep();
});
}
}
});
}
}
});
$('#kanban___list').on('scroll', kanbanScrollHandler);
$(".kanban__sortable").disableSelection();
$(".kanban").overscroll({
direction: 'horizontal',
cancelOn: '.kanban__item',
// dragHold: true,
captureWheel: true,
showThumbs: false
});
}
} else {
if ($('.view-kanban.active').length > 0 && page_kanban > 1) {
var res = JSON.parse(data);
//console.log(res.source);
if (res.source == 'done') {
for (var classUl in res) {
for (var li in res[classUl]) {
$('.' + classUl + ' ul').append(res[classUl][li]);
}
}
add_knban = true;
$('head').append(res.scriptToExec);
}
} else {
$('#clients_list').html(data);
$('#clients_list .clients').show();
check_client_all_filter();
}
}
let count = $('.kanban__rails[data-count]').data('count') || $('.clients[data-count]').data('count') || $('.crm__table[data-count]').data('count');
document.querySelectorAll('td.task-count').forEach(td => {
const countTd = parseFloat(td.textContent) || 0;
const newTd = document.createElement('td');
newTd.className = 'task-count-holder';
let rawPercent = (countTd / count) * 100 || 0;
const percent = Number.isInteger(rawPercent) ? rawPercent.toString() : rawPercent.toFixed(2) || 0;
const color = window.getComputedStyle(td).backgroundColor || '#00aaff';
newTd.innerHTML = `
<div class="circle-progress" style="background: conic-gradient(${color} 0% ${percent}%, #dfdfdf ${percent}% 100%);
-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), black calc(100% - 3px));
mask: radial-gradient(farthest-side, transparent calc(100% - 3px), black calc(100% - 3px));">
</div>
<div style="color: ${color};"class="task-count-percent">${percent}%</div>
<div style="background-color: ${color};" class="task-count">${countTd}</div>
`;
td.replaceWith(newTd);
});
if (typeof count !== "undefined") {
$('#totalCount .text').text(count);
$('#totalCount').show();
} else {
$('#totalCount .text').text(0);
$('#totalCount').hide();
}
$('#clients_list').show();
});
}
function pagination(page) {
let sort_order = $('select[name=sort_order]').val();
get_list(page, sort_order);
}
var search_option = 0;
function show_options_search() {
var val = 0;
if ($('.ms-crm-client-period').val() != 'all') {
val++;
}
if ($('#order').prop("checked")) {
val++;
}
if ($('.filter-priority1').hasClass('active')) {
val++;
}
if ($('.filter-priority2').hasClass('active')) {
val++;
}
if ($('.filter-priority3').hasClass('active')) {
val++;
}
if ($('.filter-priority4').hasClass('active')) {
val++;
}
if ($('#noTasks').prop("checked")) {
val++;
}
$('.filter-popup-type').each(function() {
if ($(this).hasClass('active')) val++;
});
if ($('#filter_emp').val() && $('#filter_emp').val() != '') val++;
if ($('#filter-client-type').val() && $('#filter-client-type').val() != '') val++;
if ($('#filter-client-objects-type').val() && $('#filter-client-objects-type').val() != '') val++;
if ($('#filter_source').val() && $('#filter_source').val() != '') val++;
if ($('#filter_partner').val() && $('#filter_partner').val() != '') val++;
if ($('#filter_activities').val() && $('#filter_activities').val() != '') val++;
if ($('#filter_client_rol').val() && $('#filter_client_rol').val() != '') val++;
if ($('#filter_denial_work').val() && $('#filter_denial_work').val() != '') val++;
if ($('#filter_etap').val() && $('#filter_etap').val() != '') val++;
if ($('#of_objects').val() && $('#of_objects').val() != '') val++;
if (val > 0) {
$(".search-query-item.crm_clients").show();
var text = val + " опции";
if (val == 1) text = val + " опция";
if (val > 4) text = val + " опций";
$(".search-query-item.crm_clients span").text(text);
} else {
$(".search-query-item.crm_clients").hide();
}
}
function show_objects_options_search() {
let val = 0;
$('.filter-popup-type').each(function() {
if ($(this).hasClass('active')) val++;
});
if ($('#filter-object-employee').val() && $('#filter-object-employee').val() != '') val++;
if ($('#filter-object-type').val() && $('#filter-object-type').val() != '') val++;
if ($('#filter-object-activities').val() && $('#filter-object-activities').val() != '') val++;
if ($('#filter-object-deal-type').val() && $('#filter-object-deal-type').val() != '') val++;
if ($('#objects_filter_commission').val() && $('#objects_filter_commission').val() != '') val++;
if ($('#objects_filter_cena_ot').val() && $('#objects_filter_cena_ot').val() != '') val++;
if ($('#objects_filter_cena_do').val() && $('#objects_filter_cena_do').val() != '') val++;
if ($('#objects_filter_commission_to').val() && $('#objects_filter_commission_to').val() != '') val++;
if ($('#objects_filter_komnat_from').val() && $('#objects_filter_komnat_from').val() != '') val++;
if ($('#objects_filter_komnat_to').val() && $('#objects_filter_komnat_to').val() != '') val++;
if ($('#filter-not-advert[data-active="1"]').length) val++;
if ($('#filter-ads-errors[data-active="1"]').length) val++;
if ($('#filter-object-fields[data-active="1"]').length) val++;
if ($('#filter_is_reports[data-active="1"]').length) val++;
if ($('#filter_is_free[data-active="1"]').length) val++;
if ($('#filter_is_package[data-active="1"]').length) val++;
if ($('#filter_is_promotion[data-active="1"]').length) val++;
if ($('#addToAvitoFilter').hasClass('active')) {
val++;
}
if ($('#addToCianFilter').hasClass('active')) {
val++;
}
if ($('#addToDomClickFilter').hasClass('active')) {
val++;
}
if ($('#addToEMLSFilter').hasClass('active')) {
val++;
}
if ($('#addToYandexFilter').hasClass('active')) {
val++;
}
if (val >= 0) {
$(".search-query-item.crm_objects").show();
let text = val + " опции";
if (val == 1)
text = val + " опция";
if (val > 4)
text = val + " опций";
$(".search-query-item.crm_objects span").text(text);
}
}
function get_kanban_li(id, stage, priority) {
console.log(id);
console.log(stage);
if (typeof priority != 'undefined') {
document.getElementById('kanban_item_li_' + id).className = 'kanban__item p' + priority;
}
$.post("/ajax/getClientsView.php", { get_kanban_li: id }, function(data) {
//console.log(data);
$('#kanban_item_li_' + id).html(data);
var satage_parent = $('#kanban_item_li_' + id).closest('.connectedSortable').data("stage");
//console.log(satage_parent);
if (stage != satage_parent) {
var temp_html = $('#kanban_item_li_' + id).html();
var c = document.getElementById('kanban_item_li_' + id).classList.length > 1 ?
' ' + document.getElementById('kanban_item_li_' + id).classList[1] : '';
var p = priority ? ' p' + priority : c;
$('#kanban_item_li_' + id).remove();
$('.connectedSortable').each(function() {
if ($(this).data("stage") == stage) {
$(this).prepend('<li class="kanban__item' + p + '" id="kanban_item_li_' + id + '">' + temp_html + '</li>');
}
});
}
});
}
function salesPlanUser(id) {
//console.log(id);
$("#send_bg_plan").fadeIn(500);
$("#send_plan").show(10);
$("body").addClass("lock");
$('#send_bg_plan #user_sales_plan').val(id);
$('#send_bg_plan .monthPicker').datepicker().data('datepicker').selectDate(new Date());
getSalesPlan();
return false;
}
function getSalesPlan() {
var month = $("#month_sales_plan").val();
var year = $("#year_sales_plan").val();
var user_id = $('#send_bg_plan #user_sales_plan').val();
/*var html = '<div style="text-align:center" class="object-content__preloader">'+
'<img src="../images/ajax_preloader.gif">'+
'</div>';
$('#users_plans').html(html); */
$.post('/ajax/sales_plan.php', { get_users_plan: 'get_users_plan', month: month, year: year, user_id: user_id }, function(data) {
console.log(data);
if (data) {
var res = JSON.parse(data);
$('#send_plan input[name=plan]').val(res.summa);
$('#send_plan input[name=quantity]').val(res.quantity);
$('#send_plan .tabs__caption span').text(res.fio);
}
})
}
function openMes(id) {
$("#merepriation_bg").show();
$("#merepriation-history").show();
$("body").addClass("lock");
$.post('/ajax/getCharts.php', { event_id: id }, function(data) {
$('#merepriation-info-block').html(data);
});
}
function updateMes(id) {
if ($('#client-history__bg').css('display') == 'block') {
$.post('/ajax/getCharts.php', { update_event_id: id }, function(data) {
//console.log(data);
$('#chat_content_' + id).html(data);
});
} else {
openMes(id);
}
}
function initTaskWin() {
$('.datepicker-here').datepicker();
$('.ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
$('#addTask .ms-crm-client-work').fastselect({
onItemCreate: function(item, model) {
if ($('#addTask .ms-crm-client-work').find('option[value=' + model.value + ']').hasClass('bolt')) {
$(item).addClass('bolt');
}
},
placeholder: 'Ответственный',
onItemSelect: function(item) {
var divId = 'addTask';
var mainDivClass = $('#' + divId + ' .tabs__caption .active').data("id");
var res = $('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-crm-client-work').val();
// $('.tabs__content.'+mainDivClass+' .ms-big-add-client').closest('.inputs').html('');
$.post('/ajax/getCharts.php', { getSelectClients: 'getSelectClients', responsible: JSON.stringify(res), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }, function(data) {
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').closest('.crm__filter-input').html(data);
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
});
},
onItemDelete: function() {
var divId = 'addTask';
var mainDivClass = $('#' + divId + ' .tabs__caption .active').data("id");
var res = $('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-crm-client-work').val();
// $('.tabs__content.'+mainDivClass+' .ms-big-add-client').closest('.inputs').html('');
$.post('/ajax/getCharts.php', { getSelectClients: 'getSelectClients', responsible: JSON.stringify(res), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }, function(data) {
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').closest('.crm__filter-input').html(data);
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
});
}
});
}
function cancelPartner(partnerId, clientId, reqId) {
if (confirm("Вы точно хотите отключить партнера?")) {
$.post('/ajax/cancelPartner.php', {
partnerId: partnerId,
clientId: clientId,
reqId: reqId
}, function() {
var url = '/ajax/getClientLogForEventsNew.php?id=' + clientId;
if (reqId > 0) {
url += '&req_id=' + reqId;
}
$.ajax({
url: url,
success: function(data) {
$('#client-info-block').html(data);
$('#client_history .history__chat-n').animate({
scrollTop: $('#client-info-block').prop("scrollHeight")
}, 500, function() {
$('#client_history .history__chat-n').slimScroll({ scrollTo: $('#client-info-block').prop("scrollHeight") + 'px' });
});
if ($('#calendar').length) {
$('#calendar').fullCalendar('refetchEvents');
}
}
});
});
}
}
function editEvent(id, type, client_id, req_id) {
$.ajax({
url: '/ajax/modals/addTaskWinContent.php',
success: function(data) {
$("#addTaskBg").html(data);
$('#addTask .event .otvetstven1').hide();
initTaskWin();
$("#addTaskBg").show();
$("#addTask").show();
$("body").addClass("lock");
$('#clientIdEvent').val('');
$('#callTelphin_1').prop('checked', false);
$('#intervalTo_1').hide();
$('#intervalToLabel_1').hide();
$('#spanFromInterval_1').hide();
$('.intervalBlock .label').css('float', 'left');
// console.log($('#addTask .tabs__caption li'));
$('#addTask .tabs__caption li').css('visibility', 'hidden');
if (type == 'even') {
$('#addTask .event').click();
$('#addTask .event').css('visibility', 'unset');
}
if (type == 'meet') {
$('#addTask .meet').click();
$('#addTask .meet').css('visibility', 'unset');
}
if (type == 'call') {
$('#addTask .call').click();
$('#addTask .call').css('visibility', 'unset');
}
if (type == 'show') {
$('#addTask .show').click();
$('#addTask .show').css('visibility', 'unset');
}
if (type == 'deal') {
$('#addTask .deal').click();
$('#addTask .deal').css('visibility', 'unset');
}
$('#addTask .modal-submit button').text('Сохранить');
$('#addTask .modal-submit button').removeAttr('data-id');
$('#addTask .modal-submit button').attr('data-id', id);
if (id == 0) {
if (type == 'even') {
var section = 'client';
var selector = '#addTask';
var id_par = 0;
$('#addTask .event #eventName').val('');
$('#addTask .event #dealComment').val('');
$('#addTask .event #dealDatetime').datepicker().data('datepicker').selectDate(new Date());
$('#addTask .event .otvetstven').hide();
$('#addTask .event .otvetstven1').show();
$('#addTask .event .klient').hide();
if (client_id) {
$('#clientIdEvent').val(client_id);
id_par = client_id;
}
if (req_id) {
section = 'req';
id_par = req_id;
$('#reqIdEvent').val(req_id);
}
get_select_who_work_task(selector, section, id_par);
}
} else {
$.post("/ajax/getEventForId.php", { event_id: id }, function(data) {
var res = JSON.parse(data);
if (type == 'even') {
$('#addTask .event #eventName').val(res.name);
$('#addTask .event #dealComment').val(res.comment);
$('#addTask .event #dealDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date));
$('#addTask .event .otvetstven').hide();
$('#addTask .event .klient').hide();
if (client_id) {
$('#clientIdEvent').val(client_id);
}
if (req_id) {
$('#reqIdEvent').val(req_id);
}
}
if (type == 'meet') {
$('#addTask .meet #meetDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date));
$('#addTask .meet #meetComment').val(res.comment);
$('#addTask .meet #meetAddress').val(res.address);
$('#addTask .meet .otvetstven').hide();
$('#addTask .meet .klient').hide();
}
if (type == 'call') {
$('#addTask .call #showDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date));
$('#addTask .call #callComment').val(res.comment);
$('#addTask .call .otvetstven').hide();
$('#addTask .call .klient').hide();
if (res.tracking && res.tracking == 1) {
$('#callTelphin_1').prop('checked', true);
$('#intervalTo_1').show();
$('#intervalToLabel_1').show();
$('#spanFromInterval_1').show();
$('#to_showDatetime_1').datepicker().data('datepicker').selectDate(new Date(res.schedule_date_to));
$('.intervalBlock .label').css('float', 'initial');
}
}
if (type == 'show') {
$('#addTask .show #meetDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date));
$('#addTask .show #meetComment').val(res.comment);
$('#addTask .show #meetAddress').val(res.address);
$('#addTask .show .otvetstven').hide();
$('#addTask .show .klient').hide();
}
if (type == 'deal') {
$('#addTask .deal #dealDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date));
$('#addTask .deal #dealComment').val(res.comment);
$('#addTask .deal #dealSum').val(res.sum);
$('#addTask .deal .otvetstven').hide();
$('#addTask .deal .klient').hide();
}
});
}
}
});
return false;
}
function editEventObj(id, type, object_id) {
if (type != 'comment') {
$("#addTaskBgObj").show();
$("#addTaskObj").show();
$("body").addClass("lock");
$('#addTaskObj .tabs__caption li').css('visibility', 'hidden');
$('#addTaskObj .action_obj_call').text('Сохранить');
$('#addTaskObj .action_obj_call').removeAttr('data-id');
$('#addTaskObj .action_obj_call').attr("data-id", id);
$('#addTaskObj .action_obj_call').removeAttr('data-type');
$('#addTaskObj .action_obj_call').attr("data-type", type);
}
if (type == 'even') {
$('#addTaskObj .event').click();
$('#addTaskObj .event').css('visibility', 'unset');
}
if (type == 'meet') {
$('#addTaskObj .meet').click();
$('#addTaskObj .meet').css('visibility', 'unset');
}
if (type == 'call') {
$('#addTaskObj .call').click();
$('#addTaskObj .call').css('visibility', 'unset');
}
if (type == 'show') {
$('#addTaskObj .show').click();
$('#addTaskObj .show').css('visibility', 'unset');
}
if (type == 'deal') {
$('#addTaskObj .deal').click();
$('#addTaskObj .deal').css('visibility', 'unset');
}
$('#addTaskObj .event').hide();
$('#addTaskObj .meet').hide();
$('#addTaskObj .call').hide();
$('#addTaskObj .show').hide();
$('#addTaskObj .deal').hide();
if (id == 0) {
if (type == 'even') {
$('#addTaskObj .event').show();
$('#addTaskObj .event #eventName').val('');
$('#addTaskObj .event #dealComment').val('');
$('#addTaskObj .event #dealDatetime').datepicker().data('datepicker').selectDate(new Date());
$('#addTaskObj .event .otvetstven').hide();
$('#addTaskObj .event .klient').hide();
/*if (client_id) {
$('#clientIdEvent').val(client_id);
}*/
}
} else {
// object_id (id найденного листинга) — чтобы getEventForObjId читал external_listing_events,
// а не чужую user_object_events при пересечении id; res.object_id вернётся id листинга и save (changeEventsObj)
// уйдёт в листинговую таблицу.
$.post("/ajax/getEventForObjId.php", { event_id: id, object_id: object_id }, function(data) {
var res = JSON.parse(data);
//console.log(type);
//console.log(data);
$('#addTaskBgObj .action_obj_call').attr("data-objectid", res.object_id);
if (type == 'comment') {
if ($('#object-history').css('display') != 'none') {
$('#object-history .chat-form #cancelTextButton').click();
$('#object-history .chat-form #submitTextButton').attr('data-id', res.object_id);
$('#object-history .chat-form #submitTextButton').attr('data-event-id', res.id);
$('#object-history .chat-form #chatTextArea').val(res.comment);
$('#object-history .chat-form #cancelTextButton').show();
$('#object-history .chat-form .chat-textarea').css({ 'margin-left': "15px" });
$('#object-history .chat-form .submit').css({ 'width': "120px" });
$('#object-history .chat-form .task').hide();
if ($('#chat_content_' + res.id).length > 0) {
$('#chat_content_' + res.id).closest('.chat-block').css({
'opacity': "0.42",
'pointer-events': "none"
});
}
}
/*if (client_id) {
$('#clientIdEvent').val(client_id);
}*/
}
if (type == 'even') {
$('#addTaskObj .event').show();
$('#addTaskObj .event #eventName').val(res.name);
$('#addTaskObj .event #dealComment').val(res.comment);
$('#addTaskObj .event #dealDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date.replace(' ', 'T')));
$('#addTaskObj .event .otvetstven').hide();
$('#addTaskObj .event .klient').hide();
/*if (client_id) {
$('#clientIdEvent').val(client_id);
}*/
}
if (type == 'meet') {
$('#addTaskObj .meet').show();
$('#addTaskObj .meet #meetDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date.replace(' ', 'T')));
$('#addTaskObj .meet #meetComment').val(res.comment);
$('#addTaskObj .meet #meetAddress').val(res.address);
$('#addTaskObj .meet .otvetstven').hide();
$('#addTaskObj .meet .klient').hide();
}
if (type == 'call') {
$('#addTaskObj .call').show();
$('#addTaskObj .call .callDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date.replace(' ', 'T')));
$('#addTaskObj .call .callComment').val(res.comment);
$('#addTaskObj .call .otvetstven').hide();
$('#addTaskObj .call .klient').hide();
}
if (type == 'show') {
$('#addTaskObj .show').show();
$('#addTaskObj .show #showDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date.replace(' ', 'T')));
$('#addTaskObj .show #showComment').val(res.comment);
$('#addTaskObj .show #showAddress').val(res.address);
$('#addTaskObj .show .otvetstven').hide();
$('#addTaskObj .show .klient').hide();
$('#showRequisitionsEditInput').html('');
$("#showRequisitionsEditInput").html('<input type="text" id="showRequisitionsEdit" data-url="/ajax/lists/list_reqs_object.php?id=' + res.object_id + '" data-load-once="true">');
$('#showRequisitionsEdit').val(parseInt(res.req_id));
$("#showRequisitionsEdit").attr('data-initial-value', JSON.stringify(res.req));
$('#showRequisitionsEdit').fastselect({
placeholder: 'Заявка',
});
}
if (type == 'deal') {
$('#addTaskObj .deal').show();
$('#addTaskObj .deal #dealDatetime').datepicker().data('datepicker').selectDate(new Date(res.schedule_date.replace(' ', 'T')));
$('#addTaskObj .deal #dealComment').val(res.comment);
$('#addTaskObj .deal #dealSum').val(res.sum);
$('#addTaskObj .deal .otvetstven').hide();
$('#addTaskObj .deal .klient').hide();
}
});
}
return false;
}
function editNoteObj(id, object_id) {
$.post("/ajax/getNoteForObjId.php", { note_id: id, object_id: object_id }, function(data) {
let res = JSON.parse(data);
//console.log(data);
if ($('#object-notes').css('display') != 'none') {
$('#object-notes .chat-form #cancelTextButton2').click();
$('#object-notes .chat-form #submitTextButton2').attr('data-id', res.object_id);
$('#object-notes .chat-form #submitTextButton2').attr('data-note-id', res.id);
$('#object-notes .chat-form #chatTextArea2').val(res.message);
$('#object-notes .chat-form #cancelTextButton2').show();
$('#object-notes .chat-form .submit').css({ 'width': "120px" });
if ($('#chat_content_' + res.id).length > 0) {
$('#chat_content_' + res.id).closest('.chat-block').css({
'opacity': "0.42",
'pointer-events': "none"
});
}
}
});
return false;
}
function sendEventFiles() {
if ($(this).is(':disabled'))
return false;
let form = $('form#send_event_files_form');
let from = form.find('[name="from"]').val();
let event_id = form.find('[name="event_id"]').val();
let client_id = form.find('[name="client_id"]').val();
let email = form.find('[name="email"]').val();
let theme = form.find('[name="theme"]').val();
let text = form.find('[name="txt"]').val();
if (event_id && (client_id || email) && theme) {
$('#send_event_files_modal .modal-submit [type="button"]').addClass('loading');
$.post("/ajax/sendEventFiles.php", {
from: from,
event_id: event_id,
client_id: client_id,
email: email,
theme: theme,
text: text
}, function(data) {
//console.log(data);
var result = JSON.parse(data);
if (result.result == true) {
$('#send_event_files_modal .result_msg').text('Файл(ы) был(и) успешно отправлен(ы)!');
$('#send_event_files_modal .error_msg').hide();
$('#send_event_files_modal .error_msg').empty();
$('#send_event_files_modal .result_msg').show();
$('#send_event_files_modal .modal-submit [type="button"]').removeClass('loading');
setTimeout(() => {
$("#send_event_files_modal_bg").fadeOut(10);
$("#send_event_files_modal").toggle(10);
$("body").removeClass("lock");
}, 2000);
} else {
$('#send_event_files_modal .modal-submit [type="button"]').removeClass('loading');
$('#send_event_files_modal .error_msg').text('Произошла ошибка при отправке файла(ов).');
$('#send_event_files_modal .error_msg').show();
$('#send_event_files_modal .result_msg').hide();
$('#send_event_files_modal .result_msg').empty();
}
});
}
}
function sendEventFilesWin(id, from) {
let form = $('form#send_event_files_form');
form.find('[name="email"]').val('');
form.find('[name="theme"]').val('');
form.find('[name="txt"]').val('');
form.find('[name="event_id"]').val(id);
form.find('[name="from"]').val(from);
let user_id = $('#session_user_id').val();
let agency_id = $('#session_agency_id').val();
let client_id = $('.full_modal-bg.clients .chat-block .client').attr('id').replace('client__', '');
$("#send_event_files_modal_bg").css({
zIndex: 100002
});
$.get("/ajax/getEventFiles.php", {
event_id: id,
from: from
}, function(data) {
let result = JSON.parse(data);
if (result.length) {
$.each(result, function(indx, file) {
let link = '<a target="_blank" href="' + file['path'] + '" download>' + file['name'] + '</a>';
form.find('.files .files-list').append('<li>' + link + '</li>');
});
form.find('.files .files-list');
form.find('.files').show();
}
});
form.find('[name="client_id"]').closest(".inputs").html('<select name="client_id"></select>');
let non_sel = '<option value="0">Указать произвольный адрес эл. почты</option>';
form.find('[name="client_id"]').html(non_sel);
form.find('[name="client_id"]').fastselect({
placeholder: 'Выберите клиента'
});
$.get("/ajax/getInnerSources.php", {
user_id: user_id,
agency_id: agency_id,
section: 'clients',
required: 'email',
view: 'option'
}, function(result) {
if (result.length) {
form.find('[name="client_id"]').html(non_sel + result);
if (typeof client_id !== "undefined")
form.find('[name="client_id"] option[value="' + client_id + '"]').prop("selected", true);
form.find('[name="client_id"]').fastselect({
placeholder: 'Выберите клиента'
});
form.find('[name="client_id"]').closest(".inputs").find(".fstControls .fstResults .fstResultItem").first().css({ color: "red" });
form.find('[name="client_id"]').closest(".inputs").find(".fstControls input.hidenClass").attr('type', "text");
form.find('[name="client_id"]').closest(".inputs").find(".fstControls input.hidenClass").removeClass('hidenClass');
form.find('.client-id-input').fadeIn();
}
});
form.find('[name="client_id"] option').prop("selected", false);
$('#send_event_files_modal .modal-submit button[type="button"]').attr('disabled', 'disabled');
$('#send_event_files_modal .error_msg').empty();
$('#send_event_files_modal .error_msg').hide();
$('#send_event_files_modal .result_msg').empty();
$('#send_event_files_modal .result_msg').hide();
let as_client = true;
let selector = '[name="email"], [name="theme"]';
if (as_client)
selector = '[name="client_id"], [name="theme"]';
form.find('[name="client_id"]').on("change", function() {
if (parseInt($(this).val()) !== 0 && typeof $(this).val() !== "undefined") {
form.find('.email-input').fadeOut();
as_client = true;
} else {
form.find('.email-input').fadeIn();
as_client = false;
}
if (as_client)
selector = '[name="client_id"], [name="theme"]';
else
selector = '[name="email"], [name="theme"]';
});
form.find(selector).on("change", function() {
let valid = true;
let inputs = selector.split(',');
$.each(inputs, function(index, elemn) {
let value = form.find(elemn).val();
if (typeof value == "undefined" || parseInt(value) == 0) {
valid = false;
}
});
if (valid)
$('#send_event_files_modal .modal-submit button[type="button"]').removeAttr('disabled');
else
$('#send_event_files_modal .modal-submit button[type="button"]').attr('disabled', 'disabled');
});
$("#send_event_files_modal_bg").fadeIn(500);
$("#send_event_files_modal").toggle(10);
$("body").addClass("lock");
}
function deleteEvent(id, from, kind) {
var isFile = (kind === 'file');
jwConfirm({
title: isFile ? 'Удаление файлов' : 'Удаление задачи',
text: isFile ? 'Вы точно хотите удалить эти файлы?' : 'Вы точно хотите удалить эту задачу?',
btnText: 'Удалить',
onConfirm: function() {
$.post('/ajax/deleteEvent.php', {
deleteId: id,
from: from || null
}, function() {
if ($('#chat_content_' + id).length > 0) {
$('#chat_content_' + id).closest('.chat-block').remove();
}
$("#merepriation_bg").hide();
$("#merepriation-history").hide();
$("body").removeClass("lock");
getCalendar();
});
}
});
}
function showEventSubComment(id, from, event, sub_id) {
let comment_area = $('#addEventSubComment_' + id);
var subId = 0;
if (!isEmpty(sub_id)) {
subId = sub_id;
}
$('#addEventSubComment_' + id + ' .edit-btn.save').attr('data-sub', subId);
if (typeof comment_area !== "undefined") {
if ($('#addEventSubComment_' + id).is(':visible')) {
$('#addEventSubComment_' + id).hide();
} else {
$('#addEventSubComment_' + id).show();
}
if (event == "moderation") {
$('#addEventSubComment_' + id + ' textarea').html('');
$('#addEventSubComment_' + id + ' .sub_comment_who_work').show();
$.ajax({
url: '/ajax/dataClass/dataModerationClass.php',
method: "post",
data: {
'get_user_event_moderation': 1,
'event_id': id,
'sub_id': subId,
},
success: function(data) {
//console.log(data);
var res = JSON.parse(data);
$('#addEventSubComment_' + id + ' textarea').html(res.text);
$('#sub_comment_who_work_input_' + id).html(res.html);
$('#sub_comment_who_work_' + id).fastselect({
placeholder: 'Ответственные',
})
}
});
} else {
$('#addEventSubComment_' + id + ' .sub_comment_who_work').hide();
}
}
}
function addEventSubComment(id, from, id_object, req_id, type = null) {
// листинг: id_object приходит числовым el.id без маркера; помечаем EXT-{n}, иначе reload панелей
// (getObjectInfoForEvents/getLogForEvents) примет el.id за objects.id (коллизия) → пустые паны (белая модалка)
if (from === 'listing' && String(id_object).indexOf('EXT-') !== 0) id_object = 'EXT-' + id_object;
user_for = 0;
if (!isEmpty(type) && type == 'moderation') {
user_for = $('#sub_comment_who_work_' + id).val();
}
var sub_id = 0;
if ($('#addEventSubComment_' + id + ' .edit-btn.save').attr('data-sub')) {
sub_id = $('#addEventSubComment_' + id + ' .edit-btn.save').attr('data-sub');
}
let comment_area = $('#sub_comment_' + id);
if (typeof comment_area !== "undefined") {
let sub_comment = comment_area.val();
$.post('/ajax/addEventSubComment.php', {
eventId: id,
reqId: req_id || null,
from: from || null,
sub_comment: sub_comment,
type: type,
user_for: user_for,
sub_id: sub_id,
}, function() {
$.ajax({
url: '/ajax/getObjectInfoForEvents.php?id=' + id_object,
success: function(data) {
$('#object-info-block').html(data);
$.ajax({
url: '/ajax/getLogForEvents.php?object_id=' + id_object,
success: function(data) {
$('#event-chat').html(data);
$('.history__chat').scrollTop($('#event-chat').prop("scrollHeight"));
}
});
setTimeout(function() {
$('#object-info-block .fotorama').fotorama();
initializeMapOnEventWindow();
}, 100);
}
});
});
}
}
function deleteEventSubComment(id, from, id_object, sub_id) {
// листинг: id_object приходит числовым el.id без маркера; помечаем EXT-{n}, иначе reload панелей
// (getObjectInfoForEvents/getLogForEvents) примет el.id за objects.id (коллизия) → пустые паны (белая модалка)
if (from === 'listing' && String(id_object).indexOf('EXT-') !== 0) id_object = 'EXT-' + id_object;
var subId = 0;
if (!isEmpty(sub_id)) {
subId = sub_id;
}
jwConfirm({
title: 'Удаление комментария',
text: 'Вы точно хотите удалить комментарий?',
btnText: 'Удалить',
onConfirm: function() {
$.post('/ajax/deleteEventSubComment.php', {
eventId: id,
from: from || null,
sub_id: subId
}, function() {
$.ajax({
url: '/ajax/getObjectInfoForEvents.php?id=' + id_object,
success: function(data) {
$('#object-info-block').html(data);
$.ajax({
url: '/ajax/getLogForEvents.php?object_id=' + id_object,
success: function(data) {
$('#event-chat').html(data);
$('.history__chat').scrollTop($('#event-chat').prop("scrollHeight"));
}
});
setTimeout(function() {
$('#object-info-block .fotorama').fotorama();
initializeMapOnEventWindow();
}, 100);
}
});
});
}
});
}
function deleteNoteObj(id, from) {
jwConfirm({
title: 'Удаление примечания',
text: 'Вы точно хотите удалить данное примечание?',
btnText: 'Удалить',
onConfirm: function() {
// from='listing' → удаление в external_listing_notes, иначе object_notes (id-нумерации разные)
$.post('/ajax/deleteNote.php', {
deleteId: id,
from: from || 'objects'
}, function() {
if ($('#chat_content_' + id).length > 0) {
let chat = $('#chat_content_' + id).closest('#object-notes');
let object_id = chat.find('#submitTextButton2').data('id');
$('#chat_content_' + id).closest('.chat-block').remove();
if (chat.find('.chat-block').length == 0)
$('.addEditNote[data-id="' + object_id + '"]').removeClass('haveNotes');
}
$("body").removeClass("lock");
});
}
});
}
//Отменить задачу
function cancelEvent(id) {
jwConfirm({
title: 'Отмена задачи',
text: 'Вы точно хотите отменить эту задачу?',
btnText: 'Отменить задачу',
onConfirm: function() {
$.post('/ajax/cancelEvent.php', { cancelId: id }, function() {
if ($('#chat_content_' + id).length > 0) {
$('#chat_content_' + id).closest('.chat-message').addClass('cancel');
}
$('#groupAB__' + id).attr("data-cancel", "1");
/*$("#merepriation_bg").hide();
$("#merepriation-history").hide();
$("body").removeClass("lock");*/
getCalendar();
});
}
});
}
//Для фильтра клиентов в отправке презентаций
function get_prz_clients(type = 0) {
var params = {};
var user_id = $('#komy_user_id').val();
var agency_id = $('#komy_agency_id').val();
var type_send = false;
params.prz_user = user_id;
params.prz_agency = agency_id;
params.type = type;
if ($('#filter-prz-responsible').val() !== null && $('#filter-prz-responsible').val() != '') {
params.filter_prz_responsible = JSON.stringify($('#filter-prz-responsible').val());
type_send = true;
}
if ($('#filter-prz-type').val() !== null && $('#filter-prz-type').val() != '') {
params.filter_prz_type = JSON.stringify($('#filter-prz-type').val());
type_send = true;
}
if ($('#filter_prz_source').val() !== null && $('#filter_prz_source').val() != '') {
params.filter_prz_source = JSON.stringify($('#filter_prz_source').val());
type_send = true;
}
if ($('#filter_prz_activities').val() !== null && $('#filter_prz_activities').val() != '') {
params.filter_prz_activities = JSON.stringify($('#filter_prz_activities').val());
type_send = true;
}
if ($('#filter_prz_rol').val() !== null && $('#filter_prz_rol').val() != '') {
params.filter_prz_rol = JSON.stringify($('#filter_prz_rol').val());
type_send = true;
}
$.post("/ajax/getPrzClients.php", params, function(res) {
if (type == 0) {
$('#komy').html(res);
$('#komy').select2({
language: "ru",
theme: "bootstrap",
placeholder: 'Выберите клиента(ов)...'
});
} else if (type == 1) {
if (type_send == true) {
$("#komy_list").val(res);
if (res.length > 0) {
$("#send_mail_btn").trigger('click');
} else {
$('#error_txt_filter').text('Клиентов не найдено!').show();
}
} else {
$("#komy_list").val("");
$('#error_txt_filter').text('Не выбраны фильтры!').show();
}
}
});
}
function renewClient(id_client) {
console.log({ id_client });
let params = {
client_id: id_client
};
$.post('/ajax/renewClients.php',
params,
function(data) {
let result = JSON.parse(data);
if (result.success == true) {
let sort_order = $('select[name=sort_order]').val();
let page = $('.pagination li.active a').text();
if ($('#client_history').css('display') != 'none') {
openClientEventsWindowNew(id_client, $('#session_to_send').val(), 1);
}
if ($('.view-kanban.active').length > 0) {
let stage = $('#kanban_item_li_' + id_client).closest('.kanban__sortable').data("stage");
get_kanban_li(id_client, stage, 0);
} else {
get_list(page, sort_order, false);
}
}
}
);
}
function renewReq(req_id) {
console.log(req_id);
let params = {
req_id: req_id,
};
$.post('ajax/renewReq.php',
params,
function(data) {
console.log({ data });
let result = JSON.parse(data);
if (result.success == true) {
let sort_order = $('select[name=sort_order]').val();
let page = $('.pagination li.active a').text();
if ($('#client_history').css('display') != 'none') {
openClientEventsWindowNew(null, $('#session_user_id').val(), 1, req_id);
}
if ($('.view-kanban.active').length > 0) {
requisitions.getList();
} else {
get_list(page, sort_order, false);
}
}
}
);
}
function isNationalPhone(phone) {
// hide_client_contacts: маска содержит звёздочки, автодетект не делаем —
// считаем телефон обычным (российским) и оставляем чекбокс выключенным.
if (typeof phone === 'string' && phone.indexOf('*') !== -1) {
return 0;
}
if (!phone.startsWith('+7')) {
return 1;
}
if (String(phone).replace(/[^0-9]/g,"").length !== 11) {
return 1;
}
return 0;
}
function renewClients(id_clients) {
//console.log({ id_clients });
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
id_clients = ['all'];
}
let params = {
clients_id: id_clients,
all: all
};
$.post('/ajax/renewClients.php',
params,
function(data) {
console.log(data);
let result = JSON.parse(data);
if (result.success == true) {
let sort_order = $('select[name=sort_order]').val();
let page = $('.pagination li.active a').text();
get_list(page, sort_order, false);
}
}
);
}
function editClientNew(id, funnelId) {
// hide_client_contacts: возвращаем модалку в edit-режим (disabled+warning),
// т. к. add_client_new() в этой же сессии мог переключить её в add-режим.
setAddEditNewContactsState('edit');
if (typeof requisitions_client == 'object') {
requisitions_client.clientId = id;
}
if (typeof deals_client == 'object') {
deals_client.clientId = id;
}
//кастомные поля
if (typeof client_fields != "undefined") {
client_fields.client_id = id;
client_fields.getClientFields();
}
if ($('#client-history__bg').css('display') == 'block') {
$('#client-history__bg').css('zIndex', '99987');
}
$('#ms-new-client-source-input').closest(".form-block").show();
$('#liObject').removeClass('active').show();
$('#liReq').removeClass('active').show();
$('#liInnerDocs').removeClass('active').show();
$('#liInnerDocs .tabs-li__icon').text('6');
$('#liGlobal').click();
$('#addEditNew .error_msg').hide();
$('#addObjectClientForm').attr('href', '/add-object.php?sobstv_object=' + id);
$('#addEditNew .stagebar .stage').removeClass('active');
$('#addEditNew .form-block__hot-client').removeClass('active');
clearSelect();
$('#addEditNew .form-block [name=phone2]').each(function() {
$(this).closest('.form-block').remove();
});
$("#addEditNew").find('input').val("");
$("#addEditNew").find('textarea').val('');
$("#addEditNew select").val('');
$('#addEditNew select').parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
$('#addEditNew .form-block [name=phone2]').each(function() {
$(this).closest('.form-block').remove();
});
$('#rynok_1').prop('checked', true);
$('#addEditNew [name=yes_object]').prop('checked', false);
$('#addEditNew [name=yes_doc]').prop('checked', false);
$('#addEditNew [name=yes_bank]').prop('checked', false);
$('#addEditNew [name=yes_resolve]').prop('checked', false);
$('#addEditNew [name=yes_issue]').prop('checked', false);
$('#resolve_1').prop('checked', false);
$('#resolve_2').prop('checked', false);
$('#resolve_3').prop('checked', false);
$('.prodoc').addClass('hidden');
$('.probank').addClass('hidden');
$('.proresolve').addClass('hidden');
$('.proissue').addClass('hidden');
$('#addEditNew [name=summa_object]').val(0);
$('#addEditNew [name=relationship]').val('');
$("#addEditNew [name=age]").val('');
$("#addEditNew [name=co_borrower_fio]").val('');
$("#addEditNew [name=co_borrower_age]").val('');
$("#addEditNew [name=contacts]").val('');
$("#addEditNew [name=co_borrower_dohod]").val('');
$("#addEditNew [name=income]").val('');
$("#addEditNew [name=credit_load]").val('');
$('#persone_no_ip').prop('checked', true);
$('#persone_yes_ip').prop('checked', false);
$('#persone_gender_man').prop('checked', true);
$('#persone_gender_woman').prop('checked', false);
$("#union_clients_form_open").show();
$("#union_clients_form_open").attr("data-id",id);
$('#block_client_kredit .form-block').each(function() {
$(this).find('input[type=checkbox]').each(function() {
$(this).prop('checked', false);
});
$(this).find('input[type=radio]').each(function() {
$(this).prop('checked', false);
});
});
$('.probank ul').html('');
$('#proresolve-yes').html('');
$.get('/ajax/getIpoteka.php?id=' + id, { dataType: "json" }, function(datai) {
if (datai) {
var data = JSON.parse(datai);
console.log(data);
$('#rynok_' + data.rynok).prop('checked', true);
if (data.yes_object == 1) {
$('#addEditNew [name=yes_object]').prop('checked', true);
}
if (data.yes_doc == 1) {
$('#addEditNew [name=yes_doc]').prop('checked', true);
$('.prodoc').removeClass('hidden');
}
if (data.yes_bank == 1) {
$('#addEditNew [name=yes_bank]').prop('checked', true);
$('.probank').removeClass('hidden');
}
if (data.yes_resolve == 1) {
$('#addEditNew [name=yes_resolve]').prop('checked', true);
$('.proresolve').removeClass('hidden');
}
if (data.yes_resolve == 1) {
$('#addEditNew [name=yes_resolve]').prop('checked', true);
$('.proresolve').removeClass('hidden');
}
if (data.yes_issue == 1) {
$('#addEditNew [name=yes_issue]').prop('checked', true);
$('.proissue').removeClass('hidden');
}
if(!isEmpty(data.date_send_web_hook)){
$('#send_web_hook_date').text(data.date_send_web_hook).css('color', 'red');
} else {
$('#send_web_hook_date').text('').css('color', '#757575')
}
$("#addEditNew").find('input[name="ante_pr"]').val(data.ante_pr);
$("#addEditNew").find('input[name="ante_rub"]').val(data.ante_rub);
$("#addEditNew").find('textarea[name="comment"]').val(data.comment.replace(/<br>/g, "\n"));
$("#addEditNew").find('[name="comment_resolve"]').val(data.comment_resolve.replace(/<br>/g, "\n"));
$("#addEditNew").find('input[name="date_bank"]').val(data.date_bank);
$("#addEditNew").find('input[name="date_doc"]').val(data.date_doc);
$("#addEditNew").find('input[name="doc_komis"]').val(data.doc_komis);
$("#addEditNew").find('input[name="doc_komis_pr"]').val(data.doc_komis_pr);
$("#addEditNew").find('input[name="employee_bank"]').val(data.employee_bank);
$("#addEditNew").find('input[name="number_doc"]').val(data.number_doc);
$("#addEditNew").find('input[name="rate_issue"]').val(data.rate_issue);
$("#addEditNew").find('input[name="term_issue"]').val(data.term_issue);
$("#addEditNew").find('input[name="send_web_hook"]').prop('checked', false);
$("#addEditNew").find('input[name="relationship"]').val(data.relationship);
$("#addEditNew").find('input[name="summa_object"]').val(data.summa_object);
$("#addEditNew").find('input[name="age"]').val(data.age);
$("#addEditNew").find('input[name="co_borrower_fio"]').val(data.co_borrower_fio);
$("#addEditNew").find('input[name="co_borrower_age"]').val(data.co_borrower_age);
$("#addEditNew").find('input[name="contacts"]').val(data.contacts.replace(/<br>/g, "\n"));
$("#addEditNew").find('input[name="co_borrower_dohod"]').val(data.co_borrower_dohod);
$("#addEditNew").find('input[name="income"]').val(data.income);
$("#addEditNew").find('input[name="credit_load"]').val(data.credit_load);
var html = '<select id="ms-new-client-bank-issue" class="ms-new-client-bank-issue" multiple="multiple">' + $("#ms-new-client-bank-issue").html() + '</select>';
$("#ms-new-client-bank-issue").closest(".inputs").html(html);
if (data.bank_issue && data.bank_issue != 'null') {
var bank_issue = JSON.parse(data.bank_issue);
for (var i = 0; i < bank_issue.length; i++) {
$("#ms-new-client-bank-issue option[value=" + bank_issue[i] + "]").prop("selected", true)
}
}
$("#ms-new-client-bank-issue").fastselect({ placeholder: 'Банк выдачи' });
if (data.banks && data.banks != 'null') {
var banks = JSON.parse(data.banks);
Object.entries(banks).forEach(([key, value]) => {
if(!isEmpty(value)){
let li = '<li class="list_bank" id="list_bank_'+key+'"><span class="adv_activities" data-id="'+key+'" data-date="'+value.date+'" data-employee="'+value.employee+'">'+value.name+'</span>' +
'<a href="javascript:{};" class="fl-right delZayavka no-border tooltip tooltip-effect" data-id="'+key+'">' +
'<span class="simple-button tooltip-item">' +
'<i class="ti-close"></i>' +
'</span>' +
'<span class="tooltip-content tt-pdf clear">' +
'<b class="tooltip-text">Удалить</b>' +
'</span>' +
'</a>' +
'</li>'
$('.probank ul').append(li);
}
});
}
if (data.resolve && data.resolve != 'null') {
var resolve = JSON.parse(data.resolve);
Object.entries(resolve).forEach(([key, value]) => {
if(!isEmpty(value)){
let li = '<li class="list_bank" id="list_resolve_'+key+'">' +
'<span class="adv_activities" data-id="'+key+'" data-summa="'+value.summa+'" data-prstavka="'+value.prstavka+'" data-srok="'+value.srok+'" data-usloviya="'+value.usloviya+'">'+value.name+'</span>' +
'<a href="javascript:{};" class="fl-right delResolve no-border tooltip tooltip-effect" data-id="'+key+'">' +
'<span class="simple-button tooltip-item"><i class="ti-close"></i></span>' +
'<span class="tooltip-content tt-pdf clear">' +
'<b class="tooltip-text">Удалить</b>' +
'</span>' +
'</a>' +
'</li>';
$('#proresolve-yes').append(li);
}
});
}
var jc = null;
if (data.jc && data.jc != 'null') {
jc = JSON.parse(data.jc);
}
setSelectsFastselect('ms_new_blocks', jc, 'select_form_blocks.php', 'Жилые комплексы');
}
});
$.ajax({
url: '/ajax/getClient.php?id=' + id,
dataType: "json",
success: function(data) {
console.log(data);
if (funnelId > 0) {
$.post('/ajax/getStageBar.php', { client_id: id, funnel_id: funnelId }, function(result) {
$('#editClientStagebar').html(result);
});
} else {
var stage = (data.stage - 1);
// console.log(data.deleted);
if (data.deleted == 1) {
stage = 7;
}
$("#addEditNew .crm__small-stage").each(function(index) {
if (index <= stage) {
$(this).parent().addClass("active");
} else {
$(this).parent().removeClass("active");
}
});
}
$('#confirm').val(data.confirm);
if (data.hot > 0) {
$('#addEditNew .form-block__hot-client').addClass('active');
}
if (data.priority > 0) {
$('#addEditNew .form-block__p' + data.priority + '-client').addClass('active');
}
//$("#addEditNew .error_msg").next().html(data.fio);
$('#addEditNew .modal-title').html(data.fio);
$("#addEditNew").find('input[name="fio"]').val(data.fio);
$("#addEditNew").find('input[name="email"]').val(data.email);
$("#addEditNew").find('input[name="phone"]').val(data.phone);
// Явно ставим состояние свитчера — иначе при последовательном редактировании
// foreign → russian-клиента флажок может остаться в TRUE от предыдущей карточки.
// Для замаскированных значений isNationalPhone вернёт 0, переключатель не активируется.
$("#addEditNew").find('#national_phone').prop('checked', !!isNationalPhone(data.phone));
$("#addEditNew").find('input[name="budget"]').val(data.budget);
$("#addEditNew").find('[name="opis"]').val(data.opis.replace(/<br>/g, "\n"));
$("#addEditNew").find('input[name="id"]').val(data.id);
$("#addReqClientForm").attr("data-client", data.id);
$("#addEditNew").find('input[name="confirm"]').val(data.confirm);
$("#addEditNew").find('input[name="birthday"]').val(data.birthday);
if(data.persone_no_ip > 0) {
$('#persone_yes_ip').prop('checked', true);
$('.persone_yas_ip').removeClass('hidden');
$('.persone_no_ip').addClass('hidden');
}
// console.log(data.persone_info_bank,"vot zdes");
function normalizeContactText(rawHtml) {
return rawHtml
.replace(/<br\s*\/?>/gi, '\n')
.replace(/[^\S\r\n]{2,}/g, ' ')
.replace(/[\r\n]{2,}/g, '\n')
.replace(/[^\w\sА-Яа-яёЁ.,:()\-+]/g, '')
.trim();
}
if(data.persone_gender > 0) $('#persone_gender_woman').prop('checked', true);
$("#addEditNew").find('input[name="passport"]').val(data.passport);
$("#addEditNew").find('input[name="date_of_issue_passport"]').val(data.date_of_issue_passport);
$("#addEditNew").find('input[name="passport_issued_by"]').val(data.passport_issued_by);
$("#addEditNew").find('input[name="birthplace"]').val(data.birthplace);
$("#addEditNew").find('[name="registration_address"]').val(data.registration_address);
$("#addEditNew").find('[name="post_address"]').val(data.post_address);
$("#addEditNew").find('[name="persone_info_bank"]').val(normalizeContactText(data.persone_info_bank));
$("#addEditNew").find('input[name="persone_snils"]').val(data.persone_snils);
$("#addEditNew").find('input[name="persone_nationality"]').val(data.persone_nationality);
$("#addEditNew").find('input[name="persone_full_name"]').val(data.persone_full_name);
$("#addEditNew").find('input[name="persone_short_name"]').val(data.persone_short_name);
$("#addEditNew").find('input[name="persone_ogrn"]').val(data.persone_ogrn);
$("#addEditNew").find('input[name="persone_inn"]').val(data.persone_inn);
$("#addEditNew").find('input[name="persone_kpp"]').val(data.persone_kpp);
$("#addEditNew").find('[name="persone_legal_address"]').val(data.persone_legal_address);
$("#addEditNew").find('[name="persone_fact_address"]').val(data.persone_fact_address);
$("#addEditNew").find('input[name="persone_name_bank"]').val(data.persone_name_bank);
$("#addEditNew").find('input[name="persone_bik_bank"]').val(data.persone_bik_bank);
$("#addEditNew").find('input[name="persone_rs_bank"]').val(data.persone_rs_bank);
$("#addEditNew").find('input[name="persone_kors_bank"]').val(data.persone_kors_bank);
$("#addEditNew").find('input[name="persone_fio_rukovod"]').val(data.persone_fio_rukovod);
$("#addEditNew").find('input[name="persone_powers"]').val(data.persone_powers);
$("#addEditNew").find('input[name="persone_kod_podrazdelenia"]').val(data.persone_kod_podrazdelenia);
$('#of_objects').val(data.of_objects);
var html = '<select id="ms-new-client-type" multiple>' + $("#ms-new-client-type").html() + '</select>';
$("#ms-new-client-type").closest(".inputs").html(html);
if (data.work_type && data.work_type != 'null') {
var wor_type = JSON.parse(data.work_type);
for (var i = 0; i < wor_type.length; i++) {
$("#ms-new-client-type option[value='" + wor_type[i] + "']").prop("selected", true)
}
}
$("#ms-new-client-type").fastselect({
placeholder: 'Тип',
onItemDelete: function(item, val) {
if (typeof this.fastsearch.itemModels != 'undefined' && this.fastsearch.itemModels[4] !== undefined && !this.fastsearch.itemModels[4].selected) {
$('#ms-new-client-activities').parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
}
}
});
var html = '<select id="ms-new-client-rol" class="ms-crm-client-rol" multiple="multiple">' + $("#ms-new-client-rol").html() + '</select>';
$("#ms-new-client-rol").closest(".inputs").html(html);
if (data.role && data.role != 'null') {
let roleArray;
try {
roleArray = JSON.parse(data.role);
if (!Array.isArray(roleArray)) {
roleArray = [roleArray];
}
} catch (e) {
roleArray = [data.role];
}
for (var i = 0; i < roleArray.length; i++) {
var escapedRoleValue = roleArray[i].toString().replace(/'/g, "\\'");
$("#ms-new-client-rol option[value='" + escapedRoleValue + "']").prop("selected", true);
}
}
$("#ms-new-client-rol").fastselect({ placeholder: 'Роль клиента' });
var activities = null;
if (data.activities && data.activities != 'null') {
activities = JSON.parse(data.activities);
}
setSelectsFastselect('ms-new-client-activities', activities, 'select_form_activities.php', 'Теги');
var html = '<select id="ms-new-client-objects-type" class="ms-crm-client-object-type" multiple>' + $("#ms-new-client-objects-type").html() + '</select>';
$("#ms-new-client-objects-type").closest(".inputs").html(html);
//console.log(data.type);
if (data.type && data.type != 'null') {
var type = JSON.parse(data.type);
for (var i = 0; i < type.length; i++) {
$("#ms-new-client-objects-type option[value=" + type[i] + "]").prop("selected", true)
}
}
$("#ms-new-client-objects-type").fastselect({ placeholder: 'Тип недвижимости' });
var html = '<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + $("#ms-new-client-object").html() + '</select>';
if (data.objects && data.objects != 'null') {
$.post('/ajax/getClientsView.php', { get_clients_objects: data.objects, user_id: $('#sid').data("id") },
function(result) {
if (result == 0) {
$("#ms-new-client-object").closest(".inputs").html(html);
} else {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + result + '</select>');
}
var objects = JSON.parse(data.objects);
for (var i = 0; i < objects.length; i++) {
$("#ms-new-client-object option[value=" + objects[i] + "]").prop("selected", true);
}
$("#ms-new-client-object").fastselect({ placeholder: 'Объекты' });
}
);
} else {
$.post('/ajax/getClientsView.php', { get_clients_objects: '', user_id: $('#sid').data("id") },
function(result) {
// console.log(result);
if (result == 0) {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple></select>');
} else {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + result + '</select>');
}
$("#ms-new-client-object").fastselect({ placeholder: 'Объекты' });
}
);
}
req_fastselect('ms-new-client-req-input', 'ms-new-client-req', data.req);
$.post('/ajax/getClientsView.php', { get_objects: data.objects, user_id: $('#sid').data("id"), to_send: $('#s_to_send').val() }, function(data) {
$('#addEditNew .jw__objects').html(data);
$('#addEditNew .fotorama').fotorama();
if (typeof koala_loader == "function") {
koala_loader();
}
});
var who_user = $('#sid').attr('data-id');
if (data.who_work) {
who_user = data.who_work;
}
setSelectsFastselect('ms-new-client-work', who_user, 'select_form_client-work.php', 'Ответственный');
var source_id = 0;
if (data.source) {
source_id = data.source;
}
if(data.source_see == 0){
setSelectsFastselect('ms-new-client-source', source_id, 'select_form_source.php', 'Источник');
$('#ms-new-client-source-input').closest(".form-block").hide();
} else
setSelectsFastselect('ms-new-client-source', source_id, 'select_form_source.php', 'Источник');
var emplode_id_ms = 0;
if (data.employee_id) {
emplode_id_ms = data.employee_id;
}
setSelectsFastselect('ms-new-client-partner', emplode_id_ms, 'select_form_partner.php', 'Партнёр');
var funnel_id = 0;
if (data.funnel_id) {
funnel_id = data.funnel_id;
}
setSelectsFastselect('ms-new-funnel', funnel_id, 'select_form_funnel.php', 'Воронка', 'client');
$("#ms-new-funnel").fastselect({ placeholder: 'Воронка' });
var html = '<select id="ms_new_bancks_credit" name="bancks_credit" class="ms_new_bancks_credit" multiple="">' + $("#ms_new_bancks_credit").html() + '</select>';
$("#ms_new_bancks_credit").closest(".inputs").html(html);
if (data.bancks_credit && (data.bancks_credit).toLowerCase() != 'null') {
var bancks_credit = JSON.parse(data.bancks_credit);
for (var i = 0; i < bancks_credit.length; i++) {
$("#ms_new_bancks_credit option[value=" + bancks_credit[i] + "]").prop("selected", true);
}
}
$("#ms_new_bancks_credit").fastselect({ placeholder: 'Банковский продукт' });
setSelectsFastselect('ms-new-client-bank-denial', null, 'select_form_bank-denial.php', 'Банк (отказ)');
setSelectsFastselect('ms-new-client-bank-revisal', null, 'select_form_bank-denial.php', 'Банк (пересмотр)');
setSelectsFastselect('ms-new-client-bank-issue', null, 'select_form_bank-denial.php', 'Банк выдачи');
$('#block_client_kredit .form-block').each(function() {
$(this).find('input[type=text]').each(function() {
if (data[$(this).attr('name')]) {
$(this).val(data[$(this).attr('name')]);
}
});
$(this).find('input[type=checkbox]').each(function() {
if (data[$(this).attr('name')] == 1) {
$(this).prop('checked', true);
}
});
$(this).find('input[type=radio]').each(function() {
if (data[$(this).attr('name')] == $(this).attr('id')) {
$(this).prop('checked', true);
}
});
});
if (data.phone2 && data.phone2 != 'null') {
var phone2 = JSON.parse(data.phone2);
if (phone2.length > 0) {
for (var i = 0; i < phone2.length; i++) {
var inputId = 'input_phone_' + phone2Index;
var checkboxId = 'checkbox_phone_' + phone2Index;
// hide_client_contacts: значение приходит как "+X *** *** ** **"
// — звёздочки в строке считаем явным признаком маски.
var isMaskedPhone2 = typeof phone2[i] === 'string' && phone2[i].indexOf('*') !== -1;
var formBloc = document.createElement('div');
formBloc.classList.add('form-block');
var labelDiv = document.createElement('div');
labelDiv.classList.add('label');
labelDiv.textContent = 'Дополнительный телефон';
formBloc.appendChild(labelDiv)
var inputsDiv = document.createElement('div');
inputsDiv.classList.add('inputs');
var inputPhone = document.createElement('input');
// Для замаскированных значений не подключаем phoneMask, иначе jQuery-плагин
// .mask("+79999999999") перезатрёт код страны на "+7".
if (isMaskedPhone2) {
inputPhone.classList.add('text');
inputPhone.disabled = true;
inputPhone.title = 'Контакты клиента скрыты для вашей учётной записи';
} else {
inputPhone.classList.add('text', 'phoneMask');
}
inputPhone.id = inputId;
inputPhone.type = 'text';
inputPhone.style.width = '400px';
inputPhone.name = 'phone2';
inputPhone.value = phone2[i];
inputsDiv.appendChild(inputPhone);
formBloc.appendChild(inputsDiv);
var checkboxDiv = document.createElement('div');
checkboxDiv.classList.add('checkbox', 'inline-block');
checkboxDiv.style = 'display: inline-block;min-height: unset; padding-left: 0px; margin-top: 0px; margin-bottom: 0px;';
var inputCheckbox = document.createElement('input');
inputCheckbox.id = checkboxId;
inputCheckbox.type = 'checkbox';
inputCheckbox.checked = !!(isNationalPhone(phone2[i]));
if (isMaskedPhone2) {
inputCheckbox.disabled = true;
}
checkboxDiv.appendChild(inputCheckbox);
var labelCheckbox = document.createElement('label');
labelCheckbox.classList.add('label', 'ml-5', 'whitespace-nowrap');
labelCheckbox.setAttribute('for', checkboxId);
labelCheckbox.textContent = 'Зарубежный телефон';
checkboxDiv.appendChild(labelCheckbox);
formBloc.appendChild(checkboxDiv);
inputCheckbox.addEventListener('change', function() {
if (inputCheckbox.checked) {
$('#' + inputId).unmask();
inputPhone.value = '+'
inputPhone.addEventListener('input', function() {
var phoneNumber = inputPhone.value;
// Проверка на наличие первого символа "+"
if (phoneNumber.startsWith('+')) {
// Удаление всех нецифровых символов, кроме "+"
phoneNumber = phoneNumber.replace(/[^\d+]/g, '');
inputPhone.value = phoneNumber;
} else {
inputPhone.value = '';
}
});
inputPhone.focus();
} else {
$('#' + inputId).mask("+79999999999");
inputPhone.focus();
}
});
$('#add_phone2').closest('.form-block').before(formBloc);
if (!isNationalPhone(phone2[i]) && !isMaskedPhone2) {
$('#' + inputId).mask("+79999999999");
}
phone2Index++;
}
}
}
$("#send_bg_new").fadeIn(500);
$("#send_new").toggle(10);
$('#send_log_new').hide();
$('#send_form_new').show();
$("body").addClass("lock");
get_contracts_client(id);
}
})
}
function advertsSwitch(elemn) {
let object_id = $(elemn).attr("data-id");
console.log(object_id);
let user_id = $("#session_user_id");
let state = $(elemn).is(":checked");
console.log(state);
/*if(object_id == 'all'){
state = !state;
}*/
if (!state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
$('#advertisings__' + object_id + ' .action-button').removeClass('active');
switchToAdvert(object_id, user_id, +state);
} else {
$(elemn).prop("checked", true);
}
return false;
} else if (state) {
switchToAdvert(object_id, user_id, +state);
}
return false;
}
function switchCanAdModr(elemn) {
let state = $(elemn).hasClass("active");
if (state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
switchCanAd(elemn);
} else {
// $(elemn).prop("checked", true);
}
return false;
} else if (!state) {
switchCanAd(elemn);
}
}
function switchCanAvitoAdModr(elemn) {
let state = $(elemn).hasClass("active");
if (state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
switchCanAvitoAd(elemn);
} else {
// $(elemn).prop("checked", true);
}
return false;
} else if (!state) {
switchCanAvitoAd(elemn);
}
}
function switchCanCianAdModr(elemn) {
let state = $(elemn).hasClass("active");
if (state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
switchCanCianAd(elemn);
} else {
// $(elemn).prop("checked", true);
}
return false;
} else if (!state) {
switchCanCianAd(elemn);
}
}
function switchDomAdModr(elemn) {
let state = $(elemn).hasClass("active");
if (state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
switchDomAd(elemn);
} else {
// $(elemn).prop("checked", true);
}
return false;
} else if (!state) {
switchDomAd(elemn);
}
}
function switchCanEmlsAdModr(elemn) {
let state = $(elemn).hasClass("active");
if (state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
switchCanEmlsAd(elemn);
} else {
// $(elemn).prop("checked", true);
}
return false;
} else if (!state) {
switchCanEmlsAd(elemn);
}
}
function switchBnAdModr(elemn) {
let state = $(elemn).hasClass("active");
if (state) {
if (confirm("Убрать объект из рекламы? Если показ в рекламе уже был начат, то все ротации по объекту будут остановлены.")) {
switchBnAd(elemn);
} else {
// $(elemn).prop("checked", true);
}
return false;
} else if (!state) {
switchBnAd(elemn);
}
}
function advertsModerationSwitch(elemn) {
let object_id = $(elemn).data("id");
//console.log(object_id);
let user_id = $("#session_user_id").val();
let state = $(elemn).prop("checked");
$(".actionAdv").hide();
$('#advertisings_moderation__' + object_id).show();
$(elemn).prop("checked", !state);
//if ($object_id > 0) {
$.ajax({
url: '/ajax/dataClass/dataModerationClass.php',
method: "post",
data: {
'get_user_moderation': 1,
'user_id': user_id,
'object_id': object_id,
},
success: function(data) {
// console.log(data);
var res = JSON.parse(data);
if (!isEmpty(res.modr) || !isEmpty(res.obj)) {
console.log(res.obj.add_to_avito_feed);
if (res.modr.add_to_yandex_feed > 0 || res.obj.add_to_yandex_feed > 0) {
$('#advertisings_moderation__' + object_id + ' .addToFreeAdv').addClass('active');
} else {
$('#advertisings_moderation__' + object_id + ' .addToFreeAdv').removeClass('active');
}
if (res.modr.add_to_avito_feed > 0 || res.obj.add_to_avito_feed > 0) {
$('#advertisings_moderation__' + object_id + ' .addToAvito').addClass('active');
} else {
$('#advertisings_moderation__' + object_id + ' .addToAvito').removeClass('active');
}
if (res.modr.add_to_cian_feed > 0 || res.obj.add_to_cian_feed > 0) {
$('#advertisings_moderation__' + object_id + ' .addToCian').addClass('active');
} else {
$('#advertisings_moderation__' + object_id + ' .addToCian').removeClass('active');
}
if (res.modr.add_to_domclick_feed > 0 || res.obj.add_to_domclick_feed > 0) {
$('#advertisings_moderation__' + object_id + ' .addToDomClick').addClass('active');
} else {
$('#advertisings_moderation__' + object_id + ' .addToDomClick').removeClass('active');
}
if (res.modr.add_to_emls_feed > 0 || res.obj.add_to_emls_feed > 0) {
$('#advertisings_moderation__' + object_id + ' .addToEMLS').addClass('active');
} else {
$('#advertisings_moderation__' + object_id + ' .addToEMLS').removeClass('active');
}
if (res.modr.add_to_bn_feed > 0 || res.obj.add_to_bn_feed > 0) {
$('#advertisings_moderation__' + object_id + ' .addToBn').addClass('active');
} else {
$('#advertisings_moderation__' + object_id + ' .addToBn').removeClass('active');
}
}
if (!isEmpty(res.modr)) {
$('#advertisings_moderation__' + object_id + ' .send_moderaion').hide();
$('#advertisings_moderation__' + object_id + ' .done_send_moderation').show();
if (res.modr.is_moderation == 1) {
$('#advertisings_moderation__' + object_id + ' .done_send_moderation').text("Подтверждено");
}
} else {
$('#advertisings_moderation__' + object_id + ' .send_moderaion').show();
$('#advertisings_moderation__' + object_id + ' .done_send_moderation').hide();
}
$('#moderation_who_work_input_' + object_id).html(res.html);
$('#moderation_who_work_' + object_id).fastselect({
placeholder: 'Ответственные',
})
}
});
return false;
}
function send_moderation(object_id) {
var arr_who_work = $('#moderation_who_work_' + object_id).val();
var select_place = false;
//console.log(arr_who_whork);
$('#advertisings_moderation__' + object_id + ' .actionJW').each(function() {
if ($(this).hasClass('active')) {
select_place = true;
}
});
if (!select_place) {
alert("Вы не выбрали рекламные площадки!");
} else if (isEmpty(arr_who_work)) {
alert("Не выбраны модераторы!");
} else {
var comment = $('#moderation_comment_' + object_id).val();
// console.log(comment);
$.ajax({
url: '/ajax/dataClass/dataModerationClass.php',
method: "post",
data: {
'send_moderation': 1,
'object_id': object_id,
'who_work': JSON.stringify(arr_who_work),
'comment': comment,
},
success: function(data) {
//console.log(data);
var res = JSON.parse(data);
if (res.result == 'done') {
$('#addToAdvertSwitcher__' + object_id).prop('checked', true);
$('#advertisings_moderation__' + object_id + ' .send_moderaion').hide();
$('#advertisings_moderation__' + object_id + ' .done_send_moderation').show();
$('#advertisings_moderation__' + object_id + ' .done_send_moderation').text("Отправлено");
}
}
});
}
}
function confirm_moderation(object_id) {
$.ajax({
url: '/ajax/dataClass/dataModerationClass.php',
method: "post",
data: {
'confirm_moderation': 1,
'object_id': object_id,
},
success: function(data) {
console.log(data);
var res = JSON.parse(data);
if (res.result == 'done') {
$('#addToAdvertSwitcher__' + object_id).prop('checked', true);
$('#advertisings__' + object_id + ' .send_moderaion').hide();
$('#advertisings__' + object_id + ' .done_send_moderation').show();
}
}
});
}
function check_metro_add_object() {
if ($('#country_list_add_object').val() == 171) {
if ($('.id_rf_region option:selected').val() === '1' || $('.id_rf_region option:selected').val() === '19' ||
$('.id_rf_region option:selected').val() === '37' || $('.id_rf_region option:selected').val() === '55' ||
$('.id_rf_region option:selected').val() === '57' || $('.id_rf_region option:selected').val() === '66' || $('.id_rf_region option:selected').val() === '69') {
$('.metro_spb').hide();
$('.metro_other').show();
$('.custom-time-metro').show();
} else if ($('.id_rf_region option:selected').val() === '2') {
$('.metro_spb').show();
$('.custom-time-metro').show();
$('.metro_other').hide();
} else {
$('.metro_spb').hide();
$('.metro_other').hide();
$('.custom-time-metro').hide();
}
} else {
$('.metro_spb').hide();
$('.metro_other').hide();
$('.custom-time-metro').hide();
}
}
function confirmOnClients(clients) {
var user_id = $('#session_user_id').val();
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
var clients_id = clients;
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'confirm_on_clients',
clients_id: clients_id,
user_id: user_id,
all: all,
}, )
.then((response) => {
console.log(response.data);
let funnel_id = $('#funnelIdClients').val();
let use_custom_funnel = $('#useCustomFunnel').val();
let section = 'clients';
// if (req_id != 0) {
section = 'requisitions';
// if (document.location.pathname == '/requisitions.php') {
get_list();
// }
// }
//console.log('conf' + section);
// get_funnels(funnel_id, section, use_custom_funnel);
/*closeConfirmReq();
this.getList();*/
})
.catch(function(error) {
console.log(error);
});
}
function open_stagebars_funnels(reqId){
if($('#funnels_adjacent_a_req_'+reqId).hasClass('active_show')){
close_stagebars_funnels(reqId);
} else {
$('#funnels_adjacent_a_req_'+reqId).addClass('active_show');
$('#funnels_adjacent_list_req_'+reqId).show();
}
}
function close_stagebars_funnels(reqId){
$('#funnels_adjacent_a_req_'+reqId).removeClass('active_show');
$('#funnels_adjacent_list_req_'+reqId).hide();
}
function get_select_who_work_task(selector, section, id){
if(section == 'client' && id == 0){
id = $('#submitClientInfoTextButtonNew').attr('data-id');
}
if(section == 'object' && id == 0){
id = $('#submitTextButton').attr('data-id');
}
// offset-free: для найденного листинга (section=object) ответственного берём по иерархии видимости, а не по
// владельцу objects-строки (её нет, el.id коллизит). Маркер листинга — data-src="ext" окна задач (openEventsWindow).
var isExternal = (section == 'object') && ($('#submitTextButton').attr('data-src') === 'ext');
$(selector+" .check_who_work").html('<img src="../images/rocket-spinner.svg" width="45px">');
if(id > 0) {
//if ($(selector+" .check_who_work .who_work_tasks").length < 1) {
axios.post('/ajax/select_form_who_work_tasks.php',
{
id: id,
section: section,
is_external: isExternal ? 1 : 0
}
).then((response) => {
$(selector+" .check_who_work").html(response.data);
// $(selector+" .check_who_work .who_work_tasks").val(who_work);
$(selector+" .check_who_work .who_work_tasks").fastselect({
placeholder: 'Ответственный',
// onItemCreate: function() { $(this).find('.fstQueryInput').hide() },
});
})
.catch(function(error) {
console.log(error);
});
/* } else {
$(selector+" .check_who_work .who_work_tasks").fastselect().data('fastselect').destroy();
//$('#req-new-client-work-input').html(html);
//$(selector+" .check_who_work .who_work_tasks").val(who_work);
$(selector+" .check_who_work .who_work_tasks").fastselect({
placeholder: 'Ответственный',
onItemCreate: function() { $(this).find('.fstQueryInput').hide() },
});
}*/
}
}
function show_advert_all(){
$('.card-advert-all').removeClass('hidden');
$('#checkdox_avito_feed_all').prop('checked', true);
$('#checkdox_cian_feed_all').prop('checked', true);
$('#checkdox_yandex_feed_all').prop('checked', true);
$('#checkdox_dom_feed_all').prop('checked', true);
$('#checkdox_free_feed_all').prop('checked', true);
$('#checkdox_jcat_feed_all').prop('checked', true);
$('#checkdox_advert_all').prop('checked', true);
//$('#cian_promo_price_all').val('').attr('disabled', 'disabled');
}
function hide_advert_all() {
$('.card-advert-all').addClass('hidden');
}
$(document).ready(function() {
customSelect(".my-objects .card-advert-all select");
get_mes_clients();
get_mes_objects();
setInterval(get_mes_clients, 10000);
setInterval(get_mes_objects, 10000);
let area = $('body');
let areaHasLoaded = false;
if ($('.jw-new-residence').length)
area = $('.jw-new-residence');
/*if ($('.jw__objects').length)
area = $('.jw__objects');*/
if ($('.fr-system__objects').length)
area = $('.fr-system__objects');
if ($('.fr__users .users').length)
area = $('.fr__users .users');
if ($('.fr__users .partners').length)
area = $('.fr__users .partners');
if ($('.my-docs #docs_info_tab').length)
area = $('.my-docs #docs_info_tab');
/*if ($('.crm.new').length)
area = $('.crm.new');*/
if ($('#clients_list .clients').length)
area = $('#clients_list .clients');
/*if (area)
area.hide();*/
let preloaderDisabled = false;
if ($('.view-changer .view-kanban.active').length)
preloaderDisabled = true;
if (!area.hasClass('my-objects') && !area.hasClass('jw-clients') && !area.hasClass('jw-requisitions') && !area.hasClass('jw-agency-objects')) {
if (!preloaderDisabled) {
let loaderInterval = setInterval(() => {
if (area) {
//console.log({area});
if (
$('.object-content__preloader').css('display') == 'block' &&
!area.text().trim().length == 0
) {
$('.object-content__preloader').hide();
if (area.css('display') == 'none' || area.hasClass('hidden'))
area.show();
areaHasLoaded = true;
} else {
$('.object-content__preloader').show();
}
}
if (areaHasLoaded || area) {
$('.object-content__preloader').hide();
if (area) {
if (area.css('display') == 'none' || area.hasClass('hidden'))
area.show();
}
clearInterval(loaderInterval);
}
}, 600);
} else {
$('.object-content__preloader').hide();
}
}
$('body').on('click', '#confirm_button_group .confirmClient, .confirmExtensionRequisition, .unconfirmExtensionRequisition, .view_history_tasks', function() {
localStorage['collapse_push'] = 1;
checkTop();
$('.confirm_mess').html('');
get_mes_clients();
get_mes_objects();
});
$('body').on('click', '#total_confirm', function() {
localStorage['collapse_push'] = 0;
checkTop();
$('.confirm_mess').html('');
get_mes_clients();
get_mes_objects();
});
$('body').on('click', '.acceptAllClient', function () {
$('.confirm_mess .client-confirm[id^="client-confirm_message_other_"]').each(function () {
const messageId = $(this).attr('id').replace('client-confirm_message_other_', '');
const clientId = $(this).find('.confirmClient').attr('data-id');
const whoWork = $(this).find('.confirmClient').attr('data-manager');
const reqId = $(this).find('.confirmClient').attr('data-req');
const tr = $(this).find('.confirmClient').attr('data-tr');
//console.log({messageId, clientId, whoWork, reqId, tr});
// Убираем уведомление с экрана
$(this).remove();
// Формируем параметры запроса
let param = 'id=' + clientId +
'&who_work=' + whoWork +
'&tr=' + tr +
'&req_id=' + reqId;
// Отправляем AJAX-запрос на сервер
$.ajax({
url: '/ajax/confirmClient.php?' + param,
success: function(res) {
//console.log("Клиент принят", res);
// Обновляем интерфейс
let sort_order = $('select[name=sort_order]').val();
if ($('.pagination li.active a').text()) {
get_list($('.pagination li.active a').text(), sort_order, false);
} else {
get_list(null, sort_order, false);
}
// Удаляем бейджики
$("#menu_clients .jw__counter.new").remove();
$("#filter_confirm .counter").remove();
// Добавляем новые (если есть)
if (res != 0) {
var html = '<b class="jw__counter new">' + res + '</b>';
var html2 = '<span class="counter">' + res + '</span>';
$("#menu_clients span").after(html);
$("#filter_confirm a").after(html2);
}
// Обновляем воронки и уведомления
let funnel_id = $('#funnelIdClients').val();
let use_custom_funnel = $('#useCustomFunnel').val();
let section = 'clients';
if (reqId != 0) {
section = 'requisitions';
if (document.location.pathname == '/requisitions.php') {
requisitions.getList();
}
}
get_funnels(funnel_id, section, use_custom_funnel);
get_mes_clients(); // обновляем список уведомлений
}
});
});
// Удаляем кнопки "Свернуть всё" и "Принять всё", если уведомлений больше нет
if ($('.confirm_mess .object-confirm, .confirm_mess .client-confirm').length === 0) {
$('#confirm_button_group').remove();
}
checkTop();
});
$('body').on('click', '.acceptAllObjects', function () {
const $notifications = $('.confirm_mess .object-confirm');
const total = $notifications.length;
let completed = 0;
if (total === 0) {
alert("Нет объектов для принятия.");
return;
}
// Показываем прелоадер и скрываем кнопки
$notifications.each(function () {
const objectId = $(this).find('.confirmObject').attr('data-record-id');
if (objectId) {
$('#object-confirm__preloader__' + objectId).show();
$('#object-confirm__buttons__' + objectId).hide();
// Отправляем AJAX-запрос
$.ajax({
url: '/ajax/confirmObject.php?id=' + objectId,
success: function() {
console.log("Объект принят:", objectId);
completed++;
// Удаляем уведомление из DOM
$('#object-confirm_message' + objectId).remove();
// Если все запросы выполнены — перезагружаем страницу
if (completed === total) {
window.location.reload();
}
},
error: function() {
completed++;
if (completed === total) {
window.location.reload();
}
}
});
} else {
completed++;
}
});
// На случай, если все элементы не имеют `objectId` — избегаем бесконечного ожидания
if (total === completed) {
window.location.reload();
}
});
$(".complete-button").click(function() {
var id = $(this).attr('data-id');
$("#groupAB__" + id).toggleClass("active");
return false;
});
// Отправка формы добавлени/редактирования Клиента
$('#addEditNew').submit(function(e) {
e.preventDefault();
var ellada = $('#elladaAgency').attr("data-value");
var fio = $('#addEditNew [name=fio]').val();
var email = $('#addEditNew [name=email]').val();
var phone = $('#addEditNew [name=phone]').val();
var client_type = $("#ms-new-client-type").val();
var wazzap_chat_type = $("#wazzap_chat_type").val();
var wazzap_chat_id = $("#wazzap_chat_id").val();
var wazzap_channel_id = $("#wazzap_channel_id").val();
var wazzap_user_id = $("#wazzap_user_id").val();
var wazzap_integration_id = $("#wazzap_integration_id").val();
var client_rol = $("#ms-new-client-rol").val();
var property_type = $("#ms-new-client-objects-type").val();
var object_type = $("#ms-new-client-object").val();
var budget = $('#addEditNew [name=budget]').val();
var comment = $('#addEditNew [name=opis]').val().replace(/\n/g, "<br>");
var who_work = 0;
who_work = $("#ms-new-client-work").val();
var source = $("#ms-new-client-source").val();
var employee = $("#ms-new-client-partner").val();
var birthday = $('#addEditNew [name=birthday]').val();
var dArr = birthday.split(".");
var date = dArr[2] + "-" + dArr[1] + "-" + dArr[0];
var stage = 1;
$("#addEditNew .stagebar .stage.active .crm__small-stage").each(function() {
stage = $(this).data("stage");
});
var hot = 0
if ($('#addEditNew .form-block__hot-client').hasClass('active')) {
hot = 1;
}
var priority = 0
if ($('#addEditNew .form-block__p1-client').hasClass('active')) {
priority = 1;
}
if ($('#addEditNew .form-block__p2-client').hasClass('active')) {
priority = 2;
}
if ($('#addEditNew .form-block__p3-client').hasClass('active')) {
priority = 3;
}
if ($('#addEditNew .form-block__p4-client').hasClass('active')) {
priority = 4;
}
var id = $('#addEditNew [name=id]').val();
var confirm = 0;
confirm = $('#addEditNew #confirm').val();
var of_objects = $('#of_objects').val();
var phone2 = [];
$("#addEditNew [name=phone2]").each(function() {
if ($(this).val() != '') {
phone2.push($(this).val());
}
});
var objects = '';
if (object_type) {
objects = JSON.stringify(object_type);
}
var funnel_id = $("#ms-new-funnel").val();
// console.log(client_rol);
var text = "";
var error = false;
$(this).find('input, textarea, checkbox, select').each(function() {
if ($(this).attr('required') && $(this).val() === '') {
let label = $(this).closest('.form-block').find('label, .label').text();
text += 'Поле «' + label + '» обязательно к заполнению.<br/>';
$(this).addClass('invalid');
} else {
$(this).removeClass('invalid');
}
});
var id_reqs = '';
id_reqs = $("#ms-new-client-req").val();
var persone_no_ip = 0;
if($('#persone_yes_ip').prop('checked')){
persone_no_ip = 1;
}
var persone_gender = 0;
if($('#persone_gender_woman').prop('checked')){
persone_gender = 1;
}
var agencyID = $('#session_agency_id').val();
if (ellada === '0' && agencyID != 8257 && agencyID != 7384 && agencyID != 11082 && agencyID != 11082
&& agencyID != 12556 && agencyID != 13154 && agencyID != 14134 && agencyID != 11417
&& agencyID != 12028 && agencyID != 18237 && agencyID != 19111
&& agencyID != 19794 && agencyID != 22666) {
if (agencyID == 8435 && funnel_id == 283) {
} else {
if (client_rol == null) {
text += "Не заполнено поле Роль клиента<br>";
error = true;
$('#addEditNew #ms-new-client-rol').addClass('invalid');
$('#addEditNew #ms-new-client-rol').closest('.fstElement').addClass('invalid');
// $('#addEditNew .error_msg').html(text).show();
} else {
$('#addEditNew #ms-new-client-rol').removeClass('invalid');
$('#addEditNew #ms-new-client-rol').closest('.fstElement').removeClass('invalid');
}
if (client_type == null) {
text += "Не заполнено поле Тип клиента<br>";
error = true;
$('#addEditNew #ms-new-client-type').addClass('invalid');
$('#addEditNew #ms-new-client-type').closest('.fstElement').addClass('invalid');
//$('#addEditNew .error_msg').html(text).show();
} else {
$('#addEditNew #ms-new-client-type').removeClass('invalid');
$('#addEditNew #ms-new-client-type').closest('.fstElement').removeClass('invalid');
}
}
}
//Ввод обязательных полей для ПИА (email, рекламный источник)
if (agencyID == 4135 || agencyID == 7384 || agencyID == 7864 || agencyID == 13154 || agencyID ==19111) {
/*if(ac.isEmpty(email)){
text += "Не заполнено поле email<br>";
error = true;
$('#addEditNew input[name="email"]').addClass('invalid');
} else {
if(ac.validateEmail(email) === false){
text += "Неверный формат email<br>";
error = true;
$('#addEditNew input[name="email"]').addClass('invalid');
} else {
$('#addEditNew input[name="email"]').removeClass('invalid');
}
}*/
//console.log(source);
if (isEmpty(source) || source == 0) {
text += "Не выбран рекламный источник<br>";
error = true;
$('#addEditNew #ms-new-client-source').addClass('invalid');
$('#addEditNew #ms-new-client-source').closest('.fstElement').addClass('invalid');
} else {
$('#addEditNew #ms-new-client-source').removeClass('invalid');
$('#addEditNew #ms-new-client-source').closest('.fstElement').removeClass('invalid');
}
}
var poles = {};
if (typeof client_fields != "undefined") {
if (!client_fields.isEmpty(client_fields.clientFields)) {
for (var i = 0; i < client_fields.clientFields.length; i++) {
if (!client_fields.isEmpty(client_fields.fieldModels['model_' + client_fields.clientFields[i].id]) && client_fields.fieldModels['model_' + client_fields.clientFields[i].id]) {
if (client_fields.clientFields[i].type == 4) {
poles['model_' + client_fields.clientFields[i].id] = 1;
} else {
poles['model_' + client_fields.clientFields[i].id] = client_fields.fieldModels['model_' + client_fields.clientFields[i].id];
}
}
if (client_fields.clientFields[i].is_podgroup > 0) {
for (var j = 0; j < client_fields.clientFields[i].podgroups.length; j++) {
//console.log(client_fields.fieldModels['modelp_11']);
if (!client_fields.isEmpty(client_fields.fieldModels['modelp_' + client_fields.clientFields[i].podgroups[j].id]) && client_fields.fieldModels['modelp_' + client_fields.clientFields[i].podgroups[j].id]) {
if (client_fields.clientFields[i].podgroups[j].type == 4) {
poles['modelp_' + client_fields.clientFields[i].podgroups[j].id] = 1;
} else {
poles['modelp_' + client_fields.clientFields[i].podgroups[j].id] = client_fields.fieldModels['modelp_' + client_fields.clientFields[i].podgroups[j].id];
}
}
}
}
if (client_fields.clientFields[i].is_required > 0) {
if (client_fields.isEmpty(client_fields.fieldModels['model_' + client_fields.clientFields[i].id])) {
error = true;
text += "<p>Не заполнено поле: " + client_fields.clientFields[i].title + "</p>";
$('#custom_client_' + client_fields.clientFields[i].id).addClass('invalid');
} else {
$('#custom_client_' + client_fields.clientFields[i].id).removeClass('invalid');
}
}
}
}
}
var rynok = 1;
if ($('#rynok_2').prop('checked')) {
rynok = 2;
}
//console.log(rynok);
var yes_object = 0;
if ($('#addEditNew [name=yes_object]').prop('checked')) {
yes_object = 1;
}
var yes_doc = 0;
if ($('#addEditNew [name=yes_doc]').prop('checked')) {
yes_doc = 1;
}
var yes_bank = 0;
if ($('#addEditNew [name=yes_bank]').prop('checked')) {
yes_bank = 1;
}
var yes_resolve = 0;
if ($('#addEditNew [name=yes_resolve]').prop('checked')) {
yes_resolve = 1;
}
var send_web_hook = 0;
if ($('#addEditNew [name=send_web_hook]').prop('checked')) {
send_web_hook = 1;
}
var yes_issue = 0;
if ($('#addEditNew [name=yes_issue]').prop('checked')) {
yes_issue = 1;
}
var yes_brak = 0;
if ($('#addEditNew [name=yes_brak]').prop('checked')) {
yes_brak = 1;
}
var banks = {};
$('.probank .list_bank').each(function() {
var bank = {};
var bankid = $(this).find('.adv_activities').attr("data-id");
var bankname = $(this).find('.adv_activities').text();
var bankemp = $(this).find('.adv_activities').attr("data-employee");
var bankdate = $(this).find('.adv_activities').attr("data-date");
bank.employee = bankemp;
bank.date = bankdate;
bank.name = bankname;
banks[bankid] = bank;
});
var resolve = {};
$('.proresolve .list_bank').each(function() {
var resol = {};
var resolid = $(this).find('.adv_activities').attr("data-id");
var resolname = $(this).find('.adv_activities').text();
var resolsumma = $(this).find('.adv_activities').attr("data-summa");
var resolprstavka = $(this).find('.adv_activities').attr("data-prstavka");
var resolsrok = $(this).find('.adv_activities').attr("data-srok");
var resolusloviya = $(this).find('.adv_activities').attr("data-usloviya");
resol.name = resolname;
resol.summa = resolsumma;
resol.prstavka = resolprstavka;
resol.srok = resolsrok;
resol.usloviya = resolusloviya;
resolve[resolid] = resol;
});
var contracts = [];
$('#list_contracts_client_form div label').each(function() {
var contr = $(this).closest("div");
if (contr.length > 0 && contr.attr("data-client") == 0 && contr.attr("data-contract") == 0) {
contracts.push(JSON.parse(contr.attr("data-data")));
}
})
var params = {
add_edit_client: 'add_edit_client',
fio: fio,
email: email,
phone: phone,
phone2: JSON.stringify(phone2),
work_type: JSON.stringify(client_type),
role: JSON.stringify(client_rol),
activities: JSON.stringify($('#ms-new-client-activities').val()),
type: JSON.stringify(property_type),
objects: objects,
budget: budget,
opis: comment,
who_work: who_work,
source: source,
employee: employee,
birthday: date,
confirm: confirm,
status: stage,
stage: stage,
hot: hot,
priority: priority,
id: id,
of_objects: of_objects,
rynok: rynok,
yes_object: yes_object,
jc: JSON.stringify($('#ms_new_blocks').val()),
ante_pr: $('#addEditNew [name=ante_pr]').val(),
ante_rub: $('#addEditNew [name=ante_rub]').val(),
comment_ipoteka: $('#addEditNew [name=comment]').val(),
yes_doc: yes_doc,
number_doc: $('#addEditNew [name=number_doc]').val(),
date_doc: $('#addEditNew [name=date_doc]').val(),
doc_komis_pr: $('#addEditNew [name=doc_komis_pr]').val(),
doc_komis: $('#addEditNew [name=doc_komis]').val(),
yes_bank: yes_bank,
date_bank: $('#addEditNew [name=date_bank]').val(),
employee_bank: $('#addEditNew [name=employee_bank]').val(),
banks: JSON.stringify(banks),
yes_resolve: yes_resolve,
resolve: JSON.stringify(resolve),
comment_resolve: $('#addEditNew [name=comment_resolve]').val(),
yes_issue: yes_issue,
bank_issue: JSON.stringify($('#addEditNew #ms-new-client-bank-issue').val()),
rate_issue: $('#addEditNew [name=rate_issue]').val(),
term_issue: $('#addEditNew [name=term_issue]').val(),
send_web_hook: send_web_hook,
yes_brak: yes_brak,
relationship: $('#addEditNew [name=relationship]').val(),
summa_object: $('#addEditNew [name=summa_object]').val(),
age: $('#addEditNew [name=age]').val(),
co_borrower_fio: $('#addEditNew [name=co_borrower_fio]').val(),
co_borrower_age: $('#addEditNew [name=co_borrower_age]').val(),
contacts: $('#addEditNew [name=contacts]').val(),
co_borrower_dohod: $('#addEditNew [name=co_borrower_dohod]').val(),
income: $('#addEditNew [name=income]').val(),
credit_load: $('#addEditNew [name=credit_load]').val(),
contracts: JSON.stringify(contracts),
wazzap_chat_type: wazzap_chat_type,
wazzap_chat_id: wazzap_chat_id,
wazzap_channel_id: wazzap_channel_id,
wazzap_user_id: wazzap_user_id,
wazzap_integration_id: wazzap_integration_id,
persone_no_ip: persone_no_ip,
passport: $('#addEditNew [name=passport]').val(),
date_of_issue_passport: $('#addEditNew [name=date_of_issue_passport]').val(),
passport_issued_by: $('#addEditNew [name=passport_issued_by]').val(),
birthplace: $('#addEditNew [name=birthplace]').val(),
registration_address: $('#addEditNew [name=registration_address]').val(),
post_address: $('#addEditNew [name=post_address]').val(),
persone_info_bank: $('#addEditNew [name=persone_info_bank]').val(),
persone_snils: $('#addEditNew [name=persone_snils]').val(),
persone_nationality: $('#addEditNew [name=persone_nationality]').val(),
persone_gender: persone_gender,
persone_full_name: $('#addEditNew [name=persone_full_name]').val(),
persone_short_name: $('#addEditNew [name=persone_short_name]').val(),
persone_ogrn: $('#addEditNew [name=persone_ogrn]').val(),
persone_inn: $('#addEditNew [name=persone_inn]').val(),
persone_kpp: $('#addEditNew [name=persone_kpp]').val(),
persone_legal_address: $('#addEditNew [name=persone_legal_address]').val(),
persone_fact_address: $('#addEditNew [name=persone_fact_address]').val(),
persone_name_bank: $('#addEditNew [name=persone_name_bank]').val(),
persone_bik_bank: $('#addEditNew [name=persone_bik_bank]').val(),
persone_rs_bank: $('#addEditNew [name=persone_rs_bank]').val(),
persone_kors_bank: $('#addEditNew [name=persone_kors_bank]').val(),
persone_fio_rukovod: $('#addEditNew [name=persone_fio_rukovod]').val(),
persone_powers: $('#addEditNew [name=persone_powers]').val(),
persone_kod_podrazdelenia: $('#addEditNew [name=persone_kod_podrazdelenia]').val(),
id_reqs: id_reqs
}
if (funnel_id != '') {
params['funnel_id'] = funnel_id;
params['new_funnel_id'] = funnel_id;
//console.log(var stage = $('#kanban_item_li_' + id_client).closest('.kanban__sortable').data("stage"););
}
if ($("#ms-new-funnel").is(":visible")) {
params['new_funnel_id'] = $("#ms-new-funnel").val();
}
$('#block_client_kredit .form-block').each(function() {
$(this).find('select').each(function() {
params[$(this).attr('name')] = JSON.stringify($(this).val());
});
$(this).find('input[type=text]').each(function() {
params[$(this).attr('name')] = $(this).val();
});
$(this).find('input[type=checkbox]').each(function() {
if ($(this).prop('checked')) {
params[$(this).attr('name')] = 1;
} else {
params[$(this).attr('name')] = 0;
}
});
$(this).find('input[type=radio]:checked').each(function() {
params[$(this).attr('name')] = $(this).attr('id');
});
});
// Поля для заполнения интерактивных документов
$('#addEditNew input[name^="variables"]').each(function() {
params[$(this).attr('name')] = ((typeof $(this).val() !== "undefined") ? $(this).val() : "");
});
if (error) {
$('#addEditNew .error_msg').html(text).show();
if ($(this).find('.invalid:visible').length > 0) {
let offset = Math.abs($(this).offset().top - $(this).find('.invalid:visible').first().offset().top);
console.log(offset);
$('.full_modal-bg').stop().animate({ scrollTop: Math.round(offset) }, '300');
} else {
$('.full_modal-bg').stop().animate({ scrollTop: 0 }, '500');
}
} else {
if($('#session_user_id').val() == 5238 || $('#session_user_id').val() == 14050){
if(confirm == 0){
confirm_object_req_check.check_obj(id, who_work).then(data => {
console.log(data);
if(data != 0 && data.length > 0){
confirm_object_req_check.open();
} else {
save_client(params, funnel_id, poles);
}
});
} else {
save_client(params, funnel_id, poles);
}
/**/
} else {
$('#addEditNew .load-bar').removeClass('hidden');
$('#newClient').addClass('hidden');
//console.log(params);
$.post('/ajax/addEditClient.php',
params,
function(data) {
// console.log(data);
// console.log(funnel_id);
if (data > 1) {
//console.log(funnel_id);
if ($('.view-kanban.active').length > 0) {
if (id && id !== undefined) {
if (funnel_id != 0) {
stage = $('#kanban_item_li_' + id).closest('.kanban__sortable').data("stage");
//console.log(stage);
}
if(document.location.pathname == '/clients.php'){
get_kanban_li(id, stage, priority);
// console.log(funnel_id);
let globalFunnel = $('#funnelIdClients').val();
if(funnel_id != globalFunnel){
$(`#kanban_item_li_${id}`).hide();
get_count_clients();
}
}
} else {
let sort_order = $('select[name=sort_order]').val();
get_list(null, sort_order, false);
}
} else {
let sort_order = $('select[name=sort_order]').val();
if ($('.pagination li.active a').text()) {
get_list($('.pagination li.active a').text(), sort_order, false);
} else {
get_list(null, sort_order, false);
}
}
//Сохранение кастомных полей
if (typeof client_fields != "undefined") {
client_fields.addEditFields(poles, data);
}
// console.log(id_reqs.split(','));
if (id_reqs != '') {
if (document.location.pathname == '/requisitions.php') {
var reqs = id_reqs.split(',');
for (var req_id in reqs) {
if (!isNaN(parseInt(reqs[req_id]))) {
var req_client = requisitions.req['req' + reqs[req_id]];
if (req_client && !isEmpty(req_client.client)) {
requisitions.req['req' + reqs[req_id]].client.fio = fio;
}
}
}
//requisitions.getList();
//console.log()
//getClient(data, JSON.parse(id_reqs)[0]);
}
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'update_req',
req_id: id_reqs,
object_id: objects,
client_id: data,
},
)
.then((response) => {
//console.log(response.data);
// var res = response.data;
// this.closeReqform();
})
.catch(function(error) {
console.log(error);
});
}
if (window.location.pathname == '/add-object.php') {
getSelectClients(data);
add_object_new_client_input_vue(data);
}
if (window.location.pathname == '/my-objects.php' || window.location.pathname == '/agency-objects.php') {
add_object_new_client_input_vue(data);
}
if ($('#client-history__bg').css("display") == 'block') {
if(document.location.pathname == '/requisitions.php'){
if(parseInt($("#client_history").attr("data-active-req")) == id){
openClientEventsWindowNew(id, $('#session_to_send').val());
}
} else {
openClientEventsWindowNew(id, $('#session_to_send').val());
}
}
$('#send_bg_new').fadeOut(500);
$("#send_bg_new .edit-modal").toggle(10);
$("body").removeClass("lock");
var komy = 0;
$('#komy option').each(function() {
if ($(this).val() == email) komy++;
});
if (komy == 0) {
$('#komy').prepend('<option value="' + email + '">' + fio + '</option>');
}
if (typeof req_form == 'object') {
if (req_form.isClientForm) {
req_form.clientId = parseInt(data);
req_form.isClientForm = false;
req_form.openReqForm(1);
$('#req_form').removeAttr("style");
}
}
$('#addEditNew .load-bar').addClass('hidden');
$('#newClient').removeClass('hidden');
} else {
$('#addEditNew .error_msg').html(data).show();
//$('#addEditNew .error_msg').next().text('Клиент '+fio);
$('#addEditNew .modal-title').text('Клиент ' + fio);
$(".full_modal-bg").stop().animate({ scrollTop: 0 }, 500);
$('#addEditNew .load-bar').addClass('hidden');
$('#newClient').removeClass('hidden');
}
});
}
}
//console.log(fio);
return false;
});
$("body").on('click', '#send_bg_plan .closer', function() {
$("#send_bg_plan").fadeOut(500);
$("#send_plan").hide(10);
$("body").removeClass("lock");
return false;
});
$('body').on('click', '#liObject', function() {
$('#liGlobal').removeClass('active');
$('#liIpoteka').removeClass('active');
$('#liCredit').removeClass('active');
$('#liReq').removeClass('active');
$('#liDeals').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(1)').show();
});
$('body').on('click', '#liGlobal', function() {
$('#liObject').removeClass('active');
$('#liIpoteka').removeClass('active');
$('#liCredit').removeClass('active');
$('#liReq').removeClass('active');
$('#liInnerDocs').removeClass('active');
$('#liDeals').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(0)').show();
});
$('body').on('click', '#liIpoteka', function() {
$('#liObject').removeClass('active');
$('#liGlobal').removeClass('active');
$('#liCredit').removeClass('active');
$('#liReq').removeClass('active');
$('#liInnerDocs').removeClass('active');
$('#liDeals').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(2)').show();
});
$('body').on('click', '#liCredit', function() {
$('#liObject').removeClass('active');
$('#liGlobal').removeClass('active');
$('#liIpoteka').removeClass('active');
$('#liReq').removeClass('active');
$('#liInnerDocs').removeClass('active');
$('#liDeals').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(3)').show();
});
$('body').on('click', '#liReq', function() {
$('#liObject').removeClass('active');
$('#liGlobal').removeClass('active');
$('#liIpoteka').removeClass('active');
$('#liCredit').removeClass('active');
$('#liInnerDocs').removeClass('active');
$('#liDeals').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(4)').show();
if (typeof requisitions_client == 'object') {
requisitions_client.getList();
}
});
$('body').on('click', '#liDeals', function() {
$('#liObject').removeClass('active');
$('#liGlobal').removeClass('active');
$('#liIpoteka').removeClass('active');
$('#liCredit').removeClass('active');
$('#liReq').removeClass('active');
$('#liInnerDocs').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(6)').show();
if (typeof deals_client == 'object') {
deals_client.getList();
}
});
$('body').on('click', '#liInnerDocs', function() {
$('#liObject').removeClass('active');
$('#liGlobal').removeClass('active');
$('#liIpoteka').removeClass('active');
$('#liCredit').removeClass('active');
$('#liReq').removeClass('active');
$('#liDeals').removeClass('active');
$(this).addClass('active');
$('#addEditNew .tabs__content').hide();
$('#addEditNew .tabs__content:eq(5)').show();
let source_id = $('#addEditNew input[name="id"]').val();
getFormVariables("clients", source_id);
});
// Открыть блок с подробностями
$('body').on('click', '#clients_list .toggleClient', function() {
var id = $(this).data("id");
var user_allow_edit = $(this).data("allow-edit");
if ($('#client__' + id + ' .main-info').hasClass("hidden")) {
$.get("/ajax/getClientMainInfo.php?id=" + id + "&user_allow_edit=" + user_allow_edit, function(data) {
$('#client__' + id + ' .main-info').replaceWith(data);
$('#client__' + id + ' .main-info').toggleClass('hidden');
$('#client__' + id + ' .client_row').toggleClass('hidden');
});
} else {
$('#client__' + id + ' .main-info').toggleClass('hidden');
$('#client__' + id + ' .client_row').toggleClass('hidden');
}
});
// Кнопка добавить клиента
$('body').on('click', '.add_client_new', function() {
$("#addReqClientForm").hide();
var object = $(this).data("object");
var add_user = $(this).data("adduser");
var req_id = null;
if ($(this).attr("data-req")) {
req_id = $(this).attr("data-req");
}
var client_name = null;
if ($(this).attr("data-client-name")) {
client_name = $(this).attr("data-client-name");
}
add_client_new(object, add_user, req_id, client_name);
return false;
});
$('body').on('click', '.complete-action-button', function() {
var event_id = $(this).attr('id').replace('groupAB__', '');
var cancel = parseInt($(this).attr("data-cancel"));
//console.log(isNaN(cancel));
if (cancel == 0 || isNaN(cancel)) {
var done = 0;
$(this).toggleClass('active');
if ($(this).hasClass('active')) {
done = 1;
}
if (done == 0) {
$(this).closest('.chat-complete').find('.evCancel').removeClass('hidden');
} else {
$(this).closest('.chat-complete').find('.evCancel').addClass('hidden');
}
// console.log(done);
$.post('/ajax/addEditClient.php', { done_event: event_id, done: done }, function(data) {
getCalendar();
});
}
});
$('body').on('click', '.complete-action-button-obj', function() {
var event_id = $(this).attr('id').replace('groupAB__', '');
// событие найденного листинга парсера завершается в своей таблице (data-from='listing'), иначе user_object_events
var from = $(this).attr('data-from') || 'objects';
var done = 0;
$(this).toggleClass('active');
if ($(this).hasClass('active')) {
done = 1;
}
//console.log(done);
$.post('/ajax/addEditObject.php', { done_event: event_id, done: done, from: from }, function(data) {
//console.log(data);
if (typeof type_calendar == 'object') {
type_calendar = 'object';
}
getCalendar();
});
});
// Кнопка inssmart
$("body").on('click', '.openInssmartModule', () => {
$('#inssmart_modal').show();
$('#inssmart_modal').css('zIndex', '99987000');
});
$("body").on('click', '.ti-close', () => {
$("#inssmart_modal").hide();
});
//Кнопка редактирование
$("body").on('click', '.neweditClient', function() {
$('#addReqClientForm').show();
var id = $(this).attr('data-id');
var funnelId = $(this).data("funnel");
if (funnelId === undefined || funnelId == 0) {
$.post("/ajax/getFunnelFirst.php", function(dataf) {
console.log(dataf);
var res_funnels = JSON.parse(dataf);
if(res_funnels.is_stage == 0){
$('#is_show_funnel_null').val(0);
} else {
$('#is_show_funnel_null').val(1);
}
})
}
var req_id = 0;
if ($(this).attr("data-req")) {
req_id = $(this).attr("data-req");
}
if (req_id > 0) {
if (typeof requisitions == 'object') {
requisitions.getReq("req" + req_id);
} else if (typeof requisitions_client == 'object') {
requisitions_client.getReq("req" + req_id);
}
if ($('#client-history__bg').css('display') == 'block') {
$('#client-history__bg').css('zIndex', '99987');
}
} else {
editClientNew(id, funnelId);
}
return false;
});
// Возврат клиента из Закрытых
$("body").on('click', '.renewClient', function(e) {
e.preventDefault();
let id = $(this).attr('data-id');
if (confirm('Вы точно желаете восстановить этого клиента?')) {
renewClient(id);
}
return false;
});
// Возврат заявки из Закрытых
$("body").on('click', '.renewReq', function(e) {
e.preventDefault();
let id = $(this).attr('data-id');
if (confirm('Вы точно желаете восстановить эту заявку?')) {
renewReq(id, true);
}
return false;
});
// Отправка формы добавлени/редактирования Объекта
$('#upload-form [type="submit"]').on('click', function(e) {
e.preventDefault();
let form = $(this).closest('#upload-form');
let text = "";
let error = false;
$(form).find('input, textarea, checkbox, select').each(function() {
if ($(this).attr('required') && $(this).val() === '') {
let label = $(this).closest('.form-block').find('label, .label').text();
if (label)
text += 'Поле «' + label + '» обязательно к заполнению.<br/>';
$(this).addClass('invalid');
error = true;
} else {
$(this).removeClass('invalid');
}
});
$(form).find('#customFieldsInputsForm').find('input, textarea, checkbox').each(function() {
//console.log($(this).attr('name') + ': '+ $(this).val());
//if (!$(this).hasClass('invalid')) { // уже отвалидирован и не валиден
if ($(this).attr('required') && (!$(this).val() || $(this).val() === '')) {
let label = $(this).closest('.title-line').find('label, .label').text();
if (label)
text += 'Дополнительное поле «' + label + '» обязательно к заполнению.<br/>';
$(this).addClass('invalid');
error = true;
} else {
$(this).removeClass('invalid');
}
//}
});
$(form).find('#customFieldsInputsForm').find('select').each(function() {
//console.log($(this).attr('name') + ': '+ $(this).val());
//if (!$(this).closest('.fstElement').hasClass('invalid')) { // уже отвалидирован и не валиден
if (!$(this).val() || $(this).val() == 0)
$(this).val('');
if ($(this).attr('required') && (!$(this).val() || $(this).val() === '')) {
let label = $(this).closest('.title-line').find('label, .label').text();
if (label)
text += 'Дополнительное поле «' + label + '» обязательно к заполнению.<br/>';
$(this).closest('.fstElement').addClass('invalid');
error = true;
} else {
$(this).closest('.fstElement').removeClass('invalid');
}
//}
});
let ob_operation_type = $(form).find('[name="operation_type"]:checked').val();
let ob_type = $(form).find('[name="type"]:checked').val();
if ($('.cadastral-number').is(":visible")) {
if ($('input[name=cadastral_number]').is(":visible")) {
let cadastral = $('input[name=cadastral_number]');
if (($('#session_agency_id').val() === '13386' ||
(($('#session_agency_id').val() === '14794' || $('#session_agency_id').val() === '10982') && ob_type == 7) ||
($('#session_agency_id').val() === '12061' && ob_operation_type && ob_operation_type == 0 && ob_type && (ob_type == 1 || ob_type == 2 || ob_type == 3 || ob_type == 7))) && (!cadastral.val() || cadastral.val() === '')) {
text += "Необходимо указать Кадастровый номер<br>";
error = true;
cadastral.addClass('invalid');
} else {
cadastral.removeClass('invalid');
}
}
}
if ($('.cadastral-number-land').is(":visible")) {
if ($('input[name=cadastral_number_land]').is(":visible")) {
let cadastralLand = $('input[name=cadastral_number_land]');
if (($('#session_agency_id').val() === '13386' || (($('#session_agency_id').val() === '14794' || $('#session_agency_id').val() === '10982') && (ob_type == 3 || ob_type == 5)) ||
($('#session_agency_id').val() === '12061' && ob_operation_type && ob_type && (
(ob_operation_type == 0 && (ob_type == 1 || ob_type == 2 || ob_type == 3 || ob_type == 7)) ||
(ob_operation_type == 1 && (ob_type == 3 || ob_type == 7))
))) && (!cadastralLand.val() || cadastralLand.val() === '')) {
text += "Необходимо указать Кадастровый номер участка<br>";
error = true;
cadastralLand.addClass('invalid');
} else {
cadastralLand.removeClass('invalid');
}
}
}
if (!ob_operation_type) {
text += "Необходимо указать раздел<br>";
error = true;
$(form).find('[name="operation_type"]').closest('.button-row').addClass('invalid');
} else {
$(form).find('[name="operation_type"]').closest('.button-row').removeClass('invalid');
}
if (!ob_type) {
text += "Необходимо указать тип объекта<br>";
error = true;
$(form).find('[name="type"]').closest('.button-row').addClass('invalid');
} else {
$(form).find('[name="type"]').closest('.button-row').removeClass('invalid');
}
let ob_srok = $(form).find('[name="srok"]:checked').val();
if (ob_operation_type == 0 && !ob_srok) {
text += "Необходимо указать срок<br>";
error = true;
$(form).find('[name="srok"]').closest('.button-row').addClass('invalid');
} else {
$(form).find('[name="srok"]').closest('.button-row').removeClass('invalid');
}
let ob_adres = $(form).find('[name="adres"]').val();
let ob_address = $(form).find('[name="address"]').val();
if ((ob_address == 0 || typeof ob_address == "undefined") || (!ob_adres)) {
text += "Необходимо указать адрес объекта<br>";
error = true;
$(form).find('[name="address"]').addClass('invalid');
} else {
$(form).find('[name="address"]').removeClass('invalid');
}
let ob_comm_obj_id = $(form).find('[name="commercial_object_id"]:checked').val();
let ob_deal_type = $(form).find('[name="deal_type"]').val();
if (ob_type != 3 && ob_type != 5 && ob_type != 7 && ob_comm_obj_id != 6 && ob_comm_obj_id != 7 && ob_comm_obj_id != 9) {
let ob_etazh = $(form).find('[name="etazh"]').val();
if (ob_etazh == 0 || typeof ob_etazh == "undefined") {
text += "Необходимо указать этаж объекта<br>";
error = true;
$(form).find('[name="etazh"]').addClass('invalid');
} else {
$(form).find('[name="etazh"]').removeClass('invalid');
}
}
if (ob_type == 1 || ob_type == 2) {
let komnat = $(form).find('[name="komnat"]').val();
let ploshad_komn = $(form).find('[name="ploshad_komn"]').val();
if (!komnat) {
if (ob_type === 1) {
text += "Необходимо заполнить поле Комнат<br>";
} else {
text += "Необходимо заполнить поле Всего комнат в квартире<br>";
}
error = true;
$(form).find('[name="komnat"]').addClass('invalid');
} else {
$(form).find('[name="komnat"]').removeClass('invalid');
}
if (!ploshad_komn) {
text += "Необходимо заполнить поле Площадь комнат<br>";
error = true;
$(form).find('[name="ploshad_komn"]').addClass('invalid');
} else {
$(form).find('[name="ploshad_komn"]').removeClass('invalid');
}
}
if (ob_type == 2) {
let roomsCount = $(form).find('[name="vsego_komn"]').val();
if (!roomsCount) {
error = true;
text += "Необходимо заполнить поле Кол-во комнат в сделке<br>";
$(form).find('[name="vsego_komn"]').addClass('invalid');
} else {
$(form).find('[name="vsego_komn"]').removeClass('invalid');
}
}
$(form).find('.renovation-star').css('display', 'none');
if (ob_type == 1) {
let komType = $(form).find('[name="avito_room_type_id"]').val();
if (komType == 0 || typeof komType == "undefined") {
text += "Необходимо указать Тип комнат<br>";
error = true;
$(form).find('[name="avito_room_type_id"]').addClass('invalid');
} else {
$(form).find('[name="avito_room_type_id"]').removeClass('invalid');
}
if (ob_deal_type == 1 || ob_deal_type == 2)
{
// Get and clean the values
let ob_ploshad = parseFloat($(form).find('[name="ploshad"]').val().replace(/,/g, ""));
if (isNaN(ob_ploshad) || ob_ploshad <= 0) {
text += "Необходимо указать общую площадь<br>";
error = true;
$(form).find('[name="ploshad"]').addClass('invalid');
}
let ob_ploshad_k = parseFloat($(form).find('[name="ploshad_k"]').val().replace(/,/g, ""));
if (isNaN(ob_ploshad_k) || ob_ploshad_k <= 0) {
text += "Необходимо указать площадь кухни<br>";
error = true;
$(form).find('[name="ploshad_k"]').addClass('invalid');
}
let ob_renovation = $(form).find('[name="renovation"]').val();
if (ob_renovation <= 0 || typeof ob_renovation == "undefined") {
text += "Необходимо указать информацию о ремонте<br>";
error = true;
$(form).find('[name="renovation"]').addClass('invalid');
$(form).find('.renovation-star').css('display', 'inline-block');
}
}
}
if (ob_type != 7 && ob_comm_obj_id != 7 && ob_comm_obj_id != 9) {
let ob_etazhnost = $(form).find('[name="etazhnost"]').val();
if (ob_etazhnost == 0 || typeof ob_etazhnost == "undefined") {
text += "Необходимо указать общее количество этажей объекта<br>";
error = true;
$(form).find('[name="etazhnost"]').addClass('invalid');
} else {
$(form).find('[name="etazhnost"]').removeClass('invalid');
}
}
if (ob_type == 7 || ob_type == 3) {
let ob_land_area = $(form).find('[name="land_area"]').val();
if (ob_land_area == 0 || typeof ob_land_area == "undefined") {
text += "Необходимо указать площадь участка<br>";
error = true;
$(form).find('[name="land_area"]').addClass('invalid');
} else {
$(form).find('[name="land_area"]').removeClass('invalid');
}
}
if (ob_type == 7 || ob_type == 3 || ob_type == 5) {
let ob_land_ut = $(form).find('[name="land_usage_type_id"]').val();
if (ob_land_ut == 0 || typeof ob_land_ut == "undefined") {
text += "Необходимо указать Использование земли<br>";
error = true;
$(form).find('[name="land_usage_type_id"]').addClass('invalid');
} else {
$(form).find('[name="land_usage_type_id"]').removeClass('invalid');
}
}
if (ob_type == 3) {
let ob_ploshad = $(form).find('[name="ploshad"]').val();
if (ob_ploshad == 0 || typeof ob_ploshad == "undefined") {
text += "Необходимо указать общую площадь<br>";
error = true;
$(form).find('[name="ploshad"]').addClass('invalid');
} else {
12
$(form).find('[name="ploshad"]').removeClass('invalid');
}
let ob_house_category = $(form).find('[name="house_category"]:checked').val();
if (!ob_house_category) {
text += "Необходимо указать тип дома<br>";
error = true;
$(form).find('[name="house_category"]').closest('.button-row').addClass('invalid');
} else {
$(form).find('[name="house_category"]').closest('.button-row').removeClass('invalid');
}
}
if (ob_type == 4 && ob_comm_obj_id == 1) {
let ob_layout_id = $(form).find('[name="layout_id"]').val();
if (!ob_layout_id || ob_layout_id == 0) {
text += "Необходимо указать Планировку<br>";
error = true;
$(form).find('[name="layout_id"]').addClass('invalid');
} else {
$(form).find('[name="layout_id"]').removeClass('invalid');
}
}
if (ob_operation_type == 0) {
if (ob_type == 1 || ob_type == 2) {
let ob_house_type = $(form).find('[name="rent_house_type_id"]').val();
if (ob_house_type <= 0 || typeof ob_house_type == "undefined") {
text += "Необходимо указать тип дома<br>";
error = true;
$(form).find('[name="rent_house_type_id"]').addClass('invalid');
} else {
$(form).find('[name="rent_house_type_id"]').removeClass('invalid');
}
}
if (ob_type == 1) {
// Get and clean the values
let ob_ploshad = parseFloat($(form).find('[name="ploshad"]').val().replace(/,/g, ""));
if (isNaN(ob_ploshad) || ob_ploshad <= 0) {
text += "Необходимо указать общую площадь<br>";
error = true;
$(form).find('[name="ploshad"]').addClass('invalid');
}
let ob_ploshad_k = parseFloat($(form).find('[name="ploshad_k"]').val().replace(/,/g, ""));
if (isNaN(ob_ploshad_k) || ob_ploshad_k <= 0) {
text += "Необходимо указать площадь кухни<br>";
error = true;
$(form).find('[name="ploshad_k"]').addClass('invalid');
}
let ob_renovation = $(form).find('[name="renovation"]').val();
if (ob_renovation <= 0 || typeof ob_renovation == "undefined") {
text += "Необходимо указать информацию о ремонте<br>";
error = true;
$(form).find('[name="renovation"]').addClass('invalid');
$(form).find('.renovation-star').css('display', 'inline-block');
}
}
}
if (ob_type == 3 || ob_type == 5) {
let ob_renovation = $(form).find('[name="renovation"]').val();
if (ob_renovation <= 0 || typeof ob_renovation == "undefined") {
text += "Необходимо указать информацию о ремонте<br>";
error = true;
$(form).find('[name="renovation"]').addClass('invalid');
$(form).find('.renovation-star').css('display', 'inline-block');
}
let ob_country_wall_type = $(form).find('[name="country_wall_type_id"]').val();
if (ob_country_wall_type <= 0 || typeof ob_country_wall_type == "undefined") {
text += "Необходимо указать информацию о материале стен<br>";
error = true;
$(form).find('[name="country_wall_type_id"]').addClass('invalid');
}
}
if (ob_operation_type == 1) {
if (ob_type != 3 && ob_type != 4 && ob_type != 5 && ob_type != 7) {
let ob_house_type = $(form).find('[name="house_type"]').val();
if (ob_house_type == -1 || typeof ob_house_type == "undefined") {
text += "Необходимо указать тип дома<br>";
error = true;
$(form).find('[name="house_type"]').addClass('invalid');
} else {
$(form).find('[name="house_type"]').removeClass('invalid');
}
let ob_house_material = $(form).find('[name="house_material"]').val();
if (ob_house_material == -1 || typeof ob_house_material == "undefined") {
text += "Необходимо указать материал дома<br>";
error = true;
$(form).find('[name="house_material"]').addClass('invalid');
} else {
$(form).find('[name="house_material"]').removeClass('invalid');
}
}
if (ob_deal_type == -1 || typeof ob_deal_type == "undefined") {
text += "Необходимо указать тип сделки<br>";
error = true;
$(form).find('[name="deal_type"]').addClass('invalid');
} else {
$(form).find('[name="deal_type"]').removeClass('invalid');
}
}
if (ob_deal_type == 4 || ob_deal_type == 5 || ob_deal_type == 6) {
var complex_id = $('#complex_id').val();
let ob_newbuilding_id = $(form).find('[name="newbuilding_id"]').prop('value');
if (!ob_newbuilding_id && !(complex_id > 0)) {
text += "Необходимо указать ЖК<br>";
error = true;
$(form).find('[name="newbuilding_id"]').parent('.inputs-group').find('.select2').addClass('invalid');
} else {
$(form).find('[name="newbuilding_id"]').parent('.inputs-group').find('.select2').removeClass('invalid');
}
let ob_nb_end_date = $(form).find('[name="nb_end_date"]').val();
if (ob_nb_end_date == 0 || typeof ob_nb_end_date == "undefined") {
text += "Необходимо указать Срок сдачи<br>";
error = true;
$(form).find('[name="nb_end_date"]').addClass('invalid');
} else {
$(form).find('[name="nb_end_date"]').removeClass('invalid');
}
}
let ob_stoim_ot = $(form).find('[name="stoim_ot"]').val();
if (ob_stoim_ot == 0 || typeof ob_stoim_ot == "undefined") {
text += "Необходимо указать цену<br>";
error = true;
//$(form).find('[name="stoim_ot"]').addClass('invalid');
$(form).find('[name="stoim_ot"]').closest('.fr-input').addClass('invalid');
} else {
//$(form).find('[name="stoim_ot"]').removeClass('invalid');
$(form).find('[name="stoim_ot"]').closest('.fr-input').removeClass('invalid');
}
if (ob_type == 4 && ob_comm_obj_id != 7 && ob_comm_obj_id != 9) {
let ob_com_building_type = $(form).find('[name="commerc_building_type_id"]').val();
if (ob_com_building_type == 0 || typeof ob_com_building_type == "undefined") {
text += "Необходимо указать Тип здания<br>";
error = true;
$(form).find('[name="commerc_building_type_id"]').addClass('invalid');
} else {
$(form).find('[name="commerc_building_type_id"]').removeClass('invalid');
}
}
if (ob_type == 4 && ob_comm_obj_id == 9) {
let ob_land_category = Number($(form).find('[name="commerc_land_category_id"]').val());
if (!ob_land_category || ob_land_category === 0) {
text += "Необходимо указать Категорию земли<br>";
error = true;
$(form).find('[name="commerc_land_category_id"]').addClass('invalid');
} else {
$(form).find('[name="commerc_land_category_id"]').removeClass('invalid');
}
let ob_permitted_use = Number($(form).find('[name="commerc_permitted_use_id"]').val());
if (!ob_permitted_use || ob_permitted_use === 0) {
text += "Необходимо указать Вид разрешённого использования<br>";
error = true;
$(form).find('[name="commerc_permitted_use_id"]').addClass('invalid');
} else {
$(form).find('[name="commerc_permitted_use_id"]').removeClass('invalid');
}
let ob_commerc_site = Number($(form).find('[name="commerc_site"]').val());
if (!ob_commerc_site || ob_commerc_site === 0) {
text += "Необходимо указать площадь в поле Участок<br>";
error = true;
$(form).find('[name="commerc_site"]').addClass('invalid');
} else {
$(form).find('[name="commerc_site"]').removeClass('invalid');
}
}
if (error) {
$(form).find('.jw__error').html(text).show();
if ($(form).find('.invalid:visible').length > 0) {
let offset = $(form).find('.invalid:visible').first().offset().top - 40;
console.log(offset);
$('body,html').stop().animate({ scrollTop: Math.round(offset) }, '300');
} else {
$('body,html').stop().animate({ scrollTop: 0 }, '500');
}
} else {
$(".add-object-button").addClass("hidden");
$(".add-object-loader").removeClass("hidden");
form.submit();
}
return false;
});
$('#ms-new-client-type').fastselect({
placeholder: 'Тип'
});
$('.ms-crm-client-rol').fastselect({
placeholder: 'Роль клиента'
});
$('.ms-crm-client-source').fastselect({
placeholder: 'Источник',
});
$('.ms-new-client-activities').fastselect({
placeholder: 'Теги',
});
$('.ms-crm-client-stage').fastselect({
placeholder: 'Этап'
});
$('#ms-new-client-objects-type').fastselect({
placeholder: 'Тип недвижимости'
});
$('#ms-new-client-object').fastselect({
placeholder: 'Объекты'
});
$('#ms-new-client-work').fastselect({
placeholder: 'Ответственный',
onItemCreate: function() { $(this).find('.fstQueryInput').hide() },
onItemSelect: function() {
$('#addEditNew [name=confirm]').val("0");
}
});
$('.ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
$('.ms-crm-client-period').fastselect({
placeholder: 'Период',
onItemSelect: function(item, val) {
if (val.value == 'period') {
$('.period').removeClass('hidden');
} else {
$('.period').addClass('hidden');
}
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter_denial_work').fastselect({
placeholder: 'Причина закрытия',
onItemSelect: function(item, val) {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter_emp').fastselect({
placeholder: 'Ответственный',
onItemCreate: function(item, model) {
if ($('#filter_emp').find('option[value=' + model.value + ']').hasClass('bolt')) {
$(item).addClass('bolt');
}
},
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter-client-objects-type').fastselect({
placeholder: 'Тип недвижимости',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter-client-type').fastselect({
placeholder: 'Тип',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter_source').fastselect({
placeholder: 'Источник',
onItemCreate: function(item, model) {
if ($('#filter_source').find('option[value=' + model.value + ']').hasClass('bolt')) {
$(item).addClass('bolt');
}
},
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter_partner').fastselect({
placeholder: 'Партнёры',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
this.$controls.find('.fstChoiceItem').each(function() {
let value = $(this).data('value');
let label = $('#filter_partner option[value="' + value + '"]').data("label");
if (label) {
this.childNodes[0].nodeValue = label;
}
});
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter_partner').closest('.fstElement').find('.fstChoiceItem').each(function() {
let value = $(this).data('value');
let label = $('#filter_partner option[value="' + value + '"]').data("label");
if (label) {
this.childNodes[0].nodeValue = label;
}
});
$('#filter_activities').fastselect({
placeholder: 'Теги',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
$('#filter_client_rol').fastselect({
placeholder: 'Роль клиента',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
reCreateFilterEtapClients();
// Фильтр в Мои объекты
$('.fr-system__objects #filter-object-employee').fastselect({
placeholder: 'Ответственный',
onItemCreate: function(item, model) {
if ($('#filter-object-employee').find('option[value=' + model.value + ']').hasClass('bolt')) {
$(item).addClass('bolt');
}
},
onItemSelect: function() {
show_objects_options_search();
},
onItemDelete: function() {
show_objects_options_search();
}
});
$('.fr-system__objects #filter-object-type').fastselect({
placeholder: 'Тип объекта',
onItemSelect: function() {
checkType();
show_objects_options_search();
},
onItemDelete: function() {
checkType();
show_objects_options_search();
}
});
$('#country_list_add_object').fastselect({
placeholder: 'Страна',
onItemSelect: function(item, val) {
if (parseInt(val.value) == 171) {
$('#id_rf_region_add_object').show();
let region_kladr = $('[name="id_rf_region"] option:selected').data('kladr');
let region_label = $('[name="id_rf_region"] option:selected').data('label');
let new_kladr_ids = getConstraints(region_kladr, region_label);
daDataInit(new_kladr_ids);
} else {
$('#id_rf_region_add_object').hide();
var iso = $('#country_list_add_object [value=' + parseInt(val.value) + ']').attr("data-iso");
daDataInit([], iso);
}
check_metro_add_object();
},
onItemDelete: function(item, val) {
}
});
function checkType() {
if ($('.fr-system__objects #filter-object-type') && $('.fr-system__objects #filter-object-type').val()) {
$val = $('#filter-object-type').val();
if ($val.indexOf('Квартиры') >= 0) {
$('.filter-obj-komnat').show();
} else {
$('.filter-obj-komnat').hide();
}
} else {
$('.filter-obj-komnat').hide();
}
}
checkType();
$('.fr-system__objects #filter-not-advert').click(function() {
if ($('.fr-system__objects #filter-not-advert').attr('data-active') == 1) {
$('.fr-system__objects #filter-not-advert').attr('data-active', 0);
show_objects_options_search();
//get_objects_list();
} else {
$('.fr-system__objects #filter-not-advert').attr('data-active', 1);
show_objects_options_search();
//get_objects_list();
}
});
$('.fr-system__objects #filter_is_reports').click(function() {
if ($('.fr-system__objects #filter_is_reports').attr('data-active') == 1) {
$('.fr-system__objects #filter_is_reports').attr('data-active', 0);
show_objects_options_search();
//get_objects_list();
} else {
$('.fr-system__objects #filter_is_reports').attr('data-active', 1);
show_objects_options_search();
//get_objects_list();
}
});
$('.fr-system__objects #filter_is_free').click(function() {
if ($('.fr-system__objects #filter_is_free').attr('data-active') == 1) {
$('.fr-system__objects #filter_is_free').attr('data-active', 0);
show_objects_options_search();
//get_objects_list();
} else {
$('.fr-system__objects #filter_is_free').attr('data-active', 1);
show_objects_options_search();
//get_objects_list();
}
});
$('.fr-system__objects #filter_is_package').click(function() {
if ($('.fr-system__objects #filter_is_package').attr('data-active') == 1) {
$('.fr-system__objects #filter_is_package').attr('data-active', 0);
show_objects_options_search();
//get_objects_list();
} else {
$('.fr-system__objects #filter_is_package').attr('data-active', 1);
show_objects_options_search();
//get_objects_list();
}
});
$('.num-of-rooms #rn1').click(function() {
if ($('.num-of-rooms #rn1').attr('data-active') == 1) {
$('.num-of-rooms #rn1').attr('data-active', 0);
$('.num-of-rooms input[name=rn1]').val("0")
} else {
$('.num-of-rooms #rn1').attr('data-active', 1);
$('.num-of-rooms input[name=rn1]').val("1");
}
});
$('.num-of-rooms #rn2').click(function() {
if ($('.num-of-rooms #rn2').attr('data-active') == 1) {
$('.num-of-rooms #rn2').attr('data-active', 0);
$('.num-of-rooms input[name=rn2]').val("0")
} else {
$('.num-of-rooms #rn2').attr('data-active', 1);
$('.num-of-rooms input[name=rn2]').val("1");
}
});
$('.num-of-rooms #rn3').click(function() {
if ($('.num-of-rooms #rn3').attr('data-active') == 1) {
$('.num-of-rooms #rn3').attr('data-active', 0);
$('.num-of-rooms input[name=rn3]').val("0")
} else {
$('.num-of-rooms #rn3').attr('data-active', 1);
$('.num-of-rooms input[name=rn3]').val("1");
}
});
$('.num-of-rooms #rn4').click(function() {
if ($('.num-of-rooms #rn4').attr('data-active') == 1) {
$('.num-of-rooms #rn4').attr('data-active', 0);
$('.num-of-rooms input[name=rn4]').val("0")
} else {
$('.num-of-rooms #rn4').attr('data-active', 1);
$('.num-of-rooms input[name=rn4]').val("1");
}
});
$('.num-of-rooms #rnStudio').click(function() {
if ($('.num-of-rooms #rnStudio').attr('data-active') == 1) {
$('.num-of-rooms #rnStudio').attr('data-active', 0);
$('.num-of-rooms input[name=rnStudio]').val("0")
} else {
$('.num-of-rooms #rnStudio').attr('data-active', 1);
$('.num-of-rooms input[name=rnStudio]').val("1");
}
});
$('#addToAvitoFilter').click(function() {
console.log('tttttttttttttttttttt');
if ($('#addToAvitoFilter').hasClass('active')) {
$('#addToAvitoFilter').removeClass('active');
show_objects_options_search();
//get_objects_list();
} else {
$('#addToAvitoFilter').addClass('active');
show_objects_options_search();
//get_objects_list();
}
});
$('#addToCianFilter').click(function() {
if ($('#addToCianFilter').hasClass('active')) {
$('#addToCianFilter').removeClass('active');
show_objects_options_search();
//get_objects_list();
} else {
$('#addToCianFilter').addClass('active');
show_objects_options_search();
//get_objects_list();
}
});
$('#addToDomClickFilter').click(function() {
if ($('#addToDomClickFilter').hasClass('active')) {
$('#addToDomClickFilter').removeClass('active');
show_objects_options_search();
//get_objects_list();
} else {
$('#addToDomClickFilter').addClass('active');
show_objects_options_search();
//get_objects_list();
}
});
$('#addToEMLSFilter').click(function() {
if ($('#addToEMLSFilter').hasClass('active')) {
$('#addToEMLSFilter').removeClass('active');
show_objects_options_search();
//get_objects_list();
} else {
$('#addToEMLSFilter').addClass('active');
show_objects_options_search();
//get_objects_list();
}
});
$('#addToYandexFilter').click(function() {
if ($('#addToYandexFilter').hasClass('active')) {
$('#addToYandexFilter').removeClass('active');
show_objects_options_search();
//get_objects_list();
} else {
$('#addToYandexFilter').addClass('active');
show_objects_options_search();
//get_objects_list();
}
});
$('.fr-system__objects #filter-ads-errors').click(function() {
if ($('.fr-system__objects #filter-ads-errors').attr('data-active') == 1) {
$('.fr-system__objects #filter-ads-errors').attr('data-active', 0);
show_objects_options_search();
// get_objects_list();
} else {
$('.fr-system__objects #filter-ads-errors').attr('data-active', 1);
show_objects_options_search();
//get_objects_list();
}
});
$('.fr-system__objects #filter-object-fields').click(function() {
showObjectFieldsSearchModal('my-objects');
});
$('.fr-system__objects #filter-object-fields-reset').click(function() {
$.ajax({
url: '/ajax/unsetObjectFieldsFilter.php',
method: "get",
success: function() {
$('.fr-system__objects #filter-object-fields').attr('data-active', 0);
$('.fr-system__objects #filter-object-fields-reset').css('display', 'none');
show_objects_options_search();
get_objects_list();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
});
$('.fr-system__objects #filter-object-activities').fastselect({
placeholder: 'Теги',
onItemSelect: function() {
show_objects_options_search();
},
onItemDelete: function() {
show_objects_options_search();
}
});
$('body').on('change', '.fr-system__objects #objects_filter_commission', function() {
show_objects_options_search();
});
$('body').on('change', '.fr-system__objects #objects_filter_cena_ot', function() {
show_objects_options_search();
});
$('body').on('change', '.fr-system__objects #objects_filter_cena_do', function() {
show_objects_options_search();
});
$('body').on('change', '.fr-system__objects #objects_filter_commission_to', function() {
show_objects_options_search();
});
$('body').on('change', '.fr-system__objects #objects_filter_komnat_from', function() {
show_objects_options_search();
});
$('body').on('change', '.fr-system__objects #objects_filter_komnat_to', function() {
show_objects_options_search();
});
// Фильтр в Реклама
$('.crm.new #filter-object-activities').fastselect({
placeholder: 'Теги'
});
//Фильтр в отправках презентаций
$('body').on('click', '#open_dop_list_clients', function() {
$('.block_filter_prz').toggleClass('hidden');
});
$('#filter-prz-responsible').fastselect({
placeholder: 'Ответственный',
onItemSelect: function() {
get_prz_clients();
},
onItemDelete: function() {
get_prz_clients();
}
});
$('#filter-prz-type').fastselect({
placeholder: 'Тип',
onItemSelect: function() {
get_prz_clients();
},
onItemDelete: function() {
get_prz_clients();
}
});
$('#filter_prz_activities').fastselect({
placeholder: 'Теги',
onItemSelect: function() {
get_prz_clients();
},
onItemDelete: function() {
get_prz_clients();
}
});
$('#filter_prz_rol').fastselect({
placeholder: 'Роль клиента',
onItemSelect: function() {
get_prz_clients();
},
onItemDelete: function() {
get_prz_clients();
}
});
$('#filter_prz_source').select2({
language: "ru",
theme: "bootstrap",
placeholder: 'Источник',
ajax: {
url: 'ajax/datasource/getAdvertisingSources.php',
dataType: 'json',
delay: 250,
data: function(params) {
return {
searchTerm: params.term,
page: params.page
};
},
processResults: function(data, params) {
params.page = params.page || 1;
return {
results: data.items,
pagination: {
pagination: {
more: false
}
}
};
},
type: "post"
}
});
$('#filter_prz_source').on("select2:select", function(e) { get_prz_clients(); });
$('#filter_prz_source').on("select2:unselect", function(e) { get_prz_clients(); });
$('body').on('click', '#filter_add_clients_btn', function() {
get_prz_clients(1);
});
//**************************************************************//
$("body").on('click', '.crm__small-stage', function(e) {
if ($(e.target).closest('#req_info').length > 0 || $(e.target).closest('#client_info').length > 0 || $(e.target).closest('.no_event_stagebars').length > 0 || $(this).hasClass('not_clicked')) {
} else {
var idStage = parseInt($(this).data("stage"));
var indexStage = parseInt($(this).data("stage")) - 1;
var elem = $(this);
var nextStage = $(this).next().text();
var idClient = 0;
var reqId = 0;
if (elem.closest('.client').length > 0) {
idClient = elem.closest('.client').attr('id').replace("client__", "");
if (idClient.indexOf("req") > -1) {
idClient = 0;
reqId = elem.closest('.client').attr('id').replace("req__", "");
}
} else {
idClient = $('#addEditNew .modal-submit [name=id]').val();
}
if (elem.attr("data-req")) {
reqId = elem.attr("data-req");
}
if (idStage == 8) {
$("#del_client_bg").fadeIn(500);
$("#del_client").toggle(10);
var id = idClient;
$("#del_client").find('input[name="id_del_client"]').val(id);
$("#del_client").find('input[name="id_funnel_client"]').val('0');
$("#del_client #id_del_req").val(reqId);
set_select_denial_work(reqId);
$("body").addClass("lock");
return false;
} else {
$.post('/ajax/addEditClient.php', {
stage_edit: idStage,
id: idClient,
id_req: reqId,
},
function(data) {
if (reqId > 0) {
if (typeof requisitions !== 'undefined' && requisitions.req['req' + reqId]) {
requisitions.req['req' + reqId].steps.stageId = indexStage + 1;
requisitions.req['req' + reqId].steps.stage = nextStage;
}
if (typeof reqobj !== 'undefined' && reqobj[reqId]) {
//console.log(reqobj);
reqobj[reqId].steps.stageId = indexStage + 1;
reqobj[reqId].steps.stage = nextStage;
}
}
elem.closest(".client-inner").find(".stagebar-title").text(nextStage);
$('#client__' + idClient + ' .stagebar-title').text(nextStage);
$('#client__' + idClient + ' .crm__small-stage').each(function(index) {
// console.log(index);
if (index <= indexStage) {
$(this).parent().addClass("active");
} else {
$(this).parent().removeClass("active");
}
});
elem.closest(".crm__small-stagebar").find(".crm__small-stage").each(function(index) {
// console.log(index);
if (index <= indexStage) {
$(this).parent().addClass("active");
} else {
$(this).parent().removeClass("active");
}
});
});
}
}
});
$('body').on('click', '.client_info', function() {
var id = $(this).attr("data-id");
client__info.open(id);
});
$("body").click(function(e) {
if (!$(e.target).hasClass('fstChoiceRemove')) {
if ($(e.target).closest(".crm__filter-popup").length == 0 && $(e.target).closest(".search-filter").length == 0 && $(e.target).closest(".datepicker--cell").length == 0 && $(e.target).closest('.datepicker').length == 0 && $(e.target).closest('.datepicker--nav-title').length == 0 && $(e.target).closest('.datepicker--nav-action').length == 0 && $(e.target).closest('.vs__selected').length == 0) $(".crm__filter-popup").removeClass("is__show").addClass("is__hide");
if ($(e.target).closest(".jw__add-popup").length == 0) $(".jw__add-popup").removeClass("is__show");
}
});
$("body").on('click', '.search-filter__filter', function(e) {
$(".crm__filter-popup").removeClass("is__hide").toggleClass("is__show");
});
$('.datepicker-here2').datepicker({
autoClose: 'true'
});
$('#dates_contract_client .datepicker-filter').datepicker({
autoClose: 'true',
onSelect: function() {
client_fields_filtr.checkFields();
}
});
$('body').on('click', '.jw__small-popup', function(e) {
if ($(e.target).closest('.contracts').length == 0){
var id = $(this).attr('data-id');
$(".jw__popup.actions-menu.show").removeClass("show");
if (typeof filtr !== 'undefined' && filtr.filtr && filtr.filtr.stages && filtr.filtr.stages.close == 1) {
$('.confirm__reqs').hide();
$('#transfer_reqs_closed').show();
} else {
$('.confirm__reqs').show();
$('#transfer_reqs_closed').hide();
}
$('#popup__clients .closed_all').show();
$('.confirm__clients').show();
if ((document.location.pathname == '/sale.php' || document.location.pathname == '/main.php')) {
console.log($("#popup__" + id + ' a').length);
var show = false;
if ($("#popup__" + id + ' a').length > 0) {
$("#popup__" + id + ' a').each(function() {
if (!$(this).hasClass('hidden')) {
show = true;
}
})
}
if (show) {
$("#popup__" + id).toggleClass("show");
}
} else {
$("#popup__" + id).toggleClass("show");
if($('#user_allow_edit_all').length > 0 && $('#user_allow_edit_all').val() == 0){
if(document.location.pathname == '/requisitions.php' && id == 'reqs'){
if(typeof filtr !== undefined){
if(filtr.filtr.stages.ahency > 0){
$('.confirm__reqs').hide();
$('.closed_all').hide();
}
}
} else if (document.location.pathname == '/clients.php' && id == 'clients'){
if($('#filter_work_ahency').length > 0 && $('#filter_work_ahency').hasClass('active')){
$('.confirm__clients').hide();
$('.closed_all').hide();
}
}
} else {
if (document.location.pathname == '/clients.php' && id == 'clients'){
if($('#filter_work_ahency').length > 0 && $('#filter_work_ahency').hasClass('active')){
$('.closed_all').hide();
}
}
}
}
}
return false;
});
$('body').on('click', '.jw__clients_popup', function() {
let id = $(this).attr('data-id');
$("#popup_clients__" + id + " > .jw__popup").toggleClass("show");
return false;
});
$("body").on('click', '.search-filter .filtrObjects.ti-search', function() {
get_objects_list();
});
$('body').on('click', '.search-filter .filtrObjects.ti-close', function() {
window.history.pushState(null, null, "my-objects.php");
$('#search_filter_input').val('');
get_objects_list();
});
$('body').on('click', '.search-query-item.crm_objects .ti-close', function() {
window.history.pushState(null, null, "my-objects.php");
$('.filter-popup-type').each(function() {
$(this).removeClass('active');
});
$("#searchPromotionBg").empty();
$('.___1').each(function() {
$(this).attr('data-active', '0');
});
$('.steel').each(function() {
$(this).attr('data-active', '0');
});
$('.action-button.actionJW.actionAdvButton').each(function() {
$(this).removeClass('active');
});
$('.filter-popup__right select[multiple]').each(function() {
$(this).parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
});
$('#objects_filter_cena_ot').val('');
$('#objects_filter_cena_do').val('');
$('#objects_filter_commission').val('');
$('#objects_filter_commission_to').val('');
$('#objects_filter_komnat_from').val('');
$('#objects_filter_komnat_to').val('');
show_objects_options_search();
get_objects_list();
});
//Поиск в Клиенты
$("body").on('click', '.filtrClient.ti-search', function() {
if ($(".view-kanban.active").length > 0) {
$('.view-kanban').removeClass('active');
$('.view-list').addClass('active');
}
window.history.pushState(null, null, "clients.php?funnelId=all");
$(".crm__filter-popup").addClass("is__hide").removeClass("is__show");
$('#funnelIdClients').val('all');
get_list();
});
$('body').on('click', '.crm__filter-popup .medium-button', function() {
$(".crm__filter-popup").addClass("is__hide").removeClass("is__show");
});
$('body').on('change', '#order', function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
});
$('body').on('change', '#of_objects', function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
});
$('body').on('change', '#noTasks', function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
});
$('body').on('change', '#todayTasks', function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
});
$('body').on('change', '#overTasks', function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
});
$('body').on('change', '#isPartner', function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
});
$('body').on('click', '.search-query-item.crm_clients .ti-close', function() {
window.history.pushState(null, null, "clients.php");
if (typeof client_fields_filtr != "undefined") {
client_fields_filtr.clearField();
}
if ($('.funnels_client li.active').length == 1) {
var funnelID = $(".funnels_client li.active").data("id");
window.history.pushState(null, null, "clients.php?funnelId=" + funnelID);
$('#funnelIdClients').val(funnelID);
}
$('#period').prop("checked", false);
$('.period').addClass('hidden');
var html = '<select class="ms-crm-client-period" >' + $(".ms-crm-client-period").html() + '</select>';
$(".ms-crm-client-period").closest(".crm__filter-input").html(html);
$('.ms-crm-client-period option[value=all]').prop("selected", true);
$('.ms-crm-client-period').fastselect({
placeholder: 'Период',
onItemSelect: function(item, val) {
if (val.value == 'period') {
$('.period').removeClass('hidden');
} else {
$('.period').addClass('hidden');
}
show_options_search();
page_kanban = 1;
add_knban = true;
get_list();
}
});
for (let i = 1; i <= 4; i++) {
$('.filter-priority' + i).removeClass('active');
}
$('.filter-popup-type').each(function() {
$(this).removeClass('active');
});
$('.filter-popup__right select[multiple]').each(function() {
$(this).parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
});
$('#order').prop('checked', false);
show_options_search();
page_kanban = 1;
add_knban = true;
get_list();
});
$('body').on('click', '.search-filter .filtrClient.ti-close', function() {
window.history.pushState(null, null, "clients.php");
if ($('.funnels_client li.active').length == 1) {
var funnelID = $(".funnels_client li.active").data("id");
window.history.pushState(null, null, "clients.php?funnelId=" + funnelID);
$('#funnelIdClients').val(funnelID);
}
$('#search_filter_input').val('');
page_kanban = 1;
add_knban = true;
get_list();
});
$('#date_tasks input').change(function() {
// console.log($(this).val());
//get_list();
});
$('body').on('click', '#filter_time .filter-popup-type', function(e) {
var isDates = false;
if ($(e.target).closest("#dates_period").length == 1) {
var id = 'dates';
$('#filter_time .filter-popup-type').each(function() {
if ($(this).attr('id') == id) {
if ($(this).hasClass('active')) {
isDates = true;
}
$(this).addClass('active');
} else {
//if((id == 'filter_stage_work' && $(this).attr('id') == 'filter_stage_hot') || (id == 'filter_stage_hot' && $(this).attr('id') == 'filter_stage_work')){}
//else {
$(this).removeClass('active');
//}
}
});
} else {
var id = $(this).attr('id');
$('#filter_time .filter-popup-type').each(function() {
if ($(this).attr('id') == id) {
$(this).toggleClass('active');
} else {
//if((id == 'filter_stage_work' && $(this).attr('id') == 'filter_stage_hot') || (id == 'filter_stage_hot' && $(this).attr('id') == 'filter_stage_work')){}
//else {
$(this).removeClass('active');
//}
}
});
}
var page = window.location.pathname;
if (page == '/clients.php') {
show_options_search();
page_kanban = 1;
add_knban = true;
get_list();
} else if (page == '/charts.php') {
show_options_search_charts();
/*if (!isDates) {
if ($('.tab.selected').data("tab") == 'stats') {
getStats();
} else if ($('.tab.selected').data("tab") == 'tasks') {
getCalendar();
} else if ($('.tab.selected').data("tab") == 'telephony') {
getTelephony();
} else if ($('.tab.selected').data("tab") == 'stats_objects') {
getStatsObjects();
} else if ($('.tab.selected').data("tab") == 'tasks_objects') {
getCalendarObject();
} else {
getDashboard(1);
}
}*/
}
});
$('body').on('click', '#filter_task .filter-popup-type', function(e) {
var isDates = false;
var id = $(this).attr('id');
$('#filter_task .filter-popup-type').each(function() {
if ($(this).attr('id') == id) {
$(this).toggleClass('active');
} else {
//if((id == 'filter_stage_work' && $(this).attr('id') == 'filter_stage_hot') || (id == 'filter_stage_hot' && $(this).attr('id') == 'filter_stage_work')){}
//else {
$(this).removeClass('active');
//}
}
});
var page = window.location.pathname;
if (page == '/clients.php') {
show_options_search();
page_kanban = 1;
add_knban = true;
get_list();
} else if (page == '/charts.php') {
show_options_search_charts();
if (!isDates) {
if ($('.tab.selected').data("tab") == 'stats') {
getStats();
} else if ($('.tab.selected').data("tab") == 'tasks') {
getCalendar();
} else if ($('.tab.selected').data("tab") == 'telephony') {
getTelephony();
} else if ($('.tab.selected').data("tab") == 'tasks_objects') {
getCalendarObject();
} else {
getDashboard();
}
}
}
});
$('body').on('click', '#crm_filter_left .filter-popup-type', function(e) {
var isDates = false;
var id = $(this).attr('id');
if (id == 'filter_stage_close' && !$(this).hasClass('active')) {
$('#date_tasks').removeClass('hidden');
$('#renew_all_reqs').removeClass('hidden');
$('#mass_take_from_closed').addClass('hidden');
} else {
$('#date_tasks').addClass('hidden');
$('#renew_all_reqs').addClass('hidden');
$('#mass_take_from_closed').removeClass('show');
}
$('#crm_filter_left .filter-popup-type').each(function() {
if ($(this).attr('id') == id) {
$(this).toggleClass('active');
} else {
//if((id == 'filter_stage_work' && $(this).attr('id') == 'filter_stage_hot') || (id == 'filter_stage_hot' && $(this).attr('id') == 'filter_stage_work')){}
//else {
$(this).removeClass('active');
//}
}
});
var page = window.location.pathname;
if (page == '/clients.php') {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
} else if (page == '/charts.php') {
show_options_search_charts();
if (!isDates) {
if ($('.tab.selected').data("tab") == 'stats') {
getStats();
} else if ($('.tab.selected').data("tab") == 'tasks') {
getCalendar();
} else if ($('.tab.selected').data("tab") == 'telephony') {
getTelephony();
} else {
getDashboard();
}
}
}
});
$("body").on('click', '#clients_list .client-events-new', function(e) {
e.stopPropagation();
$('.object-content__preloader').show();
var id_client = $(this).attr('data-id');
openClientEventsWindowNew(id_client, $('#session_to_send').val());
return false;
});
$(".jw__group-action-button").click(function() {
var id = $(this).attr('data-id');
$("#groupAB__" + id).toggleClass("active");
return false;
});
$(".form-block__hot-client").click(function() {
$(this).toggleClass("active");
return false;
});
$("#addEditNew .form-block__p1-client").click(function() {
const active = $(this).hasClass("active");
clearSelect();
if (!active) {
$(this).toggleClass("active");
}
return false;
});
$("#addEditNew .form-block__p2-client").click(function() {
const active = $(this).hasClass("active");
clearSelect();
if (!active) {
$(this).toggleClass("active");
}
return false;
});
$("#addEditNew .form-block__p3-client").click(function() {
const active = $(this).hasClass("active");
clearSelect();
if (!active) {
$(this).toggleClass("active");
}
return false;
});
$("#addEditNew .form-block__p4-client").click(function() {
const active = $(this).hasClass("active");
clearSelect();
if (!active) {
$(this).toggleClass("active");
}
return false;
});
$(".filter-priority1").click(function() {
$(this).toggleClass("active");
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
show_options_search_charts();
//get_sourse_filter();
return false;
});
$(".filter-priority2").click(function() {
$(this).toggleClass("active");
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
show_options_search_charts();
//get_sourse_filter();
return false;
});
$(".filter-priority3").click(function() {
$(this).toggleClass("active");
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
show_options_search_charts();
//get_sourse_filter();
return false;
});
$(".filter-priority4").click(function() {
$(this).toggleClass("active");
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
show_options_search_charts();
//get_sourse_filter();
return false;
});
$(".big-add-button").click(function() {
$(".jw__add-popup").toggleClass("is__show");
return false;
});
$("#jw__add-task, .jw__add-task").click(function() {
$(".jw__add-popup").removeClass("is__show");
$.ajax({
url: '/ajax/modals/addTaskWinContent.php',
success: function(data) {
$("#addTaskBg").html(data);
initTaskWin();
$("#addTaskBg").show();
$("#addTask").show();
$("body").addClass("lock");
$('#addTask .modal-submit button').removeAttr('data-id').text("Добавить");
$('#addTask .klient').show();
$('#addTask .otvetstven').show();
$('#addTask .otvetstven1').hide();
$('#addTask .tabs__caption li').css('visibility', 'unset');
}
});
return false;
});
$("#jw__add-event").click(function() {
$.ajax({
url: '/ajax/modals/addEventWinContent.php',
success: function(data) {
$("#addEventBg").html(data);
$('.datepicker-here').datepicker();
$('.ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
$('#addEvent .ms-crm-client-work').fastselect({
placeholder: 'Ответственный',
onItemSelect: function(item) {
var divId = 'addEvent';
var mainDivClass = $('#' + divId + ' .tabs__caption .active').data("id");
var res = $('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-crm-client-work').val();
// $('.tabs__content.'+mainDivClass+' .ms-big-add-client').closest('.inputs').html('');
$.post('/ajax/getCharts.php', { getSelectClients: 'getSelectClients', responsible: JSON.stringify(res), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }, function(data) {
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').closest('.crm__filter-input').html(data);
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
});
},
onItemDelete: function() {
var divId = 'addEvent';
var mainDivClass = $('#' + divId + ' .tabs__caption .active').data("id");
var res = $('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-crm-client-work').val();
// $('.tabs__content.'+mainDivClass+' .ms-big-add-client').closest('.inputs').html('');
$.post('/ajax/getCharts.php', { getSelectClients: 'getSelectClients', responsible: JSON.stringify(res), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }, function(data) {
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').closest('.crm__filter-input').html(data);
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
});
}
});
$("#addEventBg").show();
$("#addEvent").show();
$("body").addClass("lock");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
return false;
});
//Удаление
$('body').on('click', '#del_client_submit', function() {
var id_client = $('#del_client input[name=id_del_client]').val();
var req_id = $('#del_client #id_del_req').val();
var reason = $('#del_client [name=reason]').val();
var tempid = $('#del_client #temp_id').val();
var datazakl = $('#datazakl').val();
var dataZZ = datazakl['6']+datazakl['7']+datazakl['8']+datazakl['9']+'-'+datazakl['3']+datazakl['4']+'-'+datazakl['0']+datazakl['1']+'T00:00:00';
var param = { id_del_client: id_client, reason: reason, req_id: req_id, tempid: tempid };
$("#del_client_bg [name=reason]").val('');
if ($('#luck').prop('checked')) {
if (window.dealCloseData && window.dealCloseData.id) {
param.luck = 10;
var factPrice = $('#fact_contract_price').val();
var factCommission = $('#fact_agent_commission').val();
param.summa = (factPrice !== '' && !isNaN(parseInt(factPrice))) ? parseInt(factPrice) : (window.dealCloseData.contract_price || 0);
param.commission = (factCommission !== '' && !isNaN(parseInt(factCommission))) ? parseInt(factCommission) : (window.dealCloseData.agent_commission || 0);
param.datazakl = Date.parse(dataZZ);
var factPayload = {};
if (factPrice !== '' && !isNaN(parseInt(factPrice))) factPayload.contract_price = parseInt(factPrice) || 0;
if (factCommission !== '' && !isNaN(parseInt(factCommission))) factPayload.agent_commission = parseInt(factCommission) || 0;
if (Object.keys(factPayload).length > 0) {
$.ajax({
url: '/deal/index.php?path=deals/' + window.dealCloseData.id,
type: 'PUT',
contentType: 'application/json',
data: JSON.stringify(factPayload)
});
}
} else {
if (isNaN(parseInt($('#summa_sdelki').val()))) {
alert("Введите сумму сделки");
return;
}
param.luck = 10;
param.summa = parseInt($('#summa_sdelki').val());
param.datazakl = Date.parse(dataZZ);
}
$.post('/ajax/delClient.php', param, function(data) {
//console.log(data)
$('#client__' + id_client + ' .stage').addClass('active');
$('#addEditNew .stage').addClass('active');
requisitions_client.getList();
$("#del_client_bg").fadeOut(500);
$("#del_client").toggle(10);
$("body").removeClass("lock");
//$('#client__'+id_client+' .stagebar-title').text('Закрыт');
//console.log($('#client_history').css('display'));
if ($('#client_history').css('display') != 'none') {
if (req_id > 0) {
openClientEventsWindowNew(0, $('#session_to_send').val(), 1, req_id);
} else {
openClientEventsWindowNew(id_client, $('#session_to_send').val(), 1);
}
}
if ($('.view-kanban.active').length > 0) {
var stage = $('#kanban_item_li_' + id_client).closest('.kanban__sortable').data("stage");
if (document.location.pathname == '/requisitions.php') {
requisitions.getList();
} else {
get_kanban_li(id_client, stage, 0);
}
} else {
if ($('#requisitions_list_object').css('display') == 'none') {
let sort_order = $('select[name=sort_order]').val();
get_list($('.pagination li.active a').text(), sort_order, false);
if (document.location.pathname == '/requisitions.php') {
requisitions.getList();
}
} else {
requisitions_object.getList();
}
}
$('#del_client #temp_id').val(0);
});
} else {
param.denial = $('#denial_work').val();
//console.log(reason);
if (reason == '') {
alert("Введите комментарий");
} else {
d = new Date;
dd = d.toISOString();
param.datazakl = Math.floor(Date.parse(dd.slice(0, -5)) / 1000)
param.note = 1
$.post('/ajax/delClient.php', param, function(data) {
console.log(data);
$('#client__' + id_client + ' .stage').addClass('active');
$('#addEditNew .stage').addClass('active');
requisitions_client.getList();
$("#del_client_bg").fadeOut(500);
$("#del_client").toggle(10);
$("body").removeClass("lock");
//$('#client__'+id_client+' .stagebar-title').text('Закрыт');
if ($('#client_history').css('display') != 'none') {
if (req_id > 0) {
openClientEventsWindowNew(0, $('#session_to_send').val(), 1, req_id);
} else {
openClientEventsWindowNew(id_client, $('#session_to_send').val(), 1);
}
}
if ($('.view-kanban.active').length > 0) {
var stage = $('#kanban_item_li_' + id_client).closest('.kanban__sortable').data("stage");
if (document.location.pathname == '/requisitions.php') {
requisitions.getList();
} else {
get_kanban_li(id_client, stage);
}
} else {
if ($('#requisitions_list_object').css('display') == 'none') {
let sort_order = $('select[name=sort_order]').val();
get_list($('.pagination li.active a').text(), sort_order, false);
if (document.location.pathname == '/requisitions.php') {
requisitions.getList();
}
} else {
requisitions_object.getList();
}
}
$('#del_client #temp_id').val(0);
});
}
}
get_list()
return false;
});
$('body').on('click', '#del_client .ti-close', function() {
var id_funnel_client = $('#del_client input[name=id_funnel_client]').val();
var id_client = $('#del_client input[name=id_del_client]').val();
var id_req = $('#del_client #id_del_req').val();
if (id_funnel_client > 0) {
$("body").removeClass("lock");
if (confirm("При закрытии этого окна этап будет открыт!!!")) {
axios.post('/ajax/ajax_vue_clients.php', {
request: 'openPrevStep',
client_id: id_client,
req_id: id_req,
}, )
.then(function(response) {
//console.log(response.data);
ac.stepPrev = response.data;
ac.saveOpenPrevStep();
$("#del_client_bg").hide(10);
$("#del_client").hide(10);
$('#del_client #temp_id').val(0);
})
.catch(function(error) {
console.log(error);
});
}
} else {
$("#del_client_bg").hide(10);
$("#del_client").hide(10);
$('#del_client #temp_id').val(0);
}
});
$('body').on('click', '#stats_objects_list__bg .ti-close', function() {
$("#stats_objects_list__bg").hide(10);
$("#stats_objects_list").hide(10);
$("body").removeClass("lock");
});
$("body").on("click", "#export_objects", function() {
var that = this;
let section = $(this).data('section');
let state = $(this).data('state');
if (state === 'ready') {
$(this).data('state', 'loading');
$("#export_objects_loader").show();
$.post("/ajax/export_excel_objects.php", {
section: section,
columns: JSON.stringify($("#object_list_table").bootstrapTable("getVisibleColumns")),
}, function(data) {
$(that).data('state', 'ready');
$("#export_objects_loader").hide();
console.debug(data);
let res = JSON.parse(data);
if (res.result == 'ok') {
let $a = $("<a />");
$a.attr("href", res.file);
$("body").append($a);
$a.attr("download", res.name);
$a[0].click();
$a.remove();
}
});
}
});
$('body').on('click', '#del_client_all_submit', function() {
var id_clients = $('#del_client_all input[name=id_del_clients]').val();
var clients = JSON.parse(id_clients);
var id_reqs = $('#del_client_all input[name=id_del_reqs]').val();
var reqs = JSON.parse(id_reqs);
var all = 0;
if ($("#del_client_all").find('input[name="del_all"]')) {
all = $("#del_client_all").find('input[name="del_all"]').val();
}
$("#del_client_all").find('input[name="del_all"]').val(0);
var ids = [];
var datazakl = $('#datazakl_all').val();
var dataZZ = datazakl['6']+datazakl['7']+datazakl['8']+datazakl['9']+'-'+datazakl['3']+datazakl['4']+'-'+datazakl['0']+datazakl['1']+'T00:00:00';
var reason = $('#del_client_all [name=reason]').val();
var param = { reason: reason };
if (clients != 0) {
if (localStorage['ids_exception_client']) {
var ids_exception_req = localStorage.getItem('ids_exception_client');
ids = JSON.parse(ids_exception_client);
}
param = { id_del_client_all: id_clients, reason: reason, all: all,ids_exception: ids};
} else if (reqs != 0) {
if (localStorage['ids_exception_req']) {
var ids_exception_req = localStorage.getItem('ids_exception_req');
ids = JSON.parse(ids_exception_req);
}
param = { id_del_req_all: id_reqs, reason: reason, all: all, ids_exception: ids };
}
//console.log(param);
$("#del_client_all [name=reason]").val('');
if ($('#luck_all').prop('checked')) {
if (isNaN(parseInt($('#summa_sdelki_all').val()))) {
alert("Введите сумму сделки");
} else {
param.luck = 10;
param.summa = parseInt($('#summa_sdelki_all').val());
param.datazakl = Date.parse(dataZZ)
$.post('/ajax/delClient.php', param, function(data) {
//$('#client__' + id_client + ' .stage').addClass('active');
console.log(reqs);
if (reqs != 0) {
requisitions.getList();
}
$('#addEditNew .stage').addClass('active');
$("#del_client_all_bg").fadeOut(500);
$("#del_client_all").toggle(10);
$("body").removeClass("lock");
//$('#client__'+id_client+' .stagebar-title').text('Закрыт');
//console.log($('#client_history').css('display'));
if ($('#client_history').css('display') != 'none') {
openClientEventsWindowNew(id_client, $('#session_to_send').val(), 1);
}
if ($('.view-kanban.active').length > 0) {
var stage = $('#kanban_item_li_' + id_client).closest('.kanban__sortable').data("stage");
get_kanban_li(id_client, stage, 0);
} else {
let sort_order = $('select[name=sort_order]').val();
get_list($('.pagination li.active a').text(), sort_order, false);
}
});
}
} else {
param.denial = $('#denial_work_all').val();
//console.log(reason);
if (reason == '') {
alert("Введите комментарий");
} else {
d = new Date;
dd = d.toISOString();
param.datazakl = Math.floor(Date.parse(dd.slice(0, -5)) / 1000)
param.note = 1
$.post('/ajax/delClient.php', param, function(data) {
//console.log(data);
if (reqs != 0) {
requisitions.getList();
}
//$('#client__' + id_client + ' .stage').addClass('active');
$('#addEditNew .stage').addClass('active');
$("#del_client_all_bg").fadeOut(500);
$("#del_client_all").toggle(10);
$("body").removeClass("lock");
//$('#client__'+id_client+' .stagebar-title').text('Закрыт');
if ($('#client_history').css('display') != 'none') {
openClientEventsWindowNew(id_client, $('#session_to_send').val(), 1);
}
if ($('.view-kanban.active').length > 0) {
var stage = $('#kanban_item_li_' + id_client).closest('.kanban__sortable').data("stage");
get_kanban_li(id_client, stage, 0);
} else {
let sort_order = $('select[name=sort_order]').val();
get_list($('.pagination li.active a').text(), sort_order, false);
}
});
}
}
return false;
});
$('body').on('click', '#del_client_all .ti-close', function() {
$("#del_client_all_bg").hide(10);
$("#del_client_all").hide(10);
});
$('body').on('click', '#scroll', function() {
$('#client_history .history__chat-n').animate({
scrollTop: 0
}, 500, function() {
$('#client_history .history__chat-n').animate({
scrollTop: $('#client-info-block').prop("scrollHeight")
}, 500);
});
});
$('body').on('click', '.show_object', function() {
var id_obj = [$(this).data("id")];
var id = $(this).data("client");
if (typeof requisitions_client == 'object') {
requisitions_client.clientId = id;
}
if (typeof deals_client == 'object') {
deals_client.clientId = id;
}
//console.log(id);
$('#liGlobal').removeClass('active').show();
$('#liObject').click();
$('#addEditNew .error_msg').hide();
$('#addEditNew .stagebar .stage').removeClass('active');
$('#addEditNew .form-block__hot-client').removeClass('active');
clearSelect();
$('#addEditNew select').parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
$('#addEditNew .form-block [name=phone2]').each(function() {
$(this).closest('.form-block').remove();
});
$('#persone_no_ip').prop('checked', true);
$('#persone_yes_ip').prop('checked', false);
$('#persone_gender_man').prop('checked', true);
$('#persone_gender_woman').prop('checked', false);
$('.persone_no_ip').removeClass('hidden');
$('.persone_yes_ip').addClass('hidden');
$.ajax({
url: '/ajax/getClient.php?id=' + id,
dataType: "json",
success: function(data) {
//console.log(data);
var stage = (data.stage - 1);
// console.log(data.deleted);
if (data.deleted == 1) {
stage = 6;
}
$("#addEditNew .crm__small-stage").each(function(index) {
if (index <= stage) {
$(this).parent().addClass("active");
} else {
$(this).parent().removeClass("active");
}
});
$('#confirm').val(data.confirm);
if (data.hot > 0) {
$('#addEditNew .form-block__hot-client').addClass('active');
}
for (let i = 1; i < 5; i++) {
$('#addEditNew .form-block__p' + i + '-client').removeClass('active');
}
if (data.priority > 0) {
$('#addEditNew .form-block__p' + data.priority + '-client').addClass('active');
}
//$("#addEditNew .error_msg").next().html(data.fio);
$('#addEditNew .modal-title').html(data.fio);
$("#addEditNew").find('input[name="fio"]').val(data.fio);
$("#addEditNew").find('input[name="email"]').val(data.email);
$("#addEditNew").find('input[name="phone"]').val(data.phone);
$("#addEditNew").find('input[name="budget"]').val(data.budget);
$("#addEditNew").find('[name="opis"]').val(data.opis);
$("#addEditNew").find('input[name="id"]').val(data.id);
$("#addReqClientForm").attr("data-client", data.id);
$("#addEditNew").find('input[name="confirm"]').val(data.confirm);
$("#addEditNew").find('input[name="birthday"]').val(data.birthday);
var html = '<select id="ms-new-client-type" multiple>' + $("#ms-new-client-type").html() + '</select>';
$("#ms-new-client-type").closest(".inputs").html(html);
if (data.work_type && data.work_type != 'null') {
var wor_type = JSON.parse(data.work_type);
for (var i = 0; i < wor_type.length; i++) {
$("#ms-new-client-type option[value='" + wor_type[i] + "']").prop("selected", true)
}
}
$("#ms-new-client-type").fastselect({
placeholder: 'Тип',
onItemDelete: function(item, val) {
if (!this.fastsearch.itemModels[4].selected) {
$('#ms-new-client-activities').parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
}
}
});
var html = '<select id="ms-new-client-rol" class="ms-crm-client-rol" multiple="multiple">' + $("#ms-new-client-rol").html() + '</select>';
$("#ms-new-client-rol").closest(".inputs").html(html);
if (data.role && data.role != 'null') {
var role = JSON.parse(data.role);
for (var i = 0; i < role.length; i++) {
$("#ms-new-client-rol option[value='" + role[i] + "']").prop("selected", true)
}
}
$("#ms-new-client-rol").fastselect({ placeholder: 'Роль клиента' });
var html = '<select id="ms-new-client-objects-type" class="ms-crm-client-object-type" multiple>' + $("#ms-new-client-objects-type").html() + '</select>';
$("#ms-new-client-objects-type").closest(".inputs").html(html);
if (data.type && data.type != 'null') {
var type = JSON.parse(data.type);
for (var i = 0; i < type.length; i++) {
$("#ms-new-client-objects-type option[value=" + type[i] + "]").prop("selected", true)
}
}
$("#ms-new-client-objects-type").fastselect({ placeholder: 'Тип недвижимости' });
var activities = null;
if (data.activities && data.activities != 'null') {
activities = JSON.parse(data.activities);
}
setSelectsFastselect('ms-new-client-activities', data.activities, 'select_form_activities.php', 'Теги');
var html = '<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + $("#ms-new-client-object").html() + '</select>';
//$("#ms-new-client-object").closest(".inputs").html(html);
if (data.objects && data.objects != 'null') {
$.post('/ajax/getClientsView.php', { get_clients_objects: data.objects, user_id: $('#sid').data("id") },
function(result) {
//console.log(result);
if (result == 0) {
$("#ms-new-client-object").closest(".inputs").html(html);
} else {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + result + '</select>');
}
var objects = JSON.parse(data.objects);
for (var i = 0; i < objects.length; i++) {
$("#ms-new-client-object option[value=" + objects[i] + "]").prop("selected", true);
}
$("#ms-new-client-object").fastselect({ placeholder: 'Объекты' });
}
);
} else {
$.post('/ajax/getClientsView.php', { get_clients_objects: '', user_id: $('#sid').data("id") },
function(result) {
if (result == 0) {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple></select>');
} else {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + result + '</select>');
}
$("#ms-new-client-object").fastselect({ placeholder: 'Объекты' });
}
);
}
$.post('/ajax/getClientsView.php', { get_objects: data.objects, user_id: $('#sid').data("id"), to_send: $('#s_to_send').val() }, function(data) {
$('#addEditNew .jw__objects').html(data);
$('.fotorama').fotorama();
koala_loader();
});
var who_user = $('#sid').attr('data-id');
if (data.who_work) {
who_user = data.who_work;
}
setSelectsFastselect('ms-new-client-work', who_user, 'select_form_client-work.php', 'Ответственный');
var source_id = 0;
if (data.source) {
source_id = data.source;
}
setSelectsFastselect('ms-new-client-source', source_id, 'select_form_source.php', 'Источник');
var emplode_id_ms = 0;
if (data.employee_id) {
emplode_id_ms = data.employee_id;
}
setSelectsFastselect('ms-new-client-partner', emplode_id_ms, 'select_form_partner.php', 'Партнёр');
var funnel_id = 0;
if (data.funnel_id) {
funnel_id = data.funnel_id;
}
setSelectsFastselect('ms-new-funnel', funnel_id, 'select_form_funnel.php', 'Воронка', 'client');
$("#send_bg_new").fadeIn(500);
$("#send_new").toggle(10);
$('#send_log_new').hide();
$('#send_form_new').show();
$("body").addClass("lock");
get_contracts_client(id);
}
});
return false;
});
$('body').on('change', '#luck', function() {
var today = new Date().toLocaleDateString();
if ($(this).prop('checked')) {
if (window.dealCloseData && window.dealCloseData.id) {
$('#datazaklgr').hide();
$('#summa_sdelki').hide();
$('#deal_close_block').show();
} else {
$('#datazaklgr').show();
$('#summa_sdelki').show();
$('#deal_close_block').hide();
}
$('#denial_work').hide();
$('#denial_work').val(0);
$('#datazakl').val(today);
$('#denial_work-input').hide();
$('#denial_work').val(0);
} else {
$('#datazaklgr').hide();
$('#summa_sdelki').hide();
$('#deal_close_block').hide();
$('#denial_work').show();
$('#denial_work').val(1);
$('#denial_work-input').show();
$('#denial_work').val(0);
}
});
$('body').on('change', '#luck_all', function() {
var today = new Date().toLocaleDateString();
if ($(this).prop('checked')) {
$('#datazaklgr_all').show();
$('#summa_sdelki_all').show();
$('#denial_work_all').hide();
$('#denial_worka_all').val(0);
$('#datazakl_all').val(today);
$('#denial_work_all-input').hide();
} else {
$('#datazaklgr_all').hide();
$('#summa_sdelki_all').hide();
$('#denial_work_all').show();
$('#denial_work_all').val(1);
$('#denial_work_all-input').show();
}
});
$('body').on('click', '.reload_object', function() {
var id = $(this).data("id");
var item = '#item' + id;
// console.log(item);
$(item + ' .oneObj').addClass('hidden');
$(item + ' .object-content__preloader').removeClass('hidden');
$.post('/ajax/getClientsView.php', { get_object: id, to_send: $('#s_to_send').val() }, function(data) {
///console.log(data);
$(item).html(data);
$('#clients_list .clients').show();
$('.fotorama').fotorama();
koala_loader();
});
});
$("body").on('click', '.archive_my_object', function() {
var id = $(this).data("id");
var item = '#item' + id;
// console.log(item);
$(item + ' .oneObj').addClass('hidden');
$(item + ' .object-content__preloader').removeClass('hidden');
$.ajax({
url: '/ajax/archiveUserObject.php?objId=' + $(this).attr('data-id'),
success: function(data) {
$.post('/ajax/getClientsView.php', { get_object: id, to_send: $('#s_to_send').val() }, function(data) {
///console.log(data);
$(item).html(data);
$('#clients_list .clients').show();
$('.fotorama').fotorama();
koala_loader();
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown);
}
});
});
$("body").on('click', '.un_archive_my_object', function() {
var id = $(this).data("id");
var item = '#item' + id;
// console.log(item);
$(item + ' .oneObj').addClass('hidden');
$(item + ' .object-content__preloader').removeClass('hidden');
$.ajax({
url: '/ajax/unArchiveUserObject.php?objId=' + $(this).attr('data-id'),
success: function(data) {
$.post('/ajax/getClientsView.php', { get_object: id, to_send: $('#s_to_send').val() }, function(data) {
///console.log(data);
$(item).html(data);
$('.fotorama').fotorama();
koala_loader();
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown);
}
});
});
$("body").on('click', '.open_folder', function() {
var id = $(this).data("id");
$('.link' + id).toggleClass('hidden');
$('.history__results').slimScroll({
height: "300px",
width: "100%",
position: "right",
size: "8px",
color: "#585858",
alwaysVisible: false
});
$('.history__variants').slimScroll({
height: "50%",
width: "100%",
position: "right",
size: "8px",
color: "#585858",
alwaysVisible: true
});
$('.log_client').slimScroll({
height: "100%",
width: "34%",
position: "right",
size: "8px",
color: "#585858",
alwaysVisible: true
});
});
$("body").on('click', '.variants-search__action', function() {
var id = $(this).data("id");
var filter = $('.variants-search__input').val();
var html = '<div class="object-content__preloader" style="display: block;"><img src="../images/rocket-spinner.svg" width="96px"></div>';
$('#client_history .presentations').html(html);
if (filter != '') {
$.post('/ajax/getClientsView.php', { client_id: id, filter_pre: filter, to_send: $("#session_to_send").val() }, function(data) {
$('#client_history .presentations').html(data);
});
}
});
$("body").on('click', '.crm__filter-popup .closer', function() {
$('.crm__filter-popup').removeClass("is__show");
});
$("body").on("click", ".view-kanban", function() {
if ($('#funnelIdClients').val() == 'all' && document.location.pathname == '/requisitions.php') {
var funnelId = $('.funnels_client li.active').attr('data-id');
$('#funnelIdClients').val(funnelId);
window.history.pushState(null, null, "clients.php?funnelId=" + funnelId);
}
$(this).addClass('active');
$('.view-list').removeClass('active');
$('.view-table').removeClass('active');
$('#groupClients').hide();
if (document.location.pathname == '/requisitions.php') {
requisitions.view = 'kanban';
requisitions.page = 1;
requisitions.isPreloader = 1;
requisitions.getList();
} else {
get_list();
}
});
$("body").on("click", ".view-list", function() {
$(this).addClass('active');
$('.view-kanban').removeClass('active');
$('.view-table').removeClass('active');
$('#groupClients').show();
page_kanban = 1;
add_knban = true;
if (document.location.pathname == '/requisitions.php') {
requisitions.view = 'list';
requisitions.page = 1;
requisitions.isPreloader = 1;
requisitions.getList();
} else {
get_list();
}
});
$("body").on("click", ".view-table", function() {
$(this).addClass('active');
$('.view-kanban').removeClass('active');
$('.view-list').removeClass('active');
$('#groupClients').hide();
page_kanban = 1;
add_knban = true;
if (document.location.pathname == '/requisitions.php') {
requisitions.view = 'table';
requisitions.page = 1;
requisitions.isPreloader = 1;
requisitions.getList();
} else {
get_list();
}
});
$('body').on('click', '.kanban__item__add-task', function() {
var id = $(this).data("id");
$('#kanban_task_add_' + id).toggleClass("show");
$('#kanban_task_add_' + id).mouseover(function(e) {
e.preventDefault();
$('#kanban_task_add_' + id).addClass("show");
}).mouseleave(function(e) {
e.preventDefault();
$('#kanban_task_add_' + id).removeClass("show");
});
});
$(".monthPicker").datepicker({
dateFormat: 'MM yyyy',
autoClose: 'true',
view: "months",
minView: "months",
onSelect: function(dateText, inst) {
console.log(inst);
var month = new Date(inst).getMonth();
var year = new Date(inst).getFullYear();
// $(this).val($.datepicker.formatDate('MM yy', new Date(year, month, 1)));
$("#month_sales_plan").val(parseInt(month) + 1);
$("#year_sales_plan").val(year);
getSalesPlan();
}
});
/* $(".monthPicker").focus(function () {
$(".ui-datepicker-calendar").hide();
$("#ui-datepicker-div").position({
my: "center top",
at: "center bottom",
of: $(this)
});
});*/
$('body').on('submit', '#send_plan form', function() {
var arrPlan = {};
var month = $("#month_sales_plan").val();
var year = $("#year_sales_plan").val();
var user_id = $('#send_plan #user_sales_plan').val();
var summa = $('#send_plan [name=plan]').val();
var quantity = $('#send_plan [name=quantity]').val();
arrPlan[user_id] = summa;
$.post('/ajax/sales_plan.php', { users_plan: JSON.stringify(arrPlan), quantity: quantity, month: month, year: year }, function(data) {
$("#send_bg_plan").fadeOut(500);
$("#send_plan").hide(10);
$("body").removeClass("lock");
});
return false;
});
$('body').on('click', '#addTask .jw-tabs li', function() {
$('#addTask .jw-tabs li').removeClass('active');
var action = $(this).attr("class");
// var mainId = "#"+$(this).closest(".full_modal").attr("id");
// console.log(mainId);
$('#addTask .jw-tabs li.' + action).addClass('active');
$('#addTask .modal-inner .tabs__content').hide();
$('#addTask .modal-inner .tabs__content.' + action).show();
$('#addTask .modal-submit button').removeAttr("class");
$('#addTask .modal-submit button').addClass("action_" + action);
$('#addEvent .modal-submit button').removeAttr("class");
$('#addEvent .modal-submit button').addClass("action_" + action);
});
/*$('body').on('click', '#addTaskObj .jw-tabs li', function(){
$('#addTaskObj .jw-tabs li').removeClass('active');
var action = $(this).attr("class");
// var mainId = "#"+$(this).closest(".full_modal").attr("id");
// console.log(mainId);
$('#addTaskObj .jw-tabs li.'+action).addClass('active');
$('#addTaskObj .modal-inner .tabs__content').hide();
$('#addTaskObj .modal-inner .tabs__content.'+action).show();
$('#addTaskObj .modal-submit button').removeAttr("class");
$('#addTaskObj .modal-submit button').addClass("action_"+action);
});*/
$('body').on('click', '#addEvent .jw-tabs li', function() {
$('#addEvent .jw-tabs li').removeClass('active');
var action = $(this).attr("class");
// var mainId = "#"+$(this).closest(".full_modal").attr("id");
// console.log(mainId);
$('#addEvent .jw-tabs li.' + action).addClass('active');
$('#addEvent .modal-inner .tabs__content').hide();
$('#addEvent .modal-inner .tabs__content.' + action).show();
$('#addEvent .modal-submit button').removeAttr("class");
$('#addEvent .modal-submit button').addClass("action_" + action);
});
//Слежение за звонками телефонии свитчер
$("body").on('change', '#callTelphin', function() {
if ($(this).prop('checked')) {
$('#intervalTo').show();
$('#intervalToLabel').show();
$('#spanFromInterval').show();
$('#to_callDatetime').datepicker().data('datepicker').selectDate(new Date());
$('.intervalBlock .label').css('float', 'initial');
} else {
$('#intervalTo').hide();
$('#intervalToLabel').hide();
$('#spanFromInterval').hide();
$('.intervalBlock .label').css('float', 'left');
}
});
$("body").on('change', '#callTelphin_1', function() {
if ($(this).prop('checked')) {
$('#intervalTo_1').show();
$('#intervalToLabel_1').show();
$('#spanFromInterval_1').show();
$('#to_showDatetime_1').datepicker().data('datepicker').selectDate(new Date());
$('.intervalBlock .label').css('float', 'initial');
} else {
$('#intervalTo_1').hide();
$('#intervalToLabel_1').hide();
$('#spanFromInterval_1').hide();
$('.intervalBlock .label').css('float', 'left');
}
});
$("body").on('click', '.action_call', function(e) {
e.stopPropagation();
var mainId = "#" + $(this).closest(".full_modal").attr("id");
var text = $(mainId + ' .tabs__content.call #callComment').val();
var date = $(mainId + ' .tabs__content.call #showDatetime').datepicker().val();
var users_id = $(mainId + ' .tabs__content.call .ms-crm-client-work').val();
// при редактировании (data-id задан и не 0) поле «Ответственный» скрыто и не меняется — не требуем его
var isEdit = $(this).attr("data-id") !== undefined && $(this).attr("data-id") !== '0';
$(mainId + ' .tabs__content.call #showDatetime').removeClass('invalid');
$(mainId + ' .tabs__content.call .otvetstven').removeClass('invalid');
//console.log(date);
if (date && $.trim(date) && (isEdit || !isEmpty(users_id))) {
var id_client = $(mainId + ' .tabs__content.call .ms-big-add-client').val();
var data = {
"client_id": (!isEmpty(id_client) ? JSON.stringify(id_client) : ''),
"comment": text,
"schedule_date": date,
"users_id": JSON.stringify(users_id),
"type": 'call'
}
if (mainId == '#addEvent') {
data.noEvent = 1;
}
var event_id = false;
if ($(this).data("id") !== undefined) {
data.event_id = $(this).attr("data-id");
event_id = $(this).attr("data-id");
}
data.call_tracking = 0;
if ($('#callTelphin_1').length > 0) {
if ($('#callTelphin_1').prop('checked')) {
data.call_tracking = 1;
data.date_to = $(mainId + ' .tabs__content.call #to_showDatetime_1').datepicker().val();
}
}
$.ajax({
url: '/ajax/addEventsCabinet.php',
method: "post",
data: data,
success: function(d) {
console.log(d);
$("#addTaskBg").hide();
$("#addTask").hide();
$("#addEventBg").hide();
$("#addEvent").hide();
$("body").removeClass("lock");
if (event_id) { updateMes(event_id); }
getCalendar();
}
});
} else {
if(isEmpty($.trim(date))){
$(mainId + ' .tabs__content.call #showDatetime').addClass('invalid');
}
if(!isEdit && isEmpty(users_id)){
$(mainId + ' .tabs__content.call .otvetstven').addClass('invalid');
}
}
return false;
});
$("body").on('click', '.action_show', function(e) {
e.stopPropagation();
var mainId = "#" + $(this).closest(".full_modal").attr("id");
var text = $(mainId + ' .tabs__content.show #meetComment').val();
var date = $(mainId + ' .tabs__content.show #meetDatetime').datepicker().val();
var users_id = $(mainId + ' .tabs__content.show .ms-crm-client-work').val();
// при редактировании (data-id задан и не 0) поле «Ответственный» скрыто и не меняется — не требуем его
var isEdit = $(this).attr("data-id") !== undefined && $(this).attr("data-id") !== '0';
var address = $(mainId + ' .tabs__content.show #meetAddress').val();
$(mainId + ' .tabs__content.show #meetDatetime').removeClass('invalid');
$(mainId + ' .tabs__content.show .otvetstven').removeClass('invalid');
//console.log(date);
if (date && $.trim(date) && (isEdit || !isEmpty(users_id))) {
var id_client = $(mainId + ' .tabs__content.show .ms-big-add-client').val();
var data = {
"client_id": (!isEmpty(id_client) ? JSON.stringify(id_client) : ''),
"comment": text,
"schedule_date": date,
"users_id": JSON.stringify(users_id),
"type": 'show',
"address": address,
}
if (mainId == '#addEvent') {
data.noEvent = 1;
}
var event_id = false;
if ($(this).data("id") !== undefined) {
data.event_id = $(this).attr("data-id");
event_id = $(this).attr("data-id");
}
// console.log(data);
$.ajax({
url: '/ajax/addEventsCabinet.php',
method: "post",
data: data,
success: function(d) {
$("#addTaskBg").hide();
$("#addTask").hide();
$("#addEventBg").hide();
$("#addEvent").hide();
$("body").removeClass("lock");
if (event_id) { updateMes(event_id); }
getCalendar();
}
});
} else {
if(isEmpty($.trim(date))){
$(mainId + ' .tabs__content.show #meetDatetime').addClass('invalid');
}
if(!isEdit && isEmpty(users_id)){
$(mainId + ' .tabs__content.show .otvetstven').addClass('invalid');
}
}
return false;
});
$("body").on('click', '.action_meet', function(e) {
e.stopPropagation();
var mainId = "#" + $(this).closest(".full_modal").attr("id");
var text = $(mainId + ' .tabs__content.meet #meetComment').val();
var date = $(mainId + ' .tabs__content.meet #meetDatetime').datepicker().val();
var users_id = $(mainId + ' .tabs__content.meet .ms-crm-client-work').val();
// при редактировании (data-id задан и не 0) поле «Ответственный» скрыто и не меняется — не требуем его
var isEdit = $(this).attr("data-id") !== undefined && $(this).attr("data-id") !== '0';
var address = $(mainId + ' .tabs__content.meet #meetAddress').val();
$(mainId + ' .tabs__content.meet #meetDatetime').removeClass('invalid');
$(mainId + ' .tabs__content.meet .otvetstven').removeClass('invalid');
//console.log(date);
if (date && $.trim(date) && (isEdit || !isEmpty(users_id))) {
var id_client = $(mainId + ' .tabs__content.meet .ms-big-add-client').val();
var data = {
"client_id": (!isEmpty(id_client) ? JSON.stringify(id_client) : ''),
"comment": text,
"schedule_date": date,
"users_id": JSON.stringify(users_id),
"type": 'meet',
"address": address,
}
if (mainId == '#addEvent') {
data.noEvent = 1;
}
var event_id = false;
if ($(this).data("id") !== undefined) {
data.event_id = $(this).attr("data-id");
event_id = $(this).attr("data-id");
}
$.ajax({
url: '/ajax/addEventsCabinet.php',
method: "post",
data: data,
success: function(d) {
// console.log(d);
$("#addTaskBg").hide();
$("#addTask").hide();
$("#addEventBg").hide();
$("#addEvent").hide();
$("body").removeClass("lock");
if (event_id) { updateMes(event_id); }
getCalendar();
}
});
} else {
if(isEmpty($.trim(date))){
$(mainId + ' .tabs__content.meet #meetDatetime').addClass('invalid');
}
if(!isEdit && isEmpty(users_id)){
$(mainId + ' .tabs__content.meet .otvetstven').addClass('invalid');
}
}
return false;
});
$("body").on('click', '.action_deal', function(e) {
e.stopPropagation();
var mainId = "#" + $(this).closest(".full_modal").attr("id");
var text = $(mainId + ' .tabs__content.deal #dealComment').val();
var date = $(mainId + ' .tabs__content.deal #dealDatetime').datepicker().val();
var users_id = $(mainId + ' .tabs__content.deal .ms-crm-client-work').val();
// при редактировании (data-id задан и не 0) поле «Ответственный» скрыто и не меняется — не требуем его
var isEdit = $(this).attr("data-id") !== undefined && $(this).attr("data-id") !== '0';
var sum = $(mainId + ' .tabs__content.deal #dealSum').val();
$(mainId + ' .tabs__content.deal #dealDatetime').removeClass('invalid');
$(mainId + ' .tabs__content.deal .otvetstven').removeClass('invalid');
// console.log(date);
if (date && $.trim(date) && (isEdit || !isEmpty(users_id))) {
var id_client = $(mainId + ' .tabs__content.deal .ms-big-add-client').val();
var data = {
"client_id": (!isEmpty(id_client) ? JSON.stringify(id_client) : ''),
"comment": text,
"schedule_date": date,
"users_id": JSON.stringify(users_id),
"type": 'deal',
"sum": sum
}
if (mainId == '#addEvent') {
data.noEvent = 1;
}
var event_id = false;
if ($(this).data("id") !== undefined) {
data.event_id = $(this).attr("data-id");
event_id = $(this).attr("data-id");
}
//console.log(data);
$.ajax({
url: '/ajax/addEventsCabinet.php',
method: "post",
data: data,
success: function(data) {
$("#addTaskBg").hide();
$("#addTask").hide();
$("#addEventBg").hide();
$("#addEvent").hide();
$("body").removeClass("lock");
if (event_id) { updateMes(event_id); }
getCalendar();
}
});
} else {
if(isEmpty($.trim(date))){
$(mainId + ' .tabs__content.deal #dealDatetime').addClass('invalid');
}
if(!isEdit && isEmpty(users_id)){
$(mainId + ' .tabs__content.deal .otvetstven').addClass('invalid');
}
}
return false;
});
$("body").on('click', '.action_event', function(e) {
e.stopPropagation();
var mainId = "#" + $(this).closest(".full_modal").attr("id");
var text = $(mainId + ' .tabs__content.event #dealComment').val();
var date = $(mainId + ' .tabs__content.event #dealDatetime').datepicker().val();
var name = $(mainId + ' .tabs__content.event #eventName').val();
var users_id = $(mainId + ' .tabs__content.event .ms-crm-client-work').val();
// при редактировании (data-id задан и не 0) поле «Ответственный» скрыто и не меняется — не требуем его
var isEdit = $(this).attr("data-id") !== undefined && $(this).attr("data-id") !== '0';
$(mainId + ' .tabs__content.event #dealDatetime').removeClass('invalid');
$(mainId + ' .tabs__content.event .otvetstven').removeClass('invalid');
//console.log(mainId);
if (date && $.trim(date) && (isEdit || !isEmpty(users_id) || !isEmpty($('#addTask .who_work_tasks').val()))) {
var id_client = $(mainId + ' .tabs__content.event .ms-big-add-client').val();
var data = {
"client_id": (!isEmpty(id_client) ? JSON.stringify(id_client) : ''),
"comment": text,
"schedule_date": date,
"users_id": JSON.stringify(users_id),
"type": 'even',
"name": name,
"event_id": 0
}
if (mainId == '#addEvent') {
data.noEvent = 1;
}
var event_id = false;
if ($(this).attr("data-id") !== undefined) {
data.event_id = $(this).attr("data-id");
}
if ($('#clientIdEvent').val() !== undefined) {
data.clientId = $('#clientIdEvent').val();
}
if ($('#reqIdEvent').val() !== undefined) {
data.reqId = $('#reqIdEvent').val();
}
if ($('#userIdEvent').val() !== undefined) {
data.userId = $('#userIdEvent').val();
}
if($('#addTask .event .otvetstven1').is(":visible") && $('#addTask .who_work_tasks').val()){
data.who_work = $('#addTask .who_work_tasks').val();
}
//console.log(data);
$.ajax({
url: '/ajax/addEventsCabinet.php',
method: "post",
data: data,
success: function(r) {
//console.log(r);
$("#addTaskBg").hide();
$("#addTask").hide();
$("#addEventBg").hide();
$("#addEvent").hide();
$("body").removeClass("lock");
//console.log(event_id);
/*if(event_id){ updateMes(event_id);}
getCalendar();*/
var url = '/ajax/getClientLogForEventsNew.php?id=' + data.clientId;
if (data.reqId > 0) {
url += '&req_id=' + data.reqId;
}
$.ajax({
url: url,
success: function(data) {
$('#client-info-block').html(data);
$('#client_history .history__chat-n').animate({
scrollTop: $('#client-info-block').prop("scrollHeight")
}, 500, function() {
$('#client_history .history__chat-n').slimScroll({ scrollTo: $('#client-info-block').prop("scrollHeight") + 'px' });
});
if ($('#calendar').length) {
$('#calendar').fullCalendar('refetchEvents');
}
}
});
}
});
} else {
if(isEmpty($.trim(date))){
$(mainId + ' .tabs__content.event #dealDatetime').addClass('invalid');
}
if(!isEdit && isEmpty(users_id)){
$(mainId + ' .tabs__content.event .otvetstven').addClass('invalid');
}
}
return false;
});
$("body").on('click', '.action_obj_call', function(e) {
e.stopPropagation();
let form = $(this).closest(".full_modal");
let event_id = $(this).attr("data-id");
let id_object = $(this).attr("data-objectid");
let type = $(this).attr("data-type");
let date, name, comment, address, sum, req_id;
if (type == "even") {
date = form.find('.event #dealDatetime').datepicker().val();
name = form.find('.event #eventName').val();
comment = form.find('.event #dealComment').val();
} else if (type == "meet") {
date = form.find('.meet #meetDatetime').datepicker().val();
comment = form.find('.meet #meetComment').val();
address = form.find('.meet #meetAddress').val();
} else if (type == "call") {
date = form.find('.call .callDatetime').datepicker().val();
comment = form.find('.call .callComment').val();
} else if (type == "show") {
date = form.find('.show #showDatetime').datepicker().val();
comment = form.find('.show #showComment').val();
address = form.find('.show #showAddress').val();
req_id = $('#showRequisitionsEdit').val();
} else if (type == "deal") {
date = form.find('.deal #dealDatetime').datepicker().val();
comment = form.find('.deal #dealComment').val();
sum = form.find('.deal #dealSum').val();
}
let params = {
event_id: event_id,
object_id: id_object,
type: type,
schedule_date: date,
name: name,
comment: comment,
address: address,
sum: sum,
req_id: req_id,
};
//console.log(params);
$.ajax({
url: '/ajax/changeEventsObj.php',
method: "post",
data: params,
success: function(result) {
//console.log(result);
$("#addTaskBgObj").hide();
$("#addTaskObj").hide();
$("body").removeClass("lock");
$.ajax({
url: '/ajax/getObjectInfoForEvents.php?id=' + id_object,
success: function(data) {
$('#object-info-block').html(data);
$.ajax({
url: '/ajax/getLogForEvents.php?object_id=' + id_object,
success: function(data) {
$('#event-chat').html(data);
$('.history__chat').scrollTop($('#event-chat').prop("scrollHeight"));
}
});
setTimeout(function() {
$('#object-info-block .fotorama').fotorama();
initializeMapOnEventWindow();
}, 100);
}
});
}
});
return false;
});
$('body').on('click', '.search-query-item .ti-close', function() {
$('.filter-popup-type').each(function() {
$(this).removeClass('active');
});
for (let i = 1; i <= 4; i++) {
$('.filter-priority' + i).removeClass('active');
}
$('.filter-popup__right select[multiple]').each(function() {
$(this).parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
});
$('#order').prop('checked', false);
show_options_search_charts();
get_sourse_filter();
});
$('body').on('click', '#addTaskBgObj .closer', function() {
$("#addTaskBgObj").hide();
$("#addTaskObj").hide();
$("body").removeClass("lock");
});
$('body').on('click', '#merepriation_bg .closer', function() {
$("#merepriation_bg").hide();
$("#merepriation-history").hide();
$("body").removeClass("lock");
});
$('body').on('click', '#addTaskBg .closer', function() {
$("#addTaskBg").hide();
$("#addTask").hide();
$("body").removeClass("lock");
return false;
});
$('body').on('click', '#client-history__bg .closer', function() {
$('#client-history__bg').css('zIndex', '99988');
$('.chat-history__actions_new').removeClass('show');
$("#client-history__bg").hide(10);
$("#client_history").hide(10);
$("body").removeClass("lock");
return false;
});
$('body').on('click', '#addEventBg .closer', function() {
$("#addEventBg").hide();
$("#addEvent").hide();
$("body").removeClass("lock");
return false;
});
$('#addTask .ms-crm-client-work').fastselect({
onItemCreate: function(item, model) {
if ($('#addTask .ms-crm-client-work').find('option[value=' + model.value + ']').hasClass('bolt')) {
$(item).addClass('bolt');
}
},
placeholder: 'Ответственный',
onItemSelect: function(item) {
var divId = 'addTask';
var mainDivClass = $('#' + divId + ' .tabs__caption .active').data("id");
var res = $('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-crm-client-work').val();
// $('.tabs__content.'+mainDivClass+' .ms-big-add-client').closest('.inputs').html('');
$.post('/ajax/getCharts.php', { getSelectClients: 'getSelectClients', responsible: JSON.stringify(res), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }, function(data) {
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').closest('.crm__filter-input').html(data);
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
});
},
onItemDelete: function() {
var divId = 'addTask';
var mainDivClass = $('#' + divId + ' .tabs__caption .active').data("id");
var res = $('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-crm-client-work').val();
// $('.tabs__content.'+mainDivClass+' .ms-big-add-client').closest('.inputs').html('');
$.post('/ajax/getCharts.php', { getSelectClients: 'getSelectClients', responsible: JSON.stringify(res), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }, function(data) {
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').closest('.crm__filter-input').html(data);
$('#' + divId + ' .tabs__content.' + mainDivClass + ' .ms-big-add-client').fastselect({
placeholder: 'Клиент'
});
});
}
});
$('#ms-new-client-bank').fastselect({
placeholder: 'Банк',
});
$('#ms-new-resolve-bank').fastselect({
placeholder: 'Банк',
});
/* $('#ms-new-client-bank-issue').fastselect({
placeholder: 'Банк выдачи',
});*/
/*$('#ms-new-client-bank-revisal').fastselect({
placeholder: 'Банк (пересмотр)',
});*/
$('#ms_new_bancks_credit').fastselect({
placeholder: 'Банковский продукт',
});
var mainPhoneInput = $('.phoneMask#phoneClient');
var mainPhoneCheckbox = $('#national_phone');
function handleInput() {
var mainPhoneNumber = mainPhoneInput.val();
// Проверка на наличие первого символа "+"
if (mainPhoneNumber.startsWith('+')) {
// Удаление всех нецифровых символов, кроме "+"
mainPhoneNumber = mainPhoneNumber.replace(/[^\d+]/g, '');
mainPhoneInput.val(mainPhoneNumber);
} else {
mainPhoneInput.value = '';
}
}
function handleCheckboxChange() {
if (mainPhoneCheckbox.prop('checked')) {
mainPhoneInput.unmask();
mainPhoneInput.val('+')
mainPhoneInput.on('input', handleInput);
mainPhoneInput.focus();
} else {
mainPhoneInput.off('input', handleInput);
mainPhoneInput.mask("+79999999999");
mainPhoneInput.focus();
}
}
mainPhoneCheckbox.on('change', handleCheckboxChange);
$('body').on('click', '#add_phone2', function() {
var inputId = 'input_phone_' + phone2Index;
var checkboxId = 'checkbox_phone_' + phone2Index;
var formBloc = document.createElement('div');
formBloc.classList.add('form-block');
var labelDiv = document.createElement('div');
labelDiv.classList.add('label');
labelDiv.textContent = 'Дополнительный телефон';
formBloc.appendChild(labelDiv)
var inputsDiv = document.createElement('div');
inputsDiv.classList.add('inputs');
var inputPhone = document.createElement('input');
inputPhone.classList.add('text', 'phoneMask');
inputPhone.id = inputId;
inputPhone.type = 'text';
inputPhone.style.width = '400px';
inputPhone.name = 'phone2';
inputPhone.value = '';
inputsDiv.appendChild(inputPhone);
formBloc.appendChild(inputsDiv);
var checkboxDiv = document.createElement('div');
checkboxDiv.classList.add('checkbox', 'inline-block');
checkboxDiv.style = 'display: inline-block;min-height: unset; padding-left: 0px; margin-top: 0px; margin-bottom: 0px;';
var inputCheckbox = document.createElement('input');
inputCheckbox.id = checkboxId;
inputCheckbox.type = 'checkbox';
checkboxDiv.appendChild(inputCheckbox);
var labelCheckbox = document.createElement('label');
labelCheckbox.classList.add('label', 'ml-5', 'whitespace-nowrap');
labelCheckbox.setAttribute('for', checkboxId);
labelCheckbox.textContent = 'Зарубежный телефон';
checkboxDiv.appendChild(labelCheckbox);
formBloc.appendChild(checkboxDiv);
inputCheckbox.addEventListener('change', function() {
if (inputCheckbox.checked) {
$('#' + inputId).unmask();
inputPhone.value = '+'
inputPhone.addEventListener('input', function() {
var phoneNumber = inputPhone.value;
// Проверка на наличие первого символа "+"
if (phoneNumber.startsWith('+')) {
// Удаление всех нецифровых символов, кроме "+"
phoneNumber = phoneNumber.replace(/[^\d+]/g, '');
inputPhone.value = phoneNumber;
} else {
inputPhone.value = '';
}
});
inputPhone.focus();
} else {
$('#' + inputId).mask("+79999999999");
inputPhone.focus();
}
});
$(this).closest('.form-block').before(formBloc);
$('#' + inputId).mask("+79999999999");
phone2Index++;
});
$('body').on('click', '#union_clients_form_open', function() {
var id = $(this).attr("data-id");
console.log(typeof union_clients);
if(typeof union_clients == 'object'){
union_clients.client_dop_id = id;
union_clients.open();
}
});
$('body').on('blur', '.phoneMask', function() {
var phone = $(this).val();
var id = $('#addEditNew [name=id]').val();
var funnel_id = $('.funnels_client .active').data("id");
if ($("#ms-new-funnel").is(":visible")) {
funnel_id = $("#ms-new-funnel").val();
}
if (phone != '' && phone != '+7__________' && phone != '+') {
$.post('/ajax/addEditClient.php', {
verifity_phone: phone,
funnel_id: funnel_id,
id: id
},
function(data) {
//console.log(data);
if (data != 0) {
$('#addEditNew .error_msg').html(data).show();
//$('#addEditNew .error_msg').next().text('Клиент '+fio);
$('#addEditNew .modal-title').text('Клиент ' + fio);
// $(".full_modal-bg").animate({ scrollTop: 0 }, 500);
}
});
}
});
$('body').on('change', '#ms-new-funnel', function() {
var hasPhoneMask = $('#phoneClient').hasClass('phoneMask');
var phone = $('#phoneClient').val();
var id = $('#addEditNew [name=id]').val();
var funnel_id = $("#ms-new-funnel").val();
if (hasPhoneMask && phone != '' && phone != '+7__________' && phone != '+') {
$.post('/ajax/addEditClient.php', {
verifity_phone: phone,
funnel_id: funnel_id,
id: id
},
function(data) {
//console.log(data);
if (data != 0) {
$('#addEditNew .error_msg').html(data).show();
} else {
$('#addEditNew .error_msg').html('').hide();
}
});
}
if ($("#ms-new-funnel").val() > 0) {
$('#addEditNew .stepsTable').hide();
}
});
$('body').on('focus', '#phoneClient', function() {
$('#addEditNew .error_msg').html('').hide();
});
$('body').on('change', '#yes_doc', function() {
if ($(this).prop('checked')) {
$('.prodoc').removeClass('hidden');
} else {
$('.prodoc').addClass('hidden');
}
});
$('body').on('change', '#yes_bank', function() {
//$('#addEditNew .stage-meet .crm__small-stage').click();
if ($(this).prop('checked')) {
$('.probank').removeClass('hidden');
} else {
$('.probank').addClass('hidden');
}
});
$('body').on('change', '#yes_resolve', function() {
$('#addEditNew .stage-meet .crm__small-stage').click();
if ($(this).prop('checked')) {
$('.proresolve').removeClass('hidden');
} else {
$('.proresolve').addClass('hidden');
}
});
$('body').on('change', '#yes_issue', function() {
$('#addEditNew .stage-meet .crm__small-stage').click();
if ($(this).prop('checked')) {
$('.proissue').removeClass('hidden');
} else {
$('.proissue').addClass('hidden');
}
});
$('body').on('change', '#rynok_1', function() {
if ($(this).prop('checked')) {
$('.prorynok').removeClass('hidden');
} else {
$('.prorynok').addClass('hidden');
}
});
$('body').on('change', '#rynok_2', function() {
if ($(this).prop('checked')) {
$('.prorynok').addClass('hidden');
} else {
$('.prorynok').removeClass('hidden');
}
});
$('body').on('change', '#persone_no_ip', function() {
if ($(this).prop('checked')) {
$('.persone_no_ip').removeClass('hidden');
$('.persone_yas_ip').addClass('hidden');
} else {
}
});
$('body').on('change', '#persone_yes_ip', function() {
if ($(this).prop('checked')) {
$('.persone_yas_ip').removeClass('hidden');
$('.persone_no_ip').addClass('hidden');
} else {
//$('.persone_yas_ip').addClass('hidden');
}
});
$('body').on('change', '#yes_brak', function() {
if ($(this).prop('checked')) {
$('.probrak').removeClass('hidden');
} else {
$('.probrak').addClass('hidden');
$('#yes_brak_doc').prop('checked', false);
}
});
$('body').on('change', '#yes_co_dohod', function() {
if ($(this).prop('checked')) {
$('.prosodohod').removeClass('hidden');
} else {
$('.prosodohod').addClass('hidden');
$('#co_borrower_dohod').val('');
}
});
$('body').on('change', '#yes_co_borrower', function() {
if ($(this).prop('checked')) {
$('.proborrower').removeClass('hidden');
} else {
$('.proborrower').addClass('hidden');
$('.proborrower input').val('');
}
});
$('body').on('click', '.probank .edit-btn', function() {
$.ajax({
url: '/ajax/modals/bankRequestWinContent.php',
success: function(data) {
$("#edit_bankcs_zayavka").html(data);
$('.datepicker-here2').datepicker({
autoClose: 'true'
});
$('#edit_bankcs_zayavka [name=employee]').val('');
$('#edit_bankcs_zayavka [name=date_bank]').data('datepicker').selectDate(new Date());
var html = '<select id="ms-new-client-bank" class="ms-new-client-bank">' + $("#ms-new-client-bank").html() + '</select>';
$("#ms-new-client-bank").closest(".inputs").html(html);
$("#ms-new-client-bank option:eq(0)").prop("selected", true);
$("#ms-new-client-bank").fastselect({ placeholder: 'Банк' });
$('#edit_bankcs_zayavka').fadeIn(500);
$("#edit_bankcs_zayavka .edit-modal").toggle(10);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
return false;
});
$('body').on('click', '#edit_bankcs_zayavka .event-modal-close', function() {
$('#edit_bankcs_zayavka').fadeOut(500);
$("#edit_bankcs_zayavka .edit-modal").toggle(10);
setTimeout(function() { $("body").addClass("lock") }, 100);
//$("body").removeClass("lock");
});
$('body').on('click', '#edit_bankcs_zayavka .saved', function() {
var name_bank = $('#edit_bankcs_zayavka .fstToggleBtn').text();
var id_bank = $('#ms-new-client-bank').val();
var employee_bank = $('#edit_bankcs_zayavka input[name=employee]').val();
var date_bank = $('#edit_bankcs_zayavka [name=date_bank]').val();
if ($('#list_bank_' + id_bank).length > 0) {
$('#list_bank_' + id_bank + ' .adv_activities').text(name_bank);
$('#list_bank_' + id_bank + ' .adv_activities').data("employee", employee_bank);
$('#list_bank_' + id_bank + ' .adv_activities').data("date", date_bank);
} else {
var htmlli = '<li class="list_bank" id="list_bank_' + id_bank + '">' +
'<span class="adv_activities" data-id="' + id_bank + '" data-date="' + date_bank + '" data-employee="' + employee_bank + '">' + name_bank + '</span>' +
'<a href="javascript:{};" class="fl-right delZayavka no-border tooltip tooltip-effect" data-id="' + id_bank + '">' +
'<span class="simple-button tooltip-item">' +
'<i class="ti-close"></i>' +
'</span>' +
'<span class="tooltip-content tt-pdf clear">' +
'<b class="tooltip-text">Удалить</b>' +
'</span>' +
'</a>' +
'</li>';
$('.probank ul').append(htmlli);
}
$('#edit_bankcs_zayavka').fadeOut(500);
$("#edit_bankcs_zayavka .edit-modal").toggle(10);
setTimeout(function() { $("body").addClass("lock") }, 100);
return false;
});
$('body').on('click', '.probank .list_bank .adv_activities', function() {
var name_bank = $(this).text();
var id_bank = $(this).attr("data-id");
var employee_bank = $(this).attr("data-employee");
var date_bank = $(this).attr("data-date");
$.ajax({
url: '/ajax/modals/bankRequestWinContent.php',
success: function(data) {
$("#edit_bankcs_zayavka").html(data);
$('.datepicker-here2').datepicker({
autoClose: 'true'
});
var html = '<select id="ms-new-client-bank" class="ms-new-client-bank">' + $("#ms-new-client-bank").html() + '</select>';
$("#ms-new-client-bank").closest(".inputs").html(html);
$("#ms-new-client-bank [value=" + id_bank + "]").prop("selected", true);
$("#ms-new-client-bank").fastselect({ placeholder: 'Банк' });
$('#edit_bankcs_zayavka [name=employee]').val(employee_bank);
$('#edit_bankcs_zayavka [name=date_bank]').val(date_bank);
$('#edit_bankcs_zayavka').fadeIn(500);
$("#edit_bankcs_zayavka .edit-modal").toggle(10);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
});
$('body').on('click', '.probank .delZayavka', function() {
var id = $(this).data("id");
$("#list_bank_" + id).remove();
});
$('body').on('click', '.proresolve .edit-btn', function() {
$.ajax({
url: '/ajax/modals/bankResolveWinContent.php',
success: function(data) {
$("#edit_bankcs_resolve").html(data);
$('.datepicker-here2').datepicker({
autoClose: 'true'
});
$('#edit_bankcs_resolve [name=summa]').val('');
$('#edit_bankcs_resolve [name=prstavka]').val('');
$('#edit_bankcs_resolve [name=srok]').val('');
$('#edit_bankcs_resolve [name=usloviya]').val('');
var html = '<select id="ms-new-resolve-bank" class="ms-new-resolve-bank">' + $("#ms-new-resolve-bank").html() + '</select>';
$("#ms-new-resolve-bank").closest(".inputs").html(html);
$("#ms-new-resolve-bank option:eq(0)").prop("selected", true);
$("#ms-new-resolve-bank").fastselect({ placeholder: 'Банк' });
$('#edit_bankcs_resolve').fadeIn(500);
$("#edit_bankcs_resolve .edit-modal").toggle(10);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
return false;
});
$('body').on('click', '#edit_bankcs_resolve .event-modal-close', function() {
$('#edit_bankcs_resolve').fadeOut(500);
$("#edit_bankcs_resolve .edit-modal").toggle(10);
setTimeout(function() { $("body").addClass("lock") }, 100);
//$("body").removeClass("lock");
});
$('body').on('click', '#edit_bankcs_resolve .saved', function() {
var name_bank = $('#edit_bankcs_resolve .fstToggleBtn').text();
var id_bank = $('#ms-new-resolve-bank').val();
var summa = $('#edit_bankcs_resolve [name=summa]').val();
var prstavka = $('#edit_bankcs_resolve [name=prstavka]').val();
var srok = $('#edit_bankcs_resolve [name=srok]').val();
var usloviya = $('#edit_bankcs_resolve [name=usloviya]').val();
if ($('#list_resolve_' + id_bank).length > 0) {
$('#list_resolve_' + id_bank + ' .adv_activities').text(name_bank);
$('#list_resolve_' + id_bank + ' .adv_activities').data("summa", summa);
$('#list_resolve_' + id_bank + ' .adv_activities').data("prstavka", prstavka);
$('#list_resolve_' + id_bank + ' .adv_activities').data("srok", srok);
$('#list_resolve_' + id_bank + ' .adv_activities').data("usloviya", usloviya);
} else {
var htmlli = '<li class="list_bank" id="list_resolve_' + id_bank + '">' +
'<span class="adv_activities" data-id="' + id_bank + '" data-summa="' + summa + '" data-prstavka="' + prstavka + '" data-srok="' + srok + '" data-usloviya="' + usloviya + '">' + name_bank + '</span>' +
'<a href="javascript:{};" class="fl-right delResolve no-border tooltip tooltip-effect" data-id="' + id_bank + '">' +
'<span class="simple-button tooltip-item">' +
'<i class="ti-close"></i>' +
'</span>' +
'<span class="tooltip-content tt-pdf clear">' +
'<b class="tooltip-text">Удалить</b>' +
'</span>' +
'</a>' +
'</li>';
$('.proresolve ul').append(htmlli);
}
$('#edit_bankcs_resolve').fadeOut(500);
$("#edit_bankcs_resolve .edit-modal").toggle(10);
setTimeout(function() { $("body").addClass("lock") }, 100);
return false;
});
$('body').on('click', '.proresolve .list_bank .adv_activities', function() {
var name_bank = $(this).text();
var id_bank = $(this).attr("data-id");
var summa = $(this).attr("data-summa");
var prstavka = $(this).attr("data-prstavka");
var srok = $(this).attr("data-srok");
var usloviya = $(this).attr("data-usloviya");
var html = '<select id="ms-new-resolve-bank" class="ms-new-resolve-bank">' + $("#ms-new-resolve-bank").html() + '</select>';
$.ajax({
url: '/ajax/modals/bankResolveWinContent.php',
success: function(data) {
$("#edit_bankcs_resolve").html(data);
$('.datepicker-here2').datepicker({
autoClose: 'true'
});
$("#ms-new-resolve-bank").closest(".inputs").html(html);
$("#ms-new-resolve-bank [value=" + id_bank + "]").prop("selected", true);
$("#ms-new-resolve-bank").fastselect({ placeholder: 'Банк' });
$('#edit_bankcs_resolve [name=summa]').val(summa);
$('#edit_bankcs_resolve [name=prstavka]').val(prstavka);
$('#edit_bankcs_resolve [name=srok]').val(srok);
$('#edit_bankcs_resolve [name=usloviya]').val(usloviya);
$('#edit_bankcs_resolve').fadeIn(500);
$("#edit_bankcs_resolve .edit-modal").toggle(10);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
});
$('body').on('click', '.proresolve .delResolve', function() {
var id = $(this).data("id");
$("#list_resolve_" + id).remove();
});
//*********часть для документов************//
$('body').on('click', '.dir.opened', function(e) {
if ($(e.target).closest(".docsfiles").length < 1) {
$(this).find('.docsfiles').toggleClass('hidden');
}
});
$('body').on('click', '.new_folder_add', function() {
$('#folder_add_bg').show(10);
$('#folder_add').show(10);
$("body").addClass("lock");
return false;
});
$('body').on('click', '#folder_add_bg .closer', function() {
$("#folder_add_bg").hide(10);
$("#folder_add").hide(10);
$("body").removeClass("lock");
return false;
});
$('#form_add_folder').submit(function() {
var name = $('#form_add_folder input[name=name]').val();
var user_id = $('#form_add_folder #folder_idUser').val();
var perm_folder = $('#form_add_folder #filter-perm-doc-type').val();
var params = {};
params.add_new_folder = name;
params.user_id = user_id;
params.permissions = perm_folder;
$.post('/ajax/folders.php', params, function(data) {
$("#folder_add_bg").hide(10);
$("#folder_add").hide(10);
$("body").removeClass("lock");
get_folders();
});
return false;
});
$('#filter-perm-doc-type').fastselect({
placeholder: 'Участники',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
}
});
$('body').on('click', '.delFolder', function() {
var id = $(this).data("id");
if (confirm('Вы точно хотите безвозвратно удалить эту папку?')) {
$.post('/ajax/folders.php', { delete_folder: id }, function() {
$('#folder_id_' + id).remove();
});
}
});
$('body').on('click', '.add_doc', function() {
var id_folder = $(this).data("id");
var url = '/server/php/index.php?folder=' + id_folder;
$('#files_upload #files').html('');
$('#fileupload_folder_id').val(id_folder);
$('#progress .progress-bar').css(
'width',
'0%'
);
$('#fileupload').fileupload({
url: url,
dataType: 'json',
done: function(e, data) {
console.log(data.result);
$.each(data.result.files, function(index, file) {
if (file.error) {
alert(file.error);
} else {
$('<p/>').text(file.name).appendTo('#files');
}
});
$.post('/ajax/folders.php', { save_files: id_folder, files: JSON.stringify(data.result.files) }, function(data) {
// console.log(data);
get_folders(id_folder);
});
},
progressall: function(e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css(
'width',
progress + '%'
);
}
}).prop('disabled', !$.support.fileInput)
.parent().addClass($.support.fileInput ? undefined : 'disabled');
$('#files_upload').show(10);
$('#file_upload').show(10);
$("body").addClass("lock");
return false;
});
$('body').on('click', '#files_upload .closer', function() {
$("#files_upload").hide(10);
$("#file_upload").hide(10);
$("body").removeClass("lock");
return false;
});
$('body').on('click', '.delDocument', function() {
var id = $(this).data("id");
if (confirm('Вы точно хотите безвозвратно удалить этот документ?')) {
$.post('/ajax/folders.php', { delete_document: id }, function(data) {
console.log(data);
$('#agencyDocument_' + id).remove();
});
}
});
//Для объектов
$('body').on('input', '#etaz', function() {
var etaz = $(this).val();
if (etaz == 1) {
$('#block_etaz_first_type').removeClass('hidden');
} else {
$('#block_etaz_first_type').addClass('hidden');
$('#block_etaz_first_type select option:eq(0)').prop('selected', true);
}
});
//Новые воронки
$('body').on('click', '.funnels_client li', function(e) {
if ($(this).hasClass('quest_funnel')) {
//console.log(e.target);
} else {
if ($(this).closest('.isNoLoadPage').length > 0) {
//console.log('isNoLoadPage');
var id = $(this).attr("data-id");
$('.funnels_client li').removeClass('active');
$(this).addClass('active');
$('#funnelIdClients').val(id);
page_kanban = 1;
add_knban = true;
if (document.location.pathname == '/requisitions.php') {
window.history.pushState(null, null, "requisitions.php?funnelId=" + id);
requisitions.funnel_id = id;
requisitions.page = 1;
requisitions.getList();
} else {
if (document.location.pathname == '/clients.php') {
window.history.pushState(null, null, "clients.php?funnelId=" + id);
if(id == 0 && $(this).attr("data-stage") == 0){
$('.view-kanban').addClass('hidden');
if($('.view-kanban.active').length > 0){
$('.view-kanban').removeClass('active');
$('.view-list').addClass('active');
}
} else {
$('.view-kanban').removeClass('hidden');
}
//requisitions.funnel_id = id;
//requisitions.page = 1;
get_list();
}
}
} else {
var id = $(this).data("id");
var url = new URL(window.location.href);
url.searchParams.set('funnelId', id);
window.location.href = url.toString();
}
}
});
//Этапы воронок
$('body').on('click', '.crm__small-step', function(e) {
if($(e.target).closest('.list_stagebars').length > 0 || $(e.target).closest('.no_event_stagebars').length > 0 || $(this).hasClass('not_clicked')){
return;
}
var $clickedStep = $(this);
var stage = parseInt($(this).attr("data-stage"));
var client = $(this).attr("data-client");
var req = $(this).attr("data-req");
var adjacent = $(this).attr("data-adjacent");
var main = $(this).attr("data-main");
// Находим этапы текущей заявки
var $row = $clickedStep.closest('tr');
var stages = $row.find('.stage .crm__small-step');
// Индекс кликнутого этапа
var clickedIndex = stages.index(this);
// Индекс текущего активного этапа
var currentIndex = null;
stages.each(function(index) {
if ($(this).closest('.stage').hasClass('active')) {
currentIndex = index;
}
});
// Если нет активного этапа
if (currentIndex === null) {
var $firstStep = $(stages.get(0)); // первый этап
var firstStage = $firstStep.attr("data-stage");
var firstClient = $firstStep.attr("data-client");
var firstReq = $firstStep.attr("data-req");
var firstAdjacent = $firstStep.attr("data-adjacent");
var firstMain = $firstStep.attr("data-main");
// Если первый этап доступен (main == 1), то открываем его
if (firstMain == 1) {
$.post('/ajax/funnel_step_close.php', { 'step': firstStage, 'client': firstClient, 'req': req }, function(res) {
ac.closesStep = true;
ac.step = JSON.parse(res);
ac.clientId = firstClient;
ac.reqId = firstReq;
ac.stepId = firstStage;
ac.adjacentId = firstAdjacent;
ac.openStep();
});
} else {
error_mes('#step_funnel_error' + firstClient, 'Сначала откройте первый этап');
}
return;
}
if (clickedIndex <= currentIndex) {
if ($clickedStep.closest('.active').length == 1) {
error_mes('#step_funnel_error' + client, 'Этап закрыт');
ac.clientId = client;
ac.reqId = req;
ac.adjacentId = adjacent;
ac.openPrevStep();
return;
}
if (main == 0 && !$clickedStep.closest('.stage').prev().hasClass("active")) {
if(adjacent){
error_mes('#step_funnel_erroradjacent_' + adjacent, 'Нужно закрыть предыдущий этап');
} else if (client) {
error_mes('#step_funnel_error' + client, 'Нужно закрыть предыдущий этап');
} else if (req) {
error_mes('#step_funnel_errorreq' + req, 'Нужно закрыть предыдущий этап');
}
return;
}
$.post('/ajax/funnel_step_close.php', { 'step': stage, 'client': client, 'req': req }, function(res) {
ac.closesStep = true;
ac.step = JSON.parse(res);
ac.clientId = client;
ac.reqId = req;
ac.stepId = stage;
ac.adjacentId = adjacent;
ac.openStep();
});
return;
}
var nextIndex = currentIndex + 1;
var $nextStep = $(stages.get(nextIndex));
var nextStage = $nextStep.attr("data-stage");
var nextClient = $nextStep.attr("data-client");
var nextReq = $nextStep.attr("data-req");
var nextAdjacent = $nextStep.attr("data-adjacent");
$.post('/ajax/funnel_step_close.php', { 'step': nextStage, 'client': nextClient, 'req': req }, function(res) {
ac.closesStep = true;
ac.step = JSON.parse(res);
ac.clientId = nextClient;
ac.reqId = nextReq;
ac.stepId = nextStage;
ac.adjacentId = nextAdjacent;
ac.openStep();
});
});
//Партнер
$("body").on('click', '#client_add_partner', function() {
var req_id = 0;
if ($(this).attr("data-req")) {
req_id = parseInt($(this).attr("data-req"));
}
$("#chat-modal__bg__partner").fadeIn(500);
$("#chat-modal__partner").attr('data-type', 'client');
$("#chat-modal__partner").toggle(10);
$("body").addClass("lock");
partner.selectedEmploye = null;
partner.req_id = req_id;
partner.get__employe();
return false;
});
//Смежная воронка
$("body").on('click', '#client_add_adjacent', function() {
var req_id = 0;
var funnel_id = 0;
if ($(this).attr("data-req")) {
req_id = parseInt($(this).attr("data-req"));
}
if ($(this).attr("data-funnel")) {
funnel_id = parseInt($(this).attr("data-funnel"));
}
$("#chat-modal__bg__adjacent").fadeIn(500);
$("#chat-modal__adjacent").attr('data-type', 'client');
$("#chat-modal__adjacent").toggle(10);
$("body").addClass("lock");
adjacent.selectedEmploye = null;
adjacent.req_id = req_id;
adjacent.funnel_id = funnel_id;
adjacent.get_adjacent_funnels();
return false;
});
$("body").on('click', '#chat-modal__bg__partner .ti-close', function() {
close_partner_modal();
});
$("body").on('click', '#chat-modal__bg__adjacent .ti-close', function() {
close_adjacent_modal();
});
$('body').on('click', '.confirm__clients', function() {
var userId = $(this).data("id");
var clientsId = [];
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
if (id != 'All') {
clientsId.push(id);
}
}
});
console.log(clientsId);
if (clientsId.length == 0) {
alert("Нет выбранных клиентов");
} else {
console.log(userId);
changeUserClients_confirm(userId, clientsId);
}
} else {
changeUserClients_confirm(userId, clientsId);
}
});
$('body').on('click', '.confirm_on_clients', function() {
var userId = $('#session_user_id').val();
var clientsId = [];
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
clientsId = ['all'];
}
if (all == 0) {
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
if (id != 'All') {
clientsId.push(id);
}
}
});
console.log(clientsId);
if (clientsId.length == 0) {
alert("Нет выбранных клиентов");
} else {
//console.log(userId);
open_confirmation__req_client('client', 'confirm_on', '');
}
} else {
open_confirmation__req_client('client', 'confirm_on', '');
}
})
$('body').on('click', '.funnel__clients', function() {
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
var clientsId = [];
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
if (id != 'AllFilter' && id != 'All')
clientsId.push(id);
}
});
console.log(clientsId);
if (clientsId.length == 0) {
alert("Нет выбранных клиентов");
} else {
funnelClients(clientsId);
}
} else {
funnelClients(clientsId);
}
});
//Закрытие нескольких клиентов
$("body").on('click', '.closed_all', function() {
var req = false;
if ($(this).attr('data-req')) {
req = true;
}
var clientsId = [];
var reqsId = [];
var all = 0;
if (req) {
if ($('#changeReqAllFilter').prop('checked')) {
all = 1;
}
$('.changeReqInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeReq", "");
if (id != 'All') {
reqsId.push(id);
}
}
});
} else {
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
if (id != 'All') {
var id = $(this).attr('id').replace("changeClient", "");
clientsId.push(id);
}
}
});
}
if (!req) {
if (clientsId.length == 0 && all == 0) {
alert("Нет выбранных клиентов");
} else {
if (all == 1) {
clientsId.push('all');
}
$("#del_client_all").find('input[name="id_del_clients"]').val(JSON.stringify(clientsId));
$("#del_client_all").find('input[name="id_del_reqs"]').val(0);
open_confirmation__req_client('client', 'close_all', '');
}
} else {
if (reqsId.length == 0 && all == 0) {
alert("Нет выбранных заявок");
} else {
if (all == 1) {
reqsId.push('all');
}
$("#del_client_all").find('input[name="id_del_clients"]').val(0);
$("#del_client_all").find('input[name="id_del_reqs"]').val(JSON.stringify(reqsId));
open_confirmation__req_client('req', 'close_all', '');
}
}
return false;
});
//Открытие нескольких клиентов
$("body").on('click', '.renew_all', function() {
var clientsId = [];
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
clientsId.push(id);
}
});
console.log(clientsId);
if (clientsId.length == 0) {
alert("Нет выбранных клиентов");
} else {
open_confirmation__req_client('client', 'renew_all', '');
//renewClients(clientsId);
}
} else {
open_confirmation__req_client('client', 'renew_all', '');
}
return false;
});
$('body').click(function(e) {
if ($(e.target).closest('.jw__popup').length == 0 &&
$(e.target).closest('.fstChoiceItem').length == 0 &&
$(e.target).closest('.vs__deselect').length == 0 &&
$(e.target).closest('#requisitions_list').length == 0
) {
$('.jw__popup').removeClass('show');
}
if ($(e.target).closest('.actions-menu').length != 1) {
$('#popup__clients').removeClass('show');
}
});
$("body").on("click", ".cartClient", function() {
var client_id = $(this).data("id");
openClientEventsWindowNew(client_id, $('#session_to_send').val());
});
if (document.location.pathname != '/my-objects.php' && document.location.pathname != '/agency-objects.php') {
localStorage['edit_object_prev_url'] = 0;
}
$('body').on('click', '#show_no_all_objects_page .closer', function() {
$('#show_no_all_objects_page_bg').fadeOut(300);
$('#show_no_all_objects_page').toggle(100);
$("body").removeClass("lock");
return false;
});
$('body').on('click', '#bind_obj_req .closer', function() {
$('#bind_obj_req_bg').fadeOut(300);
$('#bind_obj_req').toggle(100);
$("body").removeClass("lock");
return false;
});
$("body").on('click', '#confirmation__req_client_bg .closer', function() {
close_confirmation__req_client();
});
$('#customFieldsFilters .block-title, #customFieldsInputsForm .block-title').click(function(event) {
$(this).parents('.fields-inputs').find('.fields').fadeOut(300);
$(this).parents('.fields-inputs').find(' .block-title').removeClass('active');
$(this).parents('.fields-inputs').find(' .block-title span').addClass('ti-angle-down').removeClass('ti-angle-up');
$(this).addClass('active');
if ($(this).next('.fields').css('display') == "none") {
$(this).find('span').addClass('ti-angle-up').removeClass('ti-angle-down');
$(this).next('.fields').fadeIn(300);
} else {
$(this).find('span').addClass('ti-angle-down').removeClass('ti-angle-up');
$(this).next('.fields').fadeOut(300);
}
});
//$('#customFieldsFilters .fields-inputs').first().find('.block-title').click();
$('#customFieldsInputsForm .block-title').first().click();
$('body').on('click', '#add_obj_clear_client', function() {
$('#object-new-client-req').addClass('hidden');
$('#object-new-client-req span').text('');
$('#object-new-client-req [name=sobstv_object_req]').val(0);
$('#object-new-client-req [name=sobstv_object_req_funnel]').val(0);
if ($('#object-new-client').length > 0) {
$('#object-new-client').fastselect().data('fastselect').destroy();
$('#object-new-client').val('');
$('#object-new-client').removeAttr('data-initial-value');
$('#object-new-client').data('initial-value', null);
$('#object-new-client').removeAttr('value');
$('.fstResultItem').removeClass('fstSelected');
$('#object-new-client').fastselect({
placeholder: 'Клиент',
initialValue: null,
onItemSelect: function(item, val) {
bindObjReq();
},
});
}
});
$('body').on('click', '#bind_obj_req .new_req', function() {
var client_id = $(this).attr('data-id');
console.log(client_id);
if (client_id > 0) {
$('#object-new-client-req').removeClass('hidden');
$('#object-new-client-req span').text("Будет создана новая заявка");
$('#object-new-client-req input[name=sobstv_object_req]').val('new');
var funnel_id = $('#bind_obj_req-funnel').val();
$('#object-new-client-req input[name=sobstv_object_req_funnel]').val(funnel_id);
}
$('#bind_obj_req_bg').fadeOut(300);
$('#bind_obj_req').fadeOut(100);
$("body").removeClass("lock");
return false;
})
$('body').on('click', '#bind_obj_req .old_req', function() {
var client_id = $(this).attr('data-id');
$('#bind_obj_req_bg').fadeOut(300);
$('#bind_obj_req').fadeOut(100);
$("body").removeClass("lock");
$('#liReq').click();
return false;
})
$('body').on('click', ".change_req", function(e) {
// console.log(e.target);
if ($(e.target).closest(".actions").length == 0 &&
$(e.target).closest(".crm__small-stagebar").length == 0 &&
!$(e.target).hasClass("toggleClient") &&
$(e.target).closest(".col").length == 0
) {
var index = $(this).attr("data-id");
var req_id = requisitions_client.req[index].id;
if($('#object-new-client-req').length > 0){
$('#object-new-client-req').removeClass('hidden');
$('#object-new-client-req span').text("Объект будет прикреплен к заявке " + requisitions_client.req[index].name);
$('#object-new-client-req [name=sobstv_object_req]').val(req_id);
}
if(typeof client_req_bind == 'object' && client_req_bind.is_show){
client_req_bind.change_req(requisitions_client.req[index]);
}
$('#send_bg_new').fadeOut(500);
$("#send_bg_new .edit-modal").fadeOut(10);
$("body").removeClass("lock");
}
})
$('body').on('click', '#client_req_list_open', function() {
$('#liReq').click();
})
$('body').on('click', '.add-new-complex', function() {
if (typeof complexform == 'object') {
complexform.open();
}
})
$('body').on('click', '#obj_my_obj_moderation', function() {
$('.active-ag').removeClass('selected');
$('#obj_my_obj_moderation').addClass('selected');
q__001();
})
$('body').on('click', '#obj_my_obj_no_moderation', function() {
$('.active-ag').removeClass('selected');
$('#obj_my_obj_no_moderation').addClass('selected');
q__001();
})
$("body").on("change", "#is_cian_bet", function(){
if($(this).prop('checked')){
$('#objects_filter_cian_bet_block').removeClass('hidden');
} else {
$('#objects_filter_cian_bet_block').addClass('hidden');
$('#objects_filter_cian_bet_ot').val('');
$('#objects_filter_cian_bet_do').val('');
}
})
$("body").on("change", "#checkdox_avito_feed_all", function(){
if($(this).prop('checked') === false){
switchCanAvitoAd(this);
}
})
$("body").on("change", "#checkdox_cian_feed_all", function(){
if($(this).prop('checked') === false){
switchCanCianAd(this);
}
})
$("body").on("change", "#checkdox_yandex_feed_all", function(){
if($(this).prop('checked') === false){
switchBnAd(this);
}
})
$("body").on("change", "#checkdox_dom_feed_all", function(){
if($(this).prop('checked') === false){
switchDomAd(this);
}
})
$("body").on("change", "#checkdox_free_feed_all", function(){
if($(this).prop('checked') === false){
switchCanAd(this);
}
})
$("body").on("change", "#checkdox_jcat_feed_all", function(){
if($(this).prop('checked') === false){
switchCanEmlsAd(this);
}
})
$("body").on("change", "#checkdox_advert_all", function(){
if($(this).prop('checked') === false){
advertsSwitch(this);
}
})
var is_change_cian_bet = false;
$("body").on('input', '.change_cian_bet', function(e) {
var object_id = this.getAttribute('data-id');
// console.log(object_id);
if (!is_change_cian_bet) {
is_change_cian_bet = true;
setTimeout(function(){
if(object_id > 0 || object_id == 'all') {
params = {};
params.object_id = object_id;
params.user_id = $('#session_user_id').val();
price = $('#cian_bet_input_promo_'+object_id).val();
if(isEmpty(price)) price = 0;
params.cian_bet = price;
$.ajax({
url: '/ajax/addPromotion.php',
method: "post",
data: params,
success: function(data) {
console.log(data);
//let results = JSON.parse(data);
is_change_cian_bet = false;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
}, 2000);
}
})
var is_change_price = false;
$("body").on('input', '.change_price', function(e) {
var object_id = this.getAttribute('data-id');
// console.log(object_id);
var place = $(this).attr('data-place');
console.log(place);
if (!is_change_price) {
is_change_price = true;
setTimeout(function(){
if(object_id == 'all') {
params = {};
params.object_id = object_id;
params.user_id = $('#session_user_id').val();
if(place == 'cian'){
price = $('#cian_promo_price_all').val();
if(isEmpty(price)) price = 0;
params.cian_price = price;
}
if(place == 'avito'){
price = $('#avito_promo_price_all').val();
if(isEmpty(price)) price = 0;
params.avito_price = price;
}
if(place == 'yandex'){
price = $('#yandex_promo_price_all').val();
if(isEmpty(price)) price = 0;
params.yandex_price = price;
}
if(place == 'domclick'){
price = $('#domclick_promo_price_all').val();
if(isEmpty(price)) price = 0;
params.domclick_price = price;
}
$.ajax({
url: '/ajax/addPromotion.php',
method: "post",
data: params,
success: function(data) {
console.log(data);
//let results = JSON.parse(data);
is_change_price = false;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
}, 2000);
}
})
$("body").on('click', '.open-edit-price', function () {
let agency_id = $('#session_agency_id').val();
const obj = JSON.parse($(this).attr('data-obj'));
const select_currency = obj && obj.prices && obj.prices.currency ? obj.prices.currency : 0;
const price_avito = obj && obj.prices && obj.prices.price_avito ? obj.prices.price_avito : '';
const commission_agency = obj && obj.commission_agency && obj.commission_agency ? obj.commission_agency : 0;
const commission_agency_type = obj && obj.commission_agency_type && obj.commission_agency_type ? obj.commission_agency_type : 'percent';
let currencyAznOptions = '';
if (agency_id == 20079) {
currencyAznOptions = `<option value="3" ${select_currency == 3 ? 'selected' : ''}>AZN</option>`;
}
$('#edit-object-price-popup').remove();
$(this).parent().append(`
<div style="width: 500px; position: absolute; background: white; z-index: 110; border: 1px solid rgb(67, 160, 71);display: flex ; flex-direction: column; top: -290px; left: 130px; box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;" id="edit-object-price-popup">
<div style="display: flex; justify-content: space-between;">
<h2 style="padding: 20px; width: unset;">
Изменить цену и комиссию
</h2>
<span class="pseudo-link closer"><i class="ti-close"></i></span>
</div>
<div class="form-block funnel-client-block" style="width: unset; display: flex; flex-direction: column; align-items: center; padding: 20px; margin: 0">
<div class="form-block">
<div class="line price" style="display: flex; justify-content: space-between; width: unset; border-right: unset;">
<div class="label">
<span>Цена: <span class="star" style="color: red; font-size: 20px;">*</span></span>
</div>
<div class="inputs" style="display: flex; width: 280px;">
<div class="fr-input fr-price" style="width: 200px; padding: 5px; margin-right: 4px;">
<input style="font-size: 18px; text-align: left;" type="text" id="stoim_ot" class="text price medium-input money-format" name="stoim_ot" placeholder="от" value="${(obj) ? obj.stoim : ''}">
</div>
<select style="font-size: 18px;" onchange="selectObjectPopupCurrencyPrice();" style="float:left;" id="select_currency_price" name="prices[currency]">
<option value="0" ${(select_currency == 0) ? 'selected' : ''}>RUB</option>
<option value="1" ${(select_currency == 1) ? 'selected' : ''}>USD</option>
<option value="2" ${(select_currency == 2) ? 'selected' : ''}>EUR</option>
${currencyAznOptions}
</select>
</div>
</div>
<div id="price_avito_rub" style="${select_currency == 0 ? 'display:none;' : 'display: flex;'} justify-content: space-between;">
<div class="label">
<span>Цена в рублях для Avito</span>
</div>
<div class="inputs" style="display: flex; width: auto; margin-top: 15px; margin-bottom: 15px;">
<div class="fr-input fr-price" style="width: 200px; padding: 5px; margin-right: 4px;">
<input style="font-size: 18px; text-align: left; width: 200px !important;" type="text" id="price_avito_rub_inp" class="text price medium-input money-format" name="prices[price_avito]"
value="${price_avito}"
>
</div>
<span class="area-label-right" style="font-size: 18px; width: 65px;">руб.</span>
</div>
</div>
<div class="commission-cost" style="display: flex; justify-content: space-between; width:">
<div class="label">
<span id="commission_agency-label">Наша комиссия:</span>
</div>
<div class="inputs" style="display: flex; width: 285px; height: 34px; unset; align-items: center;">
<div class="inputs-group" style="width: 200px; padding: 5px;">
<input type="number" style="float: left;" class="number text small-input rooms" min="0" max="100" step="0.01" name="commission_agency" id="commission_agency" value="${commission_agency}">
</div>
<select style="float:left;" id="commission_agency_type" name="commission_agency_type">
<option value="price" ${(commission_agency_type === 'price') ? 'selected' : ''}>Сумма</option>
<option value="percent" ${(commission_agency_type === 'percent') ? 'selected' : ''}>%</option>
</select>
</div>
</div>
</div>
</div>
<button id="edit-object-price-button" data-obj='' class="big-button" type="submit">Сохранить</button>
</div>
`);
$("#edit-object-price-button").attr("data-obj", $(this).attr('data-obj'));
});
$("body").on('click', '#edit-object-price-popup .closer', function () {
$('#edit-object-price-popup').remove();
});
$("body").on('click', '#edit-object-price-button', function () {
const obj = JSON.parse($(this).attr('data-obj'));
const stoim_ot = parseInt($('#stoim_ot').val(), 10)
const currency = parseInt($('#select_currency_price').val(), 10)
const price_avito = parseInt($('#price_avito_rub_inp').val(), 10)
const commission_agency = $('#commission_agency').val()
const commission_agency_type = $('#commission_agency_type').val()
const params = {
...obj,
stoim_ot,
commission_agency,
commission_agency_type,
prices: {
...obj.prices,
price_avito,
currency,
}
}
if (currency == 0 && !stoim_ot) {
$('#stoim_ot').parent().addClass('invalid');
return;
} else if (currency !== 0 && (!stoim_ot || !price_avito)) {
if (!stoim_ot) {
$('#stoim_ot').parent().addClass('invalid');
}
if (!price_avito) {
$('#price_avito_rub_inp').parent().addClass('invalid')
}
return;
}
$.ajax({
url: '/ajax/ajax_edit_object.php',
method: "post",
data: params,
success: function(data) {
let currency = 'p';
data = JSON.parse(data)
if (data.prices.hasOwnProperty('currency')) {
if (parseInt(data.prices.currency, 10) === 1) {
currency = '$';
} else if (parseInt(data.prices.currency, 10) === 2) {
currency = '€';
}
}
if (stoim_ot != obj.stoim)
{
let priceStats = "<tr>";
// Дата изменения цены
priceStats += "<td nowrap>";
priceStats += '<p class="price-history">';
priceStats += new Date().toLocaleDateString('ru-RU', {
day: '2-digit',
month: '2-digit',
year: 'numeric'
});
priceStats += '</p>';
priceStats += "</td>";
// Информация о цене
priceStats += "<td nowrap>";
priceStats += '<p class="price-history">';
priceStats += new Intl.NumberFormat('ru-RU').format(data.stoim) + ' <span class="rub rub_small">' + currency + '</span>';
priceStats += '</p>';
priceStats += "</td>";
priceStats += "</tr>";
$(`.table_price_history--${data.id}`).append(priceStats)
}
$(`.stoim--${data.id}`).html(Math.round(data.stoim).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' '))
let price = data.commission_agency;
if (data.commission_agency_type === 'percent') {
price = (parseInt(data.stoim, 10) * parseFloat(data.commission_agency)) / 100;
}
if (data.type == 7) {
let stoim = parseFloat(data.stoim);
let landArea = parseFloat(data.land_area);
if (!isNaN(stoim) && !isNaN(landArea) && landArea > 0) {
let result = Math.round(stoim / landArea);
$(`.land_area--${data.id}`).html(result.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' '));
}
}
else {
if (data.id && !isNaN(data.stoim) && !isNaN(data.ploshad) && data.ploshad > 0) {
let result = Math.round(data.stoim / data.ploshad);
$(`.ploshad--${data.id}`).html(result.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' '));
}
}
$('#edit-object-price-popup').remove();
$(`.open-edit-price--${data.id}`).attr('data-obj', JSON.stringify(data))
if ($(`#commission_stats_td__${data.id}`).length > 0) {
$(`#commission_stats_div__${data.id}`).remove();
$(`#commission_stats_td__${data.id}`).css('width', '25%');
if ($(`#ti-info-alt--${data.id}`).length > 0) {
$(`#ti-info-alt--${data.id}`).after(
`
<div class="source-how" id="commission_stats_div__${data.id}">
<div class="source-how__button">
<i class="fa fa-percent"></i>
</div>
<div class="jw__popup source-how__popup"><p><b>Kомиссия</b></p>
<table class="table_commission_history">
<tbody>
<tr>
<td class="price-stats">Текущая:</td>
<td class="price-stats commission--agency--${data.id}">
${new Intl.NumberFormat('ru-RU').format(price)}
<span class="rub rub_small">${currency}</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
`
);
} else {
$(`#commission_stats_td__${data.id}`).prepend(
`
<div class="source-how" id="commission_stats_div__${data.id}">
<div class="source-how__button">
<i class="fa fa-percent"></i>
</div>
<div class="jw__popup source-how__popup"><p><b>Kомиссия</b></p>
<table class="table_commission_history">
<tbody>
<tr>
<td class="price-stats">Текущая:</td>
<td class="price-stats commission--agency--${data.id}">
${new Intl.NumberFormat('ru-RU').format(price)}
<span class="rub rub_small">${currency}</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
`
);
}
}
else {
$(`.commission--agency--${data.id}`).html(
new Intl.NumberFormat('ru-RU').format(price) + ' <span class="rub rub_small">' + currency + '</span>'
)
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.error("error: " + errorThrown + "; status:" + textStatus);
}
});
})
$('body').on('click', '#edit_expected_commission_req', function(){
$('#edit_expected_commission_req').hide();
$('#edit_expected_commission_req_input').show();
$('#edit_expected_commission_req_save').show();
})
$('body').on('click', '#edit_expected_commission_req_save', function(){
let req_id = $(this).attr("data-id");
let value = $('#edit_expected_commission_req_input').val();
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'edit_req_finance_info',
field: 'expected_commission',
user_id: $('#session_user_id').val(),
req_id: req_id,
value: value
})
.then(function(response) {
console.log(response.data);
get_finance_info(req_id);
})
.catch(function(error) {
consle.error(error);
});
//get_finance_info(req_id);
})
$('body').on('click', '#edit_deposit_req', function(){
$('#edit_deposit_req').hide();
$('#edit_deposit_req_input').show();
$('#edit_deposit_req_save').show();
})
$('body').on('click', '#edit_deposit_req_save', function(){
let req_id = $(this).attr("data-id");
let value = $('#edit_deposit_req_input').val();
let deposit_id = $(this).attr("data-deposit");
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'edit_req_finance_info',
field: 'deposit',
user_id: $('#session_user_id').val(),
req_id: req_id,
value: value,
deposit_id: deposit_id
})
.then(function(response) {
console.log(response.data);
get_finance_info(req_id);
})
.catch(function(error) {
consle.error(error);
});
//get_finance_info(req_id);
})
$('body').on('click', '#toggle_block_expenses', function(){
console.log($('#div_toggle_block_expenses').css('display'));
if($('#div_toggle_block_expenses').css('display') == 'none')
$('#div_toggle_block_expenses').show();
else
$('#div_toggle_block_expenses').hide();
})
$('body').on('click', '.edit_expense_req', function(){
let id = $(this).attr("data-id");
$('#edit_expense_req_'+id).hide();
$('#edit_expense_req_input_'+id).show();
$('#edit_expense_req_save_'+id).show();
$('#edit_expense_req_textarea_'+id).show();
})
$('body').on('click', '.edit_expense_req_save', function(){
let req_id = $(this).attr("data-id");
let expense_id = $(this).attr("data-expense");
let value = $('#edit_expense_req_input_'+expense_id).val();
let comment = $('#edit_expense_req_textarea_'+expense_id).val();
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'edit_req_finance_info',
field: 'expense',
user_id: $('#session_user_id').val(),
req_id: req_id,
value: value,
comment: comment,
expense_id: expense_id
})
.then(function(response) {
console.log(response.data);
get_finance_info(req_id);
})
.catch(function(error) {
consle.error(error);
});
})
});
function view_changer_client(view){
console.log(view);
let temp_view = 'list';
$('.view_changer_client').each(function(){
if($(this).prop('checked')){
temp_view = $(this).attr('data-view');
}
});
if(view !== temp_view){
$('.view-changer .item-for-check').removeClass('active');
$('.view_changer_client').prop('checked', false);
switch (view){
case 'list' : {
$('#view_changer_client_list').prop('checked', true);
$('#view_checked_client_list').addClass('active');
$('.view-list').click();
break
}
case 'kanban' : {
$('#view_changer_client_kanban').prop('checked', true);
$('#view_checked_client_kanban').addClass('active');
$('.view-kanban').click();
break
}
case 'table' : {
$('#view_changer_client_table').prop('checked', true);
$('#view_checked_client_table').addClass('active');
$('.view-table').click();
break
}
}
axios.post('/ajax/ajax_vue_clients.php', {
request: 'set_view_page',
view: view,
}, ).then((response) => {
console.log(response.data);
//this.steps = response.data;
}).catch(function(error) {
console.error(error);
})
}
}
function to_check_client_all() {
$('#changeClientAllFilter').prop('checked', false);
$('#changeClientAllFilterDiv').removeClass('active');
if ($('#changeClientAll').prop('checked')) {
$('#changeClientAll').prop('checked', false);
$('#changeClientAllDiv').removeClass('active');
var check = false;
$('.changeClientInput').prop('checked', check);
$('.changeClientInput').each(function() {
var id = $(this).data("id");
$('#checked-clt' + id).removeClass('active');
});
$('#client_toltip_text').text("Выделить всех клиентов на странице");
} else {
$('#changeClientAll').prop('checked', true);
$('#changeClientAllDiv').addClass('active');
var check = true;
$('.changeClientInput').prop('checked', check);
$('.changeClientInput').each(function() {
var id = $(this).data("id");
$('#checked-clt' + id).addClass('active');
});
$('#client_toltip_text').text("Снять выделение у всех клиентов на странице");
}
}
function to_check_client_all_filter() {
$('#changeClientAll').prop('checked', false);
$('#changeClientAllDiv').removeClass('active');
var check = false;
$('.changeClientInput').prop('checked', check);
$('.changeClientInput').each(function() {
var id = $(this).attr("data-id");
$('#checked-clt' + id).removeClass('active');
});
$('#client_toltip_text').text("Выделить всех клиентов на странице");
//console.log($('#changeClientAllFilter').prop('checked'));
if ($('#changeClientAllFilter').prop('checked')) {
$('#changeClientAllFilter').prop('checked', false);
$('#changeClientAllFilterDiv').removeClass('active');
var check = false;
$('.changeClientInput').prop('checked', check);
$('.changeClientInput').each(function() {
var id = $(this).attr("data-id");
$('#checked-clt' + id).removeClass('active');
});
} else {
$('#changeClientAllFilter').prop('checked', true);
$('#changeClientAllFilterDiv').addClass('active');
check_client_all_filter();
}
}
function check_client_all_filter() {
if ($('#changeClientAllFilter').prop('checked')) {
var check = true;
$('.changeClientInput').prop('checked', check);
$('.changeClientInput').each(function() {
var id = $(this).attr("data-id");
if (id === undefined) {
$(this).prop('checked', false);
}
$('#checked-clt' + id).addClass('active');
});
}
}
function reCreateFilterEtapClients() {
$('#filter_etap').fastselect({
placeholder: 'Этап',
onItemSelect: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
},
onItemDelete: function() {
show_options_search();
page_kanban = 1;
add_knban = true;
//get_list();
}
});
}
// Партнёры агенства
$(document).ready(function() {
function showEditPartner(reset, functionAfterShow) {
$.ajax({
url: '/ajax/modals/partnerAddEditWinContent.php',
success: function (data) {
$("#partner_form_bg").html(data);
let form = $("#partner_form");
form.find('.error_msg').hide();
form.toggle(10);
if (reset) {
form.find('form').trigger("reset");
form.find('textarea').empty();
form.find('#partner_files_list').empty();
form.find('[name="partner_id"]').val('');
form.find('.files input[type="file"]').closest('.form-block').remove();
form.find('.jw-tabs .tabs__caption li').removeClass('active');
form.find('.jw-tabs .tabs__caption li').first().addClass('active');
form.find('.jw-tabs .tabs__content').hide();
form.find('.jw-tabs .tabs__content').first().show();
}
if (functionAfterShow && (typeof functionAfterShow == "function")) {
functionAfterShow();
}
$("#partner_form_bg").fadeIn(500);
$("body").addClass("lock");
form.find('[name="show_complexes"]').change(function(){
if($(this).prop('checked')){
var who_user = $('#session_user_id').val();
var funnel_id = 0;
$('#ms-new-client-work-partner-input').closest('.form-block').show();
$('#ms-new-funnel-partner-input').closest('.form-block').show();
$('#ms-new-client-work-client-partner-input').closest('.form-block').show();
$('#ms-new-funnel-client-partner-input').closest('.form-block').show();
setSelectsFastselect('ms-new-client-work-partner', who_user, 'select_form_client-work.php', 'Ответственный');
setSelectsFastselect('ms-new-funnel-partner', funnel_id, 'select_form_funnel.php', 'Воронка', 'req');
setSelectsFastselect('ms-new-client-work-client-partner', who_user, 'select_form_client-work.php', 'Ответственный');
setSelectsFastselect('ms-new-funnel-client-partner', funnel_id, 'select_form_funnel.php', 'Воронка', 'client');
} else {
$('#ms-new-client-work-partner-input').closest('.form-block').hide();
$('#ms-new-funnel-partner-input').closest('.form-block').hide();
$('#ms-new-client-work-client-partner-input').closest('.form-block').hide();
$('#ms-new-funnel-client-partner-input').closest('.form-block').hide();
$('#ms-new-client-work-partner-input').html('<img src="../images/rocket-spinner.svg" width="45px">');
$('#ms-new-funnel-partner-input').html('<img src="../images/rocket-spinner.svg" width="45px">');
$('#ms-new-client-work-client-partner-input').html('<img src="../images/rocket-spinner.svg" width="45px">');
$('#ms-new-funnel-client-partner-input').html('<img src="../images/rocket-spinner.svg" width="45px">');
}
})
setTimeout(() => {
$("#partnerPhone1").mask("+79999999999");
$("#partnerPhone2").mask("+79999999999");
}, 1000);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
function showEditEmployee(reset, functionAfterShow) {
$.ajax({
url: '/ajax/modals/employeeAddEditWinContent.php',
success: function(data) {
$("#employee_form_bg").html(data);
let form = $("#employee_form");
form.find('.error_msg').hide();
form.toggle(10);
if (reset) {
form.find('form').trigger("reset");
form.find('textarea').empty();
form.find('#employee_files_list').empty();
form.find('[name="employee_id"]').val('');
form.find('.files input[type="file"]').closest('.form-block').remove();
form.find('.jw-tabs .tabs__caption li').removeClass('active');
form.find('.jw-tabs .tabs__caption li').first().addClass('active');
form.find('.jw-tabs .tabs__content').hide();
form.find('.jw-tabs .tabs__content').first().show();
var html = '<select id="ms-new-employee-partner" name="partner_id" class="ms-crm-employee-partner">' + $("#ms-new-employee-partner").html() + '</select>';
$("#ms-new-employee-partner").closest(".inputs").html(html);
$.ajax({
url: '/ajax/getMyPartners.php',
success: function(results) {
let partners = JSON.parse(results);
$("#ms-new-employee-partner option:not(:eq(0))").remove();
partners.forEach(function(partner, indx) {
if (partner.resident)
$("#ms-new-employee-partner").append('<option value="' + partner.id + '">' + partner.name + ', ' + partner.resident + '</option>');
else
$("#ms-new-employee-partner").append('<option value="' + partner.id + '">' + partner.name + '</option>');
});
$("#ms-new-employee-partner option:eq(0)").prop("selected", true);
if (functionAfterShow && (typeof functionAfterShow == "function")) {
functionAfterShow();
}
$("#employee_form_bg").fadeIn(500);
$("body").addClass("lock");
setTimeout(() => {
$("#employeePhone1").mask("+79999999999");
$("#employeePhone2").mask("+79999999999");
}, 1000);
}
});
$("#ms-new-employee-partner").fastselect({ placeholder: 'Компания-партнёр' });
} else {
if (functionAfterShow && (typeof functionAfterShow == "function")) {
functionAfterShow();
}
$("#employee_form_bg").fadeIn(500);
$("body").addClass("lock");
setTimeout(() => {
$("#employeePhone1").mask("+79999999999");
$("#employeePhone2").mask("+79999999999");
}, 1000);
}
}
});
}
$("body").on('click', '#add_partner', function() {
showEditPartner(true, function() {});
return false;
});
$("body").on('click', '#add_employee', function() {
showEditEmployee(true, function() {});
return false;
});
$("body").on('click', '.editPartner', function() {
var id = $(this).attr('data-id');
showEditPartner(true, function() {
editPartner(id, '#addNewPartner');
});
return false;
});
$("body").on('click', '.editEmployee', function() {
var id = $(this).attr('data-id');
showEditEmployee(true, function() {
editEmployee(id, '#addNewEmployee');
});
return false;
});
$('body').on('click', '#partner_form_bg .ti-close', function() {
$("#partner_form_bg").hide(10);
$("#partner_form").hide(10);
$("body").removeClass("lock");
});
$('body').on('click', '#employee_form_bg .ti-close', function() {
$("#employee_form_bg").hide(10);
$("#employee_form").hide(10);
$("body").removeClass("lock");
});
$('body').on('click', '#partner_info_bg .ti-close', function() {
$("#partner_info_bg").hide(10);
$("#partner_info").hide(10);
$("body").removeClass("lock");
});
$('body').on('click', '#employee_info_bg .ti-close', function() {
$("#employee_info_bg").hide(10);
$("#employee_info").hide(10);
$("body").removeClass("lock");
});
$('body').on('click', '#user_info_bg .ti-close', function() {
$("#user_info_bg").hide(10);
$("#user_info").hide(10);
$("body").removeClass("lock");
});
$('body').on('click', '.openClientReqBind', function() {
if(typeof client_req_bind === 'object'){
let objectId = $(this).closest('.object_clients').attr("data-oid");
client_req_bind.objectId = parseInt(objectId);
client_req_bind.open();
}
});
});
function copyPassword(phone, passwd) {
if (typeof phone !== "undefined" && typeof passwd !== "undefined") {
let dummy = document.createElement("textarea");
document.body.appendChild(dummy);
dummy.value = "http://partner.piawork.ru/\r\n" + "Логин: " + $(phone).val() + "\r\nПароль: " + $(passwd).val() + "\r\n";
dummy.select();
document.execCommand("copy");
document.body.removeChild(dummy);
}
}
function generatePassword(selector, length, charset) {
let input,
passwd = "";
if (typeof selector !== "undefined")
input = $(selector);
if (typeof length === "undefined")
length = 12;
if (typeof charset === "undefined")
charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
for (let i = 0, n = charset.length; i < parseInt(length); ++i) {
passwd += charset.charAt(Math.floor(Math.random() * n));
}
if (input.length > 0) {
input.val(passwd);
let form = input.closest('form');
console.log(form);
console.log(form.find('input[name="phone"]').last().val());
if (form.find('input[name="phone"]').last().val()) {
form.find('a[data-rel="copy-password" ]').show();
} else {
form.find('a[data-rel="copy-password" ]').hide();
}
}
return passwd;
}
function editPartner(id, form) {
$.ajax({
url: '/ajax/getPartner.php?id=' + id,
success: function(results) {
let data = JSON.parse(results);
$(form).trigger("reset");
$(form).find('textarea').empty();
$(form).find('a[data-rel="copy-password" ]').hide();
$(form).find('.files input[type="file"]').closest('.form-block').remove();
$(form).find('.jw-tabs .tabs__caption li').removeClass('active');
$(form).find('.jw-tabs .tabs__caption li').first().addClass('active');
$(form).find('.jw-tabs .tabs__content').hide();
$(form).find('.jw-tabs .tabs__content').first().show();
if (data.name)
$(form).find('[name="name"]').val(data.name);
if (data.address)
$(form).find('[name="address"]').val(data.address);
if (data.resident)
$(form).find('[name="resident"]').val(data.resident);
if (data.details)
$(form).find('[name="details"]').html(data.details.replace(/<br ?\/?>/ig, "\n"));
if (data.fullname)
$(form).find('[name="fullname"]').val(data.fullname);
if (data.email)
$(form).find('[name="email"]').val(data.email);
if (data.phone)
$(form).find('[name="phone"]').val(data.phone);
if (data.position)
$(form).find('[name="position"]').val(data.position);
if (data.birthday)
$(form).find('[name="birthday"]').val(data.birthday);
if (data.birthday_notify == 1)
$(form).find('[name="birthday_notify"]').prop('checked', true);
if (data.show_funnels == 1)
$(form).find('[name="show_funnels"]').prop('checked', true);
if (data.show_cli_events == 1)
$(form).find('[name="show_cli_events"]').prop('checked', true);
if (data.show_req_events == 1)
$(form).find('[name="show_req_events"]').prop('checked', true);
if (data.props) {
if (data.props.legal_name) $(form).find('[name="legal_name"]').val(data.props.legal_name);
if (data.props.actual_address) $(form).find('[name="actual_address"]').val(data.props.actual_address);
if (data.props.legal_address) $(form).find('[name="legal_address"]').val(data.props.legal_address);
if (data.props.inn) $(form).find('[name="inn"]').val(data.props.inn);
if (data.props.ogrn) $(form).find('[name="ogrn"]').val(data.props.ogrn);
if (data.props.kpp) $(form).find('[name="kpp"]').val(data.props.kpp);
if (data.props.bank_name) $(form).find('[name="bank_name"]').val(data.props.bank_name);
if (data.props.bik) $(form).find('[name="bik"]').val(data.props.bik);
if (data.props.corr_account) $(form).find('[name="corr_account"]').val(data.props.corr_account);
if (data.props.settlement_account) $(form).find('[name="settlement_account"]').val(data.props.settlement_account);
if (data.props.ceo_full_name) $(form).find('[name="ceo_full_name"]').val(data.props.ceo_full_name);
}
//if (data.show_complexes == 1){
$(form).find('[name="show_complexes"]').prop('checked', true);
$('#ms-new-client-work-partner-input').closest('.form-block').show();
$('#ms-new-funnel-partner-input').closest('.form-block').show();
$('#ms-new-client-work-client-partner-input').closest('.form-block').show();
$('#ms-new-funnel-client-partner-input').closest('.form-block').show();
var who_user, who_user_client = $('#session_user_id').val();
var funnel_id, funnel_id_client = 0;
if(!isEmpty(data.funnel_id_req)){
funnel_id = data.funnel_id_req;
}
if(!isEmpty(data.who_work_req)){
who_user = data.who_work_req;
}
if(!isEmpty(data.funnel_id_client)){
funnel_id_client = data.funnel_id_client;
}
if(!isEmpty(data.who_work_client)){
who_user_client = data.who_work_client;
}
setSelectsFastselect('ms-new-client-work-partner', who_user, 'select_form_client-work.php', 'Ответственный');
setSelectsFastselect('ms-new-funnel-partner', funnel_id, 'select_form_funnel.php', 'Воронка', 'req');
setSelectsFastselect('ms-new-client-work-client-partner', who_user_client, 'select_form_client-work.php', 'Ответственный');
setSelectsFastselect('ms-new-funnel-client-partner', funnel_id_client, 'select_form_funnel.php', 'Воронка', 'client');
//}
if (data.instagram)
$(form).find('[name="instagram"]').val(data.instagram);
if (data.vkontakte)
$(form).find('[name="vkontakte"]').val(data.vkontakte);
if (data.telegram)
$(form).find('[name="telegram"]').val(data.telegram);
if (data.partner_id)
$(form).find('[name="partner_id"]').val(data.partner_id);
if (data.employee_id)
$(form).find('[name="employee_id"]').val(data.employee_id);
if (typeof data.files !== "undefined") {
if (data.files.length > 0) {
$(form).find('#partner_files_list').empty();
data.files.forEach(function(file, indx) {
let file_html =
'<li class="file">' +
'<a href="ajax/partner_files_download.php?id=' + file.id + '" title="Скачать файл">' +
'<span class="file-span ti-file"></span>&nbsp;<span class="file-name">' + file.filename + '</span>' +
'</a>' +
'&nbsp;<a href="javascript:{};" data-id="' + file.id + '" class="delFile no-border" title="Удалить файл">' +
'<span class="simple-button delete"><i class="jw-action-icon-delete"></i></span>' +
'</a>' +
'</li>';
$(form).find('#partner_files_list').append($(file_html));
});
}
}
}
});
}
function editEmployee(id, form) {
$.ajax({
url: '/ajax/getEmployee.php?id=' + id,
success: function(results) {
let data = JSON.parse(results);
//console.log(data);
$(form).trigger("reset");
$(form).find('textarea').empty();
$(form).find('.files input[type="file"]').closest('.form-block').remove();
$(form).find('.jw-tabs .tabs__caption li').removeClass('active');
$(form).find('.jw-tabs .tabs__caption li').first().addClass('active');
$(form).find('.jw-tabs .tabs__content').hide();
$(form).find('.jw-tabs .tabs__content').first().show();
if (data.fullname)
$(form).find('[name="fullname"]').val(data.fullname);
if (data.email)
$(form).find('[name="email"]').val(data.email);
if (data.phone)
$(form).find('[name="phone"]').val(data.phone);
if (data.position)
$(form).find('[name="position"]').val(data.position);
if (data.birthday)
$(form).find('[name="birthday"]').val(data.birthday);
if (data.birthday_notify == 1)
$(form).find('[name="birthday_notify"]').prop('checked', true);
if (data.instagram)
$(form).find('[name="instagram"]').val(data.instagram);
if (data.vkontakte)
$(form).find('[name="vkontakte"]').val(data.vkontakte);
if (data.telegram)
$(form).find('[name="telegram"]').val(data.telegram);
if (data.partner_id) {
$(form).find('[name="partner_id"]').val(data.partner_id);
}
if (data.employee_id)
$(form).find('[name="employee_id"]').val(data.employee_id);
if (data.partner_id) {
var html = $('<select id="ms-new-employee-partner" name="partner_id" class="ms-crm-employee-partner">' + $("#ms-new-employee-partner").html() + '</select>');
html.find("option[value=" + data.partner_id + "]").attr("selected", "selected");
$("#ms-new-employee-partner").closest(".inputs").html(html);
$("#ms-new-employee-partner").fastselect({ placeholder: 'Компания-партнёр2' });
}
if (data.files.length > 0) {
$(form).find('#employee_files_list').empty();
data.files.forEach(function(file, indx) {
let file_html = '<li class="file">' +
'<a href="' + file.path + '" title="Скачать файл" download><span class="file-span ti-file"></span>&nbsp;<span class="file-name">' + file.filename + '</span></a>' +
'&nbsp;<a href="javascript:{};" data-id="' + file.id + '" class="delFile no-border" title="Удалить файл"><span class="simple-button delete"><i class="jw-action-icon-delete"></i></span></a></li>';
$(form).find('#employee_files_list').append($(file_html));
});
}
}
});
}
function openPartnerInfoWindow(id) {
axios.get('/ajax/modals/partnerInfoWinContent.php').then((response) => {
$('#partner_info_bg').html(response.data);
$.ajax({
url: '/ajax/getPartner.php?id=' + id,
success: function(results) {
let data = JSON.parse(results);
let partner = $('#partner_details');
let employee = $('#employee_details');
$(partner).find('.form-block').show();
if (data.name)
$(partner).find('.partner_name').text(data.name);
else
$(partner).find('.partner_name').closest('.form-block').hide();
if (data.address)
$(partner).find('.partner_address').text(data.address);
else
$(partner).find('.partner_address').closest('.form-block').hide();
if (data.resident)
$(partner).find('.partner_resident').text(data.resident);
else
$(partner).find('.partner_resident').closest('.form-block').hide();
if (data.details)
$(partner).find('.partner_details').html(data.details.replace(/<br ?\/?>/ig, "\n"));
else
$(partner).find('.partner_details').closest('.form-block').hide();
if (data.fullname)
$(employee).find('.employee_fullname').text(data.fullname);
else
$(employee).find('.employee_fullname').closest('.form-block').hide();
if (data.email)
$(employee).find('.employee_email').text(data.email);
else
$(employee).find('.employee_email').closest('.form-block').hide();
if (data.phone)
$(employee).find('.employee_phone').text(data.phone);
else
$(employee).find('.employee_phone').closest('.form-block').hide();
if (data.position)
$(employee).find('.employee_position').text(data.position);
else
$(employee).find('.employee_position').closest('.form-block').hide();
if (data.birthday)
$(employee).find('.employee_birthday').text(data.birthday);
else
$(employee).find('.employee_birthday').closest('.form-block').hide();
if (data.instagram) {
$(employee).find('.employee_instagram a').attr('href', data.instagram);
$(employee).find('.employee_telegram').show();
} else {
$(employee).find('.employee_instagram').hide();
}
if (data.vkontakte) {
$(employee).find('.employee_vkontakte a').attr('href', data.vkontakte);
$(employee).find('.employee_telegram').show();
} else {
$(employee).find('.employee_vkontakte').hide();
}
if (data.telegram) {
$(employee).find('.employee_telegram a').attr('href', data.telegram);
$(employee).find('.employee_telegram').show();
} else {
$(employee).find('.employee_telegram').hide();
}
if (data.instagram || data.vkontakte || data.telegram)
$(employee).find('.employee_socials').show();
else
$(employee).find('.employee_socials').hide();
if (data.partner_id)
$(employee).find('.partner_id').text(data.partner_id);
else
$(employee).find('.partner_id').closest('.form-block').hide();
if (data.employee_id)
$(employee).find('.employee_id').text(data.employee_id);
else
$(employee).find('.employee_id').closest('.form-block').hide();
if (data.files.length > 0) {
$(employee).find('.employee_files').empty();
$(employee).find('.employee_files').closest('.form-block').show();
data.files.forEach(function(file, indx) {
let file_html = '<li class="file"><a href="' + file.path + '" title="Скачать файл" download><span class="file-span ti-file"></span>&nbsp;<span class="file-name">' + file.filename + '</span></a></li>';
$(employee).find('.employee_files').append($(file_html));
});
} else {
$(employee).find('.employee_files').closest('.form-block').hide();
}
$("#partner_info_bg").show(10);
$("#partner_info").show(10);
$("body").addClass("lock");
}
});
});
}
function openEmployeeInfoWindow(id) {
axios.get('/ajax/modals/employeeInfoWinContent.php').then((response) => {
$('#employee_info_bg').html(response.data);
$.ajax({
url: '/ajax/getEmployee.php?id=' + id,
success: function(results) {
let data = JSON.parse(results);
let employee = $('#details');
$(employee).find('.form-block').show();
if (data.partner.name && data.partner.resident)
$(employee).find('.employee_company').text(data.partner.name + ', ' + data.partner.resident);
else if (data.partner.name && !data.partner.resident)
$(employee).find('.employee_company').text(data.partner.name);
else
$(employee).find('.employee_company').closest('.form-block').hide();
if (data.fullname)
$(employee).find('.employee_fullname').text(data.fullname);
else
$(employee).find('.employee_fullname').closest('.form-block').hide();
if (data.email)
$(employee).find('.employee_email').text(data.email);
else
$(employee).find('.employee_email').closest('.form-block').hide();
if (data.phone)
$(employee).find('.employee_phone').text(data.phone);
else
$(employee).find('.employee_phone').closest('.form-block').hide();
if (data.position)
$(employee).find('.employee_position').text(data.position);
else
$(employee).find('.employee_position').closest('.form-block').hide();
if (data.birthday)
$(employee).find('.employee_birthday').text(data.birthday);
else
$(employee).find('.employee_birthday').closest('.form-block').hide();
if (data.instagram) {
$(employee).find('.employee_instagram a').attr('href', data.instagram);
$(employee).find('.employee_telegram').show();
} else {
$(employee).find('.employee_instagram').hide();
}
if (data.vkontakte) {
$(employee).find('.employee_vkontakte a').attr('href', data.vkontakte);
$(employee).find('.employee_telegram').show();
} else {
$(employee).find('.employee_vkontakte').hide();
}
if (data.telegram) {
$(employee).find('.employee_telegram a').attr('href', data.telegram);
$(employee).find('.employee_telegram').show();
} else {
$(employee).find('.employee_telegram').hide();
}
if (data.instagram || data.vkontakte || data.telegram)
$(employee).find('.employee_socials').show();
else
$(employee).find('.employee_socials').hide();
if (data.partner_id)
$(employee).find('.partner_id').text(data.partner_id);
else
$(employee).find('.partner_id').closest('.form-block').hide();
if (data.employee_id)
$(employee).find('.employee_id').text(data.employee_id);
else
$(employee).find('.employee_id').closest('.form-block').hide();
if (data.files.length > 0) {
$(employee).find('.employee_files').empty();
$(employee).find('.employee_files').closest('.form-block').show();
data.files.forEach(function(file, indx) {
let file_html = '<li class="file"><a href="' + file.path + '" title="Скачать файл" download><span class="file-span ti-file"></span>&nbsp;<span class="file-name">' + file.filename + '</span></a></li>';
$(employee).find('.employee_files').append($(file_html));
});
} else {
$(employee).find('.employee_files').closest('.form-block').hide();
}
$("#employee_info_bg").show(10);
$("#employee_info").show(10);
$("body").addClass("lock");
}
});
});
}
function openUserInfoWindow(id_user) {
axios.get('/ajax/modals/userInfoWinContent.php').then((response) => {
//console.log(response.data)
$('#user_info_bg').html(response.data);
$.post('/ajax/getUser.php', { 'user_id': id_user, 'section': "calendar" }, function(results) {
let data = JSON.parse(results);
//console.log(data);
let user_card = $('#user_card');
$(user_card).find('.form-block').show();
if (data.fio)
$(user_card).find('.user_fio').text(data.fio);
else
$(user_card).find('.user_fio').closest('.form-block').hide();
if (data.email)
$(user_card).find('.user_email').text(data.email);
else
$(user_card).find('.user_email').closest('.form-block').hide();
if (data.phone)
$(user_card).find('.user_phone').text(data.phone);
else
$(user_card).find('.user_phone').closest('.form-block').hide();
if (data.birthday)
$(user_card).find('.user_birthday').text(data.birthday);
else
$(user_card).find('.user_birthday').closest('.form-block').hide();
if (data.soc_vk) {
$(user_card).find('.user_soc_vk a').attr('href', data.soc_vk).show();
$(user_card).find('.user_soc_vk').show();
} else {
$(user_card).find('.user_soc_vk').hide();
}
if (data.soc_tg) {
$(user_card).find('.user_soc_tg a').attr('href', data.soc_tg).show();
$(user_card).find('.user_soc_tg').show();
} else {
$(user_card).find('.user_soc_tg').hide();
}
if (data.soc_fb) {
$(user_card).find('.user_soc_fb a').attr('href', data.soc_fb).show();
$(user_card).find('.user_soc_fb').show();
} else {
$(user_card).find('.user_soc_fb').hide();
}
if (data.soc_inst) {
$(user_card).find('.user_soc_inst a').attr('href', data.soc_inst).show();
$(user_card).find('.user_soc_inst').show();
} else {
$(user_card).find('.user_soc_inst').hide();
}
if (data.soc_tw) {
$(user_card).find('.user_soc_tw a').attr('href', data.soc_tw).show();
$(user_card).find('.user_soc_tw').show();
} else {
$(user_card).find('.user_soc_tw').hide();
}
if (data.soc_vk || data.soc_tg || data.soc_fb || data.soc_inst || data.soc_tw)
$(user_card).find('.user_socials').show();
else
$(user_card).find('.user_socials').hide();
$("#user_info_bg").show(10);
$("#user_info").show(10);
$("body").addClass("lock");
});
});
}
$(document).on('click', '#addNewPartner .delFile, #addNewEmployee .delFile', function (e) {
e.preventDefault();
var $btn = $(this);
var id = $btn.data('id');
if (!id) return;
$.get('/ajax/delPartnerFile.php', { id: id }, function (results) {
var data = null;
try { data = JSON.parse(results); } catch (e) {}
if (data === true || (data && data.ok === true)) {
$btn.closest('li.file').remove();
}
});
});
$(document).delegate('#addNewPartner input[name="phone"], #addNewEmployee input[name="phone"]', 'change', function(event) {
let input = $(event.target);
let form = input.closest('form');
let value = input.val();
console.log(value);
if (typeof value !== "undefined") {
form.find('input[name="phone"]').val(value);
if (form.find('input[name="passwd"]').val().length > 8 && form.find('input[name="passwd_repeat"]').val().length > 8) {
form.find('a[data-rel="copy-password" ]').show();
} else {
form.find('a[data-rel="copy-password" ]').hide();
}
}
});
$(document).delegate('#addNewPartner input[name="passwd_repeat"], #addNewEmployee input[name="passwd_repeat"]', 'change', function(event) {
let input = $(event.target);
let form = input.closest('form');
let value = input.val();
let value2 = form.find('input[name="passwd"]').val();
let value3 = form.find('input[name="phone"]').last().val();
if (typeof value !== "undefined") {
if (value && value == value2 && value3) {
form.find('a[data-rel="copy-password" ]').show();
} else {
form.find('a[data-rel="copy-password" ]').hide();
}
}
});
$(document).delegate('#newPartner, #newEmployee', 'click', function(event) {
event.preventDefault();
let errors = [];
let form = $(event.target).closest('form');
form.find('.error_msg').empty();
form.find('.error_msg').hide();
form.find('input, textarea, checkbox, select').each(function() {
if ($(this).attr('required') && $(this).val() === '') {
let label = $(this).closest('.form-block').find('label, .label').text();
errors.push('<span>Поле «' + label + '» обязательно к заполнению.</span><br/>');
}
});
if (form.attr('id') == "addNewPartner" && form.find('[name="partner_id"]').val()) {
if (!(form.find('[name="name"]').val() === '') &&
!(form.find('[name="resident"]').val() === '') &&
!(form.find('[name="adress"]').val() === '')
) {
form.find('.tabs__caption [data-target="head"]').click();
}
}
if (errors.length > 0) {
errors.forEach(error => form.find('.error_msg').append(error));
form.find('.error_msg').show(300);
} else {
form.find('.error_msg').hide();
form.submit();
}
});
$(document).delegate('.togglePartner', 'click', function(e) {
e.preventDefault();
let id = $(e.target).data('id');
if (typeof id !== "undefined") {
openPartnerInfoWindow(id);
}
});
$(document).delegate('.toggleEmployee', 'click', function(e) {
e.preventDefault();
let id = $(e.target).data('id');
if (typeof id !== "undefined") {
openEmployeeInfoWindow(id);
}
});
$(document).delegate('#partners .search-icon', 'click', function(event) {
var url = new URL(window.location.href);
let query = $('#partners .form-search [name="search"]').val();
if (query.length >= 3) {
url.searchParams.set('search', query);
window.location.href = url.toString();
}
});
$(document).delegate('#addNewPartner', 'submit', function(event) {
event.preventDefault();
$("#partner_form").find('.error_msg').empty();
$("#partner_form").find('a[data-rel="copy-password" ]').hide();
let form = $(this);
var formData = new FormData(form[0]);
$.ajax({
type: 'POST',
url: '/ajax/addEditPartner.php',
data: formData,
cache: false,
async: false,
contentType: false,
processData: false,
success: function(results) {
if (data = JSON.parse(results)) {
if (typeof data.errors !== "undefined") {
data.errors.forEach(error => form.find('.error_msg').append('<span>' + error + '</span><br/>'));
$("#partner_form").find('.error_msg').show(300);
} else if (data.uploaded_files.errors.length) {
let errors = data.uploaded_files.errors;
Object.keys(errors).forEach(function(key) {
let error = errors[key];
Object.keys(error).forEach(function(filename) {
form.find('.error_msg').append('<span>Файл `' + filename + '`: ' + error[filename] + '</span><br/>');
});
});
$("#partner_form").find('.error_msg').show(300);
} else {
$("#partner_form").find('.error_msg').empty();
if (data.partner_id) {
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').addClass('loading');
$.get(window.location.href, function(html) {
let partner = $(html).find('#partners .partner[data-partner-id="' + data.partner_id + '"]');
if (partner)
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').replaceWith(partner);
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').removeClass('loading');
});
} else if (data.new_partner_id) {
$.get(window.location.href, function(html) {
let partner = $(html).find('#partners');
if (partner) {
$('#partners').replaceWith(partner);
$('#partners').fadeIn(500);
}
});
} else {
//window.location.reload(true);
}
$("#partner_form_bg").hide(10);
$("#partner_form").hide(10);
$("body").removeClass("lock");
}
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
return false;
}
});
return false;
});
function deletePartner(id) {
if (confirm("Вы точно хотите удалить этого партнёра?") && typeof id !== "undefined") {
$.post('/ajax/deletePartner.php', { partner_id: id }, function(results) {
let data = JSON.parse(results);
if (data) {
$.get(window.location.href, function(html) {
let partners = $(html).find('#partners');
if (partners) {
$('#partners').replaceWith(partners);
$('#partners').fadeIn(500);
}
});
}
});
}
}
function deleteEmployee(id) {
if (confirm("Вы точно хотите удалить этого сотрудника партнёра?") && typeof id !== "undefined") {
$.post('/ajax/deleteEmployee.php', { employee_id: id }, function(results) {
let data = JSON.parse(results);
if (data) {
$.get(window.location.href, function(html) {
let partners = $(html).find('#partners');
if (partners)
$('#partners').replaceWith(partners);
});
}
});
}
}
$(document).delegate('#partners .deletePartner', 'click', function() {
let id = $(this).data('id');
deletePartner(id);
});
$(document).delegate('#partners .deleteEmployee', 'click', function() {
let id = $(this).data('id');
deleteEmployee(id);
});
$(document).delegate('#addNewEmployee', 'submit', function(event) {
event.preventDefault();
$("#employee_form").find('.error_msg').empty();
$("#employee_form").find('a[data-rel="copy-password" ]').hide();
let form = $(this);
var formData = new FormData(form[0]);
$.ajax({
type: 'POST',
url: '/ajax/addEditEmployee.php',
data: formData,
cache: false,
async: false,
contentType: false,
processData: false,
success: function(results) {
//console.log(results);
if (data = JSON.parse(results)) {
//console.log(data);
if (typeof data.errors !== "undefined") {
data.errors.forEach(error => form.find('.error_msg').append('<span>' + error + '</span><br/>'));
$("#employee_form").find('.error_msg').show(300);
} else if (data.uploaded_files.errors.length) {
let errors = data.uploaded_files.errors;
Object.keys(errors).forEach(function(key) {
let error = errors[key];
Object.keys(error).forEach(function(filename) {
form.find('.error_msg').append('<span>Файл `' + filename + '`: ' + error[filename] + '</span><br/>');
});
});
$("#employee_form").find('.error_msg').show(300);
} else {
$("#employee_form").find('.error_msg').empty();
if (data.partner_id && data.new_employee_id) {
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').addClass('loading');
$.get(window.location.href, function(html) {
let partner = $(html).find('#partners .partner[data-partner-id="' + data.partner_id + '"]');
if (partner)
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').replaceWith(partner);
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').removeClass('loading');
});
} else if (data.partner_id && data.employee_id) {
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').addClass('loading');
$.get(window.location.href, function(html) {
let employee = $(html).find('#partners .partner[data-partner-id="' + data.partner_id + '"] .employees-list .partner[data-employee-id="' + data.employee_id + '"]');
let styles = $('#partners .partner[data-partner-id="' + data.partner_id + '"] .employees-list .partner[data-employee-id="' + data.employee_id + '"]').attr('style');
if (styles)
employee.attr('style', styles);
else
employee.removeAttr('style');
if (employee)
$('#partners .partner[data-partner-id="' + data.partner_id + '"] .employees-list .partner[data-employee-id="' + data.employee_id + '"]').replaceWith(employee);
$('#partners .partner[data-partner-id="' + data.partner_id + '"]').removeClass('loading');
});
} else {
//window.location.reload(true);
}
$("#employee_form_bg").hide(10);
$("#employee_form").hide(10);
$("body").removeClass("lock");
}
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
return false;
}
});
return false;
});
$(document).delegate('#addNewPartner .jw-tabs .tabs__caption li', 'click', function() {
let section = $('#addNewPartner');
let action = $(this).data('target');
section.find('.jw-tabs .tabs__caption li').removeClass('active');
section.find('.jw-tabs .tabs__caption li.' + action).addClass('active');
section.find('.modal-inner .tabs__content').hide();
section.find('.modal-inner .tabs__content.' + action).show();
});
$(document).delegate('#addNewEmployee .jw-tabs .tabs__caption li', 'click', function() {
let section = $('#addNewEmployee');
let action = $(this).data('target');
section.find('.jw-tabs .tabs__caption li').removeClass('active');
section.find('.jw-tabs .tabs__caption li.' + action).addClass('active');
section.find('.modal-inner .tabs__content').hide();
section.find('.modal-inner .tabs__content.' + action).show();
});
$(document).delegate('#addNewPartner #partner_add_file', 'click', function() {
let file_input = '<div class="form-block">\n' +
'<div class="label">Прикрепить файл:</div>\n' +
'<div class="inputs"><input type="file" class="file-input" name="files[]" style="width:400px;"></div>\n' +
'<div class="clear"></div>\n' +
'</div>';
$(this).closest('.form-block').before($(file_input));
});
$(document).delegate('#addNewEmployee #employee_add_file', 'click', function() {
let file_input = '<div class="form-block">\n' +
'<div class="label">Прикрепить файл:</div>\n' +
'<div class="inputs"><input type="file" class="file-input" name="files[]" style="width:400px;"></div>\n' +
'<div class="clear"></div>\n' +
'</div>';
$(this).closest('.form-block').before($(file_input));
});
//Заявки селект
function req_fastselect(id, id_fas, req_ids) {
$("#" + id).html('');
$("#" + id).html('<input type="text" multiple id="' + id_fas + '" data-url="/ajax/list_requisitions.php" data-load-once="true">');
$("#" + id_fas).val(req_ids);
if (req_ids != '') {
//console.log(req_ids);
$.post("/ajax/list_requisitions.php", { req: req_ids }, function(res) {
// console.log(res);
$("#" + id_fas).attr('data-initial-value', JSON.stringify(res));
$("#" + id_fas).fastselect({
placeholder: 'Заявки'
});
});
} else {
$("#" + id_fas).fastselect({
placeholder: 'Заявки'
});
}
}
function save_client(params, funnel_id, poles){
$('#addEditNew .load-bar').removeClass('hidden');
$('#newClient').addClass('hidden');
//console.log(params);
$.post('/ajax/addEditClient.php',
params,
function(data) {
// console.log(data);
if (data > 1) {
//console.log(funnel_id);
if ($('.view-kanban.active').length > 0) {
if (typeof id != 'undefined') {
if (funnel_id != 0) {
stage = $('#kanban_item_li_' + id).closest('.kanban__sortable').data("stage");
//console.log(stage);
}
if(document.location.pathname == '/clients.php'){
get_kanban_li(id, stage, priority);
// console.log(funnel_id);
let globalFunnel = $('#funnelIdClients').val();
if(funnel_id != globalFunnel){
$(`#kanban_item_li_${id}`).hide();
get_count_clients();
}
}
} else {
let sort_order = $('select[name=sort_order]').val();
get_list(null, sort_order, false);
}
} else {
let sort_order = $('select[name=sort_order]').val();
if ($('.pagination li.active a').text()) {
get_list($('.pagination li.active a').text(), sort_order, false);
} else {
get_list(null, sort_order, false);
}
}
//Сохранение кастомных полей
if (typeof client_fields != "undefined") {
client_fields.addEditFields(poles, data);
}
// console.log(id_reqs.split(','));
if (params.id_reqs != '') {
if (document.location.pathname == '/requisitions.php') {
var reqs = params.id_reqs.split(',');
for (var req_id in reqs) {
if (!isNaN(parseInt(reqs[req_id]))) {
var req_client = requisitions.req['req' + reqs[req_id]];
if (req_client && !isEmpty(req_client.client)) {
requisitions.req['req' + reqs[req_id]].client.fio = fio;
}
}
}
//requisitions.getList();
//console.log()
//getClient(data, JSON.parse(id_reqs)[0]);
}
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'update_req',
req_id: params.id_reqs,
object_id: params.objects,
client_id: data,
},
)
.then((response) => {
//console.log(response.data);
// var res = response.data;
// this.closeReqform();
})
.catch(function(error) {
console.log(error);
});
}
if (window.location.pathname == '/add-object.php') {
getSelectClients(data);
add_object_new_client_input_vue(data);
}
if (window.location.pathname == '/my-objects.php' || window.location.pathname == '/agency-objects.php') {
add_object_new_client_input_vue(data);
}
if ($('#client-history__bg').css("display") == 'block') {
if(document.location.pathname == '/requisitions.php'){
if(parseInt($("#client_history").attr("data-active-req")) == id){
openClientEventsWindowNew(id, $('#session_to_send').val());
}
} else {
openClientEventsWindowNew(id, $('#session_to_send').val());
}
}
$('#send_bg_new').fadeOut(500);
$("#send_bg_new .edit-modal").toggle(10);
$("body").removeClass("lock");
var komy = 0;
$('#komy option').each(function() {
if ($(this).val() == params.email) komy++;
});
if (komy == 0) {
$('#komy').prepend('<option value="' + params.email + '">' + params.fio + '</option>');
}
if (typeof req_form == 'object') {
if (req_form.isClientForm) {
req_form.clientId = parseInt(data);
req_form.isClientForm = false;
req_form.openReqForm(1);
$('#req_form').removeAttr("style");
}
}
$('#addEditNew .load-bar').addClass('hidden');
$('#newClient').removeClass('hidden');
} else {
$('#addEditNew .error_msg').html(data).show();
//$('#addEditNew .error_msg').next().text('Клиент '+fio);
$('#addEditNew .modal-title').text('Клиент ' + fio);
$(".full_modal-bg").stop().animate({ scrollTop: 0 }, 500);
$('#addEditNew .load-bar').addClass('hidden');
$('#newClient').removeClass('hidden');
}
});
}
/**
* hide_client_contacts: переключает состояние полей контактов клиента в модалке #send_new.
*
* Модалка #send_new / #addEditNew используется и для создания нового клиента (add_client_new),
* и для редактирования существующего (editClientNew). PHP-рендер задаёт статически disabled+warning
* для hide-юзера — это корректно для edit, но мешает create. Здесь динамически переключаем.
*
* mode='add' → enable полей email/phone/national_phone, hide warning, навешиваем phoneMask
* mode='edit' → если hide-юзер: disable полей + show warning + снимаем phoneMask (значение пишется
* "+X *** *** ** **", плагин маски его сломал бы).
*
* Зависит от window.shouldHideContacts() (см. js/contacts_visibility.js).
*/
function setAddEditNewContactsState(mode) {
var isHide = (typeof window.shouldHideContacts === 'function') && window.shouldHideContacts();
if (!isHide) return; // обычным юзерам нечего переключать — PHP отрендерил всё открытым
var $email = $('#addEditNew [name="email"]');
var $phone = $('#addEditNew #phoneClient');
var $natPh = $('#addEditNew [name="national_phone"]');
var $warning = $('#hideContactsWarning');
var disabledTitle = 'Контакты клиента скрыты для вашей учётной записи';
if (mode === 'add') {
$email.prop('disabled', false).removeAttr('title');
$phone.prop('disabled', false).removeAttr('title');
$natPh.prop('disabled', false);
$warning.hide();
// навешиваем jQuery-маску +7 для ручного ввода в новой форме
if (!$phone.hasClass('phoneMask')) {
$phone.addClass('phoneMask');
}
try { $phone.unmask(); } catch (e) {}
$phone.mask('+79999999999');
} else { // mode === 'edit'
$email.prop('disabled', true).attr('title', disabledTitle);
$phone.prop('disabled', true).attr('title', disabledTitle);
$natPh.prop('disabled', true);
$warning.show();
// снимаем маску, чтобы серверное "+X *** *** ** **" не превратилось в "+7"
try { $phone.unmask(); } catch (e) {}
$phone.removeClass('phoneMask');
}
}
function add_client_new(object, add_user, req_id, client_name) {
setAddEditNewContactsState('add');
if (req_id) {
if (typeof req_form == 'object') {
$('#req_form').css('zIndex', '99987');
req_form.isClientForm = true;
if (client_name !== null) {
$('#addEditNew [name="fio"]').val(client_name);
}
}
}
$("#addReqClientForm").attr("data-client", "new");
if (typeof client_fields != "undefined") {
client_fields.client_id = 0;
client_fields.getClientFields();
}
$('#send_web_hook_date').text('').css('color', '#757575');
$('#liObject').removeClass('active').hide();
$('#liReq').removeClass('active').hide();
$('#liInnerDocs').removeClass('active');
$('#liInnerDocs .tabs-li__icon').text('4');
$('#liGlobal').click();
$("#send_bg_new").fadeIn(500);
$("#send_new").toggle(10);
$('#send_log_new').hide();
$('#addObjectClientForm').attr('href', '/add-object.php');
$('#addEditNew .stagebar .stage').removeClass('active');
$('#addEditNew .stagebar .stage-new').addClass('active');
$('#addEditNew .stagebar .stage-work').addClass('active');
$("#addEditNew .form-block__hot-client").removeClass('active');
clearSelect();
req_fastselect('ms-new-client-req-input', 'ms-new-client-req', '');
$("#addEditNew").find('input').val("");
$("#addEditNew").find('textarea').val('');
$('#send_form').show();
$("#addEditNew select").val('');
$("#union_clients_form_open").attr("data-id", "");
$("#union_clients_form_open").hide();
$('.probank ul').html('');
$('#proresolve-yes').html('');
//инициализируем поля wazzap
if (typeof req_form == 'object') {
if (req_form.wazzap_chat_type) {
$('#addEditNew #wazzap_chat_type').val(req_form.wazzap_chat_type);
if (req_form.wazzap_chat_type === "whatsapp") {
$('#addEditNew [name="phone"]').val("+" + req_form.wazzap_chat_id);
}
}
if (req_form.wazzap_chat_id) {
$('#addEditNew #wazzap_chat_id').val(req_form.wazzap_chat_id);
}
if (req_form.wazzap_channel_id) {
$('#addEditNew #wazzap_channel_id').val(req_form.wazzap_channel_id);
}
if (req_form.wazzap_user_id) {
$('#addEditNew #wazzap_user_id').val(req_form.wazzap_user_id);
}
if (req_form.wazzap_integration_id) {
$('#addEditNew #wazzap_integration_id').val(req_form.wazzap_integration_id);
}
}
$('#addEditNew select').parent('.fstElement').find('.fstChoiceRemove').each(function() {
$(this).click();
});
$('#addEditNew .form-block [name=phone2]').each(function() {
$(this).closest('.form-block').remove();
});
$('#persone_no_ip').prop('checked', true);
$('#persone_yes_ip').prop('checked', false);
$('#persone_gender_man').prop('checked', true);
$('#persone_gender_woman').prop('checked', false);
$('.persone_no_ip').removeClass('hidden');
$('.persone_yas_ip').addClass('hidden');
$('#rynok_1').prop('checked', true);
$('#addEditNew [name=yes_object]').prop('checked', false);
$('#addEditNew [name=yes_doc]').prop('checked', false);
$('#addEditNew [name=yes_bank]').prop('checked', false);
$('#addEditNew [name=yes_resolve]').prop('checked', false);
$('#addEditNew [name=yes_issue]').prop('checked', false);
$('#resolve_1').prop('checked', false);
$('#resolve_2').prop('checked', false);
$('#resolve_3').prop('checked', false);
$('.prodoc').addClass('hidden');
$('.probank').addClass('hidden');
$('.proresolve').addClass('hidden');
$('.proissue').addClass('hidden');
$('#block_client_kredit .form-block').each(function() {
$(this).find('input[type=checkbox]').each(function() {
$(this).prop('checked', false);
});
$(this).find('input[type=radio]').each(function() {
if ($(this).attr('id') == 'no_yes_deduction_credit') {
$(this).prop('checked', true);
} else {
$(this).prop('checked', false);
}
});
});
var who_user = $('#sid').attr("data-id");
if (add_user !== undefined) {
who_user = add_user;
}
setSelectsFastselect('ms-new-client-work', who_user, 'select_form_client-work.php', 'Ответственный');
var source_id = 0;
if (object !== undefined) {
source_id = 10000;
}
setSelectsFastselect('ms-new-client-source', source_id, 'select_form_source.php', 'Источник');
var emplode_id_ms = 0;
setSelectsFastselect('ms-new-client-partner', emplode_id_ms, 'select_form_partner.php', 'Партнёр');
var funnel_id = $('.funnels_client .active').data("id");
if (funnel_id === undefined && $('#session_agency_id').val() == 7384) {
funnel_id = 75;
}
//console.log(funnel_id);
if (funnel_id === undefined || funnel_id == 0) {
$.post("/ajax/getFunnelFirst.php", function(dataf) {
//console.log(dataf);
var res_funnels = JSON.parse(dataf);
//if (funnel_id === undefined)
funnel_id = parseInt(res_funnels.funnel_id);
if(res_funnels.is_stage == 0){
$('#is_show_funnel_null').val(0);
} else {
$('#is_show_funnel_null').val(1);
}
setSelectsFastselect('ms-new-funnel', funnel_id, 'select_form_funnel.php', 'Воронка', 'client');
})
} else {
setSelectsFastselect('ms-new-funnel', funnel_id, 'select_form_funnel.php', 'Воронка', 'client');
}
if (object !== undefined) {
$('#of_objects').val(object);
$.post('/ajax/getNameObject.php', { id: object }, function(result) {
var text = ''; //Звонок по квартире/помещению/комнате , тип
if (result != '') {
text += 'Звонок по объекту ' + result;
}
$('#addEditNew [name=opis]').val(text);
});
} else {
$('#of_objects').val("0");
}
$('#ms-new-client-type').fastselect({
placeholder: 'Тип'
});
setSelectsFastselect('ms-new-client-activities', null, 'select_form_activities.php', 'Теги');
$('.ms-crm-client-rol').fastselect({
placeholder: 'Роль клиента'
});
$('#ms-new-client-objects-type').fastselect({
placeholder: 'Тип недвижимости'
});
setSelectsFastselect('ms_new_blocks', null, 'select_form_blocks.php', 'Жилые комплексы');
setSelectsFastselect('ms-new-client-bank-denial', null, 'select_form_bank-denial.php', 'Банк (отказ)');
setSelectsFastselect('ms-new-client-bank-revisal', null, 'select_form_bank-denial.php', 'Банк (пересмотр)');
setSelectsFastselect('ms-new-client-bank-issue', null, 'select_form_bank-denial.php', 'Банк выдачи');
$('#ms_new_bancks_credit').fastselect({
placeholder: 'Банковский продукт',
});
$.post('/ajax/getClientsView.php', { get_clients_objects: '', user_id: $('#sid').data("id") },
function(result) {
if (result == 0) {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple></select>');
} else {
$("#ms-new-client-object").closest(".inputs").html('<select id="ms-new-client-object" class="ms-crm-client-object-type" multiple>' + result + '</select>');
}
$("#ms-new-client-object").fastselect({ placeholder: 'Объекты' });
}
);
$('#addEditNew #confirm').val("0");
$('#addEditNew .error_msg').hide();
$('#addEditNew .modal-title').text('Новый клиент');
$("body").addClass("lock");
get_contracts_client(0);
}
//Установка селектов
function setSelectsFastselect(selector, value, ajaxScript, name, section) {
var params = {};
params.selector = selector;
if (section) {
params.section = section;
}
if (selector == 'filter_charts_funnel') {
$('#filter_charts_funnel-input').html('');
}
//if ($('#' + selector).length < 1) {
axios.post('/ajax/' + ajaxScript,
params,
)
.then((response) => {
$('#' + selector + '-input').html(response.data);
if (value) {
$("#" + selector).val(value);
}
setFastselectPost(selector, name);
setSelectPost(selector);
})
.catch(function(error) {
console.log(error);
});
/*} else {
$('#' + selector).fastselect().data('fastselect').destroy();
if (value) {
$("#" + selector).val(value);
}
setFastselectPost(selector, name);
setSelectPost(selector);
}*/
}
//Функции после установки селекта
function setSelectPost(selector) {
switch (selector) {
case 'ms-new-funnel':
{
console.log($("#" + selector).val());
if ($("#" + selector).val() > 0) {
$('#addEditNew .stepsTable').hide();
} else {
if ($("#" + selector).val() == 0) {
if($('#is_show_funnel_null').val() > 0){
$('#addEditNew .stepsTable').show();
} else {
$('#addEditNew .stepsTable').hide();
}
}
}
break;
}
case 'ms-new-client-partner':
{
let partner_label = $("#" + selector + " option:selected").data("label");
if (partner_label)
$("#" + selector).closest(".inputs").find(".fstToggleBtn").text(partner_label);
$("#" + selector).closest(".inputs").find(".fstControls input.hidenClass").attr('type', "text");
$("#" + selector).closest(".inputs").find(".fstControls input.hidenClass").removeClass('hidenClass');
break;
}
}
}
//Fastselect для разных селектов после установки
function setFastselectPost(selector, name) {
switch (selector) {
case 'ms-new-client-work':
{
$('#' + selector).fastselect({
placeholder: name,
onItemCreate: function() { $(this).find('.fstQueryInput').hide() },
onItemSelect: function() {
$('#addEditNew [name=confirm]').val("0");
}
});
break;
}
case 'ms-new-client-partner':
{
$("#ms-new-client-partner").fastselect({
placeholder: name,
onItemCreate: function($item, itemModel) {
let partner_name = $("#" + selector + " option[value=" + itemModel.value + "]").data('partner');
itemModel.text = itemModel.text + ' <!-- ' + partner_name + ' -->';
$(this).find(".fstControls input.hidenClass").attr('type', "text");
$(this).find(".fstControls input.hidenClass").removeClass('hidenClass');
},
onItemSelect: function($item, itemModel) {
console.log($item, itemModel);
let partner_label = $("#" + selector + " option:selected").data("label");
if (partner_label)
$("#" + selector).closest(".inputs").find(".fstToggleBtn").text(partner_label);
$(this).find(".fstControls input.hidenClass").attr('type', "text");
$(this).find(".fstControls input.hidenClass").removeClass('hidenClass');
}
});
break;
}
case 'filter_charts_funnel':
{
$('#' + selector).fastselect({
placeholder: name,
onItemSelect: function() {
show_options_search_charts();
//get_sourse_filter();
},
onItemDelete: function() {
show_options_search_charts();
//get_sourse_filter();
}
});
break;
}
default:
{
$('#' + selector).fastselect({
placeholder: name,
});
break;
}
}
}
function close_partner_modal(clientId = 0, reqId = 0) {
$("#chat-modal__bg__partner").fadeOut(500);
$("#chat-modal__partner").toggle(10);
$("body").removeClass("lock");
if (clientId !== 0 && parseInt(clientId) > 0) {
$.ajax({
url: '/ajax/getClientLogForEventsNew.php?id=' + clientId,
success: function(data) {
$('#client-info-block').html(data);
$('#client_history .history__chat-n').animate({
scrollTop: $('#client-info-block').prop("scrollHeight")
}, 500, function() {
$('#client_history .history__chat-n').slimScroll({ scrollTo: $('#client-info-block').prop("scrollHeight") + 'px' });
});
if ($('#calendar').length) {
$('#calendar').fullCalendar('refetchEvents');
}
}
});
} else if (reqId > 0) {
if (typeof requisitions == 'object') {
requisitions.getList();
}
openClientEventsWindowNew(0, $('#session_to_send').val(), 0, reqId);
}
return false;
}
function close_adjacent_modal(clientId = 0, reqId = 0){
$("#chat-modal__bg__adjacent").fadeOut(500);
$("#chat-modal__adjacent").toggle(10);
$("body").removeClass("lock");
if (clientId !== 0 && parseInt(clientId) > 0) {
$.ajax({
url: '/ajax/getClientLogForEventsNew.php?id=' + clientId,
success: function(data) {
$('#client-info-block').html(data);
$('#client_history .history__chat-n').animate({
scrollTop: $('#client-info-block').prop("scrollHeight")
}, 500, function() {
$('#client_history .history__chat-n').slimScroll({ scrollTo: $('#client-info-block').prop("scrollHeight") + 'px' });
});
if ($('#calendar').length) {
$('#calendar').fullCalendar('refetchEvents');
}
}
});
} else if (reqId > 0) {
if (typeof requisitions == 'object') {
requisitions.getList();
}
openClientEventsWindowNew(0, $('#session_to_send').val(), 0, reqId);
}
return false;
}
function error_mes(id, mes) {
$(id).text(mes);
setTimeout(function() {
$(id).text('');
}, 3000);
}
function get_folders(id) {
$.post('/ajax/folders.php', { get_folders_all: 'all' }, function(data) {
//console.log(data);
$('#docs_info_tab').html(data);
if (id) {
$('#folder_id_' + id).find('.docsfiles').removeClass('hidden');
$("#files_upload").hide(10);
$("#file_upload").hide(10);
$("body").removeClass("lock");
return false;
}
});
}
function to_check_client_new(id) {
$('#changeClientAllFilter').prop('checked', false);
$('#changeClientAllFilterDiv').removeClass('active');
if ($('#changeClient' + id).prop('checked')) {
$('#changeClient' + id).prop('checked', false);
$('#checked-clt' + id).removeClass('active');
} else {
$('#changeClient' + id).prop('checked', true);
$('#checked-clt' + id).addClass('active');
}
}
function changeUserClients_confirm(userId, clientsId) {
$.ajax({
url: '/ajax/modals/confirmUserWinContent.php',
success: function(data) {
$("#confirm__user_bg").html(data);
$("#confirm__user_id").val(userId);
$("#confirm_clients_id").val(JSON.stringify(clientsId));
$("#confirm__who_work option").show();
$("#confirm__user_bg").fadeIn(500);
$("#confirm__user").fadeIn(10);
$("body").addClass("lock");
$('#confirm__who_work').fastselect({
placeholder: 'Новый ответственный',
onItemCreate: function(item, model) {
if ($('#confirm__who_work').find('option[value=' + model.value + ']').hasClass('bolt')) {
$(item).addClass('bolt');
}
},
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
function funnelClients(clientsId) {
$.ajax({
url: '/ajax/modals/funnelUserWinContent.php',
method: "post",
data: {
"clientsId": clientsId,
},
success: function(data) {
$("#funnel__user_bg").html(data);
$("#funnel_clients_id").val(JSON.stringify(clientsId));
$("#funnel__check option").show();
$("#funnel__user_bg").fadeIn(500);
$("#funnel__user").toggle(10);
$("body").addClass("lock");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
function confirm__User(userId, newWhoWork, clientsId, confirm_obj = null) {
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
$.ajax({
url: '/ajax/confirm__User.php',
method: "post",
data: {
"userId": userId,
"newWhoWork": newWhoWork,
"clientsId": clientsId,
"confirmObj": confirm_obj,
"all": all,
},
success: function(data) {
console.log(data);
if (data == '') {
get_list();
$("#confirm__user_bg").fadeOut(500);
$("#confirm__user").toggle(10);
$("body").removeClass("lock");
$('#popup__clients').removeClass('show');
} else {
alert(data.replace("error:", ""));
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
function clearSelect() {
for (let i = 1; i <= 4; i++) {
$('#addEditNew .form-block__p' + i + '-client').removeClass('active');
}
}
function funnelClientsConfirm(funnel_id, clientsId) {
console.log(funnel_id);
console.log(clientsId);
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
$.ajax({
url: '/ajax/funnel_confirm.php',
method: "post",
data: {
"funnel_id": funnel_id,
"clientsId": clientsId,
"all": all,
},
success: function(data) {
console.log(data);
if (data == '') {
get_list();
$("#funnel__user_bg").fadeOut(500);
$("#funnel__user").toggle(10);
$("body").removeClass("lock");
$('#popup__clients').removeClass('show');
} else {
alert(data.replace("error:", ""));
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
//Модал нет доступа к рекламным объектам
function show_no_all_objects_page() {
$('#show_no_all_objects_page_bg').fadeIn(500);
$('#show_no_all_objects_page').toggle(300);
$("body").addClass("lock");
}
//открытие окна выбора тегов
function openChangeTags(id) {
$('.jw__popup.actions-tags:not([id="popup__tags_' + id + '"])').removeClass('show');
let popup = $('#popup__tags_' + id);
if (popup.hasClass('show'))
popup.removeClass('show');
else
popup.addClass('show');
if (popup.hasClass('show')) {
let tagsList = popup.find('#popup__activities_' + id).fastselect({
placeholder: 'Теги',
onItemCreate: function() {},
onItemSelect: function() {}
});
popup.find('.small-button').unbind('click');
popup.find('.small-button').click(function(e) {
let id = popup.attr('data-id');
let instance = popup.attr('data-for');
let tagsView = $('.jw__object.item#item' + id + ' .tags .tags-title');
let poapTagsView = $(`.jw__object.item#item${id} #popup__tags_list_${id} .inputs`);
if (instance == "clients"){
tagsView = $('.client#client__' + id + ' .tags .tags-title');
poapTagsView = $(`.client#client__${id} #popup__tags_list_${id} .inputs`);
}
let activities = tagsList.val();
$.post('/ajax/addActivities.php', {
id: id,
activities: activities,
instance: instance
}, function(data) {
let result = JSON.parse(data);
if (result.length > 0) {
tagsView.empty();
poapTagsView.empty();
//tagsView.append('<i class="ti-tag"></i> ');
let tag_key = 1;
let tags_visible = 0;
for (let i = 0; i < result.length; i++) {
if (result[i]['id'] && result[i]['name']) {
let htmlTag = '';
if(i<3){
htmlTag += '<div class="tag-block" style="z-index: '+tag_key;
}
let htmlPoup = '<div class="tag-block list-tags"';
if(!isEmpty(result[i]['color'])) {
if(i<3){
htmlTag += '; border: solid 1px '+ result[i]['color'];
}
htmlPoup += 'style="border: solid 1px '+ result[i]['color']+'"';
}
if(i<3){
htmlTag +='">' +
'<div class="tag-img"';
}
htmlPoup += '>'+
'<div class="tag-img"';
if(!isEmpty(result[i]['color'])) {
if(i<3){
htmlTag += ' style="background-color:'+result[i]['color']+'"';
}
htmlPoup += ' style="background-color:'+result[i]['color']+'"';
}
if(i<3){
htmlTag +='><img src="/images/tag.svg"/></div>' +
'<div class="tag-name">' +
'<span';
}
htmlPoup +='><img src="/images/tag.svg"/></div>' +
'<div class="tag-name">' +
'<span';
if(!isEmpty(result[i]['color'])) {
if(i<3){
htmlTag += ' style="color:'+result[i]['color']+'"';
}
htmlPoup += ' style="color:'+result[i]['color']+'"';
}
if(i<3){
htmlTag += ' data-id="'+result[i]['id']+'">'+result[i]['name']+'</span></div>' +
'</div>';
}
htmlPoup += ' data-id="'+result[i]['id']+'">'+result[i]['name']+'</span></div>' +
'</div>';
if(i<3){
tagsView.append(htmlTag);
tags_visible++;
}
poapTagsView.append(htmlPoup);
}
tag_key++;
}
if((tags_visible) < result.length){
let rest_tags = result.length - tags_visible;
htmlTag = '<div style="margin-left: 0px; border:none" class="tag-block">'+
'<div style="margin-top: 7px;" class="tag-name"><span style="color: #757575;">и ещё '+rest_tags+' шт.</span></div>'+
'</div>';
tagsView.append(htmlTag);
}
$('.jw__object.item#item' + id + ' .tags').removeClass('hidden');
$('.client#client__' + id + ' .tags').removeClass('hidden');
} else {
tagsView.empty();
$('.jw__object.item#item' + id + ' .tags').addClass('hidden');
$('.client#client__' + id + ' .tags').addClass('hidden');
poapTagsView.empty();
}
popup.removeClass('show');
});
});
}
}
function changeColorPicker(type){
if(type == 'add'){
let color = $('#addActivitesColorPicker input').val();
$('#addActivitesColorPicker').css('background', '').css('backgroundColor', color);
$('#colorAddActivites').val(color);
} else {
let color = $('#editActivitesColorPicker input').val();
$('#editActivitesColorPicker').css('background', '').css('backgroundColor', color);
$('#colorEditActivites').val(color);
}
}
//Открыть редактирование договора
function open_form_contract(id, contract_id, type, el) {
if (typeof contract_form != "undefined") {
contract_form.parent_type = type;
if (contract_id == -1) {
contract_id = $(el).attr("data-contract");
}
if (id == -1) {
id = parseInt($('#addEditNew [name=id]').val());
if (isNaN(id)) id = 0;
}
contract_form.parent_id = id;
contract_form.id = contract_id;
contract_form.open();
if (id == 0 && contract_id == 0) {
var data = $(el).closest('div').attr("data-data");
if (data) {
var con = JSON.parse(data);
var index = $(el).closest('div').attr("id").replace("contract_elem_client", "");
contract_form.number = con.number;
contract_form.type_contract = con.type;
contract_form.date_start = con.date_start;
contract_form.date_end = con.date_end;
contract_form.days_mes_end = con.days_mes_end;
contract_form.no_mes_end = con.no_mes_end;
contract_form.parent_index = index;
}
}
}
}
//список договоров в форме
function get_contracts_client(client_id) {
$("#list_contracts_client_form").html('');
if (client_id > 0) {
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'get_contracts',
parent_id: client_id,
type: 'client',
}, )
.then((response) => {
var res = response.data;
if (res.contracts.length > 0) {
var html = '';
for (var i = 0; i < res.contracts.length; i++) {
html += '<div data-client="' + client_id + '" data-contract="' + res.contracts[i].id + '" id="contract_elem_client' + i + '">';
html += '<label style="display: inline-block;">' +
'<a href="javascript:{};" onclick="open_form_contract(' + client_id + ', ' + res.contracts[i].id + ',\'client\', this)">' + res.contracts[i].name + '</a>' +
'</label>' +
'<a href="javascript:{};" onclick="deleteContract(' + i + ')" title="Удалить" style="padding: 6px 8px; border: none; line-height: 34px;"><i class="ti-trash"></i></a>';
html += '</div>';
}
$("#list_contracts_client_form").html(html);
}
})
.catch(function(error) {
console.log(error);
});
}
}
//Удаление договора
function deleteContract(index) {
if (confirm('Вы действительно хотите удалить этот договор?')) {
$('.ui-tooltip.ui-widget').remove();
var client_id = $('#contract_elem_client' + index).attr("data-client");
var contract_id = $('#contract_elem_client' + index).attr("data-contract");
$('#contract_elem_client' + index).remove();
if (client_id > 0 && contract_id > 0) {
if (typeof contract_form != "undefined") {
contract_form.delete(contract_id, 'client');
}
}
}
}
//Связка клиент-заявка-объект при добавлении объекта
function bindObjReq(clientId) {
$('#object-new-client-req').addClass('hidden');
$('#object-new-client-req span').text("");
$('#object-new-client-req [name=sobstv_object_req]').val(0);
$('#object-new-client-req [name=sobstv_object_req_funnel]').val(0);
$('#bind_obj_req .new_req').hide();
$('#bind_obj_req .error_req').hide();
var client_id = $("#object-new-client").val();
if ($("#object-new-client-vue").length > 0) {
client_id = $("#object-new-client-vue").val();
}
if (clientId > 0) {
client_id = clientId;
} else {
if (JSON.parse(client_id)[0]) {
client_id = JSON.parse(client_id)[0];
}
}
var object_id = 0;
if ($('#object-new-client-req [name=sobstv_object_req_object]')) {
object_id = parseInt($('#object-new-client-req [name=sobstv_object_req_object]').val());
}
if (object_id > 0) {
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'check_object',
agency_id: $('#session_agency_id').val(),
object_id: object_id,
req_id: $('#object-new-client-req [name=sobstv_object_req]').val(),
})
.then((response) => {
//console.log(response.data);
var res = response.data;
if (res['result'] == 'error') {
$('#bind_obj_req .error_req').show();
} else {
$('#bind_obj_req .new_req').show();
$('#bind_obj_req .new_req').attr("data-id", client_id);
}
})
.catch(function(error) {
console.log(error);
});
} else {
$('#bind_obj_req .new_req').show();
$('#bind_obj_req .new_req').attr("data-id", client_id);
}
//if(client_id > 0){
setSelectsFastselect('bind_obj_req-funnel', null, 'select_form_funnel.php', 'Воронка', 'req');
//$('#bind_obj_req .new_req').attr("data-id", client_id);
$('#bind_obj_req .old_req').attr("data-id", client_id);
$('#bind_obj_req_bg').fadeIn(300);
$('#bind_obj_req').toggle(100);
$("body").addClass("lock");
//}
}
//Открыть модл объекта
function openObjectModal(object_id, zindex, is_external) {
object_card.open(object_id, zindex, is_external);
}
//Проверка на пустату
function isEmpty(data) {
if (typeof(data) === 'object') {
if (JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]') {
return true;
} else if (!data) {
return true;
}
return false;
} else if (typeof(data) === 'string') {
if (!data.trim()) {
return true;
}
return false;
} else if (typeof(data) === 'undefined') {
return true;
} else {
return false;
}
}
function recreateCols(columns) {
var result = [];
for (let i = 0, l = columns.length; i < l; i++) {
result[i] = {
visible : columns[i].visible,
id : columns[i].id,
text : columns[i].id
}
}
return result;
}
function open_confirmation__req_client(razdel, event, selector, confirm_obj=null){
console.log(confirm_obj);
$('#confirmation__req_client .loader').show();
$('#confirmation__req_client .no-loader').hide();
$('#confirmation__req_client .yes_confirmation').attr('data-razdel', razdel);
$('#confirmation__req_client .yes_confirmation').attr('data-event', event);
$('#confirmation__req_client .yes_confirmation').attr('data-selectort', selector);
$('#confirmation__req_client .yes_confirmation').attr('data-confirm-obj', confirm_obj);
if(selector != ''){
$('#'+selector).fadeOut(10);
$('#'+selector+'_bg').fadeOut(10);
if(selector == 'funnel__user_req'){
$('#funnel__user_bg_req').fadeOut(10);
}
}
var text = "Вы хотите";
if(event == 'confirm_user'){
text += " передать сотруднику ";
if(razdel == 'req'){
var user = $('#confirm__who_work_req').val();
if(user){
text += "«"+$('#confirm__who_work_req option[value="' + user + '"]').text()+"»";
}
}
if(razdel == 'client'){
var user = $('#confirm__who_work').val();
if(user){
text += "«"+$('#confirm__who_work option[value="' + user + '"]').text()+"»";
}
}
}
if(event == 'confirm_funnel'){
text += " переместить в воронку ";
if(razdel == 'req'){
var funnel = $('#funnel__check_req').val();
if(funnel){
text += "«"+$('#funnel__check_req option[value="' + funnel + '"]').text()+"»";
}
}
if(razdel == 'client'){
var funnel = $('#funnel__check').val();
if(funnel){
text += "«"+$('#funnel__check option[value="' + funnel + '"]').text()+"»";
}
}
}
if(event == 'confirm_on'){
text += " принять в работу ";
}
if(event == 'close_all'){
text += " закрыть ";
}
if(event == 'renew_all'){
text += ' открыть ';
}
if(event == 'take_from_closed_all'){
text += ' принять в работу ';
}
$('#confirmation__req_client .confirmation_event').text(text);
$('#confirmation__req_client_bg').fadeIn(10);
$('#confirmation__req_client').fadeIn(10);
$("body").addClass("lock");
var text_razdel = '';
var total_item = 0;
$('#confirmation__req_client .name_razdel').text(text_razdel);
if(razdel == 'req'){
text_razdel = "заявок";
}
if(razdel == 'client'){
text_razdel = "клиентов";
}
$('#confirmation__req_client .name_razdel').text(text_razdel);
var all = 0;
if ($('#changeReqAllFilter').prop('checked') || $('#changeClientAllFilter').prop('checked')) {
all = 1;
}
if(all == 0){
if(razdel == 'req'){
$('.changeReqInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeReq", "");
if (id != 'All') {
total_item++;
}
}
});
$('#confirmation__req_client .total_item').text(total_item);
}
if(razdel == 'client'){
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
if (id != 'All') {
total_item++;
}
}
});
$('#confirmation__req_client .total_item').text(total_item);
}
$('#confirmation__req_client .loader').hide();
$('#confirmation__req_client .no-loader').show();
} else {
var ids = [];
if (localStorage['ids_exception_req']) {
var ids_exception_req = localStorage.getItem('ids_exception_req');
ids = JSON.parse(ids_exception_req);
}
axios.post('/ajax/ajax_vue_requisitions.php', {
request: 'confirmation_total_item',
razdel: razdel,
ids_exception: ids,
}, )
.then((response) => {
console.log(response.data);
total_item = response.data;
$('#confirmation__req_client .total_item').text(total_item);
$('#confirmation__req_client .loader').hide();
$('#confirmation__req_client .no-loader').show();
})
.catch(function(error) {
console.log(error);
});
}
}
function close_confirmation__req_client(){
$('#changeReqAll').prop('checked', false);
$('#changeReqAllFilter').prop('checked', false);
$('#changeReqAllFilterDiv').removeClass('active');
$('#changeReqAllDiv').removeClass('active');
$('.changeReqInput').each(function(e) {
$(this).prop('checked', false);
var id = $(this).data("id");
$('#checked-clt' + id).removeClass('active');
});
$('#changeClientAll').prop('checked', false);
$('#changeClientAllFilter').prop('checked', false);
$('#changeClientAllFilterDiv').removeClass('active');
$('#changeClientAllDiv').removeClass('active');
$('.changeClientInput').each(function(e) {
$(this).prop('checked', false);
var id = $(this).data("id");
$('#checked-clt' + id).removeClass('active');
});
$('#confirmation__req_client .yes_confirmation').removeAttr('data-razdel');
$('#confirmation__req_client .yes_confirmation').removeAttr('data-event');
$('#confirmation__req_client .yes_confirmation').removeAttr('data-selectort');
$('#confirmation__req_client .loader').show();
$('#confirmation__req_client .no_loader').hide();
$('#confirmation__req_client_bg').fadeOut(300);
$('#confirmation__req_client').fadeOut(100);
$("body").removeClass("lock");
return false;
}
function no_confirmation(){
close_confirmation__req_client();
}
function yes_confirmation(){
var razdel = $('#confirmation__req_client .yes_confirmation').attr('data-razdel');
var event = $('#confirmation__req_client .yes_confirmation').attr('data-event');
var selector = $('#confirmation__req_client .yes_confirmation').attr('data-selectort');
var confirm_obj = $('#confirmation__req_client .yes_confirmation').attr('data-confirm-obj');
console.log(razdel);
console.log(event);
console.log(selector);
console.log(confirm_obj);
if(event == 'confirm_user'){
if(razdel == 'req'){
requisitions.confirm__User_req();
}
if(razdel == 'client'){
confirm__User(document.getElementById('confirm__user_id').value, document.getElementById('confirm__who_work').value, document.getElementById('confirm_clients_id').value, confirm_obj);
}
}
if(event == 'confirm_funnel'){
if(razdel == 'req'){
requisitions.funnelReqsConfirm();
}
if(razdel == 'client'){
funnelClientsConfirm(document.getElementById('funnel__check').value, document.getElementById('funnel_clients_id').value);
}
}
if(event == 'confirm_on'){
if(razdel == 'req'){
var reqsId = [];
var all = 0;
if ($('#changeReqAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
$('.changeReqInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeReq", "");
if (id != 'All') {
reqsId.push(id);
}
}
});
confirmOnReqs(reqsId);
} else {
confirmOnReqs(reqsId);
}
}
if(razdel == 'client'){
var userId = $('#session_user_id').val();
var clientsId = [];
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
clientsId = ['all'];
}
if (all == 0) {
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
if (id != 'All') {
clientsId.push(id);
}
}
});
console.log(clientsId);
if (clientsId.length == 0) {
alert("Нет выбранных клиентов");
} else {
confirmOnClients(clientsId);
}
} else {
confirmOnClients(clientsId);
}
}
}
if(event == 'close_all'){
$("#del_client_all_bg").fadeIn(500);
$("#del_client_all").toggle(10);
$("body").addClass("lock");
$('#summa_sdelki_all').val('');
$('#summa_sdelki_all').hide();
$('#luck_all').prop('checked', false);
$('#denial_work_all').show();
$('#denial_work_all').val(1);
var all = 0;
if(razdel == 'client'){
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
} else {
if ($('#changeReqAllFilter').prop('checked')) {
all = 1;
}
}
//console.log(all);
$("#del_client_all").find('input[name="del_all"]').val(all);
set_select_denial_work(0, true);
}
if(event == 'renew_all'){
if(razdel == 'req'){
var reqsId = [];
var all = 0;
if ($('#changeReqAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
$('.changeReqInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeReq", "");
if (id != 'All') {
reqsId.push(id);
}
}
});
if (reqsId.length == 0) {
alert("Нет выбранных заявок");
} else {
console.log(reqsId);
requisitions.renewReqs(reqsId);
}
} else {
var user_id = $('#session_user_id').val();
requisitions.renewReqs(reqsId);
}
}
if(razdel == 'client'){
var clientsId = [];
var all = 0;
if ($('#changeClientAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
$('.changeClientInput').each(function() {
if ($(this).prop('checked')) {
var id = $(this).attr('id').replace("changeClient", "");
clientsId.push(id);
}
});
console.log(clientsId);
if (clientsId.length == 0) {
alert("Нет выбранных клиентов");
} else {
renewClients(clientsId);
}
} else {
renewClients(clientsId);
}
}
}
if(event == 'take_from_closed_all'){
if(razdel == 'req'){
let reqsId = [];
let all = 0;
if ($('#changeReqAllFilter').prop('checked')) {
all = 1;
}
if (all == 0) {
$('.changeReqInput').each(function() {
if ($(this).prop('checked')) {
let id = $(this).attr('id').replace("changeReq", "");
if (id != 'All') {
reqsId.push(id);
}
}
});
if (reqsId.length == 0) {
alert("Нет выбранных заявок");
} else {
console.log(reqsId);
requisitions.takeFromClosedReqs(reqsId);
}
} else {
let user_id = $('#session_user_id').val();
requisitions.takeFromClosedReqs(reqsId);
}
}
}
close_confirmation__req_client();
}
function confirm__User_client(){
let confirm_obj = null;
if($('#is_confirm_object_all').length > 0){
if($('#is_confirm_object_all').prop('checked'))
confirm_obj = 1;
else
confirm_obj = 0;
}
open_confirmation__req_client('client', 'confirm_user', 'confirm__user', confirm_obj);
}
function funnel_Confirm_client(){
open_confirmation__req_client('client', 'confirm_funnel', 'funnel__user');
}
function save_key_telegramm(){
var key = $("#key_telegramm").val();
var user_id = $('#session_user_id').val();
axios.post('/ajax/ajax_vue_settings.php', {
request: 'save_key_telegramm',
key_telegramm: key,
user_id: user_id,
})
.then(function(response) {
alert("Код сохранен");
})
.catch(function(error) {
console.log(error);
});
}
function save_key_max(){
var key = $("#key_max").val();
var user_id = $('#session_user_id').val();
axios.post('/ajax/ajax_vue_settings.php', {
request: 'save_key_max',
key_max: key,
user_id: user_id,
})
.then(function(response) {
alert("Код сохранен");
})
.catch(function(error) {
console.log(error);
});
}
function open_modal_contract(object_id){
$('#popup__actions_contract_'+object_id).addClass('show');
var position = $('#actions_contract_'+object_id).position();
$('#popup__actions_contract_'+object_id).css('left', (position.left-80)+'px');
}
//удаление контракта в объектах
function deleteContractObject(object_id, contract_id, section) {
if (confirm('Вы действительно хотите удалить этот договор?')) {
$('.ui-tooltip.ui-widget').remove();
$('#contract_elem_object' + contract_id).remove();
if($('#popup__actions_contract_' + object_id + ' .contract_div').length == 0){
$('#actions_contract_'+object_id).hide();
}
if (object_id > 0 && contract_id > 0) {
if (typeof contract_form != "undefined") {
contract_form.delete(contract_id, section);
}
}
}
}
const defaultParams = {
containerClass: 'custom-select-container',
openerClass: 'custom-select-opener',
panelClass: 'custom-select-panel',
optionClass: 'custom-select-option',
optgroupClass: 'custom-select-optgroup',
isSelectedClass: 'is-selected',
hasFocusClass: 'has-focus',
isDisabledClass: 'is-disabled',
isOpenClass: 'is-open',
};
function builder(el, builderParams) {
const containerClass = 'customSelect';
let isOpen = false;
let uId = '';
const select = el;
let container;
let opener;
let focusedElement;
let selectedElement;
let panel;
let currLabel;
let resetSearchTimeout;
let searchKey = '';
//
// Inner Functions
//
// Sets the focused element with the neccessary classes substitutions
function setFocusedElement(cstOption) {
if (focusedElement) {
focusedElement.classList.remove(builderParams.hasFocusClass);
}
if (typeof cstOption !== 'undefined') {
focusedElement = cstOption;
focusedElement.classList.add(builderParams.hasFocusClass);
// Offset update: checks if the focused element is in the visible part of the panelClass
// if not dispatches a custom event
if (isOpen) {
if (cstOption.offsetTop < cstOption.offsetParent.scrollTop
|| cstOption.offsetTop >
(cstOption.offsetParent.scrollTop + cstOption.offsetParent.clientHeight)
- cstOption.clientHeight) {
cstOption.dispatchEvent(new CustomEvent('custom-select:focus-outside-panel', { bubbles: true }));
}
}
} else {
focusedElement = undefined;
}
}
// Reassigns the focused and selected custom option
// Updates the opener text
// IMPORTANT: the setSelectedElement function doesn't change the select value!
function setSelectedElement(cstOption) {
if (selectedElement) {
selectedElement.classList.remove(builderParams.isSelectedClass);
selectedElement.removeAttribute('id');
opener.removeAttribute('aria-activedescendant');
}
if (typeof cstOption !== 'undefined') {
cstOption.classList.add(builderParams.isSelectedClass);
cstOption.setAttribute('id', `${containerClass}-${uId}-selectedOption`);
opener.setAttribute('aria-activedescendant', `${containerClass}-${uId}-selectedOption`);
selectedElement = cstOption;
opener.children[0].textContent = selectedElement.customSelectOriginalOption.text;
} else {
selectedElement = undefined;
opener.children[0].textContent = '';
}
setFocusedElement(cstOption);
}
function setValue(value) {
// Gets the option with the provided value
let toSelect = select.querySelector(`option[value='${value}']`);
// If no option has the provided value get the first
if (!toSelect) {
[toSelect] = select.options;
}
// The option with the provided value becomes the selected one
// And changes the select current value
toSelect.selected = true;
setSelectedElement(select.options[select.selectedIndex].customSelectCstOption);
}
function moveFocuesedElement(direction) {
// Get all the .custom-select-options
// Get the index of the current focused one
const currentFocusedIndex =
[].indexOf.call(select.options, focusedElement.customSelectOriginalOption);
// If the next or prev custom option exist
// Sets it as the new focused one
if (select.options[currentFocusedIndex + direction]) {
setFocusedElement(select.options[currentFocusedIndex + direction].customSelectCstOption);
}
}
// Open/Close function (toggle)
function open(bool) {
// Open
if (bool || typeof bool === 'undefined') {
// If present closes an opened instance of the plugin
// Only one at time can be open
const openedCustomSelect =
document.querySelector(`.${containerClass}.${builderParams.isOpenClass}`);
if (openedCustomSelect) {
openedCustomSelect.customSelect.open = false;
}
// Opens only the clicked one
container.classList.add(builderParams.isOpenClass);
// aria-expanded update
container.classList.add(builderParams.isOpenClass);
opener.setAttribute('aria-expanded', 'true');
// Updates the scrollTop position of the panel in relation with the focused option
if (selectedElement) {
panel.scrollTop = selectedElement.offsetTop;
}
// Dispatches the custom event open
container.dispatchEvent(new CustomEvent('custom-select:open'));
// Sets the global state
isOpen = true;
// Close
} else {
// Removes the css classes
container.classList.remove(builderParams.isOpenClass);
// aria-expanded update
opener.setAttribute('aria-expanded', 'false');
// Sets the global state
isOpen = false;
// When closing the panel the focused custom option must be the selected one
setFocusedElement(selectedElement);
// Dispatches the custom event close
container.dispatchEvent(new CustomEvent('custom-select:close'));
}
return isOpen;
}
function clickEvent(e) {
// Opener click
if (e.target === opener || opener.contains(e.target)) {
if (isOpen) {
open(false);
} else {
open();
}
// Custom Option click
} else if (
e.target.classList
&& e.target.classList.contains(builderParams.optionClass)
&& panel.contains(e.target)) {
setSelectedElement(e.target);
// Sets the corrisponding select's option to selected updating the select's value too
selectedElement.customSelectOriginalOption.selected = true;
open(false);
// Triggers the native change event of the select
select.dispatchEvent(new CustomEvent('change'));
// click on label or select (click on label corrispond to select click)
} else if (e.target === select) {
// if the original select is focusable (for any external reason) let the focus
// else trigger the focus on opener
if (opener !== document.activeElement && select !== document.activeElement) {
opener.focus();
}
// Click outside the container closes the panel
} else if (isOpen && !container.contains(e.target)) {
open(false);
}
}
function mouseoverEvent(e) {
// On mouse move over and options it bacames the focused one
if (e.target.classList && e.target.classList.contains(builderParams.optionClass)) {
setFocusedElement(e.target);
}
}
function keydownEvent(e) {
if (!isOpen) {
// On "Arrow down", "Arrow up" and "Space" keys opens the panel
if (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 32) {
open();
}
} else {
switch (e.keyCode) {
case 13:
case 32:
// On "Enter" or "Space" selects the focused element as the selected one
setSelectedElement(focusedElement);
// Sets the corrisponding select's option to selected updating the select's value too
selectedElement.customSelectOriginalOption.selected = true;
// Triggers the native change event of the select
select.dispatchEvent(new CustomEvent('change'));
open(false);
break;
case 27:
// On "Escape" closes the panel
open(false);
break;
case 38:
// On "Arrow up" set focus to the prev option if present
moveFocuesedElement(-1);
break;
case 40:
// On "Arrow down" set focus to the next option if present
moveFocuesedElement(+1);
break;
default:
// search in panel (autocomplete)
if (e.keyCode >= 48 && e.keyCode <= 90) {
// clear existing reset timeout
if (resetSearchTimeout) {
clearTimeout(resetSearchTimeout);
}
// reset timeout for empty search key
resetSearchTimeout = setTimeout(() => {
searchKey = '';
}, 1500);
// update search keyword appending the current key
searchKey += String.fromCharCode(e.keyCode);
// search the element
for (let i = 0, l = select.options.length; i < l; i++) {
// removed cause not supported by IE:
// if (options[i].text.startsWith(searchKey))
if (select.options[i].text.toUpperCase().substr(0, searchKey.length) === searchKey) {
setFocusedElement(select.options[i].customSelectCstOption);
break;
}
}
}
break;
}
}
}
function changeEvent() {
const index = select.selectedIndex;
const element = index === -1 ? undefined : select.options[index].customSelectCstOption;
setSelectedElement(element);
if($(select).attr('data-id')){
var object_id = $(select).attr('data-id');
var val = select.value;
change_promo(object_id, val);
}
}
// When the option is outside the visible part of the opened panel, updates the scrollTop position
// This is the default behaviour
// To block it the plugin user must
// add a "custom-select:focus-outside-panel" eventListener on the panel
// with useCapture set to true
// and stopPropagation
function scrollToFocused(e) {
const currPanel = e.currentTarget;
const currOption = e.target;
// Up
if (currOption.offsetTop < currPanel.scrollTop) {
currPanel.scrollTop = currOption.offsetTop;
// Down
} else {
currPanel.scrollTop = (currOption.offsetTop + currOption.clientHeight)
- currPanel.clientHeight;
}
}
function addEvents() {
document.addEventListener('click', clickEvent);
panel.addEventListener('mouseover', mouseoverEvent);
panel.addEventListener('custom-select:focus-outside-panel', scrollToFocused);
select.addEventListener('change', changeEvent);
container.addEventListener('keydown', keydownEvent);
}
function removeEvents() {
document.removeEventListener('click', clickEvent);
panel.removeEventListener('mouseover', mouseoverEvent);
panel.removeEventListener('custom-select:focus-outside-panel', scrollToFocused);
select.removeEventListener('change', changeEvent);
container.removeEventListener('keydown', keydownEvent);
}
function disabled(bool) {
if (bool && !select.disabled) {
container.classList.add(builderParams.isDisabledClass);
select.disabled = true;
opener.removeAttribute('tabindex');
container.dispatchEvent(new CustomEvent('custom-select:disabled'));
removeEvents();
} else if (!bool && select.disabled) {
container.classList.remove(builderParams.isDisabledClass);
select.disabled = false;
opener.setAttribute('tabindex', '0');
container.dispatchEvent(new CustomEvent('custom-select:enabled'));
addEvents();
}
}
// Form a given select children DOM tree (options and optgroup),
// Creates the corresponding custom HTMLElements list (divs with different classes and attributes)
function parseMarkup(children) {
const nodeList = children;
const cstList = [];
if (typeof nodeList.length === 'undefined') {
throw new TypeError('Invalid Argument');
}
for (let i = 0, li = nodeList.length; i < li; i++) {
if (nodeList[i] instanceof HTMLElement && nodeList[i].tagName.toUpperCase() === 'OPTGROUP') {
const cstOptgroup = document.createElement('div');
cstOptgroup.classList.add(builderParams.optgroupClass);
cstOptgroup.setAttribute('data-label', nodeList[i].label);
// IMPORTANT: Stores in a property of the created custom option group
// a hook to the the corrisponding select's option group
cstOptgroup.customSelectOriginalOptgroup = nodeList[i];
// IMPORTANT: Stores in a property of select's option group
// a hook to the created custom option group
nodeList[i].customSelectCstOptgroup = cstOptgroup;
const subNodes = parseMarkup(nodeList[i].children);
for (let j = 0, lj = subNodes.length; j < lj; j++) {
cstOptgroup.appendChild(subNodes[j]);
}
cstList.push(cstOptgroup);
} else if (nodeList[i] instanceof HTMLElement
&& nodeList[i].tagName.toUpperCase() === 'OPTION') {
const cstOption = document.createElement('div');
cstOption.classList.add(builderParams.optionClass);
cstOption.textContent = nodeList[i].text;
cstOption.setAttribute('data-value', nodeList[i].value);
cstOption.setAttribute('role', 'option');
// IMPORTANT: Stores in a property of the created custom option
// a hook to the the corrisponding select's option
cstOption.customSelectOriginalOption = nodeList[i];
// IMPORTANT: Stores in a property of select's option
// a hook to the created custom option
nodeList[i].customSelectCstOption = cstOption;
// If the select's option is selected
if (nodeList[i].selected) {
setSelectedElement(cstOption);
}
cstList.push(cstOption);
} else {
throw new TypeError('Invalid Argument');
}
}
return cstList;
}
function append(nodePar, appendIntoOriginal, targetPar) {
let target;
if (typeof targetPar === 'undefined'
|| (targetPar === select)) {
target = panel;
} else if (targetPar instanceof HTMLElement
&& targetPar.tagName.toUpperCase() === 'OPTGROUP'
&& select.contains(targetPar)) {
target = targetPar.customSelectCstOptgroup;
} else {
throw new TypeError('Invalid Argument');
}
// If the node provided is a single HTMLElement it is stored in an array
const node = nodePar instanceof HTMLElement ? [nodePar] : nodePar;
// Injects the options|optgroup in the select
if (appendIntoOriginal) {
for (let i = 0, l = node.length; i < l; i++) {
if (target === panel) {
select.appendChild(node[i]);
} else {
target.customSelectOriginalOptgroup.appendChild(node[i]);
}
}
}
// The custom markup to append
const markupToInsert = parseMarkup(node);
// Injects the created DOM content in the panel
for (let i = 0, l = markupToInsert.length; i < l; i++) {
target.appendChild(markupToInsert[i]);
}
return node;
}
function insertBefore(node, targetPar) {
let target;
if (targetPar instanceof HTMLElement
&& targetPar.tagName.toUpperCase() === 'OPTION'
&& select.contains(targetPar)) {
target = targetPar.customSelectCstOption;
} else if (targetPar instanceof HTMLElement
&& targetPar.tagName.toUpperCase() === 'OPTGROUP'
&& select.contains(targetPar)) {
target = targetPar.customSelectCstOptgroup;
} else {
throw new TypeError('Invalid Argument');
}
// The custom markup to append
const markupToInsert = parseMarkup(node.length ? node : [node]);
target.parentNode.insertBefore(markupToInsert[0], target);
// Injects the option or optgroup node in the original select and returns the injected node
return targetPar.parentNode.insertBefore(node.length ? node[0] : node, targetPar);
}
function remove(node) {
let cstNode;
if (node instanceof HTMLElement
&& node.tagName.toUpperCase() === 'OPTION'
&& select.contains(node)) {
cstNode = node.customSelectCstOption;
} else if (node instanceof HTMLElement
&& node.tagName.toUpperCase() === 'OPTGROUP'
&& select.contains(node)) {
cstNode = node.customSelectCstOptgroup;
} else {
throw new TypeError('Invalid Argument');
}
cstNode.parentNode.removeChild(cstNode);
const removedNode = node.parentNode.removeChild(node);
changeEvent();
return removedNode;
}
function empty() {
const removed = [];
while (select.children.length) {
panel.removeChild(panel.children[0]);
removed.push(select.removeChild(select.children[0]));
}
setSelectedElement();
return removed;
}
function destroy() {
for (let i = 0, l = select.options.length; i < l; i++) {
delete select.options[i].customSelectCstOption;
}
const optGroup = select.getElementsByTagName('optgroup');
for (let i = 0, l = optGroup.length; i < l; i++) {
delete optGroup.customSelectCstOptgroup;
}
removeEvents();
return container.parentNode.replaceChild(select, container);
}
//
// Custom Select DOM tree creation
//
// Creates the container/wrapper
container = document.createElement('div');
container.classList.add(builderParams.containerClass, containerClass);
// Creates the opener
opener = document.createElement('span');
opener.className = builderParams.openerClass;
opener.setAttribute('role', 'combobox');
opener.setAttribute('aria-autocomplete', 'list');
opener.setAttribute('aria-expanded', 'false');
opener.innerHTML = `<span>
${(select.selectedIndex !== -1 ? select.options[select.selectedIndex].text : '')}
</span>`;
// Creates the panel
// and injects the markup of the select inside
// with some tag and attributes replacement
panel = document.createElement('div');
// Create random id
const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (let i = 0; i < 5; i++) {
uId += possible.charAt(Math.floor(Math.random() * possible.length));
}
panel.id = `${containerClass}-${uId}-panel`;
panel.className = builderParams.panelClass;
panel.setAttribute('role', 'listbox');
opener.setAttribute('aria-owns', panel.id);
append(select.children, false);
// Injects the container in the original DOM position of the select
container.appendChild(opener);
select.parentNode.replaceChild(container, select);
container.appendChild(select);
container.appendChild(panel);
// ARIA labelledby - label
if (document.querySelector(`label[for="${select.id}"]`)) {
currLabel = document.querySelector(`label[for="${select.id}"]`);
} else if (container.parentNode.tagName.toUpperCase() === 'LABEL') {
currLabel = container.parentNode;
}
if (typeof currLabel !== 'undefined') {
currLabel.setAttribute('id', `${containerClass}-${uId}-label`);
opener.setAttribute('aria-labelledby', `${containerClass}-${uId}-label`);
}
// Event Init
if (select.disabled) {
container.classList.add(builderParams.isDisabledClass);
} else {
opener.setAttribute('tabindex', '0');
select.setAttribute('tabindex', '-1');
addEvents();
}
// Stores the plugin public exposed methods and properties, directly in the container HTMLElement
container.customSelect = {
get pluginOptions() { return builderParams; },
get open() { return isOpen; },
set open(bool) {
open(bool);
},
get disabled() { return select.disabled; },
set disabled(bool) {
disabled(bool);
},
get value() { return select.value; },
set value(val) {
setValue(val);
},
append: (node, target) => append(node, true, target),
insertBefore: (node, target) => insertBefore(node, target),
remove,
empty,
destroy,
opener,
select,
panel,
container,
};
// Stores the plugin directly in the original select
select.customSelect = container.customSelect;
// Returns the plugin instance, with the public exposed methods and properties
return container.customSelect;
}
function customSelect(element, customParams) {
// Overrides the default options with the ones provided by the user
const nodeList = [];
const selects = [];
return (function init() {
// The plugin is called on a single HTMLElement
if (element && element instanceof HTMLElement && element.tagName.toUpperCase() === 'SELECT') {
nodeList.push(element);
// The plugin is called on a selector
} else if (element && typeof element === 'string') {
const elementsList = document.querySelectorAll(element);
for (let i = 0, l = elementsList.length; i < l; ++i) {
if (elementsList[i] instanceof HTMLElement
&& elementsList[i].tagName.toUpperCase() === 'SELECT') {
nodeList.push(elementsList[i]);
}
}
// The plugin is called on any HTMLElements list (NodeList, HTMLCollection, Array, etc.)
} else if (element && element.length) {
for (let i = 0, l = element.length; i < l; ++i) {
if (element[i] instanceof HTMLElement
&& element[i].tagName.toUpperCase() === 'SELECT') {
nodeList.push(element[i]);
}
}
}
// Launches the plugin over every HTMLElement
// And stores every plugin instance
for (let i = 0, l = nodeList.length; i < l; ++i) {
selects.push(builder(nodeList[i], Object.assign({}, defaultParams, customParams)));
}
// Returns all plugin instances
return selects;
}());
}
function change_promo(object_id, val){
console.log(object_id, val);
var params = {};
if(object_id > 0 || object_id == 'all'){
params.object_id = object_id;
params.user_id = $('#session_user_id').val();
if(val.indexOf("avito_") != -1){
params.avito_highlight = (val == 'avito_highlight') ? 1 : 0;
params.avito_xl = (val == "avito_xl") ? 1 : 0;
params.avito_x2_1 = (val == "avito_x2_1") ? 1 : 0;
params.avito_x2_7 = (val == "avito_x2_7") ? 1 : 0;
params.avito_x5_1 = (val == "avito_x5_1") ? 1 : 0;
params.avito_x5_7 = (val == "avito_x5_7") ? 1 : 0;
params.avito_x10_1 = (val == "avito_x10_1") ? 1 : 0;
params.avito_x10_7 = (val == "avito_x10_7") ? 1 : 0;
}
if(val.indexOf("cian_") != -1 && val != 'cian_bet'){
if(object_id == 'all'){
$('#cian_promo_price_all').removeAttr('disabled');
}
params.cian_highlight = (val == 'cian_highlight') ? 1 : 0;
params.cian_standard = (val == 'cian_standard') ? 1 : 0;
params.cian_paid = (val == 'cian_paid') ? 1 : 0;
params.cian_premium = (val == 'cian_premium') ? 1 : 0;
params.cian_top3 = (val == 'cian_top3') ? 1 : 0;
params.cian_ignore_pkg = (val == 'cian_ignore_pkg') ? 1 : 0;
}
if(val == 'cian_bet'){
if(object_id == 'all'){
$('#cian_promo_price_all').removeAttr('disabled');
}
price = $('#cian_bet_input_promo_'+object_id).val();
if(isEmpty(price)) price = 0;
params.cian_bet = price;
}
if(val.indexOf("yandex_") != -1) {
params.yandex_premium = (val == "yandex_premium") ? 1 : 0;
params.yandex_raise = (val == "yandex_raise") ? 1 : 0;
params.yandex_promotion = (val == "yandex_promotion") ? 1 : 0;
}
if(val.indexOf("domclick_") != -1) {
params.domclick_express = (val == "domclick_express") ? 1 : 0;
params.domclick_premium = (val == "domclick_premium") ? 1 : 0;
params.domclick_top = (val == "domclick_top") ? 1 : 0;
}
/*params.cian_price = form.find('input[name="cian_price"]').val();
params.yandex_price = form.find('input[name="yandex_price"]').val();
params.domclick_price = form.find('input[name="domclick_price"]').val();*/
$.ajax({
url: '/ajax/addPromotion.php',
method: "post",
data: params,
success: function(data) {
// console.log(data);
//let results = JSON.parse(data);
if(val == 'cian_bet'){
is_change_cian_bet = false;
}
/*$("#addPromotionBg").hide();
$("#addPromotionBg").empty();
$("#addPromotion").hide();
$("body").removeClass("lock");*/
//console.log(results);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("eRROR: " + errorThrown + "; status:" + textStatus);
}
});
}
}