supersamApp.controller('FasadOrdersController', [ '$scope', '$http', '$timeout', 'config', '$filter', function($scope, $http, $timeout, config, $filter) { var fasadOrders; fasadOrders = (function() { class fasadOrders { constructor() { this.takeOrder = this.takeOrder.bind(this); this.getOrdersList = this.getOrdersList.bind(this); this.adminDeleteOrder = this.adminDeleteOrder.bind(this); this.adminTakeOrderModal = this.adminTakeOrderModal.bind(this); this.adminTakeOrder = this.adminTakeOrder.bind(this); this.confirmAdminTakeOrder = this.confirmAdminTakeOrder.bind(this); this.printOrder = this.printOrder.bind(this); $scope.utilities.showContentOnLoad(); } takeOrder(takeOrder) { var dataToSend; if (!this.isTakeOrderSubmitting) { if (confirm("Вы уверены, что хотите взять на исполнение данный заказ?")) { this.isTakeOrderSubmitting = true; dataToSend = { id: takeOrder.id }; return $http({ method: 'POST', url: config.urls.fasadTakeOrder, data: dataToSend, timeout: 30000 }).then((response) => { var data, key, order, ref; this.isTakeOrderSubmitting = false; if (response.data) { data = response.data; if (data.status && (data.status === "success")) { ref = config.orders.list; for (key in ref) { order = ref[key]; if (order.id === takeOrder.id) { order.manager_id = data.manager_id; order.taken_date = data.taken_date; } } toastr.success("Данный заказ взят Вами на исполнение"); return window.location = config.urls.fasadDownloadOrderFiles.replace('12345', takeOrder.id); } else { if (data.warning) { toastr.warning(data.warning); } if (data.error) { return toastr.warning(data.error); } } } }).catch(() => { this.isTakeOrderSubmitting = false; return toastr.error(config.global_labels.defaultErrorMessage.value); }); } } } getOrdersList() { var dataToSend; if (!this.isLoading) { this.isLoading = true; dataToSend = { month: config.orders.month, year: config.orders.year, select: config.orders.select, branchId: config.orders.branchId, managerId: config.orders.managerId }; return $http({ method: 'POST', url: config.urls.fasadGetOrdersList, data: dataToSend, timeout: 30000 }).then((response) => { var data; this.isLoading = false; if (response.data) { data = response.data; if (data.status && (data.status === "success")) { config.orders = data.orders; return $timeout(() => { return $('[data-toggle="popover"]').popover(); }); } else { if (data.warning) { toastr.warning(data.warning); } if (data.error) { return toastr.warning(data.error); } } } }).catch(() => { this.isLoading = false; return toastr.error(config.global_labels.defaultErrorMessage.value); }); } } adminDeleteOrder(adminDeleteOrder) { var dataToSend; if (!this.isTakeOrderSubmitting) { if (confirm("Вы уверены, что хотите удалить данный заказ?")) { this.isTakeOrderSubmitting = true; dataToSend = { id: adminDeleteOrder.id }; return $http({ method: 'POST', url: config.urls.fasadAdminDeleteOrder, data: dataToSend, timeout: 30000 }).then((response) => { var data, dupKey, dupOrderNum, key, order, ref, ref1, ref2; this.isTakeOrderSubmitting = false; if (response.data) { data = response.data; if (data.status && (data.status === "success")) { ref = config.orders.list; for (key in ref) { order = ref[key]; if (order.possibleDuplicates) { ref1 = order.possibleDuplicates; for (dupKey in ref1) { dupOrderNum = ref1[dupKey]; if (dupOrderNum === adminDeleteOrder.order_num) { order.possibleDuplicates.splice(dupKey, 1); } } } } ref2 = config.orders.list; for (key in ref2) { order = ref2[key]; if (order.id === adminDeleteOrder.id) { config.orders.list.splice(key, 1); } } return toastr.success("Заказ был успешно удалён"); } else { if (data.warning) { toastr.warning(data.warning); } if (data.error) { return toastr.warning(data.error); } } } }).catch(() => { this.isTakeOrderSubmitting = false; return toastr.error(config.global_labels.defaultErrorMessage.value); }); } } } adminTakeOrderModal(action) { $timeout(() => { return angular.element("#adminTakeOrderModal").modal(action); }); return $scope.adminTakeOrderForm.$setPristine(); } adminTakeOrder(order) { this.adminTakeOrderModalData = angular.copy(order); this.adminTakeOrderModalData.current_manager_id = angular.copy(order.manager_id); return this.adminTakeOrderModal("show"); } confirmAdminTakeOrder() { var dataToSend; if (!this.isTakeOrderSubmitting) { dataToSend = { id: this.adminTakeOrderModalData.id, manager_id: this.adminTakeOrderModalData.manager_id }; return $http({ method: 'POST', url: config.urls.fasadAdminTakeOrder, data: dataToSend, timeout: 30000 }).then((response) => { var data, key, order, ref; this.isTakeOrderSubmitting = false; if (response.data) { data = response.data; if (data.status && (data.status === "success")) { ref = config.orders.list; for (key in ref) { order = ref[key]; if (order.id === this.adminTakeOrderModalData.id) { order.manager_id = data.manager_id; order.taken_date = data.taken_date; } } this.adminTakeOrderModal("hide"); return toastr.success("Настройки заказа были успешно изменены"); } else { if (data.warning) { toastr.warning(data.warning); } if (data.error) { return toastr.warning(data.error); } } } }).catch(() => { this.isTakeOrderSubmitting = false; return toastr.error(config.global_labels.defaultErrorMessage.value); }); } } printOrder(printOrderUrl) { var printOrderWindow; if (printOrderUrl && (printOrderUrl.length > 0)) { printOrderWindow = window.open(printOrderUrl, '_blank'); printOrderWindow.focus(); return $timeout(() => { return printOrderWindow.print(); }, 1000); } } }; fasadOrders.prototype.isLoading = false; fasadOrders.prototype.isTakeOrderSubmitting = false; fasadOrders.prototype.adminTakeOrderModalData = {}; return fasadOrders; }).call(this); $scope.config = config; $scope.utilities = new UtilitiesClass(config, $filter, $timeout); return $scope.orders = new fasadOrders(); } ]);