From d92ae46dde986ef10d46796fac497e4185ba0b95 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli (WEB DEV)" Date: Thu, 29 Sep 2016 23:47:10 +0200 Subject: [PATCH] Aggiunta nuova chiamata x shrink movimenti duplicati inutilmente... --- DbBackup/stp_ItemShrinkHist.sql | 71 +++++++++++++++++++ StockManMVC/Controllers/ItemsController.cs | 27 ++++++++ StockManMVC/Models/SMModel.Context.cs | 9 +++ StockManMVC/Models/SMModel.edmx | 7 ++ StockManMVC/Views/Items/Details.cshtml | 76 +++++++++++---------- StockManMVC/bin/StockManMVC.dll | Bin 124928 -> 125952 bytes 6 files changed, 155 insertions(+), 35 deletions(-) create mode 100644 DbBackup/stp_ItemShrinkHist.sql diff --git a/DbBackup/stp_ItemShrinkHist.sql b/DbBackup/stp_ItemShrinkHist.sql new file mode 100644 index 0000000..e3f286d --- /dev/null +++ b/DbBackup/stp_ItemShrinkHist.sql @@ -0,0 +1,71 @@ +USE [StockMan] +GO + +/****** Object: StoredProcedure [dbo].[stp_ItemShrinkHist] Script Date: 29/09/2016 23:44:55 ******/ +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + + +-- ============================================= +-- Author: S.E.L. +-- Create date: 2016.09.21 +-- Description: Riduce i movimenti per una data locazione-item (nulli, oppure a somma nulla a pari giorno) +-- ============================================= +CREATE PROCEDURE [dbo].[stp_ItemShrinkHist] +( + @ItemID INT = 0 +) +AS +BEGIN + -- SET NOCOUNT ON added to prevent extra result sets from + -- interfering with SELECT statements. + SET NOCOUNT ON; + + BEGIN tran + -- elimino in primis i movimenti nulli... + DELETE + FROM ItemFlux + WHERE Qta = 0 + AND ItemID = @ItemID + + -- cerco movimenti di un item solo positivi o solo negativi + ;WITH cteAdd AS + ( + SELECT * + FROM ItemFlux + WHERE Qta > 0 + AND ItemID = @ItemID + ), cteRem AS + ( + SELECT * + FROM ItemFlux + WHERE Qta < 0 + AND ItemID = @ItemID + ) + -- li incrocio e se si annullano.. + , cteNull AS + ( + SELECT a.* + FROM cteAdd a INNER JOIN cteRem r + ON a.LocationID=r.LocationID + AND a.dtMov = r.dtMov + AND ABS(a.Qta) = ABS(r.Qta) + ) + --select * from cteNull + -- ora che li ho selezionati li elimino... + DELETE iflx + FROM ItemFlux iflx INNER JOIN cteNull cte + ON iflx.LocationID = cte.LocationID + AND iflx.ItemID = cte.ItemID + AND iflx.dtMov = cte.dtMov + WHERE ABS(iflx.Qta) = ABS(cte.Qta) + + COMMIT tran +END + +GO + + diff --git a/StockManMVC/Controllers/ItemsController.cs b/StockManMVC/Controllers/ItemsController.cs index b71fd05..6e85fdf 100644 --- a/StockManMVC/Controllers/ItemsController.cs +++ b/StockManMVC/Controllers/ItemsController.cs @@ -170,6 +170,33 @@ namespace StockManMVC.Controllers } } + // GET: Items/ShrinkHistory/5?caller=callingController + public ActionResult ShrinkHistory(int? id, string caller) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + // chiamo stored x consolidamento flussi (da movimenti a giacenza confermata) + using (var ctx = new StockManEntities()) + { + // esegue stored procedure come function, SE id == 0 processa TUTTI... + int rowMod = ctx.stp_ItemShrinkHist(id); + } + + // se non specificati rimando a /Items/Details + if (caller == "") caller = "Items"; + + // rimanda alla view principale da cui รจ stata fatta la chiamata... + if (caller == "Items") + { + return RedirectToAction("Details", "Items", new { ID = id, StockItemID = id, FluxItemID = id }); + } + else + { + return RedirectToAction("Index", "vItemFlux2Save"); + } + } /// /// calcolo num risultati diff --git a/StockManMVC/Models/SMModel.Context.cs b/StockManMVC/Models/SMModel.Context.cs index 171c762..dac5099 100644 --- a/StockManMVC/Models/SMModel.Context.cs +++ b/StockManMVC/Models/SMModel.Context.cs @@ -110,5 +110,14 @@ namespace StockManMVC.Models return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("stp_ItemStockMove_New", stockIDParameter, locationID_FROMParameter, locationID_TOParameter, operatorIDParameter, qtyMovParameter); } + + public virtual int stp_ItemShrinkHist(Nullable itemID) + { + var itemIDParameter = itemID.HasValue ? + new ObjectParameter("ItemID", itemID) : + new ObjectParameter("ItemID", typeof(int)); + + return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("stp_ItemShrinkHist", itemIDParameter); + } } } diff --git a/StockManMVC/Models/SMModel.edmx b/StockManMVC/Models/SMModel.edmx index 89d550a..b728b40 100644 --- a/StockManMVC/Models/SMModel.edmx +++ b/StockManMVC/Models/SMModel.edmx @@ -229,6 +229,9 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary + + + @@ -500,6 +503,9 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary + + + @@ -794,6 +800,7 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary + diff --git a/StockManMVC/Views/Items/Details.cshtml b/StockManMVC/Views/Items/Details.cshtml index 2a6da52..04baf41 100644 --- a/StockManMVC/Views/Items/Details.cshtml +++ b/StockManMVC/Views/Items/Details.cshtml @@ -95,10 +95,21 @@
@Html.MVCGrid("StockItemsGrid") - - - Registra movimenti - + +
@@ -130,40 +141,35 @@
@*
- - - - -
*@ + + + + +
*@ @* - - ALL/none - *@ + + ALL/none + *@ - @Html.Partial("_MVCGridToolbar", new StockManMVC.Models.MVCGridToolbarModel() - { - MVCGridName = "FluxItemsGrid", - PageSize = true, - ColumnVisibility = true, - Export = false, - GlobalSearch = true - }) - @Html.MVCGrid("FluxItemsGrid") -
+ @Html.Partial("_MVCGridToolbar", new StockManMVC.Models.MVCGridToolbarModel() + { + MVCGridName = "FluxItemsGrid", + PageSize = true, + ColumnVisibility = true, + Export = false, + GlobalSearch = true + }) + @Html.MVCGrid("FluxItemsGrid") +
- - - - - diff --git a/StockManMVC/bin/StockManMVC.dll b/StockManMVC/bin/StockManMVC.dll index 0ec501d9cafb130d18d30f85ebbf98a077123b2f..1903eb87c6ac1c05672a738659a9c5b499997042 100644 GIT binary patch delta 22641 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 delta 22391 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 aFyOpsFhqSVa60hOy}|xBaYd{sGXG!KykhzQ