v.2.24
1. POSTBonus in/out 2. POSTPresale in/out 3. Переработана форма гостя
This commit is contained in:
340
web/controllers/loyalty.js
Normal file
340
web/controllers/loyalty.js
Normal 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('Режим просмотра!');
|
||||
}
|
||||
});
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user