Try your search with a different keyword or use * as a wildcard.
@model ProductModel
@using Nop.Core.Domain.Catalog;
@using Nop.Services
<script>
$(function() {
$("#@Html.IdFor(model => model.ManageInventoryMethodId)").change(toggleManageStock);
$("#@Html.IdFor(model => model.UseMultipleWarehouses)").click(toggleManageStock);
$("#@Html.IdFor(model => model.BackorderModeId)").change(toggleManageStock);
$("#@Html.IdFor(model => model.DisplayStockAvailability)").click(toggleManageStock);
toggleManageStock();
});
function toggleManageStock() {
var dontManageStockId = "@((int)ManageInventoryMethod.DontManageStock)";
var manageStockId = "@((int)ManageInventoryMethod.ManageStock)";
var noBackordersId = "@((int)BackorderMode.NoBackorders)";
var allowQtyBelow0Id = "@((int)BackorderMode.AllowQtyBelow0)";
var allowQtyBelow0AndNotifyCustomerId = "@((int)BackorderMode.AllowQtyBelow0AndNotifyCustomer)";
var selectedManageInventoryMethodId = $("#@Html.IdFor(model => model.ManageInventoryMethodId)").val();
if (selectedManageInventoryMethodId == dontManageStockId) {
$('#pnlProductAvailabilityRange').hideElement();
$('#pnlUseMultipleWarehouses').hideElement();
$('#pnlWarehouse').hideElement();
$('#pnlMultipleWarehouses').hideElement();
$('#pnlStockQuantity').hideElement();
$('#pnlDisplayStockAvailability').hideElement();
$('#pnlDisplayStockQuantity').hideElement();
$('#pnlMinStockQuantity').hideElement();
$('#pnlLowStockActivity').hideElement();
$('#pnlNotifyForQuantityBelow').hideElement();
$('#pnlAllowBackInStockSubscriptions').hideElement();
$('#pnlBackorders').hideElement();
$('#pnlAllowAddingOnlyExistingAttributeCombinations').hideElement();
$('[data-card-name=product-stock-quantity-history]').hideElement();
} else if (selectedManageInventoryMethodId == manageStockId) {
$('#pnlUseMultipleWarehouses').showElement();
if ($('#@Html.IdFor(model => model.UseMultipleWarehouses)').is(':checked')) {
$('#pnlWarehouse').hideElement();
$('#pnlMultipleWarehouses').showElement();
$('#pnlStockQuantity').hideElement();
} else {
$('#pnlWarehouse').showElement();
$('#pnlMultipleWarehouses').hideElement();
$('#pnlStockQuantity').showElement();
}
$('#pnlDisplayStockAvailability').showElement();
if ($('#@Html.IdFor(model => model.DisplayStockAvailability)').is(':checked')) {
$('#pnlDisplayStockQuantity').showElement();
} else {
$('#pnlDisplayStockQuantity').hideElement();
}
$('#pnlMinStockQuantity').showElement();
$('#pnlLowStockActivity').showElement();
$('#pnlNotifyForQuantityBelow').showElement();
$('#pnlBackorders').showElement();
var selectedBackorderModeId = $("#@Html.IdFor(model => model.BackorderModeId)").val();
if (selectedBackorderModeId == noBackordersId) {
//no backorders
$('#pnlAllowBackInStockSubscriptions').showElement();
$('#pnlProductAvailabilityRange').showElement();
} else if (selectedBackorderModeId == allowQtyBelow0AndNotifyCustomerId) {
//backorders are enabled
$('#pnlAllowBackInStockSubscriptions').hideElement();
$('#pnlProductAvailabilityRange').showElement();
}
else if (selectedBackorderModeId == allowQtyBelow0Id) {
//backorders are enabled
$('#pnlAllowBackInStockSubscriptions').hideElement();
$('#pnlProductAvailabilityRange').hideElement();
}
$('#pnlAllowAddingOnlyExistingAttributeCombinations').hideElement();
$('[data-card-name=product-stock-quantity-history]').showElement();
} else {
$('#pnlProductAvailabilityRange').showElement();
$('#pnlUseMultipleWarehouses').hideElement();
$('#pnlWarehouse').showElement();
$('#pnlMultipleWarehouses').hideElement();
$('#pnlStockQuantity').hideElement();
$('#pnlDisplayStockAvailability').showElement();
if ($('#@Html.IdFor(model => model.DisplayStockAvailability)').is(':checked')) {
$('#pnlDisplayStockQuantity').showElement();
} else {
$('#pnlDisplayStockQuantity').hideElement();
}
$('#pnlMinStockQuantity').showElement();
$('#pnlLowStockActivity').showElement();
$('#pnlNotifyForQuantityBelow').hideElement();
$('#pnlAllowBackInStockSubscriptions').hideElement();
$('#pnlBackorders').hideElement();
$('#pnlAllowAddingOnlyExistingAttributeCombinations').showElement();
$('[data-card-name=product-stock-quantity-history]').showElement();
}
}
</script>
<div class="card-body">
<div id="product-inventory-area">
<div class="form-group row">
<div class="col-md-3">
<nop-label asp-for="ManageInventoryMethodId" />
</div>
<div class="col-md-9">
<nop-select asp-for="ManageInventoryMethodId" asp-items="@(await ((ManageInventoryMethod)Model.ManageInventoryMethodId).ToSelectListAsync())" />
<span asp-validation-for="ManageInventoryMethodId"></span>
</div>
</div>
<div class="form-group row" id="pnlStockQuantity">
<div class="col-md-3">
<nop-label asp-for="StockQuantity" />
</div>
<div class="col-md-9">
<nop-editor asp-for="StockQuantity" />
<input type="hidden" asp-for="LastStockQuantity" />
<span asp-validation-for="StockQuantity"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.Warehouse ? null : "advanced-setting")" id="pnlWarehouse">
<div class="col-md-3">
<nop-label asp-for="WarehouseId" />
</div>
<div class="col-md-9">
<nop-select asp-for="WarehouseId" asp-items="Model.AvailableWarehouses" />
<span asp-validation-for="WarehouseId"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.UseMultipleWarehouses ? null : "advanced-setting")" id="pnlUseMultipleWarehouses">
<div class="col-md-3">
<nop-label asp-for="UseMultipleWarehouses" />
</div>
<div class="col-md-9">
<nop-editor asp-for="UseMultipleWarehouses" />
<span asp-validation-for="UseMultipleWarehouses"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.UseMultipleWarehouses ? null : "advanced-setting")" id="pnlMultipleWarehouses">
<div class="col-md-12" style="overflow-x: auto;">
@if (Model.ProductWarehouseInventoryModels.Count > 0)
{
<table class="table table-hover table-bordered text-center">
<thead>
<tr>
<th>
@T("Admin.Catalog.Products.ProductWarehouseInventory.Fields.Warehouse")
</th>
<th>
@T("Admin.Catalog.Products.ProductWarehouseInventory.Fields.WarehouseUsed")
</th>
<th>
@T("Admin.Catalog.Products.ProductWarehouseInventory.Fields.StockQuantity")
</th>
<th>
@T("Admin.Catalog.Products.ProductWarehouseInventory.Fields.ReservedQuantity")
</th>
<th>
@T("Admin.Catalog.Products.ProductWarehouseInventory.Fields.PlannedQuantity")
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model.ProductWarehouseInventoryModels)
{
<tr>
<td style="width: 36%;">
<div style="padding-left: 10px; padding-right: 10px;">
@item.WarehouseName
</div>
</td>
<td style="width: 10%;">
<input type="checkbox" id="warehouse_used_@(item.WarehouseId)" name="warehouse_used_@(item.WarehouseId)" value="@item.WarehouseId" checked="@item.WarehouseUsed" />
<script>
$(function() {
$("#warehouse_used_@(item.WarehouseId)").change(toggleWarehouseUsed_@(item.WarehouseId));
toggleWarehouseUsed_@(item.WarehouseId)();
});
function toggleWarehouseUsed_@(item.WarehouseId)() {
if ($('#warehouse_used_@(item.WarehouseId)').is(':checked')) {
$('#warehouse_qty_@(item.WarehouseId)').prop('disabled', false);
$('#warehouse_reserved_@(item.WarehouseId)').prop('disabled', false);
} else {
$('#warehouse_qty_@(item.WarehouseId)').prop('disabled', true);
$('#warehouse_reserved_@(item.WarehouseId)').prop('disabled', true);
}
}
</script>
</td>
<td style="width: 18%;">
<input id="warehouse_qty_@(item.WarehouseId)" name="warehouse_qty_@(item.WarehouseId)" type="number" value="@item.StockQuantity" class="form-control" />
</td>
<td style="width: 18%;">
<input id="warehouse_reserved_@(item.WarehouseId)" name="warehouse_reserved_@(item.WarehouseId)" type="number" value="@item.ReservedQuantity" class="form-control" />
</td>
<td style="width: 18%;">
@item.PlannedQuantity
</td>
</tr>
}
</tbody>
</table>
<p>
<em>@T("Admin.Catalog.Products.ProductWarehouseInventory.Description1")</em>
</p>
<p>
<em>@T("Admin.Catalog.Products.ProductWarehouseInventory.Description2")</em>
</p>
<p>
<em>@T("Admin.Catalog.Products.ProductWarehouseInventory.Description3")</em>
</p>
}
else
{
@T("Admin.Catalog.Products.ProductWarehouseInventory.Fields.Warehouse.NotDefined")
}
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.DisplayStockAvailability ? null : "advanced-setting")" id="pnlDisplayStockAvailability">
<div class="col-md-3">
<nop-label asp-for="DisplayStockAvailability" />
</div>
<div class="col-md-9">
<nop-editor asp-for="DisplayStockAvailability" />
<span asp-validation-for="DisplayStockAvailability"></span>
</div>
</div>
<nop-nested-setting asp-for="DisplayStockAvailability" disable-auto-generation="true">
<div class="form-group row @(Model.ProductEditorSettingsModel.DisplayStockAvailability ? null : "advanced-setting")" id="pnlDisplayStockQuantity">
<div class="col-md-3">
<nop-label asp-for="DisplayStockQuantity" />
</div>
<div class="col-md-9">
<nop-editor asp-for="DisplayStockQuantity" />
<span asp-validation-for="DisplayStockQuantity"></span>
</div>
</div>
</nop-nested-setting>
<div class="form-group row @(Model.ProductEditorSettingsModel.MinimumStockQuantity ? null : "advanced-setting")" id="pnlMinStockQuantity">
<div class="col-md-3">
<nop-label asp-for="MinStockQuantity" />
</div>
<div class="col-md-9">
<nop-editor asp-for="MinStockQuantity" />
<span asp-validation-for="MinStockQuantity"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.LowStockActivity ? null : "advanced-setting")" id="pnlLowStockActivity">
<div class="col-md-3">
<nop-label asp-for="LowStockActivityId" />
</div>
<div class="col-md-9">
<nop-select asp-for="LowStockActivityId" asp-items="@(await ((LowStockActivity)Model.LowStockActivityId).ToSelectListAsync())" />
<span asp-validation-for="LowStockActivityId"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.NotifyAdminForQuantityBelow ? null : "advanced-setting")" id="pnlNotifyForQuantityBelow">
<div class="col-md-3">
<nop-label asp-for="NotifyAdminForQuantityBelow" />
</div>
<div class="col-md-9">
<nop-editor asp-for="NotifyAdminForQuantityBelow" />
<span asp-validation-for="NotifyAdminForQuantityBelow"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.Backorders ? null : "advanced-setting")" id="pnlBackorders">
<div class="col-md-3">
<nop-label asp-for="BackorderModeId" />
</div>
<div class="col-md-9">
<nop-select asp-for="BackorderModeId" asp-items="@(await ((BackorderMode)Model.BackorderModeId).ToSelectListAsync())" />
<span asp-validation-for="BackorderModeId"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.AllowBackInStockSubscriptions ? null : "advanced-setting")" id="pnlAllowBackInStockSubscriptions">
<div class="col-md-3">
<nop-label asp-for="AllowBackInStockSubscriptions" />
</div>
<div class="col-md-9">
<nop-editor asp-for="AllowBackInStockSubscriptions" />
<span asp-validation-for="AllowBackInStockSubscriptions"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.ProductAvailabilityRange ? null : "advanced-setting")" id="pnlProductAvailabilityRange">
<div class="col-md-3">
<nop-label asp-for="ProductAvailabilityRangeId" />
</div>
<div class="col-md-9">
<nop-select asp-for="ProductAvailabilityRangeId" asp-items="Model.AvailableProductAvailabilityRanges" />
<span asp-validation-for="ProductAvailabilityRangeId"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.MinimumCartQuantity ? null : "advanced-setting")">
<div class="col-md-3">
<nop-label asp-for="OrderMinimumQuantity" />
</div>
<div class="col-md-9">
<nop-editor asp-for="OrderMinimumQuantity" />
<span asp-validation-for="OrderMinimumQuantity"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.MaximumCartQuantity ? null : "advanced-setting")">
<div class="col-md-3">
<nop-label asp-for="OrderMaximumQuantity" />
</div>
<div class="col-md-9">
<nop-editor asp-for="OrderMaximumQuantity" />
<span asp-validation-for="OrderMaximumQuantity"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.AllowedQuantities ? null : "advanced-setting")">
<div class="col-md-3">
<nop-label asp-for="AllowedQuantities" />
</div>
<div class="col-md-9">
<nop-editor asp-for="AllowedQuantities" />
<span asp-validation-for="AllowedQuantities"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.AllowAddingOnlyExistingAttributeCombinations ? null : "advanced-setting")" id="pnlAllowAddingOnlyExistingAttributeCombinations">
<div class="col-md-3">
<nop-label asp-for="AllowAddingOnlyExistingAttributeCombinations" />
</div>
<div class="col-md-9">
<nop-editor asp-for="AllowAddingOnlyExistingAttributeCombinations" />
<span asp-validation-for="AllowAddingOnlyExistingAttributeCombinations"></span>
</div>
</div>
<div class="form-group row @(Model.ProductEditorSettingsModel.NotReturnable ? null : "advanced-setting")">
<div class="col-md-3">
<nop-label asp-for="NotReturnable" />
</div>
<div class="col-md-9">
<nop-editor asp-for="NotReturnable" />
<span asp-validation-for="NotReturnable"></span>
</div>
</div>
</div>
</div>