Set EkaerHistory summary fields and update dev DB config
Updated the connection string to use the FruitBank_DEV database. Ensured EkaerHistory summary fields (ShippingDate, Partner/Customer) are consistently set via fruitBankEkaerService.SetSummary when creating or updating records, improving data consistency for both inbound and outbound cases.
This commit is contained in:
parent
c71bf2fcd8
commit
fdde2b3c6b
|
|
@ -344,6 +344,9 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
|
|||
var documents = await ctx.ShippingDocuments.GetAll(true).Where(sd => foreignKeys.Contains(sd.Id)).ToListAsync();
|
||||
if (documents.Count == 0) throw new InvalidOperationException($"EkaerHistory #{ekaerHistoryId}: no ShippingDocuments found for the mapped ids.");
|
||||
ekaerHistory = fruitBankEkaerService.GenerateEkaerXmlDocument(documents, ekaerHistory);
|
||||
|
||||
// Összegző (ShippingDate + Partner) frissítése — a csoporton belül invariáns, így bármelyik dok jó.
|
||||
fruitBankEkaerService.SetSummary(ekaerHistory, documents[0].ShippingDate, documents[0].Partner?.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -351,6 +354,8 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
|
|||
var order = await ctx.OrderDtos.GetByIdAsync(foreignKeys[0], true)
|
||||
?? throw new ArgumentException($"Order not found; id: {foreignKeys[0]}");
|
||||
ekaerHistory = fruitBankEkaerService.GenerateEkaerXmlDocument(order, ekaerHistory);
|
||||
|
||||
fruitBankEkaerService.SetSummary(ekaerHistory, order.DateOfReceipt, order.Customer?.Company);
|
||||
}
|
||||
|
||||
await ctx.EkaerHistories.UpdateAsync(ekaerHistory);
|
||||
|
|
@ -376,18 +381,21 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
|
|||
|
||||
if (existing != null) return existing;
|
||||
|
||||
// A forrás-entitás léte irányfüggő: bejövő → ShippingDocument, kimenő → Order.
|
||||
// A forrás-entitás létét ellenőrizzük és betöltjük (relations) az összegző mezőkhöz (ShippingDate + Partner).
|
||||
var ekaerHistory = new EkaerHistory { IsOutgoing = isOutgoing, Status = EkaerStatus.Pending };
|
||||
if (!isOutgoing)
|
||||
{
|
||||
_ = await ctx.ShippingDocuments.GetByIdAsync(foreignKey, false) ?? throw new ArgumentException($"ShippingDocument not found; id: {foreignKey}", nameof(foreignKey));
|
||||
var doc = await ctx.ShippingDocuments.GetByIdAsync(foreignKey, true) ?? throw new ArgumentException($"ShippingDocument not found; id: {foreignKey}", nameof(foreignKey));
|
||||
fruitBankEkaerService.SetSummary(ekaerHistory, doc.ShippingDate, doc.Partner?.Name);
|
||||
}
|
||||
else
|
||||
{
|
||||
_ = await ctx.OrderDtos.GetByIdAsync(foreignKey, false) ?? throw new ArgumentException($"Order not found; id: {foreignKey}", nameof(foreignKey));
|
||||
var order = await ctx.OrderDtos.GetByIdAsync(foreignKey, true) ?? throw new ArgumentException($"Order not found; id: {foreignKey}", nameof(foreignKey));
|
||||
fruitBankEkaerService.SetSummary(ekaerHistory, order.DateOfReceipt, order.Customer?.Company);
|
||||
}
|
||||
|
||||
// EGY EkaerHistory + EGY mapping sor (egyelemű csoport), atomikusan.
|
||||
var ekaerHistory = await ctx.AddEkaerHistoryWithMappingsAsync(new EkaerHistory { IsOutgoing = isOutgoing, Status = EkaerStatus.Pending }, [foreignKey]);
|
||||
ekaerHistory = await ctx.AddEkaerHistoryWithMappingsAsync(ekaerHistory, [foreignKey]);
|
||||
|
||||
// A friss sort adjuk vissza, a betöltött Mappings-szel; a sor biztosan létezik (épp beszúrtuk).
|
||||
return await ctx.EkaerHistories.GetByIdAsync(ekaerHistory.Id, true);
|
||||
|
|
@ -426,8 +434,10 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
|
|||
if (result.Obligation == EkaerObligation.DataError) { messages.UnionWith(result.Errors); continue; }
|
||||
if (result.Obligation == EkaerObligation.NotRequired) continue;
|
||||
|
||||
// Kötelező → EGY EkaerHistory a csoportra + a csoport dokumentumai mapping-foreignKey-ként.
|
||||
toCreate.Add((new EkaerHistory { IsOutgoing = false, StatusId = (int)EkaerStatus.Pending }, docs.Select(d => d.Id).ToList()));
|
||||
// Kötelező → EGY EkaerHistory a csoportra (összegző: ShippingDate + Partner — invariáns) + a dokumentumok mapping-foreignKey-ként.
|
||||
var history = new EkaerHistory { IsOutgoing = false, StatusId = (int)EkaerStatus.Pending };
|
||||
fruitBankEkaerService.SetSummary(history, docs[0].ShippingDate, docs[0].Partner?.Name);
|
||||
toCreate.Add((history, docs.Select(d => d.Id).ToList()));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -454,7 +464,9 @@ namespace Nop.Plugin.Misc.FruitBankPlugin.Controllers
|
|||
if (result.Obligation == EkaerObligation.DataError) { messages.UnionWith(result.Errors); continue; }
|
||||
if (result.Obligation == EkaerObligation.NotRequired) continue;
|
||||
|
||||
toCreate.Add((new EkaerHistory { IsOutgoing = true, StatusId = (int)EkaerStatus.Pending }, [order.Id]));
|
||||
var history = new EkaerHistory { IsOutgoing = true, StatusId = (int)EkaerStatus.Pending };
|
||||
fruitBankEkaerService.SetSummary(history, order.DateOfReceipt, order.Customer?.Company);
|
||||
toCreate.Add((history, [order.Id]));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue