(function () {
'use strict';
angular
.module('app', ['angular.drag.resize', 'ng-context-menu', 'ui.bootstrap', 'ui.utils'])
.controller('ActivityMonitorCtrl', ActivityMonitorCtrl);
ActivityMonitorCtrl.$inject = ['$scope', 'smartRequest', 'Notification'];
function ActivityMonitorCtrl($scope, smartRequest, Notification) {
Element.prototype.remove = function () {
this.parentElement.removeChild(this);
}
NodeList.prototype.remove = HTMLCollection.prototype.remove = function () {
for (var i = this.length - 1; i >= 0; i--) {
if (this[i] && this[i].parentElement) {
this[i].parentElement.removeChild(this[i]);
}
}
}
$scope.dataTablesOpt = {
language: {
url: "https://cdn.datatables.net/plug-ins/1.13.3/i18n/ru.json",
},
autoWidth: false,
searching: true,
paging: false,
info: false,
};
$scope.places = [];
$scope.tables = [];
$scope.newTables = [];
$scope.newTables2 = [];
$scope.roommap = [];
$scope.newElement = 0;
$scope.firstPlace = 1;
$('#create_table').hide();
$('#create_place').hide();
$('#places').hide();
$('#background').hide();
$('#background_1').hide();
$('#save_tables').hide();
$('#save_places').hide();
$('#back').hide();
document.getElementById('aside').remove();
document.getElementById("view").style.display = "flex";
document.getElementById("view").style.justifyContent = "center";
document.getElementById("view").style.alignItems = "center";
$scope.getRoomMap = function () {
smartRequest.get('v1/roommap?method=map&type=full', function (data) {
$('#back').show();
$scope.roommap = data.roommap;
});
};
$scope.back = function () {
location.reload();
};
$scope.getPlaces = function () {
smartRequest.get('v1/roommap?method=map&type=places', function (data) {
$scope.places = data.places;
console.log($scope.places);
});
smartRequest.get('v1/roommap?method=statistic&type=places', function (places_info) {
$scope.places_ooc = places_info.opened_orders_count;
$scope.places_oos = places_info.opened_orders_sum;
$scope.places_oocc = places_info.opened_orders_client_count;
$scope.places_coc = places_info.closed_orders_count;
$scope.places_cos = places_info.closed_orders_sum;
$scope.places_cocc = places_info.closed_orders_client_count;
});
};
$scope.getTables = function (place_id) {
$('#places').hide();
$('#background').show();
$('#background_1').show();
$('#create_table').show();
$('#back').show();
$scope.maxWidth = 1024;
$scope.windowHeight = 65;
$scope.screenHeight = screen.height;
$scope.windowWidth = window.innerWidth;
$scope.screenWidth = 80;
smartRequest.get('v1/roommap?method=map&type=place&id=' + place_id, function (data) {
$scope.place = data.place;
$scope.place_id = data.place_id;
$scope.left = 0;
$scope.top = 0;
$scope.tables = data.tables;
$scope.percentWidth = document.getElementById('tables').clientWidth / 1024;
$scope.percentHeight = document.getElementById('tables').clientHeight / 768;
});
smartRequest.get('v1/roommap?method=statistic&type=place&place_id=' + place_id, function (place_info) {
$scope.place_ooc = place_info.opened_orders_count;
$scope.place_oos = place_info.opened_orders_sum;
$scope.place_oocc = place_info.opened_orders_client_count;
$scope.place_coc = place_info.closed_orders_count;
$scope.place_cos = place_info.closed_orders_sum;
$scope.place_cocc = place_info.closed_orders_client_count;
});
};
$scope.getTables($scope.firstPlace);
$scope.getPlaces();
$scope.getTableInfo = function (place_id, table_id) {
smartRequest.get('v1/roommap?method=statistic&type=place&place_id=' + place_id + '&table_id=' + table_id, function (data) {
$scope.place_name = data.place_name;
$scope.place_id = place_id;
$scope.waited_count = data.waited_count;
$scope.waited_sum = data.waited_sum;
$scope.closed_count = data.closed_count;
$scope.closed_sum = data.closed_sum;
$scope.deleted_count = data.deleted_count;
$scope.deleted_sum = data.deleted_sum;
$scope.returned_count = data.returned_count;
$scope.returned_sum = data.returned_sum;
$scope.cancellations_count = data.cancellations_count;
$scope.cancellations_sum = data.cancellations_sum;
$scope.orders = data.orders;
$scope.orders.forEach(function(order) {
$scope.title = '';
if (order.is_printed_before_edit) {
$scope.title = $scope.title + '➖ Распечатан предчек до удаления позиции!
';
}
if (order.hasMove) {
$scope.title = $scope.title + '➖ Использовался перенос заказа!
';
}
if (order.hasMerge) {
$scope.title = $scope.title + '➖ Использовалось объединение заказов!
';
}
if (order.hasSlice) {
$scope.title = $scope.title + '➖ Использовалось разбиение заказа!
';
}
if (order.hasDelete) {
$scope.title = $scope.title + '➖ Присутствует удаление товаров!
';
}
order.title = $scope.title;
});
if ($scope.waited_count + $scope.closed_count + $scope.deleted_count + $scope.returned_count + $scope.cancellations_count > 0) {
$('#orders').modal();
$(function () {
$('[data-toggle="tooltip"]').tooltip({ html:true });
});
} else {
Notification.error('Заказы отсутствуют');
}
});
};
$scope.getOrderInfo = function (order_id, opened, closed) {
$scope.clients_modal = false;
$scope.orders_modal = true;
smartRequest.get('v1/orderhistory?order_id=' + order_id, function (actions) {
$scope.actions = actions;
});
smartRequest.get('v1/orderinfo?order_id=' + order_id + '&opened=' + opened + '&closed=' + closed, function (data) {
$scope.order = data.info;
$scope.cols = 5;
if ($scope.order.returned_count > 0) {
$scope.cols = $scope.cols + 1;
}
if ($scope.order.deleted_count > 0) {
$scope.cols = $scope.cols + 1;
}
$scope.backModal('orders', 'order');
});
};
$scope.closeModal = function (modalName) {
$scope.modalName = '#' + modalName;
$('.modal-body').scrollTop(0);
$($scope.modalName).modal('dispose');
return true;
};
$scope.backModal = function (prevModalName, targetModalName) {
$scope.prevModalName = '#' + prevModalName;
$scope.targetModalName = '#' + targetModalName;
$('.modal-body').scrollTop(0);
$($scope.prevModalName).modal('hide');
$($scope.targetModalName).modal('toggle');
return true;
};
$scope.borderStyle = function (sum, count) {
let style = '2px solid rgb(33, 150, 243)';
if (sum != 0 && count != 0) {
style = '2px solid rgb(255, 0, 0)';
}
if (sum == 0 && count != 0) {
style = '2px solid rgb(0, 255, 0)';
}
return style;
};
}
})();