From 4f868e40db12875f3d22ddca1e5e3548a57b9ce4 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 21 Nov 2014 17:44:11 +0100 Subject: [PATCH] fix deploy x progetto report (mancava nuova chiave dei timeout estesi...) --- C2P_Project/C2P_DB.sqlproj | 4 +- C2P_Project/bin/Output/C2P_DB.dacpac | Bin 160619 -> 160617 bytes C2P_Project/bin/Output/C2P_DB_Create.sql | 5664 ++++++++--------- C2P_Project/bin/Output/C2P_Project.dll | Bin 3584 -> 3584 bytes C2P_Report/C2P_Report.csproj | 2 +- .../{218.pubxml => IIS02.pubxml} | 0 C2P_Report/Web.config | 2 + C2P_Report/bin/C2P_Report.dll | Bin 1582592 -> 1582592 bytes ReleaseClienti/C2P_Report.zip | Bin 809931 -> 809992 bytes 9 files changed, 2838 insertions(+), 2834 deletions(-) rename C2P_Report/Properties/PublishProfiles/{218.pubxml => IIS02.pubxml} (100%) diff --git a/C2P_Project/C2P_DB.sqlproj b/C2P_Project/C2P_DB.sqlproj index 77f5756..14d00f5 100644 --- a/C2P_Project/C2P_DB.sqlproj +++ b/C2P_Project/C2P_DB.sqlproj @@ -318,11 +318,13 @@ - + + + \ No newline at end of file diff --git a/C2P_Project/bin/Output/C2P_DB.dacpac b/C2P_Project/bin/Output/C2P_DB.dacpac index 44da847a24c6df3caa0e3fc77ddd8556f006f73f..b075555ef11c6a64a2689f357b3917fe08f9c3b5 100644 GIT binary patch delta 689 zcmaF;jPvC)PM!d7W)=|!1_lm>n>~#@tvrldd6?|-m~Qq=_sL^=#(A@+)b)+r^bEP_ z*7;1v^{4x08;INue`T+*jrYbgUzQ#w#+9pXbxzq*&F+)LT5!zlYD(SO?z*7*g=&f= zm(s$fhJX87`6K3jynUS;|M}d-wdyee*N$2lEnGKoU5e=2vW@pn-{Sbv{^alOjLy^U ze&t&(i!2b{xNrI=3wDPo)t8bIw{3aivmt7hYIb8q7R$r>F0qguEZK)N^ImXI^J0k* zh-8S`m2`DWM(b(jdlN;|-4Cg%KB`&6bzg6u(CwDPT?f7ZW141b0MB7iOR2%yZwg`j))y+o1nV(L%48{ruPb=DT-jLh@lh-Iq@uG+oZsmlUsR zx>v!zBUyv#dvd4T)%tgH9*O?l7~~W(Pv}jn*vD75Ry3b7laY^dYY;SXvR|Qia9i}G zT$W|8gC%C1b}2n#C}5;Y}1&T?SC*_lsR2$6VDu>1uCL zKU0wFvZ6esRcJSn^Tq*4F6XrcP72H}-~3SU)BIY|QV1wDJYaZx>qE zi{>kePe1v;?yqO+ligeXY}+2VP5r6km$xPY*O}jHFW<-)6*lo$$l(?0-3Adlcg~!( zz0X^mJ+aNKh)Mr+LSp+-qtdkux_6)IEc%f6up(~avNDd(dpHbmMDD+HIkQg*=`AfIY~Nrf&8N>YF|6^zvEg(yt|9EcnM z9aC2|jCe(g1KH7);72MHqw*ZqiEkH8scXaj#9#~z`HZ)UuvX^JM=lgC7etY?BAPb_ zcXI=7tpp{_P;6xT!)ILbUr0j}v&WgKb6>$*7<#PvsiCdvRS3526c^G=(Hs8&cLc@Y zzAf>8qrRP89MK<3O~lkGCBzR&6BeSS5A2$kxN zcossIgEkOP5t>45V-(>i3_d`8gT2W9;eg89@?Q*cY%ju&>w6=ne>NcWKgzC9y+i5e z>!kGd+8fSmX|K;?WN(N(=*v@WBQ!AvPZETG?6Z3lBkO9_37WLDQ-ahJW7TbIR(ztT z4L{H}*+RGStFS_-^dWJHHu4qot(dV7=jtBxpxbxnujDP{qB8y8(Z8|`^)4;H?QNXx zX>pKUb6torV0;xUF+syiTHAUV&2)yN+04)UJP3W9JF_` ' +CONVERT(NVARCHAR(20), @dateTo, 120) - FROM RevHistory - WHERE RevType = 'P' - - COMMIT TRAN - -END -GO -PRINT N'Creating [dbo].[stp_prt_dsQuoteFull_byChiave]...'; - - -GO --- ============================================= --- 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 - , NetProd04_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 -GO -PRINT N'Creating [dbo].[stp_prt_dsQuoteFull_Q_Data]...'; - - -GO --- ============================================= --- 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 - , NetProd04_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 -GO -PRINT N'Creating [dbo].[stp_QL_fullDataCount]...'; - - -GO --- ============================================= --- 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' - , @search NVARCHAR(250) = '*' -) -AS -SET NOCOUNT ON - -;WITH qfq_filt AS -( - SELECT * - FROM v_QuoteFull_Q - WHERE ClientName LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE ClientName END - OR RawMat LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE RawMat END - OR CodItem LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CodItem END - OR CONVERT(NVARCHAR(30), CodQuote) LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CONVERT(NVARCHAR(30), CodQuote) END -) - -SELECT COUNT(DISTINCT CodQuote) AS num -FROM qfq_filt vq -WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END - AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END - AND vq.RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN vq.RawMat ELSE @RawMat END - 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 -GO -PRINT N'Creating [dbo].[stp_QL_fullDataSearch]...'; - - -GO --- ============================================= --- STORED PROCEDURE stp_QL_fullDataSearch --- --- Author: Steamware --- 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 - , @qtaMin INT = 0 - , @qtaMax INT = 999999 - , @QuoteType CHAR(1) = '*' - , @IdxQState INT = '-1' - , @search NVARCHAR(250) = '*' -) -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 -), -qfq_filt AS -( - SELECT * - FROM v_QuoteFull_Q - WHERE ClientName LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE ClientName END - OR RawMat LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE RawMat END - OR CodItem LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CodItem END - OR CONVERT(NVARCHAR(30), CodQuote) LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CONVERT(NVARCHAR(30), CodQuote) END -) --- calcolo con aggiunta campi sommati... -SELECT vq.* -FROM qfq_filt vq - INNER JOIN myCte mc ON vq.QuoteType = mc.QuoteType AND vq.CodQuote = mc.CodQuote AND vq.QuoteRev = mc.QuoteRev -WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END - AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END - 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 - --- AND vq.ClientName LIKE '%{0}%' OR RawMat LIKE '%{0}%' OR CodItem LIKE '%{0}%' OR CONVERT(CodQuote, 'System.String') LIKE '%{0}%' - - -ORDER BY CodQuote DESC - -RETURN -GO -PRINT N'Creating [dbo].[stp_listValues_getByTable]...'; - - -GO -/*************************************** -* STORED stp_listValues_getByTable -* -* ottiene elenco campi data Table -* -* Steamware, S.E.L. -* mod: 2014.08.04 -* -****************************************/ -create PROCEDURE [stp_listValues_getByTable] -( - @TableName NVARCHAR(50) -) -AS - - SELECT * - FROM ListValues - WHERE TableName = @TableName - ORDER BY ordinal - -RETURN -GO -PRINT N'Creating [dbo].[stp_listValues_getValidValues]...'; - - -GO --- ============================================= --- STORED stp_getValidValues --- --- Author: S.E.L. --- Create date: 2011.05.26 --- Description: gestione selezione dati parametrici --- ============================================= -create PROCEDURE [stp_listValues_getValidValues] -( - @TableName NVARCHAR(50), - @FieldName NVARCHAR(50) -) -AS -BEGIN - SET NOCOUNT ON; - - SELECT value, label - FROM ListValues - WHERE TableName = @TableName - AND FieldName = @FieldName - ORDER BY ordinal -END -GO -PRINT N'Creating [dbo].[stp_listValues_getValidValuesFilt]...'; - - -GO --- ============================================= --- STORED stp_getValidValuesFilt --- --- Author: S.E.L. --- Create date: 2011.05.26 --- Description: gestione selezione dati parametrici --- con filtro su valore con LIKE --- ============================================= -create PROCEDURE [stp_listValues_getValidValuesFilt] -( - @TableName NVARCHAR(50), - @FieldName NVARCHAR(50), - @valueLike NVARCHAR(10) -) -AS -BEGIN - SET NOCOUNT ON; - - SELECT value, label - FROM ListValues - WHERE TableName = @TableName - AND FieldName = @FieldName - AND value LIKE @valueLike +'%' - ORDER BY ordinal -END -GO PRINT N'Creating [dbo].[stp_QLF_Delete]...'; @@ -10338,6 +9459,314 @@ COMMIT TRAN RETURN GO +PRINT N'Creating [dbo].[stp_listValues_getValidValuesFilt]...'; + + +GO +-- ============================================= +-- STORED stp_getValidValuesFilt +-- +-- Author: S.E.L. +-- Create date: 2011.05.26 +-- Description: gestione selezione dati parametrici +-- con filtro su valore con LIKE +-- ============================================= +create PROCEDURE [stp_listValues_getValidValuesFilt] +( + @TableName NVARCHAR(50), + @FieldName NVARCHAR(50), + @valueLike NVARCHAR(10) +) +AS +BEGIN + SET NOCOUNT ON; + + SELECT value, label + FROM ListValues + WHERE TableName = @TableName + AND FieldName = @FieldName + AND value LIKE @valueLike +'%' + ORDER BY ordinal +END +GO +PRINT N'Creating [dbo].[stp_listValues_getValidValues]...'; + + +GO +-- ============================================= +-- STORED stp_getValidValues +-- +-- Author: S.E.L. +-- Create date: 2011.05.26 +-- Description: gestione selezione dati parametrici +-- ============================================= +create PROCEDURE [stp_listValues_getValidValues] +( + @TableName NVARCHAR(50), + @FieldName NVARCHAR(50) +) +AS +BEGIN + SET NOCOUNT ON; + + SELECT value, label + FROM ListValues + WHERE TableName = @TableName + AND FieldName = @FieldName + ORDER BY ordinal +END +GO +PRINT N'Creating [dbo].[stp_listValues_getByTable]...'; + + +GO +/*************************************** +* STORED stp_listValues_getByTable +* +* ottiene elenco campi data Table +* +* Steamware, S.E.L. +* mod: 2014.08.04 +* +****************************************/ +create PROCEDURE [stp_listValues_getByTable] +( + @TableName NVARCHAR(50) +) +AS + + SELECT * + FROM ListValues + WHERE TableName = @TableName + ORDER BY ordinal + +RETURN +GO +PRINT N'Creating [dbo].[stp_QL_fullDataCount]...'; + + +GO +-- ============================================= +-- 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' + , @search NVARCHAR(250) = '*' +) +AS +SET NOCOUNT ON + +;WITH qfq_filt AS +( + SELECT * + FROM v_QuoteFull_Q + WHERE ClientName LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE ClientName END + OR RawMat LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE RawMat END + OR CodItem LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CodItem END + OR CONVERT(NVARCHAR(30), CodQuote) LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CONVERT(NVARCHAR(30), CodQuote) END +) + +SELECT COUNT(DISTINCT CodQuote) AS num +FROM qfq_filt vq +WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END + AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END + AND vq.RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN vq.RawMat ELSE @RawMat END + 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 +GO +PRINT N'Creating [dbo].[stp_QL_copyParamS]...'; + + +GO +-- ============================================= +-- Author: Steamware +-- Mod date: 2014.10.22 +-- Description: copia i parametri per una QL tipo Simulazione per casi clone/revisione +-- ============================================= +create PROCEDURE [dbo].[stp_QL_copyParamS] +( + @QuoteType CHAR(1) = 'Q', + @QuoteType_orig CHAR(1) = 'Q', + @CodQuote BIGINT = 0, + @CodQuote_orig BIGINT = 0, + @QuoteRev INT = 0, + @QuoteRev_orig INT = 0 +) +AS + + +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, 'NetProd04_sim', NetProd + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType_orig + AND CodQuote = @CodQuote_orig + AND QuoteRev = @QuoteRev_orig + AND ProcessNum = '04' + + INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) + SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR + 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 + +RETURN +GO +PRINT N'Creating [dbo].[stp_TD_upsert]...'; + + +GO + +-- ============================================= +-- Author: S.E. Locatelli +-- Create date: 2013.12.17 +-- Description: Crea TabDifett (tabella difettosità) +-- ============================================= +CREATE PROCEDURE [dbo].[stp_TD_upsert] +( + @dateFrom DATETIME, -- data da cui iniziare a caricare + @dateTo DATETIME -- data fino a cui caricare +) +AS +BEGIN + + SET XACT_ABORT ON; + BEGIN TRAN + + SET NOCOUNT ON; + + -- svuoto tabella... + TRUNCATE TABLE TabDifett + + -- riempio di nuovo valori! chiave AMI + INSERT INTO TabDifett + SELECT + dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant as KeyAMI + , pl.ProcessNum + , dd.CodItem, pl.RawMat, pl.CodPlant + , SUM(NumOUT) as TotOUT + , SUM(NumIN) as TotIn + FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies + WHERE pl.ProcessNum IN ('02', '04') + AND pl.okDi = 1 + -- and pl.EventType=1 + AND pl.EventStart BETWEEN @dateFrom AND @dateTo + GROUP BY dd.CodItem, pl.RawMat, pl.CodPlant, pl.ProcessNum + ORDER BY dd.CodItem, pl.RawMat, pl.ProcessNum--, SUM(NumOUT) DESC + + -- riempio di nuovo valori! chiave CMI + INSERT INTO TabDifett + SELECT + id.CodItemGroup + '-' + pl.RawMat + '-' + pl.CodPlant as KeyAMI + , pl.ProcessNum + , id.CodItemGroup, pl.RawMat, pl.CodPlant + , SUM(NumOUT) as TotOUT + , SUM(NumIN) as TotIn + FROM ProductionLog pl + INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies + INNER JOIN ItemDet id ON dd.CodItem = id.CodItem + WHERE pl.ProcessNum IN ('02', '04') + AND pl.okDi = 1 + -- and pl.EventType=1 + AND pl.EventStart BETWEEN @dateFrom AND @dateTo + GROUP BY id.CodItemGroup, pl.RawMat, pl.CodPlant, pl.ProcessNum + ORDER BY id.CodItemGroup, pl.RawMat, pl.ProcessNum--, SUM(NumOUT) DESC + + -- salvo nuova revisione dati di produzione... + INSERT INTO RevHistory + SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fasi 02/03 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120) + FROM RevHistory + WHERE RevType = 'P' + + COMMIT TRAN + +END +GO PRINT N'Creating [dbo].[stp_QL_update]...'; @@ -11454,114 +10883,1137 @@ BEGIN END GO -PRINT N'Creating [dbo].[stp_QL_copyParamS]...'; +PRINT N'Creating [dbo].[stp_QL_fullDataUpdate]...'; GO -- ============================================= +-- STORED PROCEDURE stp_QL_fullDataUpdate +-- -- Author: Steamware --- Mod date: 2014.10.22 --- Description: copia i parametri per una QL tipo Simulazione per casi clone/revisione +-- Create date: 2014.01.27 +-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestione web -- ============================================= -create PROCEDURE [dbo].[stp_QL_copyParamS] -( - @QuoteType CHAR(1) = 'Q', - @QuoteType_orig CHAR(1) = 'Q', - @CodQuote BIGINT = 0, - @CodQuote_orig BIGINT = 0, - @QuoteRev INT = 0, - @QuoteRev_orig INT = 0 -) +CREATE PROCEDURE [dbo].[stp_QL_fullDataUpdate] ( + @QuoteType CHAR(1) = 'Q' + , @CodQuote BIGINT = 0 + , @QuoteRev INT = 0 + , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N + ) AS +SET NOCOUNT ON + +/* va rifatta struttura: +* +* tab temporanea +* calcolo parametri +* salvataggio in QuoteList dei 3 valori di sunto +* calcolo dei valori aggregati e restituzione riga risultati finali +* +* ATTENZIONE NON CONTROLLA IL CAMPO VALID DEVE ESSERE SEMPRE 1 PER ESSERE VALIDO +* +*/ -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, 'NetProd04_sim', NetProd - FROM QuoteWorkInt - WHERE QuoteType = @QuoteType_orig - AND CodQuote = @CodQuote_orig - AND QuoteRev = @QuoteRev_orig - AND ProcessNum = '04' - - INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) - SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR - 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 +--DECLARE @FullCost DECIMAL(9,6) +-- , @MinPrice DECIMAL(9,6) +IF (@DoUpdate = 'Y') +BEGIN + EXEC dbo.stp_QL_update @QuoteType + , @CodQuote + , @QuoteRev +END + + +-- inserire in tabelle: QuoteFull_Q (quotazioni/preventivi) +-- inserire in tabelle: QuoteFull_R (resoconto di commessa) +-- inserire in tabelle: QuoteFull_S (simulazioni) + +-- elimino eventuale temp table... +IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL + DROP TABLE #TempFullData; + + +-- Costruisco la "superselect" di tutti i valori necessari... + +-- ================================================= +-- PIVOT TABELLA QuoteParameter +-- ================================================= +;WITH ctePivotQuoteP +AS ( + SELECT * + FROM ( + SELECT QuoteType + , CodQuote + , QuoteRev + , Descr + , Parameter + FROM dbo.QuoteParam + WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev + ) AS SourceTable + + PIVOT(MIN(Parameter) FOR Descr IN ( + ItemDescr + , CodifProfilo + , ClasseMerc + , CodClientAssoc + , ClientNameAssoc + , CodDiesGroup + , TipoDies + , DiamDies + , HoleNumDies + , NumDiesInList + , NumDiesExaust + , CodPlant + , KeyAM + , KeyAMIL + , NumSMED + , KgTeo + , KgProdotti + , QuotaMan + , DiesPrice + , DiesExpLife + , DiesEOLife + , DiesByClass + , PkgDesc + , PRMWeight + , PWeight + , PTare + , TareStRatio + , LivPackage + , LivPackageDett + -- START nuovi campi x SIM + , DiesPrice_sim + , SamplePrice + , DiesFullCost + , DiesPriceClientQuote + , DiesTecLife + , DiesCommLife + , MonthSalesPrev + , SalesPrevCost + , DiesFinCost + , ClientQuoteReven + , ExtraDiscountDies + , WSR01_sim + , MSR01_sim + , NetProd01_sim + , NetProd04_sim + , DSR_sim + -- end nuovi campi x SIM + ) + ) AS PivotData +), +-- ================================================= +-- PIVOT TABELLA QuoteOC +-- ================================================= +ctePivotQuoteOC AS ( + SELECT * + FROM ( + SELECT QuoteType + , CodQuote + , QuoteRev + , Class01 + ProcessNum AS ClassProc + , C4UG + FROM dbo.QuoteOC + WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev + ) AS SourceTable + PIVOT(SUM(C4UG) FOR ClassProc IN + ( EE01 + , GAS01 + , MATRICE01 + , VENDITA01 + , ROTTAME01 + , VENDITA04 + , ROTTAME04 + , IMBALLO04 + , TRASPORTI04 + , PROVVIGIONI04 + ) + ) AS PivotData +) +-- ================================================= +-- MAIN Select Tabella con INTO temp table +-- ================================================= +SELECT 'V14.1' AS Vers + , QL.QuoteType + , QL.CodQuote + , QL.QuoteRev + , QL.IdxQState + , QL.CodClient + , ISNULL(CD.ClientName,N'') AS ClientName + , QL.CodItem + , QL.CodItemGroup + , QL.RawMat + , QL.UnitWeight + , QL.BatchQty + , QL.CodInco + , ISNULL(CD.TranspZone,N'') AS TranspZone + , QL.KeyAM + , QL.Note + , QL.PriceOff + , QL.OrdDate + , QL.OrdNum + , QL.OrdRow + , QL.OrdPrice + , QL.OrdQty + , pQP.CodClientAssoc + , pQP.ClientNameAssoc + , pQP.ItemDescr + , pQP.CodifProfilo + , pQP.ClasseMerc + , pQP.TipoDies + , pQP.CodDiesGroup + , CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies + , CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice + , CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife + , CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife + , CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass + , CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList + , CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust + , pQP.CodPlant + , pQP.KeyAMIL + , CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo + , CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED + , CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan + , CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight + , CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight + , CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare + , pQP.LivPackage + , pQP.LivPackageDett + -- START nuovi campi x SIM + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice_sim),0) AS DiesPrice_sim + , ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife + , ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev + , ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost + , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost + , ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven + , ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies + , ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim + , ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim + , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim + , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd04_sim),0) AS NetProd04_sim + , ISNULL(CONVERT(DECIMAL(9,8),pQP.DSR_sim),0) AS DSR_sim + -- end nuovi campi x SIM + , QRM.RawMatCost + , QRM.RawMatExtraCost + , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!? + , QRM.CodPackag + , pQP.PkgDesc + , QRM.FSR + , ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost + , ISNULL(pQOC.EE01, 0) AS EECost + , ISNULL(pQOC.GAS01, 0) AS GasCost + , ISNULL(pQOC.MATRICE01, 0) AS DiesCost + , ISNULL(pQOC.IMBALLO04, 0) AS PackCost + , ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost + , ISNULL(pQOC.VENDITA01, 0) AS SellCost01 + , ISNULL(pQOC.ROTTAME01, 0) AS RefCost01 + , ISNULL(pQOC.VENDITA04, 0) AS SellCost04 + , ISNULL(pQOC.ROTTAME04, 0) AS RefCost04 + , QWI01.WSR AS WSR01 + , QWI01.MSR AS MSR01 + , QWI01.NetProd AS NetProd01 + , QWI01.FC4UG AS FC4UG01 + , QWI01.VC4UG AS VC4UG01 + , QWI01.OH4UG AS OH4UG01 + , QWI01.SC4UG AS SC4UG01 + , 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR + , QWI04.NetProd AS NetProd04 + , QWI04.FC4UG AS FC4UG04 + , QWI04.VC4UG AS VC4UG04 + , ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC + , PD.Charge + , QL.valid + , QL.errorScore + +INTO #TempFullData -- carico in temp table +FROM dbo.QuoteList AS QL + +LEFT JOIN dbo.ClientDet CD -- non voglio che non crei record x mancanza Cliente + ON QL.CodClient = CD.CodClient + +INNER JOIN ctePivotQuoteP AS pQP + ON QL.QuoteType = pQP.QuoteType + AND QL.CodQuote = pQP.CodQuote + AND QL.QuoteRev = pQP.QuoteRev + +INNER JOIN dbo.QuoteRM AS QRM + ON QL.QuoteType = QRM.QuoteType + AND QL.CodQuote = QRM.CodQuote + AND QL.QuoteRev = QRM.QuoteRev + AND QL.rawmat = QRM.RawMat + +INNER JOIN ctePivotQuoteOC AS pQOC + ON QL.QuoteType = pQOC.QuoteType + AND QL.CodQuote = pQOC.CodQuote + AND QL.QuoteRev = pQOC.QuoteRev + +INNER JOIN dbo.QuoteWorkInt AS QWI01 + ON QL.QuoteType = QWI01.QuoteType + AND QL.CodQuote = QWI01.CodQuote + AND QL.QuoteRev = QWI01.QuoteRev + AND QWI01.ProcessNum = '01' +INNER JOIN dbo.QuoteWorkInt AS QWI02 + ON QL.QuoteType = QWI02.QuoteType + AND QL.CodQuote = QWI02.CodQuote + AND QL.QuoteRev = QWI02.QuoteRev + AND QWI02.ProcessNum = '02' +INNER JOIN dbo.QuoteWorkInt AS QWI03 + ON QL.QuoteType = QWI03.QuoteType + AND QL.CodQuote = QWI03.CodQuote + AND QL.QuoteRev = QWI03.QuoteRev + AND QWI03.ProcessNum = '03' +INNER JOIN dbo.QuoteWorkInt AS QWI04 + ON QL.QuoteType = QWI04.QuoteType + AND QL.CodQuote = QWI04.CodQuote + AND QL.QuoteRev = QWI04.QuoteRev + AND QWI04.ProcessNum = '04' +INNER JOIN dbo.PlantsDet AS PD + ON PD.CodPlant = pQP.CodPlant + + +-- 2014.09.10 modifica x proporre campi _sim a standard... +-- Campi _sim: faccio verifica, se fossero vuoti li metto pari agli equivalenti NON _sim +UPDATE #TempFullData + SET WSR01_sim = CASE WHEN WSR01_sim > 0 THEN WSR01_sim ELSE WSR01 END + , MSR01_sim = CASE WHEN MSR01_sim > 0 THEN MSR01_sim ELSE MSR01 END + , DSR_sim = CASE WHEN DSR_sim > 0 THEN DSR_sim ELSE DSR END + , NetProd01_sim = CASE WHEN NetProd01_sim > 0 THEN NetProd01_sim ELSE NetProd01 END + , NetProd04_sim = CASE WHEN NetProd04_sim > 0 THEN NetProd04_sim ELSE NetProd04 END + +---- salvo i dati dell'ordine: FullCost, MinPrice, PriceOff (se zero lo pongo uguale a MinPrice) +--UPDATE QuoteList +--SET FullCost = @FullCost +-- , MinPrice = @MinPrice +-- , PriceOff = CASE WHEN ISNULL(PriceOff,0) = 0 THEN @MinPrice ELSE PriceOff END +--WHERE QuoteType = @QuoteType +-- AND CodQuote = @CodQuote +-- AND QuoteRev = @QuoteRev + +-- SELECT TOP 1000 * FROM #TempFullData + +IF @QuoteType = 'Q' + BEGIN + IF OBJECT_ID('QuoteFull_Q') IS NULL -- CREATE TABLE QuoteFull_Q da eliminare quando Tabella Definitiva + SELECT * INTO dbo.QuoteFull_Q FROM #TempFullData + ELSE + BEGIN + --DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_Q (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) + SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore + FROM #TempFullData + END + END + +ELSE IF @QuoteType = 'R' + BEGIN + IF OBJECT_ID('QuoteFull_R') IS NULL -- CREATE TABLE QuoteFull_R da eliminare quando Tabella Definitiva + SELECT * INTO dbo.QuoteFull_R FROM #TempFullData + ELSE + BEGIN + DELETE dbo.QuoteFull_R WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_R (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore) + SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore +-- FROM [dbo].[v_pivot] + FROM #TempFullData + END + END + +ELSE IF @QuoteType = 'S' + BEGIN + IF OBJECT_ID('QuoteFull_S') IS NULL -- CREATE TABLE QuoteFull_S da eliminare quando Tabella Definitiva + SELECT * INTO dbo.QuoteFull_S FROM #TempFullData + ELSE + BEGIN + DELETE dbo.QuoteFull_S WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_S (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev, SalesPrevCost, DiesFinCost, ClientQuoteReven, ExtraDiscountDies, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04_sim, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) + SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, (DiesPrice_sim + SamplePrice) AS DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev + -- se DiesCommLife è NULLA è messa a 1 sopra + ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) + THEN 0 + ELSE ( (((DiesTecLife % DiesCommLife) / DiesTecLife) * ( DiesPrice_sim + SamplePrice) ) / DiesTecLife ) + END AS SalesPrevCost + ,CASE WHEN DiesCommLife > 0 + THEN ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) + ELSE ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / 1 ) + END AS DiesFinCost + ,CASE WHEN DiesTecLife > 0 + THEN ( -DiesPriceClientQuote / DiesTecLife ) + ELSE -DiesPriceClientQuote + END AS ClientQuoteReven + ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) + THEN 0 + ELSE (((((DiesTecLife % DiesCommLife) / DiesTecLife ) * (DiesPrice_sim+SamplePrice)) / DiesTecLife + +(((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote) * (power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) + - DiesPriceClientQuote / DiesTecLife ) + END AS ExtraDiscountDies + + -- CALCOLI OLD Version + --((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end) AS SalesPrevCost, + --((((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end) AS DiesFinCost, + --( -DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ClientQuoteReven, + --(((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end+(((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end)-DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ExtraDiscountDies, + + ,DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04_sim, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore + + FROM #TempFullData + END + END +ELSE IF @QuoteType = 'C' + BEGIN + DELETE dbo.QuoteFull_C WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev + INSERT INTO dbo.QuoteFull_C ( Vers, QuoteType, CodQuote, QuoteRev, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost, valid, errorScore ) + SELECT Vers, QuoteType, CodQuote, QuoteRev, CodifProfilo, ClasseMerc, tmp.CodItem, RawMat, tmp.CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost, valid, errorScore + FROM #TempFullData AS tmp +END + +-- elimino temp table... +--IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL +-- DROP TABLE #TempFullData RETURN GO +PRINT N'Creating [dbo].[stp_QL_fullDataSearch]...'; + + +GO +-- ============================================= +-- STORED PROCEDURE stp_QL_fullDataSearch +-- +-- Author: Steamware +-- 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 + , @qtaMin INT = 0 + , @qtaMax INT = 999999 + , @QuoteType CHAR(1) = '*' + , @IdxQState INT = '-1' + , @search NVARCHAR(250) = '*' +) +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 +), +qfq_filt AS +( + SELECT * + FROM v_QuoteFull_Q + WHERE ClientName LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE ClientName END + OR RawMat LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE RawMat END + OR CodItem LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CodItem END + OR CONVERT(NVARCHAR(30), CodQuote) LIKE CASE WHEN @search <> '*' THEN '%'+@search+'%' ELSE CONVERT(NVARCHAR(30), CodQuote) END +) +-- calcolo con aggiunta campi sommati... +SELECT vq.* +FROM qfq_filt vq + INNER JOIN myCte mc ON vq.QuoteType = mc.QuoteType AND vq.CodQuote = mc.CodQuote AND vq.QuoteRev = mc.QuoteRev +WHERE vq.CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN vq.CodClient ELSE @CodClient END + AND vq.CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN vq.CodItem ELSE @CodItem END + 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 + +-- AND vq.ClientName LIKE '%{0}%' OR RawMat LIKE '%{0}%' OR CodItem LIKE '%{0}%' OR CONVERT(CodQuote, 'System.String') LIKE '%{0}%' + + +ORDER BY CodQuote DESC + +RETURN +GO +PRINT N'Creating [dbo].[stp_QL_fullData]...'; + + +GO +-- ============================================= +-- STORED PROCEDURE stp_QL_fullData +-- +-- Author: Steamware +-- Create date: 2014.01.27 +-- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen web +-- ============================================= +CREATE PROCEDURE [dbo].[stp_QL_fullData] ( + @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 + +IF(@QuoteType <> '' AND @DoUpdate = 'N') +BEGIN + EXEC stp_QL_fullDataUpdate @QuoteType + , @CodQuote + , @QuoteRev + , @DoUpdate +END + +---- calcolo con aggiunta campi sommati... +--SELECT * +-- , 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 QuoteFull_Q +--WHERE QuoteType = @QuoteType +-- AND CodQuote = @CodQuote +-- AND QuoteRev = @QuoteRev + +-- calcolo con aggiunta campi sommati... +SELECT * +FROM v_QuoteFull_Q +WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + +RETURN +GO +PRINT N'Creating [dbo].[stp_prt_dsQuoteFull_byChiave]...'; + + +GO +-- ============================================= +-- 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 + , NetProd04_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 +GO +PRINT N'Creating [dbo].[stp_prt_dsQuoteFull_Q_Data]...'; + + +GO +-- ============================================= +-- 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 + , NetProd04_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 +GO PRINT N'Creating [tmp].[importItemsRaw]...'; @@ -13797,6 +14249,37 @@ BEGIN GROUP BY Change; END GO +PRINT N'Creating [dbo].[stp_QuoteFull_Q_update]...'; + + +GO +-- ============================================= +-- Author: Steamware +-- Create date: 2014.02.07 +-- Description: update valori tab QuoteList +-- ============================================= +CREATE PROCEDURE [dbo].[stp_QuoteFull_Q_update] ( + @Original_QuoteType CHAR(1) = 'Q' + ,@Original_CodQuote BIGINT = 0 + ,@Original_QuoteRev INT = 0 + ,@PriceOff DECIMAL(9, 6) = 0 + ) +AS +BEGIN + +-- aggiorno valori! + UPDATE QuoteList + SET PriceOff = @PriceOff + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- update dei valori calcolati! + EXEC stp_QL_fullDataUpdate @Original_QuoteType + ,@Original_CodQuote + ,@Original_QuoteRev +END +GO PRINT N'Creating [dbo].[stp_test]...'; @@ -13811,6 +14294,180 @@ AS SELECT * FROM #QuoteParam DROP TABLE #QuoteParam GO +PRINT N'Creating [dbo].[stp_QLF_UpdCosts]...'; + + +GO + +-- ============================================= +-- 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] +( + @Original_QuoteType CHAR(1) = 'Q', + @Original_CodQuote BIGINT = 0, + @Original_QuoteRev INT = 0, + @PriceOff DECIMAL(18, 6) +) +AS + +SET XACT_ABORT ON; +BEGIN TRAN + + -- aggiorno valori QuoteList! + UPDATE QuoteList + SET PriceOff = @PriceOff + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + + -- 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 +GO +PRINT N'Creating [dbo].[stp_QLF_UpdHead]...'; + + +GO + +-- ============================================= +-- Author: Steamware - S.E.L. +-- Create date: 2014.04.11 +-- Description: update di un record in QL (Full) e poi aggiorna a cascata +-- ============================================= +CREATE PROCEDURE [dbo].[stp_QLF_UpdHead] +( + @Original_QuoteType CHAR(1) = 'Q', + @Original_CodQuote BIGINT = 0, + @Original_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) = '' +) +AS + +SET XACT_ABORT ON; +BEGIN TRAN + + -- aggiorno valori QuoteList! + UPDATE ql + SET CodClient = @CodClient + , CodItem = @CodItem + , RawMat = @RawMat + , BatchQty = @BatchQty + , CodInco = @CodInco + , Note = @Note + , 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 + SET RawMat = @RawMat + , RawMatCost = @RawMatCost + , RawMatExtraCost = @RawMatExtraCost + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- 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 +GO +PRINT N'Creating [dbo].[stp_QLF_UpdQState]...'; + + +GO + +-- ============================================= +-- 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] +( + @Original_QuoteType CHAR(1) = 'Q', + @Original_CodQuote BIGINT = 0, + @Original_QuoteRev INT = 0, + @IdxQState INT +) +AS + +SET XACT_ABORT ON; +BEGIN TRAN + + -- aggiorno valori QuoteList! + UPDATE QuoteList + SET IdxQState = @IdxQState + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + + -- 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 +GO PRINT N'Creating [dbo].[stp_zzz_scratch]...'; @@ -14059,1298 +14716,6 @@ BEGIN END GO -PRINT N'Creating [dbo].[stp_SC2C_insertForDate]...'; - - -GO - --- ============================================= --- 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 -GO -PRINT N'Creating [dbo].[stp_QL_fullDataUpdate]...'; - - -GO --- ============================================= --- STORED PROCEDURE stp_QL_fullDataUpdate --- --- Author: Steamware --- Create date: 2014.01.27 --- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestione web --- ============================================= -CREATE PROCEDURE [dbo].[stp_QL_fullDataUpdate] ( - @QuoteType CHAR(1) = 'Q' - , @CodQuote BIGINT = 0 - , @QuoteRev INT = 0 - , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N - ) -AS -SET NOCOUNT ON - -/* va rifatta struttura: -* -* tab temporanea -* calcolo parametri -* salvataggio in QuoteList dei 3 valori di sunto -* calcolo dei valori aggregati e restituzione riga risultati finali -* -* ATTENZIONE NON CONTROLLA IL CAMPO VALID DEVE ESSERE SEMPRE 1 PER ESSERE VALIDO -* -*/ - - ---DECLARE @FullCost DECIMAL(9,6) --- , @MinPrice DECIMAL(9,6) -IF (@DoUpdate = 'Y') -BEGIN - EXEC dbo.stp_QL_update @QuoteType - , @CodQuote - , @QuoteRev -END - - --- inserire in tabelle: QuoteFull_Q (quotazioni/preventivi) --- inserire in tabelle: QuoteFull_R (resoconto di commessa) --- inserire in tabelle: QuoteFull_S (simulazioni) - --- elimino eventuale temp table... -IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL - DROP TABLE #TempFullData; - - --- Costruisco la "superselect" di tutti i valori necessari... - --- ================================================= --- PIVOT TABELLA QuoteParameter --- ================================================= -;WITH ctePivotQuoteP -AS ( - SELECT * - FROM ( - SELECT QuoteType - , CodQuote - , QuoteRev - , Descr - , Parameter - FROM dbo.QuoteParam - WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev - ) AS SourceTable - - PIVOT(MIN(Parameter) FOR Descr IN ( - ItemDescr - , CodifProfilo - , ClasseMerc - , CodClientAssoc - , ClientNameAssoc - , CodDiesGroup - , TipoDies - , DiamDies - , HoleNumDies - , NumDiesInList - , NumDiesExaust - , CodPlant - , KeyAM - , KeyAMIL - , NumSMED - , KgTeo - , KgProdotti - , QuotaMan - , DiesPrice - , DiesExpLife - , DiesEOLife - , DiesByClass - , PkgDesc - , PRMWeight - , PWeight - , PTare - , TareStRatio - , LivPackage - , LivPackageDett - -- START nuovi campi x SIM - , DiesPrice_sim - , SamplePrice - , DiesFullCost - , DiesPriceClientQuote - , DiesTecLife - , DiesCommLife - , MonthSalesPrev - , SalesPrevCost - , DiesFinCost - , ClientQuoteReven - , ExtraDiscountDies - , WSR01_sim - , MSR01_sim - , NetProd01_sim - , NetProd04_sim - , DSR_sim - -- end nuovi campi x SIM - ) - ) AS PivotData -), --- ================================================= --- PIVOT TABELLA QuoteOC --- ================================================= -ctePivotQuoteOC AS ( - SELECT * - FROM ( - SELECT QuoteType - , CodQuote - , QuoteRev - , Class01 + ProcessNum AS ClassProc - , C4UG - FROM dbo.QuoteOC - WHERE CodQuote = @CodQuote AND QuoteType = @QuoteType AND QuoteRev = @QuoteRev - ) AS SourceTable - PIVOT(SUM(C4UG) FOR ClassProc IN - ( EE01 - , GAS01 - , MATRICE01 - , VENDITA01 - , ROTTAME01 - , VENDITA04 - , ROTTAME04 - , IMBALLO04 - , TRASPORTI04 - , PROVVIGIONI04 - ) - ) AS PivotData -) --- ================================================= --- MAIN Select Tabella con INTO temp table --- ================================================= -SELECT 'V14.1' AS Vers - , QL.QuoteType - , QL.CodQuote - , QL.QuoteRev - , QL.IdxQState - , QL.CodClient - , ISNULL(CD.ClientName,N'') AS ClientName - , QL.CodItem - , QL.CodItemGroup - , QL.RawMat - , QL.UnitWeight - , QL.BatchQty - , QL.CodInco - , ISNULL(CD.TranspZone,N'') AS TranspZone - , QL.KeyAM - , QL.Note - , QL.PriceOff - , QL.OrdDate - , QL.OrdNum - , QL.OrdRow - , QL.OrdPrice - , QL.OrdQty - , pQP.CodClientAssoc - , pQP.ClientNameAssoc - , pQP.ItemDescr - , pQP.CodifProfilo - , pQP.ClasseMerc - , pQP.TipoDies - , pQP.CodDiesGroup - , CONVERT(DECIMAL(18,6),pQP.DiamDies) AS DiamDies - , CONVERT(INT,pQP.HoleNumDies) AS HoleNumDies - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice),0) AS DiesPrice - , CONVERT(DECIMAL(18,6),pQP.DiesExpLife) AS DiesExpLife - , CONVERT(DECIMAL(18,6),pQP.DiesEOLife) AS DiesEOLife - , CONVERT(BIT, ISNULL(pQP.DiesByClass,0)) AS DiesByClass - , CONVERT(DECIMAL(18,6),pQP.NumDiesInList) AS NumDiesInList - , CONVERT(DECIMAL(18,6),pQP.NumDiesExaust) AS NumDiesExaust - , pQP.CodPlant - , pQP.KeyAMIL - , CONVERT(DECIMAL(18,6),pQP.KgTeo) AS KgTeo - , CONVERT(DECIMAL(18,6),pQP.NumSMED) AS NumSMED - , CONVERT(DECIMAL(18,6),pQP.QuotaMan) AS QuotaMan - , CONVERT(DECIMAL(18,6),pQP.PRMWeight) AS PRMWeight - , CONVERT(DECIMAL(18,6),pQP.PWeight) AS PWeight - , CONVERT(DECIMAL(18,6),pQP.PTare) AS PTare - , pQP.LivPackage - , pQP.LivPackageDett - -- START nuovi campi x SIM - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPrice_sim),0) AS DiesPrice_sim - , ISNULL(CONVERT(DECIMAL(18,6),pQP.SamplePrice),0) AS SamplePrice - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFullCost),0) AS DiesFullCost - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesPriceClientQuote),0) AS DiesPriceClientQuote - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesTecLife),0) AS DiesTecLife - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesCommLife),1) AS DiesCommLife - , ISNULL(CONVERT(INT,pQP.MonthSalesPrev),0) AS MonthSalesPrev - , ISNULL(CONVERT(DECIMAL(18,6),pQP.SalesPrevCost),0) AS SalesPrevCost - , ISNULL(CONVERT(DECIMAL(18,6),pQP.DiesFinCost),0) AS DiesFinCost - , ISNULL(CONVERT(DECIMAL(18,6),pQP.ClientQuoteReven),0) AS ClientQuoteReven - , ISNULL(CONVERT(DECIMAL(18,6),pQP.ExtraDiscountDies),0) AS ExtraDiscountDies - , ISNULL(CONVERT(DECIMAL(9,8),pQP.WSR01_sim),0) AS WSR01_sim - , ISNULL(CONVERT(DECIMAL(9,8),pQP.MSR01_sim),0) AS MSR01_sim - , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd01_sim),0) AS NetProd01_sim - , ISNULL(CONVERT(DECIMAL(9,3),pQP.NetProd04_sim),0) AS NetProd04_sim - , ISNULL(CONVERT(DECIMAL(9,8),pQP.DSR_sim),0) AS DSR_sim - -- end nuovi campi x SIM - , QRM.RawMatCost - , QRM.RawMatExtraCost - , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!? - , QRM.CodPackag - , pQP.PkgDesc - , QRM.FSR - , ISNULL(pQOC.PROVVIGIONI04, 0) AS ProvvCost - , ISNULL(pQOC.EE01, 0) AS EECost - , ISNULL(pQOC.GAS01, 0) AS GasCost - , ISNULL(pQOC.MATRICE01, 0) AS DiesCost - , ISNULL(pQOC.IMBALLO04, 0) AS PackCost - , ISNULL(pQOC.TRASPORTI04, 0) AS TranspCost - , ISNULL(pQOC.VENDITA01, 0) AS SellCost01 - , ISNULL(pQOC.ROTTAME01, 0) AS RefCost01 - , ISNULL(pQOC.VENDITA04, 0) AS SellCost04 - , ISNULL(pQOC.ROTTAME04, 0) AS RefCost04 - , QWI01.WSR AS WSR01 - , QWI01.MSR AS MSR01 - , QWI01.NetProd AS NetProd01 - , QWI01.FC4UG AS FC4UG01 - , QWI01.VC4UG AS VC4UG01 - , QWI01.OH4UG AS OH4UG01 - , QWI01.SC4UG AS SC4UG01 - , 1 - (QWI01.DYR * QWI02.DYR * QWI03.DYR * QWI04.DYR) AS DSR - , QWI04.NetProd AS NetProd04 - , QWI04.FC4UG AS FC4UG04 - , QWI04.VC4UG AS VC4UG04 - , ISNULL(pQOC.VENDITA01, 0) + ISNULL(pQOC.ROTTAME01, 0) + ISNULL(pQOC.VENDITA04, 0) + ISNULL(pQOC.ROTTAME04, 0) + ISNULL(pQOC.EE01, 0) + ISNULL(pQOC.GAS01, 0) + ISNULL(pQOC.MATRICE01, 0) + ISNULL(pQOC.IMBALLO04, 0) + ISNULL(pQOC.PROVVIGIONI04, 0) + ISNULL(pQOC.TRASPORTI04, 0) + QWI01.VC4UG + QWI04.VC4UG + QWI01.SC4UG AS FVC - , PD.Charge - , QL.valid - , QL.errorScore - -INTO #TempFullData -- carico in temp table -FROM dbo.QuoteList AS QL - -LEFT JOIN dbo.ClientDet CD -- non voglio che non crei record x mancanza Cliente - ON QL.CodClient = CD.CodClient - -INNER JOIN ctePivotQuoteP AS pQP - ON QL.QuoteType = pQP.QuoteType - AND QL.CodQuote = pQP.CodQuote - AND QL.QuoteRev = pQP.QuoteRev - -INNER JOIN dbo.QuoteRM AS QRM - ON QL.QuoteType = QRM.QuoteType - AND QL.CodQuote = QRM.CodQuote - AND QL.QuoteRev = QRM.QuoteRev - AND QL.rawmat = QRM.RawMat - -INNER JOIN ctePivotQuoteOC AS pQOC - ON QL.QuoteType = pQOC.QuoteType - AND QL.CodQuote = pQOC.CodQuote - AND QL.QuoteRev = pQOC.QuoteRev - -INNER JOIN dbo.QuoteWorkInt AS QWI01 - ON QL.QuoteType = QWI01.QuoteType - AND QL.CodQuote = QWI01.CodQuote - AND QL.QuoteRev = QWI01.QuoteRev - AND QWI01.ProcessNum = '01' -INNER JOIN dbo.QuoteWorkInt AS QWI02 - ON QL.QuoteType = QWI02.QuoteType - AND QL.CodQuote = QWI02.CodQuote - AND QL.QuoteRev = QWI02.QuoteRev - AND QWI02.ProcessNum = '02' -INNER JOIN dbo.QuoteWorkInt AS QWI03 - ON QL.QuoteType = QWI03.QuoteType - AND QL.CodQuote = QWI03.CodQuote - AND QL.QuoteRev = QWI03.QuoteRev - AND QWI03.ProcessNum = '03' -INNER JOIN dbo.QuoteWorkInt AS QWI04 - ON QL.QuoteType = QWI04.QuoteType - AND QL.CodQuote = QWI04.CodQuote - AND QL.QuoteRev = QWI04.QuoteRev - AND QWI04.ProcessNum = '04' -INNER JOIN dbo.PlantsDet AS PD - ON PD.CodPlant = pQP.CodPlant - - --- 2014.09.10 modifica x proporre campi _sim a standard... --- Campi _sim: faccio verifica, se fossero vuoti li metto pari agli equivalenti NON _sim -UPDATE #TempFullData - SET WSR01_sim = CASE WHEN WSR01_sim > 0 THEN WSR01_sim ELSE WSR01 END - , MSR01_sim = CASE WHEN MSR01_sim > 0 THEN MSR01_sim ELSE MSR01 END - , DSR_sim = CASE WHEN DSR_sim > 0 THEN DSR_sim ELSE DSR END - , NetProd01_sim = CASE WHEN NetProd01_sim > 0 THEN NetProd01_sim ELSE NetProd01 END - , NetProd04_sim = CASE WHEN NetProd04_sim > 0 THEN NetProd04_sim ELSE NetProd04 END - ----- salvo i dati dell'ordine: FullCost, MinPrice, PriceOff (se zero lo pongo uguale a MinPrice) ---UPDATE QuoteList ---SET FullCost = @FullCost --- , MinPrice = @MinPrice --- , PriceOff = CASE WHEN ISNULL(PriceOff,0) = 0 THEN @MinPrice ELSE PriceOff END ---WHERE QuoteType = @QuoteType --- AND CodQuote = @CodQuote --- AND QuoteRev = @QuoteRev - --- SELECT TOP 1000 * FROM #TempFullData - -IF @QuoteType = 'Q' - BEGIN - IF OBJECT_ID('QuoteFull_Q') IS NULL -- CREATE TABLE QuoteFull_Q da eliminare quando Tabella Definitiva - SELECT * INTO dbo.QuoteFull_Q FROM #TempFullData - ELSE - BEGIN - --DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - DELETE dbo.QuoteFull_Q WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_Q (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) - SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore - FROM #TempFullData - END - END - -ELSE IF @QuoteType = 'R' - BEGIN - IF OBJECT_ID('QuoteFull_R') IS NULL -- CREATE TABLE QuoteFull_R da eliminare quando Tabella Definitiva - SELECT * INTO dbo.QuoteFull_R FROM #TempFullData - ELSE - BEGIN - DELETE dbo.QuoteFull_R WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_R (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore) - SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, OrdDate, OrdNum, OrdRow, OrdPrice, OrdQty, valid, errorScore --- FROM [dbo].[v_pivot] - FROM #TempFullData - END - END - -ELSE IF @QuoteType = 'S' - BEGIN - IF OBJECT_ID('QuoteFull_S') IS NULL -- CREATE TABLE QuoteFull_S da eliminare quando Tabella Definitiva - SELECT * INTO dbo.QuoteFull_S FROM #TempFullData - ELSE - BEGIN - DELETE dbo.QuoteFull_S WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_S (Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev, SalesPrevCost, DiesFinCost, ClientQuoteReven, ExtraDiscountDies, DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04_sim, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore) - SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, TranspZone, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice_sim, DiesPrice, SamplePrice, (DiesPrice_sim + SamplePrice) AS DiesFullCost, DiesPriceClientQuote, DiesExpLife, DiesEOLife, DiesTecLife, DiesCommLife, MonthSalesPrev - -- se DiesCommLife è NULLA è messa a 1 sopra - ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) - THEN 0 - ELSE ( (((DiesTecLife % DiesCommLife) / DiesTecLife) * ( DiesPrice_sim + SamplePrice) ) / DiesTecLife ) - END AS SalesPrevCost - ,CASE WHEN DiesCommLife > 0 - THEN ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) - ELSE ((((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1))) / 1 ) - END AS DiesFinCost - ,CASE WHEN DiesTecLife > 0 - THEN ( -DiesPriceClientQuote / DiesTecLife ) - ELSE -DiesPriceClientQuote - END AS ClientQuoteReven - ,CASE WHEN ( DiesTecLife = 0 OR DiesCommLife = 0 ) - THEN 0 - ELSE (((((DiesTecLife % DiesCommLife) / DiesTecLife ) * (DiesPrice_sim+SamplePrice)) / DiesTecLife - +(((DiesPrice_sim+SamplePrice)-DiesPriceClientQuote) * (power((1.05),MonthSalesPrev/(12))-(1))) / DiesCommLife ) - - DiesPriceClientQuote / DiesTecLife ) - END AS ExtraDiscountDies - - -- CALCOLI OLD Version - --((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end) AS SalesPrevCost, - --((((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end) AS DiesFinCost, - --( -DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ClientQuoteReven, - --(((((DiesTecLife%DiesCommLife)/case when DiesTecLife=(0) then (1) else DiesTecLife end)*(DiesPrice+SamplePrice))/case when DiesTecLife=(0) then (1) else DiesTecLife end+(((DiesPrice+SamplePrice)-DiesPriceClientQuote)*(power((1.05),MonthSalesPrev/(12))-(1)))/case when DiesCommLife>(0) then DiesCommLife else (1) end)-DiesPriceClientQuote/case when DiesTecLife>(0) then DiesTecLife else (1) end) AS ExtraDiscountDies, - - ,DiesByClass, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01_sim, WSR01, MSR01_sim, MSR01, NetProd01_sim, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR_sim, DSR, NetProd04_sim, NetProd04, FC4UG04, VC4UG04, FVC, Charge, valid, errorScore - - FROM #TempFullData - END - END -ELSE IF @QuoteType = 'C' - BEGIN - DELETE dbo.QuoteFull_C WHERE QuoteType = @QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteFull_C ( Vers, QuoteType, CodQuote, QuoteRev, Class01, Class02, CodItem, RawMat, CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FullCost, valid, errorScore ) - SELECT Vers, QuoteType, CodQuote, QuoteRev, CodifProfilo, ClasseMerc, tmp.CodItem, RawMat, tmp.CodPlant, CodDiesGroup, CodPackag, batchQty, CodInco, RawMatFullCost, FVC, FVC + FC4UG01 + OH4UG01 + FC4UG04 AS FullCost, valid, errorScore - FROM #TempFullData AS tmp -END - --- elimino temp table... ---IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL --- DROP TABLE #TempFullData - -RETURN -GO -PRINT N'Creating [dbo].[stp_QLS_UpdExtrPar]...'; - - -GO --- ============================================= --- 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' - - -- 2014.10.12 modifica sam: chiamo 2 volte perché è simulazione e i valori _sim sono salvati alla fine ed usati all'inizio... - EXEC stp_QL_fullDataUpdate @Original_QuoteType - ,@Original_CodQuote - ,@Original_QuoteRev - ,'Y' - -COMMIT TRAN - - --- seleziono intera riga! - -SELECT * -FROM v_QuoteFull_Q -WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev - - -RETURN -GO -PRINT N'Creating [dbo].[stp_QLS_UpdHead]...'; - - -GO - --- ============================================= --- 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), - @ProvvCost DECIMAL(18,6), - @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 - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'ProvvCost', @ProvvCost - - - -- 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 -GO -PRINT N'Creating [dbo].[stp_QLS_UpdPackPar]...'; - - -GO --- ============================================= --- 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), - @NetProd04_sim DECIMAL(9, 3) -) -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 - - -- @NetProd04_sim - EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'NetProd04_sim', @NetProd04_sim - - -- update dei valori calcolati! - EXEC stp_QL_fullDataUpdate @Original_QuoteType - ,@Original_CodQuote - ,@Original_QuoteRev - ,'Y' - - -- la chiamo 2 volte perché è simulazione e i valori _sim sono salvati alla fine ed usati all'inizio... - EXEC stp_QL_fullDataUpdate @Original_QuoteType - ,@Original_CodQuote - ,@Original_QuoteRev - ,'Y' - - -COMMIT TRAN - - --- seleziono intera riga! - -SELECT * -FROM v_QuoteFull_Q -WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev - - -RETURN -GO -PRINT N'Creating [dbo].[stp_QL_fullData]...'; - - -GO --- ============================================= --- STORED PROCEDURE stp_QL_fullData --- --- Author: Steamware --- Create date: 2014.01.27 --- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen web --- ============================================= -CREATE PROCEDURE [dbo].[stp_QL_fullData] ( - @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 - -IF(@QuoteType <> '' AND @DoUpdate = 'N') -BEGIN - EXEC stp_QL_fullDataUpdate @QuoteType - , @CodQuote - , @QuoteRev - , @DoUpdate -END - ----- calcolo con aggiunta campi sommati... ---SELECT * --- , 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 QuoteFull_Q ---WHERE QuoteType = @QuoteType --- AND CodQuote = @CodQuote --- AND QuoteRev = @QuoteRev - --- calcolo con aggiunta campi sommati... -SELECT * -FROM v_QuoteFull_Q -WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - -RETURN -GO -PRINT N'Creating [dbo].[stp_QL_makeSim]...'; - - -GO --- ============================================= --- Author: Steamware --- Mod date: 2014.10.01 --- 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, 'NetProd04_sim', NetProd - FROM QuoteWorkInt - WHERE QuoteType = @QuoteType_orig - AND CodQuote = @CodQuote_orig - AND QuoteRev = @QuoteRev_orig - AND ProcessNum = '04' - - INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) - SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'MSR01_sim', MSR - FROM QuoteWorkInt - 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' - - -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam - EXEC stp_QL_fullDataUpdate @QuoteType - , @CodQuote_orig - , @QuoteRev_orig - , 'Y' - -COMMIT TRAN - --- seleziono intera riga! -SELECT * -FROM QuoteList -WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote_orig - AND QuoteRev = @QuoteRev_orig - -RETURN -GO -PRINT N'Creating [dbo].[stp_QL_clone]...'; - - -GO --- ============================================= --- 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 - EXEC stp_QL_copyParamS @QuoteType, @QuoteType_orig, @CodQuote, @CodQuote_orig, @QuoteRev, @QuoteRev_orig - - /* - 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, 'NetProd04_sim', NetProd - FROM QuoteWorkInt - WHERE QuoteType = @QuoteType_orig - AND CodQuote = @CodQuote_orig - AND QuoteRev = @QuoteRev_orig - AND ProcessNum = '04' - - INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) - SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR - 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' - - -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam - 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 -GO -PRINT N'Creating [dbo].[stp_QL_newRev]...'; - - -GO --- ============================================= --- 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 - - -- se la scheda di destinazione è simulazione - IF(@QuoteType = 'S') - BEGIN - EXEC stp_QL_copyParamS @QuoteType, @QuoteType, @CodQuote, @CodQuote, @QuoteRev, @QuoteRev_orig - END - - -- ricalcolo! - EXEC stp_QL_fullDataUpdate @QuoteType - ,@CodQuote - ,@QuoteRev - ,'Y' - - -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam - 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 -GO -PRINT N'Creating [dbo].[stp_QuoteFull_Q_update]...'; - - -GO --- ============================================= --- Author: Steamware --- Create date: 2014.02.07 --- Description: update valori tab QuoteList --- ============================================= -CREATE PROCEDURE [dbo].[stp_QuoteFull_Q_update] ( - @Original_QuoteType CHAR(1) = 'Q' - ,@Original_CodQuote BIGINT = 0 - ,@Original_QuoteRev INT = 0 - ,@PriceOff DECIMAL(9, 6) = 0 - ) -AS -BEGIN - --- aggiorno valori! - UPDATE QuoteList - SET PriceOff = @PriceOff - WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev - - -- update dei valori calcolati! - EXEC stp_QL_fullDataUpdate @Original_QuoteType - ,@Original_CodQuote - ,@Original_QuoteRev -END -GO -PRINT N'Creating [dbo].[stp_QLF_UpdCosts]...'; - - -GO - --- ============================================= --- 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] -( - @Original_QuoteType CHAR(1) = 'Q', - @Original_CodQuote BIGINT = 0, - @Original_QuoteRev INT = 0, - @PriceOff DECIMAL(18, 6) -) -AS - -SET XACT_ABORT ON; -BEGIN TRAN - - -- aggiorno valori QuoteList! - UPDATE QuoteList - SET PriceOff = @PriceOff - WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev - - - -- 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 -GO -PRINT N'Creating [dbo].[stp_QLF_UpdHead]...'; - - -GO - --- ============================================= --- Author: Steamware - S.E.L. --- Create date: 2014.04.11 --- Description: update di un record in QL (Full) e poi aggiorna a cascata --- ============================================= -CREATE PROCEDURE [dbo].[stp_QLF_UpdHead] -( - @Original_QuoteType CHAR(1) = 'Q', - @Original_CodQuote BIGINT = 0, - @Original_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) = '' -) -AS - -SET XACT_ABORT ON; -BEGIN TRAN - - -- aggiorno valori QuoteList! - UPDATE ql - SET CodClient = @CodClient - , CodItem = @CodItem - , RawMat = @RawMat - , BatchQty = @BatchQty - , CodInco = @CodInco - , Note = @Note - , 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 - SET RawMat = @RawMat - , RawMatCost = @RawMatCost - , RawMatExtraCost = @RawMatExtraCost - WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev - - -- 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 -GO -PRINT N'Creating [dbo].[stp_QLF_UpdQState]...'; - - -GO - --- ============================================= --- 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] -( - @Original_QuoteType CHAR(1) = 'Q', - @Original_CodQuote BIGINT = 0, - @Original_QuoteRev INT = 0, - @IdxQState INT -) -AS - -SET XACT_ABORT ON; -BEGIN TRAN - - -- aggiorno valori QuoteList! - UPDATE QuoteList - SET IdxQState = @IdxQState - WHERE QuoteType = @Original_QuoteType - AND CodQuote = @Original_CodQuote - AND QuoteRev = @Original_QuoteRev - - - -- 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 -GO PRINT N'Creating [dbo].[stp_QL_insNew]...'; @@ -15470,6 +14835,40 @@ WHERE QuoteType = @Original_QuoteType RETURN GO +PRINT N'Creating [dbo].[stp_SC2C_insertForDate]...'; + + +GO + +-- ============================================= +-- 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 +GO PRINT N'Creating [dbo].[stp_QLC_insNew]...'; @@ -16160,6 +15559,607 @@ TRUNCATE TABLE dbo.OrdersHist */ GO +PRINT N'Creating [dbo].[stp_QLS_UpdHead]...'; + + +GO + +-- ============================================= +-- 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), + @ProvvCost DECIMAL(18,6), + @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 + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'ProvvCost', @ProvvCost + + + -- 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 +GO +PRINT N'Creating [dbo].[stp_QLS_UpdExtrPar]...'; + + +GO +-- ============================================= +-- 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' + + -- 2014.10.12 modifica sam: chiamo 2 volte perché è simulazione e i valori _sim sono salvati alla fine ed usati all'inizio... + EXEC stp_QL_fullDataUpdate @Original_QuoteType + ,@Original_CodQuote + ,@Original_QuoteRev + ,'Y' + +COMMIT TRAN + + +-- seleziono intera riga! + +SELECT * +FROM v_QuoteFull_Q +WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + +RETURN +GO +PRINT N'Creating [dbo].[stp_QL_newRev]...'; + + +GO +-- ============================================= +-- 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 + + -- se la scheda di destinazione è simulazione + IF(@QuoteType = 'S') + BEGIN + EXEC stp_QL_copyParamS @QuoteType, @QuoteType, @CodQuote, @CodQuote, @QuoteRev, @QuoteRev_orig + END + + -- ricalcolo! + EXEC stp_QL_fullDataUpdate @QuoteType + ,@CodQuote + ,@QuoteRev + ,'Y' + + -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam + 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 +GO +PRINT N'Creating [dbo].[stp_QL_makeSim]...'; + + +GO +-- ============================================= +-- Author: Steamware +-- Mod date: 2014.10.01 +-- 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, 'NetProd04_sim', NetProd + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType_orig + AND CodQuote = @CodQuote_orig + AND QuoteRev = @QuoteRev_orig + AND ProcessNum = '04' + + INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) + SELECT @QuoteType, @CodQuote_orig, @QuoteRev_orig, 'MSR01_sim', MSR + FROM QuoteWorkInt + 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' + + -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam + EXEC stp_QL_fullDataUpdate @QuoteType + , @CodQuote_orig + , @QuoteRev_orig + , 'Y' + +COMMIT TRAN + +-- seleziono intera riga! +SELECT * +FROM QuoteList +WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote_orig + AND QuoteRev = @QuoteRev_orig + +RETURN +GO +PRINT N'Creating [dbo].[stp_QL_clone]...'; + + +GO +-- ============================================= +-- 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 + EXEC stp_QL_copyParamS @QuoteType, @QuoteType_orig, @CodQuote, @CodQuote_orig, @QuoteRev, @QuoteRev_orig + + /* + 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, 'NetProd04_sim', NetProd + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType_orig + AND CodQuote = @CodQuote_orig + AND QuoteRev = @QuoteRev_orig + AND ProcessNum = '04' + + INSERT INTO QuoteSimPar(QuoteType, CodQuote, QuoteRev, NomePar, ValPar) + SELECT @QuoteType, @CodQuote, @QuoteRev, 'MSR01_sim', MSR + 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' + + -- PATCH 2014/10 rieseguo ricalcolo x problema parametri simulati mancanti in quoteparam + 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 +GO +PRINT N'Creating [dbo].[stp_QLS_UpdPackPar]...'; + + +GO +-- ============================================= +-- 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), + @NetProd04_sim DECIMAL(9, 3) +) +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 + + -- @NetProd04_sim + EXEC stp_QSP_upsert @Original_QuoteType, @Original_CodQuote, @Original_QuoteRev, 'NetProd04_sim', @NetProd04_sim + + -- update dei valori calcolati! + EXEC stp_QL_fullDataUpdate @Original_QuoteType + ,@Original_CodQuote + ,@Original_QuoteRev + ,'Y' + + -- la chiamo 2 volte perché è simulazione e i valori _sim sono salvati alla fine ed usati all'inizio... + EXEC stp_QL_fullDataUpdate @Original_QuoteType + ,@Original_CodQuote + ,@Original_QuoteRev + ,'Y' + + +COMMIT TRAN + + +-- seleziono intera riga! + +SELECT * +FROM v_QuoteFull_Q +WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + +RETURN +GO PRINT N'Creating [dbo].[stp_zzz_scratchDatiDemo]...'; @@ -19814,166 +19814,6 @@ End ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReportStatsNewData'; -GO -PRINT N'Creating [dbo].[QuoteFull_S].[MS_Description]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S'; - - -GO -PRINT N'Creating [dbo].[QuoteFull_S].[DiesPrice_sim].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[SamplePrice].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[DiesFullCost].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[DiesTecLife].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[DiesCommLife].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[MonthSalesPrev].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[SalesPrevCost].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[DiesFinCost].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[ClientQuoteReven].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[ExtraDiscountDies].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[WSR01_sim].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[WSR01].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[MSR01_sim].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[MSR01].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[NetProd01_sim].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[NetProd04_sim].[MS_Description]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'NetProd04_sim'; - - -GO -PRINT N'Creating [dbo].[QuoteFull_S].[NetProd01].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[DSR_sim].[MS_Description]...'; - - -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 -PRINT N'Creating [dbo].[QuoteFull_S].[DSR].[MS_Description]...'; - - -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 PRINT N'Creating [dbo].[v_QuoteFull_Q].[MS_DiagramPane1]...'; @@ -20574,6 +20414,166 @@ Begin DesignProperties = Width = 1500 ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_MarginReport'; +GO +PRINT N'Creating [dbo].[QuoteFull_S].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Simulation', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S'; + + +GO +PRINT N'Creating [dbo].[QuoteFull_S].[DiesPrice_sim].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[SamplePrice].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[DiesFullCost].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[DiesTecLife].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[DiesCommLife].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[MonthSalesPrev].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[SalesPrevCost].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[DiesFinCost].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[ClientQuoteReven].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[ExtraDiscountDies].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[WSR01_sim].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[WSR01].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[MSR01_sim].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[MSR01].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[NetProd01_sim].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[NetProd04_sim].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'produttività teorica SIMULAZIONE', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_S', @level2type = N'COLUMN', @level2name = N'NetProd04_sim'; + + +GO +PRINT N'Creating [dbo].[QuoteFull_S].[NetProd01].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[DSR_sim].[MS_Description]...'; + + +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 +PRINT N'Creating [dbo].[QuoteFull_S].[DSR].[MS_Description]...'; + + +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 PRINT N'Creating [tmp].[ProductionLogRaw_KO].[okPr].[MS_Description]...'; @@ -21134,6 +21134,22 @@ GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'peso medio del pacco (compelssivo)', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'PackagRaw', @level2type = N'COLUMN', @level2name = N'FullWeight'; +GO +PRINT N'Creating [ext].[RcdItem].[CodItem].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdItem', @level2type = N'COLUMN', @level2name = N'CodItem'; + + +GO +PRINT N'Creating [ext].[RcdItem].[CodItemRcd].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdItem', @level2type = N'COLUMN', @level2name = N'CodItemRcd'; + + GO PRINT N'Creating [ext].[RcdClient].[CodClient].[MS_Description]...'; @@ -21167,357 +21183,19 @@ EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Ragione Soc GO -PRINT N'Creating [ext].[RcdItem].[CodItem].[MS_Description]...'; +PRINT N'Creating [ext].[RcdClass01].[CodClass01].[MS_Description]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdItem', @level2type = N'COLUMN', @level2name = N'CodItem'; +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClass01', @level2type = N'COLUMN', @level2name = N'CodClass01'; GO -PRINT N'Creating [ext].[RcdItem].[CodItemRcd].[MS_Description]...'; +PRINT N'Creating [ext].[RcdClass01].[CodClass01Rcd].[MS_Description]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice articolo', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdItem', @level2type = N'COLUMN', @level2name = N'CodItemRcd'; - - -GO -PRINT N'Creating [ext].[RcdPlants].[CodPlant].[MS_Description]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdPlants', @level2type = N'COLUMN', @level2name = N'CodPlant'; - - -GO -PRINT N'Creating [ext].[RcdPlants].[CodPlantRcd].[MS_Description]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdPlants', @level2type = N'COLUMN', @level2name = N'CodPlantRcd'; - - -GO -PRINT N'Creating [ext].[v_ClientDetRcd].[MS_DiagramPaneCount]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ClientDetRcd'; - - -GO -PRINT N'Creating [ext].[v_ClientDetRcd].[MS_DiagramPane1]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] -Begin DesignProperties = - Begin PaneConfigurations = - Begin PaneConfiguration = 0 - NumPanes = 4 - Configuration = "(H (1[40] 4[20] 2[20] 3) )" - End - Begin PaneConfiguration = 1 - NumPanes = 3 - Configuration = "(H (1 [50] 4 [25] 3))" - End - Begin PaneConfiguration = 2 - NumPanes = 3 - Configuration = "(H (1 [50] 2 [25] 3))" - End - Begin PaneConfiguration = 3 - NumPanes = 3 - Configuration = "(H (4 [30] 2 [40] 3))" - End - Begin PaneConfiguration = 4 - NumPanes = 2 - Configuration = "(H (1 [56] 3))" - End - Begin PaneConfiguration = 5 - NumPanes = 2 - Configuration = "(H (2 [66] 3))" - End - Begin PaneConfiguration = 6 - NumPanes = 2 - Configuration = "(H (4 [50] 3))" - End - Begin PaneConfiguration = 7 - NumPanes = 1 - Configuration = "(V (3))" - End - Begin PaneConfiguration = 8 - NumPanes = 3 - Configuration = "(H (1[56] 4[18] 2) )" - End - Begin PaneConfiguration = 9 - NumPanes = 2 - Configuration = "(H (1 [75] 4))" - End - Begin PaneConfiguration = 10 - NumPanes = 2 - Configuration = "(H (1[66] 2) )" - End - Begin PaneConfiguration = 11 - NumPanes = 2 - Configuration = "(H (4 [60] 2))" - End - Begin PaneConfiguration = 12 - NumPanes = 1 - Configuration = "(H (1) )" - End - Begin PaneConfiguration = 13 - NumPanes = 1 - Configuration = "(V (4))" - End - Begin PaneConfiguration = 14 - NumPanes = 1 - Configuration = "(V (2))" - End - ActivePaneConfig = 0 - End - Begin DiagramPane = - Begin Origin = - Top = 0 - Left = 0 - End - Begin Tables = - Begin Table = "ClientDet" - Begin Extent = - Top = 6 - Left = 38 - Bottom = 136 - Right = 208 - End - DisplayFlags = 280 - TopColumn = 0 - End - Begin Table = "RcdClient (ext)" - Begin Extent = - Top = 6 - Left = 246 - Bottom = 153 - Right = 416 - End - DisplayFlags = 280 - TopColumn = 0 - End - End - End - Begin SQLPane = - End - Begin DataPane = - Begin ParameterDefaults = "" - End - Begin ColumnWidths = 10 - Width = 284 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - End - End - Begin CriteriaPane = - Begin ColumnWidths = 11 - Column = 1440 - Alias = 900 - Table = 1170 - Output = 720 - Append = 1400 - NewValue = 1170 - SortType = 1350 - SortOrder = 1410 - GroupBy = 1350 - Filter = 1350 - Or = 1350 - Or = 1350 - Or = 1350 - End - End -End -', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ClientDetRcd'; - - -GO -PRINT N'Creating [ext].[v_ItemDetRcd].[MS_DiagramPaneCount]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; - - -GO -PRINT N'Creating [ext].[v_ItemDetRcd].[MS_DiagramPane2]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N' SortOrder = 1410 - GroupBy = 1350 - Filter = 1350 - Or = 1350 - Or = 1350 - Or = 1350 - End - End -End -', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; - - -GO -PRINT N'Creating [ext].[v_ItemDetRcd].[MS_DiagramPane1]...'; - - -GO -EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] -Begin DesignProperties = - Begin PaneConfigurations = - Begin PaneConfiguration = 0 - NumPanes = 4 - Configuration = "(H (1[40] 4[20] 2[20] 3) )" - End - Begin PaneConfiguration = 1 - NumPanes = 3 - Configuration = "(H (1 [50] 4 [25] 3))" - End - Begin PaneConfiguration = 2 - NumPanes = 3 - Configuration = "(H (1 [50] 2 [25] 3))" - End - Begin PaneConfiguration = 3 - NumPanes = 3 - Configuration = "(H (4 [30] 2 [40] 3))" - End - Begin PaneConfiguration = 4 - NumPanes = 2 - Configuration = "(H (1 [56] 3))" - End - Begin PaneConfiguration = 5 - NumPanes = 2 - Configuration = "(H (2 [66] 3))" - End - Begin PaneConfiguration = 6 - NumPanes = 2 - Configuration = "(H (4 [50] 3))" - End - Begin PaneConfiguration = 7 - NumPanes = 1 - Configuration = "(V (3))" - End - Begin PaneConfiguration = 8 - NumPanes = 3 - Configuration = "(H (1[56] 4[18] 2) )" - End - Begin PaneConfiguration = 9 - NumPanes = 2 - Configuration = "(H (1 [75] 4))" - End - Begin PaneConfiguration = 10 - NumPanes = 2 - Configuration = "(H (1[66] 2) )" - End - Begin PaneConfiguration = 11 - NumPanes = 2 - Configuration = "(H (4 [60] 2))" - End - Begin PaneConfiguration = 12 - NumPanes = 1 - Configuration = "(H (1) )" - End - Begin PaneConfiguration = 13 - NumPanes = 1 - Configuration = "(V (4))" - End - Begin PaneConfiguration = 14 - NumPanes = 1 - Configuration = "(V (2))" - End - ActivePaneConfig = 0 - End - Begin DiagramPane = - Begin Origin = - Top = 0 - Left = 0 - End - Begin Tables = - Begin Table = "ItemDet" - Begin Extent = - Top = 34 - Left = 516 - Bottom = 272 - Right = 686 - End - DisplayFlags = 280 - TopColumn = 0 - End - Begin Table = "RcdItem (ext)" - Begin Extent = - Top = 6 - Left = 246 - Bottom = 178 - Right = 416 - End - DisplayFlags = 280 - TopColumn = 0 - End - Begin Table = "RcdClass01 (ext)" - Begin Extent = - Top = 64 - Left = 836 - Bottom = 160 - Right = 1006 - End - DisplayFlags = 280 - TopColumn = 0 - End - Begin Table = "RcdClass02 (ext)" - Begin Extent = - Top = 185 - Left = 840 - Bottom = 281 - Right = 1010 - End - DisplayFlags = 280 - TopColumn = 0 - End - End - End - Begin SQLPane = - End - Begin DataPane = - Begin ParameterDefaults = "" - End - Begin ColumnWidths = 14 - Width = 284 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - Width = 1500 - End - End - Begin CriteriaPane = - Begin ColumnWidths = 11 - Column = 1440 - Alias = 900 - Table = 1605 - Output = 720 - Append = 1400 - NewValue = 1170 - SortType = 1350 - ', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClass01', @level2type = N'COLUMN', @level2name = N'CodClass01Rcd'; GO @@ -21760,19 +21438,341 @@ Begin DesignProperties = GO -PRINT N'Creating [ext].[RcdClass01].[CodClass01].[MS_Description]...'; +PRINT N'Creating [ext].[v_ItemDetRcd].[MS_DiagramPaneCount]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClass01', @level2type = N'COLUMN', @level2name = N'CodClass01'; +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 2, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; GO -PRINT N'Creating [ext].[RcdClass01].[CodClass01Rcd].[MS_Description]...'; +PRINT N'Creating [ext].[v_ItemDetRcd].[MS_DiagramPane2]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice cliente', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdClass01', @level2type = N'COLUMN', @level2name = N'CodClass01Rcd'; +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane2', @value = N' SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; + + +GO +PRINT N'Creating [ext].[v_ItemDetRcd].[MS_DiagramPane1]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] +Begin DesignProperties = + Begin PaneConfigurations = + Begin PaneConfiguration = 0 + NumPanes = 4 + Configuration = "(H (1[40] 4[20] 2[20] 3) )" + End + Begin PaneConfiguration = 1 + NumPanes = 3 + Configuration = "(H (1 [50] 4 [25] 3))" + End + Begin PaneConfiguration = 2 + NumPanes = 3 + Configuration = "(H (1 [50] 2 [25] 3))" + End + Begin PaneConfiguration = 3 + NumPanes = 3 + Configuration = "(H (4 [30] 2 [40] 3))" + End + Begin PaneConfiguration = 4 + NumPanes = 2 + Configuration = "(H (1 [56] 3))" + End + Begin PaneConfiguration = 5 + NumPanes = 2 + Configuration = "(H (2 [66] 3))" + End + Begin PaneConfiguration = 6 + NumPanes = 2 + Configuration = "(H (4 [50] 3))" + End + Begin PaneConfiguration = 7 + NumPanes = 1 + Configuration = "(V (3))" + End + Begin PaneConfiguration = 8 + NumPanes = 3 + Configuration = "(H (1[56] 4[18] 2) )" + End + Begin PaneConfiguration = 9 + NumPanes = 2 + Configuration = "(H (1 [75] 4))" + End + Begin PaneConfiguration = 10 + NumPanes = 2 + Configuration = "(H (1[66] 2) )" + End + Begin PaneConfiguration = 11 + NumPanes = 2 + Configuration = "(H (4 [60] 2))" + End + Begin PaneConfiguration = 12 + NumPanes = 1 + Configuration = "(H (1) )" + End + Begin PaneConfiguration = 13 + NumPanes = 1 + Configuration = "(V (4))" + End + Begin PaneConfiguration = 14 + NumPanes = 1 + Configuration = "(V (2))" + End + ActivePaneConfig = 0 + End + Begin DiagramPane = + Begin Origin = + Top = 0 + Left = 0 + End + Begin Tables = + Begin Table = "ItemDet" + Begin Extent = + Top = 34 + Left = 516 + Bottom = 272 + Right = 686 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdItem (ext)" + Begin Extent = + Top = 6 + Left = 246 + Bottom = 178 + Right = 416 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClass01 (ext)" + Begin Extent = + Top = 64 + Left = 836 + Bottom = 160 + Right = 1006 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClass02 (ext)" + Begin Extent = + Top = 185 + Left = 840 + Bottom = 281 + Right = 1010 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 14 + Width = 284 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1605 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + ', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ItemDetRcd'; + + +GO +PRINT N'Creating [ext].[v_ClientDetRcd].[MS_DiagramPaneCount]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ClientDetRcd'; + + +GO +PRINT N'Creating [ext].[v_ClientDetRcd].[MS_DiagramPane1]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPane1', @value = N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00] +Begin DesignProperties = + Begin PaneConfigurations = + Begin PaneConfiguration = 0 + NumPanes = 4 + Configuration = "(H (1[40] 4[20] 2[20] 3) )" + End + Begin PaneConfiguration = 1 + NumPanes = 3 + Configuration = "(H (1 [50] 4 [25] 3))" + End + Begin PaneConfiguration = 2 + NumPanes = 3 + Configuration = "(H (1 [50] 2 [25] 3))" + End + Begin PaneConfiguration = 3 + NumPanes = 3 + Configuration = "(H (4 [30] 2 [40] 3))" + End + Begin PaneConfiguration = 4 + NumPanes = 2 + Configuration = "(H (1 [56] 3))" + End + Begin PaneConfiguration = 5 + NumPanes = 2 + Configuration = "(H (2 [66] 3))" + End + Begin PaneConfiguration = 6 + NumPanes = 2 + Configuration = "(H (4 [50] 3))" + End + Begin PaneConfiguration = 7 + NumPanes = 1 + Configuration = "(V (3))" + End + Begin PaneConfiguration = 8 + NumPanes = 3 + Configuration = "(H (1[56] 4[18] 2) )" + End + Begin PaneConfiguration = 9 + NumPanes = 2 + Configuration = "(H (1 [75] 4))" + End + Begin PaneConfiguration = 10 + NumPanes = 2 + Configuration = "(H (1[66] 2) )" + End + Begin PaneConfiguration = 11 + NumPanes = 2 + Configuration = "(H (4 [60] 2))" + End + Begin PaneConfiguration = 12 + NumPanes = 1 + Configuration = "(H (1) )" + End + Begin PaneConfiguration = 13 + NumPanes = 1 + Configuration = "(V (4))" + End + Begin PaneConfiguration = 14 + NumPanes = 1 + Configuration = "(V (2))" + End + ActivePaneConfig = 0 + End + Begin DiagramPane = + Begin Origin = + Top = 0 + Left = 0 + End + Begin Tables = + Begin Table = "ClientDet" + Begin Extent = + Top = 6 + Left = 38 + Bottom = 136 + Right = 208 + End + DisplayFlags = 280 + TopColumn = 0 + End + Begin Table = "RcdClient (ext)" + Begin Extent = + Top = 6 + Left = 246 + Bottom = 153 + Right = 416 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 10 + Width = 284 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1170 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'VIEW', @level1name = N'v_ClientDetRcd'; + + +GO +PRINT N'Creating [ext].[RcdPlants].[CodPlant].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdPlants', @level2type = N'COLUMN', @level2name = N'CodPlant'; + + +GO +PRINT N'Creating [ext].[RcdPlants].[CodPlantRcd].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'codice impianto', @level0type = N'SCHEMA', @level0name = N'ext', @level1type = N'TABLE', @level1name = N'RcdPlants', @level2type = N'COLUMN', @level2name = N'CodPlantRcd'; GO diff --git a/C2P_Project/bin/Output/C2P_Project.dll b/C2P_Project/bin/Output/C2P_Project.dll index 84757e5dc83d5de8aedad12ef8bbd8d425293800..ad806a903f84df07ae1c3ed26a8f10cbe00f7254 100644 GIT binary patch delta 50 zcmZpWX^@%F!8|=He`EJfW`UF8AHOx+-R#k+pK#VQEWu)O2ulD+a`JK(O-7N;7g_W< E0WBL8F#rGn delta 50 zcmZpWX^@%F!94eK-p1~o%mSZ#yC%3Odpk~FBYIeF?gW9!AuItP$;r!EG#Q0AUu4ne F1OOf46Vw0z diff --git a/C2P_Report/C2P_Report.csproj b/C2P_Report/C2P_Report.csproj index f0a9c47..3f48835 100644 --- a/C2P_Report/C2P_Report.csproj +++ b/C2P_Report/C2P_Report.csproj @@ -108,7 +108,7 @@ Designer - + diff --git a/C2P_Report/Properties/PublishProfiles/218.pubxml b/C2P_Report/Properties/PublishProfiles/IIS02.pubxml similarity index 100% rename from C2P_Report/Properties/PublishProfiles/218.pubxml rename to C2P_Report/Properties/PublishProfiles/IIS02.pubxml diff --git a/C2P_Report/Web.config b/C2P_Report/Web.config index 5ebe82f..c7e7a24 100644 --- a/C2P_Report/Web.config +++ b/C2P_Report/Web.config @@ -19,6 +19,8 @@ + + diff --git a/C2P_Report/bin/C2P_Report.dll b/C2P_Report/bin/C2P_Report.dll index a7593c22eca7cd5530df2aea384860c6abc303d2..0bc60a917c889ca22427c6c100d63f5ed044ce0c 100644 GIT binary patch delta 126 zcmWN~s}6!-0EXfHcmOi zl}T16*NgMo=LjPlQ4@915KZ9zeQ de|ujn*N1oN700=)%zwGT+)-J}@E~eHl=GHEj)-Kl8F1FS#_SP-W?FBLtPZ)u=Ob?Tj&|=iv-Y6$g&kg{3#4q6h diff --git a/ReleaseClienti/C2P_Report.zip b/ReleaseClienti/C2P_Report.zip index 8f8b1fb51408e8ca03a172812cf2bff56b8ad63d..b078727e8fec3f2a39a3d16d576bca053084db91 100644 GIT binary patch delta 18582 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 delta 18538 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