Compare commits

...

4 Commits

Author SHA1 Message Date
Loretta dd0d4f2097 improvements, fixes 2025-11-20 08:30:46 +01:00
Loretta 0db7f7f342 ... 2025-11-18 13:02:44 +01:00
Loretta 91f1d5b9f8 Merge branch '4.80' of https://git.aycode.com/Adam/Mango.Nop.Plugins into 4.80 2025-11-18 12:52:15 +01:00
Loretta c750b33651 fixes 2025-11-18 12:52:08 +01:00
4 changed files with 64 additions and 17 deletions

View File

@ -2,6 +2,8 @@
using AyCode.Core.Loggers; using AyCode.Core.Loggers;
using AyCode.Services.Server.SignalRs; using AyCode.Services.Server.SignalRs;
using AyCode.Services.SignalRs; using AyCode.Services.SignalRs;
using AyCode.Utils.Extensions;
using FluentMigrator.Runner.Generators.Base;
using FruitBank.Common.Dtos; using FruitBank.Common.Dtos;
using FruitBank.Common.Entities; using FruitBank.Common.Entities;
using FruitBank.Common.Interfaces; using FruitBank.Common.Interfaces;
@ -225,10 +227,15 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
OrderStatusIds = orderStatuses, OrderStatusIds = orderStatuses,
PaymentStatusIds = paymentStatuses, PaymentStatusIds = paymentStatuses,
ShippingStatusIds = shippingStatuses, ShippingStatusIds = shippingStatuses,
Length = 50,
AvailablePageSizes = "20,50,100,500", AvailablePageSizes = "20,50,100,500",
SortColumn = "Id",
SortColumnDirection = "desc", SortColumnDirection = "desc",
}); });
model.SetGridSort("Id", "desc");
model.SetGridPageSize(50, "20,50,100,500");
return View("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Views/Order/List.cshtml", model); return View("~/Plugins/Misc.FruitBankPlugin/Areas/Admin/Views/Order/List.cshtml", model);
} }
@ -237,6 +244,12 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
public async Task<IActionResult> OrderList(OrderSearchModelExtended searchModel) public async Task<IActionResult> OrderList(OrderSearchModelExtended searchModel)
{ {
//prepare model //prepare model
//if (searchModel.SortColumn.IsNullOrWhiteSpace())
//{
// searchModel.SortColumn = "Id";
// searchModel.SortColumnDirection = "desc";
//}
var orderListModel = await GetOrderListModelByFilter(searchModel); var orderListModel = await GetOrderListModelByFilter(searchModel);
//var orderListModel = new OrderListModel(); //var orderListModel = new OrderListModel();
@ -294,19 +307,29 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
public async Task<OrderListModelExtended> GetOrderListModelByFilter(OrderSearchModelExtended searchModel) public async Task<OrderListModelExtended> GetOrderListModelByFilter(OrderSearchModelExtended searchModel)
{ {
//if (searchModel.SortColumn.IsNullOrWhiteSpace())
var sortColumnIndex = Request.Form["order[0][column]"].FirstOrDefault();
var sortDirection = Request.Form["order[0][dir]"].FirstOrDefault();
if (!string.IsNullOrEmpty(sortColumnIndex))
{ {
// Get the column name from the column index var sortColumnIndex = Request.Form["order[0][column]"].FirstOrDefault();
var columnName = Request.Form[$"columns[{sortColumnIndex}][data]"].FirstOrDefault(); var sortDirection = Request.Form["order[0][dir]"].FirstOrDefault();
searchModel.SortColumn = columnName; if (!string.IsNullOrEmpty(sortColumnIndex))
searchModel.SortColumnDirection = sortDirection; // "asc" or "desc" {
// Get the column name from the column index
var columnName = Request.Form[$"columns[{sortColumnIndex}][data]"].FirstOrDefault();
searchModel.SortColumn = columnName;
if(int.Parse(sortColumnIndex) > 0) searchModel.SortColumnDirection = sortDirection; // "asc" or "desc"
else searchModel.SortColumnDirection = "desc";
}
//else
//{
// searchModel.SortColumn = "Id";
// searchModel.SortColumnDirection = "desc";
//}
} }
// Get the paginated data // Get the paginated data
var orderListModel = await _orderModelFactory.PrepareOrderListModelExtendedAsync(searchModel); var orderListModel = await _orderModelFactory.PrepareOrderListModelExtendedAsync(searchModel);
@ -1212,9 +1235,9 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Controllers
} }
// Validate stock // Validate stock
var stockQuantity = await _productService.GetTotalStockQuantityAsync(product); //var stockQuantity = await _productService.GetTotalStockQuantityAsync(product);
var productDto = productDtosByOrderItemId[productModel.Id]; var productDto = productDtosByOrderItemId[productModel.Id];
var isMeasurable = productDto.IsMeasurable; //var isMeasurable = productDto.IsMeasurable;
//if (stockQuantity < productModel.Quantity) //if (stockQuantity < productModel.Quantity)
//{ //{

View File

@ -18,5 +18,11 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Areas.Admin.Models.Order
public string SortColumn { get; set; } public string SortColumn { get; set; }
public string SortColumnDirection { get; set; } public string SortColumnDirection { get; set; }
public void SetGridSort(string columnName, string columnDirection = "asc")
{
SortColumn = "Id";
SortColumnDirection = columnDirection;
}
} }
} }

View File

