diff --git a/REMAN/NKC.Data/Controllers/NKCController.cs b/REMAN/NKC.Data/Controllers/NKCController.cs index 5b20874..1e8bc38 100644 --- a/REMAN/NKC.Data/Controllers/NKCController.cs +++ b/REMAN/NKC.Data/Controllers/NKCController.cs @@ -60,6 +60,7 @@ namespace NKC.Data.Controllers .DbSetRemnants .Where(x => (x.MatID == matId || matId == 0) && (x.QtyAvail >= minQty || minQty == 0)) //.OrderBy(o => o.Area) + .Include(m => m.MaterialNav) .ToList(); } return dbResult; @@ -107,5 +108,57 @@ namespace NKC.Data.Controllers } return answ; } + + public bool RemnantsUpsert(RemnantsModel updItem) + { + bool done = false; + using (NKCContext localDbCtx = new NKCContext(_configuration)) + { + try + { + RemnantsModel currData = localDbCtx + .DbSetRemnants + .Where(x => x.RemnID == updItem.RemnID) + .FirstOrDefault(); + if (currData != null) + { + // aggiorno valori + currData.MatID = updItem.MatID; + currData.DtMod = updItem.DtMod; + currData.Location = updItem.Location; + currData.Note = updItem.Note; + currData.QtyAvail = updItem.QtyAvail; + currData.LMm = updItem.LMm; + currData.WMm = updItem.WMm; + currData.TMm = updItem.TMm; + localDbCtx.Entry(currData).State = EntityState.Modified; + } + else + { + currData = new RemnantsModel() + { + MatID = updItem.MatID, + DtMod = updItem.DtMod, + Location = updItem.Location, + Note = updItem.Note, + QtyAvail = updItem.QtyAvail, + LMm = updItem.LMm, + WMm = updItem.WMm, + TMm = updItem.TMm + }; + localDbCtx + .DbSetRemnants + .Add(currData); + } + localDbCtx.SaveChanges(); + done = true; + } + catch (Exception exc) + { + Log.Error($"Eccezione in PlantUpdate:{Environment.NewLine}{exc}"); + } + } + return done; + } } } diff --git a/REMAN/REMAN/Components/RemnantEdit.razor b/REMAN/REMAN/Components/RemnantEdit.razor index 6d2619a..4d56f95 100644 --- a/REMAN/REMAN/Components/RemnantEdit.razor +++ b/REMAN/REMAN/Components/RemnantEdit.razor @@ -6,36 +6,82 @@
-
- @**@ -
-
-
-
- @_currItem.MaterialNav.MatExtCode -
-
- @_currItem.MaterialNav.MatDesc -
-
- @*
-
-
-
- +
+
+
+
+
+ @_currItem.MaterialNav.MatExtCode
- -
- Act: @_currItem.value +
+ @_currItem.MaterialNav.MatDesc
-
*@ - @*
-
- +
+
+
+ + Qty Avail + +
+ +
-
*@ +
+
+ +
+ + Location + +
+
+
+
+
+
+
+
+ + L mm + +
+ +
+
+
+
+
+ + W mm + +
+ +
+
+
+
+
+ + T mm + +
+ +
+
+
+
+ +
+ + Note + +
+
+
+
+
diff --git a/REMAN/REMAN/Components/RemnantEdit.razor.cs b/REMAN/REMAN/Components/RemnantEdit.razor.cs index 63cc0ae..3483957 100644 --- a/REMAN/REMAN/Components/RemnantEdit.razor.cs +++ b/REMAN/REMAN/Components/RemnantEdit.razor.cs @@ -71,12 +71,12 @@ namespace REMAN.Components private async Task saveUpdate() { - if (!await JSRuntime.InvokeAsync("confirm", "Sicuro di voler inviare il valore per parametro richiesto?")) + if (!await JSRuntime.InvokeAsync("confirm", "Are you sure to create new record?")) return; if (_currItem != null) { - //await DataService.updateMachineParameter(IdxMacchina, _currItem.uid, _currItem.reqValue); + await DataService.RemnantsUpsert(currItem); await DataUpdated.InvokeAsync(0); } else diff --git a/REMAN/REMAN/Data/RDataService.cs b/REMAN/REMAN/Data/RDataService.cs index d73d744..b39af2a 100644 --- a/REMAN/REMAN/Data/RDataService.cs +++ b/REMAN/REMAN/Data/RDataService.cs @@ -142,6 +142,52 @@ namespace REMAN.Data return await Task.FromResult(dbResult); } + public async Task RemnantsUpsert(RemnantsModel currItem) + { + bool done = false; + try + { + done = dbController.RemnantsUpsert(currItem); + await InvalidateAllCache(); + } + catch (Exception exc) + { + Log.Error($"Eccezione in RemnantsUpsert:{Environment.NewLine}{exc}"); + } + return await Task.FromResult(done); + } + public async Task RemnantsMovMag(RemnantsModel currItem, int deltaQty) + { + bool done = false; + try + { + // modifico qty entro limiti >=0.. + if (currItem.QtyAvail + deltaQty >= 0) + { + currItem.QtyAvail += deltaQty; + done = dbController.RemnantsUpsert(currItem); + await InvalidateAllCache(); + } + } + catch (Exception exc) + { + Log.Error($"Eccezione in RemnantsMovMag:{Environment.NewLine}{exc}"); + } + return await Task.FromResult(done); + } + + + /// + /// invalida tutta la cache in caso di update + /// + /// + public async Task InvalidateAllCache() + { + await distributedCache.RemoveAsync(rKeyMaterials); + await distributedCache.RemoveAsync(rKeyRemnants); + } + + public void rollBackEdit(object item) { dbController.rollBackEntity(item); diff --git a/REMAN/REMAN/Pages/Remnants.razor b/REMAN/REMAN/Pages/Remnants.razor index bce899c..5e081ba 100644 --- a/REMAN/REMAN/Pages/Remnants.razor +++ b/REMAN/REMAN/Pages/Remnants.razor @@ -64,8 +64,9 @@ Cod + Descr Location - Qty + Qty L x W x T (mm) Note @@ -75,24 +76,43 @@ { - + + @record.MaterialNav.MatExtCode + + @record.MaterialNav.MatDesc + @record.Location - @record.QtyAvail +
+
+ +
+
+ @record.QtyAvail +
+
+ +
+
- @record.LMm x @record.WMm x @record.TMm + @record.LMm x @record.WMm x @record.TMm - @record.Note + @record.Note } diff --git a/REMAN/REMAN/Pages/Remnants.razor.cs b/REMAN/REMAN/Pages/Remnants.razor.cs index 6e4e91f..7918ba5 100644 --- a/REMAN/REMAN/Pages/Remnants.razor.cs +++ b/REMAN/REMAN/Pages/Remnants.razor.cs @@ -112,18 +112,58 @@ namespace REMAN.Pages protected void Select(RemnantsModel selRecord) { + currRecord = selRecord; } protected void Edit(RemnantsModel selRecord) { currRecord = selRecord; } + protected void Clone(RemnantsModel selRecord) + { + currRecord = new RemnantsModel() + { + MatID = selRecord.MatID, + DtMod = DateTime.Now, + Location = selRecord.Location, + QtyAvail = selRecord.QtyAvail, + LMm = selRecord.LMm, + TMm = selRecord.TMm, + WMm = selRecord.WMm, + Note = selRecord.Note, + MaterialNav = selRecord.MaterialNav + }; + } + + protected async Task addQty(RemnantsModel selRecord) + { + if (!await JSRuntime.InvokeAsync("confirm", "Confirm qtantity increase?")) + return; + await DataService.RemnantsMovMag(selRecord, 1); + await ReloadData(); + } + protected async Task remQty(RemnantsModel selRecord) + { + if (!await JSRuntime.InvokeAsync("confirm", "Confirm qtantity decrease?")) + return; + await DataService.RemnantsMovMag(selRecord, -1); + await ReloadData(); + } + + protected MaterialModel currMat + { + get + { + MaterialModel answ = new MaterialModel(); + var selMat = MaterialsList + .Where(x => x.MatID == SelMatID) + .FirstOrDefault(); + answ = selMat != null ? selMat : answ; + return answ; + } + } protected void AddNew() { - // recupero il materiale selezionato - var currMat = MaterialsList - .Where(x => x.MatID == SelMatID) - .FirstOrDefault(); if (currMat != null) { // creo record da materiale... @@ -137,7 +177,7 @@ namespace REMAN.Pages TMm = currMat.TMm, WMm = currMat.WMm, Note = "", - MaterialNav=currMat + MaterialNav = currMat }; } }