This commit is contained in:
Loretta 2025-10-25 19:12:56 +02:00
commit 05d9c97645
3 changed files with 397 additions and 369 deletions

View File

@ -120,23 +120,41 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
} }
// Add order items // Add order items
var orderItems = await _orderService.GetOrderItemsAsync(order.Id); //var orderItems = await _orderService.GetOrderItemsAsync(order.Id);
var orderItems = await _dbContext.OrderItemDtos.GetAllByOrderId(order.Id, true).ToListAsync();
Console.WriteLine($"Order Items Count: {orderItems.Count}");
foreach (var item in orderItems) foreach (var item in orderItems)
{ {
//var productDTO = await _productService.GetProductByIdAsync(item.ProductId); //var productDTO = await _productService.GetProductByIdAsync(item.ProductId);
var product = _dbContext.ProductDtos.GetById(item.ProductId); var product = _dbContext.ProductDtos.GetById(item.ProductId);
//string unit = product != null && product.IsMeasurable ? "kg" : "kt"; //string unit = product != null && product.IsMeasurable ? "kg" : "kt";
if(item.IsMeasurable) { // in case of measurable products, quantity is in fact weight stored in item.EnteredQuantity
orderRequest.AddItem(new InnVoiceOrderItem orderRequest.AddItem(new InnVoiceOrderItem
{
TetelNev = product?.Name ?? "Product",
AfaSzoveg = "27%", // Configure VAT rate as needed
Brutto = true,
EgysegAr = item.UnitPriceInclTax,
Mennyiseg = Convert.ToDecimal(item.NetWeight),
MennyisegEgyseg = "kg",
CikkSzam = ""
});
}
else
{ {
TetelNev = product?.Name ?? "Product", orderRequest.AddItem(new InnVoiceOrderItem
AfaSzoveg = "27%", // Configure VAT rate as needed {
Brutto = true, TetelNev = product?.Name ?? "Product",
EgysegAr = item.UnitPriceInclTax, AfaSzoveg = "27%", // Configure VAT rate as needed
Mennyiseg = item.Quantity, Brutto = true,
MennyisegEgyseg = "kt", EgysegAr = item.UnitPriceInclTax,
CikkSzam = "" Mennyiseg = item.Quantity,
}); MennyisegEgyseg = "kt",
CikkSzam = ""
});
}
} }
// Create order via API // Create order via API

View File

