From dbbfef35a9d1cfa2738bf26733bfc4dea807c2d8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Mon, 11 Mar 2024 18:15:34 +0100 Subject: [PATCH] Fix overwrite useQty --- .../Controllers/MagmanController.cs | 22 +++++++++++++------ .../Controllers/RawItemsController.cs | 13 ++++++++--- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs b/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs index 5ea4a36c..9062f7ff 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/MagmanController.cs @@ -656,7 +656,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Esegue registrazione Risorse (RawItems) come CONSUMI effettivi: /// /// DB Id del progetto x cui si inviano i dati - /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// + /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// /// public SyncResult ResourceSendCons(int ProjCloudId, Dictionary rec2send) { @@ -668,7 +670,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Esegue registrazione Risorse (RawItems) come CONSUMI effettivi, versione ASYNC: /// /// DB Id del progetto x cui si inviano i dati - /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// + /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// /// public async Task ResourceSendConsAsync(int ProjCloudId, Dictionary rec2send) { @@ -680,7 +684,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Esegue registrazione Risorse (RawItems) come stima: /// /// DB Id del progetto x cui si inviano i dati - /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// + /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// /// public SyncResult ResourceSendEstimate(int ProjCloudId, Dictionary rec2send) { @@ -692,7 +698,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// Esegue registrazione Risorse (RawItems) come stima, versione ASYNC: /// /// DB Id del progetto x cui si inviano i dati - /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// + /// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE + /// /// public async Task ResourceSendEstimateAsync(int ProjCloudId, Dictionary rec2send) { @@ -747,7 +755,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers // ora processo 1:1 gli items... foreach (var rawItem in item.ItemList) { - rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true), false); + rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true), false, true); } } } @@ -899,7 +907,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers { // sovrascrivo materaile anche x ogni RawItem rawItem.MatLocalId = matLocalId; - rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true), SyncQty); + rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true), false, SyncQty); } } } @@ -1043,7 +1051,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers // ora processo 1:1 gli items... foreach (var rawItem in item.ItemList) { - rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true), false); + rawItemDbContr.Upsert(RawItemsController.ConvToModel(rawItem, true), false, true); } } } diff --git a/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs b/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs index 9401024d..61a34028 100644 --- a/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs +++ b/EgtBEAMWALL.DataLayer/Controllers/RawItemsController.cs @@ -265,8 +265,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers /// /// Recorda da registrare /// Indica se, in caso di modifica, vada aggiornato UseQty + /// Indica se, in caso di modifica, vada aggiornato QtyAvail /// - public int Upsert(RawItemModel updItem, bool changeUseQty) + public int Upsert(RawItemModel updItem, bool changeUseQty, bool changeQtyAvail) { int newIdx = 0; using (DatabaseContext localDbCtx = new DatabaseContext(DbConfig.CONNECTION_STRING)) @@ -284,7 +285,6 @@ namespace EgtBEAMWALL.DataLayer.Controllers //// update, vers 1... //localDbCtx.Entry(item2update).CurrentValues.SetValues(updItem);\ item2update.RawItemCloudId = updItem.RawItemCloudId; - item2update.QtyAvail = updItem.QtyAvail; item2update.HMm = updItem.HMm; item2update.LMm = updItem.LMm; item2update.WMm = updItem.WMm; @@ -294,6 +294,13 @@ namespace EgtBEAMWALL.DataLayer.Controllers { item2update.UseQty = updItem.UseQty; } + if (changeQtyAvail) + { + item2update.QtyAvail = updItem.QtyAvail; +#if false + item2update.LastSync = DateTime.Now; +#endif + } localDbCtx.Entry(item2update).State = EntityState.Modified; } else @@ -329,7 +336,7 @@ namespace EgtBEAMWALL.DataLayer.Controllers int newIdx = 0; // converto RawItemModel updItem = ConvToModel(coreItem); - newIdx = Upsert(updItem, true); + newIdx = Upsert(updItem, true, true); return newIdx; }