Fix overwrite useQty

This commit is contained in:
Samuele Locatelli
2024-03-11 18:15:34 +01:00
parent a26b93f8a9
commit dbbfef35a9
2 changed files with 25 additions and 10 deletions
@@ -656,7 +656,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// Esegue registrazione Risorse (RawItems) come CONSUMI effettivi:
/// </summary>
/// <param name="ProjCloudId">DB Id del progetto x cui si inviano i dati</param>
/// <param name="rec2send">Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE</param>
/// <param name="rec2send">
/// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE
/// </param>
/// <returns></returns>
public SyncResult ResourceSendCons(int ProjCloudId, Dictionary<int, int> rec2send)
{
@@ -668,7 +670,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// Esegue registrazione Risorse (RawItems) come CONSUMI effettivi, versione ASYNC:
/// </summary>
/// <param name="ProjCloudId">DB Id del progetto x cui si inviano i dati</param>
/// <param name="rec2send">Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE</param>
/// <param name="rec2send">
/// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE
/// </param>
/// <returns></returns>
public async Task<SyncResult> ResourceSendConsAsync(int ProjCloudId, Dictionary<int, int> rec2send)
{
@@ -680,7 +684,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// Esegue registrazione Risorse (RawItems) come stima:
/// </summary>
/// <param name="ProjCloudId">DB Id del progetto x cui si inviano i dati</param>
/// <param name="rec2send">Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE</param>
/// <param name="rec2send">
/// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE
/// </param>
/// <returns></returns>
public SyncResult ResourceSendEstimate(int ProjCloudId, Dictionary<int, int> rec2send)
{
@@ -692,7 +698,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// Esegue registrazione Risorse (RawItems) come stima, versione ASYNC:
/// </summary>
/// <param name="ProjCloudId">DB Id del progetto x cui si inviano i dati</param>
/// <param name="rec2send">Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE</param>
/// <param name="rec2send">
/// Elenco RawPart come dizionario quantità consumate [nId, qty]. nID = id del db LOCALE
/// </param>
/// <returns></returns>
public async Task<SyncResult> ResourceSendEstimateAsync(int ProjCloudId, Dictionary<int, int> 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);
}
}
}
@@ -265,8 +265,9 @@ namespace EgtBEAMWALL.DataLayer.Controllers
/// </summary>
/// <param name="updItem">Recorda da registrare</param>
/// <param name="changeUseQty">Indica se, in caso di modifica, vada aggiornato UseQty</param>
/// <param name="changeQtyAvail">Indica se, in caso di modifica, vada aggiornato QtyAvail</param>
/// <returns></returns>
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;
}