@ -4,271 +4,278 @@
@using Nop.Core.Domain.Catalog; @using Nop.Core.Domain.Catalog;
<script> <script>
function calculateTotalGlobal(itemId, maxQuantity) { function calculateTotalGlobal(itemId, maxQuantity) {
//var isMeasurable = $('#pvIsMeasurable'+itemId).is(':checked'); //var isMeasurable = $('#pvIsMeasurable'+itemId).is(':checked');
var isMeasurable = $('#pvIsMeasurable'+itemId).val().toLowerCase() === 'true'; var isMeasurable = $('#pvIsMeasurable'+itemId).val().toLowerCase() === 'true';
console.log(itemId); console.log(itemId);
console.log(isMeasurable); console.log(isMeasurable);
console.log(maxQuantity); console.log(maxQuantity);
console.log($('#pvNetWeight'+itemId).val()); console.log($('#pvNetWeight'+itemId).val());
var netWeight = parseFloat($('#pvNetWeight'+itemId).val()) || 0; var netWeight = parseFloat($('#pvNetWeight'+itemId).val()) || 0;
var unitPriceInclTax = parseFloat($('#pvUnitPriceInclTax'+itemId).val()) || 0; var unitPriceInclTax = parseFloat($('#pvUnitPriceInclTax'+itemId).val()) || 0;
var unitPriceExclTax = parseFloat($('#pvUnitPriceExclTax'+itemId).val()) || 0; var unitPriceExclTax = parseFloat($('#pvUnitPriceExclTax'+itemId).val()) || 0;
var quantity = parseInt($('#pvQuantity'+itemId).val()) || 0; var quantity = parseInt($('#pvQuantity'+itemId).val()) || 0;
var discountInclTax = parseFloat($('#pvDiscountInclTax'+itemId).val()) || 0; var discountInclTax = parseFloat($('#pvDiscountInclTax'+itemId).val()) || 0;
var discountExclTax = parseFloat($('#pvDiscountExclTax'+itemId).val()) || 0; var discountExclTax = parseFloat($('#pvDiscountExclTax'+itemId).val()) || 0;
if (quantity > maxQuantity || quantity < 1) { if (quantity > maxQuantity || quantity < 1) {
if (quantity > maxQuantity) quantity = maxQuantity; else quantity = 1; if (quantity > maxQuantity) quantity = maxQuantity; else quantity = 1;
$('#pvQuantity' + itemId).val(quantity); $('#pvQuantity' + itemId).val(quantity);
} }
if (unitPriceInclTax < 0) { if (unitPriceInclTax < 0) {
unitPriceInclTax = 0; unitPriceInclTax = 0;
$('#pvUnitPriceInclTax' + itemId).val(unitPriceInclTax); $('#pvUnitPriceInclTax' + itemId).val(unitPriceInclTax);
} }
// Calculate totals // Calculate totals
var totalInclTax = (unitPriceInclTax * (isMeasurable ? netWeight : quantity)) - discountInclTax; var totalInclTax = (unitPriceInclTax * (isMeasurable ? netWeight : quantity)) - discountInclTax;
var totalExclTax = (unitPriceExclTax * (isMeasurable ? netWeight : quantity)) - discountExclTax; var totalExclTax = (unitPriceExclTax * (isMeasurable ? netWeight : quantity)) - discountExclTax;
// Update total price fields // Update total price fields
$('#pvPriceInclTax'+itemId).val(totalInclTax.toFixed(0)); $('#pvPriceInclTax'+itemId).val(totalInclTax.toFixed(0));
$('#pvPriceExclTax'+itemId).val(totalExclTax.toFixed(0)); $('#pvPriceExclTax'+itemId).val(totalExclTax.toFixed(0));
} }
// Function to setup event listeners for automatic calculation // Function to setup event listeners for automatic calculation
function setupAutoCalculationGlobal(itemId, maxQuantity) { function setupAutoCalculationGlobal(itemId, maxQuantity) {
// Attach change and input events to all relevant fields // Attach change and input events to all relevant fields
$('#pvUnitPriceInclTax'+itemId+', #pvUnitPriceExclTax'+itemId+', #pvQuantity'+itemId+', #pvDiscountInclTax'+itemId+', #pvDiscountExclTax'+itemId).on('input change', function() { $('#pvUnitPriceInclTax'+itemId+', #pvUnitPriceExclTax'+itemId+', #pvQuantity'+itemId+', #pvDiscountInclTax'+itemId+', #pvDiscountExclTax'+itemId).on('input change', function() {
calculateTotalGlobal(itemId, maxQuantity); calculateTotalGlobal(itemId, maxQuantity);
}); });
} }
function toggleOrderItemEditGlobal(editMode, itemId) { function toggleOrderItemEditGlobal(editMode, itemId) {
if (editMode) { if (editMode) {
$('#pnlEditPvUnitPrice'+itemId).showElement(); $('#pnlEditPvUnitPrice'+itemId).showElement();
$('#pnlEditPvQuantity'+itemId).showElement(); $('#pnlEditPvQuantity'+itemId).showElement();
$('#pnlEditPvDiscount'+itemId).showElement(); $('#pnlEditPvDiscount'+itemId).showElement();
$('#pnlEditPvPrice'+itemId).showElement(); $('#pnlEditPvPrice'+itemId).showElement();
$('#btnSaveOrderItem'+itemId).showElement(); $('#btnSaveOrderItem'+itemId).showElement();
$('#btnCancelOrderItem'+itemId).showElement(); $('#btnCancelOrderItem'+itemId).showElement();
$('#pvUnitPriceInclTax'+itemId).prop("disabled", false); $('#pvUnitPriceInclTax'+itemId).prop("disabled", false);
$('#pvUnitPriceExclTax'+itemId).prop("disabled", false); $('#pvUnitPriceExclTax'+itemId).prop("disabled", false);
$('#pvQuantity'+itemId).prop("disabled", false); $('#pvQuantity'+itemId).prop("disabled", false);
$('#pvDiscountInclTax'+itemId).prop("disabled", true); $('#pvDiscountInclTax'+itemId).prop("disabled", true);
$('#pvDiscountExclTax'+itemId).prop("disabled", true); $('#pvDiscountExclTax'+itemId).prop("disabled", true);
$('#pvPriceInclTax'+itemId).prop("disabled", true); $('#pvPriceInclTax'+itemId).prop("disabled", true);
$('#pvPriceExclTax'+itemId).prop("disabled", true); $('#pvPriceExclTax'+itemId).prop("disabled", true);
$('#btnEditOrderItem'+itemId).hideElement(); $('#btnEditOrderItem'+itemId).hideElement();
$('#btnDeleteOrderItem'+itemId).hideElement(); $('#btnDeleteOrderItem'+itemId).hideElement();
} else { } else {
$('#pnlEditPvUnitPrice'+itemId).hideElement(); $('#pnlEditPvUnitPrice'+itemId).hideElement();
$('#pnlEditPvQuantity'+itemId).hideElement(); $('#pnlEditPvQuantity'+itemId).hideElement();
$('#pnlEditPvDiscount'+itemId).hideElement(); $('#pnlEditPvDiscount'+itemId).hideElement();
$('#pnlEditPvPrice'+itemId).hideElement(); $('#pnlEditPvPrice'+itemId).hideElement();
$('#btnSaveOrderItem'+itemId).hideElement(); $('#btnSaveOrderItem'+itemId).hideElement();
$('#btnCancelOrderItem'+itemId).hideElement(); $('#btnCancelOrderItem'+itemId).hideElement();
$('#pvUnitPriceInclTax'+itemId).prop("disabled", true); $('#pvUnitPriceInclTax'+itemId).prop("disabled", true);
$('#pvUnitPriceExclTax'+itemId).prop("disabled", true); $('#pvUnitPriceExclTax'+itemId).prop("disabled", true);
$('#pvQuantity'+itemId).prop("disabled", true); $('#pvQuantity'+itemId).prop("disabled", true);
$('#pvDiscountInclTax'+itemId).prop("disabled", true); $('#pvDiscountInclTax'+itemId).prop("disabled", true);
$('#pvDiscountExclTax'+itemId).prop("disabled", true); $('#pvDiscountExclTax'+itemId).prop("disabled", true);
$('#pvPriceInclTax'+itemId).prop("disabled", true); $('#pvPriceInclTax'+itemId).prop("disabled", true);
$('#pvPriceExclTax'+itemId).prop("disabled", true); $('#pvPriceExclTax'+itemId).prop("disabled", true);
$('#btnEditOrderItem'+itemId).showElement(); $('#btnEditOrderItem'+itemId).showElement();
$('#btnDeleteOrderItem'+itemId).showElement(); $('#btnDeleteOrderItem'+itemId).showElement();
} }
} }
</script> </script>
<div class="card-body"> <div class="card-body">
<div class="form-group row"> <div class="form-group row">
<div class="col-md-12" style="overflow-x: auto;"> <div class="col-md-12" style="overflow-x: auto;">
@foreach (var item in Model.ItemExtendeds) @{
{ if (Model.ItemExtendeds != null)
<script> {
$(function() { foreach (var item in Model.ItemExtendeds)
toggleOrderItemEditGlobal(false, @(item.Id)); {
setupAutoCalculationGlobal(@(item.Id), @(item.ProductStockQuantity + item.ProductIncomingQuantity + item.Quantity)); <script>
}); $(function() {
</script> toggleOrderItemEditGlobal(false, @(item.Id));
} setupAutoCalculationGlobal(@(item.Id), @(item.ProductStockQuantity + item.ProductIncomingQuantity + item.Quantity));
});
<table class="table table-hover table-bordered"> </script>
<col /> }
<col /> }
@if (Model.HasDownloadableProducts) }
{ <table class="table table-hover table-bordered">
<col /> <col />
} <col />
<col /> @if (Model.HasDownloadableProducts)
<col /> {
<col /> <col />
<col /> }
@if (!Model.IsLoggedInAsVendor) <col />
{ <col />
<col /> <col />
} <col />
<thead> @if (!Model.IsLoggedInAsVendor)
<tr> {
@* <th> <col />
}
<thead>
<tr>
@* <th>
@T("Admin.Orders.Products.Picture") @T("Admin.Orders.Products.Picture")
</th> </th>
*@ <th> *@ <th>
@T("Admin.Orders.Products.ProductName") @T("Admin.Orders.Products.ProductName")
</th> </th>
@if (Model.HasDownloadableProducts) @if (Model.HasDownloadableProducts)
{ {
<th> <th>
@T("Admin.Orders.Products.Download") @T("Admin.Orders.Products.Download")
</th> </th>
} }
<th> <th>
@T("Admin.Orders.Products.Price") @T("Admin.Orders.Products.Price")
</th> </th>
<th> <th>
@T("Admin.Orders.Products.Quantity") @T("Admin.Orders.Products.Quantity")
</th> </th>
<th> <th>
@T("FruitBank.StockQuantity") @T("FruitBank.StockQuantity")
</th> </th>
<th> <th>
@T("FruitBank.NetWeight") @T("FruitBank.NetWeight")
</th> </th>
<th> <th>
@T("FruitBank.IsMeasurable") @T("FruitBank.IsMeasurable")
</th> </th>
@* <th> @* <th>
@T("Admin.Orders.Products.Discount") @T("Admin.Orders.Products.Discount")
</th> *@ </th> *@
<th> <th>
@T("Admin.Orders.Products.Total") @T("Admin.Orders.Products.Total")
</th> </th>
@if (!Model.IsLoggedInAsVendor) @if (!Model.IsLoggedInAsVendor)
{ {
<th> <th>
@T("Admin.Common.Edit") @T("Admin.Common.Edit")
</th> </th>
} }
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@foreach (var item in Model.ItemExtendeds) @{
{ if (Model.ItemExtendeds != null)
<tr> {
@* <td class="text-center preview"> foreach (var item in Model.ItemExtendeds)
{
<tr>
@* <td class="text-center preview">
<img src="@item.PictureThumbnailUrl" alt="" title="" /> <img src="@item.PictureThumbnailUrl" alt="" title="" />
</td> </td>
*@ <td style="width: 25%;" class="text-left"> *@ <td style="width: 25%;" class="text-left">
<em><a asp-controller="Product" asp-action="Edit" asp-route-id="@item.ProductId">@item.ProductName</a></em> <em><a asp-controller="Product" asp-action="Edit" asp-route-id="@item.ProductId">@item.ProductName</a></em>
@if (!string.IsNullOrEmpty(item.AttributeInfo)) @if (!string.IsNullOrEmpty(item.AttributeInfo))
{ {
<p> <p>
@Html.Raw(item.AttributeInfo) @Html.Raw(item.AttributeInfo)
</p> </p>
} }
@if (!string.IsNullOrEmpty(item.RecurringInfo)) @if (!string.IsNullOrEmpty(item.RecurringInfo))
{ {
<p> <p>
@Html.Raw(item.RecurringInfo) @Html.Raw(item.RecurringInfo)
</p> </p>
} }
@if (!string.IsNullOrEmpty(item.RentalInfo)) @if (!string.IsNullOrEmpty(item.RentalInfo))
{ {
<p> <p>
@Html.Raw(item.RentalInfo) @Html.Raw(item.RentalInfo)
</p> </p>
} }
@if (!string.IsNullOrEmpty(item.Sku)) @if (!string.IsNullOrEmpty(item.Sku))
{ {
<p> <p>
<strong>@T("Admin.Orders.Products.SKU")</strong><text>:</text> <strong>@T("Admin.Orders.Products.SKU")</strong><text>:</text>
@item.Sku @item.Sku
</p> </p>
} }
@if (!string.IsNullOrEmpty(item.VendorName)) @if (!string.IsNullOrEmpty(item.VendorName))
{ {
<p> <p>
<strong>@T("Admin.Orders.Products.Vendor")</strong><text>:</text> <strong>@T("Admin.Orders.Products.Vendor")</strong><text>:</text>
@item.VendorName @item.VendorName
</p> </p>
} }
@if (item.ReturnRequests.Count > 0) @if (item.ReturnRequests.Count > 0)
{ {
<p> <p>
@T("Admin.Orders.Products.ReturnRequests")<text>:</text> @T("Admin.Orders.Products.ReturnRequests")<text>:</text>
@for (var i = 0; i < item.ReturnRequests.Count; i++) @for (var i = 0; i < item.ReturnRequests.Count; i++)
{ {
var returnRequest = item.ReturnRequests[i]; var returnRequest = item.ReturnRequests[i];
<a asp-controller="ReturnRequest" asp-action="Edit" asp-route-id="@returnRequest.Id">@returnRequest.CustomNumber</a> <a asp-controller="ReturnRequest" asp-action="Edit" asp-route-id="@returnRequest.Id">@returnRequest.CustomNumber</a>
if (i != item.ReturnRequests.Count - 1) if (i != item.ReturnRequests.Count - 1)
{ {
<text>, </text> <text>, </text>
} }
} }
</p> </p>
} }
</td> </td>
@if (Model.HasDownloadableProducts) @if (Model.HasDownloadableProducts)
{ {
<td style="width: 15%;" class="text-center"> <td style="width: 15%;" class="text-center">
@if (item.IsDownload) @if (item.IsDownload)
{ {
<a asp-controller="Download" asp-action="DownloadFile" asp-route-orderItemId="@item.Id"> <a asp-controller="Download" asp-action="DownloadFile" asp-route-orderItemId="@item.Id">
@T("Admin.Orders.Products.Download.Download") @T("Admin.Orders.Products.Download.Download")
</a> </a>
} }
else else
{ {
@T("Admin.Orders.Products.Download.NotAvailable") @T("Admin.Orders.Products.Download.NotAvailable")
} }
</td> </td>
} }
<td style="width: 13%;" class="text-center"> <td style="width: 13%;" class="text-center">
@if (Model.AllowCustomersToSelectTaxDisplayType) @if (Model.AllowCustomersToSelectTaxDisplayType)
{ {
<div>@Html.Raw(item.UnitPriceInclTax)</div> <div>@Html.Raw(item.UnitPriceInclTax)</div>
<div>@Html.Raw(item.UnitPriceExclTax)</div> <div>@Html.Raw(item.UnitPriceExclTax)</div>
} }
else else
{ {
switch (Model.TaxDisplayType) switch (Model.TaxDisplayType)
{ {
case TaxDisplayType.ExcludingTax: case TaxDisplayType.ExcludingTax:
{ {
@Html.Raw(item.UnitPriceExclTax) @Html.Raw(item.UnitPriceExclTax)
} }
break; break;
case TaxDisplayType.IncludingTax: case TaxDisplayType.IncludingTax:
{ {
@Html.Raw(item.UnitPriceInclTax) @Html.Raw(item.UnitPriceInclTax)
} }
break; break;
default: default:
break; break;
} }
} }
<div id="pnlEditPvUnitPrice@(item.Id)"> <div id="pnlEditPvUnitPrice@(item.Id)">
<div class="form-group row"> <div class="form-group row">
<div class="col-md-5"> <div class="col-md-5">
@T("Admin.Orders.Products.Edit.InclTax") @T("Admin.Orders.Products.Edit.InclTax")
</div> </div>
<div class="col-md-7"> <div class="col-md-7">
<input name="pvUnitPriceInclTax@(item.Id)" type="text" value="@(item.UnitPriceInclTaxValue)" id="pvUnitPriceInclTax@(item.Id)" <input name="pvUnitPriceInclTax@(item.Id)" type="text" value="@(item.UnitPriceInclTaxValue)" id="pvUnitPriceInclTax@(item.Id)"
class="form-control input-sm" /> class="form-control input-sm" />
</div> </div>
</div> </div>
@* <div class="form-group row"> @* <div class="form-group row">
<div class="col-md-5"> <div class="col-md-5">
@T("Admin.Orders.Products.Edit.ExclTax") @T("Admin.Orders.Products.Edit.ExclTax")
</div> </div>
@ -277,44 +284,44 @@
</div> </div>
</div> </div>
*@ </div> *@ </div>
</td> </td>
<td style="width: 10%;" class="text-center"> <td style="width: 10%;" class="text-center">
<div>@(item.Quantity) kt.</div> <div>@(item.Quantity) kt.</div>
<div id="pnlEditPvQuantity@(item.Id)"> <div id="pnlEditPvQuantity@(item.Id)">
<div class="form-group row"> <div class="form-group row">
<div class="col-md-8 offset-md-2"> <div class="col-md-8 offset-md-2">
<input name="pvQuantity@(item.Id)" type="number" max="@(item.ProductStockQuantity + item.ProductIncomingQuantity + item.Quantity)" min="1" <input name="pvQuantity@(item.Id)" type="number" max="@(item.ProductStockQuantity + item.ProductIncomingQuantity + item.Quantity)" min="1"
value="@item.Quantity" id="pvQuantity@(item.Id)" class="form-control input-sm" /> value="@item.Quantity" id="pvQuantity@(item.Id)" class="form-control input-sm" />
</div> </div>
</div> </div>
</div> </div>
</td> </td>
<td style="width: 80px;" class="text-center"> <td style="width: 80px;" class="text-center">
<div> <div>
<span>@($"{item.ProductStockQuantity} kt.")</span><span>@($"{(item.ProductIncomingQuantity > 0 ? " (+" + item.ProductIncomingQuantity + ")" : string.Empty)}")</span> <span>@($"{item.ProductStockQuantity} kt.")</span><span>@($"{(item.ProductIncomingQuantity > 0 ? " (+" + item.ProductIncomingQuantity + ")" : string.Empty)}")</span>
</div> </div>
</td> </td>
<td style="width: 100px;" class="text-center"> <td style="width: 100px;" class="text-center">
<span>@(item.NetWeight) kg.</span> <span>@(item.NetWeight) kg.</span>
<input type="hidden" name="pvNetWeight@(item.Id)" id="pvNetWeight@(item.Id)" value="@(item.NetWeight)" disabled /> <input type="hidden" name="pvNetWeight@(item.Id)" id="pvNetWeight@(item.Id)" value="@(item.NetWeight)" disabled />
</td> </td>
<td style="width: 80px;" class="text-center"> <td style="width: 80px;" class="text-center">
@if(item.IsMeasurable) @if (item.IsMeasurable)
{ {
<span class="badge badge-warning" disabled>Yes</span> <span class="badge badge-warning" disabled>Yes</span>
} }
else else
{ {
<span class="badge badge-secondary" disabled>No</span> <span class="badge badge-secondary" disabled>No</span>
} }
<input type="hidden" name="pvIsMeasurable@(item.Id)" id="pvIsMeasurable@(item.Id)" value="@(item.IsMeasurable.ToString())" disabled /> <input type="hidden" name="pvIsMeasurable@(item.Id)" id="pvIsMeasurable@(item.Id)" value="@(item.IsMeasurable.ToString())" disabled />
</td> </td>
@* <td style="width: 15%;" class="text-center"> @* <td style="width: 15%;" class="text-center">
@if (Model.AllowCustomersToSelectTaxDisplayType) @if (Model.AllowCustomersToSelectTaxDisplayType)
{ {
<div>@Html.Raw(item.DiscountInclTax)</div> <div>@Html.Raw(item.DiscountInclTax)</div>
@ -357,41 +364,41 @@
</div> </div>
</div> </div>
</td> *@ </td> *@
<td style="width: 15%;" class="text-center;"> <td style="width: 15%;" class="text-center;">
@if (Model.AllowCustomersToSelectTaxDisplayType) @if (Model.AllowCustomersToSelectTaxDisplayType)
{ {
<div>@Html.Raw(item.SubTotalInclTax)</div> <div>@Html.Raw(item.SubTotalInclTax)</div>
<div>@Html.Raw(item.SubTotalExclTax)</div> <div>@Html.Raw(item.SubTotalExclTax)</div>
} }
else else
{ {
switch (Model.TaxDisplayType) switch (Model.TaxDisplayType)
{ {
case TaxDisplayType.ExcludingTax: case TaxDisplayType.ExcludingTax:
{ {
@Html.Raw(item.SubTotalExclTax) @Html.Raw(item.SubTotalExclTax)
} }
break; break;
case TaxDisplayType.IncludingTax: case TaxDisplayType.IncludingTax:
{ {
@Html.Raw(item.SubTotalInclTax) @Html.Raw(item.SubTotalInclTax)
} }
break; break;
default: default:
break; break;
} }
} }
<div id="pnlEditPvPrice@(item.Id)"> <div id="pnlEditPvPrice@(item.Id)">
<div class="form-group row"> <div class="form-group row">
<div class="col-md-5"> <div class="col-md-5">
@T("Admin.Orders.Products.Edit.InclTax") @T("Admin.Orders.Products.Edit.InclTax")
</div> </div>
<div class="col-md-7"> <div class="col-md-7">
<input name="pvPriceInclTax@(item.Id)" disabled type="text" value="@item.SubTotalInclTaxValue" id="pvPriceInclTax@(item.Id)" <input name="pvPriceInclTax@(item.Id)" disabled type="text" value="@item.SubTotalInclTaxValue" id="pvPriceInclTax@(item.Id)"
class="form-control input-sm" /> class="form-control input-sm" />
</div> </div>
</div> </div>
@* <div class="form-group row"> @* <div class="form-group row">
<div class="col-md-5"> <div class="col-md-5">
@T("Admin.Orders.Products.Edit.ExclTax") @T("Admin.Orders.Products.Edit.ExclTax")
</div> </div>
@ -399,56 +406,59 @@
<input name="pvPriceExclTax@(item.Id)" disabled type="text" value="@item.SubTotalExclTaxValue" id="pvPriceExclTax@(item.Id)" class="form-control input-sm" /> <input name="pvPriceExclTax@(item.Id)" disabled type="text" value="@item.SubTotalExclTaxValue" id="pvPriceExclTax@(item.Id)" class="form-control input-sm" />
</div> </div>
</div>*@ </div>*@
</div> </div>
</td> </td>
@if (!Model.IsLoggedInAsVendor) @if (!Model.IsLoggedInAsVendor)
{ {
<td style="width: 17%;" class="text-center"> <td style="width: 17%;" class="text-center">
<button type="submit" class="btn btn-default" name="btnEditOrderItem@(item.Id)" onclick="toggleOrderItemEditGlobal(true, @(item.Id));return false;" id="btnEditOrderItem@(item.Id)"> <button type="submit" class="btn btn-default" name="btnEditOrderItem@(item.Id)" onclick="toggleOrderItemEditGlobal(true, @(item.Id));return false;" id="btnEditOrderItem@(item.Id)">
<i class="fas fa-pencil"></i> <i class="fas fa-pencil"></i>
@T("Admin.Common.Edit") @T("Admin.Common.Edit")
</button> </button>
<button type="submit" class="btn btn-default" name="btnDeleteOrderItem@(item.Id)" id="btnDeleteOrderItem@(item.Id)"> <button type="submit" class="btn btn-default" name="btnDeleteOrderItem@(item.Id)" id="btnDeleteOrderItem@(item.Id)">
<i class="far fa-trash-can"></i> <i class="far fa-trash-can"></i>
@T("Admin.Common.Delete") @T("Admin.Common.Delete")
</button> </button>
<nop-action-confirmation asp-button-id="@("btnDeleteOrderItem" + item.Id)" /> <nop-action-confirmation asp-button-id="@("btnDeleteOrderItem" + item.Id)" />
<button type="submit" class="btn btn-default" name="btnSaveOrderItem@(item.Id)" id="btnSaveOrderItem@(item.Id)"> <button type="submit" class="btn btn-default" name="btnSaveOrderItem@(item.Id)" id="btnSaveOrderItem@(item.Id)">
<i class="far fa-floppy-disk"></i> <i class="far fa-floppy-disk"></i>
@T("Admin.Common.Save") @T("Admin.Common.Save")
</button> </button>
<nop-action-confirmation asp-button-id="@("btnSaveOrderItem" + item.Id)" /> <nop-action-confirmation asp-button-id="@("btnSaveOrderItem" + item.Id)" />
<button type="submit" class="btn btn-default" name="btnCancelOrderItem@(item.Id)" onclick="toggleOrderItemEditGlobal(false,@(item.Id));return false;" id="btnCancelOrderItem@(item.Id)"> <button type="submit" class="btn btn-default" name="btnCancelOrderItem@(item.Id)" onclick="toggleOrderItemEditGlobal(false,@(item.Id));return false;" id="btnCancelOrderItem@(item.Id)">
<i class="fas fa-times"></i> <i class="fas fa-times"></i>
@T("Admin.Common.Cancel") @T("Admin.Common.Cancel")
</button> </button>
</td> </td>
} }
</tr> </tr>
} }
</tbody> }
</table> }
</div>
</div> </tbody>
@if (!string.IsNullOrEmpty(Model.CheckoutAttributeInfo) && !Model.IsLoggedInAsVendor) </table>
{ </div>
<div class="form-group row"> </div>
<div class="col-md-12"> @if (!string.IsNullOrEmpty(Model.CheckoutAttributeInfo) && !Model.IsLoggedInAsVendor)
@Html.Raw(Model.CheckoutAttributeInfo) {
</div> <div class="form-group row">
</div> <div class="col-md-12">
} @Html.Raw(Model.CheckoutAttributeInfo)
@if (!Model.IsLoggedInAsVendor) </div>
{ </div>
<div class="form-group row"> }
<div class="col-md-12"> @if (!Model.IsLoggedInAsVendor)
<button type="submit" id="btnAddNewProduct" name="btnAddNewProduct" onclick="javascript:setLocation('@(Url.Action("AddProductToOrder", "Order", new { orderId = Model.Id }))'); return false;" class="btn btn-primary"> {
@T("Admin.Orders.Products.AddNew") <div class="form-group row">
</button> <div class="col-md-12">
</div> <button type="submit" id="btnAddNewProduct" name="btnAddNewProduct" onclick="javascript:setLocation('@(Url.Action("AddProductToOrder", "Order", new { orderId = Model.Id }))'); return false;" class="btn btn-primary">
</div> @T("Admin.Orders.Products.AddNew")
} </button>
</div>
</div>
}
</div> </div>

View File

@ -219,8 +219,8 @@
UrlRead = new DataUrl("ProductList", "CustomProduct", null), UrlRead = new DataUrl("ProductList", "CustomProduct", null),
SearchButtonId = "search-products", SearchButtonId = "search-products",
Length = Model.PageSize, Length = Model.PageSize,
Ordering = true, // Ordering = true,
ServerSide = false, // ServerSide = false,
LengthMenu = Model.AvailablePageSizes, LengthMenu = Model.AvailablePageSizes,
Filters = new List<FilterParameter> Filters = new List<FilterParameter>
{ {