Joywork/js/charts.js

5293 lines
189 KiB
JavaScript
Raw Normal View History

2026-05-22 20:21:54 +02:00
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>");
$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>");
// $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>");
$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>");
$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>");
$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('<img src="../images/rocket-spinner.svg" width="50px">');
getExpiredStages('clients');
});
$('body').on('click', '#get_expired_stages_req', function() {
$('#expired_stages_requisitions .widget-number').html('<img src="../images/rocket-spinner.svg" width="50px">');
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 = '<div style="text-align:center; margin-top: 25px;" class="object-content__preloader">'+
'<img src="../images/rocket-spinner.svg" width="94px">'+
'</div>';
$('#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 = '<div class="widget-inner">' +
'<div class="widget-head">' +
'<div class="widget-title">Задач просрочено по клиентам</div>' +
'</div>' +
'<div class="widget-number">' + res.events_old + '</div>' +
'</div>';
if (res.events_old > 0) {
$('#dashboard_overdue_tasks').addClass('widget-colored').addClass('dashboard-overdue-tasks');
$('#dashboard_overdue_tasks').html(
'<a href="javascript:{}" onclick="showCalendar(\'overdue_tasks\', \'client\')">' + html + '</a>'
);
} 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('<a href="javascript:{}" id="get_expired_stages_clients">Получить...</a>');
$('#expired_stages_requisitions .widget-number').html('<a href="javascript:{}" id="get_expired_stages_req">Получить...</a>');
}
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(`<div class="object-content__preloader"><img src="../images/rocket-spinner.svg" width="96px"></div>`)
} 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: "<th class=\"{{ctx.css}}\" rowspan='2' colspan=\"{{ctx.colspan}}\">{{ctx.content}}</th>"
// },
// 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 `<button class="toggle-group" data-group="${row.group}">Toggle</button>`;
// },
// "addedObj": function(column, row) {
// if (row.added && row.added > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsAddedObjectsLink">' + row.added + '</a>';
// } else {
// return '<span>' + row.added + '</span>';
// }
// },
// "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 '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsAdvInPeriodObjectsLink">' + row.adv_in_period + '&nbsp;(' + row.adv_in_period_and_sended + ')' + '</a>';
// } else {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsAdvInPeriodObjectsLink">' + row.adv_in_period + '</a>';
// }
// } else {
// if (row.adv_in_period_and_sended && row.adv_in_period_and_sended > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsAdvInPeriodObjectsLink">' + row.adv_in_period + '&nbsp;(' + row.adv_in_period_and_sended + ')' + '</a>';
// }
// return '<span>' + row.adv_in_period + '</span>';
// }
// },
// "advBeforePeriodObj": function(column, row) {
// if (row.adv_before_period && row.adv_before_period > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsAdvBeforePeriodObjectsLink">' + row.adv_before_period + '</a>';
// } else {
// return '<span>' + row.adv_before_period + '</span>';
// }
// },
// "notAdvInPeriodObj": function(column, row) {
// if (row.not_adv_in_period && row.not_adv_in_period > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsNotAdvInPeriodObjectsLink">' + row.not_adv_in_period + '</a>';
// } else {
// return '<span>' + row.not_adv_in_period + '</span>';
// }
// },
// "advCostObj": function(column, row) {
// if (row.adv_costs_period && row.adv_costs_period.split(" ").join("") > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsAdvCostObjectsLink">' + row.adv_costs_period + '</a>';
// } else {
// return '<span>' + row.adv_costs_period + '</span>';
// }
// },
// "advCostPromo": function(column, row) {
// return '<span>' + row.adv_costs_promo + '</span>';
// },
// "advCostAvito": function(column, row) {
// return '<span>' + row.adv_costs_avito + '</span>';
// },
// "advCostCian": function(column, row) {
// return '<span>' + row.adv_costs_cian + '</span>';
// },
// "advCostDomclick": function(column, row) {
// return '<span>' + row.adv_costs_domclick + '</span>';
// },
// "advCostJcat": function(column, row) {
// return '<span>' + row.adv_costs_jcat + '</span>';
// },
// "advCostYandex": function(column, row) {
// return '<span>' + row.adv_costs_yandex + '</span>';
// },
// "advCostZipal": function(column, row) {
// return '<span>' + row.adv_costs_zipal + '</span>';
// },
// "requestsObj": function(column, row) {
// if (row.requests && row.requests > 0 && row.requests_all && row.requests_all > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsRequestsObjectsLink">' + row.requests_all + '</a>/<a href="javascript:{}" data-user-id="' + row.id + '" class="statsRequestsUserObjectsLink">' + row.requests + '</a>';
// } else {
// if (row.requests_all && row.requests_all > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsRequestsObjectsLink">' + row.requests_all + '</a>/<span>' + row.requests + '</span>';
// } else {
// if (row.requests && row.requests > 0) {
// return '<span>' + row.requests_all + '</span>/<a href="javascript:{}" data-user-id="' + row.id + '" class="statsRequestsUserObjectsLink">' + row.requests + '</a>';
// } else {
// return '<span>' + row.requests_all + '</span>/<span>' + row.requests + '</span>';
// }
// }
// }
// },
// "presentationsObj": function(column, row) {
// if (row.presentation && row.presentation > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsPresentationsObjectsLink">' + row.presentation + '</a>';
// } else {
// return '<span>' + row.presentation + '</span>';
// }
// },
// "meetsObj": function(column, row) {
// if (row.meet && row.meet > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsMeetsObjectsLink">' + row.meet + '</a>';
// } else {
// return '<span>' + row.meet + '</span>';
// }
// },
// "taskNewObj": function(column, row) {
// if (row.task_new && row.task_new > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsTaskNewObjectsLink">' + row.task_new + '</a>';
// } else {
// return '<span>' + row.task_new + '</span>';
// }
// },
// "taskOldObj": function(column, row) {
// if (row.task_old && row.task_old > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsTaskOldObjectsLink">' + row.task_old + '</a>';
// } else {
// return '<span>' + row.task_old + '</span>';
// }
// },
// "taskSlungObj": function(column, row) {
// if (row.task_slung && row.task_slung > 0) {
// return '<a href="javascript:{}" data-user-id="' + row.id + '" class="statsTaskSlungObjectsLink">' + row.task_slung + '</a>';
// } else {
// return '<span>' + row.task_slung + '</span>';
// }
// },
// "task": function(column, row) {
// var tasks = (parseInt(row.task_new) + parseInt(row.task_old) + parseInt(row.task_slung));
// if (tasks && tasks > 0) {
// return '<a href="/charts.php?tasks=all_tasks&type_calendar=object&emp=' + row.id + '" target="_blank">' + tasks + '</a>';
// } else {
// return '<span>' + tasks + '</span>';
// }
// //return '<span>'+(parseInt(row.task_new) + parseInt(row.task_old) + parseInt(row.task_slung)) +'</span>';
// }
// }
// }).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 = '<thead><th data-column-id="fio" class="text-left" colspan="" ';
// var heigth = 0;
// var width = 0;
// $('#obj-stat-grid-full thead > 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 += '</th></thead>';
// html += '<tbody>';
// $('#obj-stat-grid-full tbody > tr').each(function(index) {
// //console.log($(this));
// html += '<tr data-row-id="' + $(this).attr('data-row-id') + '"><td class="text-left" style="width:' + width + 'px;">' + $(this).find('td.text-left').first().html() + '</td></tr>';
// });
// html += '</tbody>';
// // 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('<div class="object-content__preloader"><img src="../images/rocket-spinner.svg" width="96px"></div>');
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 = `<a data-val="${value.total}" href="/clients.php?filter_stage=filter_work_all_do&emp=${row.id}`;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '&step=' + value.step + '" target="_blank">' + value.total + '</a>';
}
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 = '<a href="/clients.php?filter_stage=filter_stage_work&emp=' + row.id;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '" target="_blank">' + value + '</a>';
}
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 = '<a href="/clients.php?filter_stage=filter_stage_work&emp=' + row.id;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '&step=' + value.step + '" target="_blank">' + value.total + '</a>';
}
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 = `<a data-val="${value.total}" href="/clients.php?filter_stage=filter_work_all&emp=${row.id}`;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '" target="_blank">' + value.total + '</a>';
}
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 = '<a href="/clients.php?filter_stage=filter_stage_work&emp=' + row.id;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '&step=' + step + '&transmitted=1" target="_blank">' + value.total + '</a>';
}
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 = '<a href="/clients.php?filter_stage=filter_stage_work&emp=' + row.id;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '&step=' + step + '&accepted=1" target="_blank">' + value.total + '</a>';
}
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 = '<a href="/charts.php?tasks=overdue_tasks&type_calendar=client&event=' + arrColumn[0] + '&emp=' + row.id;
var tr_new = '<a href="/charts.php?tasks=open_tasks&type_calendar=client&event=' + arrColumn[0] + '&emp=' + row.id;
var tr_slung = '<a href="/charts.php?tasks=completed_tasks&type_calendar=client&event=' + arrColumn[0] + '&emp=' + row.id;
if (funnel) {
tr_old += '&funnelId=' + funnel;
tr_new += '&funnelId=' + funnel;
tr_slung += '&funnelId=' + funnel;
}
if (responsible != '') {
tr_old += '&responsible=' + responsible;
tr_new += '&responsible=' + responsible;
tr_slung += '&responsible=' + responsible;
}
tr_old += '&period=' + period + '&step=' + step + '" target="_blank">' + taskOld + '</a>';
tr_new += '&period=' + period + '&step=' + step + '" target="_blank">' + taskNew + '</a>';
tr_slung += '&period=' + period + '&step=' + step + '" target="_blank">' + taskSlung + '</a>';
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 = '<a style="color: #fff" href="/charts.php?tasks=overdue_tasks&type_calendar=client&event=' + arrColumn[0] + '&emp=' + row.id;
var tr_new = '<a style="color: #fff" href="/charts.php?tasks=open_tasks&type_calendar=client&event=' + arrColumn[0] + '&emp=' + row.id;
var tr_slung = '<a style="color: #fff" href="/charts.php?tasks=completed_tasks&type_calendar=client&event=' + arrColumn[0] + '&emp=' + row.id;
if (funnel) {
tr_old += '&funnelId=' + funnel;
tr_new += '&funnelId=' + funnel;
tr_slung += '&funnelId=' + funnel;
}
if (responsible != '') {
tr_old += '&responsible=' + responsible;
tr_new += '&responsible=' + responsible;
tr_slung += '&responsible=' + responsible;
}
tr_old += '&period=' + period + '&step=' + step + '" target="_blank">' + taskOld + '</a>';
tr_new += '&period=' + period + '&step=' + step + '" target="_blank">' + taskNew + '</a>';
tr_slung += '&period=' + period + '&step=' + step + '" target="_blank">' + taskSlung + '</a>';
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 <a> tags for comparison
const textA = $("<div>").html(a).find("a").text().toUpperCase();
const textB = $("<div>").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 <a> 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 = `<a href="/clients.php?filter_stage=filter_work_all`;
if (row.pid === 0)
{
tr = `<a data-val="${value}" href="/clients.php?filter_stage=filter_work_all`;
}
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '&source=' + row.sources + '" target="_blank">' + value + '</a>';
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 = `<a data-val="${value}" href="/clients.php?filter_stage=filter_stage_work`;
if (funnel) {
tr += '&funnelId=' + funnel;
}
if (responsible != '') {
tr += '&responsible=' + responsible;
}
tr += '&period=' + period + '&source=' + row.sources + '" target="_blank">' + value + '</a>';
return tr;
}
function getStatFunnelFixet() {
var table = $('#table-funnel-keep-selection');
var thead = '<tr>';
//$("#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 += '</tr>';
var body = '';
$("#table-funnel-keep-selection-fixed thead").html('<tr><th style="height:' + (height) + 'px; border-bottom: 0px; border-top: 1px solid #ddd;" class="table_white" rowspan="3">' + th + '</th></tr>');
// 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 += '<tr>';
body += '<td class="table_white" style="color: #000; background: #fff;">';
body += $(tbody[i]).find('td').eq(0).html();
body += '</td></tr>';
}
$("#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 '<span style="font-size: 24px;">Пожалуйста подождите, мы готовим для вас отчет. <img src="../images/rocket-spinner.svg" width="96px"></span>';
}
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 '<div class="itemSource" title="' + val + '"><span>' + val + '</span></div>';
}
function getStatSourcesFixet() {
$("#table-sources-keep-selection-fixed .treegrid-expander").unbind("click");
var table = $('#table-sources-keep-selection');
var thead = '<tr>';
//$("#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 += '</tr>';
var body = '';
$("#table-sources-keep-selection-fixed thead").html('<tr><th style="height:' + (height) + 'px; border-bottom: 1px solid #ddd; border-top: 0px solid #ddd;" class="table_white" rowspan="3">' + th + '</th></tr>');
// 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 += '<tr class="' + classtr + '" data-index="' + data_index + '"';
if (styletr != '') {
body += ' style="' + styletr + '"';
}
body += '><td class="table_white" style="color: #000; background: #fff;">';
body += $(tbody[i]).find('td').eq(0).html();
body += '</td></tr>';
}
$("#table-sources-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-sources-keep-selection").closest(".fixed-table-body").height();
ht = ht - iht;
$("#table-sources-keep-selection-fixed .fixed-table-body").height(ht).css("overflow", "hidden");
$("#table-sources-keep-selection-fixed").show();
$("#table-sources-keep-selection-fixed .treegrid-expander").click(function() {
var cell = $(this).closest('tr').prop("classList");
$("#table-sources-keep-selection ." + cell[0] + " .treegrid-expander").click();
var index = parseInt(cell[0].replace("treegrid-", ""));
if (cell[1] == 'treegrid-collapsed') {
$(this).closest('tr').removeClass('treegrid-collapsed').addClass('treegrid-expanded');
$(this).closest('tr').find(".treegrid-expander").addClass('treegrid-expander-expanded').removeClass('treegrid-expander-collapsed');
$("#table-sources-keep-selection-fixed .treegrid-parent-" + index).css("display", "table-row");
} else {
$(this).closest('tr').addClass('treegrid-collapsed').removeClass('treegrid-expanded');
$("#table-sources-keep-selection-fixed .treegrid-parent-" + index).css("display", "none");
$(this).closest('tr').find(".treegrid-expander").removeClass('treegrid-expander-expanded').addClass('treegrid-expander-collapsed');
}
});
}
function ajaxRequestMain(param) {
var client_req = $('#filter-clientreq').val();
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 params = {
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();
params.onDate = onDate;
params.offDate = offDate;
}
var url = "/ajax/statistics.php"
$.post(url, params, function(res) {
//console.log(res);
param.success(JSON.parse(res))
})
}
//футер для плана продаж
function itogFormatter(data) {
return "Итого";
}
function priceFormatter(data) {
var summa = 0;
var field = this.field
for (var i = 0; i < data.length; i++) {
var row = data[i][field].toString().replace('<a style="cursor: grab; color: #000; border-bottom: none;">', '').replace('</a>', '').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 = '<a data-val="summa" href="javascript:{}" data-user-id="all" data-fields="'+field+'" class="statsObjectsFooter">'+summa+'</a>';
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 = $("<div>").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 = $("<div>").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('<a style="cursor: grab; color: #000; border-bottom: none;">', '').replace('</a>', '').replace(/ /g, '');
if (!isNaN(parseInt(row))) {
summa += parseInt(row);
}
var row = data[i][f2].toString().replace('<a style="cursor: grab; color: #000; border-bottom: none;">', '').replace('</a>', '').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 = '<tr>';
//$("#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 += '</tr>';
var body = '';
$(idFixed + " thead").html('<tr><th style="height:' + (height) + 'px; border-bottom: 1px solid #ddd; border-top: 0px solid #ddd;" class="table_white" rowspan="3">' + th + '</th></tr>');
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 += '<tr class="' + classtr + '" data-index="' + data_index + '"';
if (styletr != '') {
body += ' style="' + styletr + '"';
}
body += '><td class="table_white" style="color: #000; background: #fff;">';
body += $(tbody[i]).find('td').eq(0).html();
body += '</td></tr>';
}
$(idFixed + " tbody").html(body);
var iht = 17;
/*if(!isNaN(parseInt($(".fixed-table-header").css("marginRight")))){
int = parseInt($(".fixed-table-header").css("marginRight"));
}*/
var ht = $(id).closest(".fixed-table-body").height();
ht = ht - iht;
$(idFixed + " .fixed-table-body").height(ht).css("overflow", "hidden");
$(idFixed).show();
$(idFixed + " .treegrid-expander").click(function() {
var cell = $(this).closest('tr').prop("classList");
$(id + " ." + cell[0] + " .treegrid-expander").click();
var index = parseInt(cell[0].replace("treegrid-", ""));
var cell_ollapsed = false;
for (var i = 0; i < cell.length; i++) {
if (cell[i] == 'treegrid-collapsed') {
cell_ollapsed = true;
}
}
if (cell_ollapsed) {
$(this).closest('tr').removeClass('treegrid-collapsed').addClass('treegrid-expanded');
$(this).closest('tr').find(".treegrid-expander").addClass('treegrid-expander-expanded').removeClass('treegrid-expander-collapsed');
$(idFixed + " .treegrid-parent-" + index).css("display", "table-row");
} else {
$(this).closest('tr').addClass('treegrid-collapsed').removeClass('treegrid-expanded');
$(idFixed + " .treegrid-parent-" + index).css("display", "none");
$(this).closest('tr').find(".treegrid-expander").removeClass('treegrid-expander-expanded').addClass('treegrid-expander-collapsed');
$(idFixed + " .treegrid-parent-" + index).each(function(indexTr) {
cell2 = $(this).prop("classList");
$(this).addClass('treegrid-collapsed').removeClass('treegrid-expanded');
$(id + " ." + cell2[0] + " .treegrid-expander.treegrid-expander-expanded").click();
var index2 = parseInt(cell2[0].replace("treegrid-", ""));
$(idFixed + " .treegrid-parent-" + index2).css("display", "none");
$(this).find(".treegrid-expander.treegrid-expander-expanded").removeClass('treegrid-expander-expanded').addClass('treegrid-expander-collapsed');
})
}
$('#sales_plan_list .fixed-table-border').css('height', '0px');
var left = $(mainSelector + ' .fixed-table-body.dragscroll').scrollLeft();
$(mainSelector + " .fixed-table-footer").scrollLeft(left);
});
}
function getStats() {
$('#date_tasks').hide();
$('.clientreq').show();
var client_req = $('#filter-clientreq').val();
if (client_req == 1) {
$('.crm__stats .widget-title').each(function() {
var text = $(this).text().replace("Клиентов", "Заявок").replace("клиентов", "заявок").replace("клиенты", "заявки").replace("Клиенты", "Заявки");
$(this).text(text);
});
} else {
$('.crm__stats .widget-title').each(function() {
var text = $(this).text().replace("Заявок", "Клиентов").replace("заявок", "клиентов").replace("заявки", "клиенты").replace("Заявки", "Клиенты");
$(this).text(text);
});
}
var period = '30days';
if ($('.filter-popup-type.period.active').attr('id')) {
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();
$('.view-charts').show();
$('.view-table').show();
var params = {
stats: 'stats',
period: period,
responsible: JSON.stringify(responsible),
user_id: $('#session_user_id').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),
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();
params.onDate = onDate;
params.offDate = offDate;
}
if ($('.view-table.active').length > 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]]<br><span><b>[[value]]</b> ([[percents]]%)</span>"
});
} else {
$('#widgetSalesFunnel').html('<div>Показ этого графика возможен только при одной выбранной воронке в фильтре</div>');
$('#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]]<br><span><b>[[value]]</b> ([[percents]]%)</span>"
});
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]]:&nbsp;[[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;
}