diff --git a/C2P/Web.WinLab.config b/C2P/Web.WinLab.config
index 258aaa2..1427ee3 100644
--- a/C2P/Web.WinLab.config
+++ b/C2P/Web.WinLab.config
@@ -18,6 +18,8 @@
+
+
diff --git a/C2P/bin/C2P.dll b/C2P/bin/C2P.dll
index f9b1cde..5b90ff0 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 2139cfa..34ad5d0 100644
Binary files a/C2P/bin/C2P_Data.dll and b/C2P/bin/C2P_Data.dll differ
diff --git a/C2P/bin/SteamWare.dll b/C2P/bin/SteamWare.dll
index 69a9068..51b6720 100644
Binary files a/C2P/bin/SteamWare.dll and b/C2P/bin/SteamWare.dll differ
diff --git a/C2P_Data/bin/Release/C2P_Data.dll b/C2P_Data/bin/Release/C2P_Data.dll
index 74f8b04..34ad5d0 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_Project/C2P_DB.sqlproj b/C2P_Project/C2P_DB.sqlproj
index 2a39dae..2ba40bf 100644
--- a/C2P_Project/C2P_DB.sqlproj
+++ b/C2P_Project/C2P_DB.sqlproj
@@ -87,7 +87,6 @@
-
@@ -203,10 +202,83 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/C2P_Project/Security/ext.sql b/C2P_Project/Security/ext.sql
index 0e94d25..e95d1c3 100644
--- a/C2P_Project/Security/ext.sql
+++ b/C2P_Project/Security/ext.sql
@@ -3,3 +3,5 @@
+
+
diff --git a/C2P_Project/Security/tmp.sql b/C2P_Project/Security/tmp.sql
index e5b8ac9..b7530ff 100644
--- a/C2P_Project/Security/tmp.sql
+++ b/C2P_Project/Security/tmp.sql
@@ -3,3 +3,5 @@
+
+
diff --git a/C2P_Project/Security/voc.sql b/C2P_Project/Security/voc.sql
index 788a11d..8c4e0fe 100644
--- a/C2P_Project/Security/voc.sql
+++ b/C2P_Project/Security/voc.sql
@@ -1,3 +1,5 @@
CREATE SCHEMA [voc]
AUTHORIZATION [dbo];
+
+
diff --git a/C2P_Project/dbo/Functions/dbo.f_getNewCodQuote.sql b/C2P_Project/dbo/Functions/dbo.f_getNewCodQuote.sql
index 24bae34..53b942d 100644
--- a/C2P_Project/dbo/Functions/dbo.f_getNewCodQuote.sql
+++ b/C2P_Project/dbo/Functions/dbo.f_getNewCodQuote.sql
@@ -3,7 +3,7 @@
-- Create date: 2014.02.21
-- Description: Retituisce un codice offerta valido da yyMMdd + incr
-- =============================================
-CREATE FUNCTION f_getNewCodQuote
+CREATE FUNCTION [dbo].[f_getNewCodQuote]
(
)
RETURNS INT
@@ -17,7 +17,25 @@ BEGIN
SELECT @output = ISNULL(MAX(CodQuote) + 1,CAST(RIGHT(YEAR(@oggi),2) AS NVARCHAR) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0')+'0001')
FROM QuoteList
WHERE codquote LIKE CAST(RIGHT(YEAR(@oggi),2) AS NVARCHAR) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + '%'
+ AND (QuoteType = 'Q' OR QuoteType = 'S')
RETURN @output
+ /* altra modalità (valutare...)
+ -- calcolo prox valori "free" x cod Quote (QuoteRev parte a zero...)
+ SELECT @CodQuote = ISNULL(CodQuote, 0)
+ FROM QuoteList
+ WHERE QuoteType = 'Q'
+ AND CodQuote LIKE dbo.fnFormatDate (getdate(), 'YYMMDD') +'%'
+
+ -- se è vuoto prendo primo valore...
+ IF(@CodQuote = 0)
+ BEGIN
+ SELECT @CodQuote = dbo.fnFormatDate (getdate(), 'YYMMDD0000')
+ END
+
+
+ */
+
+
END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Functions/dbo.f_prt_getParameter.sql b/C2P_Project/dbo/Functions/dbo.f_prt_getParameter.sql
new file mode 100644
index 0000000..d603030
--- /dev/null
+++ b/C2P_Project/dbo/Functions/dbo.f_prt_getParameter.sql
@@ -0,0 +1,43 @@
+-- =============================================
+-- Author: G:A:R
+-- Create date:
+-- Description: estrazione valore del paramento passato
+-- =============================================
+CREATE FUNCTION f_prt_getParameter
+(
+ @par AS VARCHAR(50)
+ ,@val AS VARCHAR(50)
+ ,@endSepar AS VARCHAR(10) = '&'
+)
+RETURNS VARCHAR(50)
+AS
+BEGIN
+
+ DECLARE @Result VARCHAR(50)
+ DECLARE @Inizio INT;
+ DECLARE @Fine INT;
+
+ SET @par = '%'+ @par + '=%' -- '%QuoteType=%'
+
+ --;WITH CTE AS
+ --(
+ -- SELECT *, ( PATINDEX(@campo , Chiave) + LEN(@campo) - 2 ) As Inizio , CHARINDEX ( '&' ,Chiave , PATINDEX(@campo , Chiave) ) As Fine
+ -- FROM dbo.ReportPrintTicket
+ -- WHERE Ticket = 1 AND PATINDEX(@campo , Chiave) > 0
+ --)
+
+ SET @Inizio = PATINDEX(@par , @val )
+
+ IF @Inizio > 0
+ BEGIN
+ SET @Inizio = @Inizio + LEN(@par) - 2
+ SET @Fine = CASE WHEN ( CHARINDEX ( @endSepar , @val , @Inizio ) ) = 0
+ THEN LEN(@val)
+ ELSE CHARINDEX ( @endSepar , @val , @Inizio )
+ END ;
+
+ SELECT @Result = SUBSTRING( @val, @Inizio, @Fine-@Inizio )
+ END
+
+ RETURN @Result
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Functions/dbo.fnFormatDate.sql b/C2P_Project/dbo/Functions/dbo.fnFormatDate.sql
new file mode 100644
index 0000000..d604f5a
--- /dev/null
+++ b/C2P_Project/dbo/Functions/dbo.fnFormatDate.sql
@@ -0,0 +1,42 @@
+-----------------------------------------------------------------------------
+-- SQL Server date formatting function – convert datetime to string
+-----------------------------------------------------------------------------
+-- SQL datetime functions
+-- SQL Server date formats
+-- T-SQL convert dates
+-- Formatting dates sql server
+CREATE FUNCTION dbo.fnFormatDate (@Datetime DATETIME, @FormatMask VARCHAR(32))
+RETURNS VARCHAR(32)
+AS
+BEGIN
+ DECLARE @StringDate VARCHAR(32)
+ SET @StringDate = @FormatMask
+ IF (CHARINDEX ('YYYY',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'YYYY',
+ DATENAME(YY, @Datetime))
+ IF (CHARINDEX ('YY',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'YY',
+ RIGHT(DATENAME(YY, @Datetime),2))
+ IF (CHARINDEX ('Month',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'Month',
+ DATENAME(MM, @Datetime))
+ IF (CHARINDEX ('MON',@StringDate COLLATE SQL_Latin1_General_CP1_CS_AS)>0)
+ SET @StringDate = REPLACE(@StringDate, 'MON',
+ LEFT(UPPER(DATENAME(MM, @Datetime)),3))
+ IF (CHARINDEX ('Mon',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'Mon',
+ LEFT(DATENAME(MM, @Datetime),3))
+ IF (CHARINDEX ('MM',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'MM',
+ RIGHT('0'+CONVERT(VARCHAR,DATEPART(MM, @Datetime)),2))
+ IF (CHARINDEX ('M',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'M',
+ CONVERT(VARCHAR,DATEPART(MM, @Datetime)))
+ IF (CHARINDEX ('DD',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'DD',
+ RIGHT('0'+DATENAME(DD, @Datetime),2))
+ IF (CHARINDEX ('D',@StringDate) > 0)
+ SET @StringDate = REPLACE(@StringDate, 'D',
+ DATENAME(DD, @Datetime))
+RETURN @StringDate
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Functions/f_getDataCodPackag.sql b/C2P_Project/dbo/Functions/f_getDataCodPackag.sql
index b3e8c5b..4eb4dc7 100644
--- a/C2P_Project/dbo/Functions/f_getDataCodPackag.sql
+++ b/C2P_Project/dbo/Functions/f_getDataCodPackag.sql
@@ -1,10 +1,11 @@
+
-- =============================================
-- Author: Steamware
-- Create date: 2014-01-30
--- Description: Ritorna l'imballo e i dati associati
+-- Description: Ritorna l'imballo e i dati associati ( sostituita da stored ma lasciata nel caso di query on-line )
-- =============================================
CREATE FUNCTION [dbo].[f_getDataCodPackag]
(
@@ -33,15 +34,16 @@ BEGIN
-- setup iniziale: imposto a zero...
SET @output = '0'
-
- SELECT @trovati = COUNT(*) FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
- IF(@trovati > 0)
- -- primo tentativo: cerco il package dato SIA cliente che ITEM
+ -- SELECT @trovati = COUNT(*) FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
+ --IF(@trovati > 0)
+
+ IF EXISTS ( SELECT * FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem)
+ -- primo tentativo: cerco il package dato SIA cliente che ITEM
BEGIN
INSERT @Table
SELECT TOP 1 CodItem, CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
,'Item-Client-Package', @CodItem + '-' + @CodClient + '-' + CodPackag
- FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
+ FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem
ORDER BY TotQta DESC
END
ELSE IF EXISTS ( SELECT * FROM Package2Item WHERE CodItem = @CodItem )
@@ -50,7 +52,7 @@ BEGIN
INSERT @Table
SELECT TOP 1 CodItem, 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata
,'Item-Package', @CodItem + '-' + CodPackag
- FROM Package2Item WHERE CodItem = @CodItem
+ FROM dbo.Package2Item WHERE CodItem = @CodItem
ORDER BY TotQta DESC
END
ELSE
diff --git a/C2P_Project/dbo/Functions/f_getSubstring.sql b/C2P_Project/dbo/Functions/f_getSubstring.sql
index e25bc5d..e0606c8 100644
--- a/C2P_Project/dbo/Functions/f_getSubstring.sql
+++ b/C2P_Project/dbo/Functions/f_getSubstring.sql
@@ -1,10 +1,6 @@
-
-
-
-
--- ================================================================
+-- ================================================================
-- Author : Steamware
--- Create date: 2017-01-17
+-- Create date: 2014-01-17
--
-- Description: Data una stringa con una serie di valori separati da un separatore ( es. ; )
-- ritorna l'elemento nella posizione richiesta
@@ -20,8 +16,8 @@ AS
BEGIN
DECLARE @Occurrences INT,
- @Counter INT,
- @tmpStr NVARCHAR(4000),
+ @Counter INT,
+ @tmpStr NVARCHAR(4000),
@str_out NVARCHAR(4000)
IF RIGHT(@str_in, DATALENGTH(@separator)/2 ) <> @separator
@@ -30,25 +26,25 @@ BEGIN
SET @str_out = @str_in ;
-- calcolo il numero di elementi della nella stringa
- SET @Occurrences = ( (DATALENGTH( REPLACE(@str_out, @separator, @separator+'#')) - DATALENGTH(@str_out)) ) / 2
+ SET @Occurrences = ( (DATALENGTH( REPLACE(@str_out, @separator, @separator+'#')) - DATALENGTH(@str_out)) ) / 2
-- se l'elemento richiesto esiste proseguo altrimenti ritorno NULL
IF @Occurrences >= @PosizValue AND @PosizValue <> 0
BEGIN
- SET @tmpStr = @str_out ;
- SET @Counter = 1 ;
+ SET @tmpStr = @str_out ;
+ SET @Counter = 1 ;
- WHILE @Counter <= @PosizValue
- BEGIN
- SET @Counter = @Counter + 1 ;
- SET @str_out = SUBSTRING( @tmpStr, 1, CHARINDEX(@separator,@tmpStr) - 1) ;
+ WHILE @Counter <= @PosizValue
+ BEGIN
+ SET @Counter = @Counter + 1 ;
+ SET @str_out = SUBSTRING( @tmpStr, 1, CHARINDEX(@separator,@tmpStr) - 1) ;
-- metto via il resto della stringa
- SET @tmpStr = SUBSTRING( @tmpStr, CHARINDEX(@separator,@tmpStr) + DATALENGTH(@separator)/2, 4000) ;
-
- IF DATALENGTH(@tmpStr) = 0
- BREAK
- END
+ SET @tmpStr = SUBSTRING( @tmpStr, CHARINDEX(@separator,@tmpStr) + DATALENGTH(@separator)/2, 4000) ;
+
+ IF DATALENGTH(@tmpStr) = 0
+ BREAK
+ END
-- pulisco da caratteri NON voluti
--SET @str_out = REPLACE(@str_out, char(13), '') ; -- carriage return
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_OH_countRemaining.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_OH_countRemaining.sql
new file mode 100644
index 0000000..c70b97b
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_OH_countRemaining.sql
@@ -0,0 +1,14 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.27
+-- Description: conteggio OrdersHist ancora da processare
+-- =============================================
+CREATE PROCEDURE dbo.stp_OH_countRemaining
+AS
+
+
+SELECT COUNT(*) as RecordsIn
+FROM dbo.OrdersHist
+WHERE CodQuote = 0
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_PL_getByListLingua.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_PL_getByListLingua.sql
new file mode 100644
index 0000000..368ee34
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_PL_getByListLingua.sql
@@ -0,0 +1,21 @@
+-- =============================================
+-- Author: Steamware
+-- Mod date: 2014.05.23
+-- Description: elenco calori x picklist data lingua e CodList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_PL_getByListLingua]
+(
+ @CodList NVARCHAR(50) = '',
+ @Lingua NVARCHAR(3) = 'IT'
+)
+AS
+SET NOCOUNT ON
+
+SELECT pl.Value, ISNULL(v.Traduzione, '_'+pl.Lemma+'_') as Label
+FROM PickList pl
+ LEFT OUTER JOIN Vocabolario v ON pl.Lemma = v.Lemma
+WHERE pl.CodList = @CodList
+ AND ISNULL(v.Lingua, @Lingua) = @Lingua
+ORDER BY NumOrd
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QFC_creaListino.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QFC_creaListino.sql
new file mode 100644
index 0000000..ba7bb42
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QFC_creaListino.sql
@@ -0,0 +1,54 @@
+
+
+
+-- =============================================
+-- STORED PROCEDURE stp_QFC_creaListino
+--
+-- Author: Steamware
+-- Mod date: 2014.05.26
+-- Description: crea un nuovo listino di costi
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QFC_creaListino]
+(
+ @RawMatCost DECIMAL(18,6) = 2,
+ @BatchQty INT = 1000
+)
+AS
+
+SET NOCOUNT ON
+
+-- questo è l'elenco delle cose da processare, in temp table / Cte x "scorrere" tutto?
+SELECT DISTINCT
+
+ CONVERT(CHAR(8), GETDATE(), 112) AS DateList
+ , die.CodItem AS CodItem
+ , CASE WHEN pl.RawMat = '' -- al momento li escludo perchè poi non ho dati sugli scarti
+ THEN '6060'
+ ELSE pl.RawMat
+ END AS RawMat
+ , @RawMatCost AS RawMatCost
+ , rm.ExtraMatCost AS RawMatExtraCost
+ , @BatchQty AS batchQty
+ , 'EXW' AS CodInco
+
+-- 'C' AS QuoteType
+-- , '' AS CodClient --'' / '05000000001' in alternativa come default
+
+FROM dbo.DiesDet AS die
+
+INNER JOIN dbo.ProductionLog AS pl
+ ON die.CodDies = pl.CodDies
+
+INNER JOIN dbo.RawMatDet AS rm
+ ON pl.RawMat = rm.RawMat
+
+INNER JOIN dbo.TabProdSc AS sc -- escludo record che non hanno dati di scarto produzione
+ ON sc.KeyAM = ( die.CodItem + '-' + pl.RawMat)
+
+WHERE ( pl.RawMat <> '' AND pl.RawMat IS NOT NULL ) -- escludo righe di produzione senza RawMat ( es. fermi o altro )
+-- AND ( die.ActLife <> 0 ) -- escludo matrici senza dati ( es. vecchie matrici senza dati attuali o nuove che non hanno ancora prodotto )
+
+--AND die.CodItem = '3DI05194'
+ORDER BY die.CodItem
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLC_insNew.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLC_insNew.sql
new file mode 100644
index 0000000..14057f9
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLC_insNew.sql
@@ -0,0 +1,223 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.26
+-- Description: elaborazione dbo.QuoteFull_C ( listino )
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLC_insNew]
+(
+ @row2proc INT = 100,
+ @Note NVARCHAR(2500) = '',
+ @QuoteType CHAR(1) = 'C' -- per il momento è fisso = 'C'
+)
+AS
+BEGIN
+
+SET NOCOUNT ON;
+
+-- declare variabili
+DECLARE @CodQuote AS BIGINT,
+ @QuoteRev AS INT = 0,
+ @OrdNum AS NVARCHAR(50),
+ @OrdRow AS NVARCHAR(50),
+ @CodItem AS NVARCHAR(50),
+ @CodClient AS NVARCHAR(50) = '',
+ @RawMat AS NVARCHAR(50),
+ @RawMatCost AS DECIMAL(18,6) = 0,
+ @BatchQty AS INT = 0,
+ @RawMatExtraCost AS DECIMAL(18,6),
+ @CodInco AS NVARCHAR(5),
+ @PriceOff AS DECIMAL(9,6),
+ @OrdDate As DATETIME,
+ @OrdPrice AS DECIMAL(9,6),
+ @OrdQty AS INT,
+ @oggi AS DATETIME = GETDATE(),
+ @LastIdx AS INT,
+ @noRow AS CHAR(1) = 'N',
+ @TotRow AS INT = 0,
+ @Date AS SMALLDATETIME = CONVERT(SMALLDATETIME,CONVERT(CHAR(8), GETDATE(), 112))
+
+SET XACT_ABORT ON;
+
+SET @QuoteType = 'C' -- per il momento non lascio parametrico il quotetype = C - Costi
+
+-- se non esiste il contatore creo il record contatore
+IF NOT EXISTS ( SELECT * FROM dbo.ContatoriQuote WHERE Flusso = @QuoteType )
+ INSERT INTO dbo.ContatoriQuote SELECT @QuoteType, 0
+
+/* viene fatta da altra stored
+-- ===========================================================
+-- se non esiste, CREO LISTINO per il giorno carico listino
+-- ===========================================================
+IF NOT EXISTS( SELECT * FROM dbo.CostList
+ WHERE QuoteType = @QuoteType AND DateList = @Date )
+ -- AND LEFT(CodQuote,6) = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') ) ) )
+ BEGIN
+ INSERT INTO dbo.CostList WITH (TABLOCK) ( DateList,CodItem,RawMat,RawMatCost,RawMatExtraCost,batchQty,CodInco )
+ EXEC dbo.stp_QFC_creaListino @RawmatCost , @BatchQty
+ END
+*/
+
+-- verifico se ci sono record da elaborare
+IF EXISTS ( SELECT * FROM dbo.CostList WHERE QuoteType = @QuoteType AND CodQuote = 0 )
+ SET @noRow = 'N'
+
+WHILE( @noRow = 'N' AND @row2proc > 0)
+BEGIN
+ -- ===========================================================
+ -- stacco il CodQuote da usare e sbocco la tabella ( in realtà perdo un numero se poi non faccio insert )
+ -- se non eseguo procedure multiple contemporanee non serve
+ -- ===========================================================
+ DECLARE @Table TABLE ( LastIdx INT )
+ BEGIN TRAN;
+ UPDATE dbo.ContatoriQuote
+ SET LastIdx = ( LastIdx % 1000000 ) + 1 -- si resetta dopo 1.000.000 righe ( in pratica ho tot righe al giorno )
+ OUTPUT inserted.LastIdx INTO @Table
+ WHERE Flusso = @QuoteType
+
+ SELECT @LastIdx = MAX(LastIdx) FROM @Table
+ SELECT @CodQuote = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + dbo.f_padLeft(@LastIdx, 8,'0') ) )
+ COMMIT;
+
+
+ -- ===========================================================
+ -- elaboro il primo ordine "libero" assegnando il CodQuote
+ -- se da errore la transazione mi annulla il codquote e quindi rimane elaborabile
+ -- altrimenti metto l'assegnazione nella tran precedente e poi decido cosa fare con quelli non completati con data EndCalc = NULL
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- SERIALIZABLE; -- REPEATABLE READ;
+ BEGIN TRANSACTION;
+
+ -- leggo il primo record da elaborare e assegno il CodQuote
+ WITH cteFree AS
+ ( -- leggo il primo ordine da elaborare e assegno il CodQuote
+ SELECT TOP(1) CodItem, RawMat FROM dbo.CostList WHERE DateList = @Date AND QuoteType = @QuoteType AND CodQuote = 0
+ )
+ UPDATE dbo.CostList
+ SET CodQuote = @CodQuote,
+ QuoteType = @QuoteType
+ FROM dbo.CostList AS ls
+ INNER JOIN cteFree AS cte
+ ON ls.DateList = @Date AND ls.CodItem = cte.CodItem AND ls.RawMat = cte.RawMat
+-- OPTION (RECOMPILE)
+
+ -- leggo i valori di calcolo
+ SET @CodItem = NULL
+ SELECT @CodItem = CodItem,
+ @BatchQty = batchQty,
+ @RawMat = RawMat,
+ @RawMatCost = RawMatCost,
+ @RawMatExtraCost = RawMatExtraCost,
+ @CodInco = CodInco
+ FROM dbo.CostList
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote
+ OPTION (RECOMPILE);
+
+ -- imposto il Cliente a non specificato ( CUSTOMER ND )
+ SET @CodClient = '00000000000'
+
+ IF @CodItem IS NOT NULL
+ BEGIN
+
+ -- -------------------------------------------------------
+ -- inserisco dati per elaborazione in QuoteList e QuoteRM
+ -- -------------------------------------------------------
+ INSERT INTO dbo.QuoteList( QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note )
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO dbo.QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- -------------------------------------------------------
+ -- ricalcolo!
+ -- -------------------------------------------------------
+ EXEC dbo.stp_QL_fullDataUpdate @QuoteType , @CodQuote , @QuoteRev, 'Y';
+
+ -- aggiorno data-ora fine elaborazione
+ UPDATE dbo.CostList
+ SET EndCalc = GETDATE()
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote
+
+ --SELECT * FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT TOP(1000) * FROM dbo.QuoteFull_C WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ END
+ ELSE
+ SET @noRow = 'Y' -- fine righe da elaborare
+
+ COMMIT TRAN
+ SET @row2proc = @row2proc - 1
+
+/*
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+
+ COMMIT TRAN;
+ END TRY
+ BEGIN CATCH
+ SELECT 'Error'
+ ,@CodItem
+ ,@CodClient
+ ,@BatchQty
+ ,@RawMat
+ ,@RawMatCost
+ ,@RawMatExtraCost
+ ,@CodInco
+ , @TotRow
+-- ROLLBACK
+
+ DECLARE @ErrorMessage NVARCHAR(4000);
+ DECLARE @ErrorSeverity INT;
+ DECLARE @ErrorState INT;
+
+ SELECT @ErrorMessage = ERROR_MESSAGE() + ' Error Number: ' + CONVERT( Varchar(10) , ERROR_NUMBER())
+ + ' Severity: ' + CONVERT( Varchar(10) , ERROR_SEVERITY() ) + ' : '
+ + ISNULL(ERROR_PROCEDURE(),'stored?')
+ + ' Line: ' + CONVERT(VARCHAR(100),ERROR_LINE()),
+
+ @ErrorSeverity = 8, -- ERROR_SEVERITY(),
+ @ErrorState = ERROR_STATE();
+
+ RAISERROR (@ErrorMessage, -- Message text.
+ @ErrorSeverity, -- Severity.
+ @ErrorState -- State.
+ );
+
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+ END CATCH
+*/
+
+END -- END WHILE
+
+RETURN
+END
+
+/*
+-- Pulizia Tabelle di appoggio x QuoteType = 'C'
+
+TRUNCATE TABLE CostList
+DELETE FROM dbo.QuoteOC WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteParam WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteRM WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteList WHERE QuoteType = 'C'
+
+SELECT TOP 1000 * FROM dbo.QuoteList WHERE QuoteType = 'C' -- AND CodQuote = '14052600000001'
+SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' -- AND CodQuote = '14052600000001'
+SELECT TOP 1000 * FROM dbo.QuoteOC WHERE QuoteType = 'C' -- AND CodQuote = '14052600000002'
+SELECT TOP 1000 * FROM dbo.QuoteParam WHERE QuoteType = 'C' -- AND CodQuote = '14052600000993'
+SELECT TOP 1000 * FROM dbo.QuoteWorkInt WHERE QuoteType = 'C' -- AND CodQuote = '14052600000993'
+
+SELECT * FROM CostList
+SELECT * FROM dbo.QuoteFull_C WHERE QuoteType = 'C'
+
+SELECT TOP 1000 * FROM ItemDet WHERE CodItem = '1BQ00012'
+
+-- RIPULISCO TUTTO
+TRUNCATE TABLE dbo.QuoteFull_C
+
+UPDATE dbo.ContatoriQuote
+SET LastIdx = 0 WHERE Flusso = 'C'
+
+*/
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLC_insNew_OLD.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLC_insNew_OLD.sql
new file mode 100644
index 0000000..c4d2096
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLC_insNew_OLD.sql
@@ -0,0 +1,199 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.26
+-- Description: elaborazione dbo.QuoteFull_C ( listino )
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLC_insNew_OLD]
+(
+ @RawMatCost DECIMAL(18,6) = 2,
+ @BatchQty INT = 1000,
+ @QuoteType CHAR(1) = 'C', -- non usato al momento
+ @Note NVARCHAR(2500) = '',
+ @row2proc INT = 100
+)
+AS
+
+SET NOCOUNT ON;
+
+-- declare variabili
+DECLARE @CodQuote AS BIGINT,
+ @QuoteRev AS INT = 0,
+ @OrdNum AS NVARCHAR(50),
+ @OrdRow AS NVARCHAR(50),
+ @CodItem AS NVARCHAR(50),
+ @CodClient AS NVARCHAR(50),
+ @RawMat AS NVARCHAR(50),
+ @RawMatExtraCost AS DECIMAL(18,6),
+ @CodInco AS NVARCHAR(5),
+ @PriceOff AS DECIMAL(9,6),
+ @OrdDate As DATETIME,
+ @OrdPrice AS DECIMAL(9,6),
+ @OrdQty AS INT,
+ @oggi AS DATETIME = GETDATE(),
+ @LastIdx AS INT,
+ @noRow AS CHAR(1) = 'N',
+ @TotRow AS INT = 0
+
+SET XACT_ABORT ON;
+
+SET @QuoteType = 'C' -- per il momento non lascio parametrico il quotetype = C - Costi
+
+-- se non esiste il contatore creo il record
+IF NOT EXISTS ( SELECT * FROM dbo.ContatoriQuote WHERE Flusso = @QuoteType )
+ INSERT INTO dbo.ContatoriQuote SELECT @QuoteType, 0
+
+-- creo il listino da elaborare
+CREATE TABLE #temp (
+ [IdxRiga] [int] IDENTITY(1,1),
+-- [DataRif] [datetime] NOT NULL, -- CodQuote ha già la data
+-- [QuoteType] [char](1) NOT NULL,
+-- [CodClient] [nvarchar](50) NOT NULL,
+ [CodItem] [nvarchar](50) NOT NULL,
+ [RawMat] [nvarchar](50) NOT NULL,
+ [RawMatCost] [decimal](18, 6) NULL,
+ [RawMatExtraCost] [decimal](18, 6) NULL,
+ [batchQty] [int] NULL,
+ [CodInco] [nvarchar](5) NOT NULL
+
+ PRIMARY KEY ( [IdxRiga] ) WITH (PAD_INDEX = ON, FILLFACTOR = 100)
+) ON [PRIMARY]
+
+INSERT INTO #temp ( CodItem,RawMat,RawMatCost,RawMatExtraCost,batchQty,CodInco )
+EXEC dbo.stp_QFC_creaListino @RawmatCost , @BatchQty
+
+SET @TotRow = @@ROWCOUNT -- metto via record da elaborare
+
+SELECT @TotRow
+-- SELECT @TotRow = COUNT(*) FROM #temp WHERE QuoteType = @QuoteType
+
+-- SET @TotRow = 100 -- elaboro solo 1000 x test
+
+SELECT TOP 100 * FROM #temp ORDER BY [IdxRiga] DESC
+
+WHILE( @TotRow > 0 )
+BEGIN
+ -- ===========================================================
+ -- stacco il CodQuote da usare e sbocco la tabella ( in realtà perdo un numero se poi non faccio insert )
+ -- se non eseguo procedure multiple contemporanee non serve
+ -- ===========================================================
+ DECLARE @Table TABLE ( LastIdx INT )
+ BEGIN TRAN;
+ UPDATE dbo.ContatoriQuote
+ SET LastIdx = ( LastIdx % 1000000 ) + 1 -- si resetta dopo 1.000.000 righe ( in pratica ho tot righe al giorno )
+ OUTPUT inserted.LastIdx INTO @Table
+ WHERE Flusso = @QuoteType
+
+ SELECT @LastIdx = MAX(LastIdx) FROM @Table
+ SELECT @CodQuote = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + dbo.f_padLeft(@LastIdx, 8,'0') ) )
+ COMMIT;
+
+ -- ===========================================================
+ -- elaboro il record in sequenza
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- SERIALIZABLE; -- REPEATABLE READ;
+ BEGIN TRY
+-- BEGIN TRANSACTION;
+
+ -- leggo i valori di calcolo
+ SELECT @CodItem = CodItem,
+ @BatchQty = batchQty,
+ @RawMat = RawMat,
+ @RawMatCost = RawMatCost,
+ @RawMatExtraCost = RawMatExtraCost,
+ @CodInco = CodInco
+ FROM #temp
+ WHERE IdxRiga = @TotRow
+
+ IF @CodItem IS NOT NULL
+ BEGIN
+
+ -- -------------------------------------------------------
+ -- inserisco dati per elaborazione in QuoteList e QuoteRM
+ -- -------------------------------------------------------
+ INSERT INTO dbo.QuoteList( QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note )
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ INSERT INTO dbo.QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- -------------------------------------------------------
+ -- ricalcolo!
+ -- -------------------------------------------------------
+
+ EXEC dbo.stp_QL_fullDataUpdate @QuoteType , @CodQuote , @QuoteRev, 'Y';
+
+ --SELECT * FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ --SELECT TOP(1000) * FROM dbo.QuoteFull_C WHERE QuoteType = 'C' AND CodQuote = @CodQuote
+ END
+
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+
+-- COMMIT TRAN;
+ END TRY
+ BEGIN CATCH
+ SELECT 'Error'
+ ,@CodItem
+ ,@CodClient
+ ,@BatchQty
+ ,@RawMat
+ ,@RawMatCost
+ ,@RawMatExtraCost
+ ,@CodInco
+ , @TotRow
+-- ROLLBACK
+
+ DECLARE @ErrorMessage NVARCHAR(4000);
+ DECLARE @ErrorSeverity INT;
+ DECLARE @ErrorState INT;
+
+ SELECT @ErrorMessage = ERROR_MESSAGE() + ' Error Number: ' + CONVERT( Varchar(10) , ERROR_NUMBER())
+ + ' Severity: ' + CONVERT( Varchar(10) , ERROR_SEVERITY() ) + ' : '
+ + ISNULL(ERROR_PROCEDURE(),'stored?')
+ + ' Line: ' + CONVERT(VARCHAR(100),ERROR_LINE()),
+
+ @ErrorSeverity = 8, -- ERROR_SEVERITY(),
+ @ErrorState = ERROR_STATE();
+
+ RAISERROR (@ErrorMessage, -- Message text.
+ @ErrorSeverity, -- Severity.
+ @ErrorState -- State.
+ );
+
+
+ SET @TotRow = @TotRow -1 -- decremento righe da leggere
+ END CATCH
+
+END -- END WHILE
+
+/*
+-- Pulizia Tabelle di appoggio x QuoteType = 'C'
+
+DELETE FROM dbo.QuoteOC WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteParam WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteRM WHERE QuoteType = 'C'
+DELETE FROM dbo.QuoteList WHERE QuoteType = 'C'
+
+SELECT TOP 1000 * FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote = '14052600000001'
+SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote = '14052600000001'
+SELECT TOP 1000 * FROM dbo.QuoteOC WHERE QuoteType = 'C' AND CodQuote = '14052600000002'
+SELECT TOP 1000 * FROM dbo.QuoteParam WHERE QuoteType = 'C' AND CodQuote = '14052600000993'
+SELECT TOP 1000 * FROM dbo.QuoteWorkInt WHERE QuoteType = 'C' AND CodQuote = '14052600000993'
+
+SELECT TOP 1000 * FROM ItemDet WHERE CodItem = '1BQ00012'
+
+SELECT * FROM dbo.QuoteFull_C WHERE QuoteType = 'C'
+
+-- RIPULISCO TUTTO
+TRUNCATE TABLE dbo.QuoteFull_C
+
+UPDATE dbo.ContatoriQuote
+SET LastIdx = 0 WHERE Flusso = 'C'
+
+*/
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_Insert.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_Insert.sql
new file mode 100644
index 0000000..a8cfdd5
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_Insert.sql
@@ -0,0 +1,63 @@
+
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.16
+-- Description: insert di un record in QL (Full) e poi aggiorna a cascata
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_Insert]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500) = ''
+)
+AS
+
+-- variabili
+DECLARE @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+
+-- check QTA: deve essere > 0 !!!
+IF(@BatchQty = 0)
+BEGIN
+ SET @BatchQty = 1
+END
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- calcolo nuovo record odierno
+ SELECT @CodQuote = dbo.f_getNewCodQuote()
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
+ FROM ItemDet
+ WHERE CodItem = @CodItem
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ ,@CodQuote
+ ,@QuoteRev
+ ,'Y'
+
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM v_QuoteFull_Q
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdCosts.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdCosts.sql
index 2cf9ec9..ae0a8a5 100644
--- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdCosts.sql
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdCosts.sql
@@ -1,9 +1,10 @@
--- =============================================
+
+-- =============================================
-- Author: Steamware - S.E.L.
-- Create date: 2014.04.15
-- Description: update di un record in QL (Full) e poi aggiorna a cascata
-- =============================================
-create PROCEDURE [dbo].[stp_QLF_UpdCosts]
+CREATE PROCEDURE [dbo].[stp_QLF_UpdCosts]
(
@Original_QuoteType CHAR(1) = 'Q',
@Original_CodQuote BIGINT = 0,
@@ -12,6 +13,7 @@ create PROCEDURE [dbo].[stp_QLF_UpdCosts]
)
AS
+SET XACT_ABORT ON;
BEGIN TRAN
-- aggiorno valori QuoteList!
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdHead.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdHead.sql
index 0d4199f..1e91258 100644
--- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdHead.sql
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdHead.sql
@@ -1,4 +1,5 @@
--- =============================================
+
+-- =============================================
-- Author: Steamware - S.E.L.
-- Create date: 2014.04.11
-- Description: update di un record in QL (Full) e poi aggiorna a cascata
@@ -19,19 +20,24 @@ CREATE PROCEDURE [dbo].[stp_QLF_UpdHead]
)
AS
+SET XACT_ABORT ON;
BEGIN TRAN
-- aggiorno valori QuoteList!
- UPDATE QuoteList
+ UPDATE ql
SET CodClient = @CodClient
, CodItem = @CodItem
, RawMat = @RawMat
, BatchQty = @BatchQty
, CodInco = @CodInco
, Note = @Note
- WHERE QuoteType = @Original_QuoteType
- AND CodQuote = @Original_CodQuote
- AND QuoteRev = @Original_QuoteRev
+ , CodItemGroup= id.CodItemGroup
+ , UnitWeight = id.UnitWeight
+ FROM QuoteList ql
+ INNER JOIN ItemDet id ON id.CodItem = @CodItem
+ WHERE ql.QuoteType = @Original_QuoteType
+ AND ql.CodQuote = @Original_CodQuote
+ AND ql.QuoteRev = @Original_QuoteRev
-- aggiorno valori QuoteRM
UPDATE QuoteRM
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdQState.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdQState.sql
index 55c53f6..2835c37 100644
--- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdQState.sql
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_UpdQState.sql
@@ -1,9 +1,10 @@
--- =============================================
+
+-- =============================================
-- Author: Steamware - S.E.L.
-- Create date: 2014.04.16
-- Description: update di un record in QL (Full) e poi aggiorna a cascata
-- =============================================
-create PROCEDURE [dbo].[stp_QLF_UpdQState]
+CREATE PROCEDURE [dbo].[stp_QLF_UpdQState]
(
@Original_QuoteType CHAR(1) = 'Q',
@Original_CodQuote BIGINT = 0,
@@ -12,6 +13,7 @@ create PROCEDURE [dbo].[stp_QLF_UpdQState]
)
AS
+SET XACT_ABORT ON;
BEGIN TRAN
-- aggiorno valori QuoteList!
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_getLast.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_getLast.sql
new file mode 100644
index 0000000..cf9b118
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_getLast.sql
@@ -0,0 +1,13 @@
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.17
+-- Description: recupera ultimo record del tipo richiesto
+-- =============================================
+create PROCEDURE [dbo].[stp_QLF_getLast]
+AS
+
+SELECT TOP 1 *
+FROM v_QuoteFull_Q
+ORDER BY CodQuote DESC
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_getMinMax.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_getMinMax.sql
new file mode 100644
index 0000000..c832fde
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_getMinMax.sql
@@ -0,0 +1,32 @@
+-- =============================================
+-- Author: Steamware - S.E.L.
+-- Create date: 2014.04.23
+-- Description: recupera record min/max per qta batch dato intervallo di analisi
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLF_getMinMax]
+(
+ @DateMin INT, -- formato aammgg
+ @DateMax INT -- formato aammgg
+)
+AS
+
+WITH cteMin AS
+(
+SELECT TOP 1 *
+FROM v_QuoteFull_Q
+WHERE CodQuote BETWEEN @DateMin AND @DateMax
+ORDER BY BatchQty
+)
+, cteMax AS
+(
+SELECT TOP 1 *
+FROM v_QuoteFull_Q
+WHERE CodQuote BETWEEN @DateMin AND @DateMax
+ORDER BY BatchQty DESC
+)
+
+SELECT * FROM cteMin
+UNION
+SELECT * FROM cteMax
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_revHist.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_revHist.sql
new file mode 100644
index 0000000..2cdde2d
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLF_revHist.sql
@@ -0,0 +1,23 @@
+-- =============================================
+-- STORED PROCEDURE stp_QLF_revHist
+--
+-- Author: Steamware
+-- Create date: 2014.04.29
+-- Description: Recupera tutte le revisioni di un offerta
+-- =============================================
+create PROCEDURE stp_QLF_revHist
+(
+ @QuoteType CHAR(1) = 'Q'
+ , @CodQuote BIGINT = 0
+)
+AS
+SET NOCOUNT ON
+
+-- calcolo con aggiunta campi sommati...
+SELECT vq.*
+FROM v_QuoteFull_Q vq
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ORDER BY QuoteRev DESC
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLR_getByDate.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLR_getByDate.sql
new file mode 100644
index 0000000..434ab34
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLR_getByDate.sql
@@ -0,0 +1,20 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.27
+-- Description: elaborazione OrdersHist
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLR_getByDate]
+(
+ @DataRif INT
+)
+AS
+BEGIN
+
+SET NOCOUNT ON;
+
+SELECT *
+FROM v_StdCostList
+WHERE DataRif = @DataRif
+
+END
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLR_insNew.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLR_insNew.sql
new file mode 100644
index 0000000..122eee7
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLR_insNew.sql
@@ -0,0 +1,185 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.22
+-- Description: elaborazione OrdersHist Redditivity
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLR_insNew]
+(
+ @QuoteType CHAR(1) = 'R',
+ @Note NVARCHAR(2500) = '',
+ @row2proc INT = 100
+)
+AS
+BEGIN
+
+SET NOCOUNT ON;
+
+-- declare variabili
+DECLARE @CodQuote AS BIGINT,
+ @QuoteRev AS INT = 0,
+ @OrdNum AS NVARCHAR(50),
+ @OrdRow AS NVARCHAR(50),
+ @CodItem AS NVARCHAR(50),
+ @CodClient AS NVARCHAR(50),
+ @BatchQty AS INT,
+ @RawMat AS NVARCHAR(50),
+ @RawMatCost AS DECIMAL(18,6),
+ @RawMatExtraCost AS DECIMAL(18,6),
+ @CodInco AS NVARCHAR(5),
+ @PriceOff AS DECIMAL(9,6),
+ @OrdDate As DATETIME,
+ @OrdPrice AS DECIMAL(9,6),
+ @OrdQty AS INT,
+ @ProvvCost AS DECIMAL(9,6),
+ @oggi AS DATETIME = GETDATE(),
+ @LastIdx AS INT,
+ @noRow AS CHAR(1) = 'N'
+
+SET XACT_ABORT ON;
+
+SET @QuoteType = 'R' -- per il momento non lascio parametrico il quotetype R - redditività
+
+-- se non esiste il contatore creo il record
+IF NOT EXISTS ( SELECT * FROM dbo.ContatoriQuote WHERE Flusso = @QuoteType )
+ INSERT INTO dbo.ContatoriQuote SELECT @QuoteType, 0
+
+-- verifico se ci sono record da elaborare
+IF EXISTS ( SELECT * FROM dbo.OrdersHist WHERE CodQuote = 0 )
+ SET @noRow = 'N'
+
+WHILE( @noRow = 'N' AND @row2proc > 0)
+BEGIN
+ -- ===========================================================
+ -- stacco il CodQuote da usare e sbocco la tabella ( in realtà perdo un numero se poi non faccio insert )
+ -- se non eseguo procedure multiple contemporanee non serve
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -- credo non serva con OUTPUT
+ DECLARE @Table TABLE ( LastIdx INT )
+ BEGIN TRAN;
+ UPDATE dbo.ContatoriQuote
+ SET LastIdx = ( LastIdx % 1000000 ) + 1 -- si resetta dopo 1.000.000 righe ( in pratica ho tot righe x giorno )
+ OUTPUT inserted.LastIdx INTO @Table
+ WHERE Flusso = @QuoteType
+
+ SELECT @LastIdx = MAX(LastIdx) FROM @Table
+ SELECT @CodQuote = CONVERT( BIGINT, ( RIGHT(YEAR(@oggi),2) + dbo.f_padLeft(MONTH(@oggi), 2,'0') + dbo.f_padLeft(DAY(@oggi), 2,'0') + dbo.f_padLeft(@LastIdx, 8,'0') ) )
+ COMMIT;
+
+ -- ===========================================================
+ -- elaboro il primo ordine "libero" assegnando il CodQuote
+ -- se da errore la transazione mi annulla il codquote e quindi rimane elaborabile
+ -- altrimenti metto l'assegnazione nella tran precedente e poi decido cosa fare con quelli non completati con data EndCalc = NULL
+ -- ===========================================================
+ -- SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- SERIALIZABLE; -- REPEATABLE READ;
+ BEGIN TRANSACTION;
+
+ -- leggo il primo ordine da elaborare e assegno il CodQuote
+ WITH cteOrderFree AS
+ ( -- leggo il primo ordine da elaborare e assegno il CodQuote
+ SELECT TOP(1) OrdNum, OrdRow FROM dbo.OrdersHist WHERE CodQuote = 0
+ )
+ UPDATE Ord
+ SET CodQuote = @CodQuote,
+ QuoteType = @QuoteType
+ FROM dbo.OrdersHist AS ord
+ INNER JOIN cteOrderFree AS cte
+ ON ord.OrdNum = cte.OrdNum AND ord.OrdRow = cte.OrdRow
+
+
+ -- leggo i valori di calcolo
+ SET @OrdNum = NULL
+ SELECT @OrdNum = OrdNum,
+ @OrdRow = OrdRow ,
+ @CodItem = hi.CodItem,
+ @CodClient = CodClient,
+ @BatchQty = BatchQty,
+ @RawMat = RawMat,
+ @RawMatCost = RawMatCost,
+ @RawMatExtraCost = RawMatExtraCost,
+ @CodInco = CodInco,
+ @PriceOff = PriceOff,
+ @OrdPrice = OrdPrice,
+ @OrdDate = OrdDate,
+ @OrdQty = OrdQty,
+ @ProvvCost = ProvvCost
+ FROM dbo.OrdersHist hi
+ INNER JOIN dbo.ItemDet AS It ON hi.CodItem = it.CodItem -- deve esistere il codice in anagrafica altrimenti non lo elaboro
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType
+ OPTION (RECOMPILE)
+
+ IF @OrdNum IS NOT NULL -- record precedente trovato
+ BEGIN
+
+ -- inserisco riga in QuoteList
+ INSERT INTO dbo.QuoteList( QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note, PriceOff, OrdNum, OrdRow, OrdDate, OrdPrice, OrdQty )
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note , @PriceOff, @OrdNum, @OrdRow, @OrdDate ,@OrdPrice, @OrdQty
+ FROM dbo.ItemDet
+ WHERE CodItem = @CodItem
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO dbo.QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- ora inserisco ProvvCost in QuoteSimPar che mi serve dopo nei calcoli dopo
+ INSERT INTO dbo.QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 'ProvvCost', @ProvvCost)
+
+ -- ricalcolo!
+ EXEC dbo.stp_QL_fullDataUpdate @QuoteType , @CodQuote , @QuoteRev, 'Y';
+
+ -- aggiorno data-ora fine elaborazione
+ UPDATE dbo.OrdersHist
+ SET EndCalc = GETDATE()
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType;
+
+ --SELECT * FROM dbo.OrdersHist WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteList WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ --SELECT * FROM dbo.QuoteRM WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ --SELECT TOP(1000) * FROM dbo.QuoteFull_R WHERE QuoteType = 'R' AND CodQuote = @CodQuote
+ END
+ ELSE
+ SET @noRow = 'Y' -- fine righe da elaborare
+
+ COMMIT TRAN;
+ SET @row2proc = @row2proc - 1
+
+END -- END WHILE
+
+RETURN
+
+END
+
+/*
+-- Pulizia Tabelle di appoggio x QuoteType = 'R'
+
+DELETE FROM dbo.QuoteOC WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteParam WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteRM WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteList WHERE QuoteType = 'R'
+DELETE FROM dbo.QuoteSimPar WHERE QuoteType = 'R'
+
+SELECT TOP 1000 * FROM dbo.QuoteList WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteRM WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteOC WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteParam WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteWorkExt WHERE QuoteType = 'R'
+SELECT TOP 1000 * FROM dbo.QuoteWorkInt WHERE QuoteType = 'R'
+
+SELECT * FROM dbo.OrdersHist
+SELECT * FROM dbo.QuoteFull_R WHERE QuoteType = 'R'
+
+-- RIPULISCO TUTTO
+TRUNCATE TABLE dbo.QuoteFull_R
+
+UPDATE dbo.OrdersHist
+SET CodQuote = 0
+
+UPDATE dbo.ContatoriQuote
+SET LastIdx = 0 WHERE Flusso = 'R'
+
+-- SE RICARICO DA ZERO GLI ORDINI
+TRUNCATE TABLE dbo.OrdersHist
+
+*/
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdDiesPar.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdDiesPar.sql
new file mode 100644
index 0000000..6d7c95f
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdDiesPar.sql
@@ -0,0 +1,53 @@
+
+-- =============================================
+-- 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
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLS_UpdDiesPar]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @SamplePrice DECIMAL(18, 6),
+ @DiesPriceClientQuote DECIMAL(18, 6),
+ @DiesCommLife DECIMAL(18, 6),
+ @MonthSalesPrev INT
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- @SamplePrice
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'SamplePrice', @SamplePrice
+
+ -- @DiesPriceClientQuote
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesPriceClientQuote', @DiesPriceClientQuote
+
+ -- @DiesCommLife
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DiesCommLife', @DiesCommLife
+
+ -- @MonthSalesPrev
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'MonthSalesPrev', @MonthSalesPrev
+
+
+ -- update dei valori calcolati!
+ 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
+
+
+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
new file mode 100644
index 0000000..1b1d60a
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdExtrPar.sql
@@ -0,0 +1,77 @@
+
+-- =============================================
+-- 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)
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- dichiaro e calcolo valore complessivo...
+ DECLARE @CodDiesGroup NVARCHAR(50) = ''
+
+ SELECT @CodDiesGroup = @TipoDies + '-' + CAST(@DiamDies AS VARCHAR(50)) + '-' + CAST(@HoleNumDies AS VARCHAR(50)) + '-' + CodItemGroup
+ FROM QuoteList
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ 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
+
+
+ -- update dei valori calcolati!
+ 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
+
+
+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
new file mode 100644
index 0000000..6af27d9
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdHead.sql
@@ -0,0 +1,84 @@
+
+-- =============================================
+-- 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_UpdHead]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @UnitWeight DECIMAL(9, 3) = 0,
+ @CodItemGroup NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500) = ''
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+ -- aggiorno valori QuoteList!
+ UPDATE QuoteList
+ SET CodClient = @CodClient
+ , CodItem = @CodItem
+ , RawMat = @RawMat
+ , BatchQty = @BatchQty
+ , CodInco = @CodInco
+ , Note = ISNULL(@Note,'')
+ , CodItemGroup= @CodItemGroup
+ , UnitWeight = @UnitWeight
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+ -- aggiorno valori QuoteRM
+ UPDATE QuoteRM
+ SET RawMat = @RawMat
+ , RawMatCost = @RawMatCost
+ , RawMatExtraCost = @RawMatExtraCost
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+
+
+ -- @CodDiesGroup
+ DECLARE @CodDiesGroup NVARCHAR(50) = ''
+ SELECT @CodDiesGroup = ValPar
+ FROM QuoteSimPar
+ WHERE QuoteType = @Original_QuoteType
+ AND CodQuote = @Original_CodQuote
+ AND QuoteRev = @Original_QuoteRev
+ AND NomePar = 'CodDiesGroup'
+
+ -- 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
+
+
+ -- update dei valori calcolati!
+ 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
+
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql
new file mode 100644
index 0000000..6a01ed3
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QLS_UpdPackPar.sql
@@ -0,0 +1,45 @@
+
+-- =============================================
+-- 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
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QLS_UpdPackPar]
+(
+ @Original_QuoteType CHAR(1) = 'S',
+ @Original_CodQuote BIGINT = 0,
+ @Original_QuoteRev INT = 0,
+ @CodPackag NVARCHAR(50),
+ @DSR_sim DECIMAL(9, 8)
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- @CodPackag
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'CodPackag', @CodPackag
+
+ -- @DSR_sim
+ EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'DSR_sim', @DSR_sim
+
+
+ -- update dei valori calcolati!
+ 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
+
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql
new file mode 100644
index 0000000..57d32e8
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_clone.sql
@@ -0,0 +1,139 @@
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.23
+-- Description: duplica record QuoteList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_clone]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @QuoteType_orig CHAR(1) = 'Q',
+ @CodQuote_orig BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+-- variabili
+DECLARE @CodQuote BIGINT = 0,
+ @QuoteRev INT = 0
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- calcolo nuovo record odierno
+ SELECT @CodQuote = dbo.f_getNewCodQuote()
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note, PriceOff)
+ SELECT @QuoteType, @CodQuote, @QuoteRev as QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, 'CLONE - ' + Note, PriceOff
+ FROM QuoteList
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ SELECT @QuoteType, @CodQuote, @QuoteRev as QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+
+
+ -- se la scheda di destinazione è simulazione
+ IF(@QuoteType = 'S')
+ BEGIN
+ IF(@QuoteType_orig = 'S')
+ -- se partenza è S duplico dati accessori...
+ BEGIN
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, NomePar, ValPar
+ FROM QuoteSimPar
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ END
+ ELSE
+ -- se partenza è Q carico alcuni dati accessori precompilando...
+ BEGIN
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, Descr, Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr IN ('CodDiesGroup', 'CodPlant')
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'DiesTecLife', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'KgTeo'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'DiesPrice_sim', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'DiesPrice'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'CodPackag', CodPackag
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'NetProd01_sim', NetProd
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'WSR01_sim', WSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, 'DSR_sim', DSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '04'
+ END
+ END
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ ,@CodQuote
+ ,@QuoteRev
+ ,'Y'
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_delete.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_delete.sql
new file mode 100644
index 0000000..6bc4453
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_delete.sql
@@ -0,0 +1,78 @@
+
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2013.01.23
+-- Description: elimina record QuoteList
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_delete]
+(
+ @QuoteType_orig CHAR(1) = 'Q',
+ @CodQuote_orig BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+
+ DELETE
+ FROM QuoteFull_Q
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+
+ DELETE
+ FROM QuoteFull_S
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteFull_R
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteWorkExt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteOC
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ DELETE
+ FROM QuoteList
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+COMMIT TRAN
+
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql
new file mode 100644
index 0000000..1d99c89
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_fullDataCount.sql
@@ -0,0 +1,31 @@
+-- =============================================
+-- Author: Steamware
+-- Mod date: 2014.05.23
+-- Description: conteggio totale record QL
+-- =============================================
+CREATE PROCEDURE dbo.stp_QL_fullDataCount
+(
+ @CodClient NVARCHAR(50) = ''
+ , @CodItem NVARCHAR(50) = ''
+ , @RawMat NVARCHAR(50) = ''
+ , @DataMin DATETIME
+ , @DataMax DATETIME
+ , @qtaMin INT = 0
+ , @qtaMax INT = 999999
+ , @QuoteType CHAR(1) = '*'
+ , @IdxQState INT = '-1'
+)
+AS
+SET NOCOUNT ON
+
+SELECT COUNT(DISTINCT CodQuote) AS num
+FROM v_QuoteFull_Q 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
+ AND vq.CodQuote BETWEEN CONVERT(NVARCHAR(30), @DataMin, 12)*10000 AND (CONVERT(NVARCHAR(30), @DataMax, 12) +1 )*10000
+ 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
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_insNew.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_insNew.sql
index 51c6302..ce11f62 100644
--- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_insNew.sql
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_insNew.sql
@@ -1,57 +1,56 @@
--- =============================================
+
+-- =============================================
-- Author: Steamware
-- Create date: 2014.02.21
-- Description: inserisce un nuovo record QuoteList
-- =============================================
CREATE PROCEDURE [dbo].[stp_QL_insNew]
(
- @QuoteType CHAR(1) = 'Q',
--- @CodQuote BIGINT = 0,
--- @QuoteRev INT = 0,
- @CodClient NVARCHAR(50) = '',
- @CodItem NVARCHAR(50) = '',
- @RawMat NVARCHAR(50),
- @RawMatCost DECIMAL(18, 6),
- @RawMatExtraCost DECIMAL(18, 6),
- @BatchQty INT,
- @CodInco NVARCHAR(5),
- @Note NVARCHAR(2500)
+ @QuoteType CHAR(1) = 'Q',
+ @CodClient NVARCHAR(50) = '',
+ @CodItem NVARCHAR(50) = '',
+ @RawMat NVARCHAR(50),
+ @RawMatCost DECIMAL(18, 6),
+ @RawMatExtraCost DECIMAL(18, 6),
+ @BatchQty INT,
+ @CodInco NVARCHAR(5),
+ @Note NVARCHAR(2500)
)
AS
-- variabili
DECLARE @CodQuote BIGINT = 0,
- @QuoteRev INT = 0
+ @QuoteRev INT = 0
+SET XACT_ABORT ON;
BEGIN TRAN
- -- calcolo nuovo record odierno
- SELECT @CodQuote = dbo.f_getNewCodQuote()
+ -- calcolo nuovo record odierno
+ SELECT @CodQuote = dbo.f_getNewCodQuote()
- -- inserisco riga in QuoteList
- INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, CodItemGroup, RawMat, CodInco, Note)
- SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, CodItemGroup, @RawMat, @CodInco, @Note
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note)
+ SELECT @QuoteType, @CodQuote, @QuoteRev, @CodClient, CodItem, UnitWeight, @BatchQty, CodItemGroup, @RawMat, @CodInco, @Note
FROM ItemDet
WHERE CodItem = @CodItem
- -- ora inserisco in QuoteRM
- INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
- VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, 1, @RawMat, @RawMatCost, @RawMatExtraCost)
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ , @CodQuote
+ , @QuoteRev
+ , 'N'
COMMIT TRAN
--- ricalcolo!
-EXEC stp_QL_fullDataUpdate @QuoteType
- ,@CodQuote
- ,@QuoteRev
- ,'Y'
-
-- seleziono intera riga!
-
SELECT *
FROM QuoteList
WHERE QuoteType = @QuoteType
- AND CodQuote = @CodQuote
- AND QuoteRev = @QuoteRev
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql
new file mode 100644
index 0000000..e253139
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_makeSim.sql
@@ -0,0 +1,112 @@
+-- =============================================
+-- Author: Steamware
+-- Mod date: 2014.05.21
+-- Description: modifica una quotazione da Q ad S in QuoteList e ricalcola
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_makeSim]
+(
+ @CodQuote_orig BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- passo x definizione a 'S'
+ DECLARE @QuoteType_orig CHAR(1) = 'Q',
+ @QuoteType CHAR(1) = 'S'
+
+ -- elimino record in QuoteFull_Q
+ DELETE
+ FROM QuoteFull_Q
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ -- carico alcuni dati accessori precompilando...
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, Descr, Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr IN ('CodDiesGroup', 'CodPlant')
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'DiesTecLife', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'KgTeo'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'DiesPrice_sim', Parameter
+ FROM QuoteParam
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND Descr = 'DiesPrice'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'CodPackag', CodPackag
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'NetProd01_sim', NetProd
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'MSR01_sim', MSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'WSR01_sim', WSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '01'
+
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'DSR_sim', DSR
+ FROM QuoteWorkInt
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+ AND ProcessNum = '04'
+
+ -- update riga in QuoteList
+ UPDATE QuoteList
+ SET QuoteType = @QuoteType
+ WHERE QuoteType = @QuoteType_orig
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ , @CodQuote_orig
+ , @QuoteRev_orig
+ , 'Y'
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote_orig
+ AND QuoteRev = @QuoteRev_orig
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_newRev.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_newRev.sql
new file mode 100644
index 0000000..4e8ee67
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QL_newRev.sql
@@ -0,0 +1,53 @@
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.23
+-- Description: duplica record QuoteList generando una NUOVA REVISIONE
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_QL_newRev]
+(
+ @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 0,
+ @QuoteRev_orig INT = 0
+)
+AS
+
+-- variabili
+DECLARE @QuoteRev INT = 0
+
+SET @QuoteRev = @QuoteRev_orig + 1
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- inserisco riga in QuoteList
+ INSERT INTO QuoteList(QuoteType, CodQuote, QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note)
+ SELECT QuoteType, @CodQuote, @QuoteRev as QuoteRev, CodClient, CodItem, UnitWeight, BatchQty, CodItemGroup, RawMat, CodInco, Note
+ FROM QuoteList
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ora inserisco in QuoteRM
+ INSERT INTO QuoteRM(QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost)
+ SELECT QuoteType, @CodQuote, @QuoteRev as QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost
+ FROM QuoteRM
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev_orig
+
+ -- ricalcolo!
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ ,@CodQuote
+ ,@QuoteRev
+ ,'Y'
+COMMIT TRAN
+
+-- seleziono intera riga!
+SELECT *
+FROM QuoteList
+WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QSP_upsert.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QSP_upsert.sql
new file mode 100644
index 0000000..3cc30d8
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QSP_upsert.sql
@@ -0,0 +1,44 @@
+-- =============================================
+-- 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_QSP_upsert]
+(
+ @QuoteType CHAR(1) = 'S',
+ @CodQuote BIGINT = 0 ,
+ @QuoteRev INT = 0 ,
+ @NomePar NVARCHAR(50) = '' ,
+ @ValPar NVARCHAR(50) = ''
+)
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ -- variabili
+ DECLARE @trovati INT = 0
+
+ -- inserisco CodDiesGroup
+ SELECT @trovati = COUNT(*)
+ FROM QuoteSimPar
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND NomePar = @NomePar
+ IF(@trovati = 0)
+ BEGIN
+ INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar)
+ VALUES(@QuoteType, @CodQuote, @QuoteRev, @NomePar, @ValPar)
+ END
+ ELSE
+ BEGIN
+ UPDATE QuoteSimPar
+ SET ValPar = @ValPar
+ WHERE QuoteType = @QuoteType
+ AND CodQuote = @CodQuote
+ AND QuoteRev = @QuoteRev
+ AND NomePar = @NomePar
+ END
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_QuoteFull_delete.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_QuoteFull_delete.sql
index ad90bb7..0c59b62 100644
--- a/C2P_Project/dbo/Stored Procedures/dbo.stp_QuoteFull_delete.sql
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_QuoteFull_delete.sql
@@ -1,4 +1,5 @@
--- =============================================
+
+-- =============================================
-- Author: Steamware
-- Create date: 2014.02.23
-- Description: upelimina tutti i record di un offerta
@@ -11,6 +12,7 @@ CREATE PROCEDURE [dbo].[stp_QuoteFull_delete]
)
AS
+SET XACT_ABORT ON;
BEGIN tran
-- elimino da QuoteFull
DELETE
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_RMD_getByKey.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_RMD_getByKey.sql
new file mode 100644
index 0000000..5fda462
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_RMD_getByKey.sql
@@ -0,0 +1,9 @@
+CREATE PROCEDURE [dbo].stp_RMD_getByKey
+(
+ @RawMat nvarchar(50)
+)
+AS
+ SET NOCOUNT ON;
+SELECT RawMat, ProcCost, ProcYield, CSR, SSR, SSVA, SSVR, ExtraMatCost, ExtraServCost
+FROM RawMatDet
+WHERE (RawMat = @RawMat)
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_RPT_insertNew.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_RPT_insertNew.sql
new file mode 100644
index 0000000..b37a11b
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_RPT_insertNew.sql
@@ -0,0 +1,32 @@
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.28
+-- Description: insert record di stampa
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_RPT_insertNew]
+(
+ @Ticket INT,
+ @Report NVARCHAR(50),
+ @Chiave NVARCHAR(250),
+ @UserReq NVARCHAR(50),
+ @DataReq DATETIME,
+ @deleteOld BIT = 0
+)
+AS
+
+SET NOCOUNT OFF;
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ -- se richiesto elimino record vecchi (utile x togliere segnaposto iniziale)
+ IF(@deleteOld = 1)
+ BEGIN
+ DELETE FROM ReportPrintTicket WHERE Ticket = @Ticket
+ END
+
+ INSERT INTO ReportPrintTicket (Ticket, Report, Chiave, UserReq, DataReq)
+ VALUES (@Ticket, @Report, @Chiave, @UserReq, @DataReq)
+
+COMMIT TRAN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_RPT_reserveTicket.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_RPT_reserveTicket.sql
new file mode 100644
index 0000000..e086138
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_RPT_reserveTicket.sql
@@ -0,0 +1,35 @@
+
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.04.28
+-- Description: riserva un record per insert richiesta di stampa
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_RPT_reserveTicket]
+(
+ @Report nvarchar(50),
+ @UserReq nvarchar(50)
+
+)
+AS
+SET NOCOUNT OFF;
+
+DECLARE @Ticket int = 0
+ , @Chiave nvarchar(250) = '-'
+ , @DataReq datetime = GETDATE()
+
+SET XACT_ABORT ON;
+BEGIN TRAN
+
+ SELECT @Ticket = MAX(Ticket)
+ FROM ReportPrintTicket
+
+ SET @Ticket = ISNULL(@Ticket, 0) + 1
+
+ INSERT INTO [dbo].[ReportPrintTicket] ([Ticket], [Report], [Chiave], [UserReq], [DataReq])
+ VALUES (@Ticket, @Report, @Chiave, @UserReq, @DataReq)
+
+COMMIT TRAN
+
+SELECT Ticket, Report, Chiave, UserReq, DataReq, DataPrint
+FROM ReportPrintTicket
+WHERE Ticket = @Ticket
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_countRemaining.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_countRemaining.sql
new file mode 100644
index 0000000..97469c3
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_countRemaining.sql
@@ -0,0 +1,16 @@
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.27
+-- Description: conteggio StandardCostList ancora da processare
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_SC2C_countRemaining]
+AS
+
+DECLARE @Date AS SMALLDATETIME = CONVERT(SMALLDATETIME,CONVERT(CHAR(8), GETDATE(), 112))
+
+SELECT COUNT(*) as RecordsIn
+FROM dbo.CostList
+WHERE DateList = @Date AND QuoteType = 'C' AND CodQuote = 0
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_deleteForDate.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_deleteForDate.sql
new file mode 100644
index 0000000..d95f992
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_deleteForDate.sql
@@ -0,0 +1,37 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.29
+-- Description: cancellazione Cost List per data
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_SC2C_deleteForDate]
+ @Date SMALLDATETIME
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+
+ DECLARE @CodQuoteDateMin BIGINT,
+ @CodQuoteDateMax BIGINT;
+
+ SET @Date = CONVERT(SMALLDATETIME,CONVERT(CHAR(8), @Date, 112))
+ SET @CodQuoteDateMin = CONVERT( BIGINT, ( RIGHT(YEAR(@Date),2) + dbo.f_padLeft(MONTH(@Date), 2,'0') + dbo.f_padLeft(DAY(@Date), 2,'0') + dbo.f_padLeft(0, 8,'0') ) )
+ SET @CodQuoteDateMax = CONVERT( BIGINT, ( RIGHT(YEAR(@Date),2) + dbo.f_padLeft(MONTH(@Date), 2,'0') + dbo.f_padLeft(DAY(@Date), 2,'0') + dbo.f_padLeft(9, 8,'9') ) )
+
+ -- cancello i dati di carico
+ DELETE FROM dbo.CostList WHERE DateList = @Date AND QuoteType = 'C'
+
+ DELETE FROM dbo.QuoteOC WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteParam WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteWorkExt WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteWorkInt WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteRM WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteList WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+ DELETE FROM dbo.QuoteFull_C WHERE QuoteType = 'C' AND CodQuote >= @CodQuoteDateMin AND CodQuote <= @CodQuoteDateMax
+
+ -- RIPULISCO TUTTO
+ -- TRUNCATE TABLE CostList
+ -- TRUNCATE TABLE dbo.QuoteFull_C
+
+RETURN
+
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_insertForDate.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_insertForDate.sql
new file mode 100644
index 0000000..22fbde6
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_SC2C_insertForDate.sql
@@ -0,0 +1,29 @@
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.29
+-- Description: creazione dati base per Cost List per data odierna
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_SC2C_insertForDate]
+ @RawMatCost DECIMAL(18,6) = 2,
+ @BatchQty INT = 1000
+AS
+BEGIN
+
+DECLARE @Date AS SMALLDATETIME = CONVERT( SMALLDATETIME,CONVERT(CHAR(8), GETDATE(), 112) ) ;
+
+-- ===========================================================
+-- se non esiste, CREO DATI LISTINO COSTI per il giorno
+-- ===========================================================
+IF NOT EXISTS( SELECT * FROM dbo.CostList WHERE QuoteType = 'C' AND DateList = @Date )
+ BEGIN
+ INSERT INTO dbo.CostList WITH (TABLOCK) ( DateList,CodItem,RawMat,RawMatCost,RawMatExtraCost,batchQty,CodInco )
+ EXEC dbo.stp_QFC_creaListino @RawmatCost , @BatchQty
+
+ -- aggiorno statistiche tabella
+ UPDATE STATISTICS dbo.CostList WITH FULLSCAN;
+ END
+
+RETURN
+
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_checkOffers4Item.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_checkOffers4Item.sql
new file mode 100644
index 0000000..8d1b749
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_checkOffers4Item.sql
@@ -0,0 +1,26 @@
+-- =============================================
+-- Author: Steamware
+-- Create date: 2014.05.11
+-- Description: elenco dati produzione x item indicato
+-- =============================================
+CREATE PROCEDURE dbo.stp_checkOffers4Item (@CodItem NVARCHAR(50) = '')
+AS
+SELECT rmd.RawMat
+ , ISNULL(@CodItem,'-') AS CodItem
+ , COUNT(pl.EventStart) AS numRec
+FROM RawMatDet rmd
+LEFT JOIN (
+ SELECT pl.EventStart
+ , pl.RawMat
+ FROM ProductionLog pl
+ INNER JOIN DiesDet dd
+ ON pl.CodDies = dd.CodDies
+ WHERE dd.CodItem = @CodItem
+ AND ISNULL(pl.RawMat, '') <> ''
+ ) AS pl
+ ON rmd.RawMat = pl.RawMat
+WHERE ISNULL(rmd.RawMat, '') <>''
+GROUP BY rmd.RawMat
+ORDER BY rmd.RawMat
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_getDataCodPackag.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_getDataCodPackag.sql
new file mode 100644
index 0000000..8d3b1d5
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_getDataCodPackag.sql
@@ -0,0 +1,52 @@
+-- =============================================
+-- Author: G.A.R.
+-- Mad. date: 2014-06-06
+-- Description: Ritorna il package e i dati associati dove presenti
+-- sostituisce la relativa funzione UDF f_getDataCodPackag
+-- =============================================
+CREATE PROCEDURE [stp_getDataCodPackag]
+
+ @CodItem NVARCHAR(50),
+ @CodClient NVARCHAR(50),
+ -- output variable
+ @CodPackag NVARCHAR(50) OUTPUT,
+ @TotQta DECIMAL(18, 3) OUTPUT,
+ @Weight DECIMAL(18, 6) OUTPUT,
+ @Tare DECIMAL(18, 6) OUTPUT,
+ @NumImb DECIMAL(9, 6) OUTPUT,
+ @Durata DECIMAL(18, 6) OUTPUT,
+ @LivPackag NVARCHAR(50) OUTPUT,
+ @LivPackagDet NVARCHAR(50) OUTPUT
+AS
+BEGIN
+
+ SET NOCOUNT ON;
+ SET XACT_ABORT ON;
+
+ IF EXISTS ( SELECT * FROM dbo.Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem)
+ -- primo tentativo: cerco il package dato SIA cliente che ITEM
+ BEGIN
+ SELECT TOP 1 @CodPackag = CodPackag, @TotQta = TotQta, @Weight = Weight, @Tare = Tare, @NumImb = NumImb, @Durata = Durata
+ ,@LivPackag = 'Item-Client-Package' , @LivPackagDet = @CodItem + '-' + @CodClient + '-' + CodPackag
+ FROM dbo.Package2ItemClient
+ WHERE CodClient = @CodClient AND CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE IF EXISTS ( SELECT * FROM Package2Item WHERE CodItem = @CodItem )
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ SELECT TOP 1 @CodPackag = CodPackag, @TotQta = TotQta, @Weight = Weight, @Tare = Tare, @NumImb = NumImb, @Durata = Durata
+ ,@LivPackag = 'Item-Package', @LivPackagDet = @CodItem + '-' + CodPackag
+ FROM dbo.Package2Item WHERE CodItem = @CodItem
+ ORDER BY TotQta DESC
+ END
+ ELSE
+ -- secondo tentativo: se non lo trovo cerco per SOLO ITEM
+ BEGIN
+ SELECT TOP 1 @CodPackag = CodPackag, @TotQta = TotQta, @Weight = Weight, @Tare = Tare, @NumImb = NumImb, @Durata = Durata
+ ,@LivPackag = 'Package', @LivPackagDet = CodPackag
+ FROM dbo.Package2 WHERE CodPackag = 0
+ END
+END
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_insNewLemma.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_insNewLemma.sql
deleted file mode 100644
index e07fb76..0000000
--- a/C2P_Project/dbo/Stored Procedures/dbo.stp_insNewLemma.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-/*************************************
-* STORED PROCEDURE stp_insNewLemma
-*
-* elimina record anagrafica classe prodotto
-*
-* mod : 14/05/2012
-* aut : S.E. Locatelli
-**************************************/
-CREATE PROCEDURE [dbo].[stp_insNewLemma]
-(
- @lemma NVARCHAR(50),
- @traduzione NVARCHAR(500)
-)
-AS
-
--- elimino se c'era già...
-DELETE
-FROM dbo.Vocabolario
-WHERE lemma = @lemma
-
--- inserisco x tutte le lingue attive...
-INSERT INTO dbo.Vocabolario
-SELECT lingua, @lemma, @traduzione
-FROM Lingue
-
-SELECT *
-FROM dbo.Vocabolario
-WHERE lemma = @lemma
-
-RETURN
\ 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
new file mode 100644
index 0000000..a922fa8
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_Q_Data.sql
@@ -0,0 +1,470 @@
+-- =============================================
+-- STORED PROCEDURE stp_prt_dsQuoteFull_Q_Data
+--
+-- Author: Steamware
+-- Mod date: 2014.04.28
+-- Description: dataset stp_prt_dsQuoteFull_Q_Data per reportOffers
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_prt_dsQuoteFull_Q_Data]
+ @Ticket AS INT = 1
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+/*
+ Se decidiamo di separare le traduzioni dei lemmi tra Applicazione e stampa basta usare la prima cte come insert
+ nella tabella vocabolario e poi sostituire la cte con la tabella vocabolario stessa
+*/
+
+SELECT
+ -- chiave
+ Vers
+ , QuoteType
+ , CodQuote
+ , QuoteRev
+ -- valori
+ , 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
+ , P_FVC
+ , CPS
+ , P_CPS
+ , P_FC4UG04
+ , FullCost
+ , P_FullCost
+ , MinPrice
+ , P_MinPrice
+ , P_PriceOff
+ , NetMar
+ , FCShield
+ , PckSur
+ , valid
+ , errorScore
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ , NetMar_sim
+ , FCShield_sim
+ , MinPrice_sim
+ , P_MinPrice_sim
+
+FROM dbo.v_QuoteFull_Q AS qf
+INNER JOIN dbo.ReportPrintTicket AS prt
+ ON qf.QuoteType = dbo.f_prt_getParameter ( 'QuoteType', prt.Chiave , '&')
+ AND qf.CodQuote = dbo.f_prt_getParameter ( 'CodQuote' , prt.Chiave , '&')
+ AND qf.QuoteRev = dbo.f_prt_getParameter ( 'QuoteRev' , prt.Chiave +'&' , '&')
+ AND prt.Ticket = @Ticket
+
+
+/* OLD VERSION
+WITH Cte AS -- carico i lemmi dei campi che mi servono per la stampa
+(
+SELECT Lingua,
+ 'prt1_'+ Lemma AS Lemma,
+ CASE WHEN @Lingua = 'LB'
+ THEN Lemma
+ ELSE Traduzione END
+ AS Traduzione -- il lemma corrisponde ai campi
+FROM Vocabolario
+WHERE Lemma IN ( 'ClientName'
+ ,'CodClient'
+ ,'CodItem'
+ ,'ItemDescr'
+ ,'CodifProfilo'
+ ,'ClasseMerc'
+ ,'CodClientAssoc'
+ ,'ClientNameAssoc'
+ ,'CodItemGroup'
+ ,'UnitWeight'
+ ,'RawMat'
+ ,'RawMatCost'
+ ,'RawMatExtraCost'
+ ,'RawMatFullCost'
+ ,'RawMatCost'
+ ,'RawMatExtraCost'
+ ,'BatchQty'
+ ,'ProvvCost'
+ ,'CodInco','TipoDies'
+ ,'CodDiesGroup'
+ ,'DiamDies'
+ ,'DiesPrice'
+ ,'HoleNumDies'
+ ,'DiesExpLife'
+ ,'NumDiesInList'
+ ,'DiesEOLife'
+ ,'NumDiesExaust'
+ ,'CodPlant'
+ ,'HoleNumDies'
+ ,'KeyAMIL'
+ ,'KgTeo'
+ ,'WSR01'
+ ,'NumSMED'
+ ,'MSR01'
+ ,'NetProd01'
+ ,'CodPackag'
+ ,'NetProd04'
+ ,'QuotaMan'
+ ,'LivPackage'
+ ,'LivPackageDet'
+ ,'PkgDesc'
+ ,'PRMWeight'
+ ,'DSR'
+ ,'PWeight'
+ ,'PTare'
+ ,'FSR'
+ ,'RefCost01'
+ ,'SellCost01'
+ ,'EECost'
+ ,'GasCost'
+ ,'DiesCost'
+ ,'RefCost04'
+ ,'SellCost04'
+ ,'PackCost'
+ ,'ProvvCost'
+ ,'TranspCost'
+ ,'VC4UG01'
+ ,'VC4UG04'
+ ,'SC4UG01'
+ ,'FVC'
+ ,'P_FVC'
+ ,'CPS'
+ ,'P_CPS'
+ ,'FC4UG04'
+ ,'P_FC4UG04'
+ ,'FullCost'
+ ,'P_FullCost'
+ ,'MinPrice'
+ ,'P_MinPrice'
+ ,'Charge'
+ ,'PriceOff'
+ ,'P_PriceOff'
+ ,'NetMar'
+ ,'FCShield'
+ ,'PckSur'
+ )
+),
+ctepvt AS ( -- faccio pivot dei lemmi e loro traduzioni
+ SELECT
+ Lingua,
+ prt1_BatchQty,
+ prt1_Charge,
+ prt1_ClasseMerc,
+ prt1_ClientName,
+ prt1_ClientNameAssoc,
+ prt1_CodClient,
+ prt1_CodClientAssoc,
+ prt1_CodDiesGroup,
+ prt1_CodifProfilo,
+ prt1_CodInco,
+ prt1_CodItem,
+ prt1_CodItemGroup,
+ prt1_CodPackag,
+ prt1_CodPlant,
+ prt1_CPS,
+ prt1_DiamDies,
+ prt1_DiesCost,
+ prt1_DiesEOLife,
+ prt1_DiesExpLife,
+ prt1_DiesPrice,
+ prt1_DSR,
+ prt1_EECost,
+ prt1_FC4UG04,
+ prt1_FCShield,
+ prt1_FSR,
+ prt1_FullCost,
+ prt1_FVC,
+ prt1_GasCost,
+ prt1_HoleNumDies,
+ prt1_ItemDescr,
+ prt1_KeyAMIL,
+ prt1_KgTeo,
+ prt1_LivPackage,
+ prt1_LivPackageDet,
+ prt1_MinPrice,
+ prt1_MSR01,
+ prt1_NetMar,
+ prt1_NetProd01,
+ prt1_NetProd04,
+ prt1_NumDiesExaust,
+ prt1_NumDiesInList,
+ prt1_NumSMED,
+ prt1_P_CPS,
+ prt1_P_FC4UG04,
+ prt1_P_FullCost,
+ prt1_P_FVC,
+ prt1_P_MinPrice,
+ prt1_P_PriceOff,
+ prt1_PackCost,
+ prt1_PckSur,
+ prt1_PkgDesc,
+ prt1_PriceOff,
+ prt1_PRMWeight,
+ prt1_ProvvCost,
+ prt1_PTare,
+ prt1_PWeight,
+ prt1_QuotaMan,
+ prt1_RawMat,
+ prt1_RawMatCost,
+ prt1_RawMatExtraCost,
+ prt1_RawMatFullCost,
+ prt1_RefCost01,
+ prt1_RefCost04,
+ prt1_SC4UG01,
+ prt1_SellCost01,
+ prt1_SellCost04,
+ prt1_TipoDies,
+ prt1_TranspCost,
+ prt1_UnitWeight,
+ prt1_VC4UG01,
+ prt1_VC4UG04,
+ prt1_WSR01
+ FROM ( SELECT * FROM cte
+ WHERE Lemma Like 'prt1%' ) AS tab -- al momento non serve ma se mettiamo i lemmi separati con prt1_ in vocabolario
+ PIVOT ( MIN ( Traduzione ) -- possiamo semplicemente sostituire la tab vocabolario alla cte
+ FOR Lemma IN (
+ prt1_BatchQty,
+ prt1_Charge,
+ prt1_ClasseMerc,
+ prt1_ClientName,
+ prt1_ClientNameAssoc,
+ prt1_CodClient,
+ prt1_CodClientAssoc,
+ prt1_CodDiesGroup,
+ prt1_CodifProfilo,
+ prt1_CodInco,
+ prt1_CodItem,
+ prt1_CodItemGroup,
+ prt1_CodPackag,
+ prt1_CodPlant,
+ prt1_CPS,
+ prt1_DiamDies,
+ prt1_DiesCost,
+ prt1_DiesEOLife,
+ prt1_DiesExpLife,
+ prt1_DiesPrice,
+ prt1_DSR,
+ prt1_EECost,
+ prt1_FC4UG04,
+ prt1_FCShield,
+ prt1_FSR,
+ prt1_FullCost,
+ prt1_FVC,
+ prt1_GasCost,
+ prt1_HoleNumDies,
+ prt1_ItemDescr,
+ prt1_KeyAMIL,
+ prt1_KgTeo,
+ prt1_LivPackage,
+ prt1_LivPackageDet,
+ prt1_MinPrice,
+ prt1_MSR01,
+ prt1_NetMar,
+ prt1_NetProd01,
+ prt1_NetProd04,
+ prt1_NumDiesExaust,
+ prt1_NumDiesInList,
+ prt1_NumSMED,
+ prt1_P_CPS,
+ prt1_P_FC4UG04,
+ prt1_P_FullCost,
+ prt1_P_FVC,
+ prt1_P_MinPrice,
+ prt1_P_PriceOff,
+ prt1_PackCost,
+ prt1_PckSur,
+ prt1_PkgDesc,
+ prt1_PriceOff,
+ prt1_PRMWeight,
+ prt1_ProvvCost,
+ prt1_PTare,
+ prt1_PWeight,
+ prt1_QuotaMan,
+ prt1_RawMat,
+ prt1_RawMatCost,
+ prt1_RawMatExtraCost,
+ prt1_RawMatFullCost,
+ prt1_RefCost01,
+ prt1_RefCost04,
+ prt1_SC4UG01,
+ prt1_SellCost01,
+ prt1_SellCost04,
+ prt1_TipoDies,
+ prt1_TranspCost,
+ prt1_UnitWeight,
+ prt1_VC4UG01,
+ prt1_VC4UG04,
+ prt1_WSR01 ) ) AS pvt
+)
+SELECT
+ -- chiave
+ Vers
+ ,QuoteType
+ ,CodQuote
+ ,QuoteRev
+ -- valori
+ ,BatchQty
+ ,Charge
+ ,ClasseMerc
+ ,ClientName
+ ,ClientNameAssoc
+ ,CodClient
+ ,CodClientAssoc
+ ,CodDiesGroup
+ ,CodifProfilo
+ ,CodInco
+ ,CodItem
+ ,CodItemGroup
+ ,CodPackag
+ ,CodPlant
+ ,CPS
+ ,DiamDies
+ ,DiesCost
+ ,DiesEOLife
+ ,DiesExpLife
+ ,DiesPrice
+ ,DSR
+ ,EECost
+ ,FC4UG01
+ ,FC4UG04
+ ,FCShield
+ ,FSR
+ ,FullCost
+ ,FVC
+ ,GasCost
+ ,HoleNumDies
+ ,IdxQState
+ ,ItemDescr
+ ,KeyAM
+ ,KeyAMIL
+ ,KgTeo
+ ,LivPackage
+ ,LivPackageDett
+ ,MinPrice
+ ,MSR01
+ ,NetMar
+ ,NetProd01
+ ,NetProd04
+ ,Note
+ ,NumDiesExaust
+ ,NumDiesInList
+ ,NumSMED
+ ,OH4UG01
+ ,P_CPS
+ ,P_FC4UG04
+ ,P_FullCost
+ ,P_FVC
+ ,P_MinPrice
+ ,P_PriceOff
+ ,PackCost
+ ,PckSur
+ ,PkgDesc
+ ,PriceOff
+ ,PRMWeight
+ ,ProvvCost
+ ,PTare
+ ,PWeight
+ ,QuotaMan
+ ,RawMat
+ ,RawMatCost
+ ,RawMatExtraCost
+ ,RawMatFullCost
+ ,RefCost01
+ ,RefCost04
+ ,SC4UG01
+ ,SellCost01
+ ,SellCost04
+ ,TipoDies
+ ,TranspCost
+ ,UnitWeight
+ ,VC4UG01
+ ,VC4UG04
+ ,WSR01
+ -- lemmi x traduzione etichette campi
+ ,ctepvt.*
+FROM dbo.v_QuoteFull_Q
+INNER JOIN ctepvt
+-- ON ctepvt.Lingua = 'EN' -- qui va messa la variabile della lingua di stampa
+-- ON ctepvt.Lingua = @Lingua -- 'EN' -- qui va messa la variabile della lingua di stampa
+ON ctepvt.Lingua = CASE WHEN @Lingua = 'LB' -- se richiede le Label dei campi estraggo i lemmi in inglese
+ THEN 'EN'
+ ELSE @Lingua
+ END
+*/
+
+END
\ No newline at end of file
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
new file mode 100644
index 0000000..497d384
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_prt_dsQuoteFull_byChiave.sql
@@ -0,0 +1,135 @@
+-- =============================================
+-- STORED PROCEDURE stp_prt_dsQuoteFull_Q_Data
+--
+-- Author: Steamware
+-- Mod date: 2014.05.23
+-- Description: dataset stp_prt_dsQuoteFull_Q_Data per reportOffers
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_prt_dsQuoteFull_byChiave]
+(
+ @Chiave AS NVARCHAR(50) = ''
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+/*
+ Se decidiamo di separare le traduzioni dei lemmi tra Applicazione e stampa basta usare la prima cte come insert
+ nella tabella vocabolario e poi sostituire la cte con la tabella vocabolario stessa
+*/
+
+SELECT
+ -- chiave
+ Vers
+ , QuoteType
+ , CodQuote
+ , QuoteRev
+ -- valori
+ , 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
+ , P_FVC
+ , CPS
+ , P_CPS
+ , P_FC4UG04
+ , FullCost
+ , P_FullCost
+ , MinPrice
+ , P_MinPrice
+ , P_PriceOff
+ , NetMar
+ , FCShield
+ , PckSur
+ , valid
+ , errorScore
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ , NetMar_sim
+ , FCShield_sim
+ , MinPrice_sim
+ , P_MinPrice_sim
+
+FROM dbo.v_QuoteFull_Q
+WHERE QuoteType = dbo.f_prt_getParameter ( 'QuoteType', @Chiave , '&')
+ AND CodQuote = dbo.f_prt_getParameter ( 'CodQuote' , @Chiave , '&')
+ AND QuoteRev = dbo.f_prt_getParameter ( 'QuoteRev' , @Chiave +'&' , '&')
+
+
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/dbo.stp_zzz_scratchDatiDemo.sql b/C2P_Project/dbo/Stored Procedures/dbo.stp_zzz_scratchDatiDemo.sql
new file mode 100644
index 0000000..1c19999
--- /dev/null
+++ b/C2P_Project/dbo/Stored Procedures/dbo.stp_zzz_scratchDatiDemo.sql
@@ -0,0 +1,328 @@
+
+
+
+-- =============================================
+-- Author: G.A.R.
+-- Create date: 2014.05.12
+-- Description: Procedura sostituzione dati con dati DEMO
+-- =============================================
+CREATE PROCEDURE [dbo].[stp_zzz_scratchDatiDemo]
+AS
+BEGIN
+
+ -- dichiaro e imposto periodo di calcolo dei valori
+ -- andrà impostato in una tabella e mi determinerà la versione dei dati
+ DECLARE @dateFrom AS DateTime;
+ DECLARE @dateTo AS DateTime;
+
+ SET @dateFrom = '20100101'
+ SET @dateTo = '20130929'
+
+ -- ==========================================
+ -- IMPORTAZIONE DATI CSV --- QUI NON SERVER DATI GIA' CARICATI
+ -- ==========================================
+ -- exec tmp.importProductionLogRaw
+ --exec tmp.importClientsRaw
+ --exec tmp.importTranspCostRaw
+ --exec tmp.importItemsRaw
+ --exec tmp.importPackagRaw
+ --exec tmp.importDiesRaw
+ -- -- questo sotto va fatto solo se ci sono dati da integrare in DiesRaw
+ --exec tmp.importDiesGroupRaw
+ --select top 10 * FROM tmp.ProductionLogRaw
+ --select * FROM tmp.ClientsRaw
+ --select * FROM tmp.ItemsRaw
+ --select * FROM tmp.PackagRaw
+ --select * FROM tmp.DiesRaw
+ --select * FROM tmp.DiesGroupRaw
+
+ -- Se ci sono record con Item doppi li cancello????
+ --SELECT CodItem,COUNT(*) as qty
+ --FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a
+ --GROUP BY CodItem
+ --having COUNT(*)>1
+
+ --delete from tmp.ItemsRaw
+ --where CodItem IN
+ --(
+ -- SELECT CodItem
+ -- FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a
+ -- GROUP BY CodItem
+ -- having COUNT(*)>1
+ --)
+
+
+ -- ===========================================================
+ -- CARICO DATI IN RAW EXT ( da Char a Tipi corretti ) cancella e carica da Tabelle TMP
+ -- ===========================================================
+ exec tmp.convertClientsRaw
+ exec tmp.convertTranspCostRaw
+ exec tmp.convertItemsRaw
+ exec tmp.convertProductionLogRaw
+ exec tmp.convertPackagRaw
+ exec tmp.convertDiesRaw
+
+ -- necessario se integriamo i dati x i gruppi di matrici con un file
+ exec tmp.convertDiesGroupRaw
+-- exec tmp.convertDiesGroupRaw 'DiesDet' -- integro i gruppi mancanti ??? TOLTO
+
+ select top 10 * FROM ext.ProductionLogRaw
+ select * FROM ext.ClientsRaw
+ select * FROM ext.ItemsRaw
+ select * FROM ext.PackagRaw
+ select * FROM ext.DiesRaw
+ SELECT * FROM ext.DiesGroupRaw
+
+ -- elimino a mano dato con oltre 68 anni di evento... prob. non serve più
+ --select *
+ ----delete
+ --from ext.ProductionLogRaw where DATEDIFF(YEAR,EventStart,EventEnd)> 10
+
+ -- =======================================
+ -- cancello le tabelle che ricarico
+ -- =======================================
+
+ -- exec ext.stp_mergeAgentsDet -- NON DEMO campi non modificati x DEMO
+
+ TRUNCATE TABLE dbo.ProductionLog
+ TRUNCATE TABLE dbo.Package2ItemClient
+ TRUNCATE TABLE dbo.Package2Item
+ TRUNCATE TABLE dbo.Cost2Plant -- forse meglio non cancellarli e sostituirli in import? ma se non li ho in anagrafica non riesco!!!
+ DELETE FROM dbo.PlantsDet
+ DELETE FROM dbo.ClientDet
+
+ exec ext.stp_mergeClientDet 'ProductionLogRaw'
+ exec ext.stp_mergeClientDet 'ClientsRaw'
+
+ -- exec ext.stp_mergeTranspCostDet 'TranspCostRaw' -- NON DEMO
+ exec ext.stp_mergePlantsDet
+ -- exec ext.stp_mergeCost2Plant non carica i valori caricati a mano dopo
+
+ TRUNCATE TABLE dbo.DiesDet
+ DELETE FROM dbo.DiesGroupDet
+ DELETE FROM dbo.ItemDet
+ exec ext.stp_mergeItemDet 'ItemsRaw'
+ exec ext.stp_mergePackagDet 'ProductionLogRaw' -- 'PackagRaw'
+
+ exec ext.stp_mergeDiesDet
+ -- se ricarico diesgroup... ricarico solo i campi che nel file sono <> ''
+ exec ext.stp_mergeDiesGroupDet
+
+ DELETE FROM dbo.RawMatDet
+ exec ext.stp_mergeRawMat
+ exec ext.stp_updateProductionLog
+
+ --DECLARE @dateFrom AS DateTime;
+ --DECLARE @dateTo AS DateTime;
+
+ --SET @dateFrom = '20100101'
+ --SET @dateTo = '20130929'
+ exec ext.stp_mergePackage2ItemClient 'ProductionLog', @dateFrom, @dateTo
+ exec ext.stp_mergePackage2Item 'ProductionLog', @dateFrom, @dateTo
+ exec ext.stp_mergePackage2 'ProductionLog', @dateFrom, @dateTo
+
+ -- =========================================================================
+ -- aggiorno CodPlan nelle Utilities ( sono state caricate a mano ??? )
+ -- =========================================================================
+ SELECT * FROM utilities
+ UPDATE Utilities
+ SET CodPlant = tp.CodPlantNew
+ FROM Utilities AS u
+ INNER JOIN TrascPlan tp ON u.CodPlant = tp.CodPlant
+
+ ---- aggiorno quota agenti a 0.037
+ ----update AgentsDet set quotaperc=0.0374
+
+ --SELECT DISTINCT dr.CodItem FROM ext.DiesRaw dr LEFT OUTER JOIN ItemDet id ON dr.CodItem = id.CodItem
+ --where id.CodItemGroup is null
+
+ select * from ClientDet
+ select * from ItemDet
+ select * from Package2ItemClient
+ select * from Package2Item
+ select * from Package2
+ select * from PackagDet
+ select * from DiesGroupDet where EOLLife > 0
+ select * from DiesDet
+ select * from DiesGroupDet
+ select * from AgentsDet
+ select * from PlantsDet
+ select * from Cost2Plant
+ select * from utilities
+ select top 100 * from ProductionLog
+
+ --update tmp.ProductionLogRaw
+ --set
+ -- okPr = 1
+ -- , okDi = 1
+ -- , okQM = 1
+ -- , okSc = 1
+
+ --select distinct ProcessNum from ProductionLog
+ --select top 10 * from ext.ProductionLogRaw
+
+ ---- fix errore packaging
+ --update tmp.ProductionLogRaw
+ --SET CodPackag='4'
+ --where CodPackag LIKE '%4%' and CodPackag <> '4'
+ --select * from tmp.ProductionLogRaw where CodPackag LIKE '%4%' and CodPackag <> '4'
+
+ --SELECT p.CodDies, CodItem, CodClient, CodPackag, p.* FROM ext.ProductionLogRaw AS p
+ --LEFT JOIN dbo.DiesDet AS d ON p.CodDies = d.CodDies
+ --WHERE CodItem IS NULL
+
+ -- ===========================
+ -- parte CALCOLI!!!
+ -- ===========================
+
+ TRUNCATE TABLE [dbo].[QuoteWorkInt]
+ TRUNCATE TABLE [dbo].[QuoteWorkExt]
+ TRUNCATE TABLE [dbo].QuoteParam
+ TRUNCATE TABLE [dbo].QuoteOC
+ TRUNCATE TABLE [dbo].[QuoteFull_Q]
+
+ --TRUNCATE TABLE [dbo].QuoteRM -- controllare prima di cancellare
+ --DELETE FROM QuoteList
+
+ SELECT * FROM QuoteList
+ SELECT TOP 1000 * FROM QuoteRM
+
+ --select * from ClientDet where CodClient='05000001048'
+ --select * from itemdet
+ --where CodItem like '1PT00102%'
+
+ select * from RawMatDet
+
+ --Q 1312130001 0 05000001048 1PT00102 A 7020 7673,400 1000 CPT NULL NULL NULL NULL
+
+ SELECT --TOP 10
+ dd.CodItem, pl.RawMat, dd.CodItem + '-' + pl.RawMat as KeyAM, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
+ ,dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
+ ,0 as NumSMED -- numero cambi, da sistemare...
+ , SUM(QtyOUT) as KgTeorici, SUM(Duration) AS Durata
+ ,ISNULL(SUM(QtyOUT),0)/ISNULL(SUM(Duration), 1) as ProduttTeo
+ FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ WHERE pl.ProcessNum='01' and pl.EventType=1
+ GROUP BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
+ ORDER BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
+
+ -- ==========================================
+ -- re-insert dei dati di produzione x statistiche
+ -- ==========================================
+ --DECLARE @dateFrom AS DateTime;
+ --DECLARE @dateTo AS DateTime;
+ --SET @dateFrom = '20100101'
+ --SET @dateTo = '20130929'
+
+ exec stp_TPS_upsert @dateFrom, @dateTo
+ exec stp_TD_upsert @dateFrom , @dateTo
+-- exec stp_TI_upsert @dateFrom , @dateTo -- adesso sono già calcolati e inseriti in Package2 / Package2Item
+
+ SELECT TOP 1000 * FROM TabProdSc
+ SELECT TOP 1000 * FROM TabDifett
+
+ -- ==========================================
+ -- salvo nuova revisione dati di produzione...
+ -- Va messa in ogni procedura di update con 'procedura' e versione anno-mese-giorno
+ -- ==========================================
+ --INSERT INTO RevHistory
+ --SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fase 04 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120)
+ --FROM RevHistory
+ --WHERE RevType = 'P'
+ -- AND RevNum = 1 -- mod. 14/05 GCARLO altrimenti ne crea una per ogni riga di RevHistory
+
+ --select * from RevHistory
+
+ -- simulazione tempo di calcolo: circa 50/sec
+ ---- aggiornamento dei dati dell'offerta in oggetto
+ --DECLARE @tick DATETIME,
+ -- @idx INT = 100
+ --SET @tick = GETDATE()
+ --WHILE @idx > 0
+ --BEGIN
+ -- EXEC stp_QL_update 'Q', 1312130001, 0
+ -- SELECT @idx = @idx - 1
+ --END
+ --SELECT GETDATE() - @tick as tempo
+
+/*
+ ARRIVATO QUI - da errore la funzione f_getSubstring perchè ritorna NULL al posto di '' ??? riga della stored 295 dovuto a trasformazione dei gruppi Dies - sistemato
+*/
+
+ -- prima aggiorno i dati di Cost2Plant che non si sa da dove arrivano ( caricati a mano??? )
+
+ SELECT TOP 1000 * FROM Cost2Plant
+ SELECT TOP 1000 * FROM Proxima_C2P.dbo.Cost2Plant
+ SELECT * from TrascPlan
+
+ DELETE FROM Cost2Plant
+
+ INSERT INTO Cost2Plant
+ SELECT t.CodPlantNew, ProcessNum, FC, VC, OH, SC, QuotaPlantStd, QuotaManStd
+ FROM Proxima_C2P.dbo.Cost2Plant AS cp
+ LEFT JOIN TrascPlan AS t ON cp.CodPlant = t.CodPlant
+
+ -- GCARLO DEVO creare la riga per il test, la copio da quella di sviluppo e agg. i dati di demo
+ SELECT TOP 1000 * FROM QuoteList
+ SELECT TOP 1000 * FROM QuoteRM
+ SELECT TOP 1000 * FROM Proxima_C2P.dbo.QuoteList
+ SELECT TOP 1000 * FROM Proxima_C2P.dbo.QuoteRM WHERE CodQuote = '1402050001'
+
+ -- creo righe di test
+ INSERT QuoteList
+ SELECT QuoteType, CodQuote, QuoteRev, IdxQState, CodClientNew, CodItemNew, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice, valid, errorScore
+ FROM Proxima_C2P.[dbo].[QuoteList] AS q
+ INNER JOIN [dbo].[TrascClient] AS tc ON q.CodClient = tc.CodClient
+ INNER JOIN dbo.TrascItem AS ti ON q.CodItem = ti.CodItem
+
+ INSERT QuoteRM
+ SELECT QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost, CodPackag, FCR, valid
+ FROM Proxima_C2P.[dbo].[QuoteRM]
+
+ UPDATE QuoteList
+ SET CodClient = ( SELECT CodClientNew FROM TrascClient WHERE CodClient = '05000000382' )
+ ,CodItem = ( SELECT CodItemNew FROM TrascItem WHERE CodItem = '3DI05376' )
+ WHERE CodQuote = '1402050001'
+
+ -- *** ESEGUO L'AGGIORNAMENTO ****
+
+ DECLARE @QuoteType CHAR(1) = 'Q',
+ @CodQuote BIGINT = 1402050001,
+ @QuoteRev INT = 0,
+ @PriceOff DECIMAL(9, 6) = 0
+
+ -- EXEC stp_QL_update 'Q', 1402050001, 0 -- <<<<< ERRORE
+ -- EXECUTE dbo.stp_QuoteFull_Q_update 'Q', 1402050001, 0, 0.1 -- crea il record in QuoteFull_Q
+
+ EXEC stp_QL_update @QuoteType, @CodQuote, @QuoteRev
+ SELECT @PriceOff = PriceOff FROM QuoteList WHERE CodQuote= @CodQuote AND QuoteRev = @QuoteRev
+ EXECUTE dbo.stp_QuoteFull_Q_update @QuoteType, @CodQuote, @QuoteRev -- crea il record in QuoteFull_Q
+
+ SELECT * FROM QuoteList WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ SELECT * FROM QuoteRM WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ SELECT * FROM QuoteWorkInt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ SELECT * FROM QuoteWorkExt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ SELECT * FROM QuoteOC WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+ SELECT * FROM QuoteParam WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
+
+ select top 10 * from ItemDet
+
+ SELECT * FROM RawMatDet
+
+ SELECT top 10 * FROM TabProdSc
+ SELECT top 10 * FROM TabDifett
+-- SELECT * FROM TabImbArt
+-- SELECT * FROM TabImbGrp
+ SELECT * FROM PackagDet
+ SELECT * FROM Package2
+
+ ---- test gestione selezione CodPackag corretto
+ --SELECT TOP 5 * FROM Package2ItemClient
+ --SELECT TOP 5 * FROM Package2Item
+ --SELECT TOP 5 * FROM Package2
+
+ -- SELECT dbo.f_getCodPackag('1EL00005', '05000001048')
+ --SELECT dbo.f_getCodPackag('1AN00001', '05000000137')
+
+
+END
\ No newline at end of file
diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql
index 7e6801d..30ca496 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_QL_fullData.sql
@@ -14,10 +14,13 @@ CREATE PROCEDURE [dbo].[stp_QL_fullData] (
AS
SET NOCOUNT ON
-EXEC stp_QL_fullDataUpdate @QuoteType
- , @CodQuote
- , @QuoteRev
- , @DoUpdate
+IF(@QuoteType <> '' AND @DoUpdate = 'N')
+BEGIN
+ EXEC stp_QL_fullDataUpdate @QuoteType
+ , @CodQuote
+ , @QuoteRev
+ , @DoUpdate
+END
---- calcolo con aggiunta campi sommati...
--SELECT *
diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql
index 1c82fa5..0e8040c 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataSearch.sql
@@ -2,26 +2,42 @@
-- STORED PROCEDURE stp_QL_fullDataSearch
--
-- Author: Steamware
--- Create date: 2014.02.11
+-- Mod date: 2014.02.11
-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema con ricerca x cliente, item, materiale
-- =============================================
CREATE PROCEDURE [dbo].[stp_QL_fullDataSearch]
(
- @CodClient NVARCHAR(50) = ''
- , @CodItem NVARCHAR(50) = ''
- , @RawMat NVARCHAR(50) = ''
- , @DataMin DATETIME
- , @DataMax DATETIME
+ @CodClient NVARCHAR(50) = ''
+ , @CodItem NVARCHAR(50) = ''
+ , @RawMat NVARCHAR(50) = ''
+ , @DataMin DATETIME
+ , @DataMax DATETIME
+ , @qtaMin INT = 0
+ , @qtaMax INT = 999999
+ , @QuoteType CHAR(1) = '*'
+ , @IdxQState INT = '-1'
)
AS
SET NOCOUNT ON
+-- cte x selezionare solo ultime revisioni...
+;WITH myCte AS
+(
+ SELECT QuoteType, CodQuote, MAX(QuoteRev) AS QuoteRev
+ FROM QuoteList
+ GROUP BY QuoteType, CodQuote
+)
-- calcolo con aggiunta campi sommati...
-SELECT *
-FROM v_QuoteFull_Q
-WHERE CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN CodClient ELSE @CodClient END
- AND CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN CodItem ELSE @CodItem END
- AND RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN RawMat ELSE @RawMat END
- --AND CodQuote BETWEEN CONVERT(NVARCHAR(30), @DataMin, 12)*10000 AND (CONVERT(NVARCHAR(30), @DataMax, 12) +1 )*10000 -- FARE FILTRO DATE!!! non c'è vero campo data...
+SELECT vq.*
+FROM v_QuoteFull_Q 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
+ AND vq.RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN vq.RawMat ELSE @RawMat END
+ AND vq.CodQuote BETWEEN CONVERT(NVARCHAR(30), @DataMin, 12)*10000 AND (CONVERT(NVARCHAR(30), @DataMax, 12) +1 )*10000
+ 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
+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 ffb7eaa..7455b27 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataUpdate.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_QL_fullDataUpdate.sql
@@ -1,4 +1,8 @@
--- =============================================
+
+
+
+
+-- =============================================
-- STORED PROCEDURE stp_QL_fullDataUpdate
--
-- Author: Steamware
@@ -6,10 +10,10 @@
-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen 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
@@ -30,9 +34,9 @@ SET NOCOUNT ON
-- , @MinPrice DECIMAL(9,6)
IF (@DoUpdate = 'Y')
BEGIN
- EXEC stp_QL_update @QuoteType
- , @CodQuote
- , @QuoteRev
+ EXEC dbo.stp_QL_update @QuoteType
+ , @CodQuote
+ , @QuoteRev
END
@@ -60,9 +64,7 @@ AS (
, Descr
, Parameter
FROM dbo.QuoteParam
- WHERE CodQuote = @CodQuote
- AND QuoteType = @QuoteType
- AND QuoteRev = @QuoteRev
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev
) AS SourceTable
PIVOT(MIN(Parameter) FOR Descr IN (
@@ -87,6 +89,7 @@ AS (
, DiesPrice
, DiesExpLife
, DiesEOLife
+ , DiesByClass
, PkgDesc
, PRMWeight
, PWeight
@@ -94,6 +97,23 @@ AS (
, 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
+ , DSR_sim
+ -- end nuovi campi x SIM
)
) AS PivotData
),
@@ -109,9 +129,7 @@ ctePivotQuoteOC AS (
, Class01 + ProcessNum AS ClassProc
, C4UG
FROM dbo.QuoteOC
- WHERE CodQuote = @CodQuote
- AND QuoteType = @QuoteType
- AND QuoteRev = @QuoteRev
+ WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev
) AS SourceTable
PIVOT(SUM(C4UG) FOR ClassProc IN
( EE01
@@ -136,16 +154,22 @@ SELECT 'V14.1' AS Vers
, QL.QuoteRev
, QL.IdxQState
, QL.CodClient
- , CD.ClientName
+ , 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
@@ -153,23 +177,41 @@ SELECT 'V14.1' AS Vers
, pQP.ClasseMerc
, pQP.TipoDies
, pQP.CodDiesGroup
- , pQP.DiamDies
- , pQP.HoleNumDies
- , pQP.DiesPrice
- , pQP.DiesExpLife
- , pQP.DiesEOLife
- , pQP.NumDiesInList
- , pQP.NumDiesExaust
+ , 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
- , pQP.KgTeo
- , pQP.NumSMED
- , pQP.QuotaMan
- , pQP.PRMWeight
- , pQP.PWeight
- , pQP.PTare
+ , 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,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 ?!?
@@ -186,24 +228,26 @@ SELECT 'V14.1' AS Vers
, 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
+ , 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
+ , 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
+INTO #TempFullData -- carico in temp table
FROM dbo.QuoteList AS QL
-INNER JOIN dbo.ClientDet CD
+LEFT JOIN dbo.ClientDet CD -- non voglio che non crei record x mancanza Cliente
ON QL.CodClient = CD.CodClient
INNER JOIN ctePivotQuoteP AS pQP
@@ -254,40 +298,83 @@ INNER JOIN dbo.PlantsDet AS PD
-- AND CodQuote = @CodQuote
-- AND QuoteRev = @QuoteRev
+-- SELECT TOP 1000 * FROM #TempFullData
+
IF @QuoteType = 'Q'
BEGIN
- IF OBJECT_ID('QuoteFull_Q') IS NULL -- DROP TABLE QuoteFull_Q
+ 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 dbo.QuoteFull_Q
- SELECT * FROM #TempFullData
+ 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 -- DROP TABLE QuoteFull_R
+ 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
- INSERT dbo.QuoteFull_R
- SELECT * FROM #TempFullData
+ 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 -- DROP TABLE QuoteFull_S
+ 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
- INSERT dbo.QuoteFull_S
- SELECT * FROM #TempFullData
+ 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
+
+ -- 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
+
+ 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
diff --git a/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql b/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql
index f01db95..d2f97b6 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_QL_update.sql
@@ -1,7 +1,8 @@
+
-- =============================================
-- Author: Steamware
--- Create date: 2014.01.22
+-- Mod. date: 2014.06.06
-- Description: aggiorna le tabelle QuoteList con i dati selezionati dalla TabProdSc
-- =============================================
CREATE PROCEDURE [dbo].[stp_QL_update]
@@ -16,69 +17,78 @@ BEGIN
SET NOCOUNT ON;
-- dichiaro valori da recuperare
- DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali"
+ 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
- DECLARE @valid BIT
- DECLARE @CodDiesGroup NVARCHAR(50)
- DECLARE @CodPlant NVARCHAR(50)
- DECLARE @CodPlantFix NVARCHAR(50) = ''
- DECLARE @HoleNum INT
-- ITEM
- DECLARE @CodItem NVARCHAR(50) = '' --cod item
- DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item
- DECLARE @CodifProfilo NVARCHAR(50) = '' -- Cod. Profilo
- DECLARE @ClasseMerc NVARCHAR(50) = ''
- DECLARE @CodClientAssoc NVARCHAR(50) = ''
-
- DECLARE @KeyAM NVARCHAR(50) = ''
- DECLARE @KeyAMI NVARCHAR(50) = ''
- DECLARE @KeyAMIL NVARCHAR(50) = ''
- DECLARE @NumSMED INT = 0 -- numero cambi
- DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali
- DECLARE @RawMat NVARCHAR(50)
- DECLARE @ProdTeo DECIMAL(18,6)
- DECLARE @ScTec DECIMAL(18,6)
- DECLARE @BatchQty INT
- DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia
- DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico
- DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura
- DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo
- DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame
- DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice
- DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice
- DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice
- DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice
- DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01
- DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01
- DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04
- DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01
- DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04
- DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01
- DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04
+ 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
- DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente
- DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori
- DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo
- DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo
- DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco
- DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata
- DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg)
- DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto
- DECLARE @PTotQta DECIMAL(18,3) = 0 -- Qta Kg Tot Imballati
- DECLARE @PDurata DECIMAL(18,6) = 0 -- Tempo d'imballaggio
- DECLARE @PLiv NVARCHAR(50) = '' -- Livello Search dati Imballo
- DECLARE @PLivDett NVARCHAR(50) = '' -- Key Livello Search Dati 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
- DECLARE @TranspCost DECIMAL(9,6) -- costo di trasporto
- DECLARE @HasTC INT
+ , @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
-- =================================================
-- CREAZIONE TEMP TABLE
@@ -96,14 +106,19 @@ BEGIN
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,
+ Parameter NVARCHAR( 100 ) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL DEFAULT(''),
--PRIMARY KEY
- -- ( NumP ASC, QuoteType ASC, CodQuote ASC, QuoteRev ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 90 )
+ -- ( 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)
+
+ --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
+ --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL DROP TABLE #QuoteWorkInt
CREATE TABLE #QuoteWorkInt
(
@@ -130,15 +145,14 @@ BEGIN
WYR AS ((1)-WSR),
MYR AS ((1)-MSR),
DYR AS ((1)-DSR),
- WCR AS ((1)/((1)-WSR)),
- MCR AS ((1)/((1)-MSR)),
- DCR AS ((1)/((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
+-- elimino e ricreo #QuoteOC temp table...
+--IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL DROP TABLE #QuoteOC
CREATE TABLE #QuoteOC
(
@@ -146,17 +160,17 @@ BEGIN
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,
- CodPlant NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS 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 (''),
+ 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 ((TotCost*Quota)/TotQty),
+ C4UG AS ( CASE WHEN TotQty= 0 THEN 0 ELSE (TotCost*Quota) / TotQty END ),
valid BIT NOT NULL DEFAULT ((1))
)
@@ -204,54 +218,138 @@ BEGIN
-- recupero da dati dell'offerta il valore del cliente
SELECT @CodClient = CodClient
FROM dbo.QuoteList
- WHERE QuoteType = @QuoteType
- AND CodQuote = @CodQuote
- AND QuoteRev = @QuoteRev
+ WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev
- -- 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
+ 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)
+ 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
+ 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 @CodDiesGroup = ISNULL(@CodDiesGroup, '')
+ SELECT @CodPlant = ISNULL(@CodPlant, '')
+ SELECT @HoleNum = dbo.f_getSubstring(@CodDiesGroup, '-', 3)
+
+ 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
+
+ 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)
+ , @ProdTeo = ISNULL(ProdTeo, 0)
+ FROM dbo.TabProdSc
+ WHERE KeyAMIL = @KeyAMIL
+ AND CodDiesGroup = @CodDiesGroup
+
+
+ -- =================================================================================
+ -- 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 @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 = @CodPackag
+ SET CodPackag = ISNULL(@CodPackag,'')
FROM dbo.QuoteRM
- WHERE QuoteType = @QuoteType
- AND CodQuote = @CodQuote
- AND QuoteRev = @QuoteRev
+ 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 )
@@ -266,19 +364,19 @@ BEGIN
-- INFORMAZIONI su MATRICE
INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
- VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', @CodDiesGroup )
+ 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', @strTemp)
+ VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', ISNULL(@strTemp, '') )
- SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2)
+ SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2)
INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
- VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', @strTemp)
+ 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', @strTemp)
+ 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)
@@ -289,21 +387,38 @@ BEGIN
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)
- -- inserisco parametri calcolati x lavorazione estruzione
+ -- 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 ) )
+ 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))
- -- inserisco lavorazione estrusione!
- INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR)
- SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec
+ -- -----------------------------------------
+ ---- 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
+
+ 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
INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter)
- SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', SUM(KgTeo)
+ 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
@@ -318,25 +433,42 @@ BEGIN
-- calcolo i costi legati alla fase estrusione!
UPDATE #QuoteWorkInt
- SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
- , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
- , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd
- , SC4UG = cp.SC / ql.BatchQty
+ 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!
+ -- 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 = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ 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
+-- 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)
@@ -347,11 +479,16 @@ BEGIN
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
+ 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
@@ -366,21 +503,38 @@ BEGIN
-- calcolo i costi legati alla fase di imballo!
UPDATE #QuoteWorkInt
- SET FC4UG = ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd
- , VC4UG = ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd
- , OH4UG = ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd
- , SC4UG = cp.SC / ql.BatchQty
+ 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 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6))
+ 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
@@ -397,7 +551,7 @@ BEGIN
SELECT @MAC_IM = DCR
FROM #QuoteWorkInt
WHERE ProcessNum = '04'
-
+
-- calcolo percentuale vendita rottame
SELECT @SSR = SSR
FROM dbo.RawMatDet
@@ -406,24 +560,81 @@ BEGIN
-- 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
- -- 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
+ -- 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, UnitCost * @BatchQty, 1
+ 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
*
@@ -436,71 +647,131 @@ BEGIN
*
*************************************************************/
- -- (A) da DiesDet
- SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)),
- @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1))
- FROM dbo.DiesDet
- WHERE CodItem = @CodItem
- AND CodDiesGroup = @CodDiesGroup
- GROUP BY CodItem, CodDiesGroup
+ -- se sono in simulazione leggo tutto direttamente da tab dbo.DiesGroupDet
+ IF (@QuoteType = 'S')
+ BEGIN
+ SELECT @DiesPrice = Price,
+ @DiesExpLife = ExpLife,
+ @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END,
+ @DiesByClass = 1 -- imposto come calcolata matrice da gruppo
+ FROM DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
- -- (B) da DiesDet
- SELECT @DiesEOLife = AVG( ISNULL(ActLife, 0))
- FROM dbo.DiesDet
- WHERE CodItem = @CodItem
- AND CodDiesGroup = @CodDiesGroup
- AND Active = 0 -- solo matrici rottamate
- AND ActLife > 5000 -- solo se hanno Life > 5000 Kg ( non rotture accidentali )
- GROUP BY CodItem, CodDiesGroup
+ ELSE
+ BEGIN
+
+ -- (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
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ GROUP BY CodItem, CodDiesGroup
+
+ -- (B) da DiesDet
+ SELECT @DiesEOLife = AVG( ISNULL(ActLife, 0))
+ FROM dbo.DiesDet
+ WHERE CodItem = @CodItem
+ AND CodDiesGroup = @CodDiesGroup
+ AND Active = 0 -- solo matrici rottamate
+ AND ActLife > 5000 -- solo se hanno Life > 5000 Kg ( non rotture accidentali )
+ GROUP BY CodItem, CodDiesGroup
+ END
+
+ -- continuo!
+ SET @DiesPrice = ISNULL(@DiesPrice,0)
+ SET @DiesExpLife = ISNULL(@DiesExpLife,0)
+ SET @DiesEOLife = ISNULL(@DiesEOLife,0)
+ SET @validStep = 1
+
+ -- (C) verifico se prezzo è OK...
+ IF (@DiesPrice = 0)
+ BEGIN
+ -- calcolo da DiesGroupDet
+ SELECT @DiesPrice = ISNULL(Price, 0), @DiesByClass = 1 -- imposto come calcolata matrice da gruppo
+ FROM dbo.DiesGroupDet
+ WHERE CodDiesGroup = @CodDiesGroup
+ END
- SET @DiesPrice = ISNULL(@DiesPrice,0)
- SET @DiesExpLife = ISNULL(@DiesExpLife,0)
- SET @DiesEOLife = ISNULL(@DiesEOLife,0)
+ -- (D) verifico se vita è OK...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ -- uso exp life articolo...
+ SET @DiesEOLife = @DiesExpLife
+ END
- -- (C) verifico se prezzo è OK...
- IF (@DiesPrice = 0)
- BEGIN
- -- calcolo da DiesGroupDet
- SELECT @DiesPrice = ISNULL(Price, 0)
- FROM dbo.DiesGroupDet
- WHERE CodDiesGroup = @CodDiesGroup
- END
-
- -- (D) verifico se vita è OK...
- IF (@DiesEOLife = 0)
- BEGIN
- -- uso exp life articolo...
- SET @DiesEOLife = @DiesExpLife
- END
+ -- controllo che non sia nulla/vuota la durata...
+ IF (@DiesEOLife = 0)
+ BEGIN
+ SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END,
+ @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)
- BEGIN
- SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END
- FROM DiesGroupDet
- WHERE CodDiesGroup = @CodDiesGroup
- END
-
- -- controllo che non sia nulla/vuota la durata...
- IF ( @DiesEOLife > 0)
+ 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 @valid = 0 -- indico che valore non è valido ( ND excel )
+ 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
+
-- 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, @DiesPriceLife * @BatchQty, 1, @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
-- 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
@@ -520,13 +791,18 @@ BEGIN
SELECT @VCF04 = @OCF01 + SUM(VC4UG)
FROM #QuoteWorkInt
- SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (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)
+ 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) * (@MAC_ST * @MAC_SC * @MAC_IN * 100))
- -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione))
- - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost)
+ ((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)
@@ -537,13 +813,18 @@ BEGIN
AND q.QuoteRev = @QuoteRev
AND q.RawMat = @RawMat
- SELECT @SellCostF04 = ((@MAC_IM) - 1) * (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 04)
+ 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) * (@MAC_IM * 100))
+ ((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))
- - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost)
+ - 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)
@@ -559,27 +840,31 @@ BEGIN
-- 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, @SellCostF01 * @BatchQty, @SSR )
+ 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, @RefCostF01 * @BatchQty, 1 - @SSR )
+ ,( @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, @SellCostF04 * @BatchQty, @SSR )
+ ,( @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, @RefCostF04 * @BatchQty, 1 - @SSR )
+ ,( @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 = RMCost / @PWeight
+ SELECT @PCost = CASE @PWeight WHEN 0 THEN 0 ELSE RMCost / @PWeight END
, @PRMWeight = RMWeight
, @PkgDesc = PackagDesc
- , @PTareStRatio = ( RMWeight - @PTare) / @PWeight
+ , @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)
- SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1
+ 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)
@@ -593,41 +878,70 @@ BEGIN
---------------------------------------------
-- inserisco costi per TRASPORTI
---------------------------------------------
- -- recupero zona da cliente...
- SELECT @TranspZone = TranspZone
- FROM dbo.ClientDet
- WHERE CodClient = @CodClient
-
- -- recupero tipo di trasporto
- SELECT @HasTC = ISNULL(i.HasTC, 0)
- FROM dbo.QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco
+ -- 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
- -- recupero costi trasporto
- SELECT @TranspCost = TranspCost
- FROM dbo.TranspCostDet
- WHERE TranspZone = @TranspZone
+ -- 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
- INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota)
- SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1
+ -- 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
+
+ -- *** 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
---------------------------------------------
- SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0)
- FROM dbo.AgentsDet a
- INNER JOIN ClientDet c ON a.CodAg = c.CodAg
- INNER JOIN QuoteList q ON q.CodClient = c.CodClient
- WHERE q.QuoteType = @QuoteType
- AND q.CodQuote = @CodQuote
- AND q.QuoteRev = @QuoteRev
+ 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
+
+ -- 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)
-- 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, @Provvig * @BatchQty, 1
+ SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, ISNULL(@Provvig * @BatchQty, 0), 1
/* ==================================================
CARICO TABELLE EFFETTIVE
@@ -643,17 +957,32 @@ BEGIN
, NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid
FROM #QuoteWorkInt
- -- 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, TotQty, TotCost, Quota, valid
+ ---- *** 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
+
+ -- 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 * FROM #QuoteParam
- --SELECT * FROM #QuoteWorkInt
- --SELECT * FROM #QuoteOC
+ --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
diff --git a/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql b/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql
index 90010e6..f184fba 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_TD_upsert.sql
@@ -1,4 +1,5 @@
--- =============================================
+
+-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.12.17
-- Description: Crea TabDifett (tabella difettosità)
@@ -11,6 +12,7 @@ CREATE PROCEDURE [dbo].[stp_TD_upsert]
AS
BEGIN
+ SET XACT_ABORT ON;
BEGIN TRAN
SET NOCOUNT ON;
diff --git a/C2P_Project/dbo/Stored Procedures/stp_TI_upsert.sql b/C2P_Project/dbo/Stored Procedures/stp_TI_upsert.sql
index d43d30f..b19216b 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_TI_upsert.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_TI_upsert.sql
@@ -1,4 +1,5 @@
+
-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.12.20
@@ -13,6 +14,7 @@ CREATE PROCEDURE [dbo].[stp_TI_upsert]
AS
BEGIN
+ SET XACT_ABORT ON;
BEGIN TRAN
SET NOCOUNT ON;
diff --git a/C2P_Project/dbo/Stored Procedures/stp_TPS_upsert.sql b/C2P_Project/dbo/Stored Procedures/stp_TPS_upsert.sql
index cdb4246..0280b04 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_TPS_upsert.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_TPS_upsert.sql
@@ -1,4 +1,6 @@
--- =============================================
+
+
+-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.12.13
-- Description: Crea TabProdSc (tabella produttività/scarti)
@@ -11,6 +13,7 @@ CREATE PROCEDURE [dbo].[stp_TPS_upsert]
AS
BEGIN
+ SET XACT_ABORT ON;
BEGIN TRAN
SET NOCOUNT ON;
@@ -18,25 +21,47 @@ BEGIN
-- svuoto tabella...
TRUNCATE TABLE TabProdSc
- -- riempio di nuovo valori!
+ -- riempio di nuovo valori! chiave AMIL
INSERT INTO TabProdSc
- SELECT
- dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
+ SELECT
+ dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) AS KeyAMIL
, dd.CodDiesGroup
- , dd.CodItem + '-' + pl.RawMat as KeyAM
+ , dd.CodItem + '-' + pl.RawMat AS KeyAM
, dd.CodItem, pl.RawMat, pl.CodPlant, dd.HoleNum
- , 0 as NumSMED -- numero cambi, da sistemare...
- , SUM(QtyOUT) as KgTeorici
- , SUM(QtyIN) as KgLordi
+ , 0 AS NumSMED -- numero cambi, da sistemare...
+ , SUM(QtyOUT) AS KgTeorici
+ , SUM(QtyIN) AS KgLordi
, SUM(Duration) AS Durata
- FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ FROM ProductionLog pl
+ INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
WHERE pl.ProcessNum='01' and pl.EventType=1
- AND pl.okPr = 1 AND pl.okSc = 1
+ AND pl.okPr = 1
+ AND pl.okSc = 1
AND pl.EventStart BETWEEN @dateFrom AND @dateTo
GROUP BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
ORDER BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
-
- -- calcolo cambi SMED
+
+ -- riempio di nuovo valori! chiave CMIL
+ INSERT INTO TabProdSc
+ SELECT
+ id.CodItemGroup + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) AS KeyAMIL
+ , dd.CodDiesGroup
+ , id.CodItemGroup + '-' + pl.RawMat AS KeyAM
+ , id.CodItemGroup, pl.RawMat, pl.CodPlant, dd.HoleNum
+ , 0 AS NumSMED -- numero cambi, da sistemare...
+ , SUM(QtyOUT) AS KgTeorici
+ , SUM(QtyIN) AS KgLordi
+ , SUM(Duration) AS Durata
+ FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies
+ INNER JOIN ItemDet id ON dd.CodItem = id.CodItem
+ WHERE pl.ProcessNum='01' and pl.EventType=1
+ AND pl.okPr = 1 AND pl.okSc = 1
+ AND pl.EventStart BETWEEN @dateFrom AND @dateTo
+ GROUP BY id.CodItemGroup, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum
+ ORDER BY id.CodItemGroup, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC
+
+
+ -- calcolo cambi SMED
-- con cte
; WITH cteCambiPre
@@ -53,6 +78,7 @@ BEGIN
, cteCambi
AS
(
+ -- PARTE AMIL
SELECT dd.CodItem + '-' + a.RawMat + '-' + a.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
, dd.CodDiesGroup
, a.*
@@ -67,6 +93,24 @@ BEGIN
INNER JOIN DiesDet dd ON a.CodDies=dd.CodDies
WHERE b.Row IS NULL -- se voglio vedere solo i cambi
--ORDER BY a.CodPlant, a.EventStart
+
+ UNION
+ -- PARTE CMIL
+ SELECT id.CodItemGroup + '-' + a.RawMat + '-' + a.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL
+ , dd.CodDiesGroup
+ , a.*
+ --, b.Row
+ --, ISNULL(b.Row, 0) AS Cambio -- se 0 c'è cambio
+ --, CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+ , CASE ISNULL(b.Row, 0) WHEN 0 THEN 1 ELSE 0 END AS Cambio2
+ FROM cteCambiPre AS a
+ LEFT JOIN cteCambiPre AS b
+ ON a.Row-1 = b.Row
+ AND a.CodPlant = b.CodPlant AND a.CodDies = b.CodDies
+ INNER JOIN DiesDet dd ON a.CodDies=dd.CodDies
+ INNER JOIN ItemDet id ON dd.CodItem = id.CodItem
+ WHERE b.Row IS NULL -- se voglio vedere solo i cambi
+ --ORDER BY a.CodPlant, a.EventStart
)
UPDATE tps
SET NumSMED = cc.NumSMED
diff --git a/C2P_Project/dbo/Stored Procedures/stp_VSItem_SearchLike.sql b/C2P_Project/dbo/Stored Procedures/stp_VSItem_SearchLike.sql
index 8ae9ce4..606718a 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_VSItem_SearchLike.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_VSItem_SearchLike.sql
@@ -3,7 +3,7 @@
-- Create date: 2014.02.18
-- Description: Ricerca items
-- =============================================
-create PROCEDURE [dbo].stp_VSItem_SearchLike
+CREATE PROCEDURE [dbo].stp_VSItem_SearchLike
(
@value NVARCHAR(50)
)
@@ -16,3 +16,4 @@ SELECT value
FROM v_selItems
WHERE (value LIKE '%' + @value + '%')
OR (label LIKE '%' + @value + '%')
+ORDER BY value
diff --git a/C2P_Project/dbo/Stored Procedures/stp_zzz_scratch.sql b/C2P_Project/dbo/Stored Procedures/stp_zzz_scratch.sql
index 32060dc..72a7a49 100644
--- a/C2P_Project/dbo/Stored Procedures/stp_zzz_scratch.sql
+++ b/C2P_Project/dbo/Stored Procedures/stp_zzz_scratch.sql
@@ -3,6 +3,7 @@
+
-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.11.20
@@ -89,6 +90,10 @@ BEGIN
exec ext.stp_mergeCost2Plant
exec ext.stp_mergeItemDet 'ItemsRaw'
exec ext.stp_mergePackagDet 'ProductionLogRaw' -- 'PackagRaw'
+
+ -- QUESTE ANDREBBERO ESEGUITO DOPO ext.stp_updateProductionLog prendendo in considerazione un periodo di tempo
+ -- di tre anno o comunque stabilito a priori predefinito ( configurabile a sistema )
+ -- DA VERIFICARE
exec ext.stp_mergePackage2ItemClient 'ProductionLog', @dateFrom, @dateTo
exec ext.stp_mergePackage2Item 'ProductionLog', @dateFrom, @dateTo
exec ext.stp_mergePackage2 'ProductionLog', @dateFrom, @dateTo
diff --git a/C2P_Project/dbo/Tables/DiesDet.sql b/C2P_Project/dbo/Tables/DiesDet.sql
index 324dea9..830da89 100644
--- a/C2P_Project/dbo/Tables/DiesDet.sql
+++ b/C2P_Project/dbo/Tables/DiesDet.sql
@@ -14,6 +14,8 @@
);
+
+
GO
CREATE NONCLUSTERED INDEX [i_DiesDet_CodItem_CodDiesGroup_Active]
ON [dbo].[DiesDet]([CodItem] ASC, [CodDiesGroup] ASC, [Active] ASC)
@@ -22,8 +24,10 @@ CREATE NONCLUSTERED INDEX [i_DiesDet_CodItem_CodDiesGroup_Active]
GO
CREATE NONCLUSTERED INDEX [i_DiesDet_Active_CodDiesGroup_Filtered]
- ON [dbo].[DiesDet]([Active] ASC, [CodDiesGroup] ASC)
- INCLUDE([CodItem]) WHERE ([Active]=(0));
+ ON [dbo].[DiesDet]([CodDiesGroup] ASC, [CodItem] ASC)
+ INCLUDE([ActLife], [Price], [ExpLife]) WHERE ([Active]=(0));
+
+
GO
diff --git a/C2P_Project/dbo/Tables/ProductionLog.sql b/C2P_Project/dbo/Tables/ProductionLog.sql
index 314990b..017d993 100644
--- a/C2P_Project/dbo/Tables/ProductionLog.sql
+++ b/C2P_Project/dbo/Tables/ProductionLog.sql
@@ -20,7 +20,7 @@
[QuotaPlant] DECIMAL (9, 4) NOT NULL,
[QuotaMan] DECIMAL (9, 4) NOT NULL,
[Tags] NVARCHAR (250) NOT NULL,
- [Duration] AS (datediff(second,[EventStart],[EventEnd])/(3600.00)) PERSISTED,
+ [Duration] AS (CONVERT([decimal](12,6),datediff(second,[EventStart],[EventEnd])/(3600.00),(0))) PERSISTED,
[okPr] BIT CONSTRAINT [DF_ProductionLog_okPr] DEFAULT ((1)) NOT NULL,
[okQM] BIT CONSTRAINT [DF_ProductionLog_okQM] DEFAULT ((1)) NOT NULL,
[okSc] BIT CONSTRAINT [DF_ProductionLog_okSc] DEFAULT ((1)) NOT NULL,
@@ -33,6 +33,8 @@
);
+
+
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'inizio evento - formato INT 16 cifre yyyyMMddHHmmssnn dove nn = centesimi di sec oppure 00', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'EventStart';
@@ -132,3 +134,9 @@ EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'validazione riga x calcolo difettosità', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ProductionLog', @level2type = N'COLUMN', @level2name = N'okDi';
+
+GO
+CREATE NONCLUSTERED INDEX [i_ProductionLog_CodDies]
+ ON [dbo].[ProductionLog]([CodDies] ASC)
+ INCLUDE([EventStart], [RawMat]);
+
diff --git a/C2P_Project/dbo/Tables/QuoteFull_Q.sql b/C2P_Project/dbo/Tables/QuoteFull_Q.sql
index 07c772e..8190ac4 100644
--- a/C2P_Project/dbo/Tables/QuoteFull_Q.sql
+++ b/C2P_Project/dbo/Tables/QuoteFull_Q.sql
@@ -1,6 +1,6 @@
CREATE TABLE [dbo].[QuoteFull_Q] (
[Vers] VARCHAR (5) NOT NULL,
- [QuoteType] CHAR (1) NOT NULL,
+ [QuoteType] CHAR (1) CONSTRAINT [DF_QuoteFull_Q_QuoteType] DEFAULT ('Q') NOT NULL,
[CodQuote] BIGINT NOT NULL,
[QuoteRev] INT NOT NULL,
[IdxQState] INT CONSTRAINT [DF_QuoteFull_Q_IdxQState] DEFAULT ((0)) NOT NULL,
@@ -12,6 +12,7 @@
[UnitWeight] DECIMAL (9, 3) NOT NULL,
[BatchQty] INT NOT NULL,
[CodInco] NVARCHAR (5) NOT NULL,
+ [TranspZone] NVARCHAR (50) CONSTRAINT [DF_QuoteFull_Q_TranspZone] DEFAULT ('') NOT NULL,
[KeyAM] NVARCHAR (101) NOT NULL,
[Note] NVARCHAR (2500) NOT NULL,
[PriceOff] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_Q_PriceOff] DEFAULT ((0)) NOT NULL,
@@ -22,11 +23,12 @@
[ClasseMerc] NVARCHAR (100) NULL,
[TipoDies] NVARCHAR (100) NULL,
[CodDiesGroup] NVARCHAR (100) NULL,
- [DiamDies] DECIMAL (18, 6) NULL,
+ [DiamDies] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_Q_DiamDies] DEFAULT ((0)) NOT NULL,
[HoleNumDies] INT NULL,
- [DiesPrice] DECIMAL (18, 6) NULL,
- [DiesExpLife] DECIMAL (18, 6) NULL,
- [DiesEOLife] DECIMAL (18, 6) NULL,
+ [DiesPrice] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_Q_DiesPrice] DEFAULT ((0)) NOT NULL,
+ [DiesExpLife] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_Q_DiesExpLife] DEFAULT ((0)) NOT NULL,
+ [DiesEOLife] DECIMAL (18, 6) NOT NULL,
+ [DiesByClass] BIT CONSTRAINT [DF_QuoteFull_Q_DiesByClass] DEFAULT ((0)) NOT NULL,
[NumDiesInList] DECIMAL (18, 6) NULL,
[NumDiesExaust] DECIMAL (18, 6) NULL,
[CodPlant] NVARCHAR (100) NULL,
@@ -62,22 +64,40 @@
[VC4UG01] DECIMAL (9, 6) NOT NULL,
[OH4UG01] DECIMAL (9, 6) NOT NULL,
[SC4UG01] DECIMAL (9, 6) NOT NULL,
- [DSR] DECIMAL (18, 6) NULL,
+ [DSR] DECIMAL (9, 8) NULL,
[NetProd04] DECIMAL (9, 3) NOT NULL,
[FC4UG04] DECIMAL (9, 6) NOT NULL,
[VC4UG04] DECIMAL (9, 6) NOT NULL,
[FVC] DECIMAL (18, 6) NULL,
[Charge] DECIMAL (9, 6) NOT NULL,
+ [valid] BIT CONSTRAINT [DF_QuoteFull_Q_valid] DEFAULT ((1)) NOT NULL,
+ [errorScore] INT CONSTRAINT [DF_QuoteFull_Q_errorScore] DEFAULT ((0)) NOT NULL,
CONSTRAINT [PK_QuoteFull_Q_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
);
+
+
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo Offerto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'PriceOff';
GO
-EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = bozza, 10 = completata / in approvazione, 20 = approvata, 30 rilasciata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'IdxQState';
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = D raft, 1 = C ompleted / in approvazione, 2 = A pprouved, 3 = R eleased', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'IdxQState';
+
+
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quotation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'punteggio complessivo errori in procedure di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'errorScore';
diff --git a/C2P_Project/dbo/Tables/QuoteList.sql b/C2P_Project/dbo/Tables/QuoteList.sql
index 2d57a38..01acc68 100644
--- a/C2P_Project/dbo/Tables/QuoteList.sql
+++ b/C2P_Project/dbo/Tables/QuoteList.sql
@@ -10,19 +10,28 @@
[UnitWeight] DECIMAL (9, 3) CONSTRAINT [DF_QuoteList_UnitWeight] DEFAULT ((0)) NOT NULL,
[BatchQty] INT CONSTRAINT [DF_QuoteList_BathQty] DEFAULT ((0)) NOT NULL,
[CodInco] NVARCHAR (5) NOT NULL,
- [KeyAM] AS (([CodItem]+'-')+[RawMat]),
+ [KeyAM] AS ((case when [QuoteType]='S' then [CodItemGroup] else [CodItem] end+'-')+[RawMat]),
[Note] NVARCHAR (2500) CONSTRAINT [DF_QuoteList_Note] DEFAULT ('') NOT NULL,
[PriceOff] DECIMAL (9, 6) CONSTRAINT [DF_QuoteList_OrdPrice1] DEFAULT ((0)) NOT NULL,
- [OrdDate] DATE NULL,
+ [OrdDate] SMALLDATETIME NULL,
[OrdNum] NVARCHAR (50) CONSTRAINT [DF_QuoteList_OrdNum] DEFAULT ((0)) NOT NULL,
[OrdRow] NVARCHAR (50) CONSTRAINT [DF_QuoteList_OrdRow] DEFAULT ((0)) NOT NULL,
[OrdPrice] DECIMAL (9, 6) CONSTRAINT [DF_QuoteList_PriceOff1] DEFAULT ((0)) NOT NULL,
- CONSTRAINT [PK_QuoteList_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
+ [OrdQty] INT CONSTRAINT [DF_QuoteList_OrderQty] DEFAULT ((0)) NOT NULL,
+ [valid] BIT CONSTRAINT [DF_QuoteList_valid] DEFAULT ((1)) NOT NULL,
+ [errorScore] INT CONSTRAINT [DF_QuoteList_errorScore] DEFAULT ((0)) NOT NULL,
+ [UserCreaz] NVARCHAR (50) CONSTRAINT [DF_QuoteList_UserCreaz] DEFAULT ('') NOT NULL,
+ [DataCreaz] DATETIME CONSTRAINT [DF_QuoteList_DataCreaz] DEFAULT (getdate()) NOT NULL,
+ [UserMod] NVARCHAR (50) CONSTRAINT [DF_QuoteList_UserMod] DEFAULT ('') NOT NULL,
+ [DataMod] DATETIME CONSTRAINT [DF_QuoteList_DataMod] DEFAULT (getdate()) NOT NULL,
+ CONSTRAINT [PK_QuoteList_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC) WITH (FILLFACTOR = 90)
);
+
+
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'QuoteType';
@@ -80,5 +89,11 @@ EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo fina
GO
-EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = bozza, 10 = completata / in approvazione, 20 = approvata, 30 rilasciata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'IdxQState';
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = D raft, 1 = C ompleted / in approvazione, 2 = A pprouved, 3 = R eleased', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'IdxQState';
+
+
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'punteggio complessivo errori in procedure di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'errorScore';
diff --git a/C2P_Project/dbo/Tables/QuoteParam.sql b/C2P_Project/dbo/Tables/QuoteParam.sql
index faeef1f..71b69a3 100644
--- a/C2P_Project/dbo/Tables/QuoteParam.sql
+++ b/C2P_Project/dbo/Tables/QuoteParam.sql
@@ -6,11 +6,13 @@
[ProcessNum] NVARCHAR (50) CONSTRAINT [DF_QuoteParam_ProcessNum] DEFAULT ((0)) NOT NULL,
[Descr] NVARCHAR (50) NOT NULL,
[Parameter] NVARCHAR (100) CONSTRAINT [DF_QuoteParam_Parameter] DEFAULT ('') NOT NULL,
- CONSTRAINT [PK_QuoteParam] PRIMARY KEY CLUSTERED ([NumP] ASC, [QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC),
+ CONSTRAINT [PK_QuoteParam] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumP] ASC) WITH (FILLFACTOR = 90),
CONSTRAINT [FK_QuoteParam_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE
);
+
+
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteParam', @level2type = N'COLUMN', @level2name = N'QuoteType';
diff --git a/C2P_Project/dbo/Tables/QuoteWorkInt.sql b/C2P_Project/dbo/Tables/QuoteWorkInt.sql
index 23a978b..517d427 100644
--- a/C2P_Project/dbo/Tables/QuoteWorkInt.sql
+++ b/C2P_Project/dbo/Tables/QuoteWorkInt.sql
@@ -21,11 +21,11 @@
[WYR] AS ((1)-[WSR]),
[MYR] AS ((1)-[MSR]),
[DYR] AS ((1)-[DSR]),
- [WCR] AS ((1)/((1)-[WSR])),
- [MCR] AS ((1)/((1)-[MSR])),
- [DCR] AS ((1)/((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 CONSTRAINT [DF_QuoteWorkInt_valid] DEFAULT ((1)) NOT NULL,
- CONSTRAINT [PK_QuoteWorkInt] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumWI] ASC),
+ CONSTRAINT [PK_QuoteWorkInt] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NumWI] ASC) WITH (FILLFACTOR = 90),
CONSTRAINT [FK_QuoteWorkInt_QuoteList] FOREIGN KEY ([QuoteType], [CodQuote], [QuoteRev]) REFERENCES [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev]) ON UPDATE CASCADE
);
@@ -34,6 +34,8 @@
+
+
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'QuoteType';
diff --git a/C2P_Project/dbo/Tables/RawMatDet.sql b/C2P_Project/dbo/Tables/RawMatDet.sql
index 722e271..a4f5379 100644
--- a/C2P_Project/dbo/Tables/RawMatDet.sql
+++ b/C2P_Project/dbo/Tables/RawMatDet.sql
@@ -12,6 +12,8 @@
);
+
+
GO
EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'RawMat';
@@ -29,7 +31,9 @@ EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Cut Scrape
GO
-EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Scrape Sell Ratio, percentuale di vendita dello scarto (0-100)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'SSR';
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Scrape Sell Ratio, percentuale di vendita dello scarto ( da 0 a 1)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'SSR';
+
+
GO
diff --git a/C2P_Project/dbo/Tables/TabDifett.sql b/C2P_Project/dbo/Tables/TabDifett.sql
index 32646a3..914ba74 100644
--- a/C2P_Project/dbo/Tables/TabDifett.sql
+++ b/C2P_Project/dbo/Tables/TabDifett.sql
@@ -1,21 +1,21 @@
CREATE TABLE [dbo].[TabDifett] (
- [KeyAMI] NVARCHAR (152) NOT NULL,
- [ProcessNum] NVARCHAR (50) NOT NULL,
- [CodItem] NVARCHAR (50) NOT NULL,
- [RawMat] NVARCHAR (50) NOT NULL,
- [CodPlant] NVARCHAR (50) NOT NULL,
- [TotOUT] INT NULL,
- [TotIn] INT NULL
+ [KeyAMI] NVARCHAR (152) NOT NULL,
+ [ProcessNum] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [TotOut] DECIMAL (18, 6) NULL,
+ [TotIn] INT NULL,
+ CONSTRAINT [PK_TabDifett] PRIMARY KEY CLUSTERED ([KeyAMI] ASC, [ProcessNum] ASC)
);
-GO
-CREATE CLUSTERED INDEX [i_TabDifett_ProcessNum_KeyAMI]
- ON [dbo].[TabDifett]([ProcessNum] ASC, [KeyAMI] ASC);
GO
-CREATE NONCLUSTERED INDEX [i_TabDifett_KeyAMI_ProcessNum]
- ON [dbo].[TabDifett]([KeyAMI] ASC, [ProcessNum] ASC)
- INCLUDE([TotOUT], [TotIn]);
+
+
+
+GO
+
diff --git a/C2P_Project/dbo/Tables/TabProdSc.sql b/C2P_Project/dbo/Tables/TabProdSc.sql
index 2fa4794..2667e06 100644
--- a/C2P_Project/dbo/Tables/TabProdSc.sql
+++ b/C2P_Project/dbo/Tables/TabProdSc.sql
@@ -10,12 +10,14 @@
[KgTeo] DECIMAL (18, 6) NOT NULL,
[KgLor] DECIMAL (18, 6) NOT NULL,
[Duration] DECIMAL (18, 6) NOT NULL,
- [ProdTeo] AS (isnull([KgTeo],(0))/case isnull([Duration],(1)) when (0) then (1) else isnull([Duration],(1)) end),
- [ScTec] AS ((1)-[KgTeo]/case [KgLor] when (0) then (1) else [KgLor] end),
+ [ProdTeo] AS (case isnull([Duration],(0)) when (0) then (0) else isnull([KgTeo],(0))/[Duration] end),
+ [ScTec] AS (case isnull([KgLor],(0)) when (0) then (0) else (1)-[KgTeo]/[KgLor] end),
CONSTRAINT [PK_TabProdSc] PRIMARY KEY CLUSTERED ([KeyAMIL] ASC, [CodDiesGroup] ASC)
);
+
+
GO
CREATE NONCLUSTERED INDEX [i_TabProdSc_KeyAM]
ON [dbo].[TabProdSc]([KeyAM] ASC)
diff --git a/C2P_Project/dbo/Tables/dbo.CDC.sql b/C2P_Project/dbo/Tables/dbo.CDC.sql
new file mode 100644
index 0000000..cf14a05
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.CDC.sql
@@ -0,0 +1,8 @@
+CREATE TABLE [dbo].[CDC] (
+ [COD_CDC] VARCHAR (10) NOT NULL,
+ [DESCRIZIONE] VARCHAR (200) NULL,
+ [COD_TIPO] VARCHAR (1) NOT NULL,
+ [POSIZIONE] VARCHAR (100) NULL,
+ PRIMARY KEY CLUSTERED ([COD_CDC] ASC)
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.ContatoriQuote.sql b/C2P_Project/dbo/Tables/dbo.ContatoriQuote.sql
new file mode 100644
index 0000000..7fa5921
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.ContatoriQuote.sql
@@ -0,0 +1,6 @@
+CREATE TABLE [dbo].[ContatoriQuote] (
+ [Flusso] VARCHAR (2) NOT NULL,
+ [LastIdx] INT NOT NULL,
+ CONSTRAINT [PK_ContatoriQuote] PRIMARY KEY CLUSTERED ([Flusso] ASC)
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.CostList.sql b/C2P_Project/dbo/Tables/dbo.CostList.sql
new file mode 100644
index 0000000..0bc1e9c
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.CostList.sql
@@ -0,0 +1,20 @@
+CREATE TABLE [dbo].[CostList] (
+ [DateList] SMALLDATETIME CONSTRAINT [DF_CostList_DataList] DEFAULT (CONVERT([date],getdate(),0)) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NULL,
+ [batchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) CONSTRAINT [DF_CostList_QuoteType] DEFAULT ('C') NOT NULL,
+ [CodQuote] BIGINT CONSTRAINT [DF_CostList_CodQuote] DEFAULT ((0)) NOT NULL,
+ [QuoteRev] INT CONSTRAINT [DF_CostList_QuoteRev] DEFAULT ((0)) NOT NULL,
+ [EndCalc] DATETIME NULL,
+ CONSTRAINT [PK_CostList_1] PRIMARY KEY CLUSTERED ([DateList] ASC, [CodItem] ASC, [RawMat] ASC)
+);
+
+
+GO
+CREATE NONCLUSTERED INDEX [ix_CostList_QuoteType_CodQuote]
+ ON [dbo].[CostList]([QuoteType] ASC, [CodQuote] ASC);
+
diff --git a/C2P_Project/dbo/Tables/dbo.DIRITTI.sql b/C2P_Project/dbo/Tables/dbo.DIRITTI.sql
new file mode 100644
index 0000000..6789dec
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.DIRITTI.sql
@@ -0,0 +1,12 @@
+CREATE TABLE [dbo].[DIRITTI] (
+ [USER_NAME] NVARCHAR (50) NOT NULL,
+ [COD_CDC] NVARCHAR (50) NOT NULL,
+ [COD_MODULO] NVARCHAR (31) NOT NULL,
+ [COD_FUNZIONE] NVARCHAR (31) NOT NULL,
+ [VALUE] VARCHAR (255) NULL,
+ CONSTRAINT [PK_DIRITTI] PRIMARY KEY CLUSTERED ([USER_NAME] ASC, [COD_CDC] ASC, [COD_MODULO] ASC, [COD_FUNZIONE] ASC),
+ CONSTRAINT [FK_DIRITTI_FUNZIONE] FOREIGN KEY ([COD_FUNZIONE]) REFERENCES [dbo].[FUNZIONE] ([COD_FUNZIONE]) ON UPDATE CASCADE,
+ CONSTRAINT [FK_DIRITTI_MODULO] FOREIGN KEY ([COD_MODULO]) REFERENCES [dbo].[MODULO] ([COD_MODULO]) ON UPDATE CASCADE,
+ CONSTRAINT [FK_DIRITTI_UTENTE] FOREIGN KEY ([USER_NAME]) REFERENCES [dbo].[UTENTE] ([USER_NAME]) ON UPDATE CASCADE
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.FUNZIONE.sql b/C2P_Project/dbo/Tables/dbo.FUNZIONE.sql
new file mode 100644
index 0000000..b089e55
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.FUNZIONE.sql
@@ -0,0 +1,6 @@
+CREATE TABLE [dbo].[FUNZIONE] (
+ [COD_FUNZIONE] NVARCHAR (31) NOT NULL,
+ [DESCRIZIONE] NVARCHAR (500) NULL,
+ CONSTRAINT [PK_FUNZIONE] PRIMARY KEY CLUSTERED ([COD_FUNZIONE] ASC)
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.MODULO.sql b/C2P_Project/dbo/Tables/dbo.MODULO.sql
new file mode 100644
index 0000000..d37b3b3
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.MODULO.sql
@@ -0,0 +1,6 @@
+CREATE TABLE [dbo].[MODULO] (
+ [COD_MODULO] NVARCHAR (31) NOT NULL,
+ [DESCRIZIONE] VARCHAR (200) NULL,
+ CONSTRAINT [PK_MODULO] PRIMARY KEY CLUSTERED ([COD_MODULO] ASC)
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.OrdersHist.sql b/C2P_Project/dbo/Tables/dbo.OrdersHist.sql
new file mode 100644
index 0000000..cd26997
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.OrdersHist.sql
@@ -0,0 +1,75 @@
+CREATE TABLE [dbo].[OrdersHist] (
+ [OrdNum] NVARCHAR (50) CONSTRAINT [DF_OrdersHist_OrdNum] DEFAULT ((0)) NOT NULL,
+ [OrdRow] NVARCHAR (50) CONSTRAINT [DF_OrdersHist_OrdRow] DEFAULT ((0)) NOT NULL,
+ [OrdDate] SMALLDATETIME CONSTRAINT [DF_OrdersHist_OrdDate] DEFAULT (getdate()) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) CONSTRAINT [DF_OrdersHist_CodItem] DEFAULT ('') NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) CONSTRAINT [DF_OrdersHist_RawMatCost] DEFAULT ((0)) NOT NULL,
+ [BatchQty] INT CONSTRAINT [DF_OrdersHist_BatchQty] DEFAULT ((0)) NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) CONSTRAINT [DF_OrdersHist_OrdPrice] DEFAULT ((0)) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) NOT NULL,
+ [OrdQty] INT NOT NULL,
+ [QuoteType] CHAR (1) CONSTRAINT [DF_OrdersHist_QuoteType] DEFAULT ('R') NOT NULL,
+ [CodQuote] BIGINT CONSTRAINT [DF_OrdersHist_CodQuote] DEFAULT ((0)) NOT NULL,
+ [QuoteRev] INT CONSTRAINT [DF_OrdersHist_QuoteRev] DEFAULT ((0)) NOT NULL,
+ [ProvvCost] DECIMAL (9, 6) CONSTRAINT [DF_OrdersHist_ProvvCost] DEFAULT ((0)) NOT NULL,
+ [EndCalc] DATETIME NULL,
+ CONSTRAINT [PK_OrdersHist] PRIMARY KEY CLUSTERED ([OrdNum] ASC, [OrdRow] ASC) WITH (FILLFACTOR = 100)
+);
+
+
+GO
+CREATE NONCLUSTERED INDEX [idx_OH_quote]
+ ON [dbo].[OrdersHist]([CodQuote] ASC, [QuoteRev] ASC) WITH (FILLFACTOR = 100);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo finale ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdPrice';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Codice Incoterms', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodInco';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Quantità lotto kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'BatchQty';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo della MP €/kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'RawMatCost';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice MP', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'RawMat';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodItem';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'CodClient';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data dell''ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdDate';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'riga ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdRow';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero ordine', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'OrdersHist', @level2type = N'COLUMN', @level2name = N'OrdNum';
+
diff --git a/C2P_Project/dbo/Tables/dbo.PickList.sql b/C2P_Project/dbo/Tables/dbo.PickList.sql
new file mode 100644
index 0000000..aff01d8
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.PickList.sql
@@ -0,0 +1,8 @@
+CREATE TABLE [dbo].[PickList] (
+ [CodList] NVARCHAR (50) NOT NULL,
+ [Value] NVARCHAR (50) NOT NULL,
+ [Lemma] NVARCHAR (50) CONSTRAINT [DF_PickList_lemma] DEFAULT ('') NOT NULL,
+ [NumOrd] INT CONSTRAINT [DF_PickList_NumOrd] DEFAULT ((0)) NOT NULL,
+ CONSTRAINT [PK_PickList] PRIMARY KEY CLUSTERED ([CodList] ASC, [Value] ASC)
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.QuoteFull_C.sql b/C2P_Project/dbo/Tables/dbo.QuoteFull_C.sql
new file mode 100644
index 0000000..4e18a75
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.QuoteFull_C.sql
@@ -0,0 +1,22 @@
+CREATE TABLE [dbo].[QuoteFull_C] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class02] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [CodDiesGroup] NVARCHAR (50) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [batchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [RawMatFullCost] NUMERIC (18, 6) NOT NULL,
+ [FVC] DECIMAL (18, 6) NOT NULL,
+ [FullCost] DECIMAL (18, 6) NOT NULL,
+ [valid] BIT NULL,
+ [errorScore] INT NULL,
+ CONSTRAINT [PK_QuoteFull_C] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
+);
+
diff --git a/C2P_Project/dbo/Tables/dbo.QuoteFull_R.sql b/C2P_Project/dbo/Tables/dbo.QuoteFull_R.sql
new file mode 100644
index 0000000..286acdc
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.QuoteFull_R.sql
@@ -0,0 +1,102 @@
+CREATE TABLE [dbo].[QuoteFull_R] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) CONSTRAINT [DF_QuoteFull_R_QuoteType] DEFAULT ('Q') NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT NOT NULL,
+ [IdxQState] INT CONSTRAINT [DF_QuoteFull_R_IdxQState] DEFAULT ((0)) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) NOT NULL,
+ [BatchQty] INT NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [TranspZone] NVARCHAR (50) CONSTRAINT [DF_QuoteFull_R_TranspZone] DEFAULT ('') NOT NULL,
+ [KeyAM] NVARCHAR (101) NOT NULL,
+ [Note] NVARCHAR (2500) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_R_PriceOff] DEFAULT ((0)) NOT NULL,
+ [CodClientAssoc] NVARCHAR (100) NULL,
+ [ClientNameAssoc] NVARCHAR (100) NULL,
+ [ItemDescr] NVARCHAR (100) NULL,
+ [CodifProfilo] NVARCHAR (100) NULL,
+ [ClasseMerc] NVARCHAR (100) NULL,
+ [TipoDies] NVARCHAR (100) NULL,
+ [CodDiesGroup] NVARCHAR (100) NULL,
+ [DiamDies] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_R_DiamDies] DEFAULT ((0)) NOT NULL,
+ [HoleNumDies] INT NULL,
+ [DiesPrice] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_R_DiesPrice] DEFAULT ((0)) NOT NULL,
+ [DiesExpLife] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_R_DiesExpLife] DEFAULT ((0)) NOT NULL,
+ [DiesEOLife] DECIMAL (18, 6) NOT NULL,
+ [DiesByClass] BIT CONSTRAINT [DF_QuoteFull_R_DiesByClass] DEFAULT ((0)) NOT NULL,
+ [NumDiesInList] DECIMAL (18, 6) NULL,
+ [NumDiesExaust] DECIMAL (18, 6) NULL,
+ [CodPlant] NVARCHAR (100) NULL,
+ [KeyAMIL] NVARCHAR (100) NULL,
+ [KgTeo] DECIMAL (18, 6) NULL,
+ [NumSMED] INT NULL,
+ [QuotaMan] DECIMAL (18, 6) NULL,
+ [PRMWeight] DECIMAL (18, 6) NULL,
+ [PWeight] DECIMAL (18, 6) NULL,
+ [PTare] DECIMAL (18, 6) NULL,
+ [LivPackage] NVARCHAR (100) NULL,
+ [LivPackageDett] NVARCHAR (100) NULL,
+ [RawMatCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) NOT NULL,
+ [RawMatFullCost] DECIMAL (18, 6) NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PkgDesc] NVARCHAR (100) NULL,
+ [FSR] DECIMAL (18, 6) NULL,
+ [ProvvCost] DECIMAL (18, 6) NOT NULL,
+ [EECost] DECIMAL (18, 6) NOT NULL,
+ [GasCost] DECIMAL (18, 6) NOT NULL,
+ [DiesCost] DECIMAL (18, 6) NOT NULL,
+ [PackCost] DECIMAL (18, 6) NOT NULL,
+ [TranspCost] DECIMAL (18, 6) NOT NULL,
+ [SellCost01] DECIMAL (18, 6) NOT NULL,
+ [RefCost01] DECIMAL (18, 6) NOT NULL,
+ [SellCost04] DECIMAL (18, 6) NOT NULL,
+ [RefCost04] DECIMAL (18, 6) NOT NULL,
+ [WSR01] DECIMAL (9, 8) NOT NULL,
+ [MSR01] DECIMAL (9, 8) NOT NULL,
+ [NetProd01] DECIMAL (9, 3) NOT NULL,
+ [FC4UG01] DECIMAL (9, 6) NOT NULL,
+ [VC4UG01] DECIMAL (9, 6) NOT NULL,
+ [OH4UG01] DECIMAL (9, 6) NOT NULL,
+ [SC4UG01] DECIMAL (9, 6) NOT NULL,
+ [DSR] DECIMAL (9, 8) NULL,
+ [NetProd04] DECIMAL (9, 3) NOT NULL,
+ [FC4UG04] DECIMAL (9, 6) NOT NULL,
+ [VC4UG04] DECIMAL (9, 6) NOT NULL,
+ [FVC] DECIMAL (18, 6) NULL,
+ [Charge] DECIMAL (9, 6) NOT NULL,
+ [OrdDate] SMALLDATETIME NOT NULL,
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) NOT NULL,
+ [OrdQty] INT NOT NULL,
+ [valid] BIT CONSTRAINT [DF_QuoteFull_R_valid] DEFAULT ((1)) NOT NULL,
+ [errorScore] INT CONSTRAINT [DF_QuoteFull_R_errorScore] DEFAULT ((0)) NOT NULL,
+ CONSTRAINT [PK_QuoteFull_R_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'punteggio complessivo errori in procedure di calcolo', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'errorScore';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo Offerto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'PriceOff';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Classificazione cliente (es zona, provincia...) x incrocio con tab costi trasporto', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'TranspZone';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = D raft, 1 = C ompleted / in approvazione, 2 = A pprouved, 3 = R eleased', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R', @level2type = N'COLUMN', @level2name = N'IdxQState';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Resa', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_R';
+
diff --git a/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql b/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql
new file mode 100644
index 0000000..4a1f1ec
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.QuoteFull_S.sql
@@ -0,0 +1,168 @@
+CREATE TABLE [dbo].[QuoteFull_S] (
+ [Vers] VARCHAR (5) NOT NULL,
+ [QuoteType] CHAR (1) CONSTRAINT [DF_QuoteFull_S_QuoteType] DEFAULT ('S') NOT NULL,
+ [CodQuote] BIGINT CONSTRAINT [DF_QuoteFull_S_CodQuote] DEFAULT ((0)) NOT NULL,
+ [QuoteRev] INT CONSTRAINT [DF_QuoteFull_S_QuoteRev] DEFAULT ((0)) NOT NULL,
+ [IdxQState] INT CONSTRAINT [DF_QuoteFull_S_IdxQState] DEFAULT ((0)) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [CodItemGroup] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [UnitWeight] DECIMAL (9, 3) CONSTRAINT [DF_QuoteFull_S_UnitWeight] DEFAULT ((0)) NOT NULL,
+ [BatchQty] INT CONSTRAINT [DF_QuoteFull_S_BatchQty] DEFAULT ((1)) NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [TranspZone] NVARCHAR (50) NOT NULL,
+ [KeyAM] NVARCHAR (101) NOT NULL,
+ [Note] NVARCHAR (2500) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_PriceOff] DEFAULT ((0)) NOT NULL,
+ [CodClientAssoc] NVARCHAR (100) NULL,
+ [ClientNameAssoc] NVARCHAR (100) NULL,
+ [ItemDescr] NVARCHAR (100) NULL,
+ [CodifProfilo] NVARCHAR (100) NULL,
+ [ClasseMerc] NVARCHAR (100) NULL,
+ [TipoDies] NVARCHAR (100) NULL,
+ [CodDiesGroup] NVARCHAR (100) NULL,
+ [DiamDies] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiamDies] DEFAULT ((0)) NOT NULL,
+ [HoleNumDies] INT CONSTRAINT [DF_QuoteFull_S_HoleNumDies] DEFAULT ((1)) NOT NULL,
+ [DiesPrice_sim] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesPrice_avg] DEFAULT ((0)) NOT NULL,
+ [DiesPrice] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesPrice] DEFAULT ((0)) NOT NULL,
+ [SamplePrice] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_TestPrice] DEFAULT ((0)) NOT NULL,
+ [DiesFullCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesFullCost] DEFAULT ((0)) NOT NULL,
+ [DiesPriceClientQuote] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesPrice1] DEFAULT ((0)) NOT NULL,
+ [DiesExpLife] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesExpLife] DEFAULT ((0)) NOT NULL,
+ [DiesEOLife] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesEOLife] DEFAULT ((0)) NOT NULL,
+ [DiesTecLife] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesTecLife] DEFAULT ((1)) NOT NULL,
+ [DiesCommLife] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesCommLife1] DEFAULT ((1)) NOT NULL,
+ [MonthSalesPrev] INT CONSTRAINT [DF_QuoteFull_S_DiesTecLife1] DEFAULT ((0)) NOT NULL,
+ [SalesPrevCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_SalesPrevCost] DEFAULT ((0)) NOT NULL,
+ [DiesFinCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesFinCost] DEFAULT ((0)) NOT NULL,
+ [ClientQuoteReven] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_ClientQuoteReven] DEFAULT ((0)) NOT NULL,
+ [ExtraDiscountDies] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_ExtraDiscountDies] DEFAULT ((0)) NOT NULL,
+ [DiesByClass] BIT CONSTRAINT [DF_QuoteFull_S_DiesByClass] DEFAULT ((0)) NOT NULL,
+ [NumDiesInList] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_NumDiesInList] DEFAULT ((0)) NOT NULL,
+ [NumDiesExaust] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_NumDiesExaust] DEFAULT ((0)) NOT NULL,
+ [CodPlant] NVARCHAR (100) NULL,
+ [KeyAMIL] NVARCHAR (100) NULL,
+ [KgTeo] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_KgTeo] DEFAULT ((0)) NOT NULL,
+ [NumSMED] INT CONSTRAINT [DF_QuoteFull_S_NumSMED] DEFAULT ((0)) NOT NULL,
+ [QuotaMan] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_QuotaMan] DEFAULT ((0)) NOT NULL,
+ [PRMWeight] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_PRMWeight] DEFAULT ((0)) NOT NULL,
+ [PWeight] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_PWeight] DEFAULT ((0)) NOT NULL,
+ [PTare] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_PTare] DEFAULT ((0)) NOT NULL,
+ [LivPackage] NVARCHAR (100) NULL,
+ [LivPackageDett] NVARCHAR (100) NULL,
+ [RawMatCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_RawMatCost] DEFAULT ((0)) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_RawMatExtraCost] DEFAULT ((0)) NOT NULL,
+ [RawMatFullCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_RawMatFullCost] DEFAULT ((0)) NOT NULL,
+ [CodPackag] NVARCHAR (50) NOT NULL,
+ [PkgDesc] NVARCHAR (100) NULL,
+ [FSR] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_FSR] DEFAULT ((0)) NOT NULL,
+ [ProvvCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_ProvvCost] DEFAULT ((0)) NOT NULL,
+ [EECost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_EECost] DEFAULT ((0)) NOT NULL,
+ [GasCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_GasCost] DEFAULT ((0)) NOT NULL,
+ [DiesCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_DiesCost] DEFAULT ((0)) NOT NULL,
+ [PackCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_PackCost] DEFAULT ((0)) NOT NULL,
+ [TranspCost] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_TranspCost] DEFAULT ((0)) NOT NULL,
+ [SellCost01] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_SellCost01] DEFAULT ((0)) NOT NULL,
+ [RefCost01] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_RefCost01] DEFAULT ((0)) NOT NULL,
+ [SellCost04] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_SellCost04] DEFAULT ((0)) NOT NULL,
+ [RefCost04] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_RefCost04] DEFAULT ((0)) NOT NULL,
+ [WSR01_sim] DECIMAL (9, 8) CONSTRAINT [DF_QuoteFull_S_WSR01_avg] DEFAULT ((0)) NOT NULL,
+ [WSR01] DECIMAL (9, 8) CONSTRAINT [DF_QuoteFull_S_WSR01] DEFAULT ((0)) NOT NULL,
+ [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,
+ [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,
+ [OH4UG01] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_OH4UG01] DEFAULT ((0)) NOT NULL,
+ [SC4UG01] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_SC4UG01] DEFAULT ((0)) NOT NULL,
+ [DSR_sim] DECIMAL (9, 8) CONSTRAINT [DF_QuoteFull_S_DSR_avg] DEFAULT ((0)) NOT NULL,
+ [DSR] DECIMAL (9, 8) CONSTRAINT [DF_QuoteFull_S_DSR] DEFAULT ((0)) NOT NULL,
+ [NetProd04] DECIMAL (9, 3) CONSTRAINT [DF_QuoteFull_S_NetProd04] DEFAULT ((0)) NOT NULL,
+ [FC4UG04] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_FC4UG04] DEFAULT ((0)) NOT NULL,
+ [VC4UG04] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_VC4UG04] DEFAULT ((0)) NOT NULL,
+ [FVC] DECIMAL (18, 6) CONSTRAINT [DF_QuoteFull_S_FVC] DEFAULT ((0)) NOT NULL,
+ [Charge] DECIMAL (9, 6) CONSTRAINT [DF_QuoteFull_S_Charge] DEFAULT ((0)) NOT NULL,
+ [valid] BIT NOT NULL,
+ [errorScore] INT NOT NULL,
+ CONSTRAINT [PK_QuoteFull_S] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC)
+);
+
+
+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';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto medio SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DSR_sim';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica medio AMIL', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'NetProd01';
+
+
+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'NetProd01_sim';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto cesoia medio AMIL', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'MSR01';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto cesoia SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'MSR01_sim';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto tecnico medio AMIL', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'WSR01';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'scarto tecnico SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'WSR01_sim';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ricavo quota cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'ExtraDiscountDies';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ricavo quota cliente', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'ClientQuoteReven';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'oneri finanziari anticipo matrice', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesFinCost';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costi per durata commerciale', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'SalesPrevCost';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata commerciale in mesi prevista', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'MonthSalesPrev';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata commerciale in kg', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesCommLife';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Durata tecnica stimata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesTecLife';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo prove', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesFullCost';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo prove', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'SamplePrice';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'costo matrice per SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'DiesPrice_sim';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S';
+
diff --git a/C2P_Project/dbo/Tables/dbo.QuoteSimPar.sql b/C2P_Project/dbo/Tables/dbo.QuoteSimPar.sql
new file mode 100644
index 0000000..9a93213
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.QuoteSimPar.sql
@@ -0,0 +1,17 @@
+CREATE TABLE [dbo].[QuoteSimPar] (
+ [QuoteType] CHAR (1) CONSTRAINT [DF_QuoteSimPar_QuoteType] DEFAULT ('Q') NOT NULL,
+ [CodQuote] BIGINT NOT NULL,
+ [QuoteRev] INT CONSTRAINT [DF_QuoteSimPar_QuoteRev] DEFAULT ((0)) NOT NULL,
+ [NomePar] NVARCHAR (50) CONSTRAINT [DF_QuoteSimPar_NomePar] DEFAULT ('') NOT NULL,
+ [ValPar] NVARCHAR (50) CONSTRAINT [DF_QuoteSimPar_ValParStr] DEFAULT ('') NOT NULL,
+ CONSTRAINT [PK_QuoteSimPar_1] PRIMARY KEY CLUSTERED ([QuoteType] ASC, [CodQuote] ASC, [QuoteRev] ASC, [NomePar] ASC) WITH (FILLFACTOR = 90)
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteSimPar', @level2type = N'COLUMN', @level2name = N'CodQuote';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'tipo di preventivo: Q = quote, S = simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteSimPar', @level2type = N'COLUMN', @level2name = N'QuoteType';
+
diff --git a/C2P_Project/dbo/Tables/dbo.ReportPrintTicket.sql b/C2P_Project/dbo/Tables/dbo.ReportPrintTicket.sql
new file mode 100644
index 0000000..1d45387
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.ReportPrintTicket.sql
@@ -0,0 +1,30 @@
+CREATE TABLE [dbo].[ReportPrintTicket] (
+ [Ticket] INT NOT NULL,
+ [Report] NVARCHAR (50) CONSTRAINT [DF_Table1_Tabella] DEFAULT ('') NOT NULL,
+ [Chiave] NVARCHAR (250) CONSTRAINT [DF_ReportPrintTicket_Chiave] DEFAULT ('') NOT NULL,
+ [UserReq] NVARCHAR (50) CONSTRAINT [DF_ReportPrintTicket_UserReq] DEFAULT ('') NOT NULL,
+ [DataReq] DATETIME CONSTRAINT [DF_ReportPrintTicket_DataReq] DEFAULT (getdate()) NOT NULL,
+ [DataPrint] DATETIME NULL,
+ CONSTRAINT [PK_ReportPrintTicket] PRIMARY KEY CLUSTERED ([Ticket] ASC, [Report] ASC, [Chiave] ASC)
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data stampa', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'DataPrint';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'data richiesta', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'DataReq';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'user richiesta', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'UserReq';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'chiave multipla richiesta (specifica epr report)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'Chiave';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ticket univoco per stampa', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'ReportPrintTicket', @level2type = N'COLUMN', @level2name = N'Ticket';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascClass01.sql b/C2P_Project/dbo/Tables/dbo.TrascClass01.sql
new file mode 100644
index 0000000..d442f0d
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascClass01.sql
@@ -0,0 +1,9 @@
+CREATE TABLE [dbo].[TrascClass01] (
+ [Class01] NVARCHAR (50) NOT NULL,
+ [Class01New] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClass01';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascClass02.sql b/C2P_Project/dbo/Tables/dbo.TrascClass02.sql
new file mode 100644
index 0000000..6355272
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascClass02.sql
@@ -0,0 +1,9 @@
+CREATE TABLE [dbo].[TrascClass02] (
+ [Class02] NVARCHAR (50) NOT NULL,
+ [Class02New] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClass02';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascClass03.sql b/C2P_Project/dbo/Tables/dbo.TrascClass03.sql
new file mode 100644
index 0000000..86d8c12
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascClass03.sql
@@ -0,0 +1,9 @@
+CREATE TABLE [dbo].[TrascClass03] (
+ [Class03] NVARCHAR (50) NOT NULL,
+ [Class03New] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClass03';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascClient.sql b/C2P_Project/dbo/Tables/dbo.TrascClient.sql
new file mode 100644
index 0000000..d05f00a
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascClient.sql
@@ -0,0 +1,11 @@
+CREATE TABLE [dbo].[TrascClient] (
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [ClientName] NVARCHAR (250) NOT NULL,
+ [CodClientNew] NVARCHAR (50) NOT NULL,
+ [ClientNameNew] NVARCHAR (250) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascClient';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascDies.sql b/C2P_Project/dbo/Tables/dbo.TrascDies.sql
new file mode 100644
index 0000000..0c59dde
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascDies.sql
@@ -0,0 +1,9 @@
+CREATE TABLE [dbo].[TrascDies] (
+ [CodDies] NVARCHAR (50) NOT NULL,
+ [CodDiesNew] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascDies';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascItem.sql b/C2P_Project/dbo/Tables/dbo.TrascItem.sql
new file mode 100644
index 0000000..6f40527
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascItem.sql
@@ -0,0 +1,11 @@
+CREATE TABLE [dbo].[TrascItem] (
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [ItemDescr] NVARCHAR (250) NOT NULL,
+ [CodItemNew] NVARCHAR (50) NOT NULL,
+ [ItemDescNew] NVARCHAR (250) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascItem';
+
diff --git a/C2P_Project/dbo/Tables/dbo.TrascPlan.sql b/C2P_Project/dbo/Tables/dbo.TrascPlan.sql
new file mode 100644
index 0000000..a764d22
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.TrascPlan.sql
@@ -0,0 +1,9 @@
+CREATE TABLE [dbo].[TrascPlan] (
+ [CodPlant] NVARCHAR (50) NOT NULL,
+ [CodPlantNew] NVARCHAR (50) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Tabella per Trascodifica dati in Dati DEMO', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'TrascPlan';
+
diff --git a/C2P_Project/dbo/Tables/dbo.UTENTE.sql b/C2P_Project/dbo/Tables/dbo.UTENTE.sql
new file mode 100644
index 0000000..d5c72d6
--- /dev/null
+++ b/C2P_Project/dbo/Tables/dbo.UTENTE.sql
@@ -0,0 +1,16 @@
+CREATE TABLE [dbo].[UTENTE] (
+ [DOMINIO] VARCHAR (30) NULL,
+ [USER_NAME] NVARCHAR (50) NOT NULL,
+ [COGNOME] VARCHAR (100) NULL,
+ [NOME] VARCHAR (100) NULL,
+ [COD_SOCIETA] VARCHAR (5) NULL,
+ [MATRICOLA] VARCHAR (5) NULL,
+ [COD_CDC] VARCHAR (10) NULL,
+ [EMAIL] VARCHAR (100) NULL,
+ [SIGLA] NVARCHAR (5) NULL,
+ [COD_LINGUA] VARCHAR (3) NULL,
+ [ATTIVO] CHAR (1) NULL,
+ CONSTRAINT [PK_UTENTE] PRIMARY KEY CLUSTERED ([USER_NAME] ASC),
+ CONSTRAINT [FK_UTENTE_CDC] FOREIGN KEY ([COD_CDC]) REFERENCES [dbo].[CDC] ([COD_CDC]) ON UPDATE CASCADE
+);
+
diff --git a/C2P_Project/dbo/Tables/test.sql b/C2P_Project/dbo/Tables/test.sql
deleted file mode 100644
index 4749e81..0000000
--- a/C2P_Project/dbo/Tables/test.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-CREATE TABLE [dbo].[test] (
- [Row] BIGINT IDENTITY (1, 1) NOT NULL,
- [CodPlant] NVARCHAR (50) NOT NULL,
- [EventStart] DATETIME NOT NULL,
- [ProcessNum] NVARCHAR (50) NOT NULL,
- [CodDies] NVARCHAR (50) NOT NULL,
- [CodClient] NVARCHAR (50) NOT NULL,
- [OrderNum] NVARCHAR (50) NOT NULL,
- [BatchNum] NVARCHAR (50) NOT NULL,
- CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED ([Row] ASC)
-);
-
diff --git a/C2P_Project/dbo/Views/dbo.v_MarginReport.sql b/C2P_Project/dbo/Views/dbo.v_MarginReport.sql
new file mode 100644
index 0000000..18aec6f
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_MarginReport.sql
@@ -0,0 +1,242 @@
+
+
+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
+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';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N'
+ 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 = 12180
+ Alias = 1725
+ 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_MarginReport';
+
+
+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[25] 4[31] 2[14] 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 = "QuoteFull_R"
+ Begin Extent =
+ Top = 5
+ Left = 30
+ Bottom = 226
+ Right = 213
+ End
+ DisplayFlags = 280
+ TopColumn = 69
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 109
+ 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 = 2445
+ 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
', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReport';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_MarginReportStats.sql b/C2P_Project/dbo/Views/dbo.v_MarginReportStats.sql
new file mode 100644
index 0000000..f262fbe
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_MarginReportStats.sql
@@ -0,0 +1,119 @@
+CREATE VIEW dbo.v_MarginReportStats
+AS
+SELECT MIN(OrdDate) AS FromDate, MAX(OrdDate) AS ToDate, COUNT(*) AS NumOrderRows, COUNT(DISTINCT OrdNum) AS NumOrders, COUNT(DISTINCT CodItem) AS NumItem, COUNT(DISTINCT CodClient)
+ AS NumClients
+FROM dbo.QuoteFull_R
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStats';
+
+
+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 = "QuoteFull_R"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 273
+ Right = 237
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ End
+ Begin CriteriaPane =
+ Begin ColumnWidths = 12
+ 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_MarginReportStats';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_MarginReportStatsNewData.sql b/C2P_Project/dbo/Views/dbo.v_MarginReportStatsNewData.sql
new file mode 100644
index 0000000..d47e0db
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_MarginReportStatsNewData.sql
@@ -0,0 +1,130 @@
+CREATE VIEW dbo.[v_MarginReportStatsNewData]
+AS
+SELECT MIN(OrdDate) AS FromDate, MAX(OrdDate) AS ToDate, COUNT(*) AS NumOrderRows, COUNT(DISTINCT OrdNum) AS NumOrders, COUNT(DISTINCT CodItem) AS NumItem, COUNT(DISTINCT CodClient)
+ AS NumClients
+FROM ext.OrdersHistRaw
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStatsNewData';
+
+
+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 = "OrdersHistRaw (ext)"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 298
+ Right = 219
+ 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 = 12
+ 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_MarginReportStatsNewData';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_StdCostList.sql b/C2P_Project/dbo/Views/dbo.v_StdCostList.sql
new file mode 100644
index 0000000..f80c7c1
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_StdCostList.sql
@@ -0,0 +1,136 @@
+CREATE VIEW dbo.v_StdCostList
+AS
+SELECT LEFT(CodQuote, 6) AS DataRif, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost
+FROM dbo.QuoteFull_C
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_StdCostList';
+
+
+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[41] 4[20] 2[8] 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 = "QuoteFull_C"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 136
+ Right = 213
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 16
+ Width = 284
+ Width = 2205
+ Width = 2250
+ Width = 1200
+ Width = 915
+ Width = 720
+ Width = 1065
+ Width = 1230
+ Width = 840
+ 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_StdCostList';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_listinoArticoli.sql b/C2P_Project/dbo/Views/dbo.v_listinoArticoli.sql
new file mode 100644
index 0000000..828e8f5
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_listinoArticoli.sql
@@ -0,0 +1,157 @@
+CREATE VIEW dbo.v_listinoArticoli
+AS
+SELECT DISTINCT
+ GETDATE() AS DataRif, 'C' AS QuoteType, '' AS CodClient, dbo.DiesDet.CodItem, CASE WHEN dbo.ProductionLog.RawMat = '' THEN '6060' ELSE dbo.ProductionLog.RawMat END AS RawMat,
+ 2.00 + dbo.RawMatDet.ExtraMatCost AS RawMatCost, 1000 AS batchQty, 'EXW' AS CodInco
+FROM dbo.DiesDet INNER JOIN
+ dbo.ProductionLog ON dbo.DiesDet.CodDies = dbo.ProductionLog.CodDies INNER JOIN
+ dbo.RawMatDet ON dbo.ProductionLog.RawMat = dbo.RawMatDet.RawMat
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_listinoArticoli';
+
+
+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 = "ProductionLog"
+ Begin Extent =
+ Top = 26
+ Left = 424
+ Bottom = 347
+ Right = 594
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ Begin Table = "DiesDet"
+ Begin Extent =
+ Top = 77
+ Left = 128
+ Bottom = 247
+ Right = 298
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ Begin Table = "RawMatDet"
+ Begin Extent =
+ Top = 138
+ Left = 703
+ Bottom = 360
+ Right = 873
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ End
+ Begin ColumnWidths = 13
+ Width = 284
+ Width = 2055
+ 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'dbo', @level1type = N'VIEW', @level1name = N'v_listinoArticoli';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_pivot.sql b/C2P_Project/dbo/Views/dbo.v_pivot.sql
new file mode 100644
index 0000000..6d6d7d3
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_pivot.sql
@@ -0,0 +1,339 @@
+
+CREATE VIEW [dbo].[v_pivot]
+AS
+
+WITH ctePivotQuoteP
+AS (
+ SELECT *
+ FROM (
+ SELECT QuoteType
+ , CodQuote
+ , QuoteRev
+ , Descr
+ , Parameter
+ FROM dbo.QuoteParam
+ ) 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
+ , 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
+ ) 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
+ , CD.ClientName
+ , QL.CodItem
+ , QL.CodItemGroup
+ , QL.RawMat
+ , QL.UnitWeight
+ , QL.BatchQty
+ , QL.CodInco
+ , CD.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,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
+
+FROM dbo.QuoteList AS QL
+
+INNER JOIN dbo.ClientDet CD
+ 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
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_pivot';
+
+
+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 =
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ 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_pivot';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_selDateStdCost.sql b/C2P_Project/dbo/Views/dbo.v_selDateStdCost.sql
new file mode 100644
index 0000000..30dcec8
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_selDateStdCost.sql
@@ -0,0 +1,118 @@
+CREATE VIEW dbo.v_selDateStdCost
+AS
+SELECT DISTINCT CONVERT(date, LEFT(CodQuote, 6)) AS label, LEFT(CodQuote, 6) AS value
+FROM dbo.QuoteFull_C
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selDateStdCost';
+
+
+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 = "QuoteFull_C"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 136
+ Right = 213
+ End
+ DisplayFlags = 280
+ TopColumn = 0
+ End
+ End
+ End
+ Begin SQLPane =
+ End
+ Begin DataPane =
+ Begin ParameterDefaults = ""
+ 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_selDateStdCost';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_selPackage.sql b/C2P_Project/dbo/Views/dbo.v_selPackage.sql
new file mode 100644
index 0000000..46736af
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_selPackage.sql
@@ -0,0 +1,129 @@
+CREATE VIEW dbo.v_selPackage
+AS
+SELECT CodPackag AS value, PackagDesc AS label
+FROM dbo.PackagDet
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selPackage';
+
+
+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 = "PackagDet"
+ 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_selPackage';
+
diff --git a/C2P_Project/dbo/Views/dbo.v_selPlant.sql b/C2P_Project/dbo/Views/dbo.v_selPlant.sql
new file mode 100644
index 0000000..f9f6901
--- /dev/null
+++ b/C2P_Project/dbo/Views/dbo.v_selPlant.sql
@@ -0,0 +1,129 @@
+CREATE VIEW dbo.v_selPlant
+AS
+SELECT CodPlant AS value, Descript AS label
+FROM dbo.PlantsDet
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selPlant';
+
+
+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 = "PlantsDet"
+ Begin Extent =
+ Top = 6
+ Left = 38
+ Bottom = 119
+ 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_selPlant';
+
diff --git a/C2P_Project/dbo/Views/v_QuoteFull_Q.sql b/C2P_Project/dbo/Views/v_QuoteFull_Q.sql
index ecf05d1..0cbaf3b 100644
--- a/C2P_Project/dbo/Views/v_QuoteFull_Q.sql
+++ b/C2P_Project/dbo/Views/v_QuoteFull_Q.sql
@@ -1,14 +1,234 @@
CREATE VIEW dbo.v_QuoteFull_Q
AS
-SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr,
- CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, 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, 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 + RawMatFullCost AS P_PriceOff, FVC + FC4UG01 + OH4UG01 + FC4UG04 - PriceOff AS NetMar, (PriceOff - FVC) / (FC4UG01 + OH4UG01 + FC4UG04) AS FCShield, (PRMWeight - PTare)
- * (PriceOff + RawMatFullCost) / PWeight AS PckSur
-FROM dbo.QuoteFull_Q
+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
+ , 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 + RawMatFullCost AS P_PriceOff
+ , 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
+ , DiesPrice_sim
+ , SamplePrice
+ , DiesFullCost
+ , DiesPriceClientQuote
+ , DiesTecLife
+ , DiesCommLife
+ , MonthSalesPrev
+ , SalesPrevCost
+ , DiesFinCost
+ , ClientQuoteReven
+ , ExtraDiscountDies
+ , WSR01_sim
+ , MSR01_sim
+ , NetProd01_sim
+ , DSR_sim
+ , FVC + FC4UG01 + OH4UG01 + FC4UG04 - PriceOff - ExtraDiscountDies AS NetMar_sim
+ , (PriceOff - FVC - ExtraDiscountDies) / (FC4UG01 + OH4UG01 + FC4UG04) AS FCShield_sim
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04) + ExtraDiscountDies AS MinPrice_sim
+ , Charge * (FVC + FC4UG01 + OH4UG01 + FC4UG04 + RawMatFullCost) + ExtraDiscountDies AS P_MinPrice_sim
+FROM dbo.QuoteFull_S
+
+UNION
+
+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
+ , 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 + RawMatFullCost AS P_PriceOff
+ , 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
+ , 0.0 AS DiesPrice_sim
+ , 0.0 AS SamplePrice
+ , 0.0 AS DiesFullCost
+ , 0.0 AS DiesPriceClientQuote
+ , 0.0 AS DiesTecLife
+ , 0.0 AS DiesCommLife
+ , 0.0 AS MonthSalesPrev
+ , 0.0 AS SalesPrevCost
+ , 0.0 AS DiesFinCost
+ , 0.0 AS ClientQuoteReven
+ , 0.0 AS ExtraDiscountDies
+ , 0.0 AS WSR01_sim
+ , 0.0 AS MSR01_sim
+ , 0.0 AS NetProd01_sim
+ , 0.0 AS DSR_sim
+ , 0.0 AS NetMar_sim
+ , 0.0 AS FCShield_sim
+ , 0.0 AS MinPrice_sim
+ , 0.0 AS P_MinPrice_sim
+FROM dbo.QuoteFull_Q
GO
EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
@@ -78,20 +298,10 @@ Begin DesignProperties =
End
Begin DiagramPane =
Begin Origin =
- Top = 0
+ Top = -672
Left = 0
End
Begin Tables =
- Begin Table = "QuoteFull_Q"
- Begin Extent =
- Top = 6
- Left = 38
- Bottom = 235
- Right = 221
- End
- DisplayFlags = 280
- TopColumn = 0
- End
End
End
Begin SQLPane =
@@ -99,7 +309,7 @@ Begin DesignProperties =
Begin DataPane =
Begin ParameterDefaults = ""
End
- Begin ColumnWidths = 9
+ Begin ColumnWidths = 101
Width = 284
Width = 1500
Width = 1500
@@ -109,6 +319,114 @@ Begin DesignProperties =
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
+ 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
+ ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
+
+
+
+
+
+
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
+
+
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N' 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 =
@@ -131,11 +449,3 @@ Begin DesignProperties =
End
', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
-
-
-
-
-
-GO
-EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_QuoteFull_Q';
-
diff --git a/C2P_Project/dbo/Views/v_selItems.sql b/C2P_Project/dbo/Views/v_selItems.sql
index 11cb59a..4b727f6 100644
--- a/C2P_Project/dbo/Views/v_selItems.sql
+++ b/C2P_Project/dbo/Views/v_selItems.sql
@@ -1,6 +1,6 @@
CREATE VIEW dbo.v_selItems
AS
-SELECT CodItem AS value, ItemDescr + ' [' + CodItem + ']' AS label
+SELECT CodItem AS value, CodItem + ' - ' + ItemDescr AS label
FROM dbo.ItemDet
WHERE (CodItem <> '')
@@ -122,7 +122,10 @@ Begin DesignProperties =
Or = 1350
End
End
-End', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selItems';
+End
+', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selItems';
+
+
diff --git a/C2P_Project/ext/Stored Procedures/ext.stp_mergeOrdersHist.sql b/C2P_Project/ext/Stored Procedures/ext.stp_mergeOrdersHist.sql
new file mode 100644
index 0000000..e1e8c0b
--- /dev/null
+++ b/C2P_Project/ext/Stored Procedures/ext.stp_mergeOrdersHist.sql
@@ -0,0 +1,92 @@
+
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.22
+-- Description: Procedura per import dati in OrdersHist da dati OrdersHistRaw
+-- =============================================
+CREATE PROCEDURE [ext].[stp_mergeOrdersHist]
+(
+ @source NVARCHAR(20) = 'OrdersHistRaw' -- nome della tabella sorgente
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- Create a temporary table variable to hold the output actions.
+ DECLARE @SummaryOfChanges TABLE(Change VARCHAR(20));
+
+ -- import con MERGE... verifico tipo di caricamento richiesto!
+ IF @source = 'OrdersHistRaw' -- carico da tracciato produzione
+ BEGIN
+
+ MERGE INTO dbo.OrdersHist AS Target
+ USING(
+ SELECT OrdNum,
+ OrdRow,
+ OrdDate,
+ CodClient,
+ CodItem,
+ RawMat,
+ RawMatCost,
+ BatchQty,
+ CodInco,
+ OrdPrice,
+ RawMatExtraCost,
+ PriceOff,
+ OrdQty,
+ ProvvCost
+ FROM ext.OrdersHistRaw ) AS Source
+ ON Target.Ordnum = Source.Ordnum AND Target.Ordrow = Source.Ordrow
+
+ -- non faccio aggiornamento dei dati oppure potrei farlo solo per le righe non elaborate cioè con Codquote non valorizzato
+ --WHEN MATCHED
+ --THEN UPDATE SET
+ -- Orddate = Source.OrdDate,
+ -- Codclient = Source.CodClient,
+ -- Coditem = Source.CodItem,
+ -- Rawmat = Source.RawMat,
+ -- Rawmatcost = Source.RawMatCost,
+ -- Batchqty = Source.BatchQty,
+ -- Codinco = Source.CodInco,
+ -- Ordprice = Source.OrdPrice,
+ -- Quotetype = Source.QuoteType,
+ -- Codquote = Source.CodQuote,
+ -- Quoterev = Source.QuoteRev,
+ -- Endcalc = Source.EndCalc
+
+ WHEN NOT MATCHED BY TARGET
+ THEN INSERT ( OrdNum,
+ OrdRow,
+ OrdDate,
+ CodClient,
+ CodItem,
+ RawMat,
+ RawMatCost,
+ BatchQty,
+ CodInco,
+ OrdPrice,
+ RawMatExtraCost,
+ PriceOff,
+ OrdQty,
+ ProvvCost
+ --,Quotetype
+ --,Codquote
+ --,Quoterev
+ --,Endcalc
+ )
+ VALUES( OrdNum, OrdRow, OrdDate, CodClient, CodItem, RawMat, RawMatCost, BatchQty, CodInco, OrdPrice, RawMatExtraCost, PriceOff, OrdQty, ProvvCost ) -- , QuoteType, CodQuote, QuoteRev, EndCalc )
+ OUTPUT $action INTO @SummaryOfChanges;
+ END
+
+ -- aggiorno indici tabella ( attenzione durata per tabelle grandi )
+ ALTER INDEX ALL ON dbo.OrdersHist
+ REBUILD WITH ( FILLFACTOR = 100, SORT_IN_TEMPDB = ON ) ; -- ,STATISTICS_NORECOMPUTE = ON )
+
+ -- aggiorno statistiche tabella
+ UPDATE STATISTICS dbo.OrdersHist WITH FULLSCAN;
+
+ -- Query the results of the table variable.
+ SELECT Change, COUNT(*) AS CountPerChange
+ FROM @SummaryOfChanges
+ GROUP BY Change;
+END
\ No newline at end of file
diff --git a/C2P_Project/ext/Stored Procedures/stp_mergeCost2Plant.sql b/C2P_Project/ext/Stored Procedures/stp_mergeCost2Plant.sql
index 800ce52..15678a9 100644
--- a/C2P_Project/ext/Stored Procedures/stp_mergeCost2Plant.sql
+++ b/C2P_Project/ext/Stored Procedures/stp_mergeCost2Plant.sql
@@ -1,4 +1,6 @@
+
+
-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.12.03
@@ -25,7 +27,7 @@ BEGIN
--WHEN MATCHED THEN
-- UPDATE SET PackagName = Source.PackagName
WHEN NOT MATCHED BY TARGET THEN
- INSERT (CodPlant, ProcessNum) VALUES (CodPlant, ProcessNum)
+ INSERT (CodPlant, ProcessNum, FC, VC, OH, SC, QuotaPlantStd, QuotaManStd) VALUES (CodPlant, ProcessNum, 0,0,0,0,1,1 ) --> i valori sono stati caricati a mano???
OUTPUT $action INTO @SummaryOfChanges;
END
diff --git a/C2P_Project/ext/Stored Procedures/stp_mergeDiesDet.sql b/C2P_Project/ext/Stored Procedures/stp_mergeDiesDet.sql
index 652b781..6011449 100644
--- a/C2P_Project/ext/Stored Procedures/stp_mergeDiesDet.sql
+++ b/C2P_Project/ext/Stored Procedures/stp_mergeDiesDet.sql
@@ -32,6 +32,31 @@ BEGIN
INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, '#### - ' + CodItem, '', 0, '')
OUTPUT $action INTO @SummaryOfChanges;
+ -- =================================================
+ -- Carico i dati dei GRUPPI DI MATRICI ( DiesGroupDet ) mancanti
+ -- =================================================
+ MERGE INTO dbo.DiesGroupDet AS Target
+ USING (
+ SELECT CodDiesGroup
+ , ISNULL ( AVG( Price ),0) AS Price -- prezzo medio ( valori nulli non considerati )
+ , COUNT (*) AS QtyTot -- N. Matrici nel gruppo
+ , COUNT ( CASE Active WHEN 0 THEN 1 END ) AS QtyEOL -- Qta Matrici rottamate
+ , ISNULL( AVG( ExpLife ), 0 ) AS ExpLife -- Vita stimata matrice ( iniziale )
+ , ISNULL( AVG ( CASE WHEN Active = 0 AND ActLife > 5000 THEN ActLife END ),0 ) AS EOLLife -- solo Matrici rottamate e vita > 5000KG
+ FROM ext.DiesRaw
+ GROUP BY CodDiesGroup
+ ) AS Source
+ ON Target.CodDiesGroup = Source.CodDiesGroup
+ --WHEN MATCHED THEN
+ -- UPDATE SET CodDiesGroup = Source.CodDiesGroup, Price = Source.Price, QtyTot = Source.QtyTot
+ -- , QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife
+ -- , DateMod = GETDATE(), UserMod = 'IMPORT_DiesRaw'
+
+ WHEN NOT MATCHED BY TARGET THEN
+ INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod ,UserMod )
+ VALUES ( CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'IMPORT_DiesRaw' ) -- mi da errori in calcoli successivi altrimenti con zero a ExpLife e EOLLife
+ OUTPUT $action INTO @SummaryOfChanges;
+
-- =======================================
-- ora carico i dati delle singole matrici
-- =======================================
@@ -46,8 +71,8 @@ BEGIN
OUTPUT $action INTO @SummaryOfChanges;
-- =================================================
- -- Carico i dati dei GRUPPI DI MATRICI ( DiesGroupDet )
- -- nel caso debbano essere integrati vanno caricati nella tabella ext.DiesGroupRaw
+ -- Aggiorno i dati dei GRUPPI DI MATRICI ( DiesGroupDet )
+ -- con tutti i dati presenti in dbo.DiesDet ( nel caso di aggiornamento parziale )
-- =================================================
MERGE INTO dbo.DiesGroupDet AS Target
USING (
@@ -64,14 +89,13 @@ BEGIN
WHEN MATCHED THEN
UPDATE SET CodDiesGroup = Source.CodDiesGroup, Price = Source.Price, QtyTot = Source.QtyTot
, QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife
- , DateMod = GETDATE(), UserMod = 'IMPORT_DiesRaw'
+ , DateMod = GETDATE(), UserMod = 'UPDATE_DiesDet'
- WHEN NOT MATCHED BY TARGET THEN
+ WHEN NOT MATCHED BY TARGET THEN -- nel caso siano mancanti
INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod ,UserMod )
- VALUES ( CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'IMPORT_DiesRaw' ) -- mi da errori in calcoli successivi altrimenti con zero a ExpLife e EOLLife
+ VALUES ( CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'IMPORT_DiesDet' )
OUTPUT $action INTO @SummaryOfChanges;
-
---- a questo punto calcolo il VERO update dalle inforamzioni di dbo.DiesDet --> dbo.DiesGroupDet
--MERGE INTO dbo.DiesGroupDet AS Target
--USING (
diff --git a/C2P_Project/ext/Stored Procedures/stp_mergePlantsDet.sql b/C2P_Project/ext/Stored Procedures/stp_mergePlantsDet.sql
index 56bf7a9..793bd78 100644
--- a/C2P_Project/ext/Stored Procedures/stp_mergePlantsDet.sql
+++ b/C2P_Project/ext/Stored Procedures/stp_mergePlantsDet.sql
@@ -1,10 +1,11 @@
+
-- =============================================
-- Author: S.E. Locatelli
-- Create date: 2013.12.03
-- Description: Procedura per import dati in PlantsDet da dati ProductionLogRaw
-- =============================================
-create PROCEDURE [ext].[stp_mergePlantsDet]
+CREATE PROCEDURE [ext].[stp_mergePlantsDet]
(
@source NVARCHAR(20) = 'ProductionLogRaw' -- nome della tabella sorgente tra ProductionLogRaw e PackagRaw
)
@@ -25,7 +26,7 @@ BEGIN
--WHEN MATCHED THEN
-- UPDATE SET PackagName = Source.PackagName
WHEN NOT MATCHED BY TARGET THEN
- INSERT (CodPlant, Descript) VALUES (CodPlant, '#### - ' + CodPlant)
+ INSERT (CodPlant, Descript) VALUES (CodPlant, 'Plant - ' + CodPlant)
OUTPUT $action INTO @SummaryOfChanges;
END
diff --git a/C2P_Project/ext/Tables/ext.OrdersHistRaw.sql b/C2P_Project/ext/Tables/ext.OrdersHistRaw.sql
new file mode 100644
index 0000000..99c46b5
--- /dev/null
+++ b/C2P_Project/ext/Tables/ext.OrdersHistRaw.sql
@@ -0,0 +1,18 @@
+CREATE TABLE [ext].[OrdersHistRaw] (
+ [OrdNum] NVARCHAR (50) CONSTRAINT [DF_OrdersHistRaw_OrdNum] DEFAULT ((0)) NOT NULL,
+ [OrdRow] NVARCHAR (50) CONSTRAINT [DF_OrdersHistRaw_OrdRow] DEFAULT ((0)) NOT NULL,
+ [OrdDate] SMALLDATETIME CONSTRAINT [DF_OrdersHistRaw_OrdDate] DEFAULT (getdate()) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) CONSTRAINT [DF_OrdersHistRaw_CodItem] DEFAULT ('') NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] DECIMAL (18, 6) CONSTRAINT [DF_OrdersHistRaw_RawMatCost] DEFAULT ((0)) NOT NULL,
+ [BatchQty] INT CONSTRAINT [DF_OrdersHistRaw_BatchQty] DEFAULT ((0)) NOT NULL,
+ [CodInco] NVARCHAR (5) NOT NULL,
+ [OrdPrice] DECIMAL (9, 6) CONSTRAINT [DF_OrdersHistRaw_OrdPrice] DEFAULT ((0)) NOT NULL,
+ [RawMatExtraCost] DECIMAL (18, 6) CONSTRAINT [DF_OrdersHistRaw_RawMatExtraCost] DEFAULT ((0)) NOT NULL,
+ [PriceOff] DECIMAL (9, 6) CONSTRAINT [DF_OrdersHistRaw_PriceOff] DEFAULT ((0)) NOT NULL,
+ [OrdQty] INT CONSTRAINT [DF_OrdersHistRaw_OrderQty] DEFAULT ((0)) NOT NULL,
+ [ProvvCost] DECIMAL (9, 6) CONSTRAINT [DF_OrdersHistRaw_ProvvCost] DEFAULT ((0)) NOT NULL,
+ CONSTRAINT [PK_OrdersHistRaw] PRIMARY KEY CLUSTERED ([OrdNum] ASC, [OrdRow] ASC)
+);
+
diff --git a/C2P_Project/tmp/Stored Procedures/importClientsRaw.sql b/C2P_Project/tmp/Stored Procedures/importClientsRaw.sql
index 912293a..9613f45 100644
--- a/C2P_Project/tmp/Stored Procedures/importClientsRaw.sql
+++ b/C2P_Project/tmp/Stored Procedures/importClientsRaw.sql
@@ -1,8 +1,9 @@
+
-- =============================================
-- Author: S.E. Locatelli
--- Create date: 2013.11.29
+-- Mod. date: 2013.11.29
-- Description: Procedura per import dati in tabella tmp da file csv
-- =============================================
CREATE PROCEDURE [tmp].[importClientsRaw]
diff --git a/C2P_Project/tmp/Stored Procedures/tmp.convertOrdersHistRaw.sql b/C2P_Project/tmp/Stored Procedures/tmp.convertOrdersHistRaw.sql
new file mode 100644
index 0000000..34742b2
--- /dev/null
+++ b/C2P_Project/tmp/Stored Procedures/tmp.convertOrdersHistRaw.sql
@@ -0,0 +1,45 @@
+-- =============================================
+-- Author: Steamware
+-- Mod. date: 2014.05.22
+-- Description: Procedura per conversione e tipizzazione dati da tmp a ext x OrdersHistRaw
+-- =============================================
+CREATE PROCEDURE [tmp].[convertOrdersHistRaw]
+(
+ @fileType NVARCHAR(50) = 'OrdersHistRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'OrdersHistRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE ext.OrdersHistRaw
+
+ -- inserisco con cast valori...
+ INSERT ext.OrdersHistRaw
+ WITH (TABLOCK)
+ ( OrdNum, OrdRow, OrdDate, CodClient, CodItem, RawMat, RawMatCost, BatchQty, CodInco, OrdPrice, RawMatExtraCost, PriceOff, OrdQty, ProvvCost)
+ SELECT
+ OrdNum,
+ OrdRow,
+ dbo.f_dtFromRaw( OrdDate ) AS OrdDate,
+ CodClient,
+ CodItem,
+ RawMat,
+ CONVERT( DECIMAL( 18,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(RawMatCost,'.',''),',','.' ) )) AS RawMatCost,
+ CONVERT(INT, CONVERT ( FLOAT , REPLACE( '0' + REPLACE(BatchQty,'.',''),',','.' ) )) AS BatchQty, -- lotto
+ CodInco,
+ CONVERT( DECIMAL( 18,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(OrdPrice,'.',''),',','.' ) )) AS OrdPrice,
+ CONVERT( DECIMAL( 18,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(RawMatExtraCost,'.',''),',','.' ) )) AS RawMatExtraCost,
+ CONVERT( DECIMAL( 9,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(PriceOff,'.',''),',','.' ) )) AS PriceOff, -- trasformazione
+ CONVERT( INT, CONVERT ( FLOAT , REPLACE( '0' + REPLACE(OrdQty,'.',''),',','.' ) )) AS OrdQty,
+ CONVERT( DECIMAL( 9,6 ), CONVERT ( FLOAT , REPLACE( '0' + REPLACE(ProvvCost,'.',''),',','.' ) )) AS ProvvCost -- provvigioni
+ FROM tmp.OrdersHistRaw;
+
+ SELECT COUNT(*) as RecordsIn FROM ext.OrdersHistRaw
+ END
+
+END
\ No newline at end of file
diff --git a/C2P_Project/tmp/Stored Procedures/tmp.importOrdersHistRaw.sql b/C2P_Project/tmp/Stored Procedures/tmp.importOrdersHistRaw.sql
new file mode 100644
index 0000000..7bce6c3
--- /dev/null
+++ b/C2P_Project/tmp/Stored Procedures/tmp.importOrdersHistRaw.sql
@@ -0,0 +1,32 @@
+-- =============================================
+-- Author: S.E. Locatelli
+-- mod. date: 2014.05.22
+-- Description: Procedura per import dati in tabella tmp da file csv
+--
+-- TRUNCATE TABLE [tmp].[OrdersHistRaw]
+--
+-- =============================================
+CREATE PROCEDURE [tmp].[importOrdersHistRaw]
+(
+ @fileType NVARCHAR(50) = 'OrdersHistRaw'
+)
+AS
+BEGIN
+ SET NOCOUNT ON;
+
+ -- per Giancarlo: rendere parametrico con esecuzione sql x poter inserire nei parametri il separatore ed il resto? http://www.sqlteam.com/article/using-bulk-insert-to-load-a-text-file
+
+ IF @fileType = 'OrdersHistRaw'
+ BEGIN
+ -- svuoto tabella temp
+ TRUNCATE TABLE tmp.OrdersHistRaw
+
+ -- carico dati bulk!
+ BULK INSERT tmp.OrdersHistRaw
+ FROM 'e:\test\MarginRep_Import.csv'
+ WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorOrdersHist.log')
+ --WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n', FIRSTROW = 2, ERRORFILE = 'e:\test\errorProduct.log', CODEPAGE = '1252')
+
+ SELECT COUNT(*) AS RecordsIn FROM tmp.OrdersHistRaw
+ END
+END
\ No newline at end of file
diff --git a/C2P_Project/tmp/Tables/tmp.OrdersHistRaw.sql b/C2P_Project/tmp/Tables/tmp.OrdersHistRaw.sql
new file mode 100644
index 0000000..e555318
--- /dev/null
+++ b/C2P_Project/tmp/Tables/tmp.OrdersHistRaw.sql
@@ -0,0 +1,25 @@
+CREATE TABLE [tmp].[OrdersHistRaw] (
+ [OrdNum] NVARCHAR (50) NOT NULL,
+ [OrdRow] NVARCHAR (50) NOT NULL,
+ [OrdDate] NVARCHAR (50) NOT NULL,
+ [CodClient] NVARCHAR (50) NOT NULL,
+ [CodItem] NVARCHAR (50) NOT NULL,
+ [RawMat] NVARCHAR (50) NOT NULL,
+ [RawMatCost] NVARCHAR (50) NOT NULL,
+ [BatchQty] NVARCHAR (50) NOT NULL,
+ [CodInco] NVARCHAR (50) NOT NULL,
+ [OrdPrice] NVARCHAR (50) NOT NULL,
+ [RawMatExtraCost] NVARCHAR (50) NOT NULL,
+ [PriceOff] NVARCHAR (50) NOT NULL,
+ [OrdQty] NVARCHAR (50) NOT NULL,
+ [ProvvCost] NVARCHAR (50) CONSTRAINT [DF_OrdersHistRaw_ProvCost] DEFAULT ((0)) NOT NULL
+);
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Prezzo finale ordine', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'OrdersHistRaw', @level2type = N'COLUMN', @level2name = N'OrdPrice';
+
+
+GO
+EXECUTE sp_addextendedproperty @name = N'Note', @value = N'Import storico ordini per Quote_C', @level0type = N'SCHEMA', @level0name = N'tmp', @level1type = N'TABLE', @level1name = N'OrdersHistRaw';
+
diff --git a/C2P_Project/voc/Stored Procedures/stp_insNewLemma.sql b/C2P_Project/voc/Stored Procedures/stp_insNewLemma.sql
index 75ebe50..8fb42c1 100644
--- a/C2P_Project/voc/Stored Procedures/stp_insNewLemma.sql
+++ b/C2P_Project/voc/Stored Procedures/stp_insNewLemma.sql
@@ -1,22 +1,25 @@
/*************************************
* STORED PROCEDURE stp_insNewLemma
*
-* elimina record anagrafica classe prodotto
+* inseriemtno lemma vocabolario
*
* mod : 14/05/2012
* aut : S.E. Locatelli
**************************************/
CREATE PROCEDURE [voc].[stp_insNewLemma]
(
- @lemma NVARCHAR(50),
- @traduzione NVARCHAR(500)
+ @lemma NVARCHAR(50),
+ @traduzione NVARCHAR(500),
+ @OverWrite CHAR(1) = 'Y' -- Y/N Per forzarne inserimento anche se già presente
)
AS
--- elimino se c'era già...
-DELETE
-FROM Vocabolario
-WHERE lemma = @lemma
+-- elimino se c'era già e se richiesto...
+IF @OverWrite = 'Y'
+BEGIN
+ DELETE FROM Vocabolario
+ WHERE lemma = @lemma
+END
-- inserisco x tutte le lingue attive...
INSERT INTO Vocabolario
diff --git a/C2P_Project/voc/Stored Procedures/voc.stp_getByLingua.sql b/C2P_Project/voc/Stored Procedures/voc.stp_getByLingua.sql
new file mode 100644
index 0000000..4654793
--- /dev/null
+++ b/C2P_Project/voc/Stored Procedures/voc.stp_getByLingua.sql
@@ -0,0 +1,10 @@
+
+CREATE PROCEDURE [voc].[stp_getByLingua]
+(
+ @Lingua nvarchar(3)
+)
+AS
+ SET NOCOUNT ON;
+SELECT Lingua, Lemma, Traduzione
+FROM Vocabolario
+WHERE (Lingua = @Lingua)
\ No newline at end of file
diff --git a/C2P_Project/voc/Stored Procedures/voc.stp_getByLinguaLemmaLike.sql b/C2P_Project/voc/Stored Procedures/voc.stp_getByLinguaLemmaLike.sql
new file mode 100644
index 0000000..f853624
--- /dev/null
+++ b/C2P_Project/voc/Stored Procedures/voc.stp_getByLinguaLemmaLike.sql
@@ -0,0 +1,35 @@
+
+
+/*************************************
+* STORED PROCEDURE stp_getByLemmaLike
+*
+* elenco record da ricerca LIKE su lemma
+*
+* mod : 2014.04.28
+* aut : S.E. Locatelli
+**************************************/
+CREATE PROCEDURE [voc].[stp_getByLinguaLemmaLike]
+(
+ @Lingua NVARCHAR(3),
+ @search NVARCHAR(50)
+)
+AS
+
+SET NOCOUNT ON;
+SELECT Lingua, Lemma
+ ,CASE WHEN @Lingua = 'LB' THEN CONVERT(NVARCHAR(500),Lemma)
+ ELSE Traduzione END
+ AS Traduzione -- la traduzione corrisponde ai campi/lemmi x i report
+FROM Vocabolario
+WHERE (Lemma LIKE @search + '%')
+ AND ( Lingua = CASE WHEN @Lingua = 'LB' -- se richiede le Label dei campi estraggo i lemmi in inglese
+ THEN 'EN'
+ ELSE @Lingua
+ END )
+
+/* OLD
+SELECT Lingua, Lemma, Traduzione
+FROM Vocabolario
+WHERE (Lemma LIKE @search + '%')
+ AND (Lingua = @Lingua)
+*/
\ No newline at end of file
diff --git a/C2P_Project/voc/Stored Procedures/voc.stp_updateQuery.sql b/C2P_Project/voc/Stored Procedures/voc.stp_updateQuery.sql
new file mode 100644
index 0000000..2dfbd52
--- /dev/null
+++ b/C2P_Project/voc/Stored Procedures/voc.stp_updateQuery.sql
@@ -0,0 +1,10 @@
+
+CREATE PROCEDURE [voc].[stp_updateQuery]
+(
+ @Traduzione nvarchar(500),
+ @Original_Lingua nvarchar(3),
+ @Original_Lemma nvarchar(50)
+)
+AS
+ SET NOCOUNT OFF;
+UPDATE [dbo].[Vocabolario] SET [Traduzione] = @Traduzione WHERE ([Lingua] = @Original_Lingua) AND ([Lemma] = @Original_Lemma)
\ No newline at end of file
diff --git a/C2P_Project/voc/Stored Procedures/voc.stp_upsertLemma.sql b/C2P_Project/voc/Stored Procedures/voc.stp_upsertLemma.sql
new file mode 100644
index 0000000..5c2cd3e
--- /dev/null
+++ b/C2P_Project/voc/Stored Procedures/voc.stp_upsertLemma.sql
@@ -0,0 +1,28 @@
+/*************************************
+* STORED PROCEDURE stp_upsertLemma
+*
+* upsert record lemma
+*
+* mod : 14/05/2012
+* aut : S.E. Locatelli
+**************************************/
+create PROCEDURE [voc].[stp_upsertLemma]
+(
+ @Lingua NVARCHAR(3),
+ @Lemma NVARCHAR(50),
+ @Traduzione NVARCHAR(500)
+)
+AS
+
+-- effettuo merge x upsert!
+
+ MERGE Vocabolario AS target
+ USING (SELECT @Lingua, @Lemma, @Traduzione) AS source (Lingua, Lemma, Traduzione)
+ ON (target.Lingua = source.Lingua AND target.Lemma = source.Lemma)
+ WHEN MATCHED THEN
+ UPDATE SET Traduzione = source.traduzione
+ WHEN NOT MATCHED THEN
+ INSERT (Lingua, Lemma, Traduzione)
+ VALUES (source.Lingua, source.Lemma, source.Traduzione);
+
+RETURN
\ No newline at end of file
diff --git a/C2P_Project/voc/Stored Procedures/voc.stp_voUpdateLemmiReport.sql b/C2P_Project/voc/Stored Procedures/voc.stp_voUpdateLemmiReport.sql
new file mode 100644
index 0000000..9ae2cee
--- /dev/null
+++ b/C2P_Project/voc/Stored Procedures/voc.stp_voUpdateLemmiReport.sql
@@ -0,0 +1,33 @@
+-- =============================================
+-- Author: Samuele Locatelli
+-- Create date: 2014.05.09
+-- Description: riallinea le traduzioni dei report ai termini corrispondenti a video
+-- =============================================
+CREATE PROCEDURE voc.stp_voUpdateLemmiReport
+AS
+BEGIN
+ -- SET NOCOUNT ON added to prevent extra result sets from
+ -- interfering with SELECT statements.
+ SET NOCOUNT ON;
+
+ -- mostro situazione iniziale
+ SELECT *
+ FROM Vocabolario v1
+ inner join vocabolario v ON replace(v1.Lemma, 'C2P_prt1_','') = v.Lemma AND v1.Lingua = v.Lingua
+ WHERE v1.lemma LIKE 'C2P_prt1_%'
+
+ -- update!
+ UPDATE v1
+ SET traduzione = v.traduzione
+ FROM Vocabolario v1
+ INNER JOIN vocabolario v ON replace(v1.Lemma, 'C2P_prt1_','') = v.Lemma AND v1.Lingua = v.Lingua
+ WHERE v1.lemma LIKE 'C2P_prt1_%'
+
+
+ -- mostro situazione finale
+ SELECT *
+ FROM Vocabolario v1
+ inner join vocabolario v ON replace(v1.Lemma, 'C2P_prt1_','') = v.Lemma AND v1.Lingua = v.Lingua
+ WHERE v1.lemma LIKE 'C2P_prt1_%'
+
+END
\ No newline at end of file
diff --git a/C2P_Report/bin/C2P_Data.dll b/C2P_Report/bin/C2P_Data.dll
index 2139cfa..34ad5d0 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/SteamWare.dll b/C2P_Report/bin/SteamWare.dll
index 69a9068..51b6720 100644
Binary files a/C2P_Report/bin/SteamWare.dll and b/C2P_Report/bin/SteamWare.dll differ