diff --git a/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs b/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs index 6dd7a57..3bde3e9 100644 --- a/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs +++ b/Nop.Plugin.Misc.AIPlugin/Controllers/FruitBankDataController.cs @@ -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 AddShippingItemPallet(ShippingItemPallet shippingItemPallet) + { + ArgumentNullException.ThrowIfNull(shippingItemPallet); + + _logger.Detail($"AddShippingItemPallet invoked; {shippingItemPallet}"); + + return await ctx.AddShippingItemPalletAsync(shippingItemPallet); + } + + [SignalR(SignalRTags.UpdateShippingItemPallet)] + public async Task UpdateShippingItemPallet(ShippingItemPallet shippingItemPallet) + { + ArgumentNullException.ThrowIfNull(shippingItemPallet); + + _logger.Detail($"UpdateShippingItemPallet invoked; {shippingItemPallet}"); + + return await ctx.UpdateShippingItemPalletAsync(shippingItemPallet); + } + [SignalR(SignalRTags.GetShippingDocuments)] public async Task> GetShippingDocuments() { diff --git a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs index 82277cf..01174a0 100644 --- a/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs +++ b/Nop.Plugin.Misc.AIPlugin/Domains/DataLayer/FruitBankDbContext.cs @@ -264,6 +264,37 @@ public class FruitBankDbContext : MgDbContextBase, }); } + public async Task AddShippingItemPalletAsync(ShippingItemPallet shippingItemPallet) + { + if (!await ShippingItemPalletSetup(shippingItemPallet)) return null; + + await ShippingItemPallets.InsertAsync(shippingItemPallet); + return shippingItemPallet; + } + + public async Task UpdateShippingItemPalletAsync(ShippingItemPallet shippingItemPallet) + { + if (!await ShippingItemPalletSetup(shippingItemPallet)) return null; + + await ShippingItemPallets.UpdateAsync(shippingItemPallet); + return shippingItemPallet; + } + + private async Task 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 UpdateProductStockQuantityAsync(int productId, bool publishEvent) { var product = await Products.GetByIdAsync(productId);