From 29e363b89773fdd3f563317e9a24b57b7e89374b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Mon, 2 Dec 2024 11:53:16 +0100 Subject: [PATCH 1/7] VCST-2334: Added Order Line Item blade --- .../en.VirtoCommerce.Orders.json | 135 +++++++++--------- .../blades/customerOrder-item-detail.js | 117 +++++++++++++++ .../blades/customerOrder-item-detail.tpl.html | 67 +++++++++ .../Scripts/blades/customerOrder-items.js | 13 +- .../blades/customerOrder-items.tpl.html | 10 +- 5 files changed, 265 insertions(+), 77 deletions(-) create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html diff --git a/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json b/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json index e839dc62..ae27a2f5 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json +++ b/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json @@ -44,6 +44,11 @@ "fee-total": "Total fee" } }, + "customerOrder-item-detail": { + "labels": { + "product": "Product name" + } + }, "customerOrder-list": { "title": "Customer orders", "labels": { @@ -194,74 +199,74 @@ "labels": { "transactionId": "Transaction Id", "outerId": "Outer Id" - } - }, - "transactions-list": { - "title": "Payment gateway transactions", - "subtitle": "List of all payment gateway interactions" - }, - "transaction-detail": { - "title": "Transaction details", - "subtitle": "Raw transaction data " - }, - "shipment-detail": { - "title": "Shipment #{{number}}", - "title-new": "New shipment", - "subtitle": "Edit shipment details", - "labels": { - "shipment-method": "Shipment method", - "approved": "Approved", - "shipment-number": "Shipment ID", - "status": "Status", - "fulfillment-center": "Fulfillment center", - "from": "Date and time", - "employee": "Assigned to", - "price": "Shipment amount", - "price-with-tax": "Shipment amount with tax", - "shipment-method-option": "Shipment method", - "tracking-number": "Tracking number", - "tracking-url": "Tracking URL", - "delivery-date": "Delivery date", - "vendor": "Vendor" - }, - "placeholders": { - "status": "Select...", - "shipment-method": "Select...", - "fulfillment-center": "Select or search a center...", - "shipment-method-option": "Default shipment method", - "vendor": "Select..." - } - }, - "shipment-items": { - "title": "{{title}} line items", - "subtitle": "Edit shipment items", - "labels": { - "item": "Item", - "status": "Status", - "quantity": "Qty", - "price": "Price", - "total": "Total" - } - }, - "catalog-items-select": { - "title": "Add item to order" - }, - "newOperation-wizard": { - "title": "New operation", - "subtitle": "Select operation type", - "menu": { - "shipment-operation": { - "description": "Shipment document" - }, - "payment-operation": { - "description": "Incoming payment document" + } + }, + "transactions-list": { + "title": "Payment gateway transactions", + "subtitle": "List of all payment gateway interactions" + }, + "transaction-detail": { + "title": "Transaction details", + "subtitle": "Raw transaction data " + }, + "shipment-detail": { + "title": "Shipment #{{number}}", + "title-new": "New shipment", + "subtitle": "Edit shipment details", + "labels": { + "shipment-method": "Shipment method", + "approved": "Approved", + "shipment-number": "Shipment ID", + "status": "Status", + "fulfillment-center": "Fulfillment center", + "from": "Date and time", + "employee": "Assigned to", + "price": "Shipment amount", + "price-with-tax": "Shipment amount with tax", + "shipment-method-option": "Shipment method", + "tracking-number": "Tracking number", + "tracking-url": "Tracking URL", + "delivery-date": "Delivery date", + "vendor": "Vendor" }, - "refund-operation": { - "description": "Refund document" + "placeholders": { + "status": "Select...", + "shipment-method": "Select...", + "fulfillment-center": "Select or search a center...", + "shipment-method-option": "Default shipment method", + "vendor": "Select..." + } + }, + "shipment-items": { + "title": "{{title}} line items", + "subtitle": "Edit shipment items", + "labels": { + "item": "Item", + "status": "Status", + "quantity": "Qty", + "price": "Price", + "total": "Total" + } + }, + "catalog-items-select": { + "title": "Add item to order" + }, + "newOperation-wizard": { + "title": "New operation", + "subtitle": "Select operation type", + "menu": { + "shipment-operation": { + "description": "Shipment document" + }, + "payment-operation": { + "description": "Incoming payment document" + }, + "refund-operation": { + "description": "Refund document" + } } } - } - }, + }, "widgets": { "notifications": { "title": "Notification feed", diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js new file mode 100644 index 00000000..c7208c32 --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js @@ -0,0 +1,117 @@ +angular.module('virtoCommerce.orderModule') + .controller('virtoCommerce.orderModule.customerOrderItemDetailController', [ + '$scope', 'platformWebApp.bladeNavigationService', 'platformWebApp.authService', + function ($scope, bladeNavigationService, authService) { + var blade = $scope.blade; + blade.updatePermission = 'order:update'; + blade.isVisiblePrices = authService.checkPermission('order:read_prices'); + blade.title = blade.currentEntity.name; + blade.metaFields1 = [ + { + title: "orders.blades.customerOrder-item-detail.labels.product", + colSpan: 2, + templateUrl: "name.html" + }, + { + templateUrl: "status.html" + }, + { + title: "orders.blades.customerOrder-items.labels.quantity", + templateUrl: "quantity.html" + }, + { + title: "orders.blades.customerOrder-items.labels.price", + templateUrl: "price.html" + }, + { + title: "orders.blades.customerOrder-items.labels.priceWithTax", + templateUrl: "priceWithTax.html" + }, + { + title: "orders.blades.customerOrder-items.labels.discount", + templateUrl: "discountAmount.html" + }, + { + title: "orders.blades.customerOrder-items.labels.discountWithTax", + templateUrl: "discountAmountWithTax.html" + }, + { + title: "orders.blades.customerOrder-items.labels.tax", + templateUrl: "taxTotal.html" + }, + { + title: "orders.blades.customerOrder-items.labels.total", + templateUrl: "extendedPriceWithTax.html" + } + ]; + +// $translate('orders.blades.customerOrder-detail.title', { customer: blade.currentEntity.customerName }).then(function (result) { +// blade.title = 'orders.widgets.customerOrder-items.blade-title'; +// blade.titleValues = { title: result }; +// blade.subtitle = 'orders.widgets.customerOrder-items.blade-subtitle'; +// }); + + blade.refresh = function () { + blade.isLoading = false; + }; + + blade.openStatusSettingManagement = function () { + var newBlade = { + id: 'settingDetailChild', + controller: 'platformWebApp.settingDictionaryController', + template: '$(Platform)/Scripts/app/settings/blades/setting-dictionary.tpl.html', + currentEntityId: 'OrderLineItem.Statuses', + isApiSave: true, + }; + bladeNavigationService.showBlade(newBlade, blade); + }; + +// $scope.openItemDynamicProperties = function (item) { +// var blade = { +// id: "dynamicPropertiesList", +// controller: 'platformWebApp.propertyValueListController', +// template: '$(Platform)/Scripts/app/dynamicProperties/blades/propertyValue-list.tpl.html', +// currentEntity: item, +// }; +// bladeNavigationService.showBlade(blade, $scope.blade); +// }; +// + blade.openItemDetail = function () { + var newBlade = { + id: "listItemDetail", + controller: 'virtoCommerce.catalogModule.itemDetailController', + template: 'Modules/$(VirtoCommerce.Catalog)/Scripts/blades/item-detail.tpl.html', + title: blade.currentEntity.name, + itemId: blade.currentEntity.productId, + productType: blade.currentEntity.productType + }; + bladeNavigationService.showBlade(newBlade, blade); + }; + +// blade.toolbarCommands = [ +// { +// name: "orders.commands.add-item", icon: 'fas fa-plus', +// executeMethod: function () { +// openAddEntityWizard(); +// }, +// canExecuteMethod: function () { +// return blade.currentEntity.operationType === 'CustomerOrder'; +// }, +// permission: blade.updatePermission +// }, +// { +// name: "platform.commands.remove", icon: 'fas fa-trash-alt', +// executeMethod: function () { +// var lineItems = blade.currentEntity.items; +// blade.currentEntity.items = _.difference(lineItems, _.filter(lineItems, function (x) { return x.selected })); +// blade.recalculateFn(); +// }, +// canExecuteMethod: function () { +// return _.any(blade.currentEntity.items, function (x) { return x.selected; }); +// }, +// permission: blade.updatePermission +// } +// ]; + + blade.refresh(); + }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html new file mode 100644 index 00000000..17149060 --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html @@ -0,0 +1,67 @@ +
+
+
+ + + +
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js index 24b0ce04..05917787 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js @@ -89,14 +89,13 @@ angular.module('virtoCommerce.orderModule') bladeNavigationService.showBlade(blade, $scope.blade); }; - $scope.openItemDetail = function (item) { + $scope.openLineItemDetail = function (item, index) { + blade.selectedNodeId = index; var newBlade = { - id: "listItemDetail", - controller: 'virtoCommerce.catalogModule.itemDetailController', - template: 'Modules/$(VirtoCommerce.Catalog)/Scripts/blades/item-detail.tpl.html', - title: item.name, - itemId: item.productId, - productType: item.productType, + id: "listLineItemDetail", + controller: 'virtoCommerce.orderModule.customerOrderItemDetailController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/customerOrder-item-detail.tpl.html', + currentEntity: item, }; bladeNavigationService.showBlade(newBlade, $scope.blade); }; diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html index a5c3ee88..a8ed9032 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html @@ -25,17 +25,17 @@ - + - {{ 'orders.blades.customerOrder-items.labels.dynamic-properties' | translate }} +
-
+
@@ -81,8 +81,8 @@ {{data.extendedPriceWithTax | currency:'' | showPrice:blade.isVisiblePrices}} - - + + {{data.name}} From 157237cf4466355960ecfbf21a8697238f316812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Mon, 2 Dec 2024 16:05:40 +0100 Subject: [PATCH 2/7] VCST-2334: Recalculation, stop open detail when edit line, correct delete operation --- .../blades/customerOrder-item-detail.js | 37 ++------------- .../Scripts/blades/customerOrder-items.js | 47 ++++++++++++++----- .../blades/customerOrder-items.tpl.html | 13 +++-- .../widgets/customerOrder-items-widget.js | 38 +++++++-------- 4 files changed, 65 insertions(+), 70 deletions(-) diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js index c7208c32..ddf24e8d 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js @@ -5,7 +5,7 @@ angular.module('virtoCommerce.orderModule') var blade = $scope.blade; blade.updatePermission = 'order:update'; blade.isVisiblePrices = authService.checkPermission('order:read_prices'); - blade.title = blade.currentEntity.name; + blade.metaFields1 = [ { title: "orders.blades.customerOrder-item-detail.labels.product", @@ -45,12 +45,6 @@ angular.module('virtoCommerce.orderModule') } ]; -// $translate('orders.blades.customerOrder-detail.title', { customer: blade.currentEntity.customerName }).then(function (result) { -// blade.title = 'orders.widgets.customerOrder-items.blade-title'; -// blade.titleValues = { title: result }; -// blade.subtitle = 'orders.widgets.customerOrder-items.blade-subtitle'; -// }); - blade.refresh = function () { blade.isLoading = false; }; @@ -87,31 +81,10 @@ angular.module('virtoCommerce.orderModule') }; bladeNavigationService.showBlade(newBlade, blade); }; - -// blade.toolbarCommands = [ -// { -// name: "orders.commands.add-item", icon: 'fas fa-plus', -// executeMethod: function () { -// openAddEntityWizard(); -// }, -// canExecuteMethod: function () { -// return blade.currentEntity.operationType === 'CustomerOrder'; -// }, -// permission: blade.updatePermission -// }, -// { -// name: "platform.commands.remove", icon: 'fas fa-trash-alt', -// executeMethod: function () { -// var lineItems = blade.currentEntity.items; -// blade.currentEntity.items = _.difference(lineItems, _.filter(lineItems, function (x) { return x.selected })); -// blade.recalculateFn(); -// }, -// canExecuteMethod: function () { -// return _.any(blade.currentEntity.items, function (x) { return x.selected; }); -// }, -// permission: blade.updatePermission -// } -// ]; + + $scope.$watch("blade.order", function (order) { + blade.currentEntity = _.filter(order.items, function (item) { return item.id === blade.currentEntityId })[0]; + }, true); blade.refresh(); }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js index 05917787..ababcfb7 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js @@ -79,15 +79,15 @@ angular.module('virtoCommerce.orderModule') }); }; - $scope.openItemDynamicProperties = function (item) { - var blade = { - id: "dynamicPropertiesList", - controller: 'platformWebApp.propertyValueListController', - template: '$(Platform)/Scripts/app/dynamicProperties/blades/propertyValue-list.tpl.html', - currentEntity: item, - }; - bladeNavigationService.showBlade(blade, $scope.blade); - }; +// $scope.openItemDynamicProperties = function (item) { +// var blade = { +// id: "dynamicPropertiesList", +// controller: 'platformWebApp.propertyValueListController', +// template: '$(Platform)/Scripts/app/dynamicProperties/blades/propertyValue-list.tpl.html', +// currentEntity: item, +// }; +// bladeNavigationService.showBlade(blade, $scope.blade); +// }; $scope.openLineItemDetail = function (item, index) { blade.selectedNodeId = index; @@ -95,7 +95,10 @@ angular.module('virtoCommerce.orderModule') id: "listLineItemDetail", controller: 'virtoCommerce.orderModule.customerOrderItemDetailController', template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/customerOrder-item-detail.tpl.html', - currentEntity: item, + title: item.name, + currentEntityId: item.id, + order: blade.currentEntity, + recalculateFn: blade.recalculateFn, }; bladeNavigationService.showBlade(newBlade, $scope.blade); }; @@ -152,7 +155,17 @@ angular.module('virtoCommerce.orderModule') name: "platform.commands.remove", icon: 'fas fa-trash-alt', executeMethod: function () { var lineItems = blade.currentEntity.items; - blade.currentEntity.items = _.difference(lineItems, _.filter(lineItems, function (x) { return x.selected })); + var selectedLineItems = _.filter(lineItems, function (x) { return x.selected; }); + + if (blade.selectedNodeId >= 0) { + var selectedNode = lineItems[blade.selectedNodeId]; + if (selectedNode && _.some(selectedLineItems, lineItem => selectedNode.id === lineItem.id)) { + bladeNavigationService.closeChildrenBlades(blade); + } + } + + blade.currentEntity.items = _.difference(lineItems, selectedLineItems); + blade.selectedAll = false; blade.recalculateFn(); }, canExecuteMethod: function () { @@ -168,5 +181,17 @@ angular.module('virtoCommerce.orderModule') }); }; + $scope.checkOne = function (selected) { + if (!selected) { + blade.selectedAll = false; + } else if (_.every(blade.currentEntity.items, item => item.selected)){ + blade.selectedAll = true; + } + }; + + $scope.stopSelect = function ($event) { + $event.stopPropagation(); + }; + blade.refresh(); }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html index a8ed9032..e3c5b01c 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html @@ -26,9 +26,9 @@ - + @@ -38,10 +38,9 @@
- -
+
-
+
@@ -59,7 +58,7 @@ {{(data.avail || 0) | number:0}} -
+
@@ -67,7 +66,7 @@ {{data.priceWithTax | currency:'' | showPrice:blade.isVisiblePrices}} -
+
diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-items-widget.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-items-widget.js index c238ebb3..784023a9 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-items-widget.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-items-widget.js @@ -1,22 +1,20 @@ -angular.module('virtoCommerce.orderModule') -.controller('virtoCommerce.orderModule.customerOrderItemsWidgetController', ['$scope', '$translate', 'platformWebApp.bladeNavigationService', - function ($scope, $translate, bladeNavigationService) { - var blade = $scope.widget.blade; - - $scope.$watch('widget.blade.customerOrder', function (operation) { - $scope.operation = operation; - }); +angular.module('virtoCommerce.orderModule') +.controller('virtoCommerce.orderModule.customerOrderItemsWidgetController', ['$scope', 'platformWebApp.bladeNavigationService', + function ($scope, bladeNavigationService) { + var blade = $scope.widget.blade; + + $scope.$watch('widget.blade.customerOrder', function (operation) { + $scope.operation = operation; + }); - $scope.openItemsBlade = function () { - - var newBlade = { - id: 'customerOrderItems', - currentEntity: $scope.operation, - recalculateFn: blade.recalculate, - controller: 'virtoCommerce.orderModule.customerOrderItemsController', - template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/customerOrder-items.tpl.html' + $scope.openItemsBlade = function () { + var newBlade = { + id: 'customerOrderItems', + currentEntity: $scope.operation, + recalculateFn: blade.recalculate, + controller: 'virtoCommerce.orderModule.customerOrderItemsController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/customerOrder-items.tpl.html' + }; + bladeNavigationService.showBlade(newBlade, blade); }; - bladeNavigationService.showBlade(newBlade, blade); - }; - -}]); + }]); From 53aed1586e8bb23fd71bd829f9a12da9acb4e907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Tue, 3 Dec 2024 18:20:45 +0100 Subject: [PATCH 3/7] VCST-2334: Ability to review the line item order configuration --- .../de.VirtoCommerce.Orders.json | 3 ++ .../en.VirtoCommerce.Orders.json | 14 ++++++++ .../ru.VirtoCommerce.Orders.json | 3 ++ .../blades/customerOrder-item-detail.js | 21 ++++++----- .../blades/customerOrder-item-detail.tpl.html | 13 ++++--- .../Scripts/blades/customerOrder-items.js | 10 ------ .../blades/customerOrder-items.tpl.html | 1 - .../blades/item-configuration-detail.js | 33 +++++++++++++++++ .../blades/item-configuration-detail.tpl.html | 35 +++++++++++++++++++ .../Scripts/order.js | 9 ++++- .../widgets/item-configuration-widget.js | 14 ++++++++ .../item-configuration-widget.tpl.html | 6 ++++ 12 files changed, 134 insertions(+), 28 deletions(-) create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.js create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.tpl.html create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.tpl.html diff --git a/src/VirtoCommerce.OrdersModule.Web/Localizations/de.VirtoCommerce.Orders.json b/src/VirtoCommerce.OrdersModule.Web/Localizations/de.VirtoCommerce.Orders.json index 0e1e890b..ca49e970 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Localizations/de.VirtoCommerce.Orders.json +++ b/src/VirtoCommerce.OrdersModule.Web/Localizations/de.VirtoCommerce.Orders.json @@ -230,6 +230,9 @@ "items-purchased": "Die Anzahl der gekauften Artikel", "lines-per-order": "Zeilen pro Bestellung", "revenue-per-customer": "Umsatz pro Kunde" + }, + "configuration": { + "title": "Konfiguration" } }, "dialogs": { diff --git a/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json b/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json index ae27a2f5..c143a4ce 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json +++ b/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json @@ -265,6 +265,17 @@ "description": "Refund document" } } + }, + "configuration": { + "title": "Configuration", + "labels": { + "picture": "Image", + "quantity": "Quantity", + "product-name": "Product name" + }, + "descr": { + "no-configuration": "This product does not support configuration." + } } }, "widgets": { @@ -335,6 +346,9 @@ }, "customerOrder-list": { "title": "Orders" + }, + "configuration": { + "title": "Configuration" } }, "dialogs": { diff --git a/src/VirtoCommerce.OrdersModule.Web/Localizations/ru.VirtoCommerce.Orders.json b/src/VirtoCommerce.OrdersModule.Web/Localizations/ru.VirtoCommerce.Orders.json index 3bb739b4..bc9510dd 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Localizations/ru.VirtoCommerce.Orders.json +++ b/src/VirtoCommerce.OrdersModule.Web/Localizations/ru.VirtoCommerce.Orders.json @@ -239,6 +239,9 @@ "revenue-per-customer": "Доход от одного клиента", "title": "Статистика по заказам", "not-authorized": "Нет доступа. У вас нет доступа к этой функции. Свяжитесь с администратором своей учетной записи для получения доступа." + }, + "configuration": { + "title": "Конфигурация" } }, "dialogs": { diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js index ddf24e8d..bb00bd23 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js @@ -5,8 +5,9 @@ angular.module('virtoCommerce.orderModule') var blade = $scope.blade; blade.updatePermission = 'order:update'; blade.isVisiblePrices = authService.checkPermission('order:read_prices'); + blade.formScope = null; - blade.metaFields1 = [ + blade.metaFields = [ { title: "orders.blades.customerOrder-item-detail.labels.product", colSpan: 2, @@ -60,16 +61,14 @@ angular.module('virtoCommerce.orderModule') bladeNavigationService.showBlade(newBlade, blade); }; -// $scope.openItemDynamicProperties = function (item) { -// var blade = { -// id: "dynamicPropertiesList", -// controller: 'platformWebApp.propertyValueListController', -// template: '$(Platform)/Scripts/app/dynamicProperties/blades/propertyValue-list.tpl.html', -// currentEntity: item, -// }; -// bladeNavigationService.showBlade(blade, $scope.blade); -// }; -// + blade.recalculate = function() { + if (blade.formScope && blade.formScope.$valid && angular.isFunction(blade.recalculateFn)) { + blade.recalculateFn(); + } + } + + blade.setForm = function (form) { blade.formScope = form; } + blade.openItemDetail = function () { var newBlade = { id: "listItemDetail", diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html index 17149060..3d601a2a 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.tpl.html @@ -1,8 +1,11 @@
- - +
+
+ +
+
@@ -26,13 +29,13 @@ + + \ No newline at end of file diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js index 6ed3dded..a27cf965 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js @@ -492,7 +492,7 @@ angular.module(moduleName, [ widgetService.registerWidget(dynamicPropertyWidget, 'paymentDetailWidgets'); widgetService.registerWidget(dynamicPropertyWidget, 'refundDetailWidgets'); widgetService.registerWidget(dynamicPropertyWidget, 'captureDetailWidgets'); - + widgetService.registerWidget(dynamicPropertyWidget, 'customerOrderItemDetailWidgets'); var operationsTreeWidget = { controller: 'virtoCommerce.orderModule.operationTreeWidgetController', @@ -766,4 +766,11 @@ angular.module(moduleName, [ }); } }); + + var itemConfigurationWidget = { + controller: 'virtoCommerce.orderModule.itemConfigurationWidgetController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/widgets/item-configuration-widget.tpl.html', + isVisible: function (blade) { return blade.currentEntity.configurationItems.length && authService.checkPermission('catalog:configurations:read'); } + }; + widgetService.registerWidget(itemConfigurationWidget, 'customerOrderItemDetailWidgets'); }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js new file mode 100644 index 00000000..c8ec64a5 --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js @@ -0,0 +1,14 @@ +angular.module('virtoCommerce.orderModule') + .controller('virtoCommerce.orderModule.itemConfigurationWidgetController', ['$scope', 'platformWebApp.bladeNavigationService', function ($scope, bladeNavigationService) { + var blade = $scope.blade; + + $scope.openBlade = function () { + var newBlade = { + id: "itemConfiguration", + controller: 'virtoCommerce.orderModule.itemConfigurationDetailController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/item-configuration-detail.tpl.html', + currentEntity: blade.currentEntity, + }; + bladeNavigationService.showBlade(newBlade, blade); + }; + }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.tpl.html new file mode 100644 index 00000000..21b71b10 --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.tpl.html @@ -0,0 +1,6 @@ +
+
+ +
{{ 'orders.widgets.configuration.title' | translate }}
+
+
\ No newline at end of file From f826422aa3c7a58b556e20372067273c4243033f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Wed, 4 Dec 2024 12:18:38 +0100 Subject: [PATCH 4/7] VCST-2334: Discounts blade and widget. A bit of refactoring --- .../en.VirtoCommerce.Orders.json | 16 +++++++++++++ ...js => customerOrder-item-configuration.js} | 2 +- ...customerOrder-item-configuration.tpl.html} | 0 .../blades/customerOrder-item-dicsounts.js | 20 ++++++++++++++++ .../customerOrder-item-dicsounts.tpl.html | 24 +++++++++++++++++++ .../Scripts/order.js | 14 +++++++---- ...ustomerOrder-item-configuration-widget.js} | 6 ++--- ...rOrder-item-configuration-widget.tpl.html} | 0 .../customerOrder-item-discounts-widget.js | 14 +++++++++++ ...stomerOrder-item-discounts-widget.tpl.html | 6 +++++ 10 files changed, 94 insertions(+), 8 deletions(-) rename src/VirtoCommerce.OrdersModule.Web/Scripts/blades/{item-configuration-detail.js => customerOrder-item-configuration.js} (93%) rename src/VirtoCommerce.OrdersModule.Web/Scripts/blades/{item-configuration-detail.tpl.html => customerOrder-item-configuration.tpl.html} (100%) create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.js create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.tpl.html rename src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/{item-configuration-widget.js => customerOrder-item-configuration-widget.js} (54%) rename src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/{item-configuration-widget.tpl.html => customerOrder-item-configuration-widget.tpl.html} (100%) create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.js create mode 100644 src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.tpl.html diff --git a/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json b/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json index c143a4ce..601e2d07 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json +++ b/src/VirtoCommerce.OrdersModule.Web/Localizations/en.VirtoCommerce.Orders.json @@ -276,6 +276,19 @@ "descr": { "no-configuration": "This product does not support configuration." } + }, + "customerOrder-item-discounts": { + "title": "Discounts", + "labels": { + "name": "Name", + "coupon": "Coupon", + "discountAmount": "Discount amount", + "discountAmountWithTax": "Discount amount with tax", + "currency": "Currency" + }, + "descr": { + "no-discounts": "This entity doesn't have any discounts yet." + } } }, "widgets": { @@ -349,6 +362,9 @@ }, "configuration": { "title": "Configuration" + }, + "customerOrder-item-discounts": { + "title": "Discounts" } }, "dialogs": { diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-configuration.js similarity index 93% rename from src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.js rename to src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-configuration.js index 74e16178..b1cd69fc 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-configuration.js @@ -1,5 +1,5 @@ angular.module('virtoCommerce.orderModule') - .controller('virtoCommerce.orderModule.itemConfigurationDetailController', [ + .controller('virtoCommerce.orderModule.customerOrderItemConfigurationController', [ '$scope', 'platformWebApp.uiGridHelper', 'platformWebApp.bladeNavigationService', function ($scope, uiGridHelper, bladeNavigationService) { var blade = $scope.blade; diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-configuration.tpl.html similarity index 100% rename from src/VirtoCommerce.OrdersModule.Web/Scripts/blades/item-configuration-detail.tpl.html rename to src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-configuration.tpl.html diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.js new file mode 100644 index 00000000..1d119b3c --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.js @@ -0,0 +1,20 @@ +angular.module('virtoCommerce.orderModule') + .controller('virtoCommerce.orderModule.customerOrderItemDiscountController', [ + '$scope', 'platformWebApp.uiGridHelper', + function ($scope, uiGridHelper) { + var blade = $scope.blade; + blade.title = 'orders.blades.customerOrder-item-discounts.title'; + blade.headIcon = 'fa fa-area-chart'; + + $scope.setGridOptions = function (gridOptions) { + uiGridHelper.initialize($scope, gridOptions, function (gridApi) { + $scope.gridApi = gridApi; + }); + }; + + function initialize() { + blade.isLoading = false; + } + + initialize(); + }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.tpl.html new file mode 100644 index 00000000..1f5d946c --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-dicsounts.tpl.html @@ -0,0 +1,24 @@ +
+
+
+
+
+
+
{{ 'orders.blades.customerOrder-item-discounts.descr.no-discounts' | translate }}
+
+
+
+ + \ No newline at end of file diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js index a27cf965..6d799265 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/order.js @@ -767,10 +767,16 @@ angular.module(moduleName, [ } }); - var itemConfigurationWidget = { - controller: 'virtoCommerce.orderModule.itemConfigurationWidgetController', - template: 'Modules/$(VirtoCommerce.Orders)/Scripts/widgets/item-configuration-widget.tpl.html', + var customerOrderItemDiscountWidget = { + controller: 'virtoCommerce.orderModule.customerOrderItemDiscountWidgetController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/widgets/customerOrder-item-discounts-widget.tpl.html' + }; + widgetService.registerWidget(customerOrderItemDiscountWidget, 'customerOrderItemDetailWidgets'); + + var customerOrderItemConfigurationWidget = { + controller: 'virtoCommerce.orderModule.customerOrderItemConfigurationWidgetController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/widgets/customerOrder-item-configuration-widget.tpl.html', isVisible: function (blade) { return blade.currentEntity.configurationItems.length && authService.checkPermission('catalog:configurations:read'); } }; - widgetService.registerWidget(itemConfigurationWidget, 'customerOrderItemDetailWidgets'); + widgetService.registerWidget(customerOrderItemConfigurationWidget, 'customerOrderItemDetailWidgets'); }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-configuration-widget.js similarity index 54% rename from src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js rename to src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-configuration-widget.js index c8ec64a5..813c5d5f 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-configuration-widget.js @@ -1,12 +1,12 @@ angular.module('virtoCommerce.orderModule') - .controller('virtoCommerce.orderModule.itemConfigurationWidgetController', ['$scope', 'platformWebApp.bladeNavigationService', function ($scope, bladeNavigationService) { + .controller('virtoCommerce.orderModule.customerOrderItemConfigurationWidgetController', ['$scope', 'platformWebApp.bladeNavigationService', function ($scope, bladeNavigationService) { var blade = $scope.blade; $scope.openBlade = function () { var newBlade = { id: "itemConfiguration", - controller: 'virtoCommerce.orderModule.itemConfigurationDetailController', - template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/item-configuration-detail.tpl.html', + controller: 'virtoCommerce.orderModule.customerOrderItemConfigurationController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/customerOrder-item-configuration.tpl.html', currentEntity: blade.currentEntity, }; bladeNavigationService.showBlade(newBlade, blade); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-configuration-widget.tpl.html similarity index 100% rename from src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/item-configuration-widget.tpl.html rename to src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-configuration-widget.tpl.html diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.js new file mode 100644 index 00000000..30ffb9b9 --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.js @@ -0,0 +1,14 @@ +angular.module('virtoCommerce.orderModule') + .controller('virtoCommerce.orderModule.customerOrderItemDiscountWidgetController', ['$scope', 'platformWebApp.bladeNavigationService', function ($scope, bladeNavigationService) { + var blade = $scope.blade; + + $scope.openBlade = function () { + var newBlade = { + id: "itemDiscounts", + controller: 'virtoCommerce.orderModule.customerOrderItemDiscountController', + template: 'Modules/$(VirtoCommerce.Orders)/Scripts/blades/customerOrder-item-dicsounts.tpl.html', + currentEntity: blade.currentEntity, + }; + bladeNavigationService.showBlade(newBlade, blade); + }; + }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.tpl.html new file mode 100644 index 00000000..db27c331 --- /dev/null +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/widgets/customerOrder-item-discounts-widget.tpl.html @@ -0,0 +1,6 @@ +
+
+
{{blade.currentEntity.discounts.length | number:0}}
+
{{ 'orders.widgets.customerOrder-item-discounts.title' | translate }}
+
+
\ No newline at end of file From 8266c826626eb9883318b5f3d59ebe15dcc68c3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Wed, 4 Dec 2024 14:19:56 +0100 Subject: [PATCH 5/7] VCST-2334: fixed sonar warnings --- .../Scripts/blades/customerOrder-item-detail.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js index bb00bd23..8e9fd25c 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-item-detail.js @@ -6,7 +6,6 @@ angular.module('virtoCommerce.orderModule') blade.updatePermission = 'order:update'; blade.isVisiblePrices = authService.checkPermission('order:read_prices'); blade.formScope = null; - blade.metaFields = [ { title: "orders.blades.customerOrder-item-detail.labels.product", From dcfc22a1a4e6a229c2a859f42f677c682129d476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Fri, 6 Dec 2024 16:00:16 +0100 Subject: [PATCH 6/7] VCST-2334: Fixes after review --- .../Scripts/blades/customerOrder-items.js | 6 +----- .../Scripts/blades/customerOrder-items.tpl.html | 14 +++++++------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js index f89d89c3..e91448da 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js @@ -171,7 +171,7 @@ angular.module('virtoCommerce.orderModule') }); }; - $scope.checkOne = function (selected) { + $scope.updateSelectedAll = function (selected) { if (!selected) { blade.selectedAll = false; } else if (_.every(blade.currentEntity.items, item => item.selected)){ @@ -179,9 +179,5 @@ angular.module('virtoCommerce.orderModule') } }; - $scope.stopSelect = function ($event) { - $event.stopPropagation(); - }; - blade.refresh(); }]); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html index 2ad45e8b..5cf20c15 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html @@ -26,9 +26,9 @@ - -
-
+
-
+
@@ -57,7 +57,7 @@ {{(data.avail || 0) | number:0}} -
+
@@ -65,7 +65,7 @@ {{data.priceWithTax | currency:'' | showPrice:blade.isVisiblePrices}} -
+
From 60c074eef56dbb255164f453d9a7a0f1fc2d7005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D1=81=D0=BE=D0=B2?= Date: Fri, 6 Dec 2024 16:23:35 +0100 Subject: [PATCH 7/7] VCST-2334: Fix after review --- .../Scripts/blades/customerOrder-items.js | 8 ++------ .../Scripts/blades/customerOrder-items.tpl.html | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js index e91448da..73d8ce1b 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.js @@ -171,12 +171,8 @@ angular.module('virtoCommerce.orderModule') }); }; - $scope.updateSelectedAll = function (selected) { - if (!selected) { - blade.selectedAll = false; - } else if (_.every(blade.currentEntity.items, item => item.selected)){ - blade.selectedAll = true; - } + $scope.updateSelectedAll = function () { + blade.selectedAll = _.every(blade.currentEntity.items, item => item.selected); }; blade.refresh(); diff --git a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html index 5cf20c15..e49b99a1 100644 --- a/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html +++ b/src/VirtoCommerce.OrdersModule.Web/Scripts/blades/customerOrder-items.tpl.html @@ -28,7 +28,7 @@