Initial commit: apps.supersamsev.ru

This commit is contained in:
root committed 2026-10-21 23:46:31 +03:00
commit 54475e7d3d
17284 files changed
+98268

No files matched your search

+442
View File
@@ -0,0 +1,442 @@
supersamApp.controller('OrderPaymentController', [
'$scope',
'$http',
'$timeout',
'$filter',
'config',
'$interval',
function($scope,
$http,
$timeout,
$filter,
config,
$interval) {
var orderPaymentApp;
orderPaymentApp = (function() {
class orderPaymentApp {
constructor() {
this.openDateFromDatepicker = this.openDateFromDatepicker.bind(this);
this.openDateToDatepicker = this.openDateToDatepicker.bind(this);
this.processSearchResponse = this.processSearchResponse.bind(this);
this.searchOrders = this.searchOrders.bind(this);
this.adminDeleteOrder = this.adminDeleteOrder.bind(this);
this.openElplatPaymentHistoryModal = this.openElplatPaymentHistoryModal.bind(this);
this.adminShowElplatPaymentHistory = this.adminShowElplatPaymentHistory.bind(this);
this.makeElplatRefund = this.makeElplatRefund.bind(this);
this.openCloudPaymentsPaymentHistoryModal = this.openCloudPaymentsPaymentHistoryModal.bind(this);
this.adminShowCloudPaymentsPaymentHistory = this.adminShowCloudPaymentsPaymentHistory.bind(this);
this.makeCloudPaymentsRefund = this.makeCloudPaymentsRefund.bind(this);
this.getPaymentGatewayLabel = this.getPaymentGatewayLabel.bind(this);
$scope.utilities.showContentOnLoad();
$timeout(() => {
return angular.element("#orderPaymentSearch").focus();
});
this.dateFrom = new Date();
this.dateFrom.setDate(this.dateFrom.getDate() - 7);
this.dateTo = new Date(); //+7 days
config.sortFields = {
ordersList: {
field: 'expiry_date',
direction: 'desc'
}
};
}
openDateFromDatepicker() {
return this.dateFromDatepicker.opened = true;
}
openDateToDatepicker() {
return this.dateToDatepicker.opened = true;
}
processSearchResponse(data) {
this.errors = [];
this.ordersList = data.ordersList;
this.totalOrders = data.totalOrders;
this.paidCount = data.paidCount;
this.paidTotal = data.paidTotal;
this.unpaidCount = data.unpaidCount;
this.unpaidTotal = data.unpaidTotal;
this.pagination.totalItems = data.totalOrders;
this.pagination.totalPages = this.pagination.numPerPage < 1 ? 1 : Math.ceil(this.pagination.totalItems / this.pagination.numPerPage);
this.pagination.totalPages = Math.max(this.pagination.totalPages || 0, 1);
return $timeout(() => {
$('[data-toggle="tooltip"]').tooltip();
return angular.element("body").scrollTo('#table-order-payment-head', 50, {
offset: {
top: -300
}
});
});
}
searchOrders() {
var dataToSend;
this.search = angular.copy(this.search.trim());
$timeout(() => {
return angular.element("#orderPaymentSearch").val(this.search);
});
if (!this.isSubmitting) {
this.isSubmitting = true;
$timeout(() => {
return $('[data-toggle="tooltip"]').tooltip('dispose');
});
dataToSend = {
action: "searchOrders",
search: this.search,
paymentStatus: this.paymentStatus,
paymentGateway: this.paymentGateway,
currentPage: this.pagination.currentPage,
numPerPage: this.pagination.numPerPage,
sortFields: config.sortFields.ordersList,
dateFrom: this.dateFrom,
dateTo: this.dateTo
};
return $http.post(config.urls.orderPayment, dataToSend).then((response) => {
var data;
data = response.data;
this.isSubmitting = false;
this.usedSearch = angular.copy(this.search);
if (data) {
if (data.status && (data.status === "success")) {
return this.processSearchResponse(data);
} else {
if (data.errors && data.errors.length) {
return this.errors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch((response) => {
if (response.data && response.data.errors) {
this.errors = response.data.errors;
} else {
toastr.error(config.global_labels.defaultErrorMessage.value);
}
this.usedSearch = angular.copy(this.search);
return this.isSubmitting = false;
});
}
}
adminDeleteOrder(adminDeleteOrder) {
var dataToSend;
if (!this.isDeleteOrderSubmitting) {
if (confirm("Вы уверены, что хотите удалить данный счет?")) {
this.isDeleteOrderSubmitting = true;
dataToSend = {
id: adminDeleteOrder.id,
search: this.search,
paymentStatus: this.paymentStatus,
paymentGateway: this.paymentGateway,
currentPage: this.pagination.currentPage,
numPerPage: this.pagination.numPerPage,
sortFields: config.sortFields.ordersList
};
return $http({
method: 'POST',
url: config.urls.orderPaymentAdminDeleteOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isDeleteOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.processSearchResponse(data);
return toastr.success("Счет был успешно удалён");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isDeleteOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
openElplatPaymentHistoryModal() {
return $timeout(() => {
return angular.element("#elplatPaymentHistoryModal").modal("show");
});
}
adminShowElplatPaymentHistory(orderId, order_num, showElplatHistoryModalOnSuccess = true) {
var dataToSend;
dataToSend = {
id: orderId
};
return $http({
method: 'POST',
url: config.urls.getElplatPaymentHistory,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.elplatPaymentModalData = {
orderId: orderId,
order_num: order_num,
history: data.history,
refundDescription: data.refundDescription,
refundAmount: data.refundAmount
};
if (showElplatHistoryModalOnSuccess) {
return this.openElplatPaymentHistoryModal();
}
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
makeElplatRefund() {
var dataToSend;
if (!this.isMakingElplatRefundInProgress) {
if (confirm("Вы уверены, что хотите вернуть средства по данному счету?")) {
this.isMakingElplatRefundInProgress = true;
dataToSend = {
id: this.elplatPaymentModalData.orderId,
refundDescription: this.elplatPaymentModalData.refundDescription,
refundAmount: this.elplatPaymentModalData.refundAmount
};
return $http({
method: 'POST',
url: config.urls.makeElplatRefund,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isMakingElplatRefundInProgress = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
toastr.success("Возврат средств был произведен успешно.");
return this.adminShowElplatPaymentHistory(this.elplatPaymentModalData.orderId, "", false);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isMakingElplatRefundInProgress = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
openCloudPaymentsPaymentHistoryModal() {
$timeout(() => {
return angular.element("#cloudPaymentsPaymentHistoryModal").modal("show");
});
return angular.element("#cloudPaymentsPaymentHistoryModal").on("hidden.bs.modal", () => {
if ($scope.orderPayment.cloudPaymentsPaymentModalDataPromise) {
$interval.cancel($scope.orderPayment.cloudPaymentsPaymentModalDataPromise);
return $scope.orderPayment.cloudPaymentsPaymentModalDataPromise = null;
}
});
}
adminShowCloudPaymentsPaymentHistory(orderId, order_num, showCloudPaymentsHistoryModalOnSuccess = true) {
var dataToSend;
dataToSend = {
id: orderId
};
return $http({
method: 'POST',
url: config.urls.getCloudPaymentsPaymentHistory,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.cloudPaymentsPaymentModalData = {
orderId: orderId,
order_num: order_num,
history: data.history,
refundAmount: data.refundAmount
};
if (showCloudPaymentsHistoryModalOnSuccess) {
return this.openCloudPaymentsPaymentHistoryModal();
}
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
makeCloudPaymentsRefund() {
var dataToSend;
if (!this.isMakingCloudPaymentsRefundInProgress) {
if (confirm("Вы уверены, что хотите вернуть средства по данному счету?")) {
this.isMakingCloudPaymentsRefundInProgress = true;
dataToSend = {
id: this.cloudPaymentsPaymentModalData.orderId,
refundAmount: this.cloudPaymentsPaymentModalData.refundAmount
};
return $http({
method: 'POST',
url: config.urls.makeCloudPaymentsRefund,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isMakingCloudPaymentsRefundInProgress = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
toastr.success("Возврат средств был произведен успешно.");
this.adminShowCloudPaymentsPaymentHistory(this.cloudPaymentsPaymentModalData.orderId, "", false);
return this.cloudPaymentsPaymentModalDataPromise = $interval(() => {
return this.adminShowCloudPaymentsPaymentHistory(this.cloudPaymentsPaymentModalData.orderId, "", false);
}, 2000);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isMakingCloudPaymentsRefundInProgress = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
getPaymentGatewayLabel(paymentGateway) {
var result;
result = "";
if (paymentGateway && (paymentGateway.length > 0)) {
switch (paymentGateway) {
case "Elplat":
return result = "СБП";
case "CloudPayments":
return result = "РНКБ";
}
}
}
};
orderPaymentApp.prototype.isSubmitting = false;
orderPaymentApp.prototype.isDeleteOrderSubmitting = false;
orderPaymentApp.prototype.errors = [];
orderPaymentApp.prototype.search = "";
orderPaymentApp.prototype.paymentStatus = "";
orderPaymentApp.prototype.paymentGateway = "";
orderPaymentApp.prototype.usedSearch = null;
orderPaymentApp.prototype.ordersList = [];
orderPaymentApp.prototype.elplatPaymentModalData = {};
orderPaymentApp.prototype.isMakingElplatRefundInProgress = false;
orderPaymentApp.prototype.cloudPaymentsPaymentModalData = {};
orderPaymentApp.prototype.isMakingCloudPaymentsRefundInProgress = false;
orderPaymentApp.prototype.cloudPaymentsPaymentModalDataPromise = null;
orderPaymentApp.prototype.dateFromDatepicker = {
opened: false
};
orderPaymentApp.prototype.dateFromDatepickerOptions = {
formatYear: 'yyyy',
startingDay: 1,
showWeeks: false
};
orderPaymentApp.prototype.dateToDatepicker = {
opened: false
};
orderPaymentApp.prototype.dateToDatepickerOptions = {
formatYear: 'yyyy',
startingDay: 1,
showWeeks: false
};
orderPaymentApp.prototype.pagination = {
currentPage: 1,
numPerPage: 25,
totalItems: 0,
onWatchChange: (newValue,
oldValue) => {
if (newValue !== oldValue) {
return $scope.orderPayment.searchOrders();
}
},
setPage: (page) => {
if (page !== $scope.orderPayment.pagination.currentPage) {
$scope.orderPayment.pagination.currentPage = page;
}
$scope.orderPayment.pagination.totalPages = 0;
$scope.orderPayment.ordersList = [];
return $scope.orderPayment.searchOrders();
}
};
return orderPaymentApp;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
$scope.orderPayment = new orderPaymentApp();
$scope.orderPayment.searchOrders();
$scope.$watch("orderPayment.pagination.currentPage",
$scope.orderPayment.pagination.onWatchChange);
$scope.$watch("config.sortFields.ordersList.field",
$scope.orderPayment.pagination.onWatchChange);
return $scope.$watch("config.sortFields.ordersList.direction",
$scope.orderPayment.pagination.onWatchChange);
}
]);