var data_stat_arr = null; var type_calendar = null; var switchToDayInTasks = true; var needCalendarView = null; $(document).ready(function() { $('#ms-crm-charts-period').fastselect({ placeholder: 'Период' }); $('#filter-clientreq').fastselect({ placeholder: '', onItemSelect: function(item, val) { if (parseInt(val.value) == 1) { setSelectsFastselect('filter_charts_funnel', null, 'select_form_funnel.php', 'Воронка', 'req'); } else { setSelectsFastselect('filter_charts_funnel', null, 'select_form_funnel.php', 'Воронка', 'client'); } show_options_search_charts(); }, onItemDelete: function() { setSelectsFastselect('filter_charts_funnel', null, 'select_form_funnel.php', 'Воронка', 'client'); show_options_search_charts(); } }); $('#ms-crm-charts-work').fastselect({ placeholder: 'Ответственный', onItemCreate: function(item, model) { if ($('#ms-crm-charts-work').find('option[value=' + model.value + ']').hasClass('bolt')) { $(item).addClass('bolt'); } }, onItemSelect: function() { //var user_id = $('#ms-crm-charts-work').val(); // $('.search-query-item:eq(1) span').text($('#ms-crm-charts-work [value='+user_id+']').text()); // $('.dashboard-work a').attr('href', '/clients.php?id_manager='+user_id); show_options_search_charts(); }, onItemDelete: function() { // var user_id = $('#ms-crm-charts-work').val(); // $('.search-query-item:eq(1) span').text($('#ms-crm-charts-work [value='+user_id+']').text()); // $('.dashboard-work a').attr('href', '/clients.php?id_manager='+user_id); show_options_search_charts(); } }); $('#filter-charts-type').fastselect({ placeholder: 'Тип', onItemSelect: function() { show_options_search_charts(); }, onItemDelete: function() { show_options_search_charts(); } }); $('#filter_charts_activities').fastselect({ placeholder: 'Теги', onItemSelect: function() { show_options_search_charts(); }, onItemDelete: function() { show_options_search_charts(); } }); $('#filter-charts-objects-type').fastselect({ placeholder: 'Тип недвижимости', onItemSelect: function() { show_options_search_charts(); }, onItemDelete: function() { show_options_search_charts(); } }); $('#filter_charts_rol').fastselect({ placeholder: 'Роль клиента', onItemSelect: function() { show_options_search_charts(); }, onItemDelete: function() { show_options_search_charts(); } }); $('#filter_charts_source').fastselect({ placeholder: 'Источник', onItemSelect: function() { show_options_search_charts(); }, onItemDelete: function() { show_options_search_charts(); } }); $('#filter_charts_partner').fastselect({ placeholder: 'Партнёры', onItemSelect: function() { this.$controls.find('.fstChoiceItem').each(function() { let value = $(this).data('value'); let label = $('#filter_charts_partner option[value="' + value + '"]').data("label"); if (label) { this.childNodes[0].nodeValue = label; } }); show_options_search_charts(); }, onItemDelete: function() { show_options_search_charts(); } }); setSelectsFastselect('filter_charts_funnel', null, 'select_form_funnel.php', 'Воронка', 'client'); var queryParams = parseQueryString(window.location.search); // var type_calendar=null; if (queryParams) { if (queryParams.tasks !== undefined) { type_calendar = queryParams.type_calendar; } if (queryParams.tasks !== undefined) { showCalendar(queryParams.tasks, type_calendar); } } else { if (localStorage['chartspage'] && localStorage['chartspage'] !== undefined) { var chartspage = localStorage['chartspage']; /* if(localStorage['chartspage']=='table'){ }*/ $('.crm__tasks').addClass('hidden'); //$('.crm__tasks_objects').addClass('hidden'); $('.crm__dashboard').addClass('hidden'); $('.crm__stats').addClass('hidden'); $('.crm__stats_objects').addClass('hidden'); $('.crm__table').addClass('hidden'); $('.crm__' + chartspage).removeClass('hidden'); $('.tab').removeClass('selected'); $('.charts-type-input').removeClass('hidden'); $('.charts-objects-type-input').removeClass('hidden'); $('.charts-role-input').removeClass('hidden'); $('.charts-source-input').removeClass('hidden'); $('.charts-funnel-input').removeClass('hidden'); switch (localStorage['chartspage']) { case 'tasks': { $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #today').addClass('active'); getCalendar(); $('#filter_task').removeClass('hidden'); // $('#filter_time').addClass('hidden'); $('.crm__new-task').removeClass('hidden'); $('.crm__new-event').removeClass('hidden'); $('.tab:eq(1)').addClass('selected'); $('.__stat_table').hide(); break; } /* case 'tasks_objects': { getCalendarObject(); $('#filter_task').removeClass('hidden'); // $('#filter_time').addClass('hidden'); //$('.crm__new-task').removeClass('hidden'); //$('.crm__new-event').removeClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.charts-type-input').addClass('hidden'); $('.charts-objects-type-input').addClass('hidden'); $('.charts-role-input').addClass('hidden'); $('.charts-source-input').addClass('hidden'); $('.charts-funnel-input').addClass('hidden'); $('.tab:eq(3)').addClass('selected'); $('.__stat_table').hide(); break; }*/ case 'stats': { // $('#filter_time').removeClass('hidden'); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.tab:eq(2)').addClass('selected'); $('.view-charts').addClass('active'); $('.view-table').removeClass('active'); $('.__stat_table').hide(); $('#export_stat_client').hide(); getStats(); break; } case 'objectsStat': { $('#filter_task').addClass('hidden'); $('.view-charts').hide(); $('.view-table').hide(); $('.tab:eq(3)').addClass('selected'); $('.charts-type-input').addClass('hidden'); $('.charts-objects-type-input').addClass('hidden'); $('.charts-role-input').addClass('hidden'); $('.charts-source-input').addClass('hidden'); $('.charts-funnel-input').addClass('hidden'); $('#export_stat_client').hide(); getStatsObjects(); break; } case 'table': { //$('#filter_time').removeClass('hidden'); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.tab:eq(2)').addClass('selected'); $('.view-charts').removeClass('active'); $('.view-table').addClass('active'); $('#export_stat_client').show(); getStats(); break; } case 'telephony': { $('.view-charts').removeClass('active'); //$('#filter_time').addClass('hidden'); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.tab:eq(4)').addClass('selected'); $('.view-table').removeClass('active'); $('.__stat_table').hide(); $('#export_stat_client').hide(); getTelephony(); break; } default: { getDashboard(); //$('#filter_time').removeClass('hidden'); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.tab:eq(0)').addClass('selected'); $('#export_stat_client').hide(); $('.__stat_table').hide(); } } // $('.jw__page__tabs a:eq(1)').click(); } else { $('.crm__dashboard').removeClass('hidden'); getDashboard(); } } show_options_search_charts(); $('body').on('click', '.tab', function() { $('.tab').removeClass('selected'); $(this).addClass('selected'); $('.crm__tasks').addClass('hidden'); //$('.crm__tasks_objects').addClass('hidden'); $('.crm__dashboard').addClass('hidden'); $('.crm__stats').addClass('hidden'); $('.crm__stats_objects').addClass('hidden'); $('.crm__table').addClass('hidden'); $('.crm__telephony').addClass('hidden'); $('.charts-type-input').removeClass('hidden'); $('.charts-objects-type-input').removeClass('hidden'); $('.charts-role-input').removeClass('hidden'); $('.charts-source-input').removeClass('hidden'); $('.charts-funnel-input').removeClass('hidden'); var classTab = $(this).data("tab"); $('.crm__' + classTab).removeClass('hidden'); show_options_search_charts(); if (classTab == 'stats') { $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #30days').addClass('active'); getStats(); //$('#filter_time').removeClass('hidden'); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.__stat_table').hide(); // $('.search-query-item:eq(0) span').text($('#filter_time .active').find('span').text()); } if (classTab == 'stats_objects') { $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #30days').addClass('active'); getStatsObjects(); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.__stat_table').hide(); $('.charts-type-input').addClass('hidden'); $('.charts-objects-type-input').addClass('hidden'); $('.charts-role-input').addClass('hidden'); $('.charts-source-input').addClass('hidden'); $('.charts-funnel-input').addClass('hidden'); $('#export_stat_client').show(); show_options_search_charts(); } if (classTab == 'dashboard') { $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #30days').addClass('active'); getDashboard(); //$('#filter_time').removeClass('hidden'); $('#filter_task').addClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.__stat_table').hide(); // $('.search-query-item:eq(0) span').text($('#filter_time .active').find('span').text()); } if (classTab == 'tasks') { if (switchToDayInTasks) { $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #today').addClass('active'); } else { switchToDayInTasks = true; } getCalendar(); $('#filter_task').removeClass('hidden'); //$('#filter_time').addClass('hidden'); $('.crm__new-task').removeClass('hidden'); $('.crm__new-event').removeClass('hidden'); $('.__stat_table').hide(); // $('.search-query-item:eq(0) span').text($('#filter_task .active').find('span').text()); } /*if (classTab == 'tasks_objects') { getCalendarObject(); $('#filter_task').removeClass('hidden'); //$('#filter_time').addClass('hidden'); //$('.crm__new-task').removeClass('hidden'); //$('.crm__new-event').removeClass('hidden'); $('.crm__new-task').addClass('hidden'); $('.crm__new-event').addClass('hidden'); $('.charts-type-input').addClass('hidden'); $('.charts-objects-type-input').addClass('hidden'); $('.charts-role-input').addClass('hidden'); $('.charts-source-input').addClass('hidden'); $('.charts-funnel-input').addClass('hidden'); $('.__stat_table').hide(); // $('.search-query-item:eq(0) span').text($('#filter_task .active').find('span').text()); }*/ if (classTab == 'telephony') { $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #30days').addClass('active'); getTelephony(); $('#filter_task').removeClass('hidden'); //$('#filter_time').addClass('hidden'); $('.crm__new-task').removeClass('hidden'); $('.crm__new-event').removeClass('hidden'); $('.__stat_table').hide(); // $('.search-query-item:eq(0) span').text($('#filter_task .active').find('span').text()); } }); $('.datepicker-filter').datepicker({ autoClose: 'true', onSelect: function() {} }); $("body").on("click", ".view-charts", function() { $(this).addClass('active'); $('.view-table').removeClass('active'); $('#export_stat_client').hide(); getStats(); }); $("body").on("click", ".view-table", function() { $(this).addClass('active'); $('.view-charts').removeClass('active'); $('#export_stat_client').show(); getStats(); }); /*$("body").on("change", "input[name=role]:checked", function(){ $("#grid-keep-selection").bootgrid("reload"); });*/ $("body").on("click", ".objects-table", function() { var page = $(this).data("page"); showObjectsTableWindow(null, null, page, false); }); //Выгрузка excel статистики клиентов $("body").on("click", "#export_stat_client", function() { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_activities = $('#filter_chatrts_activities').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var params = { period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities) } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); params.onDate = onDate; params.offDate = offDate; } var clients = true; var object = true; var data_stat = false; if ($('.crm__table.hidden').length > 0) { clients = false; } if ($('.crm__stats_objects.hidden').length > 0) { object = false; } if ($('.__stat_table').css('display') != 'none') { data_stat = true; } if (clients) { var clientreq = $('#filter-clientreq').val(); /*var rows = JSON.stringify($("#grid-keep-selection").bootgrid("getCurrentRows")); var columns = JSON.stringify($("#grid-keep-selection").bootgrid("getColumnSettings")); // console.log(params); params.rows = rows; params.columns = columns; params.type = 'clients'; $.post("/ajax/export_excel_stat_client.php", params, function (data) { //console.log(data); var res = JSON.parse(data); if (res.result == 'ok') { var $a = $(""); $a.attr("href", res.file); $("body").append($a); $a.attr("download", res.name); $a[0].click(); $a.remove(); } });*/ if(clientreq == 1){ $('#grid-keep-selection-req').tableExport({ fileName: "Заявки статистика", type: 'excel', date: { html: 'dd/mm/yyyy' }, htmlContent: false, mso: { fileFormat: 'xlsx', styles: ['border-bottom', 'border-top', 'border-left', 'border-right'], xlsx: { formatId: {numbers: 1}, onHyperlink: function($cell, row, col, href, content, hyperlink){ var v = hyperlink; if($($cell.html()).is('a')){ v = $($cell.html()).text(); } return v; } }, }, }); } else { $('#grid-keep-selection-new').tableExport({ fileName: "Клиент статистика", type: 'excel', date: { html: 'dd/mm/yyyy' }, htmlContent: false, mso: { fileFormat: 'xlsx', styles: ['border-bottom', 'border-top', 'border-left', 'border-right'], xlsx: { formatId: {numbers: 1}, onHyperlink: function($cell, row, col, href, content, hyperlink){ var v = hyperlink; if($($cell.html()).is('a')){ v = $($cell.html()).text(); } return v; } }, }, }); } } if (object) { // var rows = JSON.stringify($("#obj-stat-grid-full").bootgrid("getCurrentRows")); // var columns = JSON.stringify($("#obj-stat-grid-full").bootgrid("getColumnSettings")); // params.rows = rows; // params.columns = columns; // params.type = 'object'; // $.post("/ajax/export_excel_stat_client.php", params, function(data) { // var res = JSON.parse(data); // if (res.result == 'ok') { // var $a = $(""); // $a.attr("href", res.file); // $("body").append($a); // $a.attr("download", res.name); // $a[0].click(); // $a.remove(); // } // }); //console.log($("#obj-stat-grid-full").bootgrid("getCurrentRows")); //console.log($("#obj-stat-grid-full").bootgrid("getColumnSettings")); $("#obj-stat-grid-full").tableExport({ fileName: "Статистика объекты", type: 'excel', date: { html: 'dd/mm/yyyy' }, htmlContent: false, mso: { fileFormat: 'xlsx', styles: ['border-bottom', 'border-top', 'border-left', 'border-right'], xlsx: { // formatId: {numbers: 1}, onHyperlink: function($cell, row, col, href, content, hyperlink){ var v = hyperlink; if($($cell.html()).is('a')){ v = $($cell.html()).text().replace(/\s+/g, ''); } return v; } }, }, }); } if (data_stat) { params.columns = JSON.stringify(data_stat_arr.table); $.post("/ajax/export_excel_data_client.php", params, function(data) { var res = JSON.parse(data); if (res.result == 'ok') { var $a = $(""); $a.attr("href", res.file); $("body").append($a); $a.attr("download", res.name); $a[0].click(); $a.remove(); } }); } }); $("body").on("click", "#export_stat_obj", function() { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var charts_activities = $('#filter_chatrts_activities').val(); var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var columns = JSON.stringify($("#object_list_table").bootgrid("getColumnSettings")); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var params = { period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities) } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); params.onDate = onDate; params.offDate = offDate; } params.type = $(this).data("type"); params.userId = $(this).data("userid"); params.columns = columns; $('#export_stat_obj_show').show(); $.post("/ajax/export_excel_stat_obj.php", params, function(data) { $('#export_stat_obj_show').hide(); var res = JSON.parse(data); if (res.result == 'ok') { var $a = $(""); $a.attr("href", res.file); $("body").append($a); $a.attr("download", res.name); $a[0].click(); $a.remove(); } }); }); $('body').on('click', '.funnel_widget .view-table-funnel', function() { showFunnelStat(); }); $('body').on('click', '#stats_funnel_list__bg .closer', function() { hideFunnelStat(); }); $('body').on('click', '.sources_widget .view-table-funnel', function() { showSourcesStat(); }); $('body').on('click', '#stats_sources_list__bg .closer', function() { hideSourcesStat(); }); $('body').on('click', '.view-table-sales_plan', function() { showSalesPlanStat(); }); $('body').on('click', '#sales_plan_list__bg .closer', function() { hideSalesPlanStat(); }); $('body').on('click', '#export_stat_funnel', function() { $('#table-funnel-keep-selection').tableExport({ fileName: "Статистика по воронке", type: 'excel', date: { html: 'dd/mm/yyyy' }, htmlContent: false, mso: { fileFormat: 'xlsx', styles: ['border-bottom', 'border-top', 'border-left', 'border-right'], xlsx: { formatId: {numbers: 1}, onHyperlink: function($cell, row, col, href, content, hyperlink){ var v = hyperlink; if($($cell.html()).is('a')){ v = $($cell.html()).text(); } return v; } }, }, }); }); $('body').on('click', '#export_stat_sources', function() { $('#table-sources-keep-selection').tableExport({ fileName: "Рекламные иточники статистика", type: 'excel', date: { html: 'dd/mm/yyyy' }, htmlContent: false, mso: { fileFormat: 'xlsx', styles: ['border-bottom', 'border-top', 'border-left', 'border-right'], xlsx: { formatId: {numbers: 1}, onHyperlink: function($cell, row, col, href, content, hyperlink){ var v = hyperlink; if($($cell.html()).is('a')){ v = $($cell.html()).text(); } return v; } }, }, }); }); $('body').on('click', '#export_sales_plan', function() { var $table_sales = $('#table-sales_plan_list-selection'); var columns = []; var col = $table_sales.bootstrapTable('getVisibleColumns'); for (var i = 0; i < 15; i++) { columns.push(col[i]); } var params = getParamsFilter(); params['columns'] = columns; $.post("/ajax/export_excel_sales_plan.php", params, function(data) { var res = JSON.parse(data); if (res.result == 'ok') { var $a = $(""); $a.attr("href", res.file); $("body").append($a); $a.attr("download", res.name); $a[0].click(); $a.remove(); } }); /* var columns = $table_sales.bootstrapTable('getOptions').columns; console.log(columns); $('#table-sales_plan_list-selection').tableExport({ fileName: "План продаж", type: 'excel', date: { html: 'dd/mm/yyyy' }, htmlContent: false, mso: { fileFormat: 'xlsx', xlsx: {formatId: {date: 14, numbers: 1}}, styles: ['border-bottom', 'border-top', 'border-left', 'border-right'] }, xslx: {formatId: {date: 14, numbers: 10}}, numbers: {html: {decimalMark: '.', thousandsSeparator: ' '}, output: {decimalMark: '.', thousandsSeparator: ''} } });*/ }); $('body').on('click', '#get_expired_stages_clients', function() { $('#expired_stages_clients .widget-number').html(''); getExpiredStages('clients'); }); $('body').on('click', '#get_expired_stages_req', function() { $('#expired_stages_requisitions .widget-number').html(''); getExpiredStages('req'); }); }); function get_sourse_filter() { if ($('.tab.selected').data("tab") == 'stats') { getStats(); } else if ($('.tab.selected').data("tab") == 'dashboard') { getDashboard(1); } else if ($('.tab.selected').data("tab") == 'tasks') { getCalendar(); } else if ($('.tab.selected').data("tab") == 'stats_objects') { getStatsObjects(); } /*else if ($('.tab.selected').data("tab") == 'tasks_objects') { getCalendarObject(); }*/ else { getDashboard(1); } } function show_options_search_charts() { var val = 0; 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 ($('.tab.selected').data("tab") == 'tasks') { $('#filter_task .filter-popup-type').each(function() { if ($(this).hasClass('active')) val++; }); } else { $('#filter_time .filter-popup-type').each(function() { if ($(this).hasClass('active')) val++; }); } if ($('#ms-crm-charts-work').val() && $('#ms-crm-charts-work').val() != '') val++; if (!$('.charts-type-input').hasClass('hidden') && $('#filter-charts-type').val() && $('#filter-charts-type').val() != '') val++; if (!$('.charts-activities-input').hasClass('hidden') && $('#filter_charts_activities').val() && $('#filter_charts_activities').val() != '') val++; if (!$('.charts-objects-type-input').hasClass('hidden') && $('#filter-charts-objects-type').val() && $('#filter-charts-objects-type').val() != '') val++; if (!$('.charts-role-input').hasClass('hidden') && $('#filter_charts_rol').val() && $('#filter_charts_rol').val() != '') val++; if (!$('.charts-source-input').hasClass('hidden') && $('#filter_charts_source').val() && $('#filter_charts_source').val() != '') val++; if (!$('.charts-partner-input').hasClass('hidden') && $('#filter_charts_partner').val() && $('#filter_charts_partner').val() != '') val++; if (!$('.charts-funnel-input').hasClass('hidden') && $('#filter_charts_funnel').val() && $('#filter_charts_funnel').val() != '') val++; if (val > 0) { $(".search-query-item").show(); var text = val + " опции"; if (val == 1) text = val + " опция"; if (val > 4) text = val + " опций"; $(".search-query-item span").text(text); } else { $(".search-query-item").hide(); } } //Получение телефонии function getTelephony() { $('#date_tasks').hide(); localStorage['chartspage'] = 'telephony'; $('.view-charts').hide(); $('#export_stat_client').hide(); $('.view-table').hide(); /* $(document).ready(function() { //t.start(); el.start(); });*/ } //Запуск календаря function showCalendar(filter, type) { $('#date_tasks').hide(); //отключаем переключение на день switchToDayInTasks = false; if (filter) { $('#filter_task .filter-popup-type').removeClass('active'); $('#' + filter).addClass('active'); } if (type) { type_calendar = type; } setTimeout(function() { $('.jw__page__tabs a:eq(1)').click() }, 500); } //Запуск календаря объекта /*function showCalendarObject(filter) { if (filter) { $('#filter_task .filter-popup-type').removeClass('active'); $('#' + filter).addClass('active'); } setTimeout(function () { $('.tab:eq(3)').click() }, 500); }*/ //Получение фильтров function getParamsFilter() { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_activities = $('#filter_charts_activities').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var params = { dashboard: 'dashboard', period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities) } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); params.onDate = onDate; params.offDate = offDate; } return params; } function getHrefFiltr(partHref, params, onliReq) { var href = partHref; if (params.funnel && params.funnel != 'null' && params.funnel.length > 0) { href += "&funnelId=" + JSON.parse(params.funnel).join(','); } else { href += "&funnelId=all"; } if (params.responsible && params.responsible != '' && params.responsible != 'null') { href += '&responsible=' + JSON.parse(params.responsible).join(','); } if (onliReq) { if (params.source && params.source != '' && params.source != 'null') { href += '&source=' + JSON.parse(params.source).join(','); } if (params.charts_activities && params.charts_activities != '' && params.charts_activities != 'null') { href += '&activities=' + JSON.parse(params.charts_activities).join(','); } } if (params.partner && params.partner != '' && params.partner != 'null') { href += '&filter_partner=' + JSON.parse(params.partner).join(','); } return href; } //Для получение количества клиентов и задач function getDashboard(open) { $('#date_tasks').hide(); $('.clientreq').hide(); setSelectsFastselect('filter_charts_funnel', $('#filter_charts_funnel').val(), 'select_form_funnel.php', 'Воронка', 'client'); localStorage['chartspage'] = 'dashboard'; $('.view-charts').hide(); $('.view-table').hide(); $('#export_stat_client').hide(); var params = getParamsFilter(); // if(open != 1){ params.clients = 1; /*var html = '
'+ ''+ '
'; $('#widget_sales_plan').html(html);*/ $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); var href = getHrefFiltr("/clients.php?period=all", params, false); $(".dashboard-work a").attr("href", href); $('.dashboard-work .widget-number').text(res.count); }); // } params.clients = 0; params.events = 1; $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); $('.dashboard-tasks .widget-number').text(res.events); }); params.events = 0; params.events_old = 1; $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); $('#dashboard_overdue_tasks .widget-number').text(res.events_old); var html = '
' + '
' + '
Задач просрочено по клиентам
' + '
' + '
' + res.events_old + '
' + '
'; if (res.events_old > 0) { $('#dashboard_overdue_tasks').addClass('widget-colored').addClass('dashboard-overdue-tasks'); $('#dashboard_overdue_tasks').html( '
' + html + '' ); } else { $('#dashboard_overdue_tasks').removeClass('widget-colored').removeClass('dashboard-overdue-tasks'); $('#dashboard_overdue_tasks').html( html ); } }); params.events_old = 0; $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); var href_req = getHrefFiltr("/requisitions.php?period=all", params, true); var href_client_hit = getHrefFiltr("/clients.php?filter_stage=filter_stage_hit&period=" + params.period, params, false); var href_client_close = getHrefFiltr("/clients.php?filter_stage=filter_stage_close&period=" + params.period, params, false); var href_req_hit = getHrefFiltr("/requisitions.php?filter_stage=filter_stage_hit&period=" + params.period, params, true); var href_req_close = getHrefFiltr("/requisitions.php?filter_stage=filter_stage_close&period=" + params.period, params, true); $(".crm__widget.requisitions a").attr("href", href_req); $(".successful-clients a").attr("href", href_client_hit); $(".closed-clients a").attr("href", href_client_close); $(".successful-requisitions a").attr("href", href_req_hit); $(".closed-requisitions a").attr("href", href_req_close); $('.successful-clients .widget-number').text(res.successful_clients); $('.closed-clients .widget-number').text(res.closed_clients); $('.successful-requisitions .widget-number').text(res.successful_requisitions); $('.closed-requisitions .widget-number').text(res.closed_requisitions); $('.requisitions .widget-number').text(res.requisitions); $('.open-tasks-requisitions .widget-number').text(res.open_tasks_requisitions); $('#expired-tasks-requisitions .widget-number').text(res.expired_tasks_requisitions); $('.objects .widget-number').text(res.objects); $('.open-tasks-objects .widget-number').text(res.open_tasks_objects); $('#expired_tasks_objects .widget-number').text(res.expired_tasks_objects); $('.objects-advert .widget-number').text(res.objects_advert); $('#widget_sales_plan').html(res.html); if (res.expired_tasks_requisitions > 0) { $('#expired-tasks-requisitions').addClass('widget-colored').addClass('expired-tasks-requisitions'); $('#expired-tasks-requisitions').css('cursor', 'pointer'); $('#expired-tasks-requisitions').unbind('click'); $('#expired-tasks-requisitions').click(function() { showCalendar('overdue_tasks', 'req'); }); } else { $('#expired-tasks-requisitions').removeClass('widget-colored').removeClass('expired-tasks-requisitions'); $('#expired-tasks-requisitions').css('cursor', 'default'); $('#expired-tasks-requisitions').unbind('click'); } if (res.expired_tasks_objects > 0) { $('#expired_tasks_objects').addClass('widget-colored').addClass('expired-tasks-objects'); $('#expired_tasks_objects').css('cursor', 'pointer'); $('#expired_tasks_objects').unbind('click'); $('#expired_tasks_objects').click(function() { showCalendar('overdue_tasks', 'object'); }); } else { $('#expired_tasks_objects').removeClass('widget-colored').removeClass('expired-tasks-objects'); $('#expired_tasks_objects').css('cursor', 'default'); $('#expired_tasks_objects').unbind('click'); } }); var agency_id = $('#session_agency_id').val(); /* if(agency_id == 8867){ $('#expired_stages_clients .widget-number').html('Получить...'); $('#expired_stages_requisitions .widget-number').html('Получить...'); } else { */ // if(open != 1){ params.expired_stages_clients = 1; params.agency_id = $('#session_agency_id').val(); $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); $('#expired_stages_clients .widget-number').text(res.expired_stages_clients); if (res.expired_stages_clients > 0) { $('#expired_stages_clients').addClass('widget-colored').addClass('expired-stages-clients'); $('#expired_stages_clients').css('cursor', 'pointer'); $('#expired_stages_clients').unbind('click'); $('#expired_stages_clients').click(function() { var href_stage_client = getHrefFiltr("/clients.php?expired_stages=1", params, false); document.location.href = href_stage_client; }); } else { $('#expired_stages_clients').removeClass('widget-colored').removeClass('expired-stages-clients'); $('#expired_stages_clients').css('cursor', 'default'); $('#expired_stages_clients').unbind('click'); } }); // } params.expired_stages_clients = 0; // if(open != 1){ params.expired_stages_requisitions = 1; params.agency_id = $('#session_agency_id').val(); $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); $('#expired_stages_requisitions .widget-number').text(res.expired_stages_requisitions); if (res.expired_stages_requisitions > 0) { $('#expired_stages_requisitions').addClass('widget-colored').addClass('expired-stages-requisitions'); $('#expired_stages_requisitions').css('cursor', 'pointer'); $('#expired_stages_requisitions').unbind('click'); $('#expired_stages_requisitions').click(function() { var href_stage_req = getHrefFiltr("/requisitions.php?expired_stages=1", params, true); document.location.href = href_stage_req; }); } else { $('#expired_stages_requisitions').removeClass('widget-colored').removeClass('expired-stages-requisitions'); $('#expired_stages_requisitions').css('cursor', 'default'); $('#expired_stages_requisitions').unbind('click'); } }); // } // } //params.expired_stages_requisition = 0; } //Получение клиентов/заявок с просроченными этапами function getExpiredStages(type) { var params = getParamsFilter(); params.agency_id = $('#session_agency_id').val(); if (type == 'clients') { params.expired_stages_clients = 1; $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); $('#expired_stages_clients .widget-number').text(res.expired_stages_clients); if (res.expired_stages_clients > 0) { $('#expired_stages_clients').addClass('widget-colored').addClass('expired-stages-clients'); $('#expired_stages_clients').css('cursor', 'pointer'); $('#expired_stages_clients').unbind('click'); $('#expired_stages_clients').click(function() { var href_stage_client = getHrefFiltr("/clients.php?expired_stages=1", params, false); document.location.href = href_stage_client; }); } else { $('#expired_stages_clients').removeClass('widget-colored').removeClass('expired-stages-clients'); $('#expired_stages_clients').css('cursor', 'default'); $('#expired_stages_clients').unbind('click'); } }); } if (type == 'req') { params.expired_stages_clients = 0; params.expired_stages_requisitions = 1; $.ajax({ url: "/ajax/getCharts.php", method: "post", data: params, success: function(data) { var res = JSON.parse(data); $('#expired_stages_requisitions .widget-number').text(res.expired_stages_requisitions); if (res.expired_stages_requisitions > 0) { $('#expired_stages_requisitions').addClass('widget-colored').addClass('expired-stages-requisitions'); $('#expired_stages_requisitions').css('cursor', 'pointer'); $('#expired_stages_requisitions').unbind('click'); $('#expired_stages_requisitions').click(function() { var href_stage_req = getHrefFiltr("/requisitions.php?expired_stages=1", params, true); document.location.href = href_stage_req; }); } else { $('#expired_stages_requisitions').removeClass('widget-colored').removeClass('expired-stages-requisitions'); $('#expired_stages_requisitions').css('cursor', 'default'); $('#expired_stages_requisitions').unbind('click'); } }, error: function(jqXHR, textStatus, errorThrown) { var i = errorThrown; } }); } } function getCalendar(getCalendarParams = {}) { // needCalendarView = getCalendarParams._needCalendarView || null; $('#date_tasks').hide(); $('.clientreq').hide(); setSelectsFastselect('filter_charts_funnel', $('#filter_charts_funnel').val(), 'select_form_funnel.php', 'Воронка', 'client'); localStorage['chartspage'] = 'tasks'; var responsible = $('#ms-crm-charts-work').val(); var tasks = $('#filter_task .active').attr("id"); var charts_type = $('#filter-charts-type').val(); var charts_activities = $('#filter_charts_activities').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var period = $('#filter_time .active').attr("id"); $('.view-charts').hide(); $('.view-table').hide(); $('#export_stat_client').hide(); var params = { responsible: JSON.stringify(responsible), tasks: tasks, period: period, funnel: JSON.stringify(funnel), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val(), agency_id: $('#session_agency_id').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), source: JSON.stringify(source), partner: JSON.stringify(partner), charts_activities: JSON.stringify(charts_activities) } var queryParams = parseQueryString(window.location.search); if (queryParams) { if (queryParams.emp !== undefined) { params.emp = queryParams.emp; } } if (queryParams.type_calendar !== undefined) { params.type_calendar = queryParams.type_calendar; } else if (type_calendar) { params.type_calendar = type_calendar; type_calendar = null; } if (queryParams.step !== undefined) { params.step = queryParams.step; } if (queryParams.event !== undefined) { params.event = queryParams.event; } if (queryParams.funnelId !== undefined) { params.funnel = queryParams.funnelId; } var events = { url: '/ajax/calendarCharts.php', type: 'POST', data: params, error: function(dat) { console.log(dat.responseText); alert('there was an error while fetching events!'); }, success: function(dat) {} } var paramsCalendar = { locale: 'ru', editable: false, eventLimit: true, timeFormat: 'H:mm', titleFormat: 'D MMMM YYYY', defaultTimedEventDuration: '01:00:00', height: 'parent', events: events, eventClick: function(event) { if (event.object_id) { /*if (event.table_id) { updateEventState(event.table_id); }*/ openEventsWindow(event.object_id); } if (event.client_id) { if (event.table_id) { updateClientEventState(event.table_id); } if (event.client_id != 0) { openClientEventsWindowNew(event.client_id, $('#session_to_send').val()); } else if (event.req_id != 0) { openClientEventsWindowNew(0, $('#session_to_send').val(), 0, event.req_id); } else { openMes(event.table_id); } } if (event.employee_id) { openEmployeeInfoWindow(event.employee_id); } if (event.user_id) { openUserInfoWindow(event.user_id); } }, loading: (isLoading) => { if (isLoading) { $('.crm').append(`
`) } else { $('.crm .object-content__preloader').remove() } } }; var days = 30; var today = new Date(); var nowDate = deltaDate(today, -days, 0, 0); var oneDate = nowDate.getFullYear() + '-' + (nowDate.getMonth() + 1) + '-' + nowDate.getDate(); var todayMonth = '' + (today.getMonth() + 1); if (todayMonth.length == 1) { todayMonth = '0' + todayMonth; } days = diff_dates(nowDate.getDate() + '.' + (nowDate.getMonth() + 1) + '.' + nowDate.getFullYear(), today.getDate() + '.' + todayMonth + '.' + today.getFullYear()); switch (period) { case 'dates': { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); if (onDate != '') { var arrOneDate = onDate.split("."); oneDate = arrOneDate[2] + '-' + arrOneDate[1] + '-' + arrOneDate[0] + ' 00:00:00'; days = diff_dates(onDate, offDate); } break; } case 'week': { oneDate = getWeekDates(today); days = 7; break; } case 'today': { var d = today.getDate(); if (d <= 9) { d = '0' + d; } oneDate = today.getFullYear() + '-' + todayMonth + '-' + d; days = 1; break; } case 'month': { oneDate = today.getFullYear() + '-' + todayMonth + '-01'; days = daysInMonth((today.getMonth() + 1), today.getDate()); break; } case '30days': { oneDate = new Date(new Date().setDate(new Date().getDate() - 30)); days = 31; break; } case 'quarter': { days = 90; var tempMonth = '01'; var nowMonth = today.getMonth() + 1; if (nowMonth > 3 && nowMonth <= 6) { tempMonth = '04'; days = 91; } else if (nowMonth > 6 && nowMonth <= 9) { tempMonth = '07'; days = 92; } else if (nowMonth > 9 && nowMonth <= 12) { tempMonth = '10'; days = 92; } oneDate = nowDate.getFullYear() + '-' + tempMonth + '-01'; break; } case '90days': { var tempDate = new Date(new Date().setDate(new Date().getDate() - 90)); var tempMonth = '' + (tempDate.getMonth() + 1); if (tempMonth.length == 1) { tempMonth = '0' + tempMonth; } var tempDay = '' + tempDate.getDate(); if (tempDay.length == 1) { tempDay = '0' + tempDay; } oneDate = tempDate.getFullYear() + '-' + tempMonth + '-' + tempDay + ' 00:00:00'; days = 91; break; } case 'year': { //nowDate = deltaDate(today, -365, 0, 0); oneDate = today.getFullYear() + '-01-01'; days = diff_dates('01.01.' + today.getFullYear(), '31.12.' + today.getFullYear()); break; } case 'all': { //nowDate = deltaDate(today, -365, 0, 0); //nowDate = today.getFullYear()+'-'+todayMonth+'-'+(today.getDate()+1); /*oneDate = '01.01.2000'; days = diff_dates('01.01.2000', (today.getDate()+1)+'.'+todayMonth+'.'+today.getFullYear()); break;*/ oneDate = (today.getFullYear()-1) + '-01-01'; days = diff_dates('01.01.' + (today.getFullYear()-1), (today.getDate()+1)+'.'+todayMonth+'.'+today.getFullYear()); break; } default: { oneDate = today.getFullYear() + '-' + todayMonth + '-01'; days = diff_dates('01.01.' + today.getFullYear(), '31.12.' + today.getFullYear()); break; } } paramsCalendar.now = oneDate; if (needCalendarView === null) { paramsCalendar.defaultView = 'listFourDay'; needCalendarView = null; } else { paramsCalendar.defaultView = needCalendarView; } paramsCalendar.header = { left: 'prev,next today', center: 'title', right: 'listFourDay,month,agendaWeek,agendaDay' } paramsCalendar.views = { listFourDay: { type: 'list', duration: { days: days } } } if ($('#calendar ').hasClass('fc')) { $('#calendar').fullCalendar('destroy'); $('#calendar').fullCalendar('addEventSource', events) .off('click', '.fc-agendaWeek-button') .off('click', '.fc-agendaDay-button') .off('click', '.fc-month-button') .off('click', '.fc-listFourDay-button'); } $('#calendar').fullCalendar(paramsCalendar) .on('click', '.fc-agendaWeek-button', function() { needCalendarView = 'agendaWeek'; $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #week').addClass('active'); getCalendar(); }) .on('click', '.fc-agendaDay-button', function() { needCalendarView = 'agendaDay'; $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #today').addClass('active'); getCalendar(); }) .on('click', '.fc-month-button', function() { needCalendarView = 'month'; $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #month').addClass('active'); getCalendar(); }) .on('click', '.fc-listFourDay-button', function() { needCalendarView = 'listFourDay'; $('#filter_time .filter-popup-type').removeClass('active'); $('#filter_time #today').addClass('active'); getCalendar(); }) } function deltaDate(input, days, months, years) { var date = new Date(input); date.setDate(date.getDate() + days); date.setMonth(date.getMonth() + months); date.setFullYear(date.getFullYear() + years); return date; } function daysInMonth(month, year) { return new Date(year, month, 0).getDate(); } function diff_dates(onDate, offDate) { var a = new Date(); var b = new Date(); if (onDate != '') { var arrOneDate = onDate.split("."); b = new Date(arrOneDate[2], parseInt(arrOneDate[1]) - 1, arrOneDate[0]); } if (offDate != '') { var arrOfDate = offDate.split("."); a = new Date(arrOfDate[2], parseInt(arrOfDate[1]) - 1, arrOfDate[0]); } //var b = new Date(2010, 9, 1); var days = (a - b) / (60 * 60 * 24 * 1000); if (days < 0) days = 0; days = parseInt(days) + 1; return days; } function number_format(number, decimals, dec_point, thousands_sep) { number = (number + '').replace(/[^0-9+\-Ee.]/g, ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function(n, prec) { var k = Math.pow(10, prec); return '' + (Math.round(n * k) / k) .toFixed(prec); }; // Fix for IE parseFloat(0.55).toFixed(0) = 0; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) .split('.'); if (s[0].length > 3) { s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); } if ((s[1] || '') .length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1) .join('0'); } return s.join(dec); } function getStatsObjects() { $('#date_tasks').hide(); var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); $('.view-charts').hide(); $('.view-table').hide(); $('#export_stat_client').show(); var params = { stats: 'stats', period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }; if (period === 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); params.onDate = onDate; params.offDate = offDate; } /*$.post("/ajax/getObjectsStatistic.php", params, function(res){ console.log(res); });*/ localStorage['chartspage'] = 'objectsStat'; // if ($('#obj-stat-grid-full-header').length > 0) { // $("#obj-stat-grid-full").bootgrid("reload"); // } else { // $("#obj-stat-grid-full").bootgrid({ // rowCount: [-1], // sorting: false, // ajax: true, // selection: true, // rowSelect: true, // keepSelection: true, // grouping: true, // templates: { // search: "", // rawHeaderCell: "{{ctx.content}}" // }, // css: { // selected: 'row-selected' // }, // post: function() { // $('.object-content__preloader').show(); // $('.crm__stats_objects .grid_table').hide(); // $('.crm__stats_objects .first_column').hide(); // /* To accumulate custom parameter with the request object */ // return { // period: $('.filter-popup-type.period.active').attr('id'), // responsible: JSON.stringify($('#ms-crm-charts-work').val()), // user_id: $('#session_user_id').val(), // users_admin: $('#session_user_admin').val(), // onDate: $('#onDate').val(), // offDate: $('#offDate').val() // }; // }, // url: "/ajax/getObjectsStatistic.php", // /*responseHandler(res) { // console.log(res); // },*/ // formatters: { // toggleFormatter: function(column, row) { // return ``; // }, // "addedObj": function(column, row) { // if (row.added && row.added > 0) { // return '' + row.added + ''; // } else { // return '' + row.added + ''; // } // }, // "advInPeriodObj": function(column, row) { // if (row.adv_in_period && row.adv_in_period > 0) { // if (row.adv_in_period_and_sended && row.adv_in_period_and_sended > 0) { // return '' + row.adv_in_period + ' (' + row.adv_in_period_and_sended + ')' + ''; // } else { // return '' + row.adv_in_period + ''; // } // } else { // if (row.adv_in_period_and_sended && row.adv_in_period_and_sended > 0) { // return '' + row.adv_in_period + ' (' + row.adv_in_period_and_sended + ')' + ''; // } // return '' + row.adv_in_period + ''; // } // }, // "advBeforePeriodObj": function(column, row) { // if (row.adv_before_period && row.adv_before_period > 0) { // return '' + row.adv_before_period + ''; // } else { // return '' + row.adv_before_period + ''; // } // }, // "notAdvInPeriodObj": function(column, row) { // if (row.not_adv_in_period && row.not_adv_in_period > 0) { // return '' + row.not_adv_in_period + ''; // } else { // return '' + row.not_adv_in_period + ''; // } // }, // "advCostObj": function(column, row) { // if (row.adv_costs_period && row.adv_costs_period.split(" ").join("") > 0) { // return '' + row.adv_costs_period + ''; // } else { // return '' + row.adv_costs_period + ''; // } // }, // "advCostPromo": function(column, row) { // return '' + row.adv_costs_promo + ''; // }, // "advCostAvito": function(column, row) { // return '' + row.adv_costs_avito + ''; // }, // "advCostCian": function(column, row) { // return '' + row.adv_costs_cian + ''; // }, // "advCostDomclick": function(column, row) { // return '' + row.adv_costs_domclick + ''; // }, // "advCostJcat": function(column, row) { // return '' + row.adv_costs_jcat + ''; // }, // "advCostYandex": function(column, row) { // return '' + row.adv_costs_yandex + ''; // }, // "advCostZipal": function(column, row) { // return '' + row.adv_costs_zipal + ''; // }, // "requestsObj": function(column, row) { // if (row.requests && row.requests > 0 && row.requests_all && row.requests_all > 0) { // return '' + row.requests_all + '/' + row.requests + ''; // } else { // if (row.requests_all && row.requests_all > 0) { // return '' + row.requests_all + '/' + row.requests + ''; // } else { // if (row.requests && row.requests > 0) { // return '' + row.requests_all + '/' + row.requests + ''; // } else { // return '' + row.requests_all + '/' + row.requests + ''; // } // } // } // }, // "presentationsObj": function(column, row) { // if (row.presentation && row.presentation > 0) { // return '' + row.presentation + ''; // } else { // return '' + row.presentation + ''; // } // }, // "meetsObj": function(column, row) { // if (row.meet && row.meet > 0) { // return '' + row.meet + ''; // } else { // return '' + row.meet + ''; // } // }, // "taskNewObj": function(column, row) { // if (row.task_new && row.task_new > 0) { // return '' + row.task_new + ''; // } else { // return '' + row.task_new + ''; // } // }, // "taskOldObj": function(column, row) { // if (row.task_old && row.task_old > 0) { // return '' + row.task_old + ''; // } else { // return '' + row.task_old + ''; // } // }, // "taskSlungObj": function(column, row) { // if (row.task_slung && row.task_slung > 0) { // return '' + row.task_slung + ''; // } else { // return '' + row.task_slung + ''; // } // }, // "task": function(column, row) { // var tasks = (parseInt(row.task_new) + parseInt(row.task_old) + parseInt(row.task_slung)); // if (tasks && tasks > 0) { // return '' + tasks + ''; // } else { // return '' + tasks + ''; // } // //return ''+(parseInt(row.task_new) + parseInt(row.task_old) + parseInt(row.task_slung)) +''; // } // } // }).on("loaded.rs.jquery.bootgrid", function(e) { // $('.object-content__preloader').hide(); // $('.crm__stats_objects .grid_table').show(); // $('.crm__stats_objects .first_column').show(); // var html = ' tr:first-child th').each(function(index) { // if ($(this).data("columnId") == "fio") { // heigth = $(this).height() + 12; // width = $(this).width(); // html += 'style="width:' + width + 'px; height: ' + heigth + 'px;">'; // html += $(this).html(); // } // }); // html += ''; // html += ''; // $('#obj-stat-grid-full tbody > tr').each(function(index) { // //console.log($(this)); // html += '' + $(this).find('td.text-left').first().html() + ''; // }); // html += ''; // // console.log(html); // $("#obj-stat-grid").html(html); // $('#obj-stat-grid th').css("heigth", heigth + "px"); // $('#obj-stat-grid tr').on('click', function() { // var dataRowId = $(this).attr('data-row-id'); // $('#obj-stat-grid-full tbody > tr').each(function(index) { // if ($(this).attr('data-row-id') === dataRowId) { // $(this).trigger("click"); // } // }); // }); // $('#obj-stat-grid-full tbody > tr.row-selected').each(function(index) { // var dataRowId = $(this).attr('data-row-id'); // $('#obj-stat-grid tbody > tr').each(function(index) { // if ($(this).attr('data-row-id') === dataRowId) { // $(this).addClass('row-selected'); // } // }); // }); // $(".statsAddedObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'added', 1, true); // return false; // }); // $(".statsAdvInPeriodObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'advInPeriod', 1, true); // return false; // }); // $(".statsAdvBeforePeriodObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'advBeforePeriod', 1, true); // return false; // }); // $(".statsNotAdvInPeriodObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsNotAdvInPeriod', 1, true); // return false; // }); // $(".statsAdvCostObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsAdvCost', 1, true); // return false; // }); // $(".statsRequestsObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsRequests', 1, true); // return false; // }); // $(".statsRequestsUserObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsRequests', 1, true, userId); // return false; // }); // $(".statsPresentationsObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsPresentations', 1, true); // return false; // }); // $(".statsMeetsObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsMeets', 1, true); // return false; // }); // $(".statsTaskNewObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsTaskNew', 1, true); // return false; // }); // $(".statsTaskOldObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsTaskOld', 1, true); // return false; // }); // $(".statsTaskSlungObjectsLink").click(function(e) { // e.preventDefault(); // e.stopPropagation(); // var userId = $(this).attr('data-user-id'); // showObjectsTableWindow(userId, 'statsTaskSlung', 1, true); // return false; // }); // }).on("selected.rs.jquery.bootgrid", function(e) { // $('#obj-stat-grid tbody > tr').each(function(index) { // $(this).removeClass('row-selected'); // }); // $('#obj-stat-grid-full tbody > tr.row-selected').each(function(index) { // var dataRowId = $(this).attr('data-row-id'); // $('#obj-stat-grid tbody > tr').each(function(index) { // if ($(this).attr('data-row-id') === dataRowId) { // $(this).addClass('row-selected'); // } // }); // }); // }).on("deselected.rs.jquery.bootgrid", function(e) { // $('#obj-stat-grid tbody > tr').each(function(index) { // $(this).removeClass('row-selected'); // }); // }); var $table_obj = $('#obj-stat-grid-full'); $table_obj.bootstrapTable('destroy'); $table_obj.bootstrapTable({ formatColumnsToggleAll: function () { return 'Выбрать все' }, // treeShowField: 'fio', // parentIdField: 'pid', treeEnable: true, onPostBody: function() { $table_obj.closest(".fixed-table-container.fixed-height.has-footer").css("overflow", "hidden") var columns = $table_obj.bootstrapTable('getOptions').columns if (columns && columns[0][0].visible) { $table_obj.treegrid({ initialState: 'expanded', onChange: function() { $table_obj.bootstrapTable('resetView') } }) } }, onLoadSuccess: function() { $("#table-sources-keep-selection-fixed").hide(); $('#obj-stat-grid-full').closest(".fixed-table-body").unbind("mouseup"); $('#obj-stat-grid-full').closest(".fixed-table-body").unbind("mousedown"); setTimeout(function() { var th = $('#obj-stat-grid-full thead th'); for (var i = 0; i < th.length; i++) { var width = $(th[i]).find('.fht-cell').width(); $('#stats_sources_list .fixed-table-header th').eq(i).find('.fht-cell').width(width); $('#obj-stat-grid-full thead th').eq(i).find('.fht-cell').width(width); } }, 500); const withoutFields = ['fio', 'adv_costs', 'tasks']; // Split the string into an array of columns to show const columnsToShow = columnsShow.split(',').map(column => column.trim()); // Get all columns currently in the table const allColumns = $table_obj.bootstrapTable('getOptions').columns; // Flatten the column array to extract field names const allFieldNames = allColumns.flat().filter(col => !withoutFields.includes(col.field)).map(col => col.field); // Determine which columns need to be hidden const columnsToHide = allFieldNames.filter(field => !columnsToShow.includes(field)); $('#stats_sources_list-obj-stat-grid').find('.toggle-all') .prop('checked', true); // Hide the other columns if (columnsToHide.length && columnsToShow.length) { $('#stats_sources_list-obj-stat-grid').find('.toggle-all') .prop('checked', false); columnsToHide.forEach(column => { if (allFieldNames.includes(column)) { $('#stats_sources_list-obj-stat-grid').find(`[data-field="${column}"]`) .prop('checked', false); $table_obj.bootstrapTable('hideColumn', column); } else { console.warn(`Column ${column} does not exist in table`); // Warning } }); } // Show the other columns if (columnsToShow.length) { columnsToShow.forEach(column => { if (allFieldNames.includes(column)) { $('#stats_sources_list-obj-stat-grid').find(`[data-field="${column}"]`) .prop('checked', true); $table_obj.bootstrapTable('showColumn', column); } else { console.warn(`Column ${column} does not exist in table`); // Warning } }); } $('#obj-stat-grid-full').closest(".fixed-table-body").css("cursor", "grab"); $('#obj-stat-grid-full').closest(".fixed-table-body").mousedown(function() { $(this).css("cursor", "grabbing"); }); $('#obj-stat-grid-full').closest(".fixed-table-body").mouseup(function() { $(this).css("cursor", "grab"); }); $('#obj-stat-grid-full').closest(".fixed-table-body").addClass("dragscroll"); dragscroll.reset(); $('#stats_sources_list-obj-stat-grid .dropdown-item input').change(function() { $("#table-sources-keep-selection-fixed").hide(); setTimeout(function() { var th = $('#obj-stat-grid-full thead th'); for (var i = 0; i < th.length; i++) { var width = $(th[i]).find('.fht-cell').width(); $('#stats_sources_list-obj-stat-grid .fixed-table-header th').eq(i).find('.fht-cell').width(width); $('#obj-stat-grid-full thead th').eq(i).find('.fht-cell').width(width); } }, 500); }); $("body").on("click", ".statsObjectsFooter", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); var field = $(this).attr('data-fields'); var type_field = null; console.log(field); switch (field){ case 'added' : { type_field = 'added'; break; } case 'adv_in_period' : { type_field = 'advInPeriod'; break; } case 'adv_before_period' : { type_field = 'advBeforePeriod'; break; } case 'not_adv_in_period' : { type_field = 'statsNotAdvInPeriod'; break; } case 'adv_costs_period' : { type_field = 'statsAdvCost'; break; } case 'presentation' : { type_field = 'statsPresentations'; break; } } if(type_field !== null) return showObjectsTableWindow(userId, type_field, 1, true); return false; }); $("body").on("click", ".statsAddedObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'added', 1, true); }); $("body").on("click", ".statsAdvInPeriodObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'advInPeriod', 1, true); }); $("body").on("click", ".statsAdvBeforePeriodObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'advBeforePeriod', 1, true); }); $("body").on("click", ".statsNotAdvInPeriodObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsNotAdvInPeriod', 1, true); }); $("body").on("click", ".statsAdvCostObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsAdvCost', 1, true); }); $("body").on("click", ".statsRequestsObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsRequests', 1, true); }); $("body").on("click", ".statsRequestsUserObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsRequests', 1, true, userId); }); $("body").on("click", ".statsPresentationsObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsPresentations', 1, true); }); $("body").on("click", ".statsMeetsObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsMeets', 1, true); }); $("body").on("click", ".statsTaskNewObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsTaskNew', 1, true); }); $("body").on("click", ".statsTaskOldObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsTaskOld', 1, true); }); $("body").on("click", ".statsTaskSlungObjectsLink", function(e) { e.preventDefault(); e.stopPropagation(); var userId = $(this).attr('data-user-id'); return showObjectsTableWindow(userId, 'statsTaskSlung', 1, true); }); }, onLoadError: function(status, res) { console.error('Error loading table data:', status, res); }, onColumnSwitch: function (index, row) { setTimeout(() => { if ($('.dragscroll') && $('.dragscroll')[0] && $('.dragscroll')[0].scrollLeft) { $('.dragscroll').scrollTop($('.dragscroll')[0].scrollLeft); } }, 500) }, onSort: function() { if ($('.dragscroll') && $('.dragscroll')[0] && $('.dragscroll')[0].scrollLeft) { $('.dragscroll').scrollTop($('.dragscroll')[0].scrollLeft); } } }); // } $('.crm__stats_objects').removeClass('hidden'); } function showObjectsTableWindow(userId, type, page, showWindow, respUserId = null) { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); if (!responsible) { responsible = respUserId; } if (!userId || userId === null) { userId = $('#obj_table_stat_user_id').val(); } if (!type || type === null) { type = $('#obj_table_stat_type').val(); } var params = { stats: 'stats', period: period, responsible: JSON.stringify(responsible), userId: userId, page: page, type: type, user_id: $('#session_user_id').val(), users_admin: $('#session_user_admin').val() }; if (period === 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); params.onDate = onDate; params.offDate = offDate; } if (showWindow) { $("#stats_objects_list__bg").fadeIn(500); $("#stats_objects_list").fadeIn(500); $("body").addClass("lock"); } $("#stats_objects_list").html('
'); fetchObjectsTableStats(params, userId, type) } let currentAjaxRequest = null; // Variable to store the current AJAX request function fetchObjectsTableStats(params, userId, type) { console.log(params); // Abort the previous request if it exists if (currentAjaxRequest) { currentAjaxRequest.abort(); } // Start a new AJAX request and store it in `currentAjaxRequest` currentAjaxRequest = $.ajax({ url: '/ajax/getObjectsTableStats.php', method: "post", data: params, success: function(data) { // console.log(data); // Clear the jqXHR reference after request is done currentAjaxRequest = null; // Update DOM elements with the data $('#obj_table_stat_user_id').val(userId); $('#obj_table_stat_type').val(type); $("#stats_objects_list").html(data); // Reinitialize dropdown if necessary $('.dropdown-toggle').dropdown(); }, error: function(jqXHR, textStatus) { if (textStatus === 'abort') { console.log('Previous request was aborted'); } else { console.error('AJAX request failed:', textStatus); } currentAjaxRequest = null; // Clear jqXHR reference on error as well } }); } function ajaxRequest(params) { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var charts_activities = $('#filter_charts_activities').val(); var client_req = $('#filter-clientreq').val(); var pr = { //stats: 'stats', period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), users_admin: $('#session_user_admin').val(), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities), client_req: client_req, } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); pr.onDate = onDate; pr.offDate = offDate; } var url = "/ajax/stat_funnel.php" $.post(url, pr, function(res) { //console.log(res); params.success(JSON.parse(res)) }) } function ajaxRequestSource(params) { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var charts_activities = $('#filter_charts_activities').val(); var client_req = $('#filter-clientreq').val(); var pr = { //stats: 'stats', period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), users_admin: $('#session_user_admin').val(), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities), client_req: client_req, } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); pr.onDate = onDate; pr.offDate = offDate; } var url = "/ajax/stat_sources.php" $.post(url, pr, function(res) { params.success(JSON.parse(res)) }) } function ajaxRequestSalesPlan(params) { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var charts_activities = $('#filter_charts_activities').val(); var client_req = $('#filter-clientreq').val(); var pr = { //stats: 'stats', period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), users_admin: $('#session_user_admin').val(), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities), client_req: client_req, } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); pr.onDate = onDate; pr.offDate = offDate; } var url = "/ajax/stat_sales_plan.php" $.post(url, pr, function(res) { params.success(JSON.parse(res)) }) } function ajaxRequestStatisticsObjects(params) { var period = $('.filter-popup-type.period.active').attr('id'); var responsible = $('#ms-crm-charts-work').val(); var charts_type = $('#filter-charts-type').val(); var charts_objects_type = $('#filter-charts-objects-type').val(); var priority1, priority2, priority3, priority4; if ($('.filter-priority1').hasClass('active')) { priority1 = 1; } if ($('.filter-priority2').hasClass('active')) { priority2 = 1; } if ($('.filter-priority3').hasClass('active')) { priority3 = 1; } if ($('.filter-priority4').hasClass('active')) { priority4 = 1; } var charts_rol = $('#filter_charts_rol').val(); var source = $('#filter_charts_source').val(); var partner = $('#filter_charts_partner').val(); var funnel = $('#filter_charts_funnel').val(); var charts_activities = $('#filter_charts_activities').val(); var client_req = $('#filter-clientreq').val(); var pr = { //stats: 'stats', period: period, responsible: JSON.stringify(responsible), user_id: $('#session_user_id').val(), charts_type: JSON.stringify(charts_type), charts_objects_type: JSON.stringify(charts_objects_type), priority1: JSON.stringify(priority1), priority2: JSON.stringify(priority2), priority3: JSON.stringify(priority3), priority4: JSON.stringify(priority4), charts_rol: JSON.stringify(charts_rol), users_admin: $('#session_user_admin').val(), source: JSON.stringify(source), partner: JSON.stringify(partner), funnel: JSON.stringify(funnel), charts_activities: JSON.stringify(charts_activities), client_req: client_req, } if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); pr.onDate = onDate; pr.offDate = offDate; } var url = "/ajax/stat_objects.php" $.post(url, pr, function(res) { console.log(res); params.success(JSON.parse(res)) }) .fail(function(jqXHR, textStatus, errorThrown) { console.log('AJAX error:', textStatus, errorThrown); }); } function cellStyle(value, row, index) { return { css: { color: '#000', } } } function cellStyleForObject() { return { css: { color: '#000', } } } function workdoDetailFormatter(value, row) { //return value + '. Item ID: ' + row.id var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = '0'; if (value !== undefined) { tr = `' + value.total + ''; } return tr; } function workaddDetailFormatter(value, row) { var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = '0'; if (value !== undefined) { var tr = '' + value + ''; } return tr; } function workleftDetailFormatter(value, row) { var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = '0'; if (value !== undefined) { var tr = '' + value.total + ''; } return tr; } function allDetailFormatter(value, row) { var arrColumn = this.field.split("_"); var step = arrColumn[2]; var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = '0'; if (value !== undefined) { var tr = `' + value.total + ''; } return tr; } function transmittedftDetailFormatter(value, row) { var arrColumn = this.field.split("_"); var step = arrColumn[1]; var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = '0'; if (value !== undefined) { var tr = '' + value.total + ''; } return tr; } function acceptedDetailFormatter(value, row) { var arrColumn = this.field.split("_"); var step = arrColumn[1]; var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = '0'; if (value !== undefined) { var tr = '' + value.total + ''; } return tr; } function taskDetailFormatter(value, row) { var arrColumn = this.field.split("_"); var taskOld = 0; var taskNew = 0; var taskSlung = 0; var taskCancel = 0; var step = arrColumn[1]; //console.log(row); if (row[arrColumn[0]]) { if (row[arrColumn[0]][arrColumn[1]].task_old) taskOld = row[arrColumn[0]][arrColumn[1]].task_old; if (row[arrColumn[0]][arrColumn[1]].task_new) taskNew = row[arrColumn[0]][arrColumn[1]].task_new; if (row[arrColumn[0]][arrColumn[1]].task_slung) taskSlung = row[arrColumn[0]][arrColumn[1]].task_slung; if (row[arrColumn[0]][arrColumn[1]].task_cancel) taskCancel = row[arrColumn[0]][arrColumn[1]].task_cancel; } var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr_old = '' + taskOld + ''; tr_new += '&period=' + period + '&step=' + step + '" target="_blank">' + taskNew + ''; tr_slung += '&period=' + period + '&step=' + step + '" target="_blank">' + taskSlung + ''; var tr = tr_new + '/' + tr_slung + '/' + tr_old + '/' + taskCancel; return tr; } function footerTaskDetailFormatter(value, row) { var arrColumn = this.field.split("_"); var taskOld = 0; var taskNew = 0; var taskSlung = 0; var taskCancel = 0; var step = arrColumn[1]; if (row[arrColumn[0]]) { if (row[arrColumn[0]][arrColumn[1]].task_old) taskOld = row[arrColumn[0]][arrColumn[1]].task_old; if (row[arrColumn[0]][arrColumn[1]].task_new) taskNew = row[arrColumn[0]][arrColumn[1]].task_new; if (row[arrColumn[0]][arrColumn[1]].task_slung) taskSlung = row[arrColumn[0]][arrColumn[1]].task_slung; if (row[arrColumn[0]][arrColumn[1]].task_cancel) taskCancel = row[arrColumn[0]][arrColumn[1]].task_cancel; } var funnel = false; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr_old = '' + taskOld + ''; tr_new += '&period=' + period + '&step=' + step + '" target="_blank">' + taskNew + ''; tr_slung += '&period=' + period + '&step=' + step + '" target="_blank">' + taskSlung + ''; var tr = tr_new + '/' + tr_slung + '/' + tr_old + '/' + taskCancel; return tr; } function linkSorter(a, b) { const num_A = parseFloat(a); const num_B = parseFloat(b); if (!isNaN(num_A) && !isNaN(num_B)) { return num_A - num_B; } else { // Extract the text content from tags for comparison const textA = $("
").html(a).find("a").text().toUpperCase(); const textB = $("
").html(b).find("a").text().toUpperCase(); // Check if values are numeric const numA = parseFloat(textA); const numB = parseFloat(textB); // Compare as numbers if both are valid numbers if (!isNaN(numA) && !isNaN(numB)) { return numA - numB; } // Otherwise, compare as strings if (textA < textB) return -1; if (textA > textB) return 1; } return 0; } function salesPlanSorter(a, b) { let num_A = parseFloat(a); let num_B = parseFloat(b); if (!isNaN(num_A) && !isNaN(num_B)) { num_A = parseFloat(a.toString().replace(/\s+/g, '')); num_B = parseFloat(b.toString().replace(/\s+/g, '')); return num_A - num_B; } return 0; } function ObjectSorter(a, b) { const num_A = parseFloat(a); const num_B = parseFloat(b); if (!isNaN(num_A) && !isNaN(num_B)) { return num_A - num_B; } else { // Extract the text content from tags for comparison const textA = a.match(/data-val="([^"]*)"/); const textB = b.match(/data-val="([^"]*)"/); // Check if values are numeric const numA = parseFloat(textA[1]); const numB = parseFloat(textB[1]); // Compare as numbers if both are valid numbers if (!isNaN(numA) && !isNaN(numB)) { return numA - numB; } // Otherwise, compare as strings if (textA < textB) return -1; if (textA > textB) return 1; } return 0; } function callsSourcesFormatter(value, row) { var funnel = 'all'; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = `' + value + ''; return tr; } function workSourcesFormatter(value, row) { var funnel = 'all'; var period = $('.filter-popup-type.period.active').attr('id'); var responsible = ''; if ($('#ms-crm-charts-work').val()) { responsible = $('#ms-crm-charts-work').val(); } if ($('#filter_charts_funnel').val() && $('#filter_charts_funnel').val().length == 1) { funnel = $('#filter_charts_funnel').val()[0]; } var tr = `' + value + ''; return tr; } function getStatFunnelFixet() { var table = $('#table-funnel-keep-selection'); var thead = ''; //$("#table-funnel-keep-selection").closest(".fixed-table-body").unbind('scroll'); var th = $(table).find('thead th').eq(0).html(); var height = $(table).find('thead').height() - 1; thead += th; thead += ''; var body = ''; $("#table-funnel-keep-selection-fixed thead").html('' + th + ''); // var top = $("#stats_funnel_list .fixed-table-container").eq(1).position().top; // $("#table-funnel-keep-selection-fixed").css("top", top + "px"); var tbody = $("#table-funnel-keep-selection tbody tr"); for (var i = 0; i < tbody.length; i++) { body += ''; body += ''; body += $(tbody[i]).find('td').eq(0).html(); body += ''; } $("#table-funnel-keep-selection-fixed tbody").html(body); var iht = 17; /*if(!isNaN(parseInt($(".fixed-table-header").css("marginRight")))){ int = parseInt($(".fixed-table-header").css("marginRight")); }*/ var ht = $("#table-funnel-keep-selection").closest(".fixed-table-body").height(); ht = ht - iht; $("#table-funnel-keep-selection-fixed .fixed-table-body").height(ht).css("overflow", "hidden"); $("#table-funnel-keep-selection").closest(".fixed-table-body").scroll(function() { var scrolltop = $(this).scrollTop(); $("#table-funnel-keep-selection-fixed .fixed-table-body").scrollTop(scrolltop); }); $("#table-funnel-keep-selection-fixed").show(); } function loadingTemplate() { return 'Пожалуйста подождите, мы готовим для вас отчет. '; } var scroll_timer = null; function showFunnelStat() { $("#stats_funnel_list__bg").fadeIn(500); $("#stats_funnel_list").fadeIn(10); $("body").addClass("lock"); var funnel = $('#filter_charts_funnel').val(); var pr = { funnel: JSON.stringify(funnel), agency_id: $('#session_agency_id').val() } let rowCount = 0; $.post('/ajax/getGridTableFunnel.php', pr, function(data) { $("#stats_funnel_list").html(data); var $table = $('#table-funnel-keep-selection'); // Only initialize if not already initialized if (!$table.data('initialized')) { $table.bootstrapTable({ formatColumnsToggleAll: function() { return 'Выбрать все'; }, /*fixedColumns: true, fixedNumber: 1,*/ onLoadSuccess: function(data) { rowCount = data.rows.length; updateContainerHeight(); // Apply custom drag functionality setupDragScrolling(); // Fix column widths setTimeout(updateColumnWidths, 500); }, onColumnSwitch: function() { fixed(); }, onSort: function() { fixed(); }, onPageChange: function() { fixed(); }, onRefresh: function() { // Apply custom drag functionality setupDragScrolling(); setTimeout(updateContainerHeight, 0); // Fix column widths setTimeout(updateColumnWidths, 500); setTimeout(function() { const tableBodyDragscroll = $('.table-funnel-keep-selection-dragscroll'); let maxScrollLeft = tableBodyDragscroll[0].scrollWidth - tableBodyDragscroll[0].clientWidth; if (maxScrollLeft != tableBodyDragscroll.scrollLeft()) { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() + 1); } else { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() - 1); } tableBodyDragscroll.scrollTop(tableBodyDragscroll.scrollTop() + 1); }, 1000); // Adjust the timeout duration as needed }, onScrollBody: function() { clearTimeout(scroll_timer); scroll_timer = setTimeout(() => updateColumnWidths(), 2000); } }); // Mark as initialized $table.data('initialized', true); } }); $(document).on('change', '.toggle-all', function() { fixed(); }) function escapeSelector(selector) { // Escape special characters for jQuery selectors return selector .replace(/\//g, '_') // Replace '/' with '_' .replace(/([#.:,+~>\*\[\]()"'\\])/g, '\\$1') // Escape characters like #, ., :, (, ), etc. .replace(/\s+/g, '.') // Replace spaces with dots .replace(/\\/g, '\\\\'); } function setupDragScrolling() { var $dragArea = $("#table-funnel-keep-selection").closest(".fixed-table-body"); $dragArea.unbind("mouseup mousedown").css("cursor", "grab") .mousedown(function() { $(this).css("cursor", "grabbing"); }) .mouseup(function() { $(this).css("cursor", "grab"); }) .addClass("dragscroll table-funnel-keep-selection-dragscroll"); if (typeof dragscroll !== 'undefined') { dragscroll.reset(); } } function updateContainerHeight() { $('.fixed-table-container.fixed-height.has-footer').css({ height: (rowCount >= 8 ? '490px' : 'auto'), paddingBottom: (rowCount >= 8 ? '180px' : 0) }); $('.fixed-table-border').css('height', 0) $('.fixed-table-loading').css('height', 'unset') } function updateColumnWidths() { var th = $('#table-funnel-keep-selection thead th'); //console.log(th); th.each(function(i) { var element = $(this).find('.fht-cell')[0]; var width = parseFloat(window.getComputedStyle(element).width); const classes = `.${escapeSelector($(th[i]).attr('class'))}`; //var class = $(th[i]).attr('class'); //console.log(classes); $('#stats_funnel_list .fixed-table-header th').eq(i).find('.fht-cell').css('width', width + 'px'); $('#stats_funnel_list .fixed-table-footer '+classes+' .fht-cell').css('width', width + 'px'); }); // getStatFunnelFixet(); } function fixed() { // Apply custom drag functionality setupDragScrolling(); setTimeout(updateContainerHeight, 0); // Fix column widths setTimeout(updateColumnWidths, 500); // Delay scroll to ensure table updates first setTimeout(function() { const tableBodyDragscroll = $('.table-funnel-keep-selection-dragscroll'); let maxScrollLeft = tableBodyDragscroll[0].scrollWidth - tableBodyDragscroll[0].clientWidth; if (maxScrollLeft != tableBodyDragscroll.scrollLeft()) { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() + 1); } else { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() - 1); } tableBodyDragscroll.scrollTop(tableBodyDragscroll.scrollTop() + 1); }, 100); // Adjust the timeout duration as needed } } function hideFunnelStat() { $("#stats_funnel_list__bg").fadeOut(500); $("#stats_funnel_list").toggle(10); $("body").removeClass("lock"); } //Статистика по рекламным источникам function showSourcesStat() { $("#stats_sources_list__bg").fadeIn(500); $("#stats_sources_list").fadeIn(10); $("body").addClass("lock"); var sources = $('#filter_charts_source').val(); var pr = { sources: JSON.stringify(sources), agency_id: $('#session_agency_id').val() } let rowCount = 0; $.post('/ajax/getGridTableSources.php', pr, function(data) { $("#stats_sources_list").html(data); var $table_sources = $('#table-sources-keep-selection'); // Only initialize if not already initialized if (!$table_sources.data('initialized')) { $table_sources.bootstrapTable({ formatColumnsToggleAll: function () { return 'Выбрать все' }, treeShowField: 'source', parentIdField: 'pid', onPostBody: function() { var columns = $table_sources.bootstrapTable('getOptions').columns if (columns && columns[0][0].visible) { $table_sources.treegrid({ initialState: 'expanded', onChange: function() { $table_sources.bootstrapTable('resetView') } }) } }, onLoadSuccess: function(data) { rowCount = data.length; updateContainerHeight(); // Set cursor styles and drag scrolling setupDragScrolling(); // Update column widths setTimeout(updateColumnWidths, 500); }, onColumnSwitch: function(index, row) { fixed(); }, onScrollBody: function(el) { var scrollTop = $(el).scrollTop(); $("#table-sources-keep-selection-fixed .fixed-table-body").scrollTop(scrollTop); }, onSort: function() { fixed(); }, onRefresh: function() { // Apply custom drag functionality setupDragScrolling(); setTimeout(updateContainerHeight, 0); // Fix column widths setTimeout(updateColumnWidths, 500); setTimeout(function() { const tableBodyDragscroll = $('.table-sources-keep-selection-dragscroll'); let maxScrollLeft = tableBodyDragscroll[0].scrollWidth - tableBodyDragscroll[0].clientWidth; if (maxScrollLeft != tableBodyDragscroll.scrollLeft()) { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() + 1); } else { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() - 1); } tableBodyDragscroll.scrollTop(tableBodyDragscroll.scrollTop() + 1); }, 200); // Adjust the timeout duration as needed } }); // Mark as initialized $table_sources.data('initialized', true); } }); $(document).on('change', '.toggle-all', function() { fixed(); }) function escapeSelector(selector) { // Escape special characters for jQuery selectors return selector .replace(/\//g, '_') // Replace '/' with '_' .replace(/([#.:,+~>\*\[\]()"'\\])/g, '\\$1') // Escape characters like #, ., :, (, ), etc. .replace(/\s+/g, '.') // Replace spaces with dots .replace(/\\/g, '\\\\'); } function setupDragScrolling() { var $dragArea = $("#table-sources-keep-selection").closest(".fixed-table-body"); $dragArea.unbind("mouseup mousedown").css("cursor", "grab") .mousedown(function() { $(this).css("cursor", "grabbing"); }) .mouseup(function() { $(this).css("cursor", "grab"); }) .addClass("dragscroll table-sources-keep-selection-dragscroll"); if (typeof dragscroll !== 'undefined') { dragscroll.reset(); } } function updateContainerHeight() { $('.fixed-table-container.fixed-height.has-footer').css({ height: (rowCount >= 8 ? '490px' : 'auto'), paddingBottom: (rowCount >= 8 ? '180px' : 0) }); $('.fixed-table-border').css('height', 0) $('.fixed-table-loading').css('height', 'unset') } function updateColumnWidths() { var th = $('#table-sources-keep-selection thead th'); th.each(function(i) { var element = $(this).find('.fht-cell')[0]; var width = parseFloat(window.getComputedStyle(element).width); const classes = `.${escapeSelector($(th[i]).attr('class'))}`; $('#stats_sources_list .fixed-table-header th').eq(i).find('.fht-cell').css('width', width + 'px'); $(`#stats_sources_list .fixed-table-footer th${classes}`).eq(i).find('.fht-cell').css('width', width + 'px'); }); getStatFunnelFixet(); } function fixed() { // Apply custom drag functionality setupDragScrolling(); setTimeout(updateContainerHeight, 0); // Fix column widths setTimeout(updateColumnWidths, 500); // Delay scroll to ensure table updates first setTimeout(function() { const tableBodyDragscroll = $('.table-sources-keep-selection-dragscroll'); let maxScrollLeft = tableBodyDragscroll[0].scrollWidth - tableBodyDragscroll[0].clientWidth; if (maxScrollLeft != tableBodyDragscroll.scrollLeft()) { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() + 1); } else { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() - 1); } tableBodyDragscroll.scrollTop(tableBodyDragscroll.scrollTop() + 1); }, 100); // Adjust the timeout duration as needed } } function hideSourcesStat() { $("#stats_sources_list__bg").fadeOut(500); $("#stats_sources_list").toggle(10); $("body").removeClass("lock"); } function sourceFormatter(val) { return '
' + val + '
'; } function getStatSourcesFixet() { $("#table-sources-keep-selection-fixed .treegrid-expander").unbind("click"); var table = $('#table-sources-keep-selection'); var thead = ''; //$("#table-funnel-keep-selection").closest(".fixed-table-body").unbind('scroll'); var th = $(table).find('thead th').eq(0).html(); var height = $(table).find('thead').height(); thead += th; thead += ''; var body = ''; $("#table-sources-keep-selection-fixed thead").html('' + th + ''); // var top = $("#stats_sources_list .fixed-table-container").eq(1).position().top; // $("#table-sources-keep-selection-fixed").css("top", top + "px"); var tbody = $("#table-sources-keep-selection tbody tr"); for (var i = 0; i < tbody.length; i++) { var classtr = $(tbody[i]).attr("class"); var data_index = $(tbody[i]).attr("data-index"); var styletr = ''; if ($(tbody[i]).attr("style")) { styletr = $(tbody[i]).attr("style"); } body += '', '').replace('', '').replace(/ /g, ''); if (!isNaN(parseInt(row))) { summa += parseInt(row); } } return summa.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 '); } function footerPriceFormatter(data) { let summa = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; if (!isNaN(parseInt(val))) { summa += parseInt(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseInt(val[1]))) { summa += parseInt(val[1]) } } } return summa; } function footerPriceFormatterForObject(data) { let summa = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; if (val && !isNaN(parseInt(val))) { summa += parseInt(val); } else if (val) { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseInt(val[1]))) { summa += parseInt(val[1]) } } } var a = ''+summa+''; return a; } function footerPriceBySlashFormatterForObject(data) { let summa = 0; let existSlash = false; let totalNumerator = 0; let totalDenominator = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; val = val.match(/data-val="([^"]*)"/) if (val && val[1] && val[1].includes('/')) { existSlash = true; const [numerator, denominator] = val[1].split('/').map(part => part.replace(/\s+/g, '')); if (numerator || denominator) { // Convert to numbers and add to totals totalNumerator += Number(numerator); totalDenominator += Number(denominator); } } else if (val && !isNaN(parseFloat(val))) { summa += parseFloat(val); } } if (existSlash) { return `${totalNumerator}/${totalDenominator}`; } return summa; } function priceFormaterrForSources(data) { let summa = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; val = $("
").html(val).find("a").attr("data-val") if (val) { summa += parseFloat(val); } } return summa; } function priceBySlashFormaterrForSources(data) { let summa = 0; let existSlash = false; let totalNumerator = 0; let totalDenominator = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; val = $("
").html(val).find("a").attr("data-val") if (val && val.includes('/')) { existSlash = true; const [numerator, denominator] = val.split('/').map(part => part.replace(/\s+/g, '').trim()); // Convert to numbers and add to totals totalNumerator += Number(numerator); totalDenominator += Number(denominator); } else if (val && !isNaN(parseFloat(val))) { summa += parseFloat(val); } } if (existSlash) { return `${totalNumerator}/${totalDenominator}`; } return summa; } function procentFormated(data) { var summa = 0; var summa2 = 0; var field = this.field; var f1 = ''; var f2 = ''; if (field == "real_pr") { f1 = 'summa_commission'; f2 = 'real_summa_commission'; } else { var index = field.replace("real_pr_", ""); f1 = 'summa_commission_' + index; f2 = 'real_summa_commission_' + index; } if (f1 != '') { for (var i = 0; i < data.length; i++) { var row = data[i][f1].toString().replace('', '').replace('', '').replace(/ /g, ''); if (!isNaN(parseInt(row))) { summa += parseInt(row); } var row = data[i][f2].toString().replace('', '').replace('', '').replace(/ /g, ''); if (!isNaN(parseInt(row))) { summa2 += parseInt(row); } } } var procent = 0; if (summa > 0 && summa2 > 0) { procent = Math.ceil(summa2 / summa * 100); } else if (summa == 0 && summa2 > 0) { procent = 100; } return procent + "%"; } function procentFormaterrForFunnel(data) { let summa = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; if (!isNaN(parseFloat(val))) { summa += parseFloat(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseFloat(val[1]))) { summa += parseFloat(val[1]) } } } return summa.toFixed(2) + "%"; } function procentFormaterrForFunnelConv(data) { let work_next_step = 0; let work_add = 0; let field = this.field; var summa = 0; var step = field.replace('conversion_', '').replace('conversionclosest_', ''); var arrField = field.split('_'); var name_field = ''; if(arrField[0] && arrField[1]){ name_field = arrField[0]; step = arrField[1]; } for (let i = 0; i < data.length; i++) { let val = data[i]['work_next_step_'+step]; if(name_field == 'conversionclosest'){ val = data[i]['closest_' + step + '_all']; } let val2 = data[i]['work']; if (!isNaN(parseFloat(val))) { work_next_step += parseFloat(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseFloat(val[1]))) { work_next_step += parseFloat(val[1]) } } if (!isNaN(parseFloat(val2))) { work_add += parseFloat(val2); } else { val2 = val2.match(/data-val="([^"]*)"/); if (val2 && val2[1] && !isNaN(parseFloat(val2[1]))) { work_add += parseFloat(val2[1]) } } } if(work_add > 0){ summa = (work_next_step/work_add) * 100; } //return work_add; return summa.toFixed(2) + "%"; } function procentFormaterrForFunnelConvPole(data){ let work_next_step = 0; let work_add = 0; let field = this.field; var summa = 0; var step = field.replace('conversion_', '').replace('conversionclosest_', ''); var arrField = field.split('_'); var name_field = ''; if(arrField[0] && arrField[1]){ name_field = arrField[0]; step = arrField[1]; } for (let i = 0; i < data.length; i++) { let val = data[i]['work_next_step_'+step]; if(name_field == 'conversionclosest'){ val = data[i]['closest_' + step + '_all']; } let val2 = data[i]['work_prev_step_'+step]; if (!isNaN(parseFloat(val))) { work_next_step += parseFloat(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseFloat(val[1]))) { work_next_step += parseFloat(val[1]) } } if (!isNaN(parseFloat(val2))) { work_add += parseFloat(val2); } else { val2 = val2.match(/data-val="([^"]*)"/); if (val2 && val2[1] && !isNaN(parseFloat(val2[1]))) { work_add += parseFloat(val2[1]) } } } if(work_add > 0){ summa = (work_next_step/work_add) * 100; } //return work_add; return summa.toFixed(2) + "%"; } function conversionFormaterrForFunnel(data){ let value1 = 0; let value2 = 0; let field = this.field; let name1 = 'work_del_all'; let name2 = 'work'; if(field == 'conversion'){ name1 = 'sdelka'; name2 = 'work'; } var summa = 0; for (let i = 0; i < data.length; i++) { let val = data[i][name1]; let val2 = data[i][name2]; if (!isNaN(parseFloat(val))) { value1 += parseFloat(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseFloat(val[1]))) { value1 += parseFloat(val[1]) } } if (!isNaN(parseFloat(val2))) { value2 += parseFloat(val2); } else { val2 = val2.match(/data-val="([^"]*)"/); if (val2 && val2[1] && !isNaN(parseFloat(val2[1]))) { value2 += parseFloat(val2[1]) } } } if(value2 > 0){ summa = (value1/value2) * 100; } //return work_add; return summa.toFixed(2) + "%"; } function footerSdelkaPriceFormatter(data){ let summa = 0; let sdelka = 0; for (let i = 0; i < data.length; i++) { let val = data[i]['summa']; let val2 = data[i]['sdelka']; if (!isNaN(parseFloat(val))) { summa += parseFloat(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseFloat(val[1]))) { summa += parseFloat(val[1]) } } if (!isNaN(parseFloat(val2))) { sdelka += parseFloat(val2); } else { val2 = val2.match(/data-val="([^"]*)"/); if (val2 && val2[1] && !isNaN(parseFloat(val2[1]))) { sdelka += parseFloat(val2[1]) } } } return sdelka+'/'+summa; } function procentFormaterrForSources(data) { let summa = 0; let field = this.field for (let i = 0; i < data.length; i++) { let val = data[i][field]; if (!isNaN(parseFloat(val))) { summa += parseFloat(val); } else { val = val.match(/data-val="([^"]*)"/); if (val && val[1] && !isNaN(parseFloat(val[1]))) { summa += parseFloat(val[1]) } } } return summa.toFixed(2) + "%"; } //Статистика по рекламным источникам function showSalesPlanStat() { $("#sales_plan_list__bg").fadeIn(500); $("#sales_plan_list").fadeIn(10); $("body").addClass("lock"); var user_id = $('#session_user_id').val(); var agency_id = $('#session_agency_id').val(); var pr = { agency_id: agency_id, user_id: user_id, } main_selector = '#table-sales_plan_list-selection'; main_selector_fixet = '#table-sales_plan_list-selection-fixed'; main_class_selector = "#sales_plan_list"; var period = $('.filter-popup-type.period.active').attr('id'); pr.period = period; if (period == 'dates') { var onDate = $('#onDate').val(); var offDate = $('#offDate').val(); pr.onDate = onDate; pr.offDate = offDate; } $.post('/ajax/getGridTableSalesPlan.php', pr, function(data) { $("#sales_plan_list").html(data); var $table_sales = $('#table-sales_plan_list-selection'); $table_sales.bootstrapTable('destroy'); $table_sales.bootstrapTable({ exportFooter: true, // treeShowField: 'fio', // parentIdField: 'pid', locale: 'ru', formatColumnsToggleAll: function () { return 'Выбрать все' }, onPostBody: function() { var columns = $table_sales.bootstrapTable('getOptions').columns if (columns && columns[0][0].visible) { $table_sales.treegrid({ initialState: 'expanded', onChange: function() { $table_sales.bootstrapTable('resetView') } }) } }, onLoadSuccess: function() { $('#sales_plan_list .fixed-table-border').css('height', '0px'); $(main_selector_fixet).hide(); $(main_selector).closest(".fixed-table-body").unbind("mouseup"); $(main_selector).closest(".fixed-table-body").unbind("mousedown"); setTimeout(function() { var th = $(main_selector + ' thead th'); for (var i = 0; i < th.length; i++) { var width = $(th[i]).find('.fht-cell').width(); $(main_class_selector + ' .fixed-table-header th').eq(i).find('.fht-cell').width(width); $(main_selector + ' thead th').eq(i).find('.fht-cell').width(width); } // getStatFixet(main_selector, main_selector_fixet, main_class_selector); }, 500); $(main_selector).closest(".fixed-table-body").css("cursor", "grab"); $(main_selector).closest(".fixed-table-body").mousedown(function() { $(this).css("cursor", "grabbing"); }); $(main_selector).closest(".fixed-table-body").mouseup(function() { $(this).css("cursor", "grab"); }); $(main_selector).closest(".fixed-table-body").addClass("dragscroll").addClass("table-sales_plan_list-selection-dragscroll"); dragscroll.reset(); $(main_class_selector + ' .dropdown-item input').change(function() { $(main_selector_fixet).hide(); setTimeout(function() { var th = $(main_selector + ' thead th'); for (var i = 0; i < th.length; i++) { var width = $(th[i]).find('.fht-cell').width(); $(main_class_selector + ' .fixed-table-header th').eq(i).find('.fht-cell').width(width); $(main_selector + ' thead th').eq(i).find('.fht-cell').width(width); } // getStatFixet(main_selector, main_selector_fixet, main_class_selector); }, 500); }); }, onScrollBody: function(el) { var scrolltop = $(el).scrollTop(); // $(main_selector_fixet + " .fixed-table-body").scrollTop(scrolltop); }, onColumnSwitch: function (index, row) { // $table_sales.bootstrapTable('refresh') if ($('.table-sales_plan_list-selection-dragscroll') && $('.table-sales_plan_list-selection-dragscroll')[0] && $('.table-sales_plan_list-selection-dragscroll')[0].scrollLeft) { $('.table-sales_plan_list-selection-dragscroll').scrollTop($('.table-sales_plan_list-selection-dragscroll')[0].scrollLeft); } }, onSort: function() { // getStatFixet(main_selector, main_selector_fixet, main_class_selector); if ($('.table-sales_plan_list-selection-dragscroll') && $('.table-sales_plan_list-selection-dragscroll')[0] && $('.table-sales_plan_list-selection-dragscroll')[0].scrollLeft) { $('.table-sales_plan_list-selection-dragscroll').scrollTop($('.table-sales_plan_list-selection-dragscroll')[0].scrollLeft); } }, onRefresh: function() { $('.fixed-table-body .fixed-table-loading').css({ height: '100%' }); } }); }); } function hideSalesPlanStat() { $("#sales_plan_list__bg").fadeOut(500); $("#sales_plan_list").toggle(10); $("body").removeClass("lock"); } function getStatFixet(id, idFixed, mainSelector) { $(idFixed + " .treegrid-expander").unbind("click"); var table = $(id); var thead = ''; //$("#table-funnel-keep-selection").closest(".fixed-table-body").unbind('scroll'); var th = $(table).find('thead th').eq(0).html(); var height = $(table).find('thead').height(); thead += th; thead += ''; var body = ''; $(idFixed + " thead").html('' + th + ''); var top = $(mainSelector + " .fixed-table-container").eq(1).position().top; $(idFixed).css("top", top + "px"); var tbody = $(id + " tbody tr"); for (var i = 0; i < tbody.length; i++) { var classtr = $(tbody[i]).attr("class"); var data_index = $(tbody[i]).attr("data-index"); var styletr = ''; if ($(tbody[i]).attr("style")) { styletr = $(tbody[i]).attr("style"); } body += ' 0) { $('#date_tasks').hide(); localStorage['chartspage'] = 'table'; $('#export_stat_client').show(); var objects_column = true; var roles = $('#filter_charts_rol').val(); if (roles !== null) { objects_column = false; for (var i = 0; i < roles.length; i++) { if (roles[i] == "Арендодатель" || roles[i] == "Продавец") { objects_column = true; } } } if (objects_column) { //$("#grid-keep-selection th[data-column-id=objects]").data("visible", true); if (!$('#grid-keep-selection-header [name=objects]').prop('checked')) { $('#grid-keep-selection-header [name=objects]').click(); } } else { if ($('#grid-keep-selection-header [name=objects]').prop('checked')) { $('#grid-keep-selection-header [name=objects]').click(); } } $('.crm__stats').addClass('hidden'); $('.crm__table').removeClass('hidden'); /*console.log('Начало'); $.post('/ajax/statistics.php', params, function(data){ console.log(data); })*/ $('#grid-keep-selection-new').bootstrapTable('destroy'); $('#grid-keep-selection-req').bootstrapTable('destroy'); var main_selector = '#grid-keep-selection-new'; var main_selector_fixet = '#grid-keep-selection-new-fixed'; var main_class_selector = ".clients_table"; if (client_req == 1) { $('.clients_table').addClass('hidden'); $('.requisitions_table').removeClass('hidden'); main_selector = '#grid-keep-selection-req'; main_selector_fixet = '#grid-keep-selection-req-fixed'; main_class_selector = ".requisitions_table"; } else { $('.clients_table').removeClass('hidden'); $('.requisitions_table').addClass('hidden'); main_selector = '#grid-keep-selection-new'; main_selector_fixet = '#grid-keep-selection-new-fixed'; main_class_selector = ".clients_table"; } var $table_main = $(main_selector); $('.object-content__preloader').hide(); let rowCount = 0; $table_main.bootstrapTable('destroy') $table_main.bootstrapTable({ formatColumnsToggleAll: function () { return 'Выбрать все' }, onLoadSuccess: function(data) { rowCount = data.rows.length updateContainerHeight(); // Apply custom drag functionality setupDragScrolling(); // Fix column widths setTimeout(updateColumnWidths, 500); }, onColumnSwitch: function (index, row) { fixed(); }, onScrollBody: function(el) { var scrolltop = $(el).scrollTop(); $(`${main_selector_fixet} .fixed-table-body`).scrollTop(scrolltop); }, onSort: function() { fixed(); }, onRefresh: function() { // Apply custom drag functionality setupDragScrolling(); setTimeout(updateContainerHeight, 0); // Fix column widths setTimeout(updateColumnWidths, 500); setTimeout(function() { const tableBodyDragscroll = $('.grid-keep-selection-new-dragscroll'); let maxScrollLeft = tableBodyDragscroll[0].scrollWidth - tableBodyDragscroll[0].clientWidth; if (maxScrollLeft != tableBodyDragscroll.scrollLeft()) { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() + 1); } else { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() - 1); } tableBodyDragscroll.scrollTop(tableBodyDragscroll.scrollTop() + 1); }, 200); // Adjust the timeout duration as needed } }); function escapeSelector(selector) { // Escape special characters for jQuery selectors return selector .replace(/\//g, '_') // Replace '/' with '_' .replace(/([#.:,+~>\*\[\]()"'\\])/g, '\\$1') // Escape characters like #, ., :, (, ), etc. .replace(/\s+/g, '.') // Replace spaces with dots .replace(/\\/g, '\\\\'); } function setupDragScrolling() { var $dragArea = $(main_selector).closest(".fixed-table-body"); $dragArea.unbind("mouseup mousedown").css("cursor", "grab") .mousedown(function() { $(this).css("cursor", "grabbing"); }) .mouseup(function() { $(this).css("cursor", "grab"); }) .addClass("dragscroll grid-keep-selection-new-dragscroll"); if (typeof dragscroll !== 'undefined') { dragscroll.reset(); } } function updateContainerHeight() { $('.fixed-table-container.fixed-height.has-footer').css({ height: (rowCount >= 8 ? '490px' : 'auto'), paddingBottom: (rowCount >= 8 ? '180px' : 0) }); $('.fixed-table-border').css('height', 0) $('.fixed-table-loading').css('height', 'unset') } function updateColumnWidths() { var th = $(`${main_selector} thead th`); th.each(function(i) { var element = $(this).find('.fht-cell')[0]; var width = parseFloat(window.getComputedStyle(element).width); const classes = `.${escapeSelector($(th[i]).attr('class'))}`; $(`${main_class_selector} .fixed-table-header th`).eq(i).find('.fht-cell').css('width', width + 'px'); $(`${main_class_selector} .fixed-table-footer ${classes} .fht-cell`).css('width', width + 'px'); $(`${main_selector} thead th`).eq(i).find('.fht-cell').css('width', width + 'px'); }); getStatFixet(main_selector, main_selector_fixet, main_class_selector); } function fixed() { // Apply custom drag functionality setupDragScrolling(); setTimeout(updateContainerHeight, 0); // Fix column widths setTimeout(updateColumnWidths, 500); // Delay scroll to ensure table updates first setTimeout(function() { dragscroll.reset(); const tableBodyDragscroll = $('.grid-keep-selection-new-dragscroll'); let maxScrollLeft = tableBodyDragscroll[0].scrollWidth - tableBodyDragscroll[0].clientWidth; if (maxScrollLeft != tableBodyDragscroll.scrollLeft()) { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() + 1); } else { tableBodyDragscroll.scrollLeft(tableBodyDragscroll.scrollLeft() - 1); } tableBodyDragscroll.scrollTop(tableBodyDragscroll.scrollTop() + 1); }, 100); // Adjust the timeout duration as needed } } else { $('#date_tasks').show(); localStorage['chartspage'] = 'stats'; $('#export_stat_client').hide(); $('.crm__table').addClass('hidden'); $('.crm__stats').removeClass('hidden'); var date_close = 0; if($('#date_closer').prop('checked')){ date_close = 1; } params.date_close = date_close; $.post('/ajax/getCharts.php', params, function(data) { var res = JSON.parse(data); $('.stats-conversion .widget-number').text(res.conversion + "%"); $('#summas_sdelok').text(number_format(res.summa_sdelok, 0, ',', ' ')); var salesSources = []; var totalSources = 0; var totalFunnel = 0; // if (res.Sources.length > 0) { for (var vor in res.Sources) { var val = {}; val.title = vor; val.value = res.Sources[vor]; if (!isNaN(parseInt(val.value))) { salesSources.push(val); totalSources += parseInt(res.Sources[vor]); } } for (var vor in res.Partners) { var val = {}; val.title = vor; val.value = res.Partners[vor]; if (!isNaN(parseInt(val.value))) { salesSources.push(val); totalSources += parseInt(res.Partners[vor]); } } //} $('#widgetSalesSourcesTotal').text('Всего: ' + totalSources); var titles = {}; if (res.funnel_step) { $('#widgetSalesFunnel').closest('.widget-inner').css('background', '#fff'); // $('.view-table-funnel').show(); titles = res.funnel_step.titles; var salesFunnel = []; for (var vor in res.Funnel) { var val = {}; val.title = titles[vor]; val.value = res.Funnel[vor]; if (vor.indexOf("step_") != -1) { $('.funnel_widget .view-table-funnel').show(); } if (!isNaN(parseInt(val.value))) { salesFunnel.push(val); totalFunnel += parseInt(res.Funnel[vor]); } } $('#widgetSalesFunnelTotal').text('Всего: ' + totalFunnel); var chart = AmCharts.makeChart("widgetSalesFunnel", { "type": "funnel", "theme": "none", "color": "#757575", "baseColor": "#1B5E20", "brightnessStep": 30, "dataProvider": salesFunnel, "valueRepresents": "area", "balloon": { "fixedPosition": true }, /*"colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ],*/ "valueField": "value", "titleField": "title", "fontFamily": "Lato", "fontSize": 15, "marginRight": 240, "marginLeft": 50, "startX": -500, "depth3D": 100, "angle": 40, "outlineAlpha": 1, "pullOutEffect": "easeInSine", "outlineColor": "#FFFFFF", "outlineThickness": 2, "labelPosition": "right", "balloonText": "[[title]]
[[value]] ([[percents]]%)" }); } else { $('#widgetSalesFunnel').html('
Показ этого графика возможен только при одной выбранной воронке в фильтре
'); $('#widgetSalesFunnel').closest('.widget-inner').css('background', '#F5F5F5'); $('#widgetSalesFunnelTotal').text(''); $('.funnel_widget .view-table-funnel').hide(); } AmCharts.addInitHandler(function(chart) { var maxValue = 0; for (var x in chart.dataProvider) { var value = chart.dataProvider[x][chart.valueField]; if (value > maxValue) maxValue = value; } if (1000000000 <= maxValue) chart.legend.valueWidth = 100; else if (1000000 <= maxValue) chart.legend.valueWidth = 70; else if (1000 <= maxValue) chart.legend.valueWidth = 40; }, ['pie']); var chart = AmCharts.makeChart("widgetClientsSources", { "type": "pie", "theme": "none", "color": "#757575", "dataProvider": salesSources, "legend": { "markerType": "circle", "position": "right", "marginRight": 75, "autoMargins": false, "labelWidth": 190 }, "autoDisplay": true, "autoTransform": true, "labelText": "", "valueField": "value", "titleField": "title", "fontFamily": "Lato", "fontSize": 15, "outlineAlpha": 0.4, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "pullOutEffect": "easeInSine", "balloonText": "[[title]]
[[value]] ([[percents]]%)" }); var chart = AmCharts.makeChart("widgetConversion", { "type": "serial", "categoryField": "date", "dataDateFormat": "YYYY-MM", "theme": "default", "autoMargin": false, "marginLeft": 40, "marginBottom": 40, "language": "ru", "fontFamily": "Lato", "fontSize": 15, "color": "#757575", "categoryAxis": { "minPeriod": "MM", "parseDates": true }, "chartCursor": { "enabled": true, "categoryBalloonDateFormat": "MMM YYYY", "cursorColor": "#ef6c00" }, "chartScrollbar": { "enabled": true }, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "trendLines": [], "graphs": [{ "bullet": "round", "balloonText": "[[title]]: [[value]]%", "id": "conversion", "title": "Конверсия", "valueField": "conversion" }], "guides": [], "allLabels": [], "balloon": {}, "legend": { "enabled": false }, "dataProvider": res.conversions }); var grafTitle = [{ "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsQuantity", "title": "Все", "valueField": "quantity" }, { "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsRentQuantity", "title": "Аренда", "valueField": "rentQuantity" }, { "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsBuyQuantity", "title": "Вторичка", "valueField": "buyQuantity" }, { "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsNBQuantity", "title": "Новостройки", "valueField": "NBQuantity" } ]; var grafTitle2 = [{ "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsQuantity2", "title": "Все", "valueField": "quantity" }, { "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsRentQuantity2", "title": "Аренда", "valueField": "rentQuantity" }, { "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsBuyQuantity2", "title": "Вторичка", "valueField": "buyQuantity" }, { "bullet": "round", "balloonText": "[[title]]:[[value]]", "id": "clientsNBQuantity2", "title": "Новостройки", "valueField": "NBQuantity" } ]; var grafManadger = [{ "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "AmGraph-1", "title": "Аренда", "type": "column", "valueField": "rent" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "AmGraph-2", "title": "Покупка", "type": "column", "valueField": "buy" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "AmGraph-3", "title": "Продажа", "type": "column", "valueField": "sale" } ]; var grafManadger2 = [{ "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "AmGraph-12", "title": "Аренда", "type": "column", "valueField": "rent" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "AmGraph-22", "title": "Покупка", "type": "column", "valueField": "buy" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "AmGraph-32", "title": "Продажа", "type": "column", "valueField": "sale" } ]; if ($('#filter-clientreq').val() == 1) { grafTitle = res.req_type; grafTitle2 = res.req_type2; grafManadger = res.req_type_menedger; grafManadger2 = res.req_type_menedger_sdelka; } var chart = AmCharts.makeChart("widgetClientsQuantity", { "type": "serial", "categoryField": "date", "dataDateFormat": "YYYY-MM", "theme": "default", "autoMargin": false, "marginLeft": 40, "marginBottom": 40, "language": "ru", "fontFamily": "Lato", "fontSize": 15, "color": "#757575", "categoryAxis": { "minPeriod": "MM", "parseDates": true }, "chartCursor": { "enabled": true, "categoryBalloonDateFormat": "MMM YYYY", "cursorColor": "#ef6c00" }, "chartScrollbar": { "enabled": true }, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "trendLines": [], "graphs": grafTitle, "guides": [], "allLabels": [], "balloon": {}, "legend": { "enabled": true, "equalWidths": false, "marginRight": 25, "marginTop": 4, "spacing": 15, "useGraphSettings": true, "valueAlign": "left", "valueWidth": 0, "color": "#757575" }, "dataProvider": res.clients }); var chart = AmCharts.makeChart("widgetClientsQuantityAdd", { "type": "serial", "categoryField": "date", "dataDateFormat": "YYYY-MM", "theme": "default", "autoMargin": false, "marginLeft": 40, "marginBottom": 40, "language": "ru", "fontFamily": "Lato", "fontSize": 15, "color": "#757575", "categoryAxis": { "minPeriod": "MM", "parseDates": true }, "chartCursor": { "enabled": true, "categoryBalloonDateFormat": "MMM YYYY", "cursorColor": "#ef6c00" }, "chartScrollbar": { "enabled": true }, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "trendLines": [], "graphs": grafTitle2, "guides": [], "allLabels": [], "balloon": {}, "legend": { "enabled": true, "equalWidths": false, "marginRight": 25, "marginTop": 4, "spacing": 15, "useGraphSettings": true, "valueAlign": "left", "valueWidth": 0, "color": "#757575" }, "dataProvider": res.clientsAdd }); var chart = AmCharts.makeChart("widgetClientsQuantityByManagers", { "type": "serial", "categoryField": "category", "autoMargins": true, "marginLeft": 40, "color": "#757575", "fontFamily": "Lato", "fontSize": 15, "categoryAxis": { "gridPosition": "start", "labelRotation": 50 }, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "graphs": grafManadger, "guides": [], "valueAxes": [{ "id": "ValueAxis-1", "gridColor": "#dedede" }], "allLabels": [], "balloon": {}, "legend": { "enabled": true, "equalWidths": false, "marginRight": 25, "marginTop": 4, "spacing": 15, "useGraphSettings": true, "valueAlign": "left", "valueWidth": 0, "color": "#757575" }, "titles": [], "dataProvider": res.managersClients, }); var chart = AmCharts.makeChart("widgetDealsQuantityByManagers", { "type": "serial", "categoryField": "category", "autoMargins": true, "marginLeft": 40, "color": "#757575", "fontFamily": "Lato", "fontSize": 15, "categoryAxis": { "gridPosition": "start", "labelRotation": 50 }, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "graphs": grafManadger2, "guides": [], "valueAxes": [{ "id": "ValueAxis-1", "gridColor": "#dedede" }], "allLabels": [], "balloon": {}, "legend": { "enabled": true, "equalWidths": false, "marginRight": 25, "marginTop": 4, "spacing": 15, "useGraphSettings": true, "valueAlign": "left", "valueWidth": 0, "color": "#757575" }, "titles": [], "dataProvider": res.managersClientsSdelka }); var graphs = [{ "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "calls", "title": "Звонки", "type": "column", "valueField": "calls" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "showings", "title": "Показы", "type": "column", "valueField": "showings" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "meetings", "title": "Встречи", "type": "column", "valueField": "meetings" }, { "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "deals", "title": "Сделки", "type": "column", "valueField": "deals" }, ]; /*if($('#session_agency_id').val() != 9588){ graphs.push({ "balloonText": "[[title]] у [[category]]:[[value]]", "fillAlphas": 1, "id": "reservations", "title": "Брони", "type": "column", "valueField": "reservations" }); }*/ var chart = AmCharts.makeChart("widgetActivity", { "type": "serial", "categoryField": "category", "autoMargins": true, "marginBottom": 40, "marginLeft": 40, "color": "#757575", "fontFamily": "Lato", "fontSize": 15, "categoryAxis": { "gridPosition": "start", "labelRotation": 50 }, "colors": [ "#1B5E20", "#388E3C", "#4CAF50", "#81C784", "#C8E6C9", "#E8F5E9", "#00C853", "#DDDDDD", "#999999", "#333333" ], "graphs": graphs, "guides": [], "valueAxes": [{ "id": "ValueAxis-1", "gridColor": "#dedede" }], "allLabels": [], "balloon": {}, "legend": { "enabled": true, "equalWidths": false, "marginRight": 25, "marginTop": 4, "spacing": 15, "useGraphSettings": true, "valueAlign": "left", "valueWidth": 0, "color": "#757575" }, "titles": [], "dataProvider": res.managersEvents }); }); } } function getWeekDates(fromDate) { var dayLength = 24 * 60 * 60 * 1000; var currentDate = new Date(fromDate.getFullYear(), fromDate.getMonth(), fromDate.getDate()); var currentWeekDayMillisecond = ((currentDate.getDay()) * dayLength); var monday = new Date(currentDate.getTime() - currentWeekDayMillisecond + dayLength); if (monday > currentDate) { monday = new Date(monday.getTime() - (dayLength * 7)); } return monday; }