diff --git a/C2P/C2P.csproj.user b/C2P/C2P.csproj.user index c1a8ee3..516e0e1 100644 --- a/C2P/C2P.csproj.user +++ b/C2P/C2P.csproj.user @@ -2,7 +2,7 @@ ShowAllFiles - demo + WinLab diff --git a/C2P/Services/WS_data.asmx.cs b/C2P/Services/WS_data.asmx.cs index a29b93b..3f0ffa9 100644 --- a/C2P/Services/WS_data.asmx.cs +++ b/C2P/Services/WS_data.asmx.cs @@ -12,7 +12,7 @@ namespace C2P.Services /// /// Servizi web x retrieve dati interattivo /// - [WebService(Namespace = "http://tempuri.org/")] + [WebService(Namespace = "http://www.steamware.net/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. diff --git a/C2P/bin/C2P.dll b/C2P/bin/C2P.dll index b2fdfc1..3c3ca8a 100644 Binary files a/C2P/bin/C2P.dll and b/C2P/bin/C2P.dll differ diff --git a/C2P/bin/C2P_Data.dll b/C2P/bin/C2P_Data.dll index 1e02d30..aa88492 100644 Binary files a/C2P/bin/C2P_Data.dll and b/C2P/bin/C2P_Data.dll differ diff --git a/C2P_Data/App.Config b/C2P_Data/App.Config index 53fc182..277ff36 100644 --- a/C2P_Data/App.Config +++ b/C2P_Data/App.Config @@ -6,7 +6,6 @@ - @@ -14,8 +13,5 @@ - - - diff --git a/C2P_Data/DS_Utility.xsd b/C2P_Data/DS_Utility.xsd index a05cf47..bcce600 100644 --- a/C2P_Data/DS_Utility.xsd +++ b/C2P_Data/DS_Utility.xsd @@ -5,7 +5,6 @@ - diff --git a/C2P_Data/Properties/Settings.Designer.cs b/C2P_Data/Properties/Settings.Designer.cs index 36efe5f..a870f55 100644 --- a/C2P_Data/Properties/Settings.Designer.cs +++ b/C2P_Data/Properties/Settings.Designer.cs @@ -34,16 +34,5 @@ namespace C2P_Data.Properties { return ((string)(this["Proxima_C2PConnectionString"])); } } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=(localdb)\\Projects;Initial Catalog=C2P_Project;Integrated Security=Tr" + - "ue")] - public string C2P_ProjectConnectionString { - get { - return ((string)(this["C2P_ProjectConnectionString"])); - } - } } } diff --git a/C2P_Data/Properties/Settings.settings b/C2P_Data/Properties/Settings.settings index d6e52f7..833e11b 100644 --- a/C2P_Data/Properties/Settings.settings +++ b/C2P_Data/Properties/Settings.settings @@ -10,13 +10,5 @@ </SerializableConnectionString> Data Source=10.74.82.217\SQL2008R2;Initial Catalog=Proxima_C2P;Persist Security Info=True;User ID=sa;Password=keyhammer;MultipleActiveResultSets=True;Application Name=EntityFramework - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Data Source=(localdb)\Projects;Initial Catalog=C2P_Project;Integrated Security=True</ConnectionString> - <ProviderName>System.Data.SqlClient</ProviderName> -</SerializableConnectionString> - Data Source=(localdb)\Projects;Initial Catalog=C2P_Project;Integrated Security=True - \ No newline at end of file diff --git a/C2P_Data/bin/Release/C2P_Data.dll b/C2P_Data/bin/Release/C2P_Data.dll index 1e02d30..aa88492 100644 Binary files a/C2P_Data/bin/Release/C2P_Data.dll and b/C2P_Data/bin/Release/C2P_Data.dll differ diff --git a/C2P_Data/bin/Release/C2P_Data.dll.config b/C2P_Data/bin/Release/C2P_Data.dll.config index 53fc182..277ff36 100644 --- a/C2P_Data/bin/Release/C2P_Data.dll.config +++ b/C2P_Data/bin/Release/C2P_Data.dll.config @@ -6,7 +6,6 @@ - @@ -14,8 +13,5 @@ - - - diff --git a/C2P_Project/C2P_DB.sqlproj b/C2P_Project/C2P_DB.sqlproj index 69f5368..afef48c 100644 --- a/C2P_Project/C2P_DB.sqlproj +++ b/C2P_Project/C2P_DB.sqlproj @@ -85,6 +85,7 @@ + @@ -245,7 +246,6 @@ - @@ -289,6 +289,22 @@ + + + + + + + + + + + + + + + + diff --git a/C2P_Project/C2P_compare_dev2prod.scmp b/C2P_Project/C2P_compare_dev2prod.scmp index 85a7243..887f1fd 100644 --- a/C2P_Project/C2P_compare_dev2prod.scmp +++ b/C2P_Project/C2P_compare_dev2prod.scmp @@ -4,7 +4,7 @@ {84db66e4-9663-47f7-9dd1-3cb562629ff5} - C2P_Project + C2P_DB @@ -100,6 +100,10 @@ DropRoleMembersNotInSource False + + DropStatisticsNotInSource + True + GenerateSmartDefaults False @@ -286,7 +290,7 @@ TargetConnectionString - Integrated Security=True;Pooling=False;Connection Timeout=30 + Integrated Security=True;Pooling=False;Connect Timeout=30 TreatVerificationErrorsAsWarnings @@ -304,6 +308,10 @@ VerifyDeployment True + + RunDeploymentPlanExecutors + False + AllowDropBlockingAssemblies False @@ -399,134 +407,4 @@ 100 Equals_Objects,Not_Supported_Deploy - - - tmp - importDiesGroupRaw - - - tmp - importDiesRaw - @fileType - - - tmp - importClientsRaw - @fileType - - - tmp - importDiesRaw - - - tmp - importClientsRaw - - - tmp - importDiesGroupRaw - @fileType - - - tmp - importItemsRaw - - - tmp - importItemsRaw - @fileType - - - tmp - importPackagRaw - - - tmp - importPackagRaw - @fileType - - - tmp - importProductionLogRaw - - - tmp - importProductionLogRaw - @fileType - - - tmp - importTranspCostRaw - - - tmp - importTranspCostRaw - @fileType - - - - - tmp - importDiesRaw - @fileType - - - tmp - importClientsRaw - @fileType - - - tmp - importDiesRaw - - - tmp - importClientsRaw - - - tmp - importDiesGroupRaw - @fileType - - - tmp - importDiesGroupRaw - - - tmp - importItemsRaw - - - tmp - importItemsRaw - @fileType - - - tmp - importPackagRaw - - - tmp - importPackagRaw - @fileType - - - tmp - importProductionLogRaw - - - tmp - importProductionLogRaw - @fileType - - - tmp - importTranspCostRaw - - - tmp - importTranspCostRaw - @fileType - - \ No newline at end of file diff --git a/C2P_Project/Security/ext.sql b/C2P_Project/Security/ext.sql index e95d1c3..0a29b54 100644 --- a/C2P_Project/Security/ext.sql +++ b/C2P_Project/Security/ext.sql @@ -5,3 +5,5 @@ + + diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_Delete.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_Delete.sql new file mode 100644 index 0000000..1ad3a72 --- /dev/null +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_Delete.sql @@ -0,0 +1,82 @@ +-- ============================================= +-- Author: Steamware - S.E.L. +-- Create date: 2014.04.16 +-- Description: elimina un record in QL (Full) e in tabelle connesse +-- ============================================= +create PROCEDURE [dbo].[stp_QLF_Delete] +( + @Original_QuoteType CHAR(1) = 'Q', + @Original_CodQuote BIGINT = 0, + @Original_QuoteRev INT = 0 +) +AS + +SET XACT_ABORT ON; +BEGIN TRAN + + -- elimino da QuoteFull_Q + DELETE + FROM QuoteFull_Q + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteFull_S + DELETE + FROM QuoteFull_S + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteWorkExt + DELETE + FROM QuoteWorkExt + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteWorkInt + DELETE + FROM QuoteWorkInt + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteSimPar + DELETE + FROM QuoteSimPar + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteRM + DELETE + FROM QuoteRM + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteParam + DELETE + FROM QuoteParam + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteOC + DELETE + FROM QuoteOC + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- elimino da QuoteList + DELETE + FROM QuoteList + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + +COMMIT TRAN + +RETURN \ No newline at end of file diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdExtrPar.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdExtrPar.sql index 1b1d60a..2b08db9 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdExtrPar.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdExtrPar.sql @@ -1,23 +1,22 @@ - --- ============================================= +-- ============================================= -- Author: Steamware - S.E.L. -- Create date: 2014.05.16 -- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata -- ============================================= CREATE PROCEDURE [dbo].[stp_QLS_UpdExtrPar] ( - @Original_QuoteType CHAR(1) = 'S', - @Original_CodQuote BIGINT = 0, - @Original_QuoteRev INT = 0, - @TipoDies NVARCHAR(50) = '', - @DiamDies INT = 1, - @HoleNumDies INT = 1, - @CodPlant NVARCHAR(50), - @DiesPrice_sim DECIMAL(18, 6), - @DiesTecLife DECIMAL(18, 6), - @WSR01_sim DECIMAL(9, 8), - @MSR01_sim DECIMAL(9, 8), - @NetProd01_sim DECIMAL(9, 3) + @Original_QuoteType CHAR(1) = 'S', + @Original_CodQuote BIGINT = 0, + @Original_QuoteRev INT = 0, + @TipoDies NVARCHAR(50) = '', + @DiamDies INT = 1, + @HoleNumDies INT = 1, + @CodPlant NVARCHAR(50), + @DiesPrice_sim DECIMAL(18, 6), + @DiesTecLife DECIMAL(18, 6), + @WSR01_sim DECIMAL(9, 8), + @MSR01_sim DECIMAL(9, 8), + @NetProd01_sim DECIMAL(9, 3) ) AS @@ -34,44 +33,50 @@ BEGIN TRAN AND QuoteRev = @Original_QuoteRev - -- @CodDiesGroup - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodDiesGroup', @CodDiesGroup - - -- @CodPlant - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodPlant', @CodPlant - - -- @DiesPrice_sim - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesPrice_sim', @DiesPrice_sim - - -- @DiesTecLife - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesTecLife', @DiesTecLife - - -- @WSR01_sim - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'WSR01_sim', @WSR01_sim - - -- @MSR01_sim - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'MSR01_sim', @MSR01_sim - - -- @NetProd01_sim - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'NetProd01_sim', @NetProd01_sim - + -- @CodDiesGroup + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodDiesGroup', @CodDiesGroup + + -- @CodPlant + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodPlant', @CodPlant + + -- @DiesPrice_sim + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesPrice_sim', @DiesPrice_sim + + -- @DiesTecLife + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesTecLife', @DiesTecLife + + -- @WSR01_sim + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'WSR01_sim', @WSR01_sim + + -- @MSR01_sim + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'MSR01_sim', @MSR01_sim + + -- @NetProd01_sim + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'NetProd01_sim', @NetProd01_sim + - -- update dei valori calcolati! + -- update dei valori calcolati! + EXEC stp_QL_fullDataUpdate @Original_QuoteType + ,@Original_CodQuote + ,@Original_QuoteRev + ,'Y' + + -- 2014.10.12 modifica sam: chiamo 2 volte perché è simulazione e i valori _sim sono salvati alla fine ed usati all'inizio... EXEC stp_QL_fullDataUpdate @Original_QuoteType ,@Original_CodQuote ,@Original_QuoteRev ,'Y' - + COMMIT TRAN -- seleziono intera riga! - + SELECT * FROM v_QuoteFull_Q WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev RETURN \ No newline at end of file diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdHead.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdHead.sql index 6af27d9..780f306 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdHead.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdHead.sql @@ -18,6 +18,7 @@ CREATE PROCEDURE [dbo].[stp_QLS_UpdHead] @RawMatExtraCost DECIMAL(18, 6), @BatchQty INT, @CodInco NVARCHAR(5), + @ProvvCost DECIMAL(18,6), @Note NVARCHAR(2500) = '' ) AS @@ -59,8 +60,9 @@ BEGIN TRAN -- scambio ultimo valore SELECT @CodDiesGroup = ISNULL(REPLACE(@CodDiesGroup, '-' + dbo.f_GetSubstring(@CodDiesGroup,'-' , 4), '-'+@CodItemGroup), '' ) - + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodDiesGroup', @CodDiesGroup + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'ProvvCost', @ProvvCost -- update dei valori calcolati! diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql index 6a01ed3..05e8c2e 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql @@ -1,5 +1,4 @@ - --- ============================================= +-- ============================================= -- Author: Steamware - S.E.L. -- Create date: 2014.05.20 -- Description: update di un record in QL (Full) TIPO SIMULAZIONE e poi aggiorna a cascata @@ -10,7 +9,8 @@ CREATE PROCEDURE [dbo].[stp_QLS_UpdPackPar] @Original_CodQuote BIGINT = 0, @Original_QuoteRev INT = 0, @CodPackag NVARCHAR(50), - @DSR_sim DECIMAL(9, 8) + @DSR_sim DECIMAL(9, 8), + @NetProd04_sim DECIMAL(9, 3) ) AS @@ -23,6 +23,8 @@ BEGIN TRAN -- @DSR_sim EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DSR_sim', @DSR_sim + -- @NetProd04_sim + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'NetProd04_sim', @NetProd04_sim -- update dei valori calcolati! EXEC stp_QL_fullDataUpdate @Original_QuoteType @@ -30,6 +32,13 @@ BEGIN TRAN ,@Original_QuoteRev ,'Y' + -- la chiamo 2 volte perché è simulazione e i valori _sim sono salvati alla fine ed usati all'inizio... + EXEC stp_QL_fullDataUpdate @Original_QuoteType + ,@Original_CodQuote + ,@Original_QuoteRev + ,'Y' + + COMMIT TRAN diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql index 57d32e8..f0875a3 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql @@ -95,6 +95,14 @@ BEGIN TRAN AND CodQuote = @CodQuote_orig AND QuoteRev = @QuoteRev_orig AND ProcessNum = '01' + + INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) + SELECT @QuoteType, @CodQuote, @QuoteRev, 'NetProd04_sim', NetProd + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType_orig + AND CodQuote = @CodQuote_orig + AND QuoteRev = @QuoteRev_orig + AND ProcessNum = '04' INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql index 1d99c89..6401e14 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql @@ -14,12 +14,23 @@ CREATE PROCEDURE dbo.stp_QL_fullDataCount , @qtaMax INT = 999999 , @QuoteType CHAR(1) = '*' , @IdxQState INT = '-1' + , @search NVARCHAR(250) = '*' ) AS SET NOCOUNT ON +;WITH qfq_filt AS +( + SELECT * + FROM v_QuoteFull_Q + WHERE ClientName LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE ClientName END + OR RawMat LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE RawMat END + OR CodItem LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CodItem END + OR CONVERT(NVARCHAR(30), CodQuote) LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CONVERT(NVARCHAR(30), CodQuote) END +) + SELECT COUNT(DISTINCT CodQuote) AS num -FROM v_QuoteFull_Q vq +FROM qfq_filt vq WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END AND vq.RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN vq.RawMat ELSE @RawMat END diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql index e253139..1e05bf6 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql @@ -1,6 +1,6 @@ -- ============================================= -- Author: Steamware --- Mod date: 2014.05.21 +-- Mod date: 2014.10.01 -- Description: modifica una quotazione da Q ad S in QuoteList e ricalcola -- ============================================= CREATE PROCEDURE [dbo].[stp_QL_makeSim] @@ -64,6 +64,14 @@ BEGIN TRAN AND QuoteRev = @QuoteRev_orig AND ProcessNum = '01' + INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) + SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'NetProd04_sim', NetProd + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType_orig + AND CodQuote = @CodQuote_orig + AND QuoteRev = @QuoteRev_orig + AND ProcessNum = '04' + INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'MSR01_sim', MSR FROM QuoteWorkInt @@ -100,6 +108,13 @@ BEGIN TRAN , @CodQuote_orig , @QuoteRev_orig , 'Y' + + -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam + EXEC stp_QL_fullDataUpdate @QuoteType + , @CodQuote_orig + , @QuoteRev_orig + , 'Y' + COMMIT TRAN -- seleziono intera riga! diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getByTable.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getByTable.sql new file mode 100644 index 0000000..70e4c6b --- /dev/null +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getByTable.sql @@ -0,0 +1,21 @@ +/*************************************** +* STORED stp_listValues_getByTable +* +* ottiene elenco campi data Table +* +* Steamware, S.E.L. +* mod: 2014.08.04 +* +****************************************/ +create PROCEDURE [stp_listValues_getByTable] +( + @TableName NVARCHAR(50) +) +AS + + SELECT * + FROM ListValues + WHERE TableName = @TableName + ORDER BY ordinal + +RETURN \ No newline at end of file diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getValidValues.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getValidValues.sql new file mode 100644 index 0000000..ff37254 --- /dev/null +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getValidValues.sql @@ -0,0 +1,22 @@ +-- ============================================= +-- STORED stp_getValidValues +-- +-- Author: S.E.L. +-- Create date: 2011.05.26 +-- Description: gestione selezione dati parametrici +-- ============================================= +create PROCEDURE [stp_listValues_getValidValues] +( + @TableName NVARCHAR(50), + @FieldName NVARCHAR(50) +) +AS +BEGIN + SET NOCOUNT ON; + + SELECT value, label + FROM ListValues + WHERE TableName = @TableName + AND FieldName = @FieldName + ORDER BY ordinal +END \ No newline at end of file diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getValidValuesFilt.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getValidValuesFilt.sql new file mode 100644 index 0000000..7b22884 --- /dev/null +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_listValues_getValidValuesFilt.sql @@ -0,0 +1,25 @@ +-- ============================================= +-- STORED stp_getValidValuesFilt +-- +-- Author: S.E.L. +-- Create date: 2011.05.26 +-- Description: gestione selezione dati parametrici +-- con filtro su valore con LIKE +-- ============================================= +create PROCEDURE [stp_listValues_getValidValuesFilt] +( + @TableName NVARCHAR(50), + @FieldName NVARCHAR(50), + @valueLike NVARCHAR(10) +) +AS +BEGIN + SET NOCOUNT ON; + + SELECT value, label + FROM ListValues + WHERE TableName = @TableName + AND FieldName = @FieldName + AND value LIKE @valueLike +'%' + ORDER BY ordinal +END \ No newline at end of file diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_Q_Data.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_Q_Data.sql index a922fa8..6ff7cf0 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_Q_Data.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_Q_Data.sql @@ -2,7 +2,7 @@ -- STORED PROCEDURE stp_prt_dsQuoteFull_Q_Data -- -- Author: Steamware --- Mod date: 2014.04.28 +-- Mod date: 2014.04.28 -- Description: dataset stp_prt_dsQuoteFull_Q_Data per reportOffers -- ============================================= CREATE PROCEDURE [dbo].[stp_prt_dsQuoteFull_Q_Data] @@ -118,6 +118,7 @@ SELECT , WSR01_sim , MSR01_sim , NetProd01_sim + , NetProd04_sim , DSR_sim , NetMar_sim , FCShield_sim diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_byChiave.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_byChiave.sql index 497d384..0b5ba11 100644 --- a/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_byChiave.sql +++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_byChiave.sql @@ -120,6 +120,7 @@ SELECT , WSR01_sim , MSR01_sim , NetProd01_sim + , NetProd04_sim , DSR_sim , NetMar_sim , FCShield_sim diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql index 30ca496..4c61735 100644 --- a/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql +++ b/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql @@ -31,7 +31,7 @@ END -- , FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost -- , FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost -- , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice --- , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) AS P_MinPrice +-- , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + RawMatFullCost AS P_MinPrice -- , PriceOff + RawMatFullCost AS P_PriceOff -- , (FVC + FC4UG01 + OH4UG01 + FC4UG04) - PriceOff AS NetMar -- , (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04) AS FCShield diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql index 0e8040c..1a02acc 100644 --- a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql +++ b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql @@ -16,6 +16,7 @@ CREATE PROCEDURE [dbo].[stp_QL_fullDataSearch] , @qtaMax INT = 999999 , @QuoteType CHAR(1) = '*' , @IdxQState INT = '-1' + , @search NVARCHAR(250) = '*' ) AS SET NOCOUNT ON @@ -26,10 +27,19 @@ SET NOCOUNT ON SELECT QuoteType, CodQuote, MAX(QuoteRev) AS QuoteRev FROM QuoteList GROUP BY QuoteType, CodQuote +), +qfq_filt AS +( + SELECT * + FROM v_QuoteFull_Q + WHERE ClientName LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE ClientName END + OR RawMat LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE RawMat END + OR CodItem LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CodItem END + OR CONVERT(NVARCHAR(30), CodQuote) LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CONVERT(NVARCHAR(30), CodQuote) END ) -- calcolo con aggiunta campi sommati... SELECT vq.* -FROM v_QuoteFull_Q vq +FROM qfq_filt vq INNER JOIN myCte mc ON vq.QuoteType = mc.QuoteType AND vq.CodQuote = mc.CodQuote AND vq.QuoteRev = mc.QuoteRev WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END @@ -38,6 +48,10 @@ WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE AND vq.BatchQty BETWEEN @qtaMin AND @qtaMax AND vq.QuoteType = CASE WHEN @QuoteType = '*' THEN vq.QuoteType ELSE @QuoteType END AND vq.IdxQState = CASE WHEN @IdxQState = -1 THEN vq.IdxQState ELSE @IdxQState END + +-- AND vq.ClientName LIKE '%{0}%' OR RawMat LIKE '%{0}%' OR CodItem LIKE '%{0}%' OR CONVERT(CodQuote, 'System.String') LIKE '%{0}%' + + ORDER BY CodQuote DESC RETURN diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataUpdate.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataUpdate.sql index 7455b27..a261b11 100644 --- a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataUpdate.sql +++ b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataUpdate.sql @@ -1,20 +1,16 @@ - - - - --- ============================================= +-- ============================================= -- STORED PROCEDURE stp_QL_fullDataUpdate -- -- Author: Steamware -- Create date: 2014.01.27 --- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen web +-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestione web -- ============================================= CREATE PROCEDURE [dbo].[stp_QL_fullDataUpdate] ( - @QuoteType CHAR(1) = 'Q' - , @CodQuote BIGINT = 0 - , @QuoteRev INT = 0 - , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N - ) + @QuoteType CHAR(1) = 'Q' + , @CodQuote BIGINT = 0 + , @QuoteRev INT = 0 + , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N + ) AS SET NOCOUNT ON @@ -34,9 +30,9 @@ SET NOCOUNT ON -- , @MinPrice DECIMAL(9,6) IF (@DoUpdate = 'Y') BEGIN - EXEC dbo.stp_QL_update @QuoteType - , @CodQuote - , @QuoteRev + EXEC dbo.stp_QL_update @QuoteType + , @CodQuote + , @QuoteRev END @@ -46,7 +42,7 @@ END -- elimino eventuale temp table... IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL - DROP TABLE #TempFullData; + DROP TABLE #TempFullData; -- Costruisco la "superselect" di tutti i valori necessari... @@ -56,238 +52,250 @@ IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL -- ================================================= ;WITH ctePivotQuoteP AS ( - SELECT * - FROM ( - SELECT QuoteType - , CodQuote - , QuoteRev - , Descr - , Parameter - FROM dbo.QuoteParam - WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev - ) AS SourceTable + SELECT * + FROM ( + SELECT QuoteType + , CodQuote + , QuoteRev + , Descr + , Parameter + FROM dbo.QuoteParam + WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev + ) AS SourceTable - PIVOT(MIN(Parameter) FOR Descr IN ( - ItemDescr - , CodifProfilo - , ClasseMerc - , CodClientAssoc - , ClientNameAssoc - , CodDiesGroup - , TipoDies - , DiamDies - , HoleNumDies - , NumDiesInList - , NumDiesExaust - , CodPlant - , KeyAM - , KeyAMIL - , NumSMED - , KgTeo - , KgProdotti - , QuotaMan - , DiesPrice - , DiesExpLife - , DiesEOLife + PIVOT(MIN(Parameter) FOR Descr IN ( + ItemDescr + , CodifProfilo + , ClasseMerc + , CodClientAssoc + , ClientNameAssoc + , CodDiesGroup + , TipoDies + , DiamDies + , HoleNumDies + , NumDiesInList + , NumDiesExaust + , CodPlant + , KeyAM + , KeyAMIL + , NumSMED + , KgTeo + , KgProdotti + , QuotaMan + , DiesPrice + , DiesExpLife + , DiesEOLife , DiesByClass - , PkgDesc - , PRMWeight - , PWeight - , PTare - , TareStRatio - , LivPackage - , LivPackageDett + , PkgDesc + , PRMWeight + , PWeight + , PTare + , TareStRatio + , LivPackage + , LivPackageDett -- START nuovi campi x SIM - , DiesPrice_sim - , SamplePrice - , DiesFullCost - , DiesPriceClientQuote - , DiesTecLife - , DiesCommLife - , MonthSalesPrev - , SalesPrevCost - , DiesFinCost - , ClientQuoteReven - , ExtraDiscountDies - , WSR01_sim - , MSR01_sim - , NetProd01_sim + , DiesPrice_sim + , SamplePrice + , DiesFullCost + , DiesPriceClientQuote + , DiesTecLife + , DiesCommLife + , MonthSalesPrev + , SalesPrevCost + , DiesFinCost + , ClientQuoteReven + , ExtraDiscountDies + , WSR01_sim + , MSR01_sim + , NetProd01_sim + , NetProd04_sim , DSR_sim -- end nuovi campi x SIM - ) + ) ) AS PivotData ), -- ================================================= -- PIVOT TABELLA QuoteOC -- ================================================= ctePivotQuoteOC AS ( - SELECT * - FROM ( - SELECT QuoteType - , CodQuote - , QuoteRev - , Class01 + ProcessNum AS ClassProc - , C4UG - FROM dbo.QuoteOC - WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev - ) AS SourceTable - PIVOT(SUM(C4UG) FOR ClassProc IN - ( EE01 - , GAS01 - , MATRICE01 - , VENDITA01 - , ROTTAME01 - , VENDITA04 - , ROTTAME04 - , IMBALLO04 - , TRASPORTI04 - , PROVVIGIONI04 - ) - ) AS PivotData + SELECT * + FROM ( + SELECT QuoteType + , CodQuote + , QuoteRev + , Class01 + ProcessNum AS ClassProc + , C4UG + FROM dbo.QuoteOC + WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev + ) AS SourceTable + PIVOT(SUM(C4UG) FOR ClassProc IN + ( EE01 + , GAS01 + , MATRICE01 + , VENDITA01 + , ROTTAME01 + , VENDITA04 + , ROTTAME04 + , IMBALLO04 + , TRASPORTI04 + , PROVVIGIONI04 + ) + ) AS PivotData ) -- ================================================= -- MAIN Select Tabella con INTO temp table -- ================================================= SELECT 'V14.1' AS Vers - , QL.QuoteType - , QL.CodQuote - , QL.QuoteRev - , QL.IdxQState - , QL.CodClient - , ISNULL(CD.ClientName,N'') AS ClientName - , QL.CodItem - , QL.CodItemGroup - , QL.RawMat - , QL.UnitWeight - , QL.BatchQty - , QL.CodInco - , ISNULL(CD.TranspZone,N'') AS TranspZone - , QL.KeyAM - , QL.Note - , QL.PriceOff - , QL.OrdDate - , QL.OrdNum - , QL.OrdRow - , QL.OrdPrice - , QL.OrdQty - , pQP.CodClientAssoc - , pQP.ClientNameAssoc - , pQP.ItemDescr - , pQP.CodifProfilo - , pQP.ClasseMerc - , pQP.TipoDies - , pQP.CodDiesGroup - , CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies - , CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice - , CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife - , CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife - , CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass - , CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList - , CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust - , pQP.CodPlant - , pQP.KeyAMIL - , CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo - , CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED - , CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan - , CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight - , CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight - , CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare - , pQP.LivPackage - , pQP.LivPackageDett + , QL.QuoteType + , QL.CodQuote + , QL.QuoteRev + , QL.IdxQState + , QL.CodClient + , ISNULL(CD.ClientName,N'') AS ClientName + , QL.CodItem + , QL.CodItemGroup + , QL.RawMat + , QL.UnitWeight + , QL.BatchQty + , QL.CodInco + , ISNULL(CD.TranspZone,N'') AS TranspZone + , QL.KeyAM + , QL.Note + , QL.PriceOff + , QL.OrdDate + , QL.OrdNum + , QL.OrdRow + , QL.OrdPrice + , QL.OrdQty + , pQP.CodClientAssoc + , pQP.ClientNameAssoc + , pQP.ItemDescr + , pQP.CodifProfilo + , pQP.ClasseMerc + , pQP.TipoDies + , pQP.CodDiesGroup + , CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies + , CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice + , CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife + , CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife + , CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass + , CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList + , CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust + , pQP.CodPlant + , pQP.KeyAMIL + , CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo + , CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED + , CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan + , CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight + , CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight + , CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare + , pQP.LivPackage + , pQP.LivPackageDett -- START nuovi campi x SIM , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice_sim),0) AS DiesPrice_sim - , ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife - , ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev - , ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost - , ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven - , ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies - , ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim - , ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim - , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim + , ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife + , ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev + , ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost + , ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven + , ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies + , ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim + , ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim + , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim + , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd04_sim),0) AS NetProd04_sim , ISNULL(CONVERT(DECIMAL(9,8),pQP.DSR_sim),0) AS DSR_sim -- end nuovi campi x SIM - , QRM.RawMatCost - , QRM.RawMatExtraCost - , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!? - , QRM.CodPackag - , pQP.PkgDesc - , QRM.FSR - , ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost - , ISNULL(pQOC.EE01, 0) AS EECost - , ISNULL(pQOC.GAS01, 0) AS GasCost - , ISNULL(pQOC.MATRICE01, 0) AS DiesCost - , ISNULL(pQOC.IMBALLO04, 0) AS PackCost - , ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost - , ISNULL(pQOC.VENDITA01, 0) AS SellCost01 - , ISNULL(pQOC.ROTTAME01, 0) AS RefCost01 - , ISNULL(pQOC.VENDITA04, 0) AS SellCost04 - , ISNULL(pQOC.ROTTAME04, 0) AS RefCost04 - , QWI01.WSR AS WSR01 - , QWI01.MSR AS MSR01 - , QWI01.NetProd AS NetProd01 - , QWI01.FC4UG AS FC4UG01 - , QWI01.VC4UG AS VC4UG01 - , QWI01.OH4UG AS OH4UG01 - , QWI01.SC4UG AS SC4UG01 - , 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR - , QWI04.NetProd AS NetProd04 - , QWI04.FC4UG AS FC4UG04 - , QWI04.VC4UG AS VC4UG04 - , ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC - , PD.Charge - , QL.valid - , QL.errorScore + , QRM.RawMatCost + , QRM.RawMatExtraCost + , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!? + , QRM.CodPackag + , pQP.PkgDesc + , QRM.FSR + , ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost + , ISNULL(pQOC.EE01, 0) AS EECost + , ISNULL(pQOC.GAS01, 0) AS GasCost + , ISNULL(pQOC.MATRICE01, 0) AS DiesCost + , ISNULL(pQOC.IMBALLO04, 0) AS PackCost + , ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost + , ISNULL(pQOC.VENDITA01, 0) AS SellCost01 + , ISNULL(pQOC.ROTTAME01, 0) AS RefCost01 + , ISNULL(pQOC.VENDITA04, 0) AS SellCost04 + , ISNULL(pQOC.ROTTAME04, 0) AS RefCost04 + , QWI01.WSR AS WSR01 + , QWI01.MSR AS MSR01 + , QWI01.NetProd AS NetProd01 + , QWI01.FC4UG AS FC4UG01 + , QWI01.VC4UG AS VC4UG01 + , QWI01.OH4UG AS OH4UG01 + , QWI01.SC4UG AS SC4UG01 + , 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR + , QWI04.NetProd AS NetProd04 + , QWI04.FC4UG AS FC4UG04 + , QWI04.VC4UG AS VC4UG04 + , ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC + , PD.Charge + , QL.valid + , QL.errorScore INTO #TempFullData -- carico in temp table FROM dbo.QuoteList AS QL LEFT JOIN dbo.ClientDet CD -- non voglio che non crei record x mancanza Cliente - ON QL.CodClient = CD.CodClient + ON QL.CodClient = CD.CodClient INNER JOIN ctePivotQuoteP AS pQP - ON QL.QuoteType = pQP.QuoteType - AND QL.CodQuote = pQP.CodQuote - AND QL.QuoteRev = pQP.QuoteRev + ON QL.QuoteType = pQP.QuoteType + AND QL.CodQuote = pQP.CodQuote + AND QL.QuoteRev = pQP.QuoteRev INNER JOIN dbo.QuoteRM AS QRM - ON QL.QuoteType = QRM.QuoteType - AND QL.CodQuote = QRM.CodQuote - AND QL.QuoteRev = QRM.QuoteRev - AND QL.rawmat = QRM.RawMat + ON QL.QuoteType = QRM.QuoteType + AND QL.CodQuote = QRM.CodQuote + AND QL.QuoteRev = QRM.QuoteRev + AND QL.rawmat = QRM.RawMat INNER JOIN ctePivotQuoteOC AS pQOC - ON QL.QuoteType = pQOC.QuoteType - AND QL.CodQuote = pQOC.CodQuote - AND QL.QuoteRev = pQOC.QuoteRev + ON QL.QuoteType = pQOC.QuoteType + AND QL.CodQuote = pQOC.CodQuote + AND QL.QuoteRev = pQOC.QuoteRev INNER JOIN dbo.QuoteWorkInt AS QWI01 - ON QL.QuoteType = QWI01.QuoteType - AND QL.CodQuote = QWI01.CodQuote - AND QL.QuoteRev = QWI01.QuoteRev - AND QWI01.ProcessNum = '01' + ON QL.QuoteType = QWI01.QuoteType + AND QL.CodQuote = QWI01.CodQuote + AND QL.QuoteRev = QWI01.QuoteRev + AND QWI01.ProcessNum = '01' INNER JOIN dbo.QuoteWorkInt AS QWI02 - ON QL.QuoteType = QWI02.QuoteType - AND QL.CodQuote = QWI02.CodQuote - AND QL.QuoteRev = QWI02.QuoteRev - AND QWI02.ProcessNum = '02' + ON QL.QuoteType = QWI02.QuoteType + AND QL.CodQuote = QWI02.CodQuote + AND QL.QuoteRev = QWI02.QuoteRev + AND QWI02.ProcessNum = '02' INNER JOIN dbo.QuoteWorkInt AS QWI03 - ON QL.QuoteType = QWI03.QuoteType - AND QL.CodQuote = QWI03.CodQuote - AND QL.QuoteRev = QWI03.QuoteRev - AND QWI03.ProcessNum = '03' + ON QL.QuoteType = QWI03.QuoteType + AND QL.CodQuote = QWI03.CodQuote + AND QL.QuoteRev = QWI03.QuoteRev + AND QWI03.ProcessNum = '03' INNER JOIN dbo.QuoteWorkInt AS QWI04 - ON QL.QuoteType = QWI04.QuoteType - AND QL.CodQuote = QWI04.CodQuote - AND QL.QuoteRev = QWI04.QuoteRev - AND QWI04.ProcessNum = '04' + ON QL.QuoteType = QWI04.QuoteType + AND QL.CodQuote = QWI04.CodQuote + AND QL.QuoteRev = QWI04.QuoteRev + AND QWI04.ProcessNum = '04' INNER JOIN dbo.PlantsDet AS PD - ON PD.CodPlant = pQP.CodPlant + ON PD.CodPlant = pQP.CodPlant + + +-- 2014.09.10 modifica x proporre campi _sim a standard... +-- Campi _sim: faccio verifica, se fossero vuoti li metto pari agli equivalenti NON _sim +UPDATE #TempFullData + SET WSR01_sim = CASE WHEN WSR01_sim > 0 THEN WSR01_sim ELSE WSR01 END + , MSR01_sim = CASE WHEN MSR01_sim > 0 THEN MSR01_sim ELSE MSR01 END + , DSR_sim = CASE WHEN DSR_sim > 0 THEN DSR_sim ELSE DSR END + , NetProd01_sim = CASE WHEN NetProd01_sim > 0 THEN NetProd01_sim ELSE NetProd01 END + , NetProd04_sim = CASE WHEN NetProd04_sim > 0 THEN NetProd04_sim ELSE NetProd04 END ---- salvo i dati dell'ordine: FullCost, MinPrice, PriceOff (se zero lo pongo uguale a MinPrice) --UPDATE QuoteList @@ -302,78 +310,78 @@ INNER JOIN dbo.PlantsDet AS PD IF @QuoteType = 'Q' BEGIN - IF OBJECT_ID('QuoteFull_Q') IS NULL -- CREATE TABLE QuoteFull_Q da eliminare quando Tabella Definitiva - SELECT * INTO dbo.QuoteFull_Q FROM #TempFullData - ELSE - BEGIN - --DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_Q (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) - SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore - FROM #TempFullData - END + IF OBJECT_ID('QuoteFull_Q') IS NULL -- CREATE TABLE QuoteFull_Q da eliminare quando Tabella Definitiva + SELECT * INTO dbo.QuoteFull_Q FROM #TempFullData + ELSE + BEGIN + --DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_Q (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) + SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore + FROM #TempFullData + END END ELSE IF @QuoteType = 'R' BEGIN - IF OBJECT_ID('QuoteFull_R') IS NULL -- CREATE TABLE QuoteFull_R da eliminare quando Tabella Definitiva - SELECT * INTO dbo.QuoteFull_R FROM #TempFullData - ELSE - BEGIN - DELETE dbo.QuoteFull_R WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_R (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore) - SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore + IF OBJECT_ID('QuoteFull_R') IS NULL -- CREATE TABLE QuoteFull_R da eliminare quando Tabella Definitiva + SELECT * INTO dbo.QuoteFull_R FROM #TempFullData + ELSE + BEGIN + DELETE dbo.QuoteFull_R WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_R (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore) + SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore -- FROM [dbo].[v_pivot] - FROM #TempFullData - END + FROM #TempFullData + END END ELSE IF @QuoteType = 'S' BEGIN - IF OBJECT_ID('QuoteFull_S') IS NULL -- CREATE TABLE QuoteFull_S da eliminare quando Tabella Definitiva - SELECT * INTO dbo.QuoteFull_S FROM #TempFullData - ELSE - BEGIN - DELETE dbo.QuoteFull_S WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_S (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev, SalesPrevCost, DiesFinCost, ClientQuoteReven, ExtraDiscountDies, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) - SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, (DiesPrice_sim + SamplePrice) AS DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev - -- se DiesCommLife è NULLA è messa a 1 sopra - ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) - THEN 0 - ELSE ( (((DiesTecLife % DiesCommLife) / DiesTecLife) * ( DiesPrice_sim + SamplePrice) ) / DiesTecLife ) - END AS SalesPrevCost - ,CASE WHEN DiesCommLife > 0 - THEN ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) - ELSE ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / 1 ) - END AS DiesFinCost - ,CASE WHEN DiesTecLife > 0 - THEN ( -DiesPriceClientQuote / DiesTecLife ) - ELSE -DiesPriceClientQuote - END AS ClientQuoteReven - ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) - THEN 0 - ELSE (((((DiesTecLife % DiesCommLife) / DiesTecLife ) * (DiesPrice_sim+SamplePrice)) / DiesTecLife - +(((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote) * (power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) - - DiesPriceClientQuote / DiesTecLife ) - END AS ExtraDiscountDies + IF OBJECT_ID('QuoteFull_S') IS NULL -- CREATE TABLE QuoteFull_S da eliminare quando Tabella Definitiva + SELECT * INTO dbo.QuoteFull_S FROM #TempFullData + ELSE + BEGIN + DELETE dbo.QuoteFull_S WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_S (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev, SalesPrevCost, DiesFinCost, ClientQuoteReven, ExtraDiscountDies, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04_sim, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) + SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, (DiesPrice_sim + SamplePrice) AS DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev + -- se DiesCommLife è NULLA è messa a 1 sopra + ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) + THEN 0 + ELSE ( (((DiesTecLife % DiesCommLife) / DiesTecLife) * ( DiesPrice_sim + SamplePrice) ) / DiesTecLife ) + END AS SalesPrevCost + ,CASE WHEN DiesCommLife > 0 + THEN ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) + ELSE ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / 1 ) + END AS DiesFinCost + ,CASE WHEN DiesTecLife > 0 + THEN ( -DiesPriceClientQuote / DiesTecLife ) + ELSE -DiesPriceClientQuote + END AS ClientQuoteReven + ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) + THEN 0 + ELSE (((((DiesTecLife % DiesCommLife) / DiesTecLife ) * (DiesPrice_sim+SamplePrice)) / DiesTecLife + +(((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote) * (power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) + - DiesPriceClientQuote / DiesTecLife ) + END AS ExtraDiscountDies - -- CALCOLI OLD Version - --((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end) AS SalesPrevCost, - --((((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end) AS DiesFinCost, - --( -DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ClientQuoteReven, - --(((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end+(((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end)-DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ExtraDiscountDies, + -- CALCOLI OLD Version + --((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end) AS SalesPrevCost, + --((((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end) AS DiesFinCost, + --( -DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ClientQuoteReven, + --(((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end+(((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end)-DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ExtraDiscountDies, - ,DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore + ,DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04_sim, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore - FROM #TempFullData - END + FROM #TempFullData + END END ELSE IF @QuoteType = 'C' BEGIN - DELETE dbo.QuoteFull_C WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_C ( Vers, QuoteType, CodQuote, QuoteRev, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost, valid, errorScore ) - SELECT Vers, QuoteType, CodQuote, QuoteRev, CodifProfilo, ClasseMerc, tmp.CodItem, RawMat, tmp.CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost, valid, errorScore - FROM #TempFullData AS tmp + DELETE dbo.QuoteFull_C WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_C ( Vers, QuoteType, CodQuote, QuoteRev, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost, valid, errorScore ) + SELECT Vers, QuoteType, CodQuote, QuoteRev, CodifProfilo, ClasseMerc, tmp.CodItem, RawMat, tmp.CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost, valid, errorScore + FROM #TempFullData AS tmp END -- elimino temp table... diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql index d2f97b6..5fff9cc 100644 --- a/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql +++ b/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql @@ -1,651 +1,767 @@ - - --- ============================================= +-- ============================================= -- Author: Steamware --- Mod. date: 2014.06.06 +-- Mod. date: 2014.10.21 -- Description: aggiorna le tabelle QuoteList con i dati selezionati dalla TabProdSc -- ============================================= CREATE PROCEDURE [dbo].[stp_QL_update] ( - @QuoteType CHAR(1) = 'Q', - @CodQuote BIGINT = 0, - @QuoteRev INT = 0 + @QuoteType CHAR(1) = 'Q', + @CodQuote BIGINT = 0, + @QuoteRev INT = 0 ) AS BEGIN - SET NOCOUNT ON; + SET NOCOUNT ON; - -- dichiaro valori da recuperare - DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali" - , @valid BIT -- bit validità generico totale - , @validStep BIT -- bit validità generico singolo step - , @errorScore INT -- punteggio errori (1 per errore o anche punti diversi x "Peso", da valutare - , @CodDiesGroup NVARCHAR(50) - , @CodPlant NVARCHAR(50) - , @CodPlantFix NVARCHAR(50) = '' - , @HoleNum INT + -- dichiaro valori da recuperare + DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali" + , @valid BIT -- bit validità generico totale + , @validStep BIT -- bit validità generico singolo step + , @errorScore INT -- punteggio errori (1 per errore o anche punti diversi x "Peso", da valutare + , @CodDiesGroup NVARCHAR(50) = '' + , @CodPlant NVARCHAR(50) = '' + , @CodPlantCMIL NVARCHAR(50) + , @CodPlantFix NVARCHAR(50) = '' + , @HoleNum INT - -- ITEM - DECLARE @CodItem NVARCHAR(50) = '' -- cod item - , @ItemDescr NVARCHAR(50) = '' -- descrizione item - , @CodifProfilo NVARCHAR(50) = '' -- Cod. Profilo - , @ClasseMerc NVARCHAR(50) = '' - , @CodClientAssoc NVARCHAR(50) = '' - , @KeyAM NVARCHAR(50) = '' - , @KeyAMI NVARCHAR(50) = '' - , @KeyAMIL NVARCHAR(50) = '' - , @NumSMED INT = 0 -- numero cambi - , @KgTeo DECIMAL(18, 6) = 0 -- kg totali - , @RawMat NVARCHAR(50) - , @ProdTeo DECIMAL(18,6) - , @ScTec DECIMAL(18,6) - , @BatchQty INT - , @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia - , @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico - , @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura - , @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo - , @MAC_SC_sim DECIMAL(18,6) = 0 -- Messa a cento scarto cesoia - SIMULAZIONE - , @MAC_ST_sim DECIMAL(18,6) = 0 -- Messa a cento scarto tecnico - SIMULAZIONE - , @MAC_IN_sim DECIMAL(18,6) = 0 -- Messa a cento difettosità all'incestatura - SIMULAZIONE - , @MAC_IM_sim DECIMAL(18,6) = 0 -- Messa a cento difettosità all'imballo - SIMULAZIONE - , @FCR_sim DECIMAL(18,6) = 0 -- Messa a cento complessiva - SIMULAZIONE - , @SSR DECIMAL(9,6) -- percentuale vendita rottame - , @DiesPrice DECIMAL(9,3) -- prezzo matrice - , @DiesEOLife DECIMAL(9,2) -- durata matrice - , @DiesExpLife DECIMAL(9,2) -- durata matrice - , @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice - , @DiesByClass BIT = 0 -- definisce se i dati della matrice siano calcolati puntualmente (0) o per classe (1) - , @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01 - , @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01 - , @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04 - , @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01 - , @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04 - , @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01 - , @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04 - -- IMBALLO - DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo - , @CodClient NVARCHAR(50) = '' -- codice cliente - , @NumImb DECIMAL(9,6) = 0 -- num imballatori - , @PkgDesc NVARCHAR(50) = '' -- descrizione imballo - , @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo - , @PWeight DECIMAL(9,4) = 0 -- peso del pacco - , @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata - , @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg) - , @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto - , @PTotQta DECIMAL(18,3) = 0 -- Qta Kg Tot Imballati - , @PDurata DECIMAL(18,6) = 0 -- Tempo d'imballaggio - , @PLiv NVARCHAR(50) = '' -- Livello Search dati Imballo - , @PLivDett NVARCHAR(50) = '' -- Key Livello Search Dati Imballo - -- TRASPORTI - DECLARE @TranspZone NVARCHAR(50) = '' -- codice ZONA - , @TranspCost DECIMAL(9,6) = 0 -- costo di trasporto - , @HasTC INT + -- ITEM + DECLARE @CodItem NVARCHAR(50) = '' -- cod item + , @ItemDescr NVARCHAR(50) = '' -- descrizione item + , @CodifProfilo NVARCHAR(50) = '' -- Cod. Profilo + , @ClasseMerc NVARCHAR(50) = '' + , @CodClientAssoc NVARCHAR(50) = '' + , @KeyAM NVARCHAR(50) = '' + , @KeyAMI NVARCHAR(50) = '' + , @KeyAMIL NVARCHAR(50) = '' + , @NumSMED INT = 0 -- numero cambi + , @KgTeo DECIMAL(18, 6) = 0 -- kg totali + , @RawMat NVARCHAR(50) + , @ProdTeo DECIMAL(18,6) = 0 + , @ProdTeo_sim DECIMAL(18,6) = 0 + , @ScTec DECIMAL(18,6) + , @BatchQty INT + , @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia + , @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico + , @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura + , @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo + , @MAC_SC_sim DECIMAL(18,6) = 0 -- Messa a cento scarto cesoia - SIMULAZIONE + , @MAC_ST_sim DECIMAL(18,6) = 0 -- Messa a cento scarto tecnico - SIMULAZIONE + , @MAC_IN_sim DECIMAL(18,6) = 0 -- Messa a cento difettosità all'incestatura - SIMULAZIONE + , @MAC_IM_sim DECIMAL(18,6) = 0 -- Messa a cento difettosità all'imballo - SIMULAZIONE + , @FCR_sim DECIMAL(18,6) = 0 -- Messa a cento complessiva - SIMULAZIONE + , @SSR DECIMAL(9,6) -- percentuale vendita rottame + , @DiesPrice DECIMAL(9,3) -- prezzo matrice + , @NumDiesExaust INT = 0 -- numero matrici rottamate + , @DiesEOLife DECIMAL(9,2) -- durata matrice CLASSE MATRICE + , @DiesExpLife DECIMAL(9,2) -- durata matrice ARTICOLO + , @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice + , @DiesByClass BIT = 0 -- definisce se i dati della matrice siano calcolati puntualmente (0) o per classe (1) + , @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01 + , @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01 + , @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04 + , @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01 + , @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04 + , @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01 + , @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04 + -- IMBALLO + DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo + , @CodClient NVARCHAR(50) = '' -- codice cliente + , @NumImb DECIMAL(9,6) = 0 -- num imballatori + , @PkgDesc NVARCHAR(50) = '' -- descrizione imballo + , @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo + , @PWeight DECIMAL(9,4) = 0 -- peso del pacco + , @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata + , @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg) + , @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto + , @PTotQta DECIMAL(18,3) = 0 -- Qta Kg Tot Imballati + , @PDurata DECIMAL(18,6) = 0 -- Tempo d'imballaggio + , @PLiv NVARCHAR(50) = '' -- Livello Search dati Imballo + , @PLivDett NVARCHAR(50) = '' -- Key Livello Search Dati Imballo + , @ProdTeoImb DECIMAL(18,6) = 0 -- produttività SIMULATA imballo + , @ProdTeoImb_sim DECIMAL(18,6) = 0 -- produttività SIMULATA imballo + -- TRASPORTI + DECLARE @TranspZone NVARCHAR(50) = '' -- codice ZONA + , @TranspCost DECIMAL(9,6) = 0 -- costo di trasporto + , @HasTC INT - -- PROVVIGIONI - DECLARE @Provvig DECIMAL(9,6) -- provvigione agente - - -- default: validità è true! - SET @valid = 1 - -- default: error score è nullo - SET @errorScore = 0 + -- PROVVIGIONI + DECLARE @Provvig DECIMAL(9,6) -- provvigione agente + + -- default: validità è true! + SET @valid = 1 + -- default: error score è nullo + SET @errorScore = 0 - -- ================================================= - -- CREAZIONE TEMP TABLE - -- ================================================= + -- ================================================= + -- CREAZIONE TEMP TABLE + -- ================================================= - -- elimino e ricreo #QuoteParam temp table... NON Serve nella stored - --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL - -- DROP TABLE #QuoteParam + -- elimino e ricreo #QuoteParam temp table... NON Serve nella stored + --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL + -- DROP TABLE #QuoteParam - CREATE TABLE #Quoteparam - ( - Quotetype CHAR( 1 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - Codquote BIGINT NOT NULL, - Quoterev INT NOT NULL, - Nump INT IDENTITY( 1,1 ) NOT NULL, - Processnum NVARCHAR( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - Descr NVARCHAR( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - Parameter NVARCHAR( 100 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT(''), - --PRIMARY KEY - -- ( QuoteType ASC, CodQuote ASC, QuoteRev ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 99 ) - ); + CREATE TABLE #Quoteparam + ( + Quotetype CHAR( 1 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + Codquote BIGINT NOT NULL, + Quoterev INT NOT NULL, + Nump INT IDENTITY( 1,1 ) NOT NULL, + Processnum NVARCHAR( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + Descr NVARCHAR( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + Parameter NVARCHAR( 100 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT(''), + --PRIMARY KEY + -- ( QuoteType ASC, CodQuote ASC, QuoteRev ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 99 ) + ); - -- oppure creo l'indice successivamente - --CREATE CLUSTERED INDEX #ix_Quoteparam ON #Quoteparam (QuoteType ASC, CodQuote ASC, QuoteRev ASC) - --WITH (PAD_INDEX = ON, FILLFACTOR = 100) + -- oppure creo l'indice successivamente + --CREATE CLUSTERED INDEX #ix_Quoteparam ON #Quoteparam (QuoteType ASC, CodQuote ASC, QuoteRev ASC) + --WITH (PAD_INDEX = ON, FILLFACTOR = 100) - --CREATE STATISTICS [#ix_QuoteType_CodQuote] ON #Quoteparam ([QuoteType], [CodQuote], [QuoteRev]) + --CREATE STATISTICS [#ix_QuoteType_CodQuote] ON #Quoteparam ([QuoteType], [CodQuote], [QuoteRev]) - -- elimino e ricreo ##QuoteWorkInt temp table... - --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL DROP TABLE #QuoteWorkInt + -- elimino e ricreo ##QuoteWorkInt temp table... + --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL DROP TABLE #QuoteWorkInt CREATE TABLE #QuoteWorkInt - ( - QuoteType CHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - CodQuote BIGINT NOT NULL, - QuoteRev INT NOT NULL, - NumWI INT IDENTITY(1,1) NOT NULL, - ProcessNum NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - Class01 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class02 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class03 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class04 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class05 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - NetProd DECIMAL(9, 3) NOT NULL DEFAULT ((0)), - WSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)), - MSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)), - DSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)), - FC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), - VC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), - OH4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), - SC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), - -- campi calcolati - WYR AS ((1)-WSR), - MYR AS ((1)-MSR), - DYR AS ((1)-DSR), - WCR AS ( CASE WHEN ((1)-WSR)=0 THEN 1 ELSE (1)/((1)-WSR) END ), - MCR AS ( CASE WHEN ((1)-MSR)=0 THEN 1 ELSE (1)/((1)-MSR) END ), - DCR AS ( CASE WHEN ((1)-DSR)=0 THEN 1 ELSE (1)/((1)-DSR) END ), - valid BIT NOT NULL DEFAULT((1)), - ) + ( + QuoteType CHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + CodQuote BIGINT NOT NULL, + QuoteRev INT NOT NULL, + NumWI INT IDENTITY(1,1) NOT NULL, + ProcessNum NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + Class01 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class02 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class03 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class04 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class05 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + NetProd DECIMAL(9, 3) NOT NULL DEFAULT ((0)), + WSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)), + MSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)), + DSR DECIMAL(9, 8) NOT NULL DEFAULT ((0)), + FC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), + VC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), + OH4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), + SC4UG DECIMAL(9, 6) NOT NULL DEFAULT ((0)), + -- campi calcolati + WYR AS ((1)-WSR), + MYR AS ((1)-MSR), + DYR AS ((1)-DSR), + WCR AS ( CASE WHEN ((1)-WSR)=0 THEN 1 ELSE (1)/((1)-WSR) END ), + MCR AS ( CASE WHEN ((1)-MSR)=0 THEN 1 ELSE (1)/((1)-MSR) END ), + DCR AS ( CASE WHEN ((1)-DSR)=0 THEN 1 ELSE (1)/((1)-DSR) END ), + valid BIT NOT NULL DEFAULT((1)), + ) -- elimino e ricreo #QuoteOC temp table... --IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL DROP TABLE #QuoteOC - CREATE TABLE #QuoteOC - ( - QuoteType CHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - CodQuote BIGINT NOT NULL, - QuoteRev INT NOT NULL, - NumEx INT IDENTITY(1,1) NOT NULL, - ProcessNum NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class01 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class02 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class03 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class04 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - Class05 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), - TotQty DECIMAL(18, 6) NOT NULL DEFAULT ((1)), - TotCost DECIMAL(18, 6) NOT NULL DEFAULT ((0)), - Quota DECIMAL(18, 6) NOT NULL DEFAULT ((1)), - C4UG AS ( CASE WHEN TotQty= 0 THEN 0 ELSE (TotCost*Quota) / TotQty END ), - valid BIT NOT NULL DEFAULT ((1)) - ) + CREATE TABLE #QuoteOC + ( + QuoteType CHAR(1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + CodQuote BIGINT NOT NULL, + QuoteRev INT NOT NULL, + NumEx INT IDENTITY(1,1) NOT NULL, + ProcessNum NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class01 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class02 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class03 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class04 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + Class05 NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT (''), + TotQty DECIMAL(18, 6) NOT NULL DEFAULT ((1)), + TotCost DECIMAL(18, 6) NOT NULL DEFAULT ((0)), + Quota DECIMAL(18, 6) NOT NULL DEFAULT ((1)), + C4UG AS ( CASE WHEN TotQty= 0 THEN 0 ELSE (TotCost*Quota) / TotQty END ), + valid BIT NOT NULL DEFAULT ((1)) + ) - -- =================================== - -- INIZIO TRANSAZIONE - -- =================================== - SET XACT_ABORT ON; - BEGIN TRAN + -- =================================== + -- INIZIO TRANSAZIONE + -- =================================== + SET XACT_ABORT ON; + BEGIN TRAN - --------------------------------------- - -- svuotamento iniziale - --------------------------------------- - - -- elimino quote PARAMETRI! - DELETE FROM dbo.QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- elimino lavorazioni ESTERNE! - DELETE FROM dbo.QuoteWorkExt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- elimino lavorazioni INTERNE - DELETE FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- elimino OtherCosts - DELETE FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato - SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id - INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev ), '' ) - - -- recupero da dati dell'offerta il valore del cliente - SELECT @CodClient = CodClient - FROM dbo.QuoteList - WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - IF (@QuoteType IN ('Q', 'R','C' ) ) -- Quotation, Reddittivity, Cost List - BEGIN - -- recupero dati!! - SELECT TOP 1 @CodItem = ql.CodItem - , @CodDiesGroup = tps.CodDiesGroup - , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END - , @HoleNum = tps.HoleNum - , @KeyAM = ql.KeyAM - , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') - , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) - , @ProdTeo = tps.ProdTeo - , @ScTec = tps.ScTec - , @KgTeo = tps.KgTeo - , @NumSMED = tps.NumSMED - , @RawMat = ql.RawMat - , @BatchQty = ql.BatchQty - , @ItemDescr = i.ItemDescr - , @CodifProfilo = i.Class01 - , @ClasseMerc = i.Class02 - , @CodClientAssoc = i.Class03 + --------------------------------------- + -- salvataggio parametri iniziale + --------------------------------------- + DECLARE @NetProd01_sim DECIMAL(9,3) = 0 -- prod simulazione fase 01 + DECLARE @NetProd04_sim DECIMAL(9,3) = 0 -- prod simulazione fase 04 + + -- cerco la prod netta fase 1 di simulazione... + SELECT @NetProd01_sim = CAST(Parameter AS DECIMAL(9,3)) + FROM dbo.QuoteParam + WHERE descr = 'NetProd01_sim' + AND QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - FROM dbo.QuoteList ql - INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM - INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - ORDER BY tps.KgTeo DESC + -- cerco la prod netta fase 1 di simulazione... + SELECT @NetProd04_sim = CAST(Parameter AS DECIMAL(9,3)) + FROM dbo.QuoteParam + WHERE descr = 'NetProd04_sim' + AND QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- ================================================================================= - -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi - -- Secondo la logica Client-Item-Package ( vedi funzione ) - -- ================================================================================= - -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) ) - -- attenzione è una function tabellare - --SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, - -- @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet - --FROM f_getDataCodPackag ( @CodItem, @CodClient) - - EXEC dbo.stp_getDataCodPackag @CodItem, @CodClient, @CodPackag = @CodPackag OUT, @TotQta = @PTotQta OUT, @Weight = @PWeight OUT, @Tare = @PTare OUT, - @NumImb = @NumImb OUT, @Durata = @PDurata OUT, @LivPackag = @PLiv OUT, @LivPackagDet = @PLivDett OUT - - END - -- -------------------------------------------------------------------------------------------- - -- se offerta tipo 'S' non recupero dati da storico ma li cerco da tabella apposita.. - -- -------------------------------------------------------------------------------------------- - ELSE IF (@QuoteType = 'S') - BEGIN - -- salvo i parametri da QuoteSimPar a #Quoteparam - INSERT INTO #Quoteparam(Quotetype, CodQuote, QuoteRev ,ProcessNum, Descr, Parameter) - SELECT Quotetype, CodQuote, QuoteRev, '01' AS ProcessNum, NomePar AS Descr, ValPar AS Parameter - FROM dbo.QuoteSimPar - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND NomePar NOT IN ('CodDiesGroup', 'CodPlant') - - -- recupero parametri da SIM iniziali...... - ;WITH myCTE as - ( -- Pivot table - SELECT CodDiesGroup, CodPlant, CodPackag, NetProd01_sim - FROM - ( SELECT NomePar, ValPar - FROM dbo.QuoteSimPar - WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev ) AS SourceTable - PIVOT ( MIN(ValPar) FOR NomePar IN ( CodDiesGroup, CodPlant, CodPackag, NetProd01_sim ) - ) AS PivotTable - ) - - SELECT @CodDiesGroup = CodDiesGroup, - @CodPlant = CodPlant, - @CodPackag = ISNULL(CodPackag, 0), - @ProdTeo = NetProd01_sim - FROM myCTE + --SELECT @NetProd01_sim as NetProd01_sim, @NetProd04_sim as NetProd04_sim - SELECT @CodDiesGroup = ISNULL(@CodDiesGroup, '') - SELECT @CodPlant = ISNULL(@CodPlant, '') - SELECT @HoleNum = dbo.f_getSubstring(@CodDiesGroup, '-', 3) + --------------------------------------- + -- svuotamento iniziale + --------------------------------------- + + -- elimino quote PARAMETRI! + DELETE FROM dbo.QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - SELECT TOP 1 @CodItem = ql.CodItem - , @KeyAM = ql.KeyAM - , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') - , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(@HoleNum,0) AS NVARCHAR(10)) - , @ScTec = 0 - , @KgTeo = 0 - , @NumSMED = 0 - , @RawMat = ql.RawMat - , @BatchQty = ql.BatchQty - , @ItemDescr = i.ItemDescr - , @CodifProfilo = i.Class01 - , @ClasseMerc = i.Class02 - , @CodClientAssoc = i.Class03 + -- elimino lavorazioni ESTERNE! + DELETE FROM dbo.QuoteWorkExt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - FROM dbo.QuoteList ql - INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev + -- elimino lavorazioni INTERNE + DELETE FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- provo a caricare dati produzione da KeyAMIL + CodDiesGroup - SELECT TOP 1 @ScTec = ISNULL(ScTec, 0) - , @KgTeo = ISNULL(KgTeo, 0) - , @NumSMED = ISNULL(NumSMED, 0) - , @ProdTeo = ISNULL(ProdTeo, 0) - FROM dbo.TabProdSc - WHERE KeyAMIL = @KeyAMIL - AND CodDiesGroup = @CodDiesGroup + -- elimino OtherCosts + DELETE FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato + SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id + INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev ), '' ) + + -- recupero da dati dell'offerta il valore del cliente + SELECT @CodClient = CodClient + FROM dbo.QuoteList + WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + + IF (@QuoteType IN ('Q', 'R','C' ) ) -- Quotation, Reddittivity, Cost List + BEGIN + -- recupero dati!! + SELECT TOP 1 @CodItem = ql.CodItem + , @CodDiesGroup = tps.CodDiesGroup + , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END + , @HoleNum = tps.HoleNum + , @KeyAM = ql.KeyAM + , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) + , @ProdTeo = tps.ProdTeo + , @ScTec = tps.ScTec + , @KgTeo = tps.KgTeo + , @NumSMED = tps.NumSMED + , @RawMat = ql.RawMat + , @BatchQty = ql.BatchQty + , @ItemDescr = i.ItemDescr + , @CodifProfilo = i.Class01 + , @ClasseMerc = i.Class02 + , @CodClientAssoc = i.Class03 + + FROM dbo.QuoteList ql + INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM + INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + ORDER BY tps.KgTeo DESC + + -- ================================================================================= + -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi + -- Secondo la logica Client-Item-Package ( vedi funzione ) + -- ================================================================================= + -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) ) + -- attenzione è una function tabellare + --SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, + -- @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet + --FROM f_getDataCodPackag ( @CodItem, @CodClient) + + EXEC dbo.stp_getDataCodPackag @CodItem, @CodClient, @CodPackag = @CodPackag OUT, @TotQta = @PTotQta OUT, @Weight = @PWeight OUT, @Tare = @PTare OUT, + @NumImb = @NumImb OUT, @Durata = @PDurata OUT, @LivPackag = @PLiv OUT, @LivPackagDet = @PLivDett OUT + + END + -- -------------------------------------------------------------------------------------------- + -- se offerta tipo 'S' non recupero dati da storico ma li cerco da tabella apposita.. + -- -------------------------------------------------------------------------------------------- + ELSE IF (@QuoteType = 'S') + BEGIN + -- salvo i parametri da QuoteSimPar a #Quoteparam + INSERT INTO #Quoteparam(Quotetype, CodQuote, QuoteRev ,ProcessNum, Descr, Parameter) + SELECT Quotetype, CodQuote, QuoteRev, '01' AS ProcessNum, NomePar AS Descr, ValPar AS Parameter + FROM dbo.QuoteSimPar + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND NomePar NOT IN ('CodDiesGroup', 'CodPlant') + + -- recupero parametri da SIM iniziali...... + ;WITH myCTE as + ( -- Pivot table + SELECT CodDiesGroup, CodPlant, CodPackag, NetProd01_sim, NetProd04_sim + FROM + ( SELECT NomePar, ValPar + FROM dbo.QuoteSimPar + WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev ) AS SourceTable + PIVOT ( MIN(ValPar) FOR NomePar IN ( CodDiesGroup, CodPlant, CodPackag, NetProd01_sim, NetProd04_sim ) + ) AS PivotTable + ) + + SELECT @CodDiesGroup = CodDiesGroup, + @CodPlant = CodPlant, + @CodPackag = ISNULL(CodPackag, 0), + @ProdTeo_sim = NetProd01_sim, -- ??? @ProdTeo_sim NON USATA? + @ProdTeoImb_sim = NetProd04_sim -- ??? @ProdTeoImb_sim NON USATA ? + FROM myCTE + + + -- 2014.10.12 anticipato calcolo x avere holeNum x chiave AMIL successiva... + SELECT @CodDiesGroup = ISNULL(@CodDiesGroup, '') + SELECT @CodPlant = ISNULL(@CodPlant, '') + SELECT @CodPlantCMIL = ISNULL(@CodPlant, '0000') + SELECT @HoleNum = dbo.f_getSubstring(@CodDiesGroup, '-', 3) + + -- 2014.09.09 FIX calcolo prod teorica imballo da lookup... + SELECT TOP 1 @ProdTeo = tps.ProdTeo + FROM dbo.QuoteList ql + -- modifica 2014.10.12 messa chiave AMIL + --INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM + INNER JOIN dbo.TabProdSc tps ON ql.KeyAM + '-' + @CodPlantCMIL + '-' + CAST(ISNULL(@HoleNum,0) AS NVARCHAR(10)) = tps.KeyAMIL + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + ORDER BY tps.KgTeo DESC + + SELECT TOP 1 @CodItem = ql.CodItem + , @KeyAM = ql.KeyAM + , @KeyAMI = ql.KeyAM + '-' + @CodPlantCMIL + , @KeyAMIL = ql.KeyAM + '-' + @CodPlantCMIL + '-' + CAST(ISNULL(@HoleNum,0) AS NVARCHAR(10)) + , @ScTec = 0 + , @KgTeo = 0 + , @NumSMED = 0 + , @RawMat = ql.RawMat + , @BatchQty = ql.BatchQty + , @ItemDescr = i.ItemDescr + , @CodifProfilo = i.Class01 + , @ClasseMerc = i.Class02 + , @CodClientAssoc = i.Class03 + + FROM dbo.QuoteList ql + INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + + -- provo a caricare dati produzione da KeyAMIL + CodDiesGroup + SELECT TOP 1 @ScTec = ISNULL(ScTec, 0) + , @KgTeo = ISNULL(KgTeo, 0) + , @NumSMED = ISNULL(NumSMED, 0) + -- 2014.08.22 - TOLTO NON deve usare la teorica... + --, @ProdTeo = ISNULL(ProdTeo, 0) -- VERIFICARE!!! NON DOVREBBE FARLO... ha già calcolato + FROM dbo.TabProdSc + WHERE KeyAMIL = @KeyAMIL + AND CodDiesGroup = @CodDiesGroup - -- ================================================================================= - -- carico dati package generali - -- ================================================================================= + -- ================================================================================= + -- carico dati package generali + -- ================================================================================= - SELECT @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, @NumImb = NumImb, @PDurata = Durata - , @PLiv = 'Package', @PLivDett= CodPackag - FROM dbo.Package2 WHERE CodPackag = @CodPackag + SELECT @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, @NumImb = NumImb, @PDurata = Durata + , @PLiv = 'Package', @PLivDett= CodPackag + FROM dbo.Package2 WHERE CodPackag = @CodPackag - --SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, - -- @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet - --FROM f_getDataCodPackag ( @CodItem, @CodClient) + --SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, + -- @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet + --FROM f_getDataCodPackag ( @CodItem, @CodClient) + END + + -- e aggiorno il CodPackage in QuoteRM + UPDATE dbo.QuoteRM + SET CodPackag = ISNULL(@CodPackag,'') + FROM dbo.QuoteRM + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr ) + , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo ) + , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc ) + , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc ) + + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName + FROM dbo.ClientDet + WHERE ClientDet.CodClient = @CodClientAssoc + + -- INFORMAZIONI su MATRICE + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', ISNULL(@CodDiesGroup, '') ) + + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', ISNULL(@strTemp, '') ) + + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', CASE WHEN ISNULL(@strTemp,'') = '' THEN 1 ELSE @strTemp END ) + + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', ISNULL(@strTemp, 1) ) + + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem + + ------------------------------------------------------------------------------------------------------------ + -- 2014.09.10 faccio MODIFICA x contare matrici esauste da articolo SE disponibili... + -- + SELECT @NumDiesExaust = COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem AND Active = 0 + + -- se zero ricalcolo x gruppo e salvo... + IF(@NumDiesExaust = 0) + BEGIN + SELECT @NumDiesExaust = COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 END - -- e aggiorno il CodPackage in QuoteRM - UPDATE dbo.QuoteRM - SET CodPackag = ISNULL(@CodPackag,'') - FROM dbo.QuoteRM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust' , @NumDiesExaust) + + --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies) + --FROM dbo.DiesDet + --WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 + -- + -- FINE modifica 2014.09.10 + ------------------------------------------------------------------------------------------------------------ - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr ) - , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo ) - , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc ) - , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc ) + + -- fix valori null!! + SET @CodPlant = ISNULL(@CodPlant, '') + SET @KeyAM = ISNULL(@KeyAM, '') + SET @KeyAMIL = ISNULL(@KeyAMIL, '') + SET @NumSMED = ISNULL(@NumSMED, 0) + SET @BatchQty = ISNULL(@BatchQty, 0) + SET @KgTeo = ISNULL(@KgTeo, 0) + SET @RawMat = ISNULL(@RawMat, '') + SET @ProdTeo = ISNULL(@ProdTeo, 0) + SET @ProdTeoImb = ISNULL(@ProdTeoImb, 0) + SET @ScTec = ISNULL(@ScTec, 0) + + -- inserisco parametri calcolati x lavorazione estrusione + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant' , @CodPlant) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM' , @KeyAM) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL' , @KeyAMIL) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED' , CONVERT(NVARCHAR(100) , @NumSMED)) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo' , CONVERT(NVARCHAR(100) , @KgTeo)) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName - FROM dbo.ClientDet - WHERE ClientDet.CodClient = @CodClientAssoc - - -- INFORMAZIONI su MATRICE - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', ISNULL(@CodDiesGroup, '') ) + -- ----------------------------------------- + ---- inserisco lavorazione estrusione! + -- ----------------------------------------- + -- *** verifica errori *** + SELECT @errorScore = @errorScore + CASE WHEN @ProdTeo = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN @ProdTeo = 0 THEN 0 ELSE @valid END - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', ISNULL(@strTemp, '') ) + INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR, valid) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec, @valid - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', CASE WHEN ISNULL(@strTemp,'') = '' THEN 1 ELSE @strTemp END ) - - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', ISNULL(@strTemp, 1) ) + INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', ISNULL(SUM(KgTeo),0) + FROM dbo.QuoteList ql + INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + + -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione! + UPDATE #QuoteWorkInt + SET MSR = rmd.CSR + FROM #QuoteWorkInt qwi + INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies) - FROM dbo.DiesDet - WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem + IF (@QuoteType IN ('Q', 'R', 'C' ) ) -- Quotation, Reddittivity, Cost List + BEGIN + -- calcolo i costi legati alla fase estrusione! + UPDATE #QuoteWorkInt + SET FC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END + , VC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END + , OH4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END + , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END + , valid = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE qwi.valid END -- attenzione che è già impostato sopra + FROM #QuoteWorkInt qwi + INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '01' + END - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies) - FROM dbo.DiesDet - WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 - - -- fix valori null!! - SET @CodPlant = ISNULL(@CodPlant, '') - SET @KeyAM = ISNULL(@KeyAM, '') - SET @KeyAMIL = ISNULL(@KeyAMIL, '') - SET @NumSMED = ISNULL(@NumSMED, 0) - SET @BatchQty = ISNULL(@BatchQty, 0) - SET @KgTeo = ISNULL(@KgTeo, 0) - SET @RawMat = ISNULL(@RawMat, '') - SET @ProdTeo = ISNULL(@ProdTeo, 0) - SET @ScTec = ISNULL(@ScTec, 0) + -- 2014.10.12 modifica x gestione del caso SIM come produttività da impiegare x calcoli + ELSE IF (@QuoteType = 'S' ) + BEGIN - -- inserisco parametri calcolati x lavorazione estrusione - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant' , @CodPlant) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM' , @KeyAM) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL' , @KeyAMIL) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED' , CONVERT(NVARCHAR(100) , @NumSMED)) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo' , CONVERT(NVARCHAR(100) , @KgTeo)) + -- calcolo i costi legati alla fase estrusione! + UPDATE #QuoteWorkInt + SET FC4UG = CASE WHEN @NetProd01_sim = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / @NetProd01_sim END + , VC4UG = CASE WHEN @NetProd01_sim = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / @NetProd01_sim END + , OH4UG = CASE WHEN @NetProd01_sim = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / @NetProd01_sim END + , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END + , valid = CASE WHEN @NetProd01_sim = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE qwi.valid END -- attenzione che è già impostato sopra + FROM #QuoteWorkInt qwi + INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '01' + END - -- ----------------------------------------- - ---- inserisco lavorazione estrusione! - -- ----------------------------------------- - -- *** verifica errori *** - SELECT @errorScore = @errorScore + CASE WHEN @ProdTeo = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN @ProdTeo = 0 THEN 0 ELSE @valid END + -- *** verifica errori *** + SELECT @errorScore = @errorScore + CASE WHEN valid = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN valid = 0 THEN 0 ELSE @valid END + FROM #QuoteWorkInt qwi + --INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + --INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '01' - INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR, valid) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec, @valid + -- inserisco lavorazione incestatura! + INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) + SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat + + -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN + UPDATE #QuoteWorkInt + SET DSR = CASE td.TotIN WHEN 0 THEN -99 ELSE 1 - CAST(td.TotOUT AS DECIMAL(18,6)) / CAST(td.TotIN AS DECIMAL(18,6)) END , + valid = CASE td.TotIN WHEN 0 THEN 0 ELSE 1 END + FROM #QuoteWorkInt qwi + INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '02' -- solo incestatura - INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', ISNULL(SUM(KgTeo),0) - FROM dbo.QuoteList ql - INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - - -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione! - UPDATE #QuoteWorkInt - SET MSR = rmd.CSR - FROM #QuoteWorkInt qwi - INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat - - -- calcolo i costi legati alla fase estrusione! - UPDATE #QuoteWorkInt - SET FC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END - , VC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END - , OH4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd END - , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END - , valid = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE qwi.valid END -- attenzione che è già impostato sopra - FROM #QuoteWorkInt qwi - INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.ProcessNum = '01' - - -- *** verifica errori *** - SELECT @errorScore = @errorScore + CASE WHEN valid = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN valid = 0 THEN 0 ELSE @valid END - FROM #QuoteWorkInt qwi - --INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - --INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.ProcessNum = '01' - - -- inserisco lavorazione incestatura! - INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) - SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat - - -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN - UPDATE #QuoteWorkInt - SET DSR = CASE td.TotIN WHEN 0 THEN -99 ELSE 1 - CAST(td.TotOUT AS DECIMAL(18,6)) / CAST(td.TotIN AS DECIMAL(18,6)) END , - valid = CASE td.TotIN WHEN 0 THEN 0 ELSE 1 END - FROM #QuoteWorkInt qwi - INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '02' -- solo incestatura - - -- *** verifica errori *** - SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END - FROM #QuoteWorkInt qwi + -- *** verifica errori *** + SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END + FROM #QuoteWorkInt qwi -- INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '02' -- solo incestatura - - -- inserisco lavorazione FORNO! - INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) - SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat - - -- inserisco lavorazione imballo! - INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI + WHERE qwi.ProcessNum = '02' -- solo incestatura + + -- inserisco lavorazione FORNO! + INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) + SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat + + -- inserisco lavorazione imballo! + INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI - UPDATE qwi - SET NetProd = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END, - valid = CASE WHEN @PDurata = 0 OR @PTotQta = 0 THEN 0 ELSE 1 END -- @PTotQta non può essere mai = 0 - FROM #QuoteWorkInt AS qwi --- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- *** controllo errori - SELECT @errorScore = @errorScore + CASE WHEN @PDurata = 0 OR @PTotQta = 0 OR @PWeight = 0 THEN 1 ELSE 0 END, -- verificare @PWeight -> dove salvo l'errore? - @valid = CASE WHEN @PDurata = 0 OR @PTotQta = 0 OR @PWeight = 0 THEN 0 ELSE @valid END - - -- parametro num imballatori - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb - - -- parametro Livello search package/imballo - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv - - -- parametro Livello search package/imballo - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett - - -- calcolo i costi legati alla fase di imballo! - UPDATE #QuoteWorkInt - SET FC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END - , VC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END - , OH4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END - , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END - , valid = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE 1 END - FROM #QuoteWorkInt qwi - INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- *** verifica errori *** - SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END - FROM #QuoteWorkInt qwi - --INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - --INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- inserisco dati mancanti di DSR x imballo come 1 - OUT/IN - UPDATE #QuoteWorkInt - SET DSR = 1 - ( CASE WHEN CAST(td.TotIN AS DECIMAL(18,6)) = 0 THEN 1 ELSE CAST(td.TotOUT AS DECIMAL(18,6)) / CAST(td.TotIN AS DECIMAL(18,6)) END ) , - valid = CASE WHEN td.TotIN = 0 THEN 0 ELSE 1 END - FROM #QuoteWorkInt qwi - INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- *** verifica errori *** - SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END - FROM #QuoteWorkInt qwi - --INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- recupero le MAC fase 01 - SELECT @MAC_SC = MCR - ,@MAC_ST = WCR - FROM #QuoteWorkInt - WHERE ProcessNum = '01' - - -- recupero le MAC fase 02 - SELECT @MAC_IN = DCR - FROM #QuoteWorkInt - WHERE ProcessNum = '02' - - -- recupero le MAC fase 04 - SELECT @MAC_IM = DCR - FROM #QuoteWorkInt - WHERE ProcessNum = '04' - - -- calcolo percentuale vendita rottame - SELECT @SSR = SSR - FROM dbo.RawMatDet - WHERE RawMat = @RawMat - - - -- NOTA : la transazione posso probabilmente iniziarla qui visto che è il - -- primo Update/insert/delete su tabelle non temporanee delete a parte - IF (@QuoteType = 'S') + -- 2014.08.22 inserito passaggio di calcolo produttività simulata imballo a seconda caso 'S' o caso standard... + DECLARE @valid04 BIT = 0 + IF (@QuoteType <> 'S') BEGIN - -- recupero i 3 scarti... - DECLARE @WSR01_sim DECIMAL(18,6) = 0 - DECLARE @MSR01_sim DECIMAL(18,6) = 0 - DECLARE @DSR_sim DECIMAL(18,6) = 0 - - -- recupero parametri da SIM iniziali...... - ;WITH myCTE2 as - ( - -- Pivot table - SELECT WSR01_sim, MSR01_sim, DSR_sim - FROM - (SELECT NomePar, ValPar - FROM dbo.QuoteSimPar - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - ) AS SourceTable - PIVOT - ( MIN(ValPar) - FOR NomePar IN - ( - WSR01_sim, MSR01_sim, DSR_sim - ) - ) AS PivotTable - ) - - SELECT @MAC_ST_sim = 1 / (1 - CONVERT(DECIMAL(18,6), WSR01_sim)), - @MAC_SC_sim = 1 / (1 - CONVERT(DECIMAL(18,6), MSR01_sim)), - @MAC_IN_sim = 1, - @MAC_IM_sim = 1 / (1 - CONVERT(DECIMAL(18,6), DSR_sim)) - FROM myCTE2 - - -- salvo la messa a cento da simulazione in variabile - SET @FCR_sim = CASE WHEN ( @MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * @MAC_IM_sim ) = 0 - THEN 1 - ELSE ( @MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * @MAC_IM_sim ) - END - - -- salvo in tabella! - UPDATE dbo.QuoteRM - SET FCR = ISNULL(@FCR_sim,1) - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND RawMat = @RawMat + SELECT @ProdTeoImb = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END, + @valid04 = CASE WHEN @PDurata = 0 OR @PTotQta = 0 THEN 0 ELSE 1 END -- @PTotQta non può essere mai = 0 END - ELSE - BEGIN - -- update rese RawMat! - UPDATE dbo.QuoteRM - SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND RawMat = @RawMat + ELSE + BEGIN + SELECT @ProdTeoImb = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END, + @valid04 = 1 END - -- inserisco i costi delle utilities in QuoteOC - - -- inserisco altri costi x lavorazione estrusione! GAS ed EE - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, ISNULL(UnitCost * @BatchQty, 0), 1 - FROM dbo.Utilities - WHERE CodPlant = @CodPlant - -- *** controllo errori - se non trovo costi GAS ed EE segnalo errore - IF @@ROWCOUNT = 0 - SET @validStep = 0; - ELSE - SET @validStep = 1; + UPDATE qwi + SET NetProd = @ProdTeoImb, + valid = @valid04 + FROM #QuoteWorkInt AS qwi +-- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA + WHERE qwi.ProcessNum = '04' -- solo imballo - SELECT @errorScore = @errorScore + CASE WHEN @validStep = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN @validStep = 0 THEN 0 ELSE @valid END - - /************************************************************* - * MATRICE - * - * calcolo prezzo e durata matrice con procedura a 5 step... - * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup - * B) EOLLife x media ponderata su DiesDet dove Active = 0 e vita cmq superiore 5000 KG ( escludendo rotture accidentali ) - * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup - * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup - * E) Calcolo Price / Life - * - *************************************************************/ + -- *** controllo errori + SELECT @errorScore = @errorScore + CASE WHEN @PDurata = 0 OR @PTotQta = 0 OR @PWeight = 0 THEN 1 ELSE 0 END, -- verificare @PWeight -> dove salvo l'errore? + @valid = CASE WHEN @PDurata = 0 OR @PTotQta = 0 OR @PWeight = 0 THEN 0 ELSE @valid END + + -- parametro num imballatori + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb + + -- parametro Livello search package/imballo + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv + + -- parametro Livello search package/imballo + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett + + -- calcolo i costi legati alla fase di imballo! + IF (@QuoteType IN ('Q', 'R', 'C' ) ) -- Quotation, Reddittivity, Cost List + BEGIN + UPDATE #QuoteWorkInt + SET FC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END + , VC4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END + , OH4UG = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd END + , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END + , valid = CASE WHEN qwi.NetProd = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE 1 END + FROM #QuoteWorkInt qwi + INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '04' -- solo imballo + END + ELSE IF (@QuoteType = 'S') + BEGIN + UPDATE #QuoteWorkInt + SET FC4UG = CASE WHEN @NetProd04_sim = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / @NetProd04_sim END + , VC4UG = CASE WHEN @NetProd04_sim = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / @NetProd04_sim END + , OH4UG = CASE WHEN @NetProd04_sim = 0 OR cp.QuotaManStd = 0 THEN -99 ELSE ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / @NetProd04_sim END + , SC4UG = CASE WHEN ql.BatchQty = 0 THEN -99 ELSE cp.SC / ql.BatchQty END + , valid = CASE WHEN @NetProd04_sim = 0 OR cp.QuotaManStd = 0 OR ql.BatchQty = 0 THEN 0 ELSE 1 END + FROM #QuoteWorkInt qwi + INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '04' -- solo imballo + END + + -- *** verifica errori *** + SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END + FROM #QuoteWorkInt qwi + --INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + --INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '04' -- solo imballo + + -- inserisco dati mancanti di DSR x imballo come 1 - OUT/IN + UPDATE #QuoteWorkInt + SET DSR = 1 - ( CASE WHEN CAST(td.TotIN AS DECIMAL(18,6)) = 0 THEN 1 ELSE CAST(td.TotOUT AS DECIMAL(18,6)) / CAST(td.TotIN AS DECIMAL(18,6)) END ) , + valid = CASE WHEN td.TotIN = 0 THEN 0 ELSE 1 END + FROM #QuoteWorkInt qwi + INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '04' -- solo imballo + + -- *** verifica errori *** + SELECT @errorScore = @errorScore + CASE WHEN qwi.valid = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN qwi.valid = 0 THEN 0 ELSE @valid END + FROM #QuoteWorkInt qwi + --INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '04' -- solo imballo + + -- recupero le MAC fase 01 + SELECT @MAC_SC = MCR + ,@MAC_ST = WCR + FROM #QuoteWorkInt + WHERE ProcessNum = '01' + + -- recupero le MAC fase 02 + SELECT @MAC_IN = DCR + FROM #QuoteWorkInt + WHERE ProcessNum = '02' + + -- recupero le MAC fase 04 + SELECT @MAC_IM = DCR + FROM #QuoteWorkInt + WHERE ProcessNum = '04' + + -- calcolo percentuale vendita rottame + SELECT @SSR = SSR + FROM dbo.RawMatDet + WHERE RawMat = @RawMat + + + -- NOTA : la transazione posso probabilmente iniziarla qui visto che è il + -- primo Update/insert/delete su tabelle non temporanee delete a parte + IF (@QuoteType = 'S') + BEGIN + -- recupero i 3 scarti... + DECLARE @WSR01_sim DECIMAL(18,6) = 0 + DECLARE @MSR01_sim DECIMAL(18,6) = 0 + DECLARE @DSR_sim DECIMAL(18,6) = 0 + + -- recupero parametri da SIM iniziali...... + ;WITH myCTE2 as + ( + -- Pivot table + SELECT WSR01_sim, MSR01_sim, DSR_sim + FROM + (SELECT NomePar, ValPar + FROM dbo.QuoteSimPar + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + ) AS SourceTable + PIVOT + ( MIN(ValPar) + FOR NomePar IN + ( + WSR01_sim, MSR01_sim, DSR_sim + ) + ) AS PivotTable + ) + + SELECT @MAC_ST_sim = 1 / (1 - CONVERT(DECIMAL(18,6), WSR01_sim)), + @MAC_SC_sim = 1 / (1 - CONVERT(DECIMAL(18,6), MSR01_sim)), + @MAC_IN_sim = 1, + @MAC_IM_sim = 1 / (1 - CONVERT(DECIMAL(18,6), DSR_sim)) + FROM myCTE2 + + -- salvo la messa a cento da simulazione in variabile + SET @FCR_sim = CASE WHEN ( @MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * @MAC_IM_sim ) = 0 + THEN 1 + ELSE ( @MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * @MAC_IM_sim ) + END + + -- salvo in tabella! + UPDATE dbo.QuoteRM + SET FCR = ISNULL(@FCR_sim,1) + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND RawMat = @RawMat + END + ELSE + BEGIN + -- update rese RawMat! + UPDATE dbo.QuoteRM + SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND RawMat = @RawMat + END + -- inserisco i costi delle utilities in QuoteOC + + -- inserisco altri costi x lavorazione estrusione! GAS ed EE + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, ISNULL(UnitCost * @BatchQty, 0), 1 + FROM dbo.Utilities + WHERE CodPlant = @CodPlant + + -- *** controllo errori - se non trovo costi GAS ed EE segnalo errore + IF @@ROWCOUNT = 0 + SET @validStep = 0; + ELSE + SET @validStep = 1; + + SELECT @errorScore = @errorScore + CASE WHEN @validStep = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN @validStep = 0 THEN 0 ELSE @valid END + + /************************************************************* + * MATRICE + * + * calcolo prezzo e durata matrice con procedura a 5 step... + * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup + * B) EOLLife x media ponderata su DiesDet dove Active = 0 e vita cmq superiore 5000 KG ( escludendo rotture accidentali ) + * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup + * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup + * E) Calcolo Price / Life + * + *************************************************************/ -- se sono in simulazione leggo tutto direttamente da tab dbo.DiesGroupDet IF (@QuoteType = 'S') @@ -654,14 +770,14 @@ BEGIN @DiesExpLife = ExpLife, @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END, @DiesByClass = 1 -- imposto come calcolata matrice da gruppo - FROM DiesGroupDet + FROM dbo.DiesGroupDet WHERE CodDiesGroup = @CodDiesGroup END ELSE BEGIN - -- (A) da DiesDet + -- (A) da DiesDet SELECT @DiesPrice = CASE WHEN SUM(ISNULL(ActLife, 1)) <> 0 THEN SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) END, @DiesExpLife = CASE WHEN SUM(ISNULL(ActLife, 1)) <> 0 THEN SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) END FROM dbo.DiesDet @@ -674,7 +790,7 @@ BEGIN FROM dbo.DiesDet WHERE CodItem = @CodItem AND CodDiesGroup = @CodDiesGroup - AND Active = 0 -- solo matrici rottamate + AND Active = 0 -- solo matrici rottamate AND ActLife > 5000 -- solo se hanno Life > 5000 Kg ( non rotture accidentali ) GROUP BY CodItem, CodDiesGroup END @@ -683,7 +799,7 @@ BEGIN SET @DiesPrice = ISNULL(@DiesPrice,0) SET @DiesExpLife = ISNULL(@DiesExpLife,0) SET @DiesEOLife = ISNULL(@DiesEOLife,0) - SET @validStep = 1 + SET @validStep = 1 -- (C) verifico se prezzo è OK... IF (@DiesPrice = 0) @@ -693,7 +809,7 @@ BEGIN FROM dbo.DiesGroupDet WHERE CodDiesGroup = @CodDiesGroup END - + -- (D) verifico se vita è OK... IF (@DiesEOLife = 0) BEGIN @@ -705,292 +821,292 @@ BEGIN IF (@DiesEOLife = 0) BEGIN SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END, - @DiesByClass = 1 -- imposto come calcolata matrice da gruppo + @DiesByClass = 1 -- imposto come calcolata matrice da gruppo FROM dbo.DiesGroupDet WHERE CodDiesGroup = @CodDiesGroup END - -- controllo che non sia nulla/vuota la durata... - IF ( @DiesEOLife > 0 AND @DiesPrice > 0 ) - BEGIN - -- (E) Calcolo price/life! - SET @DiesPriceLife = @DiesPrice / @DiesEOLife - END - ELSE - BEGIN - SET @DiesPriceLife = 0 -- metto a zero il DiesPriceLife - SET @validStep = 0 -- indico che valore non è valido ( ND excel ) - END - - -- se è una simulazione uso cmq i valori caricati e non calcolati - IF (@QuoteType = 'S') - BEGIN - -- recupero i costi matrice da simulazione - DECLARE @DiesPrice_sim DECIMAL(9,3) = 0 - DECLARE @DiesCommLife DECIMAL(9,2) = 0 -- questa mi serve dopo? - DECLARE @DiesTecLife DECIMAL(9,2) = 0 + -- controllo che non sia nulla/vuota la durata... + IF ( @DiesEOLife > 0 AND @DiesPrice > 0 ) + BEGIN + -- (E) Calcolo price/life! + SET @DiesPriceLife = @DiesPrice / @DiesEOLife + END + ELSE + BEGIN + SET @DiesPriceLife = 0 -- metto a zero il DiesPriceLife + SET @validStep = 0 -- indico che valore non è valido ( ND excel ) + END + + -- se è una simulazione uso cmq i valori caricati e non calcolati + IF (@QuoteType = 'S') + BEGIN + -- recupero i costi matrice da simulazione + DECLARE @DiesPrice_sim DECIMAL(9,3) = 0 + DECLARE @DiesCommLife DECIMAL(9,2) = 0 -- questa mi serve dopo? + DECLARE @DiesTecLife DECIMAL(9,2) = 0 - ;WITH myCTE2 as - ( -- Pivot table - SELECT DiesPrice_sim, DiesCommLife, DiesTecLife - FROM - ( SELECT NomePar, ValPar - FROM dbo.QuoteSimPar - WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - ) AS SourceTable - PIVOT ( MIN(ValPar) FOR NomePar IN ( DiesPrice_sim, DiesCommLife, DiesTecLife ) - ) AS PivotTable - ) - SELECT @DiesPrice_sim = DiesPrice_sim, - @DiesCommLife = DiesCommLife, - @DiesTecLife = DiesTecLife - FROM myCTE2 - - IF ( ISNULL(@DiesPrice_sim,0) = 0 OR ISNULL(@DiesTecLife,0) = 0 ) - BEGIN - SET @DiesPriceLife = 0 - SET @validStep = 0 - END - ELSE - BEGIN - SET @DiesPriceLife = @DiesPrice_sim / @DiesTecLife - SET @validStep = 1 -- potrebbe essere stato messo = 0 da Quote non di simulazione - END - END + ;WITH myCTE2 as + ( -- Pivot table + SELECT DiesPrice_sim, DiesCommLife, DiesTecLife + FROM + ( SELECT NomePar, ValPar + FROM dbo.QuoteSimPar + WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + ) AS SourceTable + PIVOT ( MIN(ValPar) FOR NomePar IN ( DiesPrice_sim, DiesCommLife, DiesTecLife ) + ) AS PivotTable + ) + SELECT @DiesPrice_sim = DiesPrice_sim, + @DiesCommLife = DiesCommLife, + @DiesTecLife = DiesTecLife + FROM myCTE2 + + IF ( ISNULL(@DiesPrice_sim,0) = 0 OR ISNULL(@DiesTecLife,0) = 0 ) + BEGIN + SET @DiesPriceLife = 0 + SET @validStep = 0 + END + ELSE + BEGIN + SET @DiesPriceLife = @DiesPrice_sim / @DiesTecLife + SET @validStep = 1 -- potrebbe essere stato messo = 0 da Quote non di simulazione + END + END - -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...) - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, ISNULL(@DiesPriceLife * @BatchQty, 0), 1, @validStep + -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...) + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, ISNULL(@DiesPriceLife * @BatchQty, 0), 1, @validStep - -- *** controllo errori - SELECT @errorScore = @errorScore + CASE WHEN @validStep = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN @validStep = 0 THEN 0 ELSE @valid END + -- *** controllo errori + SELECT @errorScore = @errorScore + CASE WHEN @validStep = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN @validStep = 0 THEN 0 ELSE @valid END - -- inserisco parametri calcolati x matrice - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', CONVERT(NVARCHAR(100), @DiesPrice) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', CONVERT(NVARCHAR(100), @DiesExpLife) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', CONVERT(NVARCHAR(100), @DiesEOLife) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesByClass', CONVERT(NVARCHAR(100), ISNULL(@DiesByClass,0)) ) + -- inserisco parametri calcolati x matrice + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', CONVERT(NVARCHAR(100), @DiesPrice) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', CONVERT(NVARCHAR(100), @DiesExpLife) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', CONVERT(NVARCHAR(100), @DiesEOLife) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesByClass', CONVERT(NVARCHAR(100), ISNULL(@DiesByClass,0)) ) - /************************************************************* - * VENDITA ROTTAME - * - * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04 - * - calcolo costi variabili fase 01 / 04 - * - calcolo costo di vendita x fase 01 / 04 - *************************************************************/ + /************************************************************* + * VENDITA ROTTAME + * + * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04 + * - calcolo costi variabili fase 01 / 04 + * - calcolo costo di vendita x fase 01 / 04 + *************************************************************/ - SELECT @OCF01 = SUM(ISNULL(C4UG,0)) - FROM #QuoteOC - - SELECT @VCF01 = @OCF01 + VC4UG - FROM #QuoteWorkInt - WHERE ProcessNum = '01' - - SELECT @VCF04 = @OCF01 + SUM(VC4UG) - FROM #QuoteWorkInt - - SELECT @SellCostF01 = CASE WHEN @QuoteType = 'S' THEN ((@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim) - 1) ELSE ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) END - * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) - -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01) - , @RefCostF01 = -- ( (A - B) / 100 - C ) - ( - -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) - ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * - CASE WHEN @QuoteType = 'S' THEN (@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * 100) ELSE (@MAC_ST * @MAC_SC * @MAC_IN * 100) END - ) - -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) - - CASE WHEN @QuoteType = 'S' THEN ((@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * 100) - 100) ELSE ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) END - * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost) - ) / 100 -- divido per 100 finale - -- (C) = sottraggo costo pieno alluminio - - (q.RawMatCost + q.RawMatExtraCost + @VCF01) - FROM dbo.RawMatDet rmd - INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - AND q.RawMat = @RawMat - - SELECT @SellCostF04 = CASE WHEN @QuoteType = 'S' THEN ((@MAC_IM_sim) - 1) ELSE ((@MAC_IM) - 1) END - * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) - -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01 e fase 04) - , @RefCostF04 = -- ( (A - B) / 100 - C ) - ( - -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI) - ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * - CASE WHEN @QuoteType = 'S' THEN (@MAC_IM_sim * 100) ELSE (@MAC_IM * 100) END - ) - -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) - - CASE WHEN @QuoteType = 'S' THEN ((@MAC_IM_sim * 100) - 100) ELSE ((@MAC_IM * 100) - 100) END - * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost) - ) / 100 -- divido per 100 finale - -- (C) = sottraggo costo pieno alluminio - - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) + SELECT @OCF01 = SUM(ISNULL(C4UG,0)) + FROM #QuoteOC + + SELECT @VCF01 = @OCF01 + VC4UG + FROM #QuoteWorkInt + WHERE ProcessNum = '01' + + SELECT @VCF04 = @OCF01 + SUM(VC4UG) + FROM #QuoteWorkInt + + SELECT @SellCostF01 = CASE WHEN @QuoteType = 'S' THEN ((@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim) - 1) ELSE ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) END + * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) + -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01) + , @RefCostF01 = -- ( (A - B) / 100 - C ) + ( + -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) + ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * + CASE WHEN @QuoteType = 'S' THEN (@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * 100) ELSE (@MAC_ST * @MAC_SC * @MAC_IN * 100) END + ) + -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) + - CASE WHEN @QuoteType = 'S' THEN ((@MAC_ST_sim * @MAC_SC_sim * @MAC_IN_sim * 100) - 100) ELSE ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) END + * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost) + ) / 100 -- divido per 100 finale + -- (C) = sottraggo costo pieno alluminio + - (q.RawMatCost + q.RawMatExtraCost + @VCF01) + FROM dbo.RawMatDet rmd + INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + AND q.RawMat = @RawMat + + SELECT @SellCostF04 = CASE WHEN @QuoteType = 'S' THEN ((@MAC_IM_sim) - 1) ELSE ((@MAC_IM) - 1) END + * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) + -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01 e fase 04) + , @RefCostF04 = -- ( (A - B) / 100 - C ) + ( + -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI) + ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * + CASE WHEN @QuoteType = 'S' THEN (@MAC_IM_sim * 100) ELSE (@MAC_IM * 100) END + ) + -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) + - CASE WHEN @QuoteType = 'S' THEN ((@MAC_IM_sim * 100) - 100) ELSE ((@MAC_IM * 100) - 100) END + * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost) + ) / 100 -- divido per 100 finale + -- (C) = sottraggo costo pieno alluminio + - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) - -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM... + -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM... - FROM dbo.RawMatDet rmd - INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - AND q.RawMat = @RawMat - - -- inserisco costi per VENDITA - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, ISNULL(@SellCostF01 * @BatchQty, 0), @SSR ) - -- inserisco costi per ROTTAME - ,( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, ISNULL(@RefCostF01 * @BatchQty, 0), 1 - @SSR ) - -- inserisco costi per VENDITA - ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, ISNULL(@SellCostF04 * @BatchQty, 0), @SSR ) - -- inserisco costi per ROTTAME - ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, ISNULL(@RefCostF04 * @BatchQty, 0), 1 - @SSR ) - - -- calcolo Package Cost e RMWeight da tab PackageDet - -- EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT - -- stored sostituita perchè la maggior parte dei calcoli li ho già fatti - SELECT @PCost = CASE @PWeight WHEN 0 THEN 0 ELSE RMCost / @PWeight END - , @PRMWeight = RMWeight - , @PkgDesc = PackagDesc - , @PTareStRatio = CASE @PWeight WHEN 0 THEN 0 ELSE ( RMWeight - @PTare) / @PWeight END - FROM dbo.PackagDet - WHERE CodPackag = @CodPackag + FROM dbo.RawMatDet rmd + INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + AND q.RawMat = @RawMat + + -- inserisco costi per VENDITA + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, ISNULL(@SellCostF01 * @BatchQty, 0), @SSR ) + -- inserisco costi per ROTTAME + ,( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, ISNULL(@RefCostF01 * @BatchQty, 0), 1 - @SSR ) + -- inserisco costi per VENDITA + ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, ISNULL(@SellCostF04 * @BatchQty, 0), @SSR ) + -- inserisco costi per ROTTAME + ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, ISNULL(@RefCostF04 * @BatchQty, 0), 1 - @SSR ) + + -- calcolo Package Cost e RMWeight da tab PackageDet + -- EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT + -- stored sostituita perchè la maggior parte dei calcoli li ho già fatti + SELECT @PCost = CASE @PWeight WHEN 0 THEN 0 ELSE RMCost / @PWeight END + , @PRMWeight = RMWeight + , @PkgDesc = PackagDesc + , @PTareStRatio = CASE @PWeight WHEN 0 THEN 0 ELSE ( RMWeight - @PTare) / @PWeight END + FROM dbo.PackagDet + WHERE CodPackag = @CodPackag - -- inserisco costi per IMBALLO - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, ISNULL(@PCost * @BatchQty, 0), 1, CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 0 ELSE 1 END - - -- *** controllo errori - costo imballo non può essere = 0 - SELECT @errorScore = @errorScore + CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 0 ELSE @valid END + -- inserisco costi per IMBALLO + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, ISNULL(@PCost * @BatchQty, 0), 1, CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 0 ELSE 1 END + + -- *** controllo errori - costo imballo non può essere = 0 + SELECT @errorScore = @errorScore + CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN ISNULL(@PCost * @BatchQty, 0) = 0 THEN 0 ELSE @valid END - -- inserisco parametri calcolati x imballaggio - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', CONVERT(NVARCHAR(100), @PRMWeight ) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', CONVERT(NVARCHAR(100), @PWeight ) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', CONVERT(NVARCHAR(100), @PTare) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', CONVERT(NVARCHAR(100), @PTareStRatio ) ) - - - --------------------------------------------- - -- inserisco costi per TRASPORTI - --------------------------------------------- - -- recupero tipo di trasporto ( se ha costi o meno ) - SELECT @HasTC = i.HasTC - FROM dbo.QuoteList q - INNER JOIN dbo.Incoterms i ON q.CodInco = i.CodInco - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev + -- inserisco parametri calcolati x imballaggio + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', CONVERT(NVARCHAR(100), @PRMWeight ) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', CONVERT(NVARCHAR(100), @PWeight ) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', CONVERT(NVARCHAR(100), @PTare) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', CONVERT(NVARCHAR(100), @PTareStRatio ) ) + + + --------------------------------------------- + -- inserisco costi per TRASPORTI + --------------------------------------------- + -- recupero tipo di trasporto ( se ha costi o meno ) + SELECT @HasTC = i.HasTC + FROM dbo.QuoteList q + INNER JOIN dbo.Incoterms i ON q.CodInco = i.CodInco + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev - -- Se non trovo @HasTC setto i valori in modo che diano errore - IF @HasTC IS NULL - BEGIN - SET @HasTC = 1 - SET @TranspCost = 0 - END - ELSE - BEGIN - -- recupero zona da cliente... - SELECT @TranspZone = TranspZone - FROM dbo.ClientDet - WHERE CodClient = @CodClient + -- Se non trovo @HasTC setto i valori in modo che diano errore + IF @HasTC IS NULL + BEGIN + SET @HasTC = 1 + SET @TranspCost = 0 + END + ELSE + BEGIN + -- recupero zona da cliente... + SELECT @TranspZone = TranspZone + FROM dbo.ClientDet + WHERE CodClient = @CodClient - -- recupero costi trasporto - SELECT @TranspCost = TranspCost -- se non lo trova rimane a 0 - FROM dbo.TranspCostDet - WHERE TranspZone = @TranspZone - END + -- recupero costi trasporto + SELECT @TranspCost = TranspCost -- se non lo trova rimane a 0 + FROM dbo.TranspCostDet + WHERE TranspZone = @TranspZone + END - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, ISNULL(@HasTC * @TranspCost * @BatchQty, 0), 1 - , CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 0 ELSE 1 END + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, ISNULL(@HasTC * @TranspCost * @BatchQty, 0), 1 + , CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 0 ELSE 1 END - -- *** controllo errori - se previsti costi imballo allora devo avere il costo <> 0 - SELECT @errorScore = @errorScore + CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 0 ELSE @valid END + -- *** controllo errori - se previsti costi imballo allora devo avere il costo <> 0 + SELECT @errorScore = @errorScore + CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN @HasTC = 1 AND @TranspCost = 0 THEN 0 ELSE @valid END - - --------------------------------------------- - -- inserisco costi per PROVVIGIONI - --------------------------------------------- - IF @QuoteType = 'R' -- SOLO se R prima leggo dai dati caricati negli ordini - BEGIN - SELECT @Provvig = CONVERT(DECIMAL(9,6),ValPar) FROM dbo.QuoteSimPar - WHERE NomePar = 'ProvvCost' - AND QuoteType=@QuoteType AND CodQuote=@CodQuote AND QuoteRev=@QuoteRev - END + + --------------------------------------------- + -- inserisco costi per PROVVIGIONI + --------------------------------------------- + IF (@QuoteType = 'R') OR (@QuoteType = 'S') -- SOLO se R o S prima leggo dai dati caricati negli ordini + BEGIN + SELECT @Provvig = CONVERT(DECIMAL(9,6),ValPar) FROM dbo.QuoteSimPar + WHERE NomePar = 'ProvvCost' + AND QuoteType=@QuoteType AND CodQuote=@CodQuote AND QuoteRev=@QuoteRev + END - -- leggo da tabella agenti - IF ISNULL(@Provvig, 0) = 0 - BEGIN - SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0) - FROM dbo.AgentsDet a - INNER JOIN dbo.ClientDet c ON a.CodAg = c.CodAg - INNER JOIN dbo.QuoteList q ON q.CodClient = c.CodClient - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - END + -- leggo da tabella agenti + IF ISNULL(@Provvig, 0) = 0 + BEGIN + SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0) + FROM dbo.AgentsDet a + INNER JOIN dbo.ClientDet c ON a.CodAg = c.CodAg + INNER JOIN dbo.QuoteList q ON q.CodClient = c.CodClient + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + END - -- fix eventuali valori null - SET @Provvig = ISNULL(@Provvig, 0) + -- fix eventuali valori null + SET @Provvig = ISNULL(@Provvig, 0) - -- inserisco costi per PROVVIGIONI - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, ISNULL(@Provvig * @BatchQty, 0), 1 + -- inserisco costi per PROVVIGIONI + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, ISNULL(@Provvig * @BatchQty, 0), 1 - /* ================================================== - CARICO TABELLE EFFETTIVE - ==================================================*/ + /* ================================================== + CARICO TABELLE EFFETTIVE + ==================================================*/ - -- carico quote parametri! - INSERT dbo.QuoteParam - SELECT * FROM #QuoteParam + -- carico quote parametri! + INSERT dbo.QuoteParam + SELECT * FROM #QuoteParam - -- carico lavorazioni INTERNE! - INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi - SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05 - , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid - FROM #QuoteWorkInt + -- carico lavorazioni INTERNE! + INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi + SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05 + , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid + FROM #QuoteWorkInt - ---- *** verifica errori *** - SELECT DISTINCT @errorScore = @errorScore + CASE WHEN TotQty = 0 THEN 1 ELSE 0 END, - @valid = CASE WHEN TotQty = 0 THEN 0 ELSE @valid END - FROM #QuoteOC + ---- *** verifica errori *** + SELECT DISTINCT @errorScore = @errorScore + CASE WHEN TotQty = 0 THEN 1 ELSE 0 END, + @valid = CASE WHEN TotQty = 0 THEN 0 ELSE @valid END + FROM #QuoteOC - ---- carico OTHERCOSTS - INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi - SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02 - , Class03, Class04, Class05 - , CASE TotQty WHEN 0 THEN 1 ELSE TotQty END -- evito errore in campo calcolato se TotQty = 0 - , TotCost, Quota, valid - FROM #QuoteOC + ---- carico OTHERCOSTS + INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi + SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02 + , Class03, Class04, Class05 + , CASE TotQty WHEN 0 THEN 1 ELSE TotQty END -- evito errore in campo calcolato se TotQty = 0 + , TotCost, Quota, valid + FROM #QuoteOC - -- update valori di errore generale - UPDATE dbo.QuoteList - SET valid = @valid - , errorScore = @errorScore - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- update valori di errore generale + UPDATE dbo.QuoteList + SET valid = @valid + , errorScore = @errorScore + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - COMMIT TRAN; - - --SELECT COUNT(*) FROM #QuoteParam - --SELECT COUNT(*) FROM #QuoteWorkInt - --SELECT COUNT(*) FROM #QuoteOC + COMMIT TRAN; + + --SELECT COUNT(*) FROM #QuoteParam + --SELECT COUNT(*) FROM #QuoteWorkInt + --SELECT COUNT(*) FROM #QuoteOC - -- elimino temp table... NON serve nella stored - --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL - -- DROP TABLE #QuoteParam - --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL - -- DROP TABLE #QuoteWorkInt - --IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL - -- DROP TABLE #QuoteOC + -- elimino temp table... NON serve nella stored + --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL + -- DROP TABLE #QuoteParam + --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL + -- DROP TABLE #QuoteWorkInt + --IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL + -- DROP TABLE #QuoteOC END diff --git a/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql b/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql index f184fba..fa0b15e 100644 --- a/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql +++ b/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql @@ -20,7 +20,7 @@ BEGIN -- svuoto tabella... TRUNCATE TABLE TabDifett - -- riempio di nuovo valori! + -- riempio di nuovo valori! chiave AMI INSERT INTO TabDifett SELECT dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant as KeyAMI @@ -36,6 +36,24 @@ BEGIN GROUP BY dd.CodItem, pl.RawMat, pl.CodPlant, pl.ProcessNum ORDER BY dd.CodItem, pl.RawMat, pl.ProcessNum--, SUM(NumOUT) DESC + -- riempio di nuovo valori! chiave CMI + INSERT INTO TabDifett + SELECT + id.CodItemGroup + '-' + pl.RawMat + '-' + pl.CodPlant as KeyAMI + , pl.ProcessNum + , id.CodItemGroup, pl.RawMat, pl.CodPlant + , SUM(NumOUT) as TotOUT + , SUM(NumIN) as TotIn + FROM ProductionLog pl + INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies + INNER JOIN ItemDet id ON dd.CodItem = id.CodItem + WHERE pl.ProcessNum IN ('02', '04') + AND pl.okDi = 1 + -- and pl.EventType=1 + AND pl.EventStart BETWEEN @dateFrom AND @dateTo + GROUP BY id.CodItemGroup, pl.RawMat, pl.CodPlant, pl.ProcessNum + ORDER BY id.CodItemGroup, pl.RawMat, pl.ProcessNum--, SUM(NumOUT) DESC + -- salvo nuova revisione dati di produzione... INSERT INTO RevHistory SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fasi 02/03 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120) diff --git a/C2P_Project/dbo/Tables/dbo.ListValues.sql b/C2P_Project/dbo/Tables/dbo.ListValues.sql new file mode 100644 index 0000000..868698b --- /dev/null +++ b/C2P_Project/dbo/Tables/dbo.ListValues.sql @@ -0,0 +1,9 @@ +CREATE TABLE [dbo].[ListValues] ( + [TableName] NVARCHAR (50) NOT NULL, + [FieldName] NVARCHAR (50) NOT NULL, + [value] NVARCHAR (10) NOT NULL, + [label] NVARCHAR (50) NULL, + [ordinal] INT NULL, + CONSTRAINT [PK_ListValues] PRIMARY KEY CLUSTERED ([TableName] ASC, [FieldName] ASC, [value] ASC) +); + diff --git a/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql b/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql index 4a1f1ec..cecdd24 100644 --- a/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql +++ b/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql @@ -73,6 +73,7 @@ [MSR01_sim] DECIMAL (9, 8) CONSTRAINT [DF_QuoteFull_S_MSR01_avg] DEFAULT ((0)) NOT NULL, [MSR01] DECIMAL (9, 8) CONSTRAINT [DF_QuoteFull_S_MSR01] DEFAULT ((0)) NOT NULL, [NetProd01_sim] DECIMAL (9, 3) CONSTRAINT [DF_QuoteFull_S_NetProd01_avg] DEFAULT ((0)) NOT NULL, + [NetProd04_sim] DECIMAL (9, 3) CONSTRAINT [DF_QuoteFull_S_NetProd01_sim1] DEFAULT ((0)) NOT NULL, [NetProd01] DECIMAL (9, 3) CONSTRAINT [DF_QuoteFull_S_NetProd01] DEFAULT ((0)) NOT NULL, [FC4UG01] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_FC4UG01] DEFAULT ((0)) NOT NULL, [VC4UG01] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_VC4UG01] DEFAULT ((0)) NOT NULL, @@ -91,6 +92,8 @@ ); + + GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto medio AMI', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DSR'; @@ -166,3 +169,7 @@ EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo matri GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S'; + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'NetProd04_sim'; + diff --git a/C2P_Project/dbo/Views/dbo.v_MarginReport.sql b/C2P_Project/dbo/Views/dbo.v_MarginReport.sql index 18aec6f..4543cce 100644 --- a/C2P_Project/dbo/Views/dbo.v_MarginReport.sql +++ b/C2P_Project/dbo/Views/dbo.v_MarginReport.sql @@ -1,15 +1,13 @@ - - -CREATE VIEW [dbo].[v_MarginReport] +CREATE VIEW dbo.v_MarginReport AS SELECT Vers, CodClient, CodItem, RawMat, BatchQty, CodInco, KeyAM, CodDiesGroup, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, FVC + RawMatFullCost AS P_FVC, FC4UG01 + OH4UG01 AS CPS, FC4UG01 + OH4UG01 + FVC + RawMatFullCost AS P_CPS, FC4UG04 + FVC + RawMatFullCost AS P_FC4UG04, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost, - FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost, Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice, Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) - AS P_MinPrice, PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar, CASE WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0 THEN 0 ELSE (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04) - END AS FCShield, CASE WHEN PWeight = 0 THEN 0 ELSE (PRMWeight - PTare) * (PriceOff + RawMatFullCost) / PWeight END AS PckSur, valid, errorScore, OrdDate, OrdNum, OrdRow, OrdPrice, - PriceOff AS OrdTrasf, OrdQty AS OrdQty + FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost, Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice, Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + + RawMatFullCost AS P_MinPrice, PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar, CASE WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0 THEN 0 ELSE (PriceOff - FVC) + / (FC4UG01 + OH4UG01 + FC4UG04) END AS FCShield, CASE WHEN PWeight = 0 THEN 0 ELSE (PRMWeight - PTare) * (PriceOff + RawMatFullCost) / PWeight END AS PckSur, valid, errorScore, OrdDate, OrdNum, + OrdRow, OrdPrice, PriceOff AS OrdTrasf, OrdQty FROM dbo.QuoteFull_R GO EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReport'; diff --git a/C2P_Project/dbo/Views/dbo.v_selListVal.sql b/C2P_Project/dbo/Views/dbo.v_selListVal.sql new file mode 100644 index 0000000..0266bd9 --- /dev/null +++ b/C2P_Project/dbo/Views/dbo.v_selListVal.sql @@ -0,0 +1,129 @@ +CREATE VIEW dbo.v_selListVal +AS +SELECT TableName + '-' + FieldName + '-' + value AS value, label +FROM dbo.ListValues +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selListVal'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] +Begin DesignProperties = + Begin PaneConfigurations = + Begin PaneConfiguration = 0 + NumPanes = 4 + Configuration = "(H (1[40] 4[20] 2[20] 3) )" + End + Begin PaneConfiguration = 1 + NumPanes = 3 + Configuration = "(H (1 [50] 4 [25] 3))" + End + Begin PaneConfiguration = 2 + NumPanes = 3 + Configuration = "(H (1 [50] 2 [25] 3))" + End + Begin PaneConfiguration = 3 + NumPanes = 3 + Configuration = "(H (4 [30] 2 [40] 3))" + End + Begin PaneConfiguration = 4 + NumPanes = 2 + Configuration = "(H (1 [56] 3))" + End + Begin PaneConfiguration = 5 + NumPanes = 2 + Configuration = "(H (2 [66] 3))" + End + Begin PaneConfiguration = 6 + NumPanes = 2 + Configuration = "(H (4 [50] 3))" + End + Begin PaneConfiguration = 7 + NumPanes = 1 + Configuration = "(V (3))" + End + Begin PaneConfiguration = 8 + NumPanes = 3 + Configuration = "(H (1[56] 4[18] 2) )" + End + Begin PaneConfiguration = 9 + NumPanes = 2 + Configuration = "(H (1 [75] 4))" + End + Begin PaneConfiguration = 10 + NumPanes = 2 + Configuration = "(H (1[66] 2) )" + End + Begin PaneConfiguration = 11 + NumPanes = 2 + Configuration = "(H (4 [60] 2))" + End + Begin PaneConfiguration = 12 + NumPanes = 1 + Configuration = "(H (1) )" + End + Begin PaneConfiguration = 13 + NumPanes = 1 + Configuration = "(V (4))" + End + Begin PaneConfiguration = 14 + NumPanes = 1 + Configuration = "(V (2))" + End + ActivePaneConfig = 0 + End + Begin DiagramPane = + Begin Origin = + Top = 0 + Left = 0 + End + Begin Tables = + Begin Table = "ListValues" + Begin Extent = + Top = 6 + Left = 38 + Bottom = 136 + Right = 208 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 9 + Width = 284 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1170 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selListVal'; + diff --git a/C2P_Project/dbo/Views/v_QuoteFull_Q.sql b/C2P_Project/dbo/Views/v_QuoteFull_Q.sql index 0cbaf3b..834307d 100644 --- a/C2P_Project/dbo/Views/v_QuoteFull_Q.sql +++ b/C2P_Project/dbo/Views/v_QuoteFull_Q.sql @@ -78,9 +78,9 @@ SELECT Vers , FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost , FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice - , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) AS P_MinPrice - , PriceOff + RawMatFullCost AS P_PriceOff - , PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar + , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + RawMatFullCost AS P_MinPrice + , PriceOff + RawMatFullCost AS P_PriceOff + , PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar , CASE WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0 THEN 0 @@ -107,11 +107,16 @@ SELECT Vers , WSR01_sim , MSR01_sim , NetProd01_sim + , NetProd04_sim , DSR_sim - , FVC + FC4UG01 + OH4UG01 + FC4UG04 - PriceOff - ExtraDiscountDies AS NetMar_sim - , (PriceOff - FVC - ExtraDiscountDies) / (FC4UG01 + OH4UG01 + FC4UG04) AS FCShield_sim + , PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) - ExtraDiscountDies AS NetMar_sim + , CASE + WHEN (FC4UG01 + OH4UG01 + FC4UG04) = 0 + THEN 0 + ELSE (PriceOff - FVC - ExtraDiscountDies) / (FC4UG01 + OH4UG01 + FC4UG04) + END AS FCShield_sim , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + ExtraDiscountDies AS MinPrice_sim - , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) + ExtraDiscountDies AS P_MinPrice_sim + , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + RawMatFullCost + ExtraDiscountDies AS P_MinPrice_sim FROM dbo.QuoteFull_S UNION @@ -194,7 +199,7 @@ SELECT Vers , FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost , FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost AS P_FullCost , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS MinPrice - , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) AS P_MinPrice + , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + RawMatFullCost AS P_MinPrice , PriceOff + RawMatFullCost AS P_PriceOff , PriceOff - (FVC + FC4UG01 + OH4UG01 + FC4UG04) AS NetMar , CASE @@ -223,6 +228,7 @@ SELECT Vers , 0.0 AS WSR01_sim , 0.0 AS MSR01_sim , 0.0 AS NetProd01_sim + , 0.0 AS NetProd04_sim , 0.0 AS DSR_sim , 0.0 AS NetMar_sim , 0.0 AS FCShield_sim diff --git a/C2P_Project/ext/Tables/ext.RcdClass01.sql b/C2P_Project/ext/Tables/ext.RcdClass01.sql new file mode 100644 index 0000000..cf596b9 --- /dev/null +++ b/C2P_Project/ext/Tables/ext.RcdClass01.sql @@ -0,0 +1,14 @@ +CREATE TABLE [ext].[RcdClass01] ( + [CodClass01] NVARCHAR (50) NOT NULL, + [CodClass01Rcd] NVARCHAR (50) CONSTRAINT [DF_RcdClass_CodClassRcd] DEFAULT ('') NOT NULL, + CONSTRAINT [PK_RcdClass] PRIMARY KEY CLUSTERED ([CodClass01] ASC) +); + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClass01', @level2type = N'COLUMN', @level2name = N'CodClass01Rcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClass01', @level2type = N'COLUMN', @level2name = N'CodClass01'; + diff --git a/C2P_Project/ext/Tables/ext.RcdClass02.sql b/C2P_Project/ext/Tables/ext.RcdClass02.sql new file mode 100644 index 0000000..cf41dc4 --- /dev/null +++ b/C2P_Project/ext/Tables/ext.RcdClass02.sql @@ -0,0 +1,6 @@ +CREATE TABLE [ext].[RcdClass02] ( + [CodClass02] NVARCHAR (50) NOT NULL, + [CodClass02Rcd] NVARCHAR (50) NOT NULL, + CONSTRAINT [PK_RcdClass02] PRIMARY KEY CLUSTERED ([CodClass02] ASC) +); + diff --git a/C2P_Project/ext/Tables/ext.RcdClient.sql b/C2P_Project/ext/Tables/ext.RcdClient.sql new file mode 100644 index 0000000..aa99884 --- /dev/null +++ b/C2P_Project/ext/Tables/ext.RcdClient.sql @@ -0,0 +1,24 @@ +CREATE TABLE [ext].[RcdClient] ( + [CodClient] NVARCHAR (50) NOT NULL, + [CodClientRcd] NVARCHAR (50) NOT NULL, + [CodAgRcd] NVARCHAR (50) NOT NULL, + [ClientNameRcd] NVARCHAR (250) CONSTRAINT [DF_RcdClient_ClientNameRcd] DEFAULT ('') NULL, + CONSTRAINT [PK_RcdClient] PRIMARY KEY CLUSTERED ([CodClient] ASC) +); + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ragione Sociale', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClient', @level2type = N'COLUMN', @level2name = N'ClientNameRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice agente...', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClient', @level2type = N'COLUMN', @level2name = N'CodAgRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClient', @level2type = N'COLUMN', @level2name = N'CodClientRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClient', @level2type = N'COLUMN', @level2name = N'CodClient'; + diff --git a/C2P_Project/ext/Tables/ext.RcdItem.sql b/C2P_Project/ext/Tables/ext.RcdItem.sql new file mode 100644 index 0000000..622b273 --- /dev/null +++ b/C2P_Project/ext/Tables/ext.RcdItem.sql @@ -0,0 +1,16 @@ +CREATE TABLE [ext].[RcdItem] ( + [CodItem] NVARCHAR (50) NOT NULL, + [CodItemRcd] NVARCHAR (50) NOT NULL, + [ItemDescrRcd] NVARCHAR (250) CONSTRAINT [DF_RcdItem_ItemDescrRcd] DEFAULT ('') NOT NULL, + [CodPlantRcd] NVARCHAR (50) CONSTRAINT [DF_RcdItem_CodPlantRcd] DEFAULT ('') NOT NULL, + CONSTRAINT [PK_RcdItem] PRIMARY KEY CLUSTERED ([CodItem] ASC) +); + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdItem', @level2type = N'COLUMN', @level2name = N'CodItemRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdItem', @level2type = N'COLUMN', @level2name = N'CodItem'; + diff --git a/C2P_Project/ext/Tables/ext.RcdPackage.sql b/C2P_Project/ext/Tables/ext.RcdPackage.sql new file mode 100644 index 0000000..b38cf53 --- /dev/null +++ b/C2P_Project/ext/Tables/ext.RcdPackage.sql @@ -0,0 +1,7 @@ +CREATE TABLE [ext].[RcdPackage] ( + [CodPackag] NVARCHAR (50) NOT NULL, + [PackagDescRcd] NVARCHAR (250) NOT NULL, + [PackagDesc] NVARCHAR (250) CONSTRAINT [DF_RcdPackage_PackagDescOrig] DEFAULT ('') NULL, + CONSTRAINT [PK_RcdPackage] PRIMARY KEY CLUSTERED ([CodPackag] ASC) +); + diff --git a/C2P_Project/ext/Tables/ext.RcdPlants.sql b/C2P_Project/ext/Tables/ext.RcdPlants.sql new file mode 100644 index 0000000..abfb2ae --- /dev/null +++ b/C2P_Project/ext/Tables/ext.RcdPlants.sql @@ -0,0 +1,14 @@ +CREATE TABLE [ext].[RcdPlants] ( + [CodPlant] NVARCHAR (50) NOT NULL, + [CodPlantRcd] NVARCHAR (50) NOT NULL, + CONSTRAINT [PK_RcdPlants] PRIMARY KEY CLUSTERED ([CodPlant] ASC) +); + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdPlants', @level2type = N'COLUMN', @level2name = N'CodPlantRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdPlants', @level2type = N'COLUMN', @level2name = N'CodPlant'; + diff --git a/C2P_Project/ext/Views/ext.v_ClientDetRcd.sql b/C2P_Project/ext/Views/ext.v_ClientDetRcd.sql new file mode 100644 index 0000000..ceeaa67 --- /dev/null +++ b/C2P_Project/ext/Views/ext.v_ClientDetRcd.sql @@ -0,0 +1,142 @@ +CREATE VIEW ext.v_ClientDetRcd +AS +SELECT ext.RcdClient.CodClientRcd AS CodClient, ext.RcdClient.ClientNameRcd AS ClientName, ext.RcdClient.CodAgRcd AS CodAg, dbo.ClientDet.ZipCode, dbo.ClientDet.City, dbo.ClientDet.State, dbo.ClientDet.Nation, + dbo.ClientDet.TranspZone +FROM dbo.ClientDet INNER JOIN + ext.RcdClient ON dbo.ClientDet.CodClient = ext.RcdClient.CodClient +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ClientDetRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] +Begin DesignProperties = + Begin PaneConfigurations = + Begin PaneConfiguration = 0 + NumPanes = 4 + Configuration = "(H (1[40] 4[20] 2[20] 3) )" + End + Begin PaneConfiguration = 1 + NumPanes = 3 + Configuration = "(H (1 [50] 4 [25] 3))" + End + Begin PaneConfiguration = 2 + NumPanes = 3 + Configuration = "(H (1 [50] 2 [25] 3))" + End + Begin PaneConfiguration = 3 + NumPanes = 3 + Configuration = "(H (4 [30] 2 [40] 3))" + End + Begin PaneConfiguration = 4 + NumPanes = 2 + Configuration = "(H (1 [56] 3))" + End + Begin PaneConfiguration = 5 + NumPanes = 2 + Configuration = "(H (2 [66] 3))" + End + Begin PaneConfiguration = 6 + NumPanes = 2 + Configuration = "(H (4 [50] 3))" + End + Begin PaneConfiguration = 7 + NumPanes = 1 + Configuration = "(V (3))" + End + Begin PaneConfiguration = 8 + NumPanes = 3 + Configuration = "(H (1[56] 4[18] 2) )" + End + Begin PaneConfiguration = 9 + NumPanes = 2 + Configuration = "(H (1 [75] 4))" + End + Begin PaneConfiguration = 10 + NumPanes = 2 + Configuration = "(H (1[66] 2) )" + End + Begin PaneConfiguration = 11 + NumPanes = 2 + Configuration = "(H (4 [60] 2))" + End + Begin PaneConfiguration = 12 + NumPanes = 1 + Configuration = "(H (1) )" + End + Begin PaneConfiguration = 13 + NumPanes = 1 + Configuration = "(V (4))" + End + Begin PaneConfiguration = 14 + NumPanes = 1 + Configuration = "(V (2))" + End + ActivePaneConfig = 0 + End + Begin DiagramPane = + Begin Origin = + Top = 0 + Left = 0 + End + Begin Tables = + Begin Table = "ClientDet" + Begin Extent = + Top = 6 + Left = 38 + Bottom = 136 + Right = 208 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClient (ext)" + Begin Extent = + Top = 6 + Left = 246 + Bottom = 153 + Right = 416 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 10 + Width = 284 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1170 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ClientDetRcd'; + diff --git a/C2P_Project/ext/Views/ext.v_ItemDetRcd.sql b/C2P_Project/ext/Views/ext.v_ItemDetRcd.sql new file mode 100644 index 0000000..1dbbf97 --- /dev/null +++ b/C2P_Project/ext/Views/ext.v_ItemDetRcd.sql @@ -0,0 +1,172 @@ +CREATE VIEW ext.v_ItemDetRcd +AS +SELECT ext.RcdItem.CodItemRcd AS CodItem, ext.RcdItem.ItemDescrRcd AS ItemDescr, ext.RcdItem.CodPlantRcd AS CodPlant, dbo.ItemDet.UnitWeight, dbo.ItemDet.CodItemGroup, + ext.RcdClass01.CodClass01Rcd AS Class01, ext.RcdClass02.CodClass02Rcd AS Class02, '' AS Class03, '' AS Class04, '' AS Class05 +FROM dbo.ItemDet INNER JOIN + ext.RcdItem ON dbo.ItemDet.CodItem = ext.RcdItem.CodItem INNER JOIN + ext.RcdClass01 ON dbo.ItemDet.Class01 = ext.RcdClass01.CodClass01 INNER JOIN + ext.RcdClass02 ON dbo.ItemDet.Class02 = ext.RcdClass02.CodClass02 +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N' SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] +Begin DesignProperties = + Begin PaneConfigurations = + Begin PaneConfiguration = 0 + NumPanes = 4 + Configuration = "(H (1[40] 4[20] 2[20] 3) )" + End + Begin PaneConfiguration = 1 + NumPanes = 3 + Configuration = "(H (1 [50] 4 [25] 3))" + End + Begin PaneConfiguration = 2 + NumPanes = 3 + Configuration = "(H (1 [50] 2 [25] 3))" + End + Begin PaneConfiguration = 3 + NumPanes = 3 + Configuration = "(H (4 [30] 2 [40] 3))" + End + Begin PaneConfiguration = 4 + NumPanes = 2 + Configuration = "(H (1 [56] 3))" + End + Begin PaneConfiguration = 5 + NumPanes = 2 + Configuration = "(H (2 [66] 3))" + End + Begin PaneConfiguration = 6 + NumPanes = 2 + Configuration = "(H (4 [50] 3))" + End + Begin PaneConfiguration = 7 + NumPanes = 1 + Configuration = "(V (3))" + End + Begin PaneConfiguration = 8 + NumPanes = 3 + Configuration = "(H (1[56] 4[18] 2) )" + End + Begin PaneConfiguration = 9 + NumPanes = 2 + Configuration = "(H (1 [75] 4))" + End + Begin PaneConfiguration = 10 + NumPanes = 2 + Configuration = "(H (1[66] 2) )" + End + Begin PaneConfiguration = 11 + NumPanes = 2 + Configuration = "(H (4 [60] 2))" + End + Begin PaneConfiguration = 12 + NumPanes = 1 + Configuration = "(H (1) )" + End + Begin PaneConfiguration = 13 + NumPanes = 1 + Configuration = "(V (4))" + End + Begin PaneConfiguration = 14 + NumPanes = 1 + Configuration = "(V (2))" + End + ActivePaneConfig = 0 + End + Begin DiagramPane = + Begin Origin = + Top = 0 + Left = 0 + End + Begin Tables = + Begin Table = "ItemDet" + Begin Extent = + Top = 34 + Left = 516 + Bottom = 272 + Right = 686 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdItem (ext)" + Begin Extent = + Top = 6 + Left = 246 + Bottom = 178 + Right = 416 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClass01 (ext)" + Begin Extent = + Top = 64 + Left = 836 + Bottom = 160 + Right = 1006 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClass02 (ext)" + Begin Extent = + Top = 185 + Left = 840 + Bottom = 281 + Right = 1010 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 14 + Width = 284 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1605 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + ', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; + diff --git a/C2P_Project/ext/Views/ext.v_MarginReportRcd.sql b/C2P_Project/ext/Views/ext.v_MarginReportRcd.sql new file mode 100644 index 0000000..e503b78 --- /dev/null +++ b/C2P_Project/ext/Views/ext.v_MarginReportRcd.sql @@ -0,0 +1,246 @@ +CREATE VIEW ext.v_MarginReportRcd +AS +SELECT dbo.v_MarginReport.Vers, ext.RcdClient.CodClientRcd AS CodClient, ext.RcdItem.CodItemRcd AS CodItem, dbo.v_MarginReport.RawMat, dbo.v_MarginReport.BatchQty, dbo.v_MarginReport.CodInco, + ext.RcdItem.CodItemRcd + '-' + dbo.v_MarginReport.RawMat AS KeyAM, dbo.v_MarginReport.CodDiesGroup, dbo.v_MarginReport.DiesPrice, dbo.v_MarginReport.DiesExpLife, dbo.v_MarginReport.DiesEOLife, + dbo.v_MarginReport.DiesByClass, dbo.v_MarginReport.NumDiesInList, dbo.v_MarginReport.NumDiesExaust, ext.RcdPlants.CodPlantRcd AS CodPlant, + ext.RcdItem.CodItemRcd + '-' + dbo.v_MarginReport.RawMat + '-' + ext.RcdPlants.CodPlantRcd + '-' + RIGHT(dbo.v_MarginReport.KeyAMIL, 1) AS KeyAMIL, dbo.v_MarginReport.KgTeo, + dbo.v_MarginReport.NumSMED, dbo.v_MarginReport.QuotaMan, dbo.v_MarginReport.PWeight, dbo.v_MarginReport.PTare, dbo.v_MarginReport.LivPackage, + REPLACE(REPLACE(dbo.v_MarginReport.LivPackageDett, dbo.v_MarginReport.CodItem, ext.RcdItem.CodItemRcd), dbo.v_MarginReport.CodClient, ext.RcdClient.CodClientRcd) AS LivPackageDett, + dbo.v_MarginReport.RawMatCost, dbo.v_MarginReport.RawMatExtraCost, dbo.v_MarginReport.RawMatFullCost, dbo.v_MarginReport.CodPackag, dbo.v_MarginReport.FSR, dbo.v_MarginReport.ProvvCost, + dbo.v_MarginReport.EECost, dbo.v_MarginReport.GasCost, dbo.v_MarginReport.DiesCost, dbo.v_MarginReport.PackCost, dbo.v_MarginReport.TranspCost, dbo.v_MarginReport.SellCost01, + dbo.v_MarginReport.RefCost01, dbo.v_MarginReport.SellCost04, dbo.v_MarginReport.RefCost04, dbo.v_MarginReport.WSR01, dbo.v_MarginReport.MSR01, dbo.v_MarginReport.NetProd01, + dbo.v_MarginReport.FC4UG01, dbo.v_MarginReport.VC4UG01, dbo.v_MarginReport.OH4UG01, dbo.v_MarginReport.SC4UG01, dbo.v_MarginReport.DSR, dbo.v_MarginReport.NetProd04, + dbo.v_MarginReport.FC4UG04, dbo.v_MarginReport.VC4UG04, dbo.v_MarginReport.FVC, dbo.v_MarginReport.Charge, dbo.v_MarginReport.P_FVC, dbo.v_MarginReport.CPS, dbo.v_MarginReport.P_CPS, + dbo.v_MarginReport.P_FC4UG04, dbo.v_MarginReport.FullCost, dbo.v_MarginReport.P_FullCost, dbo.v_MarginReport.MinPrice, dbo.v_MarginReport.P_MinPrice, dbo.v_MarginReport.NetMar, + dbo.v_MarginReport.FCShield, dbo.v_MarginReport.PckSur, dbo.v_MarginReport.valid, dbo.v_MarginReport.errorScore, dbo.v_MarginReport.OrdDate, 'ORD' + REPLACE(REPLACE(dbo.v_MarginReport.OrdNum, + '11', '21'), '12', '22') AS OrdNum, dbo.v_MarginReport.OrdRow, dbo.v_MarginReport.OrdPrice, dbo.v_MarginReport.OrdTrasf, dbo.v_MarginReport.OrdQty +FROM dbo.v_MarginReport INNER JOIN + ext.RcdClient ON dbo.v_MarginReport.CodClient = ext.RcdClient.CodClient INNER JOIN + ext.RcdItem ON dbo.v_MarginReport.CodItem = ext.RcdItem.CodItem INNER JOIN + ext.RcdPlants ON dbo.v_MarginReport.CodPlant = ext.RcdPlants.CodPlant +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_MarginReportRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N'= 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1170 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_MarginReportRcd'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] +Begin DesignProperties = + Begin PaneConfigurations = + Begin PaneConfiguration = 0 + NumPanes = 4 + Configuration = "(H (1[40] 4[20] 2[20] 3) )" + End + Begin PaneConfiguration = 1 + NumPanes = 3 + Configuration = "(H (1 [50] 4 [25] 3))" + End + Begin PaneConfiguration = 2 + NumPanes = 3 + Configuration = "(H (1 [50] 2 [25] 3))" + End + Begin PaneConfiguration = 3 + NumPanes = 3 + Configuration = "(H (4 [30] 2 [40] 3))" + End + Begin PaneConfiguration = 4 + NumPanes = 2 + Configuration = "(H (1 [56] 3))" + End + Begin PaneConfiguration = 5 + NumPanes = 2 + Configuration = "(H (2 [66] 3))" + End + Begin PaneConfiguration = 6 + NumPanes = 2 + Configuration = "(H (4 [50] 3))" + End + Begin PaneConfiguration = 7 + NumPanes = 1 + Configuration = "(V (3))" + End + Begin PaneConfiguration = 8 + NumPanes = 3 + Configuration = "(H (1[56] 4[18] 2) )" + End + Begin PaneConfiguration = 9 + NumPanes = 2 + Configuration = "(H (1 [75] 4))" + End + Begin PaneConfiguration = 10 + NumPanes = 2 + Configuration = "(H (1[66] 2) )" + End + Begin PaneConfiguration = 11 + NumPanes = 2 + Configuration = "(H (4 [60] 2))" + End + Begin PaneConfiguration = 12 + NumPanes = 1 + Configuration = "(H (1) )" + End + Begin PaneConfiguration = 13 + NumPanes = 1 + Configuration = "(V (4))" + End + Begin PaneConfiguration = 14 + NumPanes = 1 + Configuration = "(V (2))" + End + ActivePaneConfig = 0 + End + Begin DiagramPane = + Begin Origin = + Top = 0 + Left = 0 + End + Begin Tables = + Begin Table = "v_MarginReport" + Begin Extent = + Top = 36 + Left = 385 + Bottom = 332 + Right = 566 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdItem (ext)" + Begin Extent = + Top = 58 + Left = 639 + Bottom = 188 + Right = 809 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClient (ext)" + Begin Extent = + Top = 52 + Left = 120 + Bottom = 164 + Right = 290 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdPlants (ext)" + Begin Extent = + Top = 195 + Left = 132 + Bottom = 291 + Right = 302 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 76 + Width = 284 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 3450 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 3960 + Width ', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_MarginReportRcd'; + diff --git a/C2P_Report/Reports/ReportOffers_Q.rdlc b/C2P_Report/Reports/ReportOffers_Q.rdlc index 36c572b..2355f44 100644 --- a/C2P_Report/Reports/ReportOffers_Q.rdlc +++ b/C2P_Report/Reports/ReportOffers_Q.rdlc @@ -388,7 +388,7 @@ System.Decimal - ="http://10.74.82.218/C2P_Drawings/" & Fields!CodItem.Value & ".png" + ="http://c2p.steamware.net/C2P_Drawings/" & Fields!CodItem.Value & ".png" valid diff --git a/C2P_Report/Reports/ReportOffers_S.rdlc b/C2P_Report/Reports/ReportOffers_S.rdlc index 36c572b..2355f44 100644 --- a/C2P_Report/Reports/ReportOffers_S.rdlc +++ b/C2P_Report/Reports/ReportOffers_S.rdlc @@ -388,7 +388,7 @@ System.Decimal - ="http://10.74.82.218/C2P_Drawings/" & Fields!CodItem.Value & ".png" + ="http://c2p.steamware.net/C2P_Drawings/" & Fields!CodItem.Value & ".png" valid diff --git a/C2P_Report/bin/C2P_Data.dll b/C2P_Report/bin/C2P_Data.dll index 1e02d30..aa88492 100644 Binary files a/C2P_Report/bin/C2P_Data.dll and b/C2P_Report/bin/C2P_Data.dll differ diff --git a/C2P_Report/bin/C2P_Report.dll b/C2P_Report/bin/C2P_Report.dll index 27e18d3..8f017b1 100644 Binary files a/C2P_Report/bin/C2P_Report.dll and b/C2P_Report/bin/C2P_Report.dll differ diff --git a/VersGen/C2P.cs b/VersGen/C2P.cs index 0a7aa0d..6a7c8e2 100644 --- a/VersGen/C2P.cs +++ b/VersGen/C2P.cs @@ -5,7 +5,7 @@ using System.Reflection; -[assembly: AssemblyVersion("2.0.141.308")] -[assembly: AssemblyFileVersion("2.0.141.308")] +[assembly: AssemblyVersion("2.0.142.324")] +[assembly: AssemblyFileVersion("2.0.142.324")] [assembly: AssemblyCopyright("Proxima & Steamware © 2013-2014")] [assembly: AssemblyCompany("Steamware")] diff --git a/VersGen/C2P.tt b/VersGen/C2P.tt index c514b6b..a6eea46 100644 --- a/VersGen/C2P.tt +++ b/VersGen/C2P.tt @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyVersion("2.0.141.<#= this.RevisionNumber #>")] -[assembly: AssemblyFileVersion("2.0.141.<#= this.RevisionNumber #>")] +[assembly: AssemblyVersion("2.0.142.<#= this.RevisionNumber #>")] +[assembly: AssemblyFileVersion("2.0.142.<#= this.RevisionNumber #>")] [assembly: AssemblyCopyright("Proxima & Steamware © 2013-<#= DateTime.Now.Year #>")] [assembly: AssemblyCompany("Steamware")] <#+