@Loc["Account.CustomerOrders"]
+ @if (Model.TradeCredit != null)
+ {
+
+
+
@Loc["Account.CustomerOrders.TradeCredit"]
+ @if (Model.TradeCredit.HasOverdue)
+ {
+
@Loc["Account.CustomerOrders.TradeCredit.Overdue"]
+ }
+
+ - @Loc["Account.CustomerOrders.TradeCredit.Limit"]
+ - @Model.TradeCredit.CreditLimit
+ - @Loc["Account.CustomerOrders.TradeCredit.Outstanding"]
+ - @Model.TradeCredit.Outstanding
+ - @Loc["Account.CustomerOrders.TradeCredit.Available"]
+ - @Model.TradeCredit.Available
+ - @Loc["Account.CustomerOrders.TradeCredit.PaymentTerm"]
+ - @Loc["Account.CustomerOrders.TradeCredit.PaymentTerm.Days"].ToString().Replace("{0}", Model.TradeCredit.PaymentTermDays.ToString())
+
+
+
+ }
@if (Model.Orders.Any())
{
diff --git a/src/Web/Grand.Web/Views/Order/Details.cshtml b/src/Web/Grand.Web/Views/Order/Details.cshtml
index b079dafbfa..e62cc88d63 100644
--- a/src/Web/Grand.Web/Views/Order/Details.cshtml
+++ b/src/Web/Grand.Web/Views/Order/Details.cshtml
@@ -70,6 +70,22 @@
@Model.CreatedOn.ToString("D")
}
+ @if (!string.IsNullOrEmpty(Model.PurchaseOrderNumber))
+ {
+
+ @Loc["Order.PurchaseOrderNumber"]:@Model.PurchaseOrderNumber
+
+ }
+ @if (Model.PaymentDueDate.HasValue)
+ {
+
+ @Loc["Order.PaymentDueDate"]:@Model.PaymentDueDate.Value.ToString("D")
+ @if (Model.IsPaymentOverdue)
+ {
+ @Loc["Order.PaymentOverdue"]
+ }
+
+ }
@Loc["Order.OrderStatus"]:@Model.OrderStatus
diff --git a/src/Web/Grand.Web/wwwroot/theme/script/public.checkout.js b/src/Web/Grand.Web/wwwroot/theme/script/public.checkout.js
index 48d644794d..1a6a634ce6 100644
--- a/src/Web/Grand.Web/wwwroot/theme/script/public.checkout.js
+++ b/src/Web/Grand.Web/wwwroot/theme/script/public.checkout.js
@@ -37,6 +37,7 @@ var vmorder = Vue.registerViewModel('vmorder', new Vue({
DisplayLoyaltyPoints: null,
PaymentMethods: null,
NoPaymentMethodMessage: null,
+ TradeCreditNotice: null,
LoyaltyPointsAmount: null,
LoyaltyPointsBalance: null,
LoyaltyPointsEnoughToPayForOrder: null,
@@ -52,6 +53,9 @@ var vmorder = Vue.registerViewModel('vmorder', new Vue({
OrderApprovalButtonText: null,
TermsOfServiceOnOrderConfirmPage: null,
ConfirmWarnings: null,
+ PurchaseOrderNumberMode: 0,
+ PurchaseOrderNumberMaxLength: null,
+ purchaseOrderNumber: '',
// terms of service
terms: false,
acceptTerms: false,
@@ -240,6 +244,7 @@ var vmorder = Vue.registerViewModel('vmorder', new Vue({
vmorder.DisplayLoyaltyPoints = model.DisplayLoyaltyPoints;
vmorder.PaymentMethods = model.PaymentMethods;
vmorder.NoPaymentMethodMessage = model.NoPaymentMethodMessage;
+ vmorder.TradeCreditNotice = model.TradeCreditNotice;
vmorder.LoyaltyPointsAmount = model.LoyaltyPointsAmount;
vmorder.LoyaltyPointsBalance = model.LoyaltyPointsBalance;
vmorder.LoyaltyPointsEnoughToPayForOrder = model.LoyaltyPointsEnoughToPayForOrder;
@@ -287,6 +292,8 @@ var vmorder = Vue.registerViewModel('vmorder', new Vue({
vmorder.OrderApprovalMessage = model.OrderApprovalMessage;
vmorder.OrderApprovalButtonText = model.OrderApprovalButtonText;
vmorder.ConfirmWarnings = model.Warnings;
+ vmorder.PurchaseOrderNumberMode = model.PurchaseOrderNumberMode;
+ vmorder.PurchaseOrderNumberMaxLength = model.PurchaseOrderNumberMaxLength;
vmorder.OrderReviewData = model.OrderReviewData;
vmorder.Confirm = true;
vmorder.updateTotals();
@@ -737,9 +744,12 @@ var vmorder = Vue.registerViewModel('vmorder', new Vue({
var termOfServiceOk = true;
if (termOfServiceOk) {
vmorder.Checkout.setLoadWaiting('confirm-order');
+ var data = new FormData();
+ data.append('purchaseOrderNumber', vmorder.purchaseOrderNumber || '');
axios({
url: this.saveUrl,
method: 'post',
+ data: data,
showLoader: false
}).then(function (response) {
vmorder.vConfirmOrder.nextStep(response);