1. POSTBonus in/out
2. POSTPresale in/out
3. Переработана форма гостя
This commit is contained in:
miroman-afk
2022-12-14 12:42:39 +03:00
parent 4d3ad7727d
commit d24bba305f
49 changed files with 2525 additions and 772 deletions

View File

@@ -1,353 +1,364 @@
(function() {
'use strict';
angular
.module('app')
.controller('ClientsCtrl', ClientsCtrl);
(function () {
'use strict';
angular
.module('app')
.controller('ClientsCtrl', ClientsCtrl);
ClientsCtrl.$inject = ['$scope', 'smartRequest', 'Notification', '$rootScope', '$timeout'];
function ClientsCtrl($scope, smartRequest, Notification, $rootScope, $timeout) {
$scope.clients = [];
$scope.groups = [];
$scope.statuses = [];
$scope.filedate = '';
$scope.currentGroupId = 0;
$scope.currentClientId = 0;
ClientsCtrl.$inject = ['$scope', 'smartRequest', 'Notification', '$rootScope', '$timeout'];
$scope.currentClient = {};
$scope.orders = [];
$scope.order = {};
function ClientsCtrl($scope, smartRequest, Notification, $rootScope, $timeout) {
$scope.clients = [];
$scope.groups = [];
$scope.statuses = [];
$scope.filedate = '';
$scope.currentGroupId = 0;
$scope.currentClientId = 0;
$scope.isCreateNewGroup = false;
$scope.newGroup = {};
$scope.newBarcode = {};
$scope.currentClient = {};
$scope.isCreateNewClient = false;
$scope.newClient = {};
$scope.orders = [];
$scope.order = {};
$scope.search = {
query: ''
};
var promise = 0;
$scope.isCreateNewGroup = false;
$scope.newGroup = {};
$scope.newBarcode = {};
$scope.clientsSearch = function() {
}
$scope.isCreateNewClient = false;
$scope.newClient = {};
$scope.update = function() {
smartRequest.get('client/list?page=' + $scope.currentPage, function(data) {
$scope.clients = data.clients;
$scope.countOfPages = data.pages;
$scope.pages = $scope.makePages();
});
};
$scope.search = {
query: ''
};
$scope.getGroups = function() {
smartRequest.get('v1/clientgroup', function(data) {
$scope.groups = data.groups;
$scope.filedate = data.filedate;
$scope.openGroup({id: 0});
});
};
var promise = 0;
$scope.openGroup = function(group) {
if (typeof group === 'object') {
$scope.currentGroup = group.id;
} else {
$scope.currentGroup = group;
}
$scope.currentPage = 1;
smartRequest.get('v1/clients?group_id=' + $scope.currentGroup + '&page=' + $scope.currentPage, function(data) {
$scope.clients = data.clients;
$scope.pages = data.pages;
$scope.currentGroup = data.currentGroup;
$scope.total = data.total;
});
$scope.clientsSearch = function () {
};
$scope.editGroup = function (group) {
$scope.contextElement = group;
}
$('#edit-group').modal('toggle');
console.log(group);
};
$scope.update = function () {
smartRequest.get('client/list?page=' + $scope.currentPage, function (data) {
$scope.clients = data.clients;
$scope.countOfPages = data.pages;
$scope.pages = $scope.makePages();
});
};
$scope.updateGroup = function () {
$('#edit-group').modal('toggle');
$scope.getGroups = function () {
smartRequest.get('v1/clientgroup', function (data) {
$scope.groups = data.groups;
$scope.filedate = data.filedate;
$scope.openGroup({id: 0});
});
};
smartRequest.post('v1/clientgroup', {
id: $scope.contextElement.id,
name: $scope.contextElement.name,
task: 'update'
}, function (data) {
if (data.status == 'success') {
Notification.success(data.message);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$scope.removeGroup = function () {
$('#group-confirm-delete').modal('toggle');
$('#edit-group').modal('toggle');
$scope.openGroup = function (group) {
if (typeof group === 'object') {
$scope.currentGroup = group.id;
} else {
$scope.currentGroup = group;
}
$scope.currentPage = 1;
smartRequest.get('v1/clients?group_id=' + $scope.currentGroup + '&page=' + $scope.currentPage, function (data) {
$scope.clients = data.clients;
$scope.pages = data.pages;
$scope.currentGroup = data.currentGroup;
$scope.total = data.total;
$scope.closeCard();
$scope.orders = [];
$scope.currentClient = [];
$scope.clientLogs = [];
});
smartRequest.post('v1/clientgroup', {
id: $scope.contextElement.id,
task: 'delete'
}, function (data) {
$scope.getGroups();
if (data.message) {
Notification.success(data.message);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$scope.editClient = function (client, group) {
$scope.contextElement = client;
$scope.contextGroup = group;
$('#edit-client').modal('toggle');
console.log(client);
console.log($scope.contextGroup);
};
};
$scope.updateClient = function (group) {
$('#edit-client').modal('toggle');
$scope.editGroup = function (group) {
$scope.contextElement = group;
smartRequest.post('v1/client', {
id: $scope.contextElement.id,
name: $scope.contextElement.name,
group_id: group,
phone: $scope.contextElement.phone,
address: $scope.contextElement.address,
email: $scope.contextElement.email,
barcode: $scope.contextElement.barcode,
task: 'update'
}, function (data) {
if (data.status == 'success') {
Notification.success(data.message);
$scope.openGroup(group);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$('#edit-group').modal('toggle');
console.log(group);
};
$scope.removeClient = function () {
$('#client-confirm-delete').modal('toggle');
$('#edit-client').modal('toggle');
$scope.updateGroup = function () {
$('#edit-group').modal('toggle');
smartRequest.post('v1/client', {
id: $scope.contextElement.id,
task: 'delete'
}, function (data) {
$scope.getGroups();
$scope.openGroup($scope.currentGroup);
if (data.message) {
Notification.success(data.message);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
smartRequest.post('v1/clientgroup', {
id: $scope.contextElement.id,
name: $scope.contextElement.name,
task: 'update'
}, function (data) {
if (data.status == 'success') {
Notification.success(data.message);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$scope.pager = function(currentPage) {
smartRequest.get('v1/clients?group_id=' + $scope.currentGroup + '&page=' + $scope.currentPage, function(data) {
$scope.clients = data.clients;
$scope.pages = data.pages;
$scope.currentGroup = data.currentGroup;
$scope.total = data.total;
});
};
$scope.removeGroup = function () {
$('#group-confirm-delete').modal('toggle');
$('#edit-group').modal('toggle');
$scope.getClients = function() {
if ($scope.search.query.length === 0) {
$scope.openGroup({id: $scope.currentGroupId});
}
else {
smartRequest.post('client/search', {
name: $scope.search.query
},
function (data) {
$scope.clients = data.clients;
});
}
};
smartRequest.post('v1/clientgroup', {
id: $scope.contextElement.id,
task: 'delete'
}, function (data) {
$scope.getGroups();
if (data.message) {
Notification.success(data.message);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$scope.openFormCreateGroup = function() {
$scope.currentClientId = 0;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = false;
$scope.isCreateNewGroup = !$scope.isCreateNewGroup;
};
$scope.editClient = function (client, group) {
$scope.openFormCreateClient = function() {
$scope.currentClientId = 0;
$scope.isCreateNewGroup = false;
$scope.isCreateNewBarcode = false;
$scope.isCreateNewClient = !$scope.isCreateNewClient;
};
$scope.contextElement = client;
$scope.contextGroup = group;
$('#edit-client').modal('toggle');
console.log(client);
console.log($scope.contextGroup);
};
$scope.openFormCreateBarcode = function() {
$scope.currentClientId = 0;
$scope.isCreateNewGroup = false;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = !$scope.isCreateNewBarcode;
smartRequest.get('v1/clientgroup', function(data) {
$scope.groups = data.groups;
});
};
$scope.updateClient = function (group) {
$('#edit-client').modal('toggle');
$scope.createGroup = function() {
smartRequest.post('client/group/create', {
name: $scope.newGroup.name
}, function (data) {
$scope.getGroups();
$scope.closeCard();
});
};
smartRequest.post('v1/client', {
id: $scope.contextElement.id,
name: $scope.contextElement.name,
group_id: group,
phone: $scope.contextElement.phone,
address: $scope.contextElement.address,
email: $scope.contextElement.email,
barcode: $scope.contextElement.barcode,
task: 'update'
}, function (data) {
if (data.status == 'success') {
Notification.success(data.message);
$scope.openGroup(group);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$scope.createClient = function() {
smartRequest.post('v1/createclient/', {
name: $scope.newClient.name,
group_id: $scope.currentGroup,
phone: $scope.newClient.phone,
address: $scope.newClient.address,
email: $scope.newClient.email,
barcode: $scope.newClient.barcode,
is_special_price: $scope.newClient.special_price
}, function(data) {
$scope.pager($scope.currentGroup);
$scope.closeCard();
});
};
$scope.removeClient = function () {
$('#client-confirm-delete').modal('toggle');
$('#edit-client').modal('toggle');
$scope.createBarcode = function() {
console.log($scope.newBarcode.group_id);
smartRequest.post('v1/createbarcode/', {
group_id: $scope.newBarcode.group_id,
start: $scope.newBarcode.start,
end: $scope.newBarcode.end,
}, function(data) {
$scope.getGroups();
$scope.closeCard();
});
};
smartRequest.post('v1/client', {
id: $scope.contextElement.id,
task: 'delete'
}, function (data) {
$scope.getGroups();
$scope.openGroup($scope.currentGroup);
if (data.message) {
Notification.success(data.message);
}
if (data.error_message) {
Notification.error(data.error_message);
}
});
};
$scope.closeCard = function() {
$scope.isCreateNewGroup = false;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = false;
$scope.currentClientId = 0;
};
$scope.pager = function (currentPage) {
smartRequest.get('v1/clients?group_id=' + $scope.currentGroup + '&page=' + $scope.currentPage, function (data) {
$scope.clients = data.clients;
$scope.pages = data.pages;
$scope.currentGroup = data.currentGroup;
$scope.total = data.total;
});
};
$scope.openClientInfo = function(client) {
$scope.currentClientId = client.id;
$scope.isCreateNewGroup = false;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = false;
$scope.getClients = function () {
if ($scope.search.query.length === 0) {
$scope.openGroup({id: $scope.currentGroupId});
} else {
smartRequest.post('client/search', {
name: $scope.search.query
},
function (data) {
$scope.clients = data.clients;
});
}
};
smartRequest.get('client/client/info?id=' + $scope.currentClientId, function(data) {
$scope.currentClient = data.client;
$scope.openFormCreateGroup = function () {
$scope.currentClientId = 0;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = false;
$scope.isCreateNewGroup = !$scope.isCreateNewGroup;
};
smartRequest.get('client/orders?client_id=' + $scope.currentClient.id, function(data) {
$scope.orders = data.orders;
});
});
};
$scope.openFormCreateClient = function () {
$scope.currentClientId = 0;
$scope.isCreateNewGroup = false;
$scope.isCreateNewBarcode = false;
$scope.isCreateNewClient = !$scope.isCreateNewClient;
};
$scope.getItems = function(order) {
smartRequest.get('client/order?order_id=' + order.id, function(data) {
$scope.order = data;
$('#order').modal('toggle');
});
};
var mergeFiles = function (statuses) {
if (statuses == 4) {
smartRequest.get('v1/clientfile?complete=1', function(data) {
$scope.filedate = data.filedate;
$scope.filename = data.filename;
$scope.terminalkey = data.terminalKey;
$scope.downloadClientFile();
$scope.statuses = [];
});
}
};
$scope.createClientFile = function(count) {
smartRequest.get('v1/clientfile?th=1', function(data) {
if(data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
smartRequest.get('v1/clientfile?th=2', function(data) {
if(data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
smartRequest.get('v1/clientfile?th=3', function(data) {
if(data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
smartRequest.get('v1/clientfile?th=4', function(data) {
if(data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
};
$scope.downloadClientFile = function() {
smartRequest.get('v1/clientgroup', function(data) {
window.open(window.location.protocol + '//' + window.location.hostname + '/Exchange/' + $scope.terminalkey +'/'+ $scope.filename);
});
};
$scope.clientsSearch = function () {
if (promise) {
$timeout.cancel(promise);
}
promise = $timeout(function () {
if ($scope.search.query.length === 0) {
$scope.getGroups();
}
else {
$scope.groups = [];
}
$scope.openFormCreateBarcode = function () {
$scope.currentClientId = 0;
$scope.isCreateNewGroup = false;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = !$scope.isCreateNewBarcode;
smartRequest.get('v1/clientgroup', function (data) {
$scope.groups = data.groups;
});
};
$scope.getClients();
}, 300);
};
$scope.clearSearchInput = function () {
$scope.search.query = '';
$scope.clientsSearch();
};
$scope.createGroup = function () {
smartRequest.post('client/group/create', {
name: $scope.newGroup.name
}, function (data) {
$scope.getGroups();
$scope.closeCard();
});
};
$scope.getGroups();
}
}
$scope.createClient = function () {
smartRequest.post('v1/createclient/', {
name: $scope.newClient.name,
group_id: $scope.currentGroup,
phone: $scope.newClient.phone,
address: $scope.newClient.address,
email: $scope.newClient.email,
barcode: $scope.newClient.barcode,
is_special_price: $scope.newClient.special_price
}, function (data) {
$scope.pager($scope.currentGroup);
$scope.closeCard();
});
};
$scope.createBarcode = function () {
console.log($scope.newBarcode.group_id);
smartRequest.post('v1/createbarcode/', {
group_id: $scope.newBarcode.group_id,
start: $scope.newBarcode.start,
end: $scope.newBarcode.end,
}, function (data) {
$scope.getGroups();
$scope.closeCard();
});
};
$scope.closeCard = function () {
$scope.isCreateNewGroup = false;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = false;
$scope.currentClientId = 0;
};
$scope.openClientInfo = function (client) {
$scope.currentClientId = client.id;
$scope.isCreateNewGroup = false;
$scope.isCreateNewClient = false;
$scope.isCreateNewBarcode = false;
$scope.orders = [];
$scope.currentClient = [];
$scope.clientLogs = [];
smartRequest.get('v1/clientinfo?id=' + $scope.currentClientId, function (data) {
$scope.currentClient = data.client;
smartRequest.get('v1/clientlog?id=' + $scope.currentClient.id, function (data) {
$scope.clientLogs = data.client.info;
});
});
};
$scope.getOrders = function (client_id) {
smartRequest.get('v1/clientorders?id=' + client_id, function (data) {
$scope.orders = data.orders;
});
};
$scope.getItems = function (order_id, opened, closed) {
smartRequest.get('v1/clientorderinfo?order_id=' + order_id + '&opened=' + opened + '&closed=' + closed, function (data) {
$scope.order = data.info;
$('#order').modal('toggle');
});
};
var mergeFiles = function (statuses) {
if (statuses == 4) {
smartRequest.get('v1/clientfile?complete=1', function (data) {
$scope.filedate = data.filedate;
$scope.filename = data.filename;
$scope.terminalkey = data.terminalKey;
$scope.downloadClientFile();
$scope.statuses = [];
});
}
};
$scope.createClientFile = function (count) {
smartRequest.get('v1/clientfile?th=1', function (data) {
if (data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
smartRequest.get('v1/clientfile?th=2', function (data) {
if (data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
smartRequest.get('v1/clientfile?th=3', function (data) {
if (data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
smartRequest.get('v1/clientfile?th=4', function (data) {
if (data.status == 'success') {
$scope.statuses.push(data.status);
console.log($scope.statuses);
$scope.statusCount = $scope.statuses.length;
mergeFiles($scope.statusCount);
}
});
};
$scope.downloadClientFile = function () {
smartRequest.get('v1/clientgroup', function (data) {
window.open(window.location.protocol + '//' + window.location.hostname + '/Exchange/' + $scope.terminalkey + '/' + $scope.filename);
});
};
$scope.clientsSearch = function () {
if (promise) {
$timeout.cancel(promise);
}
promise = $timeout(function () {
if ($scope.search.query.length === 0) {
$scope.getGroups();
} else {
$scope.groups = [];
}
$scope.getClients();
}, 300);
};
$scope.clearSearchInput = function () {
$scope.search.query = '';
$scope.clientsSearch();
};
$scope.getGroups();
}
}
)();

340
web/controllers/loyalty.js Normal file
View File

@@ -0,0 +1,340 @@
(function() {
'use strict';
angular
.module('app')
.controller('LoyaltyCtrl', LoyaltyCtrl);
LoyaltyCtrl.$inject = ['$scope', 'smartRequest', 'Notification'];
function LoyaltyCtrl($scope, smartRequest, Notification) {
$scope.discounts = [];
$scope.currentDiscount = {};
$scope.terms = [];
$scope.defaultTerm = 0;
$scope.currentTerms = [];
$scope.readonlyMode = false;
$scope.selectedElement = {
type: '',
value: 0,
currentModal: '',
param: {},
info: '',
subtype: ''
};
$scope.navigationStack = [];
$scope.update = function() {
smartRequest.get('discount/list', function(data) {
for(var i = 0; i < data.discounts.length; i++) {
if(data.discounts[i].start_date === '0') {
data.discounts[i].start_date = '';
}
if(data.discounts[i].end_date === '0') {
data.discounts[i].end_date = '';
}
data.discounts[i].is_enable = data.discounts[i].is_enable === '1';
data.discounts[i].is_check_all = data.discounts[i].is_check_all === '1';
}
$scope.discounts = data.discounts;
});
};
$scope.delete = function() {
$('#edit-discount-confirm-delete').modal('toggle');
$('#edit-discount').modal('toggle');
smartRequest.post('discount/delete', {
id: $scope.currentDiscount.id
}, function(data) {
$scope.update();
});
};
$scope.add = function() {
$scope.currentDiscount = {};
$scope.currentDiscount.value_type = '0';
$('#new-discount').modal();
};
$scope.create = function() {
$('#new-discount').modal('toggle');
smartRequest.post('discount/store', {
name: $scope.currentDiscount.name,
value_type: $scope.currentDiscount.value_type,
value: $scope.currentDiscount.value
}, function(data) {
$scope.update();
});
};
$scope.edit = function(discount) {
$scope.currentDiscount = discount;
$scope.currentDiscount.new_term_type = $scope.defaultTerm;
$scope.updateTerms();
$('#edit-discount').modal();
};
$scope.save = function() {
$('#edit-discount').modal('toggle');
smartRequest.post('discount/update', {
id: $scope.currentDiscount.id,
name: $scope.currentDiscount.name,
value_type: $scope.currentDiscount.value_type,
value: $scope.currentDiscount.value,
is_enable: $scope.currentDiscount.is_enable,
start_date: $scope.currentDiscount.start_date,
end_date: $scope.currentDiscount.end_date,
is_check_all: $scope.currentDiscount.is_check_all
}, function(data) {
for(var i = 0; i < $scope.currentTerms.length; i++) {
var params = [];
for(var j = 0; j < $scope.currentTerms[i].params.length; j++) {
params.push({
code: $scope.currentTerms[i].params[j].code,
value: $scope.currentTerms[i].params[j].value,
subtype: $scope.currentTerms[i].params[j].subtype
});
}
smartRequest.post('discount/term/update', {
id: $scope.currentTerms[i].id,
is_term: $scope.currentTerms[i].is_term === false,
value: JSON.stringify(params)
});
}
Notification.success('Скидка сохранена');
$scope.update();
});
};
$scope.updateTerms = function() {
smartRequest.get('discount/term/list?discount_code=' + $scope.currentDiscount.code, function(data) {
for(var i = 0; i < data.discount_terms.length; i++) {
data.discount_terms[i].is_term = data.discount_terms[i].is_term === '0';
}
$scope.currentTerms = data.discount_terms;
});
};
$scope.addTerm = function() {
smartRequest.post('discount/term/store', {
discount_code: $scope.currentDiscount.code,
discount_type: $scope.currentDiscount.new_term_type
}, function(data) {
$scope.update();
$scope.updateTerms();
});
};
$scope.askDeleteTerm = function(term) {
$scope.currentTerm = term;
$('#edit-term-confirm-delete').modal();
};
$scope.deleteTerm = function() {
$('#edit-term-confirm-delete').modal('toggle');
smartRequest.post('discount/term/delete', {
id: $scope.currentTerm.id
}, function(data) {
$scope.updateTerms();
});
};
/* MENU BLOCK */
$scope.selectMenuItemParams = {
currentMenu: 0,
currentFolder: 0,
menus: [],
folders: [],
items: []
};
$scope.selectedMenuElement = {};
$scope.selectMenuNavigationStack = [];
$scope.selectMenuItem = function() {
$scope.selectMenuItemParams = {
currentMenu: 0,
currentFolder: 0,
menus: [],
folders: [],
items: []
};
smartRequest.get('menu/list', function (data) {
$scope.selectMenuItemParams.menus = data.menus;
});
};
$scope.openMenuItem = function(menu) {
$scope.selectMenuItemParams.currentMenu = menu.id;
$scope.selectMenuNavigationStack.push({
type: 'menu',
value: menu
});
smartRequest.get('menu/folder/list?menu_id=' + $scope.selectMenuItemParams.currentMenu + '&parent_id=0', function (data) {
$scope.selectMenuItemParams.folders = data.folders;
});
smartRequest.get('menu/dish/list?menu_id=' + $scope.selectMenuItemParams.currentMenu + '&parent_id=0', function (data) {
$scope.selectMenuItemParams.items = data.dishes;
});
};
$scope.openFolderItem = function(folder) {
$scope.selectMenuItemParams.currentFolder = folder.id;
$scope.selectMenuNavigationStack.push({
type: 'folder',
value: folder
});
smartRequest.get('menu/folder/list?menu_id=' + $scope.selectMenuItemParams.currentMenu + '&parent_id=' + $scope.selectMenuItemParams.currentFolder, function (data) {
$scope.selectMenuItemParams.folders = data.folders;
});
smartRequest.get('menu/dish/list?menu_id=' + $scope.selectMenuItemParams.currentMenu + '&parent_id=' + $scope.selectMenuItemParams.currentFolder, function (data) {
$scope.selectMenuItemParams.items = data.dishes;
});
};
$scope.upMenuItem = function() {
if($scope.selectMenuNavigationStack.length > 1) {
$scope.selectMenuNavigationStack.pop();
var page = $scope.selectMenuNavigationStack.pop();
if(page.type === 'menu') {
$scope.openMenuItem(page.value);
}
if(page.type === 'folder') {
$scope.openFolderItem(page.value);
}
}
else {
$scope.selectMenuItem();
}
};
/* END MENU BLOCK */
/* CLIENT BLOCK */
$scope.selectClientItemParams = {
clients: [],
groups: [],
isParent: true
};
$scope.selectClientItem = function() {
$scope.selectClientItemParams = {
clients: [],
groups: [],
isParent: true
};
$scope.currentPage = 1;
$scope.pages = 1;
smartRequest.get('v1/clientgroup', function(data) {
$scope.selectClientItemParams.groups = data.groups;
});
};
$scope.openGroup = function(group) {
$scope.selectClientItemParams.isParent = false;
$scope.currentGroup = group.id;
$scope.currentPage = 1;
$scope.selectClientItemParams.groups = [];
$scope.selectClientItemParams.clients = [];
smartRequest.get('v1/clients?group_id=' + $scope.currentGroup + '&page=' + $scope.currentPage, function(data) {
$scope.selectClientItemParams.clients = data.clients;
$scope.pages = data.pages;
$scope.currentGroup = data.currentGroup;
});
};
$scope.pager = function(currentPage) {
$scope.selectClientItemParams.isParent = false;
$scope.selectClientItemParams.groups = [];
$scope.selectClientItemParams.clients = [];
smartRequest.get('v1/clients?group_id=' + $scope.currentGroup + '&page=' + $scope.currentPage, function(data) {
$scope.selectClientItemParams.clients = data.clients;
$scope.pages = data.pages;
$scope.currentGroup = data.currentGroup;
});
};
$scope.upGroup = function() {
$scope.selectClientItemParams = {
clients: [],
groups: [],
isParent: true
};
smartRequest.get('v1/clientgroup', function(data) {
$scope.selectClientItemParams.groups = data.groups;
});
};
/* END CLIENT BLOCK */
$scope.selectItem = function(value, type, info) {
$scope.selectedElement.value = value;
$scope.selectedElement.type = type;
$scope.selectedElement.info = info;
};
$scope.editTermParam = function(param) {
$scope.$eval(param.type[0].toLowerCase() + param.type.slice(1) + '()');
$scope.selectedElement = {
type: param.type,
value: param.value,
currentModal: '#edit-' + param.type.toLowerCase(),
param: param,
info: param.info,
subtype: param.subtype
};
$($scope.selectedElement.currentModal).modal();
};
$scope.confirmSelect = function() {
$($scope.selectedElement.currentModal).modal('toggle');
$scope.selectedElement.param.value = $scope.selectedElement.value;
$scope.selectedElement.param.info = $scope.selectedElement.info;
$scope.selectedElement.param.subtype = $scope.selectedElement.type;
};
$scope.update();
smartRequest.get('discount/type/list', function(data) {
$scope.terms = data.discount_types;
$scope.defaultTerm = data.default.code;
});
smartRequest.get('menu/readonly', function (data) {
$scope.readonlyMode = data.readonly;
if (data.readonly) {
Notification.error('Режим просмотра!');
}
});
}
})();