ShippingItemPallets improvements

This commit is contained in:
Loretta 2025-10-05 14:55:36 +02:00
parent bfb06be4cf
commit 0ec3c0498f
2 changed files with 51 additions and 0 deletions

View File

@ -147,6 +147,26 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
return await ctx.ShippingItems.GetByIdAsync(shippingItem.Id, shippingItem.ShippingDocument != null);
}
[SignalR(SignalRTags.AddShippingItemPallet)]
public async Task<ShippingItemPallet> AddShippingItemPallet(ShippingItemPallet shippingItemPallet)
{
ArgumentNullException.ThrowIfNull(shippingItemPallet);
_logger.Detail($"AddShippingItemPallet invoked; {shippingItemPallet}");
return await ctx.AddShippingItemPalletAsync(shippingItemPallet);
}
[SignalR(SignalRTags.UpdateShippingItemPallet)]
public async Task<ShippingItemPallet> UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet)
{
ArgumentNullException.ThrowIfNull(shippingItemPallet);
_logger.Detail($"UpdateShippingItemPallet invoked; {shippingItemPallet}");
return await ctx.UpdateShippingItemPalletAsync(shippingItemPallet);
}
[SignalR(SignalRTags.GetShippingDocuments)]
public async Task<List<ShippingDocument>> GetShippingDocuments()
{

View File

@ -264,6 +264,37 @@ public class FruitBankDbContext : MgDbContextBase,
});
}
public async Task<ShippingItemPallet?> AddShippingItemPalletAsync(ShippingItemPallet shippingItemPallet)
{
if (!await ShippingItemPalletSetup(shippingItemPallet)) return null;
await ShippingItemPallets.InsertAsync(shippingItemPallet);
return shippingItemPallet;
}
public async Task<ShippingItemPallet?> UpdateShippingItemPalletAsync(ShippingItemPallet shippingItemPallet)
{
if (!await ShippingItemPalletSetup(shippingItemPallet)) return null;
await ShippingItemPallets.UpdateAsync(shippingItemPallet);
return shippingItemPallet;
}
private async Task<bool> ShippingItemPalletSetup(ShippingItemPallet shippingItemPallet)
{
var shippingItem = await ShippingItems.GetByIdAsync(shippingItemPallet.ShippingItemId, false);
if (shippingItem == null) return false;
if (!shippingItem.IsMeasurable)
{
shippingItemPallet.NetWeight = 0;
shippingItemPallet.GrossWeight = 0;
}
shippingItemPallet.IsMeasured = shippingItemPallet.IsValidMeasuringValues(shippingItem.IsMeasurable);
return true;
}
private async Task<bool> UpdateProductStockQuantityAsync(int productId, bool publishEvent)
{
var product = await Products.GetByIdAsync(productId);