diff --git a/StockMan.CORE/Components/DettagliArticolo.razor.cs b/StockMan.CORE/Components/DettagliArticolo.razor.cs index 303dbe4..1a1a7f0 100644 --- a/StockMan.CORE/Components/DettagliArticolo.razor.cs +++ b/StockMan.CORE/Components/DettagliArticolo.razor.cs @@ -24,6 +24,8 @@ namespace StockMan.CORE.Components { [Parameter] public int ItemID { get; set; } = 0; + [Parameter] + public string userName { get; set; } = ""; [Inject] protected StockDataService SDService { get; set; } = null!; [Inject] diff --git a/StockMan.CORE/Components/DettagliArticolo.razor.css b/StockMan.CORE/Components/DettagliArticolo.razor.css index bf64a34..3bdb676 100644 --- a/StockMan.CORE/Components/DettagliArticolo.razor.css +++ b/StockMan.CORE/Components/DettagliArticolo.razor.css @@ -13,7 +13,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; } .btnMod { border-radius: 50%; @@ -23,7 +22,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(52, 152, 219, 0.2); color: #3498DB; } @@ -35,7 +33,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(86, 184, 167, 0.2); color: #56b8a7; } @@ -47,7 +44,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(192, 57, 43, 0.2); color: #C0392B; } \ No newline at end of file diff --git a/StockMan.CORE/Components/DettagliArticolo.razor.less b/StockMan.CORE/Components/DettagliArticolo.razor.less index 41e0e89..98f8263 100644 --- a/StockMan.CORE/Components/DettagliArticolo.razor.less +++ b/StockMan.CORE/Components/DettagliArticolo.razor.less @@ -12,7 +12,7 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; + //margin-right: 1rem; } .btnMod { diff --git a/StockMan.CORE/Components/DettagliArticolo.razor.min.css b/StockMan.CORE/Components/DettagliArticolo.razor.min.css index 7c5afee..dc71d31 100644 --- a/StockMan.CORE/Components/DettagliArticolo.razor.min.css +++ b/StockMan.CORE/Components/DettagliArticolo.razor.min.css @@ -1 +1 @@ -.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;height:auto;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(192,57,43,.2);color:#c0392b;} \ No newline at end of file +.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;height:auto;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(192,57,43,.2);color:#c0392b;} \ No newline at end of file diff --git a/StockMan.CORE/Components/ItemFamList.razor.cs b/StockMan.CORE/Components/ItemFamList.razor.cs index 4de6d4b..6c934f7 100644 --- a/StockMan.CORE/Components/ItemFamList.razor.cs +++ b/StockMan.CORE/Components/ItemFamList.razor.cs @@ -106,7 +106,6 @@ namespace StockMan.CORE.Components // await JSRuntime.InvokeVoidAsync("selectItem", id); //} currRowSel = item.Id; - itemFilter.Id = item.Id; currModel = item; await selectedItemFam.InvokeAsync(currModel); NavManager.NavigateTo($"/AnagraficaArticoli?itemFamId={item.Id}", true); diff --git a/StockMan.CORE/Components/ItemFamList.razor.css b/StockMan.CORE/Components/ItemFamList.razor.css index d4dfe29..5456ddc 100644 --- a/StockMan.CORE/Components/ItemFamList.razor.css +++ b/StockMan.CORE/Components/ItemFamList.razor.css @@ -249,7 +249,6 @@ td { border: none; padding: 0; text-align: center; - margin-right: 1rem; } .btnEdit { border-radius: 50%; @@ -259,7 +258,6 @@ td { border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(254, 152, 83, 0.2); color: #fe9853; } @@ -272,7 +270,6 @@ td { border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(86, 184, 167, 0.2); color: #56b8a7; } @@ -285,7 +282,6 @@ td { border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(192, 57, 43, 0.2); color: #C0392B; } diff --git a/StockMan.CORE/Components/ItemFamList.razor.less b/StockMan.CORE/Components/ItemFamList.razor.less index f111c7d..469134d 100644 --- a/StockMan.CORE/Components/ItemFamList.razor.less +++ b/StockMan.CORE/Components/ItemFamList.razor.less @@ -253,7 +253,7 @@ td { border: none; padding: 0; text-align: center; - margin-right: 1rem; + //margin-right: 1rem; } .btnEdit { diff --git a/StockMan.CORE/Components/ItemFamList.razor.min.css b/StockMan.CORE/Components/ItemFamList.razor.min.css index c9c11cd..cf00a86 100644 --- a/StockMan.CORE/Components/ItemFamList.razor.min.css +++ b/StockMan.CORE/Components/ItemFamList.razor.min.css @@ -1 +1 @@ -body{width:100%;}td{height:3.8rem;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;}.btnEdit{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(254,152,83,.2);color:#fe9853;}.btnDet,.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDel,.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(192,57,43,.2);color:#c0392b;}.buttonNew{border:0;border-radius:.4rem;padding:.2rem;background-color:#27ae60;color:#fff;}input,textarea{border:0;border-bottom:1px solid #000;background:none;}input:focus,textarea:focus{outline:0;} \ No newline at end of file +body{width:100%;}td{height:3.8rem;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;}.btnEdit{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(254,152,83,.2);color:#fe9853;}.btnDet,.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDel,.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(192,57,43,.2);color:#c0392b;}.buttonNew{border:0;border-radius:.4rem;padding:.2rem;background-color:#27ae60;color:#fff;}input,textarea{border:0;border-bottom:1px solid #000;background:none;}input:focus,textarea:focus{outline:0;} \ No newline at end of file diff --git a/StockMan.CORE/Components/ItemList.razor b/StockMan.CORE/Components/ItemList.razor index 4590990..4ab4c8e 100644 --- a/StockMan.CORE/Components/ItemList.razor +++ b/StockMan.CORE/Components/ItemList.razor @@ -1,6 +1,6 @@ -
-
-
+
+
+
-
+
- +
+ +
+ @**@
@if (isLoading) { @@ -33,96 +36,121 @@ else - - + - - - @if (orderType == orderTypeEnum.codExtAscending) - { - - } - else if (orderType == orderTypeEnum.codExtDescending) - { - - } - else - { - - } - @if (orderType == orderTypeEnum.stockAscending) - { - - } - else if (orderType == orderTypeEnum.stockDescending) - { - - } - else - { - - } - + - - @foreach (var item in ListRecord) { - - + - - - - - - - } diff --git a/StockMan.CORE/Components/ItemList.razor.cs b/StockMan.CORE/Components/ItemList.razor.cs index 9c14c26..6cd2666 100644 --- a/StockMan.CORE/Components/ItemList.razor.cs +++ b/StockMan.CORE/Components/ItemList.razor.cs @@ -3,6 +3,7 @@ using Microsoft.AspNetCore.WebUtilities; using Microsoft.JSInterop; using StockMan.CORE.Data; using StockMan.Data.DbModels; +using System.Text; namespace StockMan.CORE.Components { @@ -91,6 +92,7 @@ namespace StockMan.CORE.Components protected orderTypeEnum orderType = orderTypeEnum.none; protected bool isStockAscending = false; protected bool isCodExtAscending = false; + protected bool isCodIntAscending = false; private async Task reloadData() { @@ -104,7 +106,7 @@ namespace StockMan.CORE.Components SearchRecords = await SDService.ItemsGetAll(); } totalCount = SearchRecords.Count; - if ( orderType == orderTypeEnum.stockAscending) + if (orderType == orderTypeEnum.stockAscending) { SearchRecords = SearchRecords.OrderBy(x => x.QtaBatch).ToList(); } @@ -120,6 +122,14 @@ namespace StockMan.CORE.Components { SearchRecords = SearchRecords.OrderByDescending(x => x.CodExt).ToList(); } + else if (orderType == orderTypeEnum.codIntAscending) + { + SearchRecords = SearchRecords.OrderBy(x => x.CodInt).ToList(); + } + else if (orderType == orderTypeEnum.codIntDescending) + { + SearchRecords = SearchRecords.OrderByDescending(x => x.CodInt).ToList(); + } ListRecord = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); itemFamList = await SDService.ItemFamilyGetAll(); await Task.Delay(1); @@ -139,7 +149,9 @@ namespace StockMan.CORE.Components stockAscending, stockDescending, codExtAscending, - codExtDescending + codExtDescending, + codIntAscending, + codIntDescending } protected async Task orderByStock() @@ -168,6 +180,23 @@ namespace StockMan.CORE.Components } await reloadData(); } + + //protected StringBuilder uriNew + + protected async Task orderByCodInt() + { + isCodIntAscending = !isCodIntAscending; + if (isCodIntAscending) + { + orderType = orderTypeEnum.codIntAscending; + } + else + { + orderType = orderTypeEnum.codIntDescending; + } + await reloadData(); + } + protected async Task addNewItem() { ItemModel newRec = new ItemModel() @@ -216,6 +245,8 @@ namespace StockMan.CORE.Components set { _searchVal = value; + currPage = 1; + StateHasChanged(); reloadData(); } } @@ -226,6 +257,7 @@ namespace StockMan.CORE.Components set { _searchFamily = value; + //NavManager.NavigateTo($"AnagraficaArticoli?itemFamId={value}"); reloadData(); } } diff --git a/StockMan.CORE/Components/ItemList.razor.css b/StockMan.CORE/Components/ItemList.razor.css index d212efc..64c0f5c 100644 --- a/StockMan.CORE/Components/ItemList.razor.css +++ b/StockMan.CORE/Components/ItemList.razor.css @@ -9,7 +9,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; } .btnDup { border-radius: 50%; @@ -19,7 +18,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(254, 152, 83, 0.2); color: #fe9853; } @@ -32,7 +30,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(86, 184, 167, 0.2); color: #56b8a7; } @@ -44,7 +41,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(192, 57, 43, 0.2); color: #C0392B; } diff --git a/StockMan.CORE/Components/ItemList.razor.less b/StockMan.CORE/Components/ItemList.razor.less index 94a1903..eeb11ca 100644 --- a/StockMan.CORE/Components/ItemList.razor.less +++ b/StockMan.CORE/Components/ItemList.razor.less @@ -10,7 +10,7 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; + //margin-right: 1rem; } .btnDup { diff --git a/StockMan.CORE/Components/ItemList.razor.min.css b/StockMan.CORE/Components/ItemList.razor.min.css index e6c4ecb..356625f 100644 --- a/StockMan.CORE/Components/ItemList.razor.min.css +++ b/StockMan.CORE/Components/ItemList.razor.min.css @@ -1 +1 @@ -td{height:3.8rem;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;}.btnDup{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(254,152,83,.2);color:#fe9853;}.btnDet,.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(192,57,43,.2);color:#c0392b;}.buttonNew{border:0;border-radius:.4rem;padding:.2rem;background-color:#27ae60;color:#fff;} \ No newline at end of file +td{height:3.8rem;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;}.btnDup{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(254,152,83,.2);color:#fe9853;}.btnDet,.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(192,57,43,.2);color:#c0392b;}.buttonNew{border:0;border-radius:.4rem;padding:.2rem;background-color:#27ae60;color:#fff;} \ No newline at end of file diff --git a/StockMan.CORE/Components/Movimenti.razor b/StockMan.CORE/Components/Movimenti.razor index e1ce615..746f039 100644 --- a/StockMan.CORE/Components/Movimenti.razor +++ b/StockMan.CORE/Components/Movimenti.razor @@ -106,6 +106,7 @@
+ @if (listLocation != null) { @foreach (var item in listLocation.Where(x => x.LocTypeId == "CLI").ToList()) diff --git a/StockMan.CORE/Components/Movimenti.razor.cs b/StockMan.CORE/Components/Movimenti.razor.cs index d8b610e..5edce40 100644 --- a/StockMan.CORE/Components/Movimenti.razor.cs +++ b/StockMan.CORE/Components/Movimenti.razor.cs @@ -1,5 +1,6 @@ using EgwCoreLib.Razor; using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; using StockMan.CORE.Data; using StockMan.Data.DbModels; @@ -12,7 +13,8 @@ namespace StockMan.CORE.Components [Inject] protected StockDataService SDService { get; set; } = null!; - + [Parameter] + public string userName { get; set; } = ""; protected List searchtemFlux { get; set; } = new List(); protected List itemFlux { get; set; } = new List(); protected List listLocation { get; set; } = new List(); @@ -102,10 +104,10 @@ namespace StockMan.CORE.Components Qta = qta, TotValue = importo, UnitVal = (importo / qta), - OperatorId = "ND", + OperatorId = userName, Note = note, CodDoc = documento, - ModOperatorId = "ND" + ModOperatorId = userName }; var done = await SDService.FluxAdd(newRec); @@ -126,7 +128,7 @@ namespace StockMan.CORE.Components protected bool isRettifica { get; set; } = false; protected string enable { - get => (isDup || isMod ) ? "Background-color: #fff" : "Background-color: #e9ecef; pointer-events: none"; + get => (isDup || isMod) ? "Background-color: #fff" : "Background-color: #e9ecef; pointer-events: none"; } protected async Task dupMode() @@ -147,10 +149,10 @@ namespace StockMan.CORE.Components DtMov = DateTime.Now.Date, Qta = fluxToShow.Qta, TotValue = fluxToShow.TotValue, - OperatorId = "ND", + OperatorId = userName, Note = "---DUPLICATED---", CodDoc = fluxToShow.CodDoc, - ModOperatorId = "ND" + ModOperatorId = userName }; var done = await SDService.FluxAdd(newRec); @@ -160,15 +162,22 @@ namespace StockMan.CORE.Components } } + [Inject] + protected IJSRuntime JSRuntime { get; set; } = null!; protected async Task delete(ItemFluxModel flux) { await Task.Delay(1); - var done = await SDService.DeleteFlux(flux); - if (done) + var ok = await JSRuntime.InvokeAsync("confirm", $"Confermare di voler eliminare il movimento in data {flux.DtMov.Date}"); + + if (ok) { - NavManager.NavigateTo(NavManager.Uri, true); + var done = await SDService.DeleteFlux(flux); + if (done) + { + NavManager.NavigateTo(NavManager.Uri, true); + } } } protected async Task edit() @@ -261,7 +270,7 @@ namespace StockMan.CORE.Components protected string dateCss(DateTime? dataToCheck) { string answ = ""; - if(dataToCheck == null) + if (dataToCheck != null) { answ = "text-decoration-line-through"; } diff --git a/StockMan.CORE/Components/Movimenti.razor.css b/StockMan.CORE/Components/Movimenti.razor.css index 38a6b95..745df5d 100644 --- a/StockMan.CORE/Components/Movimenti.razor.css +++ b/StockMan.CORE/Components/Movimenti.razor.css @@ -12,7 +12,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; } .btnMod { border-radius: 50%; @@ -22,7 +21,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(52, 152, 219, 0.2); color: #3498DB; } @@ -34,7 +32,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(86, 184, 167, 0.2); color: #56b8a7; } @@ -46,7 +43,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(192, 57, 43, 0.2); color: #C0392B; } @@ -58,7 +54,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(254, 152, 83, 0.2); color: #fe9853; } \ No newline at end of file diff --git a/StockMan.CORE/Components/Movimenti.razor.less b/StockMan.CORE/Components/Movimenti.razor.less index ef9d9c0..8878af2 100644 --- a/StockMan.CORE/Components/Movimenti.razor.less +++ b/StockMan.CORE/Components/Movimenti.razor.less @@ -11,7 +11,7 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; + //margin-right: 1rem; } .btnMod { diff --git a/StockMan.CORE/Components/Movimenti.razor.min.css b/StockMan.CORE/Components/Movimenti.razor.min.css index fe569d3..e18d2d7 100644 --- a/StockMan.CORE/Components/Movimenti.razor.min.css +++ b/StockMan.CORE/Components/Movimenti.razor.min.css @@ -1 +1 @@ -.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(192,57,43,.2);color:#c0392b;}.btnDup{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(254,152,83,.2);color:#fe9853;} \ No newline at end of file +.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(192,57,43,.2);color:#c0392b;}.btnDup{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(254,152,83,.2);color:#fe9853;} \ No newline at end of file diff --git a/StockMan.CORE/Components/StockGiacenze.razor b/StockMan.CORE/Components/StockGiacenze.razor index afe2a03..4310f9d 100644 --- a/StockMan.CORE/Components/StockGiacenze.razor +++ b/StockMan.CORE/Components/StockGiacenze.razor @@ -15,26 +15,24 @@
- @if (itemFlux != null) + @if (itemStock != null) { - foreach (var flux in itemFlux) - { - - - - - } + + + + + }
+
- COD. ARTICOLO + + +
+
+ COD. ARTICOLO + @if (orderType == orderTypeEnum.codIntAscending) + { + + } + else if (orderType == orderTypeEnum.codIntDescending) + { + + } + else + { + + } +
+
+
+
+ COD. FORNITORE + @if (orderType == orderTypeEnum.codExtAscending) + { + + } + else if (orderType == orderTypeEnum.codExtDescending) + { + + } + else + { + + } +
+
- DESC. ARTICOLO + +
+
+ DESC. ARTICOLO +
+
+
+
+ DESC. FORNITORE +
+
- COD. FORNITORE - - - COD. FORNITORE + + STOCK + @if (orderType == orderTypeEnum.stockAscending) + { - - COD. FORNITORE - - - STOCK - - - STOCK + } + else if (orderType == orderTypeEnum.stockDescending) + { - - STOCK + } + else + { - + } + VALORE UNIT. + VALORE TOT. +
- +
+ + @item.CodInt +
+ @item.CodExt +
- @item.Descr + +
+ + @item.Descr + +
+
+ + @item.DescrExt + +
- @item.CodExt - +
@item.QtaBatch
+ @($"{item.CurrValue:C2}") + @($"{(item.CurrValue * item.QtaBatch):C2}") - + +
- @flux.LocationId - - @flux.Qta -
+ @itemStock.LocationId + + @itemStock.QtyConf +
- +
@if (!isCarico) @@ -130,8 +128,16 @@
- - + @if (isScarico || isRettifica) + { + + + } + else + { + + + }
diff --git a/StockMan.CORE/Components/StockGiacenze.razor.cs b/StockMan.CORE/Components/StockGiacenze.razor.cs index cdd2ca1..5ad38ad 100644 --- a/StockMan.CORE/Components/StockGiacenze.razor.cs +++ b/StockMan.CORE/Components/StockGiacenze.razor.cs @@ -12,8 +12,10 @@ namespace StockMan.CORE.Components [Inject] protected StockDataService SDService { get; set; } = null!; - + [Parameter] + public string userName { get; set; } = ""; protected List itemFlux { get; set; } = new List(); + protected ItemStockModel itemStock { get; set; } = new ItemStockModel(); protected List listLocation { get; set; } = new List(); protected DataPager? pagerItemDetails = null!; @@ -27,6 +29,11 @@ namespace StockMan.CORE.Components await Task.Delay(1); itemFlux = await SDService.ItemFluxGetById(ItemID); + var Stock = await SDService.ItemsStockGetById(ItemID); + if (Stock != null) + { + itemStock = Stock.FirstOrDefault(); + } listLocation = await SDService.LocationGetAll(); } @@ -39,6 +46,14 @@ namespace StockMan.CORE.Components NavManager.NavigateTo(NavManager.Uri, true); } } + private async Task eliminaDuplicati() + { + var done = await SDService.EliminaDup(ItemID); + if (done) + { + NavManager.NavigateTo(NavManager.Uri, true); + } + } private async Task saveCarico() { @@ -51,13 +66,13 @@ namespace StockMan.CORE.Components { movTipo = "CAR"; cliOrForn = fornitore; - qtaScarCar = 0+qta; + qtaScarCar = 0 + qta; } else if (isScarico) { movTipo = "SCAR"; cliOrForn = cliente; - qtaScarCar = 0-qta; + qtaScarCar = 0 - qta; } else if (isRettifica) { @@ -74,10 +89,10 @@ namespace StockMan.CORE.Components DtMov = DateTime.Now.Date, Qta = qtaScarCar, TotValue = importo, - OperatorId = "ND", + OperatorId = userName, Note = note, CodDoc = documento, - ModOperatorId = "ND" + ModOperatorId = userName }; var done = await SDService.FluxAdd(newRec); @@ -85,12 +100,12 @@ namespace StockMan.CORE.Components { NavManager.NavigateTo(NavManager.Uri, true); } - } + } [Parameter] public int ItemID { get; set; } = 0; [Parameter] - public decimal valoreUnit { get; set; } = 0.0M; + public decimal valoreUnit { get; set; } = 0.0M; protected bool isCarico { get; set; } = false; protected bool isScarico { get; set; } = false; diff --git a/StockMan.CORE/Components/StockGiacenze.razor.css b/StockMan.CORE/Components/StockGiacenze.razor.css index 17b5581..87a707c 100644 --- a/StockMan.CORE/Components/StockGiacenze.razor.css +++ b/StockMan.CORE/Components/StockGiacenze.razor.css @@ -12,7 +12,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; } .btnMod { border-radius: 50%; @@ -22,7 +21,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(52, 152, 219, 0.2); color: #3498DB; } @@ -34,7 +32,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(86, 184, 167, 0.2); color: #56b8a7; } @@ -46,7 +43,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(192, 57, 43, 0.2); color: #C0392B; } \ No newline at end of file diff --git a/StockMan.CORE/Components/StockGiacenze.razor.less b/StockMan.CORE/Components/StockGiacenze.razor.less index 3324797..c4146f0 100644 --- a/StockMan.CORE/Components/StockGiacenze.razor.less +++ b/StockMan.CORE/Components/StockGiacenze.razor.less @@ -11,7 +11,7 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; + //margin-right: 1rem; } .btnMod { diff --git a/StockMan.CORE/Components/StockGiacenze.razor.min.css b/StockMan.CORE/Components/StockGiacenze.razor.min.css index 9649098..b3e8d38 100644 --- a/StockMan.CORE/Components/StockGiacenze.razor.min.css +++ b/StockMan.CORE/Components/StockGiacenze.razor.min.css @@ -1 +1 @@ -.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(192,57,43,.2);color:#c0392b;} \ No newline at end of file +.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(192,57,43,.2);color:#c0392b;} \ No newline at end of file diff --git a/StockMan.CORE/Data/MessageService.cs b/StockMan.CORE/Data/MessageService.cs new file mode 100644 index 0000000..48c6efc --- /dev/null +++ b/StockMan.CORE/Data/MessageService.cs @@ -0,0 +1,49 @@ +namespace StockMan.CORE.Data +{ + public class MessageService + { + #region Public Events + + public event Action EA_UserName = null!; + + #endregion Public Events + + #region Public Properties + public string newUserName + { + get => _newUserName; + set + { + if (_newUserName != value) + { + _newUserName = value; + reportUserName(); + } + } + } + + #endregion Public Properties + + #region Protected Methods + + protected void reportUserName() + { + if (EA_UserName != null) + { + EA_UserName?.Invoke(); + } + } + + #endregion Protected Methods + + #region Private Fields + + #endregion Private Fields + + #region Private Properties + + private string _newUserName { get; set; } = ""; + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/StockMan.CORE/Data/StockDataService.cs b/StockMan.CORE/Data/StockDataService.cs index 5e64b8f..d1e739b 100644 --- a/StockMan.CORE/Data/StockDataService.cs +++ b/StockMan.CORE/Data/StockDataService.cs @@ -345,6 +345,46 @@ namespace StockMan.CORE.Data Log.Debug($"ItemFluxGetById | {source} in: {ts.TotalMilliseconds} ms"); return dbResult; } + /// + /// Lista flussi x item da cercare + /// + /// + public async Task OperatorsGetByCodExt(string id) + { + string source = "DB"; + OperatorModel? dbResult = new OperatorModel(); + string currKey = $"{rKeyOperator}:Id:{id}"; + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + string? rawData = await redisDb.StringGetAsync(currKey); + if (!string.IsNullOrEmpty(rawData)) + { + source = "REDIS"; + var tempResult = JsonConvert.DeserializeObject(rawData); + if (tempResult == null) + { + dbResult = new OperatorModel(); + } + else + { + dbResult = tempResult; + } + } + else + { + dbResult = dbController.OperatorsGetByCodExt(id); + rawData = JsonConvert.SerializeObject(dbResult, JSSettings); + await redisDb.StringSetAsync(currKey, rawData, LongCache); + } + if (dbResult == null) + { + dbResult = new OperatorModel(); + } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"OperatorsGetByCodExt | {source} in: {ts.TotalMilliseconds} ms"); + return dbResult; + } public async Task ConfermaMov(int itemID) { @@ -358,6 +398,18 @@ namespace StockMan.CORE.Data Log.Debug($"ConfermaMov Read from {source}: {ts.TotalMilliseconds}ms"); return result; } + public async Task EliminaDup(int itemID) + { + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + bool result = false; + string source = "DB"; + result = await dbController.EliminaDup(itemID); + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"EliminaDup Read from {source}: {ts.TotalMilliseconds}ms"); + return result; + } /// /// Lista Articoli da ricerca @@ -541,6 +593,31 @@ namespace StockMan.CORE.Data Log.Debug($"ItemsGetByID | {source} in: {ts.TotalMilliseconds} ms"); return dbResult; } + /// + /// Lista Stock da cercare + /// + /// + public async Task> ItemsStockGetById(int ItemID) + { + string source = "DB"; + List? dbResult = new List(); + string currKey = ""; + currKey = $"{rKeyItemStock}:Id:{ItemID}"; + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + string? rawData = await redisDb.StringGetAsync(currKey); + dbResult = dbController.ItemsStockGetById(ItemID); + rawData = JsonConvert.SerializeObject(dbResult, JSSettings); + await redisDb.StringSetAsync(currKey, rawData, LongCache); + if (dbResult == null) + { + dbResult = new List(); + } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"ItemsStockGetById | {source} in: {ts.TotalMilliseconds} ms"); + return dbResult; + } #endregion Public Methods diff --git a/StockMan.CORE/Pages/AnagraficaArticoli.razor b/StockMan.CORE/Pages/AnagraficaArticoli.razor index 4fdf99c..5891436 100644 --- a/StockMan.CORE/Pages/AnagraficaArticoli.razor +++ b/StockMan.CORE/Pages/AnagraficaArticoli.razor @@ -1,6 +1,8 @@ @using StockMan.CORE.Components; @page "/AnagraficaArticoli" - +
+ - + +
diff --git a/StockMan.CORE/Pages/ItemDetails.razor b/StockMan.CORE/Pages/ItemDetails.razor index 3f2c1b3..f673184 100644 --- a/StockMan.CORE/Pages/ItemDetails.razor +++ b/StockMan.CORE/Pages/ItemDetails.razor @@ -6,11 +6,33 @@ {
- + @if (currOpr != null) + { + + } + else + { + + }
- - + @if (currOpr != null) + { + + } + else + { + + } + @if (currOpr != null) + { + + } + else + { + + } +
} diff --git a/StockMan.CORE/Pages/ItemDetails.razor.cs b/StockMan.CORE/Pages/ItemDetails.razor.cs index df0f69e..4ca46ac 100644 --- a/StockMan.CORE/Pages/ItemDetails.razor.cs +++ b/StockMan.CORE/Pages/ItemDetails.razor.cs @@ -32,6 +32,7 @@ namespace StockMan.CORE.Pages protected List itemFams { get; set; } = new List(); //protected ItemFluxModel? flux { get; set; } = null; protected List listLocation { get; set; } = new List(); + protected OperatorModel currOpr { get; set; } = new OperatorModel(); protected DataPager? pagerItemDetails = null!; protected override async Task OnInitializedAsync() { @@ -59,6 +60,7 @@ namespace StockMan.CORE.Pages itemFams = await SDService.ItemFamilyGetAll(); listLocation = await SDService.LocationGetAll(); + currOpr = await SDService.OperatorsGetByCodExt(userName); await Task.Delay(1); } @@ -67,21 +69,13 @@ namespace StockMan.CORE.Pages await Task.Delay(1); isMod = true; } - //protected void setFlux(ItemFluxModel currFlux) - //{ - // ItemID = currFlux.ItemId; - // pos = currFlux.LocationId, - // movTipo = currFlux.MovTypeId, - // ExtLocationId = cliOrForn, - // DtMov = DateTime.Now.Date, - // Qta = qtaScarCar, - // TotValue = importo, - // OperatorId = "ND", - // Note = note, - // CodDoc = documento, - // ModOperatorId = "ND" - // fornitore = currFlux.; - //} + [Inject] + protected MessageService MService { get; set; } = null!; + protected string userName + { + get => MService.newUserName; + } + protected int ItemID { get; set; } = 0; protected decimal valoreUnit { get; set; } = 0.00M; protected bool isMod { get; set; } = false; diff --git a/StockMan.CORE/Pages/ItemDetails.razor.css b/StockMan.CORE/Pages/ItemDetails.razor.css index d619180..6b6b04c 100644 --- a/StockMan.CORE/Pages/ItemDetails.razor.css +++ b/StockMan.CORE/Pages/ItemDetails.razor.css @@ -12,7 +12,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; } .btnMod { border-radius: 50%; @@ -22,7 +21,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(52, 152, 219, 0.2); color: #3498DB; } @@ -34,7 +32,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(86, 184, 167, 0.2); color: #56b8a7; } @@ -46,7 +43,6 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; background-color: rgba(192, 57, 43, 0.2); color: #C0392B; } diff --git a/StockMan.CORE/Pages/ItemDetails.razor.less b/StockMan.CORE/Pages/ItemDetails.razor.less index a4c7142..e1a15ae 100644 --- a/StockMan.CORE/Pages/ItemDetails.razor.less +++ b/StockMan.CORE/Pages/ItemDetails.razor.less @@ -11,7 +11,7 @@ border: none; padding: 0; text-align: center; - margin-right: 1rem; + //margin-right: 1rem; } .btnMod { diff --git a/StockMan.CORE/Pages/ItemDetails.razor.min.css b/StockMan.CORE/Pages/ItemDetails.razor.min.css index 9649098..b3e8d38 100644 --- a/StockMan.CORE/Pages/ItemDetails.razor.min.css +++ b/StockMan.CORE/Pages/ItemDetails.razor.min.css @@ -1 +1 @@ -.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;margin-right:1rem;background-color:rgba(192,57,43,.2);color:#c0392b;} \ No newline at end of file +.modItem input,.modItem textarea,.modItem select{font-size:.8rem;background-color:#e9ecef;}.buttonGlobal{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;}.btnMod{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(52,152,219,.2);color:#3498db;}.btnAccept{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(86,184,167,.2);color:#56b8a7;}.btnDecline{border-radius:50%;padding:.5rem;width:2.8rem;height:2.8rem;border:0;padding:0;text-align:center;background-color:rgba(192,57,43,.2);color:#c0392b;} \ No newline at end of file diff --git a/StockMan.CORE/Program.cs b/StockMan.CORE/Program.cs index 3f863e0..d0c2a74 100644 --- a/StockMan.CORE/Program.cs +++ b/StockMan.CORE/Program.cs @@ -46,7 +46,7 @@ builder.Services.Configure(options => builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddSingleton(); -//builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddHttpContextAccessor(); builder.Services.AddSingleton(redisMultiplexer); diff --git a/StockMan.CORE/Shared/MainLayout.razor b/StockMan.CORE/Shared/MainLayout.razor index ceb8b98..1109703 100644 --- a/StockMan.CORE/Shared/MainLayout.razor +++ b/StockMan.CORE/Shared/MainLayout.razor @@ -16,7 +16,7 @@ About
*@ -
+
@Body
diff --git a/StockMan.CORE/Shared/MainLayout.razor.cs b/StockMan.CORE/Shared/MainLayout.razor.cs index 83f71b8..ac3a2fc 100644 --- a/StockMan.CORE/Shared/MainLayout.razor.cs +++ b/StockMan.CORE/Shared/MainLayout.razor.cs @@ -13,18 +13,45 @@ namespace StockMan.CORE.Shared protected StockDataService SDService { get; set; } = null!; protected List? navMenuLinks { get; set; } = null; - - protected string userName { get; set; } = ""; + public EventCallback UserNameCB { get; set; } + public string userName + { + get + { + return MService.newUserName; + } + set + { + MService.newUserName = value; + reportChange(); + } + } [Inject] protected AuthenticationStateProvider AuthenticationStateProvider { get; set; } = null!; + [Inject] + protected MessageService MService { get; set; } = null!; #endregion Protected Properties #region Protected Methods protected override async Task OnInitializedAsync() { - await forceReload(); + await forceReload(); navMenuLinks = await SDService.PermessiGetAll(); + MService.EA_UserName += OnNewUserName; + } + + public async void OnNewUserName() + { + await InvokeAsync(() => + { + StateHasChanged(); + }); + } + + private void reportChange() + { + UserNameCB.InvokeAsync(userName); } private async Task forceReload() { diff --git a/StockMan.Data/Controllers/StoManController.cs b/StockMan.Data/Controllers/StoManController.cs index 8f915eb..b9fb025 100644 --- a/StockMan.Data/Controllers/StoManController.cs +++ b/StockMan.Data/Controllers/StoManController.cs @@ -548,6 +548,24 @@ namespace StockMan.Data.Controllers } return dbResult; } + /// + /// Lista Item Stock (By ID) + /// + /// + /// + public List ItemsStockGetById(int ItemID) + { + List dbResult = new List(); + using (StockManContext localDbCtx = new StockManContext(_configuration)) + { + dbResult = localDbCtx + .DbSetItemStock + .Where(x=>x.ItemId == ItemID) + .OrderBy(x => x.Id) + .ToList(); + } + return dbResult; + } /// /// Lista Locazioni @@ -617,6 +635,31 @@ namespace StockMan.Data.Controllers } return dbResult; } + /// + /// Operatore cercato + /// + /// + public OperatorModel OperatorsGetByCodExt(string codExt) + { + OperatorModel dbResult = new OperatorModel(); + using (StockManContext localDbCtx = new StockManContext(_configuration)) + { + var risultato = localDbCtx + .DbSetOperator + .Where(x=>x.CodExt == codExt) + .OrderBy(x => x.LastName) + .ThenBy(x => x.FirstName) + .FirstOrDefault(); + + if(risultato != null) + { + dbResult = risultato; + } + } + return dbResult; + } + + /// /// Lista Flux x item /// @@ -656,6 +699,26 @@ namespace StockMan.Data.Controllers } return answ; } + /// + /// Elimina movimenti duplicati + /// + /// + /// + public async Task EliminaDup(int itemID) + { + bool answ = false; + using (var dbCtx = new StockManContext(_configuration)) + { + var ItemID = new SqlParameter("@ItemID", itemID); + + var callResulr = await dbCtx + .Database + .ExecuteSqlRawAsync("exec dbo.stp_ItemShrinkHist @ItemID", ItemID); + + answ = true; + } + return answ; + } #endregion Public Methods