5293 lines
189 KiB
JavaScript
5293 lines
189 KiB
JavaScript
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 + ' (' + 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 + ' (' + 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]]: [[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;
|
||
} |