From be297f91bd3109cd63e55b71c2045623fa55b5d7 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 14 Dec 2021 10:51:54 +0100 Subject: [PATCH 1/2] Update x fix duplicazione docs + ricerca --- SHERPA.BBM.CORE/Controllers/BBMController.cs | 25 ++++++-- SHERPA.BBM.CORE/DbModels/DocsModel.cs | 9 ++- SHERPA.BBM.UI/Components/DocMovList.razor.cs | 46 +-------------- SHERPA.BBM.UI/Components/DocsEditor.razor | 5 +- SHERPA.BBM.UI/Data/BBM_EFService.cs | 4 +- SHERPA.BBM.UI/Data/BBM_SelectData.cs | 5 -- SHERPA.BBM.UI/Pages/Docs.razor.cs | 60 ++++---------------- SHERPA.BBM.UI/SHERPA.BBM.UI.csproj | 2 +- 8 files changed, 39 insertions(+), 117 deletions(-) diff --git a/SHERPA.BBM.CORE/Controllers/BBMController.cs b/SHERPA.BBM.CORE/Controllers/BBMController.cs index 87f3208..61f137d 100644 --- a/SHERPA.BBM.CORE/Controllers/BBMController.cs +++ b/SHERPA.BBM.CORE/Controllers/BBMController.cs @@ -594,19 +594,20 @@ namespace SHERPA.BBM.CORE.Controllers /// /// Elenco Docs /// + /// Ricerca in descrizione + note /// Anno da selezionare: 0=tutti / anno specifico /// Filtro x Basket /// Filtro x Negoziazione /// Mostra tutti (=true) / solo attivi /// - public List DocGetLastDesc(int anno = 0, int basketId = 0, int negotiationId = 0, bool showAll = false) + public List DocGetLastDesc(string searchVal, int anno = 0, int basketId = 0, int negotiationId = 0, bool showAll = false) { List dbResult = new List(); using (SHERPABBMContext dbCtx = new SHERPABBMContext(_configuration)) { dbResult = dbCtx .DbSetDocs - .Where(x => (x.Anno == anno || anno == 0) && (x.IsActive || showAll) && (x.Negotiation.BasketId == basketId || basketId == 1) && (x.NegotiationId == negotiationId || negotiationId == 1)) + .Where(x => (x.Anno == anno || anno == 0) && (x.IsActive || showAll) && (x.Negotiation.BasketId == basketId || basketId == 1) && (x.NegotiationId == negotiationId || negotiationId == 1) && (x.Descript.Contains(searchVal) || x.Note.Contains(searchVal) || string.IsNullOrEmpty(searchVal))) .Include(d => d.Negotiation) .Include(d => d.FattNav) .Include(d => d.ResNav) @@ -674,7 +675,7 @@ namespace SHERPA.BBM.CORE.Controllers // altri record da disattivare (vuoto) List otherData = new List(); - + // se NON fosse licenza --> disattivo altri if (currData.DocType < BbmDocType.Licenza) { @@ -1181,17 +1182,29 @@ namespace SHERPA.BBM.CORE.Controllers { dbResult = dbCtx .DbSetResources - .AsNoTracking() .Where(x => x.DocId == DocIdSrc) .ToList(); // aggiorno doc ed aggiungo... foreach (var item in dbResult) { - item.DocId = DocIdTgt; + var newItem = new DbModels.ResourcesModel() + { + Anno = item.Anno, + DocId = DocIdTgt, + FinalPrice = item.FinalPrice, + ItemId = item.ItemId, + Note = item.Note, + Ordinal = item.Ordinal, + QtyOff = item.QtyOff, + QtyPrev = item.QtyPrev, + UnitPriceOff = item.UnitPriceOff + }; + //item.DocId = DocIdTgt; + //dbCtx.Entry(item).State = EntityState.Detached; dbCtx .DbSetResources - .Add(item); + .Add(newItem); } // salvo! dbCtx.SaveChanges(); diff --git a/SHERPA.BBM.CORE/DbModels/DocsModel.cs b/SHERPA.BBM.CORE/DbModels/DocsModel.cs index f09db26..2fc8b66 100644 --- a/SHERPA.BBM.CORE/DbModels/DocsModel.cs +++ b/SHERPA.BBM.CORE/DbModels/DocsModel.cs @@ -56,6 +56,8 @@ namespace SHERPA.BBM.CORE.DbModels [Column("Note"), MaxLength(500)] public string Note { get; set; } = ""; + [NotMapped] + public int DocIdSource { get; set; } = 0; [NotMapped] public decimal Importo @@ -63,12 +65,9 @@ namespace SHERPA.BBM.CORE.DbModels get { decimal answ = 0; - if (IsActive) + if (ResNav != null && ResNav.Count > 0) { - if (ResNav != null && ResNav.Count > 0) - { - answ = (decimal)ResNav.Sum(r => r.FinalPrice); - } + answ = (decimal)ResNav.Sum(r => r.FinalPrice); } return answ; } diff --git a/SHERPA.BBM.UI/Components/DocMovList.razor.cs b/SHERPA.BBM.UI/Components/DocMovList.razor.cs index e5fcb52..f18fb62 100644 --- a/SHERPA.BBM.UI/Components/DocMovList.razor.cs +++ b/SHERPA.BBM.UI/Components/DocMovList.razor.cs @@ -44,49 +44,6 @@ namespace SHERPA.BBM.UI.Components private CORE.DbModels.DocsModel currItem = null; private List ListRecords; private List SearchRecords; -#if false - protected async Task getFatturato(int anno, int docId) - { - decimal fatturato = 0; - try - { - var currVal = await BBMService.BillsGetTotFatturato(anno, 1, 1, docId); - fatturato = currVal != null ? currVal : 0; - } - catch - { - } - - return fatturato; - } - - protected async Task getGrandTot(int anno, int docId) - { - double grandTot = 0; - var resourcesList = await BBMService.ResourcesGetAsync(anno, 0, 0, docId, BbmResType.ND); - if (resourcesList != null && resourcesList.Count > 0) - { - grandTot = resourcesList.Select(x => x.FinalPrice).Sum(); - } - - return grandTot; - } - - protected async Task getIncassato(int anno, int docId) - { - decimal incassato = 0; - try - { - var currVal = await BBMService.BillsGetTotIncasso(anno, 1, 1, docId); - incassato = currVal != null ? currVal : 0; - } - catch - { - } - - return incassato; - } -#endif public string btnFromState(bool isActive) { @@ -137,6 +94,7 @@ namespace SHERPA.BBM.UI.Components protected override async Task OnInitializedAsync() { MessageService.ShowSearch = true; + MessageService.SearchVal = ""; MessageService.EA_SearchUpdated += OnSeachUpdated; await ReloadAllData(); } @@ -150,7 +108,7 @@ namespace SHERPA.BBM.UI.Components protected async Task updateTable() { - SearchRecords = await BBMService.DocsGetAsync(AnnoSel, 1, NegotIdSour, ShowAllDoc); + SearchRecords = await BBMService.DocsGetAsync(MessageService.SearchVal, AnnoSel, 1, NegotIdSour, ShowAllDoc); totalCount = SearchRecords.Count(); ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); } diff --git a/SHERPA.BBM.UI/Components/DocsEditor.razor b/SHERPA.BBM.UI/Components/DocsEditor.razor index 46d7532..d0f22db 100644 --- a/SHERPA.BBM.UI/Components/DocsEditor.razor +++ b/SHERPA.BBM.UI/Components/DocsEditor.razor @@ -119,11 +119,8 @@ // aggiorno active BBMService.DocSetActive(_currItem); } - // clono ANCHE le resources suo NUOVO elemento - BBMService.ResourceCloneByDoc(SelectData.DocIdSrc, _currItem.DocId); - // reset - SelectData.DocIdSrc = 0; + BBMService.ResourceCloneByDoc(_currItem.DocIdSource, _currItem.DocId); // evento await DataUpdated.InvokeAsync(1); } diff --git a/SHERPA.BBM.UI/Data/BBM_EFService.cs b/SHERPA.BBM.UI/Data/BBM_EFService.cs index 40aafa3..f2db053 100644 --- a/SHERPA.BBM.UI/Data/BBM_EFService.cs +++ b/SHERPA.BBM.UI/Data/BBM_EFService.cs @@ -248,9 +248,9 @@ namespace SHERPA.BBM.UI.Data return Task.FromResult(dbController.DocGetLastDesc(numRec).ToArray()); } - public Task> DocsGetAsync(int anno, int basketId, int negotiationId, bool showAll) + public Task> DocsGetAsync(string searchVal, int anno, int basketId, int negotiationId, bool showAll) { - return Task.FromResult(dbController.DocGetLastDesc(anno, basketId, negotiationId, showAll)); + return Task.FromResult(dbController.DocGetLastDesc(searchVal, anno, basketId, negotiationId, showAll)); } public Task DocsMoveNegot(int DocId, int NegotiationId) diff --git a/SHERPA.BBM.UI/Data/BBM_SelectData.cs b/SHERPA.BBM.UI/Data/BBM_SelectData.cs index b494d11..1bf7bd5 100644 --- a/SHERPA.BBM.UI/Data/BBM_SelectData.cs +++ b/SHERPA.BBM.UI/Data/BBM_SelectData.cs @@ -45,11 +45,6 @@ namespace SHERPA.BBM.UI.Data /// public int DocId { get; set; } = 0; - /// - /// Doc selezionato come SRC per CLONAZIONE (se 0 --> NO clonazione) - /// - public int DocIdSrc { get; set; } = 0; - /// /// Negoziazione selezionata /// diff --git a/SHERPA.BBM.UI/Pages/Docs.razor.cs b/SHERPA.BBM.UI/Pages/Docs.razor.cs index fc02e87..cc360a5 100644 --- a/SHERPA.BBM.UI/Pages/Docs.razor.cs +++ b/SHERPA.BBM.UI/Pages/Docs.razor.cs @@ -38,7 +38,7 @@ namespace SHERPA.BBM.UI.Pages private IJSRuntime JSRuntime { get; set; } [Inject] - private MessageService MessageService { get; set; } + private MessageService AppMService { get; set; } [Inject] private NavigationManager NavManager { get; set; } @@ -173,10 +173,10 @@ namespace SHERPA.BBM.UI.Pages NumDoc = 0, DocType = BbmDocType.Quotazione, Descript = "New Document", - IsActive = true + IsActive = true, + DocIdSource=0 }; currItem = newRecord; - SelectData.DocIdSrc = 0; } protected async Task Delete(CORE.DbModels.DocsModel currRecord) @@ -205,32 +205,6 @@ namespace SHERPA.BBM.UI.Pages await ReloadAllData(); } -#if false - protected decimal getFatturato(CORE.DbModels.DocsModel currRecord) - { - decimal fatturato = 0; - try - { - fatturato = currRecord.FattNav.Sum(f => f.Importo); - } - catch - { } - return fatturato; - } - - protected double getImporto(CORE.DbModels.DocsModel currRecord) - { - double grandTot = 0; - try - { - grandTot = currRecord.ResNav.Sum(r => r.FinalPrice); - } - catch - { } - return grandTot; - } -#endif - protected async Task NewRelease(CORE.DbModels.DocsModel currRecord) { if (!await JSRuntime.InvokeAsync("confirm", $"Sicuro di voler clonare il documento corrente (e le relative risorse)??")) @@ -247,23 +221,23 @@ namespace SHERPA.BBM.UI.Pages NegotiationId = currRecord.NegotiationId, NumDoc = currRecord.NumDoc + 1, DocType = currRecord.DocType, - Descript = "COPIA di " + currRecord.Descript + Descript = "COPIA di " + currRecord.Descript, + DocIdSource=currRecord.DocId }; currItem = newRecord; - SelectData.DocIdSrc = currRecord.DocId; } protected override async Task OnInitializedAsync() { - MessageService.ShowSearch = true; - MessageService.EA_SearchUpdated += OnSeachUpdated; + AppMService.ShowSearch = true; + AppMService.EA_SearchUpdated += OnSeachUpdated; await ReloadAllData(); } protected async Task ReloadAllData() { yearsList = await BBMService.DocsYears(); - basketList = await BBMService.BasketsGetAsync(1, MessageService.SearchVal); + basketList = await BBMService.BasketsGetAsync(1, ""); negotiationList = await BBMService.NegotiationsGetAllAsync(); await updateTable(); } @@ -300,20 +274,6 @@ namespace SHERPA.BBM.UI.Pages await ReloadAllData(); } -#if false - protected decimal getIncassato(CORE.DbModels.DocsModel currRecord) - { - decimal fatturato = 0; - try - { - fatturato = currRecord.FattNav.Sum(f => f.Incassato); - } - catch - { } - return fatturato; - } -#endif - protected async Task UpdateData() { currItem = null; @@ -322,7 +282,7 @@ namespace SHERPA.BBM.UI.Pages protected async Task updateTable() { - SearchRecords = await BBMService.DocsGetAsync(yearSel, selBasketId, selCodNegotiation, ShowAllDoc); + SearchRecords = await BBMService.DocsGetAsync(AppMService.SearchVal, yearSel, selBasketId, selCodNegotiation, ShowAllDoc); // se ho ordinamento riordino... if (!string.IsNullOrEmpty(sortField)) { @@ -418,7 +378,7 @@ namespace SHERPA.BBM.UI.Pages public void Dispose() { - MessageService.EA_SearchUpdated -= OnSeachUpdated; + AppMService.EA_SearchUpdated -= OnSeachUpdated; } public async void OnSeachUpdated() diff --git a/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj b/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj index 7100c6e..a83ea61 100644 --- a/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj +++ b/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj @@ -4,7 +4,7 @@ net5.0 60fcdaab-6c1e-4bec-9d88-f7727ef1c12c wwwroot\favicon.ico - 1.0.2112.1016 + 1.0.2112.1410 From b7414701cc094f261e37b5b16eb727690ef1c12d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 14 Dec 2021 11:04:10 +0100 Subject: [PATCH 2/2] Fix ricerca con ritorno a pag 1 x varie --- SHERPA.BBM.CORE/Controllers/BBMController.cs | 2 +- SHERPA.BBM.UI/Pages/Baskets.razor.cs | 1 + SHERPA.BBM.UI/Pages/Counters.razor | 3 ++ SHERPA.BBM.UI/Pages/Counters.razor.cs | 22 ++++++++- SHERPA.BBM.UI/Pages/Docs.razor.cs | 1 + SHERPA.BBM.UI/Pages/Items.razor.cs | 1 + SHERPA.BBM.UI/Pages/Negotiations.razor.cs | 52 +++----------------- SHERPA.BBM.UI/Pages/Tags.razor.cs | 1 + SHERPA.BBM.UI/SHERPA.BBM.UI.csproj | 2 +- 9 files changed, 35 insertions(+), 50 deletions(-) diff --git a/SHERPA.BBM.CORE/Controllers/BBMController.cs b/SHERPA.BBM.CORE/Controllers/BBMController.cs index 61f137d..c5308c8 100644 --- a/SHERPA.BBM.CORE/Controllers/BBMController.cs +++ b/SHERPA.BBM.CORE/Controllers/BBMController.cs @@ -1061,7 +1061,7 @@ namespace SHERPA.BBM.CORE.Controllers dbResult = dbCtx .DbSetNegotiations // || x.Basket.Company.RagSoc.Contains(searchVal) - .Where(x => (x.Anno == anno || anno == 0) && (x.Basket.CompanyId == companyId || companyId == 1) && (x.CustomerId == customerId || customerId == 1) && (x.BasketId == basketId || basketId == 1) && (x.NegotiationId > 1) && (string.IsNullOrEmpty(searchVal) || x.CodNegotiation.Contains(searchVal) || x.BasePath.Contains(searchVal))) + .Where(x => (x.Anno == anno || anno == 0) && (x.Basket.CompanyId == companyId || companyId == 1) && (x.CustomerId == customerId || customerId == 1) && (x.BasketId == basketId || basketId == 1) && (x.NegotiationId > 1) && (string.IsNullOrEmpty(searchVal) || x.CodNegotiation.Contains(searchVal) || x.Descript.Contains(searchVal))) .Include(n => n.Basket) .Include(n => n.DocsNav) .ThenInclude(d => d.FattNav) diff --git a/SHERPA.BBM.UI/Pages/Baskets.razor.cs b/SHERPA.BBM.UI/Pages/Baskets.razor.cs index 4844ba4..8c674ca 100644 --- a/SHERPA.BBM.UI/Pages/Baskets.razor.cs +++ b/SHERPA.BBM.UI/Pages/Baskets.razor.cs @@ -267,6 +267,7 @@ namespace SHERPA.BBM.UI.Pages { await InvokeAsync(() => { + currPage = 1; Task task = UpdateData(); StateHasChanged(); }); diff --git a/SHERPA.BBM.UI/Pages/Counters.razor b/SHERPA.BBM.UI/Pages/Counters.razor index 998319e..88c17a6 100644 --- a/SHERPA.BBM.UI/Pages/Counters.razor +++ b/SHERPA.BBM.UI/Pages/Counters.razor @@ -50,4 +50,7 @@ + diff --git a/SHERPA.BBM.UI/Pages/Counters.razor.cs b/SHERPA.BBM.UI/Pages/Counters.razor.cs index 131599e..ad1c6a4 100644 --- a/SHERPA.BBM.UI/Pages/Counters.razor.cs +++ b/SHERPA.BBM.UI/Pages/Counters.razor.cs @@ -1,7 +1,6 @@ using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using SHERPA.BBM.UI.Data; -using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -23,9 +22,15 @@ namespace SHERPA.BBM.UI.Pages [Inject] private BBM_EFService BBMService { get; set; } + private int currPage { get; set; } = 1; + + private bool isLoading { get; set; } = false; + [Inject] private IJSRuntime JSRuntime { get; set; } + private int numRecord { get; set; } = 10; + #endregion Private Properties #region Protected Properties @@ -55,6 +60,18 @@ namespace SHERPA.BBM.UI.Pages currItem = currRecord; } + protected async Task ForceReload(int newNum) + { + numRecord = newNum; + await ReloadAllData(); + } + + protected async Task ForceReloadPage(int newNum) + { + currPage = newNum; + await ReloadAllData(); + } + protected override async Task OnInitializedAsync() { MService.ShowSearch = true; @@ -82,7 +99,7 @@ namespace SHERPA.BBM.UI.Pages protected async Task updateTable() { SearchRecords = await BBMService.CounterGetFilt(MService.SearchVal); - ListRecords = SearchRecords; + ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); } #endregion Protected Methods @@ -113,6 +130,7 @@ namespace SHERPA.BBM.UI.Pages { await InvokeAsync(() => { + currPage = 1; Task task = ReloadAllData(); StateHasChanged(); }); diff --git a/SHERPA.BBM.UI/Pages/Docs.razor.cs b/SHERPA.BBM.UI/Pages/Docs.razor.cs index cc360a5..6d7f3aa 100644 --- a/SHERPA.BBM.UI/Pages/Docs.razor.cs +++ b/SHERPA.BBM.UI/Pages/Docs.razor.cs @@ -385,6 +385,7 @@ namespace SHERPA.BBM.UI.Pages { await InvokeAsync(() => { + currPage = 1; Task task = UpdateData(); StateHasChanged(); }); diff --git a/SHERPA.BBM.UI/Pages/Items.razor.cs b/SHERPA.BBM.UI/Pages/Items.razor.cs index 603ada0..68f5755 100644 --- a/SHERPA.BBM.UI/Pages/Items.razor.cs +++ b/SHERPA.BBM.UI/Pages/Items.razor.cs @@ -208,6 +208,7 @@ namespace SHERPA.BBM.UI.Pages { await InvokeAsync(() => { + currPage = 1; Task task = UpdateData(); StateHasChanged(); }); diff --git a/SHERPA.BBM.UI/Pages/Negotiations.razor.cs b/SHERPA.BBM.UI/Pages/Negotiations.razor.cs index d2c25ff..c6769c2 100644 --- a/SHERPA.BBM.UI/Pages/Negotiations.razor.cs +++ b/SHERPA.BBM.UI/Pages/Negotiations.razor.cs @@ -37,7 +37,7 @@ namespace SHERPA.BBM.UI.Pages private IJSRuntime JSRuntime { get; set; } [Inject] - private MessageService MessageService { get; set; } + private MessageService AppMService { get; set; } [Inject] private NavigationManager NavManager { get; set; } @@ -245,10 +245,8 @@ namespace SHERPA.BBM.UI.Pages protected override async Task OnInitializedAsync() { - MessageService.ShowSearch = false; - - - MessageService.EA_SearchUpdated += OnSeachUpdated; + AppMService.ShowSearch = true; + AppMService.EA_SearchUpdated += OnSeachUpdated; await ReloadAllData(); } @@ -258,8 +256,7 @@ namespace SHERPA.BBM.UI.Pages CompanyList = await BBMService.CompanyGetAll(); CustomersList = await BBMService.CustomersGetAll(""); BasketList = await BBMService.BasketsGetAsync(selCompanyId, ""); - SearchRecords = await BBMService.NegotiationsGetAsync(yearSel, selCompanyId, selCustomerId, selBasketId, ""); - //SearchRecords = await BBMService.NegotiationsGetAsync(yearSel, selCompanyId, selCustomerId, selBasketId, MessageService.SearchVal); + SearchRecords = await BBMService.NegotiationsGetAsync(yearSel, selCompanyId, selCustomerId, selBasketId, AppMService.SearchVal); // se ho ordinamento riordino... if (!string.IsNullOrEmpty(sortField)) { @@ -376,13 +373,14 @@ namespace SHERPA.BBM.UI.Pages public void Dispose() { - MessageService.EA_SearchUpdated -= OnSeachUpdated; + AppMService.EA_SearchUpdated -= OnSeachUpdated; } public async void OnSeachUpdated() { await InvokeAsync(() => { + currPage = 1; Task task = UpdateData(); StateHasChanged(); }); @@ -390,43 +388,5 @@ namespace SHERPA.BBM.UI.Pages #endregion Public Methods -#if false - protected async Task getFatturato(int anno, int negotId) - { - decimal fatturato = 0; - try - { - var currVal = await BBMService.BillsGetTotFatturato(anno, 0, negotId, 0); - fatturato = currVal != null ? currVal : 0; - } - catch - { } - return fatturato; - } - - protected async Task getImporto(int anno, int negotId) - { - double grandTot = 0; - var resourcesList = await BBMService.ResourcesGetAsync(anno, 0, negotId, 0, BbmResType.ND); - if (resourcesList != null && resourcesList.Count > 0) - { - grandTot = resourcesList.Select(x => x.FinalPrice).Sum(); - } - return grandTot; - } - - protected async Task getIncassato(int anno, int negotId) - { - decimal incassato = 0; - try - { - var currVal = await BBMService.BillsGetTotIncasso(anno, 0, negotId, 0); - incassato = currVal != null ? currVal : 0; - } - catch - { } - return incassato; - } -#endif } } \ No newline at end of file diff --git a/SHERPA.BBM.UI/Pages/Tags.razor.cs b/SHERPA.BBM.UI/Pages/Tags.razor.cs index e98ca6f..8f8356d 100644 --- a/SHERPA.BBM.UI/Pages/Tags.razor.cs +++ b/SHERPA.BBM.UI/Pages/Tags.razor.cs @@ -173,6 +173,7 @@ namespace SHERPA.BBM.UI.Pages { await InvokeAsync(() => { + currPage = 1; Task task = UpdateData(); StateHasChanged(); }); diff --git a/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj b/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj index a83ea61..a0adc08 100644 --- a/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj +++ b/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj @@ -4,7 +4,7 @@ net5.0 60fcdaab-6c1e-4bec-9d88-f7727ef1c12c wwwroot\favicon.ico - 1.0.2112.1410 + 1.0.2112.1411