401 lines
19 KiB
Transact-SQL
401 lines
19 KiB
Transact-SQL
-- =============================================
|
|
-- 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/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
|
|
)
|
|
AS
|
|
SET NOCOUNT ON
|
|
|
|
/* va rifatta struttura:
|
|
*
|
|
* tab temporanea
|
|
* calcolo parametri
|
|
* salvataggio in QuoteList dei 3 valori di sunto
|
|
* calcolo dei valori aggregati e restituzione riga risultati finali
|
|
*
|
|
* ATTENZIONE NON CONTROLLA IL CAMPO VALID DEVE ESSERE SEMPRE 1 PER ESSERE VALIDO
|
|
*
|
|
*/
|
|
|
|
|
|
--DECLARE @FullCost DECIMAL(9,6)
|
|
-- , @MinPrice DECIMAL(9,6)
|
|
IF (@DoUpdate = 'Y')
|
|
BEGIN
|
|
EXEC dbo.stp_QL_update @QuoteType
|
|
, @CodQuote
|
|
, @QuoteRev
|
|
END
|
|
|
|
|
|
-- inserire in tabelle: QuoteFull_Q (quotazioni/preventivi)
|
|
-- inserire in tabelle: QuoteFull_R (resoconto di commessa)
|
|
-- inserire in tabelle: QuoteFull_S (simulazioni)
|
|
|
|
-- elimino eventuale temp table...
|
|
IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL
|
|
DROP TABLE #TempFullData;
|
|
|
|
|
|
-- Costruisco la "superselect" di tutti i valori necessari...
|
|
|
|
-- =================================================
|
|
-- PIVOT TABELLA QuoteParameter
|
|
-- =================================================
|
|
;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
|
|
|
|
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
|
|
-- START nuovi campi x 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
|
|
)
|
|
-- =================================================
|
|
-- 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
|
|
-- 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(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
|
|
|
|
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
|
|
|
|
INNER JOIN ctePivotQuoteP AS pQP
|
|
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
|
|
|
|
INNER JOIN ctePivotQuoteOC AS pQOC
|
|
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'
|
|
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'
|
|
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'
|
|
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'
|
|
INNER JOIN dbo.PlantsDet AS PD
|
|
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
|
|
--SET FullCost = @FullCost
|
|
-- , MinPrice = @MinPrice
|
|
-- , PriceOff = CASE WHEN ISNULL(PriceOff,0) = 0 THEN @MinPrice ELSE PriceOff END
|
|
--WHERE QuoteType = @QuoteType
|
|
-- AND CodQuote = @CodQuote
|
|
-- AND QuoteRev = @QuoteRev
|
|
|
|
-- SELECT TOP 1000 * FROM #TempFullData
|
|
|
|
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
|
|
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
|
|
-- FROM [dbo].[v_pivot]
|
|
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_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,
|
|
|
|
,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
|
|
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
|
|
END
|
|
|
|
-- elimino temp table...
|
|
--IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL
|
|
-- DROP TABLE #TempFullData
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|