@ -134,6 +134,14 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
return await ctx.ShippingItems.GetAll(true).ToListAsync(); return await ctx.ShippingItems.GetAll(true).ToListAsync();
} }
[SignalR(SignalRTags.GetShippingItemsByDocumentId)]
public async Task<List<ShippingItem>> GetShippingItemsByDocumentId(int shippingDocumentId)
{
_logger.Detail($"GetShippingItemsByDocumentId invoked");
return await ctx.ShippingItems.GetAllByShippingDocumentIdAsync(shippingDocumentId, true).ToListAsync();
}
[SignalR(SignalRTags.GetShippingItemById)] [SignalR(SignalRTags.GetShippingItemById)]
public async Task<ShippingItem> GetShippingItemById(int id) public async Task<ShippingItem> GetShippingItemById(int id)
{ {
@ -151,7 +159,7 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
_logger.Detail($"AddShippingItem invoked; id: {shippingItem.Id}"); _logger.Detail($"AddShippingItem invoked; id: {shippingItem.Id}");
if (!await ctx.AddShippingItemAsync(shippingItem)) return null; if (!await ctx.AddShippingItemAsync(shippingItem)) return null;
return await ctx.ShippingItems.GetByIdAsync(shippingItem.Id, shippingItem.ShippingDocument != null); return await ctx.ShippingItems.GetByIdAsync(shippingItem.Id, true);
} }
[SignalR(SignalRTags.UpdateShippingItem)] [SignalR(SignalRTags.UpdateShippingItem)]

View File

@ -227,10 +227,19 @@ public class FruitBankDbContext : MgDbContextBase,
if (productId > 0) if (productId > 0)
{ {
var productDto = await ProductDtos.GetByIdAsync(productId); var productDto = await ProductDtos.GetByIdAsync(productId, true);
shippingItem.IsMeasurable = productDto?.IsMeasurable ?? false;
if (productDto != null)
{
shippingItem.IsMeasurable = productDto.IsMeasurable;
shippingItem.Name = productDto.Name;
}
} }
//IDEIGLENES, AMÍG NEM VEZETJÜK KI A shippingItem.Name-et!
if (shippingItem.Name.IsNullOrEmpty() && !shippingItem.NameOnDocument.IsNullOrEmpty()) shippingItem.Name = shippingItem.NameOnDocument;
else if (shippingItem.Name.IsNullOrEmpty()) shippingItem.Name = string.Empty;
await ShippingItems.InsertAsync(shippingItem); await ShippingItems.InsertAsync(shippingItem);
return true; return true;
} }
@ -256,6 +265,7 @@ public class FruitBankDbContext : MgDbContextBase,
throw new Exception($"shippingItem.ProductId > 0 && product == null; shippingItem.ProductId: {shippingItem.ProductId}"); throw new Exception($"shippingItem.ProductId > 0 && product == null; shippingItem.ProductId: {shippingItem.ProductId}");
productIsMeasurable = productDto.IsMeasurable; productIsMeasurable = productDto.IsMeasurable;
shippingItem.Name = productDto.Name;
} }
shippingItem.IsMeasurable = productIsMeasurable; shippingItem.IsMeasurable = productIsMeasurable;
@ -315,7 +325,7 @@ public class FruitBankDbContext : MgDbContextBase,
//await _fruitBankAttributeService.InsertOrUpdateMeasuringAttributeValuesAsync<Product>(productDto.Id, weightToChange, shippingItem.IsMeasurable, true); //await _fruitBankAttributeService.InsertOrUpdateMeasuringAttributeValuesAsync<Product>(productDto.Id, weightToChange, shippingItem.IsMeasurable, true);
} }
await UpdateStockQuantityAndWeightAsync(productDto, quantityInc, $"Bejövő mérés, shippingItem: #{shippingItem.Id}", weightToChange); await UpdateStockQuantityAndWeightAsync(productDto, quantityInc, $"Áru bevételezés, shippingItem: #{shippingItem.Id}", weightToChange);
//productDto!.StockQuantity += quantityInc; //productDto!.StockQuantity += quantityInc;
} }
@ -346,7 +356,7 @@ public class FruitBankDbContext : MgDbContextBase,
//} //}
await UpdateStockQuantityAndWeightAsync(productDto, -dbShippingItem.MeasuredQuantity, await UpdateStockQuantityAndWeightAsync(productDto, -dbShippingItem.MeasuredQuantity,
$"Bejövő mérés, ShippingItem.Id: #{shippingItem.Id}. Product.Id megváltozott, #{productDto.Id}->#{shippingItem.ProductId}!", $"Áru bevételezés, ShippingItem.Id: #{shippingItem.Id}. Product.Id megváltozott, #{productDto.Id}->#{shippingItem.ProductId}!",
-dbShippingItem.MeasuredNetWeight); -dbShippingItem.MeasuredNetWeight);
//productDto!.StockQuantity -= dbShippingItem.MeasuredQuantity; //productDto!.StockQuantity -= dbShippingItem.MeasuredQuantity;
@ -515,7 +525,7 @@ public class FruitBankDbContext : MgDbContextBase,
//await _fruitBankAttributeService.InsertOrUpdateMeasuringAttributeValuesAsync<Product>(orderItemDto.ProductId, productWeightToChange, orderItemDto.IsMeasurable, true); //await _fruitBankAttributeService.InsertOrUpdateMeasuringAttributeValuesAsync<Product>(orderItemDto.ProductId, productWeightToChange, orderItemDto.IsMeasurable, true);
await UpdateStockQuantityAndWeightAsync(orderItemDto.ProductId, 0, await UpdateStockQuantityAndWeightAsync(orderItemDto.ProductId, 0,
$"Kimenő mérés, OrderStatus set to complete. Rendelés: #{orderDto.Id}, rendelés tétel: #{orderItemDto.Id}", $"Áru kiadás, OrderStatus set to complete. Rendelés: #{orderDto.Id}, rendelés tétel: #{orderItemDto.Id}",
productWeightToChange); productWeightToChange);
} }