From 536f11dc0d4527b31b1d486dfe43bae0cfbcbfa5 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 27 Apr 2021 14:59:22 +0200 Subject: [PATCH] Completato INSERT + DELETE baskets --- SHERPA.BBM.UI/Components/BasketEditor.razor | 4 +- SHERPA.BBM.UI/Data/BBM_EFService.cs | 9 +++- SHERPA.BBM.UI/Pages/Baskets.razor | 44 +++++++++++++++++++- SHERPA.BBM/Controllers/BBMController.cs | 46 ++++++++++++++++++++- SHERPA.BBM/Migrations/Configuration.cs | 2 +- 5 files changed, 98 insertions(+), 7 deletions(-) diff --git a/SHERPA.BBM.UI/Components/BasketEditor.razor b/SHERPA.BBM.UI/Components/BasketEditor.razor index 8a67db2..ad654a1 100644 --- a/SHERPA.BBM.UI/Components/BasketEditor.razor +++ b/SHERPA.BBM.UI/Components/BasketEditor.razor @@ -60,13 +60,15 @@ [Parameter] public EventCallback DataReset { get; set; } + [Parameter] + public EventCallback DataUpdated { get; set; } private async Task saveUpdate() { if (_basket != null) { BBMService.BasketsUpdate(_basket); - await DataReset.InvokeAsync(1); + await DataUpdated.InvokeAsync(1); } else { diff --git a/SHERPA.BBM.UI/Data/BBM_EFService.cs b/SHERPA.BBM.UI/Data/BBM_EFService.cs index 2c90f45..0471be5 100644 --- a/SHERPA.BBM.UI/Data/BBM_EFService.cs +++ b/SHERPA.BBM.UI/Data/BBM_EFService.cs @@ -39,11 +39,11 @@ namespace SHERPA.BBM.UI.Data #region Public Methods - public void BasketsAdd(DatabaseModels.BasketsModel negotiation) + public void BasketsAdd(DatabaseModels.BasketsModel basket) { try { - dbController.BaskAddNew(negotiation); + dbController.BaskAddNew(basket); } catch { @@ -78,6 +78,11 @@ namespace SHERPA.BBM.UI.Data } } + public string CounterGetNext(string CodCounter) + { + return dbController.CounterGetNext(CodCounter); + } + public void NegotiationAdd(DatabaseModels.NegotiationsModel negotiation) { try diff --git a/SHERPA.BBM.UI/Pages/Baskets.razor b/SHERPA.BBM.UI/Pages/Baskets.razor index 4ffcaf1..0184e1e 100644 --- a/SHERPA.BBM.UI/Pages/Baskets.razor +++ b/SHERPA.BBM.UI/Pages/Baskets.razor @@ -1,17 +1,27 @@ @page "/baskets" + @using SHERPA.BBM.UI.Data @using SHERPA.BBM.UI.Components; + +@inject IJSRuntime JSRuntime @inject BBM_EFService BBMService
-

Gestione Baskets

+
+
+

Gestione Baskets

+
+
+ +
+
@if (currBasket != null) { - + } @if (baskets == null) { @@ -27,6 +37,7 @@ Cli Data ins Descript + @@ -38,6 +49,7 @@ @record.CodClient @record.DataIns @record.Descript + } @@ -80,9 +92,37 @@ currBasket = null; } + protected async Task UpdateData() + { + currBasket = null; + baskets = await BBMService.BasketsGetAsync(numRecord); + } + + protected void CreateNew() + { + // recupero counter + string newCode = BBMService.CounterGetNext("EGW.B"); + DatabaseModels.BasketsModel newBasket = new DatabaseModels.BasketsModel() + { + CodBasket = newCode, + DataIns = DateTime.Today, + CodClient = "", + Descript = "New Basket" + }; + currBasket = newBasket; + } + protected void Edit(SHERPA.BBM.DatabaseModels.BasketsModel currRecord) { currBasket = currRecord; } + protected async Task Delete(SHERPA.BBM.DatabaseModels.BasketsModel currRecord) + { + if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler eliminare il Basket '{currRecord.CodBasket}'?")) + return; + + BBMService.BasketsDelete(currRecord); + await UpdateData(); + } } \ No newline at end of file diff --git a/SHERPA.BBM/Controllers/BBMController.cs b/SHERPA.BBM/Controllers/BBMController.cs index 8607710..3c45088 100644 --- a/SHERPA.BBM/Controllers/BBMController.cs +++ b/SHERPA.BBM/Controllers/BBMController.cs @@ -109,7 +109,20 @@ namespace SHERPA.BBM.Controllers bool done = false; try { - dbCtx.Entry(updItem).State = System.Data.Entity.EntityState.Modified; + var currData = dbCtx + .DbSetBaskets + .Where(x => x.CodBasket == updItem.CodBasket) + .FirstOrDefault(); + if (currData != null) + { + dbCtx.Entry(updItem).State = System.Data.Entity.EntityState.Modified; + } + else + { + dbCtx + .DbSetBaskets + .Add(updItem); + } dbCtx.SaveChanges(); done = true; } @@ -118,6 +131,37 @@ namespace SHERPA.BBM.Controllers return done; } + public string CounterGetNext(string CodCounter) + { + string answ = $"{CodCounter}.0000"; + int nextId = 1; + var lastCount = dbCtx + .DbSetCounters + .Where(x => x.CodCounter == CodCounter) + .OrderByDescending(x => x.LastNum) + .FirstOrDefault(); + if (lastCount != null) + { + lastCount.LastNum++; + nextId = lastCount.LastNum; + } + else + { + var newRecord = new DatabaseModels.CountersModel() + { + CodCounter = CodCounter, + LastNum = nextId + }; + dbCtx + .DbSetCounters + .Add(newRecord); + } + answ = $"{CodCounter}.{nextId:000000}"; + dbCtx.SaveChanges(); + + return answ; + } + public void Dispose() { // Clear database context diff --git a/SHERPA.BBM/Migrations/Configuration.cs b/SHERPA.BBM/Migrations/Configuration.cs index 27ba05a..2400604 100644 --- a/SHERPA.BBM/Migrations/Configuration.cs +++ b/SHERPA.BBM/Migrations/Configuration.cs @@ -35,7 +35,7 @@ namespace SHERPA.BBM.Migrations context.DbSetBaskets.AddOrUpdate( p => p.CodBasket, - new DatabaseModels.BasketsModel { CodBasket = "EGW.0000", CodClient = "", Descript = "Empty", DataIns = new DateTime(2021, 01, 01) } + new DatabaseModels.BasketsModel { CodBasket = "EGW.B.000001", CodClient = "", Descript = "Empty", DataIns = new DateTime(2021, 01, 01) } ); context.DbSetNegotiations.AddOrUpdate( p => p.CodNegotiation,