diff --git a/.gitignore b/.gitignore index f86605c..e3814fa 100644 --- a/.gitignore +++ b/.gitignore @@ -59,7 +59,6 @@ C2P/bin/C2P.dll /C2P_Data/obj/Release/* /C2P_Data/obj/Debug/* /C2P_Data/obj/WinLab/* - /C2P_Data/bin/Debug /C2P_Data/obj/Debug /C2P_Data/obj/Release diff --git a/C2P/C2P.csproj b/C2P/C2P.csproj index e9322d5..7f223dc 100644 --- a/C2P/C2P.csproj +++ b/C2P/C2P.csproj @@ -229,6 +229,7 @@ + diff --git a/C2P/C2P.csproj.user b/C2P/C2P.csproj.user index 7102cee..516e0e1 100644 --- a/C2P/C2P.csproj.user +++ b/C2P/C2P.csproj.user @@ -2,7 +2,7 @@ ShowAllFiles - 218 + WinLab diff --git a/C2P/Images/pdfExport.png b/C2P/Images/pdfExport.png new file mode 100644 index 0000000..c30b621 Binary files /dev/null and b/C2P/Images/pdfExport.png differ diff --git a/C2P/Web.WinLab.config b/C2P/Web.WinLab.config index d898eee..e4e4f0e 100644 --- a/C2P/Web.WinLab.config +++ b/C2P/Web.WinLab.config @@ -34,5 +34,6 @@ --> + \ No newline at end of file diff --git a/C2P/Web.config b/C2P/Web.config index a2ba0c8..c8daa60 100644 --- a/C2P/Web.config +++ b/C2P/Web.config @@ -39,7 +39,6 @@ - @@ -51,6 +50,7 @@ + diff --git a/C2P/WebUserControls/mod_QuoteDet.ascx b/C2P/WebUserControls/mod_QuoteDet.ascx index 5715d44..d372609 100644 --- a/C2P/WebUserControls/mod_QuoteDet.ascx +++ b/C2P/WebUserControls/mod_QuoteDet.ascx @@ -12,16 +12,17 @@
-
+
<%: traduci("ReturnOffersArchive") %>
+ - - + .  |  - + +
@@ -77,9 +78,22 @@
-
+
-  <%: traduci("nextIdxQState-010") %> +  <%: traduci("nextIdxQState-010") %> +
+
+
+
+  <%: traduci("nextIdxQState-000") %> +
+
+  <%: traduci("nextIdxQState-020") %> +
+
+
+
+  <%: traduci("nextIdxQState-030") %>
diff --git a/C2P/WebUserControls/mod_QuoteDet.ascx.cs b/C2P/WebUserControls/mod_QuoteDet.ascx.cs index ee4feb7..9472d6e 100644 --- a/C2P/WebUserControls/mod_QuoteDet.ascx.cs +++ b/C2P/WebUserControls/mod_QuoteDet.ascx.cs @@ -100,36 +100,52 @@ namespace C2P.WebUserControls // recupero valori della chaive della quote da URL... if (!Page.IsPostBack) { - // leggo da url e salvo (se ci sono...) - QuoteType = Request.QueryString["QuoteType"]; - CodQuote = Request.QueryString["CodQuote"]; - QuoteRev = Request.QueryString["QuoteRev"]; - // carico stato offerta... - int IdxQS = 0; - try - { - IdxQS = DtProxy.man.taQFQ.getByKey(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), "N")[0].IdxQState; - } - catch - { } - IdxQState = IdxQState.ToString(); - Status = traduci(string.Format("IdxQState-{0:D3}", IdxQS)); + updateBaseData(); prevReq = ""; setModVisibility("Header"); - setBtnVisibility(); } mod_Q_Header1.eh_update += mod_Q_Header1_eh_update; mod_Q_Quot1.eh_update += mod_Q_Quot1_eh_update; } - - + /// + /// aggiorna info base dell'offerta + /// + private void updateBaseData() + { + // leggo da url e salvo (se ci sono...) + QuoteType = Request.QueryString["QuoteType"]; + CodQuote = Request.QueryString["CodQuote"]; + QuoteRev = Request.QueryString["QuoteRev"]; + // carico stato offerta... + int IdxQS = 0; + try + { + IdxQS = DtProxy.man.taQFQ.getByKey(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), "N")[0].IdxQState; + } + catch + { } + IdxQState = IdxQS.ToString(); + Status = traduci(string.Format("IdxQState-{0:D3}", IdxQS)); + setBtnVisibility(); + } + /// + /// richiesto update x cambiamento valori header + /// + /// + /// void mod_Q_Quot1_eh_update(object sender, EventArgs e) { + updateBaseData(); setModVisibility(""); } - + /// + /// richiesto update x cambiamento valori costs + /// + /// + /// void mod_Q_Header1_eh_update(object sender, EventArgs e) { + updateBaseData(); setModVisibility(""); } /// @@ -235,7 +251,7 @@ namespace C2P.WebUserControls try { riga = DtProxy.man.taQFQ.getByKey(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), "N")[0]; - if (riga.NetMar > 0 && riga.PriceOff > 0) + if (riga.NetMar > 0 || riga.PriceOff > 0) { okCreate = true; } @@ -249,7 +265,36 @@ namespace C2P.WebUserControls /// private void setBtnVisibility() { - // in abse a stato corrente offerta decide cosa mostrare... + // in base a stato corrente offerta decide cosa mostrare... + switch (IdxQState) + { + case "0": + divStato00.Visible = true; + divStato10.Visible = false; + divStato20.Visible = false; + btnGetPdf.Visible = false; + break; + case "10": + divStato00.Visible = false; + divStato10.Visible = true; + divStato20.Visible = false; + btnGetPdf.Visible = true; + break; + case "20": + divStato00.Visible = false; + divStato10.Visible = false; + divStato20.Visible = true; + btnGetPdf.Visible = true; + break; + case "30": + divStato00.Visible = false; + divStato10.Visible = false; + divStato20.Visible = false; + btnGetPdf.Visible = true; + break; + default: + break; + } } /// /// Verifica se si possibile creare offerta standard (o si debba passare a SIMULAZIONE) @@ -267,7 +312,58 @@ namespace C2P.WebUserControls /// protected void lnkCreateOffer_Click(object sender, EventArgs e) { - + // cambio stato offerta da draft! + DtProxy.man.taQFQ.updateQState(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), 10); + // aggiorno! + updateBaseData(); + } + /// + /// rifiuta e riporta in draft + /// + /// + /// + protected void lbReject_Click(object sender, EventArgs e) + { + // cambio stato offerta da draft! + DtProxy.man.taQFQ.updateQState(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), 0); + // aggiorno! + updateBaseData(); + } + /// + /// approva + /// + /// + /// + protected void lbApprove_Click(object sender, EventArgs e) + { + // cambio stato offerta da draft! + DtProxy.man.taQFQ.updateQState(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), 20); + // aggiorno! + updateBaseData(); + } + /// + /// rilascia + /// + /// + /// + protected void lbRelease_Click(object sender, EventArgs e) + { + // cambio stato offerta da draft! + DtProxy.man.taQFQ.updateQState(QuoteType, Convert.ToInt32(CodQuote), Convert.ToInt32(QuoteRev), 30); + // aggiorno! + updateBaseData(); + } + /// + /// determina se sia stampabile (cod stato > 0...) + /// + public bool printEnabled + { + get + { + bool answ = false; + if (IdxQState != "0") answ = true; + return answ; + } } } } \ No newline at end of file diff --git a/C2P/WebUserControls/mod_QuoteDet.ascx.designer.cs b/C2P/WebUserControls/mod_QuoteDet.ascx.designer.cs index dc32381..c555f72 100644 --- a/C2P/WebUserControls/mod_QuoteDet.ascx.designer.cs +++ b/C2P/WebUserControls/mod_QuoteDet.ascx.designer.cs @@ -30,6 +30,15 @@ namespace C2P.WebUserControls { /// protected global::System.Web.UI.WebControls.LinkButton Return; + /// + /// btnGetPdf control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ImageButton btnGetPdf; + /// /// lblQuoteType control. /// @@ -174,6 +183,15 @@ namespace C2P.WebUserControls { /// protected global::C2P.WebUserControls.mod_Q_Quot mod_Q_Quot1; + /// + /// divStato00 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divStato00; + /// /// lbCreateOffer control. /// @@ -182,5 +200,50 @@ namespace C2P.WebUserControls { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.LinkButton lbCreateOffer; + + /// + /// divStato10 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divStato10; + + /// + /// lbReject control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton lbReject; + + /// + /// lbApprove control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton lbApprove; + + /// + /// divStato20 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlGenericControl divStato20; + + /// + /// lbRelease control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton lbRelease; } } diff --git a/C2P/bin/C2P.dll b/C2P/bin/C2P.dll index d6207ed..1ba0651 100644 Binary files a/C2P/bin/C2P.dll and b/C2P/bin/C2P.dll differ diff --git a/C2P/bin/C2P_Data.dll b/C2P/bin/C2P_Data.dll index df27572..f668abb 100644 Binary files a/C2P/bin/C2P_Data.dll and b/C2P/bin/C2P_Data.dll differ diff --git a/C2P/bin/C2P_Data.pdb b/C2P/bin/C2P_Data.pdb deleted file mode 100644 index db65bcb..0000000 Binary files a/C2P/bin/C2P_Data.pdb and /dev/null differ diff --git a/C2P/bin/SteamWare.dll b/C2P/bin/SteamWare.dll index 4693c16..b1ab3ec 100644 Binary files a/C2P/bin/SteamWare.dll and b/C2P/bin/SteamWare.dll differ diff --git a/C2P_Data/DS_Quotes.Designer.cs b/C2P_Data/DS_Quotes.Designer.cs index 25acfff..7afad30 100644 --- a/C2P_Data/DS_Quotes.Designer.cs +++ b/C2P_Data/DS_Quotes.Designer.cs @@ -12197,7 +12197,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] private void InitCommandCollection() { - this._commandCollection = new global::System.Data.SqlClient.SqlCommand[6]; + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[7]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; this._commandCollection[0].CommandText = "dbo.stp_QL_fullDataAll"; @@ -12256,6 +12256,15 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchQty", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodInco", global::System.Data.SqlDbType.NVarChar, 5, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Note", global::System.Data.SqlDbType.NVarChar, 2500, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[6].Connection = this.Connection; + this._commandCollection[6].CommandText = "dbo.stp_QLF_UpdQState"; + this._commandCollection[6].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RETURN_VALUE", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.ReturnValue, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QuoteType", global::System.Data.SqlDbType.Char, 1, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodQuote", global::System.Data.SqlDbType.BigInt, 8, global::System.Data.ParameterDirection.Input, 19, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QuoteRev", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IdxQState", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -12470,6 +12479,41 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas return dataTable; } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DS_Quotes.QuoteFull_QDataTable updateQState(string Original_QuoteType, global::System.Nullable Original_CodQuote, global::System.Nullable Original_QuoteRev, global::System.Nullable IdxQState) { + this.Adapter.SelectCommand = this.CommandCollection[6]; + if ((Original_QuoteType == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(Original_QuoteType)); + } + if ((Original_CodQuote.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[2].Value = ((long)(Original_CodQuote.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = global::System.DBNull.Value; + } + if ((Original_QuoteRev.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[3].Value = ((int)(Original_QuoteRev.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((IdxQState.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[4].Value = ((int)(IdxQState.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[4].Value = global::System.DBNull.Value; + } + DS_Quotes.QuoteFull_QDataTable dataTable = new DS_Quotes.QuoteFull_QDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] diff --git a/C2P_Data/DS_Quotes.xsd b/C2P_Data/DS_Quotes.xsd index e3d6ea8..076a8f5 100644 --- a/C2P_Data/DS_Quotes.xsd +++ b/C2P_Data/DS_Quotes.xsd @@ -901,6 +901,20 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas + + + + dbo.stp_QLF_UpdQState + + + + + + + + + + @@ -911,7 +925,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -995,7 +1009,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -1031,7 +1045,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -1056,7 +1070,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -1136,7 +1150,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -1173,7 +1187,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -1243,7 +1257,7 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - + @@ -1520,11 +1534,11 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas - - - - - + + + + + \ No newline at end of file diff --git a/C2P_Data/bin/Release/C2P_Data.dll b/C2P_Data/bin/Release/C2P_Data.dll index 11173ce..f668abb 100644 Binary files a/C2P_Data/bin/Release/C2P_Data.dll and b/C2P_Data/bin/Release/C2P_Data.dll differ diff --git a/C2P_Project/C2P_DB.sqlproj b/C2P_Project/C2P_DB.sqlproj index 52c9e82..9d8bd12 100644 --- a/C2P_Project/C2P_DB.sqlproj +++ b/C2P_Project/C2P_DB.sqlproj @@ -211,5 +211,6 @@ + \ No newline at end of file diff --git a/C2P_Project/Snapshots/C2P_DB_20140416_10-42-42.dacpac b/C2P_Project/Snapshots/C2P_DB_20140416_10-42-42.dacpac new file mode 100644 index 0000000..2f79664 Binary files /dev/null and b/C2P_Project/Snapshots/C2P_DB_20140416_10-42-42.dacpac differ diff --git a/C2P_Project/bin/Release/C2P_DB.dacpac b/C2P_Project/bin/Release/C2P_DB.dacpac index c64e1a6..f442878 100644 Binary files a/C2P_Project/bin/Release/C2P_DB.dacpac and b/C2P_Project/bin/Release/C2P_DB.dacpac differ diff --git a/C2P_Project/bin/Release/C2P_DB_Create.sql b/C2P_Project/bin/Release/C2P_DB_Create.sql index 5a63f8b..d59bac2 100644 --- a/C2P_Project/bin/Release/C2P_DB_Create.sql +++ b/C2P_Project/bin/Release/C2P_DB_Create.sql @@ -96,7 +96,8 @@ IF EXISTS (SELECT 1 WHERE [name] = N'$(DatabaseName)') BEGIN ALTER DATABASE [$(DatabaseName)] - SET READ_COMMITTED_SNAPSHOT OFF; + SET READ_COMMITTED_SNAPSHOT OFF + WITH ROLLBACK IMMEDIATE; END @@ -250,6 +251,7 @@ CREATE TABLE [dbo].[QuoteFull_Q] ( [QuoteType] CHAR (1) NOT NULL, [CodQuote] BIGINT NOT NULL, [QuoteRev] INT NOT NULL, + [IdxQState] INT NOT NULL, [CodClient] NVARCHAR (50) NOT NULL, [ClientName] NVARCHAR (250) NOT NULL, [CodItem] NVARCHAR (50) NOT NULL, @@ -436,6 +438,7 @@ CREATE TABLE [dbo].[QuoteList] ( [QuoteType] CHAR (1) NOT NULL, [CodQuote] BIGINT NOT NULL, [QuoteRev] INT NOT NULL, + [IdxQState] INT NOT NULL, [CodClient] NVARCHAR (50) NOT NULL, [CodItem] NVARCHAR (50) NOT NULL, [CodItemGroup] NVARCHAR (50) NOT NULL, @@ -1376,6 +1379,15 @@ ALTER TABLE [dbo].[QuoteParam] ADD CONSTRAINT [DF_QuoteParam_Parameter] DEFAULT ('') FOR [Parameter]; +GO +PRINT N'Creating DF_QuoteFull_Q_IdxQState...'; + + +GO +ALTER TABLE [dbo].[QuoteFull_Q] + ADD CONSTRAINT [DF_QuoteFull_Q_IdxQState] DEFAULT ((0)) FOR [IdxQState]; + + GO PRINT N'Creating DF_QuoteFull_Q_PriceOff...'; @@ -1709,6 +1721,15 @@ ALTER TABLE [dbo].[QuoteList] ADD CONSTRAINT [DF_QuoteList_QuoteRev] DEFAULT ((0)) FOR [QuoteRev]; +GO +PRINT N'Creating DF_QuoteList_State...'; + + +GO +ALTER TABLE [dbo].[QuoteList] + ADD CONSTRAINT [DF_QuoteList_State] DEFAULT ((0)) FOR [IdxQState]; + + GO PRINT N'Creating DF_QuoteList_CodItem...'; @@ -3348,7 +3369,7 @@ PRINT N'Creating [dbo].[v_selClient]...'; GO CREATE VIEW dbo.v_selClient AS -SELECT CodClient AS value, ClientName + ' [' + CodClient + ']' AS label +SELECT CodClient AS value, CASE WHEN LEN(ClientName) > 40 THEN SUBSTRING(ClientName, 0, 40) + '...' ELSE ClientName END + ' [' + CodClient + ']' AS label FROM dbo.ClientDet WHERE (CodClient <> '') GO @@ -3358,7 +3379,7 @@ PRINT N'Creating [dbo].[v_QuoteFull_Q]...'; GO CREATE VIEW dbo.v_QuoteFull_Q AS -SELECT Vers, QuoteType, CodQuote, QuoteRev, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, +SELECT Vers, QuoteType, CodQuote, QuoteRev, IdxQState, CodClient, ClientName, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, CodClientAssoc, ClientNameAssoc, ItemDescr, CodifProfilo, ClasseMerc, TipoDies, CodDiesGroup, DiamDies, HoleNumDies, DiesPrice, DiesExpLife, DiesEOLife, NumDiesInList, NumDiesExaust, CodPlant, KeyAMIL, KgTeo, NumSMED, QuotaMan, PRMWeight, PWeight, PTare, LivPackage, LivPackageDett, RawMatCost, RawMatExtraCost, RawMatFullCost, CodPackag, PkgDesc, FSR, ProvvCost, EECost, GasCost, DiesCost, PackCost, TranspCost, SellCost01, RefCost01, SellCost04, RefCost04, WSR01, MSR01, NetProd01, FC4UG01, VC4UG01, OH4UG01, SC4UG01, DSR, NetProd04, FC4UG04, VC4UG04, FVC, Charge, FVC + RawMatFullCost AS P_FVC, @@ -3368,6 +3389,15 @@ SELECT Vers, QuoteType, CodQuote, QuoteRev, CodClient, ClientName, CodIte * (PriceOff + RawMatFullCost) / PWeight AS PckSur FROM dbo.QuoteFull_Q GO +PRINT N'Creating [dbo].[v_selIncoterms]...'; + + +GO +CREATE VIEW dbo.v_selIncoterms +AS +SELECT CodInco AS value, CodInco + ' - ' + Descript AS label +FROM dbo.Incoterms +GO PRINT N'Creating [dbo].[v_selCons]...'; @@ -3462,10 +3492,6 @@ PRINT N'Creating [dbo].[stp_QL_update]...'; GO - - - - -- ============================================= -- Author: Steamware -- Create date: 2014.01.22 @@ -3473,87 +3499,87 @@ GO -- ============================================= CREATE PROCEDURE [dbo].[stp_QL_update] ( - @QuoteType CHAR(1) = 'Q', - @CodQuote BIGINT = 0, - @QuoteRev INT = 0 + @QuoteType CHAR(1) = 'Q', + @CodQuote BIGINT = 0, + @QuoteRev INT = 0 ) AS BEGIN SET NOCOUNT ON; - -- dichiaro valori da recuperare - DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali" + -- dichiaro valori da recuperare + DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali" - DECLARE @valid BIT - DECLARE @CodDiesGroup NVARCHAR(50) - DECLARE @CodPlant NVARCHAR(50) - DECLARE @CodPlantFix NVARCHAR(50) = '' - DECLARE @HoleNum INT + DECLARE @valid BIT + DECLARE @CodDiesGroup NVARCHAR(50) + DECLARE @CodPlant NVARCHAR(50) + DECLARE @CodPlantFix NVARCHAR(50) = '' + DECLARE @HoleNum INT -- ITEM - DECLARE @CodItem NVARCHAR(50) = '' --cod item - DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item + DECLARE @CodItem NVARCHAR(50) = '' --cod item + DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item DECLARE @CodifProfilo NVARCHAR(50) = '' -- Cod. Profilo DECLARE @ClasseMerc NVARCHAR(50) = '' DECLARE @CodClientAssoc NVARCHAR(50) = '' - DECLARE @KeyAM NVARCHAR(50) = '' - DECLARE @KeyAMI NVARCHAR(50) = '' - DECLARE @KeyAMIL NVARCHAR(50) = '' - DECLARE @NumSMED INT = 0 -- numero cambi - DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali - DECLARE @RawMat NVARCHAR(50) - DECLARE @ProdTeo DECIMAL(18,6) - DECLARE @ScTec DECIMAL(18,6) - DECLARE @BatchQty INT - DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia - DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico - DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura - DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo - DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame - DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice - DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice - DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice - DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice - DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01 - DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01 - DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04 - DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01 - DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04 - DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01 - DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04 - -- IMBALLO - DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo - DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente - DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori - DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo - DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo - DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco - DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata - DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg) - DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto + DECLARE @KeyAM NVARCHAR(50) = '' + DECLARE @KeyAMI NVARCHAR(50) = '' + DECLARE @KeyAMIL NVARCHAR(50) = '' + DECLARE @NumSMED INT = 0 -- numero cambi + DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali + DECLARE @RawMat NVARCHAR(50) + DECLARE @ProdTeo DECIMAL(18,6) + DECLARE @ScTec DECIMAL(18,6) + DECLARE @BatchQty INT + DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia + DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico + DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura + DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo + DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame + DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice + DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice + DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice + DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice + DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01 + DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01 + DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04 + DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01 + DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04 + DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01 + DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04 + -- IMBALLO + DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo + DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente + DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori + DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo + DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo + DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco + DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata + DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg) + DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto DECLARE @PTotQta DECIMAL(18,3) = 0 -- Qta Kg Tot Imballati DECLARE @PDurata DECIMAL(18,6) = 0 -- Tempo d'imballaggio DECLARE @PLiv NVARCHAR(50) = '' -- Livello Search dati Imballo DECLARE @PLivDett NVARCHAR(50) = '' -- Key Livello Search Dati Imballo - -- TRASPORTI - DECLARE @TranspZone NVARCHAR(50) = '' -- codice ZONA + -- TRASPORTI + DECLARE @TranspZone NVARCHAR(50) = '' -- codice ZONA DECLARE @TranspCost DECIMAL(9,6) -- costo di trasporto DECLARE @HasTC INT - -- PROVVIGIONI - DECLARE @Provvig DECIMAL(9,6) -- provvigione agente + -- PROVVIGIONI + DECLARE @Provvig DECIMAL(9,6) -- provvigione agente - -- default: validità è true! - SET @valid = 1 + -- default: validità è true! + SET @valid = 1 -- ================================================= -- CREAZIONE TEMP TABLE -- ================================================= - -- elimino e ricreo #QuoteParam temp table... - IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL - DROP TABLE #QuoteParam + -- elimino e ricreo #QuoteParam temp table... NON Serve nella stored + --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL + -- DROP TABLE #QuoteParam CREATE TABLE #Quoteparam ( @@ -3568,9 +3594,9 @@ BEGIN -- ( NumP ASC, QuoteType ASC, CodQuote ASC, QuoteRev ASC ) WITH (PAD_INDEX = ON, FILLFACTOR = 90 ) ); - -- elimino e ricreo #QuoteParam temp table... - IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL - DROP TABLE #QuoteWorkInt + -- elimino e ricreo ##QuoteWorkInt temp table... + --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL + -- DROP TABLE #QuoteWorkInt CREATE TABLE #QuoteWorkInt ( @@ -3603,107 +3629,107 @@ BEGIN valid BIT NOT NULL DEFAULT((1)), ) - -- elimino e ricreo #QuoteParam temp table... - IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL - DROP TABLE #QuoteOC + -- elimino e ricreo #QuoteOC temp table... +--IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL +-- DROP TABLE #QuoteOC CREATE TABLE #QuoteOC ( - QuoteType CHAR(1) NOT NULL, - CodQuote BIGINT NOT NULL, - QuoteRev INT NOT NULL, - NumEx INT IDENTITY(1,1) NOT NULL, - ProcessNum NVARCHAR(50) NOT NULL, - CodPlant NVARCHAR(50) NOT NULL, - Class01 NVARCHAR(50) NOT NULL DEFAULT (''), - Class02 NVARCHAR(50) NOT NULL DEFAULT (''), - Class03 NVARCHAR(50) NOT NULL DEFAULT (''), - Class04 NVARCHAR(50) NOT NULL DEFAULT (''), - Class05 NVARCHAR(50) NOT NULL DEFAULT (''), - TotQty DECIMAL(18, 6) NOT NULL DEFAULT ((1)), - TotCost DECIMAL(18, 6) NOT NULL DEFAULT ((0)), - Quota DECIMAL(18, 6) NOT NULL DEFAULT ((1)), - C4UG AS ((TotCost*Quota)/TotQty), - valid BIT NOT NULL DEFAULT ((1)) + QuoteType CHAR(1) NOT NULL, + CodQuote BIGINT NOT NULL, + QuoteRev INT NOT NULL, + NumEx INT IDENTITY(1,1) NOT NULL, + ProcessNum NVARCHAR(50) NOT NULL, + CodPlant NVARCHAR(50) NOT NULL, + Class01 NVARCHAR(50) NOT NULL DEFAULT (''), + Class02 NVARCHAR(50) NOT NULL DEFAULT (''), + Class03 NVARCHAR(50) NOT NULL DEFAULT (''), + Class04 NVARCHAR(50) NOT NULL DEFAULT (''), + Class05 NVARCHAR(50) NOT NULL DEFAULT (''), + TotQty DECIMAL(18, 6) NOT NULL DEFAULT ((1)), + TotCost DECIMAL(18, 6) NOT NULL DEFAULT ((0)), + Quota DECIMAL(18, 6) NOT NULL DEFAULT ((1)), + C4UG AS ((TotCost*Quota)/TotQty), + valid BIT NOT NULL DEFAULT ((1)) ) -- =================================== -- INIZIO TRANSAZIONE -- =================================== - SET XACT_ABORT ON; - BEGIN TRAN + SET XACT_ABORT ON; + BEGIN TRAN - --------------------------------------- - -- svuotamento iniziale - --------------------------------------- - - -- elimino quote PARAMETRI! - DELETE FROM dbo.QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + --------------------------------------- + -- svuotamento iniziale + --------------------------------------- + + -- elimino quote PARAMETRI! + DELETE FROM dbo.QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- elimino lavorazioni ESTERNE! - DELETE FROM dbo.QuoteWorkExt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- elimino lavorazioni ESTERNE! + DELETE FROM dbo.QuoteWorkExt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- elimino lavorazioni INTERNE - DELETE FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- elimino lavorazioni INTERNE + DELETE FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- elimino OtherCosts - DELETE FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- elimino OtherCosts + DELETE FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato - SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id + -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato + SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev ), '' ) + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev ), '' ) - -- recupero da dati dell'offerta il valore del cliente - SELECT @CodClient = CodClient - FROM dbo.QuoteList - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- recupero da dati dell'offerta il valore del cliente + SELECT @CodClient = CodClient + FROM dbo.QuoteList + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- recupero dati!! - SELECT TOP 1 @CodItem = ql.CodItem - , @CodDiesGroup = tps.CodDiesGroup + -- recupero dati!! + SELECT TOP 1 @CodItem = ql.CodItem + , @CodDiesGroup = tps.CodDiesGroup , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END - , @HoleNum = tps.HoleNum - , @KeyAM = ql.KeyAM - , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') - , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) - , @ProdTeo = tps.ProdTeo - , @ScTec = tps.ScTec - , @KgTeo = tps.KgTeo - , @NumSMED = tps.NumSMED - , @RawMat = ql.RawMat - , @BatchQty = ql.BatchQty - , @ItemDescr = i.ItemDescr + , @HoleNum = tps.HoleNum + , @KeyAM = ql.KeyAM + , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) + , @ProdTeo = tps.ProdTeo + , @ScTec = tps.ScTec + , @KgTeo = tps.KgTeo + , @NumSMED = tps.NumSMED + , @RawMat = ql.RawMat + , @BatchQty = ql.BatchQty + , @ItemDescr = i.ItemDescr , @CodifProfilo = i.Class01 , @ClasseMerc = i.Class02 , @CodClientAssoc = i.Class03 - FROM dbo.QuoteList ql + FROM dbo.QuoteList ql INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - ORDER BY tps.KgTeo DESC - + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + ORDER BY tps.KgTeo DESC + -- ================================================================================= - -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi + -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi -- Secondo la logica Client-Item-Package ( vedi funzione ) -- ================================================================================= -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) ) @@ -3713,422 +3739,422 @@ BEGIN FROM f_getDataCodPackag ( @CodItem, @CodClient) -- e aggiorno il CodPackage in QuoteRM - UPDATE dbo.QuoteRM + UPDATE dbo.QuoteRM SET CodPackag = @CodPackag - FROM dbo.QuoteRM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + FROM dbo.QuoteRM + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr ) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr ) , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo ) , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc ) , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc ) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName FROM dbo.ClientDet WHERE ClientDet.CodClient = @CodClientAssoc - - -- INFORMAZIONI su MATRICE - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', @CodDiesGroup ) - - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', @strTemp) - - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', @strTemp) - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', @strTemp) + -- INFORMAZIONI su MATRICE + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', @CodDiesGroup ) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies) - FROM dbo.DiesDet - WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', @strTemp) - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies) - FROM dbo.DiesDet - WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 - - -- inserisco parametri calcolati x lavorazione estruzione - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant' , @CodPlant ) + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', @strTemp) + + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNumDies', @strTemp) + + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesInList', COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem + + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumDiesExaust', COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 + + -- inserisco parametri calcolati x lavorazione estruzione + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant' , @CodPlant ) ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM' , @KeyAM ) ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL' , @KeyAMIL ) ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED' , CONVERT(NVARCHAR(100) , @NumSMED ) ) ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo' , CONVERT(NVARCHAR(100) , @KgTeo ) ) - -- inserisco lavorazione estrusione! - INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec + -- inserisco lavorazione estrusione! + INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec - INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', SUM(KgTeo) - FROM dbo.QuoteList ql - INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - - -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione! - UPDATE #QuoteWorkInt - SET MSR = rmd.CSR - FROM #QuoteWorkInt qwi - INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat + INSERT INTO #QuoteParam (QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgProdotti', SUM(KgTeo) + FROM dbo.QuoteList ql + INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + + -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione! + UPDATE #QuoteWorkInt + SET MSR = rmd.CSR + FROM #QuoteWorkInt qwi + INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat - -- calcolo i costi legati alla fase estrusione! - UPDATE #QuoteWorkInt - SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , SC4UG = cp.SC / ql.BatchQty - FROM #QuoteWorkInt qwi - INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + -- calcolo i costi legati alla fase estrusione! + UPDATE #QuoteWorkInt + SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , SC4UG = cp.SC / ql.BatchQty + FROM #QuoteWorkInt qwi + INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev WHERE qwi.ProcessNum = '01' - -- inserisco lavorazione incestatura! - INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) - SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat - - -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN - UPDATE #QuoteWorkInt - SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) - FROM #QuoteWorkInt qwi - INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '02' -- solo incestatura - - -- inserisco lavorazione FORNO! - INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) - SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat - - -- inserisco lavorazione imballo! - INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI + -- inserisco lavorazione incestatura! + INSERT INTO #QuoteWorkInt (QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) + SELECT @QuoteType, @CodQuote, @QuoteRev, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat + + -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN + UPDATE #QuoteWorkInt + SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) + FROM #QuoteWorkInt qwi + INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '02' -- solo incestatura + + -- inserisco lavorazione FORNO! + INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03) + SELECT @QuoteType, @CodQuote, @QuoteRev, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat + + -- inserisco lavorazione imballo! + INSERT INTO #QuoteWorkInt(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI - UPDATE qwi - SET NetProd = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END - FROM #QuoteWorkInt AS qwi + UPDATE qwi + SET NetProd = CASE @PDurata WHEN 0 THEN 0 ELSE @PTotQta / @PDurata END + FROM #QuoteWorkInt AS qwi -- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA WHERE qwi.ProcessNum = '04' -- solo imballo - -- parametro num imballatori - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb - - -- parametro Livello search package/imballo - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv + -- parametro num imballatori + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb + + -- parametro Livello search package/imballo + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv - -- parametro Livello search package/imballo - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett + -- parametro Livello search package/imballo + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett - -- calcolo i costi legati alla fase di imballo! - UPDATE #QuoteWorkInt - SET FC4UG = ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd - , VC4UG = ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd - , OH4UG = ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd - , SC4UG = cp.SC / ql.BatchQty - FROM #QuoteWorkInt qwi - INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.ProcessNum = '04' -- solo imballo + -- calcolo i costi legati alla fase di imballo! + UPDATE #QuoteWorkInt + SET FC4UG = ( ( cp.FC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd + , VC4UG = ( ( cp.VC * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd + , OH4UG = ( ( cp.OH * cp.QuotaPlantStd ) * ( @NumImb / cp.QuotaManStd ) ) / qwi.NetProd + , SC4UG = cp.SC / ql.BatchQty + FROM #QuoteWorkInt qwi + INNER JOIN dbo.Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN dbo.QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '04' -- solo imballo - -- inserisco dati mancanti di DSR x imballo come 1 - OUT/IN - UPDATE #QuoteWorkInt - SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) - FROM #QuoteWorkInt qwi - INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- recupero le MAC fase 01 - SELECT @MAC_SC = MCR - ,@MAC_ST = WCR - FROM #QuoteWorkInt - WHERE ProcessNum = '01' + -- inserisco dati mancanti di DSR x imballo come 1 - OUT/IN + UPDATE #QuoteWorkInt + SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) + FROM #QuoteWorkInt qwi + INNER JOIN dbo.TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '04' -- solo imballo + + -- recupero le MAC fase 01 + SELECT @MAC_SC = MCR + ,@MAC_ST = WCR + FROM #QuoteWorkInt + WHERE ProcessNum = '01' - -- recupero le MAC fase 02 - SELECT @MAC_IN = DCR - FROM #QuoteWorkInt - WHERE ProcessNum = '02' + -- recupero le MAC fase 02 + SELECT @MAC_IN = DCR + FROM #QuoteWorkInt + WHERE ProcessNum = '02' - -- recupero le MAC fase 04 - SELECT @MAC_IM = DCR - FROM #QuoteWorkInt - WHERE ProcessNum = '04' - - -- calcolo percentuale vendita rottame - SELECT @SSR = SSR - FROM dbo.RawMatDet - WHERE RawMat = @RawMat - + -- recupero le MAC fase 04 + SELECT @MAC_IM = DCR + FROM #QuoteWorkInt + WHERE ProcessNum = '04' + + -- calcolo percentuale vendita rottame + SELECT @SSR = SSR + FROM dbo.RawMatDet + WHERE RawMat = @RawMat + -- NOTA : la transazione posso probabilmente iniziarla qui visto che è il -- primo Update/insert/delete su tabelle non temporanee delete a parte - -- update rese RawMat! - UPDATE dbo.QuoteRM - SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND RawMat = @RawMat + -- update rese RawMat! + UPDATE dbo.QuoteRM + SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND RawMat = @RawMat - -- inserisco i costi delle utilities in QuoteOC - - -- inserisco altri costi x lavorazione estrusione! GAS ed EE - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1 - FROM dbo.Utilities - WHERE CodPlant = @CodPlant - + -- inserisco i costi delle utilities in QuoteOC + + -- inserisco altri costi x lavorazione estrusione! GAS ed EE + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1 + FROM dbo.Utilities + WHERE CodPlant = @CodPlant + - /************************************************************* - * MATRICE - * - * calcolo prezzo e durata matrice con procedura a 5 step... - * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup - * B) EOLLife x media ponderata su DiesDet dove Active = 0 e vita cmq superiore 5000 KG ( escludendo rotture accidentali ) - * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup - * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup - * E) Calcolo Price / Life - * - *************************************************************/ + /************************************************************* + * MATRICE + * + * calcolo prezzo e durata matrice con procedura a 5 step... + * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup + * B) EOLLife x media ponderata su DiesDet dove Active = 0 e vita cmq superiore 5000 KG ( escludendo rotture accidentali ) + * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup + * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup + * E) Calcolo Price / Life + * + *************************************************************/ - -- (A) da DiesDet - SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)), - @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) - FROM dbo.DiesDet - WHERE CodItem = @CodItem - AND CodDiesGroup = @CodDiesGroup - GROUP BY CodItem, CodDiesGroup + -- (A) da DiesDet + SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)), + @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) + FROM dbo.DiesDet + WHERE CodItem = @CodItem + AND CodDiesGroup = @CodDiesGroup + GROUP BY CodItem, CodDiesGroup - -- (B) da DiesDet - SELECT @DiesEOLife = AVG( ISNULL(ActLife, 0)) - FROM dbo.DiesDet - WHERE CodItem = @CodItem - AND CodDiesGroup = @CodDiesGroup - AND Active = 0 -- solo matrici rottamate + -- (B) da DiesDet + SELECT @DiesEOLife = AVG( ISNULL(ActLife, 0)) + FROM dbo.DiesDet + WHERE CodItem = @CodItem + AND CodDiesGroup = @CodDiesGroup + AND Active = 0 -- solo matrici rottamate AND ActLife > 5000 -- solo se hanno Life > 5000 Kg ( non rotture accidentali ) - GROUP BY CodItem, CodDiesGroup - - SET @DiesPrice = ISNULL(@DiesPrice,0) - SET @DiesExpLife = ISNULL(@DiesExpLife,0) - SET @DiesEOLife = ISNULL(@DiesEOLife,0) + GROUP BY CodItem, CodDiesGroup + + SET @DiesPrice = ISNULL(@DiesPrice,0) + SET @DiesExpLife = ISNULL(@DiesExpLife,0) + SET @DiesEOLife = ISNULL(@DiesEOLife,0) - -- (C) verifico se prezzo è OK... - IF (@DiesPrice = 0) - BEGIN - -- calcolo da DiesGroupDet - SELECT @DiesPrice = ISNULL(Price, 0) - FROM dbo.DiesGroupDet - WHERE CodDiesGroup = @CodDiesGroup - END - - -- (D) verifico se vita è OK... - IF (@DiesEOLife = 0) - BEGIN - -- uso exp life articolo... - SET @DiesEOLife = @DiesExpLife - END - -- controllo che non sia nulla/vuota la durata... - IF (@DiesEOLife = 0) - BEGIN - SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END - FROM DiesGroupDet - WHERE CodDiesGroup = @CodDiesGroup - END + -- (C) verifico se prezzo è OK... + IF (@DiesPrice = 0) + BEGIN + -- calcolo da DiesGroupDet + SELECT @DiesPrice = ISNULL(Price, 0) + FROM dbo.DiesGroupDet + WHERE CodDiesGroup = @CodDiesGroup + END + + -- (D) verifico se vita è OK... + IF (@DiesEOLife = 0) + BEGIN + -- uso exp life articolo... + SET @DiesEOLife = @DiesExpLife + END + -- controllo che non sia nulla/vuota la durata... + IF (@DiesEOLife = 0) + BEGIN + SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END + FROM DiesGroupDet + WHERE CodDiesGroup = @CodDiesGroup + END - -- controllo che non sia nulla/vuota la durata... - IF ( @DiesEOLife > 0) + -- controllo che non sia nulla/vuota la durata... + IF ( @DiesEOLife > 0) BEGIN - -- (E) Calcolo price/life! - SET @DiesPriceLife = @DiesPrice / @DiesEOLife + -- (E) Calcolo price/life! + SET @DiesPriceLife = @DiesPrice / @DiesEOLife END ELSE - BEGIN - SET @DiesPriceLife = 0 -- metto a zero il DiesPriceLife - SET @valid = 0 -- indico che valore non è valido ( ND excel ) - END - - -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...) - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid + BEGIN + SET @DiesPriceLife = 0 -- metto a zero il DiesPriceLife + SET @valid = 0 -- indico che valore non è valido ( ND excel ) + END + + -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...) + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) + SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid - -- inserisco parametri calcolati x matrice - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + -- inserisco parametri calcolati x matrice + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', CONVERT(NVARCHAR(100), @DiesPrice) ) ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', CONVERT(NVARCHAR(100), @DiesExpLife) ) ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', CONVERT(NVARCHAR(100), @DiesEOLife) ) - /************************************************************* - * VENDITA ROTTAME - * - * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04 - * - calcolo costi variabili fase 01 / 04 - * - calcolo costo di vendita x fase 01 / 04 - *************************************************************/ + /************************************************************* + * VENDITA ROTTAME + * + * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04 + * - calcolo costi variabili fase 01 / 04 + * - calcolo costo di vendita x fase 01 / 04 + *************************************************************/ - SELECT @OCF01 = SUM(ISNULL(C4UG,0)) - FROM #QuoteOC - - SELECT @VCF01 = @OCF01 + VC4UG - FROM #QuoteWorkInt - WHERE ProcessNum = '01' - - SELECT @VCF04 = @OCF01 + SUM(VC4UG) - FROM #QuoteWorkInt - - SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01) - , @RefCostF01 = -- ( (A - B) / 100 - C ) - ( - -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) - ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100)) - -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) - - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost) - ) / 100 -- divido per 100 finale - -- (C) = sottraggo costo pieno alluminio - - (q.RawMatCost + q.RawMatExtraCost + @VCF01) - FROM dbo.RawMatDet rmd - INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - AND q.RawMat = @RawMat - - SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04) - , @RefCostF04 = -- ( (A - B) / 100 - C ) - ( - -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI) - ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100)) - -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) - - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost) - ) / 100 -- divido per 100 finale - -- (C) = sottraggo costo pieno alluminio - - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) - - -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM... - - FROM dbo.RawMatDet rmd + SELECT @OCF01 = SUM(ISNULL(C4UG,0)) + FROM #QuoteOC + + SELECT @VCF01 = @OCF01 + VC4UG + FROM #QuoteWorkInt + WHERE ProcessNum = '01' + + SELECT @VCF04 = @OCF01 + SUM(VC4UG) + FROM #QuoteWorkInt + + SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01) + , @RefCostF01 = -- ( (A - B) / 100 - C ) + ( + -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) + ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100)) + -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) + - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost) + ) / 100 -- divido per 100 finale + -- (C) = sottraggo costo pieno alluminio + - (q.RawMatCost + q.RawMatExtraCost + @VCF01) + FROM dbo.RawMatDet rmd INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - AND q.RawMat = @RawMat - - -- inserisco costi per VENDITA - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR ) - -- inserisco costi per ROTTAME + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + AND q.RawMat = @RawMat + + SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost + q.RawMatExtraCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04) + , @RefCostF04 = -- ( (A - B) / 100 - C ) + ( + -- (A) = (costo pieno di acquisto + costi variabili fase 1 e 4) * MAC * 100 (IN CENTESIMI) + ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100)) + -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) + - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost) + ) / 100 -- divido per 100 finale + -- (C) = sottraggo costo pieno alluminio + - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) + + -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM... + + FROM dbo.RawMatDet rmd + INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + AND q.RawMat = @RawMat + + -- inserisco costi per VENDITA + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR ) + -- inserisco costi per ROTTAME ,( @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR ) - -- inserisco costi per VENDITA + -- inserisco costi per VENDITA ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR ) - -- inserisco costi per ROTTAME - ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR ) - - -- calcolo Package Cost e RMWeight da tab PackageDet + -- inserisco costi per ROTTAME + ,( @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR ) + + -- calcolo Package Cost e RMWeight da tab PackageDet -- EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT -- stored sostituita perchè la maggior parte dei calcoli li ho già fatti - SELECT @PCost = RMCost / @PWeight + SELECT @PCost = RMCost / @PWeight , @PRMWeight = RMWeight , @PkgDesc = PackagDesc , @PTareStRatio = ( RMWeight - @PTare) / @PWeight - FROM dbo.PackagDet - WHERE CodPackag = @CodPackag + FROM dbo.PackagDet + WHERE CodPackag = @CodPackag - -- inserisco costi per IMBALLO - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1 + -- inserisco costi per IMBALLO + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1 - -- inserisco parametri calcolati x imballaggio - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', CONVERT(NVARCHAR(100), @PRMWeight ) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', CONVERT(NVARCHAR(100), @PWeight ) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', CONVERT(NVARCHAR(100), @PTare) ) + -- inserisco parametri calcolati x imballaggio + INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) + VALUES ( @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', CONVERT(NVARCHAR(100), @PRMWeight ) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', CONVERT(NVARCHAR(100), @PWeight ) ) + ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', CONVERT(NVARCHAR(100), @PTare) ) ,( @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', CONVERT(NVARCHAR(100), @PTareStRatio ) ) - - - --------------------------------------------- - -- inserisco costi per TRASPORTI - --------------------------------------------- - -- recupero zona da cliente... - SELECT @TranspZone = TranspZone - FROM dbo.ClientDet - WHERE CodClient = @CodClient + + + --------------------------------------------- + -- inserisco costi per TRASPORTI + --------------------------------------------- + -- recupero zona da cliente... + SELECT @TranspZone = TranspZone + FROM dbo.ClientDet + WHERE CodClient = @CodClient - -- recupero tipo di trasporto - SELECT @HasTC = ISNULL(i.HasTC, 0) - FROM dbo.QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev + -- recupero tipo di trasporto + SELECT @HasTC = ISNULL(i.HasTC, 0) + FROM dbo.QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev - -- recupero costi trasporto - SELECT @TranspCost = TranspCost - FROM dbo.TranspCostDet - WHERE TranspZone = @TranspZone + -- recupero costi trasporto + SELECT @TranspCost = TranspCost + FROM dbo.TranspCostDet + WHERE TranspZone = @TranspZone - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1 + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1 - - --------------------------------------------- - -- inserisco costi per PROVVIGIONI - --------------------------------------------- - SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0) - FROM dbo.AgentsDet a - INNER JOIN ClientDet c ON a.CodAg = c.CodAg - INNER JOIN QuoteList q ON q.CodClient = c.CodClient - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev + + --------------------------------------------- + -- inserisco costi per PROVVIGIONI + --------------------------------------------- + SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0) + FROM dbo.AgentsDet a + INNER JOIN ClientDet c ON a.CodAg = c.CodAg + INNER JOIN QuoteList q ON q.CodClient = c.CodClient + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev - -- inserisco costi per PROVVIGIONI - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1 + -- inserisco costi per PROVVIGIONI + INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1 /* ================================================== CARICO TABELLE EFFETTIVE ==================================================*/ - -- carico quote parametri! - INSERT dbo.QuoteParam - SELECT * FROM #QuoteParam + -- carico quote parametri! + INSERT dbo.QuoteParam + SELECT * FROM #QuoteParam - -- carico lavorazioni INTERNE! - INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi - SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05 + -- carico lavorazioni INTERNE! + INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi + SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05 , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid FROM #QuoteWorkInt - -- carico OTHERCOSTS - INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi - SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, Class03, Class04 + -- carico OTHERCOSTS + INSERT dbo.QuoteOC -- ci sono valori calcolati quindi devo selezionare i campi + SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, Class03, Class04 , Class05, TotQty, TotCost, Quota, valid FROM #QuoteOC - COMMIT TRAN; - - --SELECT * FROM #QuoteParam - --SELECT * FROM #QuoteWorkInt - --SELECT * FROM #QuoteOC + COMMIT TRAN; + + --SELECT * FROM #QuoteParam + --SELECT * FROM #QuoteWorkInt + --SELECT * FROM #QuoteOC - -- elimino temp table... - IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL - DROP TABLE #QuoteParam - IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL - DROP TABLE #QuoteWorkInt - IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL - DROP TABLE #QuoteOC + -- elimino temp table... NON serve nella stored + --IF OBJECT_ID('tempdb..#QuoteParam') IS NOT NULL + -- DROP TABLE #QuoteParam + --IF OBJECT_ID('tempdb..#QuoteWorkInt') IS NOT NULL + -- DROP TABLE #QuoteWorkInt + --IF OBJECT_ID('tempdb..#QuoteOC') IS NOT NULL + -- DROP TABLE #QuoteOC END GO @@ -4274,11 +4300,14 @@ GO -- Create 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) = '' - ) +CREATE PROCEDURE [dbo].[stp_QL_fullDataSearch] +( + @CodClient NVARCHAR(50) = '' + , @CodItem NVARCHAR(50) = '' + , @RawMat NVARCHAR(50) = '' + , @DataMin DATETIME + , @DataMax DATETIME +) AS SET NOCOUNT ON @@ -4288,6 +4317,7 @@ FROM v_QuoteFull_Q WHERE CodClient = CASE WHEN ISNULL(@CodClient,'') = '' THEN CodClient ELSE @CodClient END AND CodItem = CASE WHEN ISNULL(@CodItem,'') = '' THEN CodItem ELSE @CodItem END AND RawMat = CASE WHEN ISNULL(@RawMat,'') = '' THEN RawMat ELSE @RawMat END + --AND CodQuote BETWEEN CONVERT(NVARCHAR(30), @DataMin, 12)*10000 AND (CONVERT(NVARCHAR(30), @DataMax, 12) +1 )*10000 -- FARE FILTRO DATE!!! non c'è vero campo data... RETURN GO @@ -5789,7 +5819,6 @@ PRINT N'Creating [dbo].[stp_QL_fullDataUpdate]...'; GO - -- ============================================= -- STORED PROCEDURE stp_QL_fullDataUpdate -- @@ -5798,11 +5827,11 @@ GO -- Description: Recupera tutti i dati dalle tab QuoteList x avere schema x report/gestioen web -- ============================================= CREATE PROCEDURE [dbo].[stp_QL_fullDataUpdate] ( - @QuoteType CHAR(1) = 'Q' - , @CodQuote BIGINT = 0 - , @QuoteRev INT = 0 - , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N - ) + @QuoteType CHAR(1) = 'Q' + , @CodQuote BIGINT = 0 + , @QuoteRev INT = 0 + , @DoUpdate CHAR(1) = 'N' -- se si debba fare ricalcolo Y/N + ) AS SET NOCOUNT ON @@ -5818,15 +5847,13 @@ SET NOCOUNT ON */ - - --DECLARE @FullCost DECIMAL(9,6) -- , @MinPrice DECIMAL(9,6) IF (@DoUpdate = 'Y') BEGIN - EXEC stp_QL_update @QuoteType - , @CodQuote - , @QuoteRev + EXEC stp_QL_update @QuoteType + , @CodQuote + , @QuoteRev END @@ -5849,46 +5876,46 @@ AS ( SELECT * FROM ( SELECT QuoteType - , CodQuote - , QuoteRev - , Descr - , Parameter + , CodQuote + , QuoteRev + , Descr + , Parameter FROM dbo.QuoteParam WHERE CodQuote = @CodQuote - AND QuoteType = @QuoteType - AND QuoteRev = @QuoteRev + 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 - , PkgDesc - , PRMWeight - , PWeight - , PTare - , TareStRatio + ItemDescr + , CodifProfilo + , ClasseMerc + , CodClientAssoc + , ClientNameAssoc + , CodDiesGroup + , TipoDies + , DiamDies + , HoleNumDies + , NumDiesInList + , NumDiesExaust + , CodPlant + , KeyAM + , KeyAMIL + , NumSMED + , KgTeo + , KgProdotti + , QuotaMan + , DiesPrice + , DiesExpLife + , DiesEOLife + , PkgDesc + , PRMWeight + , PWeight + , PTare + , TareStRatio , LivPackage , LivPackageDett - ) + ) ) AS PivotData ), -- ================================================= @@ -5898,145 +5925,146 @@ ctePivotQuoteOC AS ( SELECT * FROM ( SELECT QuoteType - , CodQuote - , QuoteRev - , Class01 + ProcessNum AS ClassProc - , C4UG + , CodQuote + , QuoteRev + , Class01 + ProcessNum AS ClassProc + , C4UG FROM dbo.QuoteOC WHERE CodQuote = @CodQuote - AND QuoteType = @QuoteType - AND QuoteRev = @QuoteRev + AND QuoteType = @QuoteType + AND QuoteRev = @QuoteRev ) AS SourceTable PIVOT(SUM(C4UG) FOR ClassProc IN ( EE01 - , GAS01 - , MATRICE01 - , VENDITA01 - , ROTTAME01 - , VENDITA04 - , ROTTAME04 - , IMBALLO04 - , TRASPORTI04 - , PROVVIGIONI04 - ) + , 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.CodClient - , CD.ClientName - , QL.CodItem - , QL.CodItemGroup - , QL.RawMat - , QL.UnitWeight - , QL.BatchQty - , QL.CodInco - , QL.KeyAM - , QL.Note - , QL.PriceOff - , pQP.CodClientAssoc - , pQP.ClientNameAssoc - , pQP.ItemDescr - , pQP.CodifProfilo - , pQP.ClasseMerc - , pQP.TipoDies - , pQP.CodDiesGroup - , pQP.DiamDies - , pQP.HoleNumDies - , pQP.DiesPrice - , pQP.DiesExpLife - , pQP.DiesEOLife - , pQP.NumDiesInList - , pQP.NumDiesExaust - , pQP.CodPlant - , pQP.KeyAMIL - , pQP.KgTeo - , pQP.NumSMED - , pQP.QuotaMan - , pQP.PRMWeight - , pQP.PWeight - , pQP.PTare + , QL.QuoteType + , QL.CodQuote + , QL.QuoteRev + , QL.IdxQState + , QL.CodClient + , CD.ClientName + , QL.CodItem + , QL.CodItemGroup + , QL.RawMat + , QL.UnitWeight + , QL.BatchQty + , QL.CodInco + , QL.KeyAM + , QL.Note + , QL.PriceOff + , pQP.CodClientAssoc + , pQP.ClientNameAssoc + , pQP.ItemDescr + , pQP.CodifProfilo + , pQP.ClasseMerc + , pQP.TipoDies + , pQP.CodDiesGroup + , pQP.DiamDies + , pQP.HoleNumDies + , pQP.DiesPrice + , pQP.DiesExpLife + , pQP.DiesEOLife + , pQP.NumDiesInList + , pQP.NumDiesExaust + , pQP.CodPlant + , pQP.KeyAMIL + , pQP.KgTeo + , pQP.NumSMED + , pQP.QuotaMan + , pQP.PRMWeight + , pQP.PWeight + , pQP.PTare , pQP.LivPackage , pQP.LivPackageDett - , QRM.RawMatCost - , QRM.RawMatExtraCost - , QRM.RawMatCost + QRM.RawMatExtraCost AS RawMatFullCost -- fare campo calcolato ?!? - , QRM.CodPackag + , 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 + , 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 INTO #TempFullData -- carico in temp table FROM dbo.QuoteList AS QL INNER JOIN dbo.ClientDet CD - ON QL.CodClient = CD.CodClient + ON QL.CodClient = CD.CodClient INNER JOIN ctePivotQuoteP AS pQP - ON QL.QuoteType = pQP.QuoteType - AND QL.CodQuote = pQP.CodQuote - AND QL.QuoteRev = pQP.QuoteRev + ON QL.QuoteType = pQP.QuoteType + AND QL.CodQuote = pQP.CodQuote + AND QL.QuoteRev = pQP.QuoteRev INNER JOIN dbo.QuoteRM AS QRM - ON QL.QuoteType = QRM.QuoteType - AND QL.CodQuote = QRM.CodQuote - AND QL.QuoteRev = QRM.QuoteRev - AND QL.rawmat = QRM.RawMat + ON QL.QuoteType = QRM.QuoteType + AND QL.CodQuote = QRM.CodQuote + AND QL.QuoteRev = QRM.QuoteRev + AND QL.rawmat = QRM.RawMat INNER JOIN ctePivotQuoteOC AS pQOC - ON QL.QuoteType = pQOC.QuoteType - AND QL.CodQuote = pQOC.CodQuote - AND QL.QuoteRev = pQOC.QuoteRev + ON QL.QuoteType = pQOC.QuoteType + AND QL.CodQuote = pQOC.CodQuote + AND QL.QuoteRev = pQOC.QuoteRev INNER JOIN dbo.QuoteWorkInt AS QWI01 - ON QL.QuoteType = QWI01.QuoteType - AND QL.CodQuote = QWI01.CodQuote - AND QL.QuoteRev = QWI01.QuoteRev - AND QWI01.ProcessNum = '01' + ON QL.QuoteType = QWI01.QuoteType + AND QL.CodQuote = QWI01.CodQuote + AND QL.QuoteRev = QWI01.QuoteRev + AND QWI01.ProcessNum = '01' INNER JOIN dbo.QuoteWorkInt AS QWI02 - ON QL.QuoteType = QWI02.QuoteType - AND QL.CodQuote = QWI02.CodQuote - AND QL.QuoteRev = QWI02.QuoteRev - AND QWI02.ProcessNum = '02' + ON QL.QuoteType = QWI02.QuoteType + AND QL.CodQuote = QWI02.CodQuote + AND QL.QuoteRev = QWI02.QuoteRev + AND QWI02.ProcessNum = '02' INNER JOIN dbo.QuoteWorkInt AS QWI03 - ON QL.QuoteType = QWI03.QuoteType - AND QL.CodQuote = QWI03.CodQuote - AND QL.QuoteRev = QWI03.QuoteRev - AND QWI03.ProcessNum = '03' + ON QL.QuoteType = QWI03.QuoteType + AND QL.CodQuote = QWI03.CodQuote + AND QL.QuoteRev = QWI03.QuoteRev + AND QWI03.ProcessNum = '03' INNER JOIN dbo.QuoteWorkInt AS QWI04 - ON QL.QuoteType = QWI04.QuoteType - AND QL.CodQuote = QWI04.CodQuote - AND QL.QuoteRev = QWI04.QuoteRev - AND QWI04.ProcessNum = '04' + ON QL.QuoteType = QWI04.QuoteType + AND QL.CodQuote = QWI04.CodQuote + AND QL.QuoteRev = QWI04.QuoteRev + AND QWI04.ProcessNum = '04' INNER JOIN dbo.PlantsDet AS PD - ON PD.CodPlant = pQP.CodPlant + ON PD.CodPlant = pQP.CodPlant ---- salvo i dati dell'ordine: FullCost, MinPrice, PriceOff (se zero lo pongo uguale a MinPrice) --UPDATE QuoteList @@ -6083,8 +6111,8 @@ ELSE IF @QuoteType = 'S' END -- elimino temp table... -IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL - DROP TABLE #TempFullData +--IF OBJECT_ID('tempdb..#TempFullData') IS NOT NULL +-- DROP TABLE #TempFullData RETURN GO @@ -6092,13 +6120,6 @@ PRINT N'Creating [dbo].[stp_QL_update_SAM]...'; GO - - - - - - - -- ============================================= -- Author: S.E. Locatelli -- Create date: 2013.12.13 @@ -6106,730 +6127,730 @@ GO -- ============================================= CREATE PROCEDURE [dbo].[stp_QL_update_SAM] ( - @QuoteType CHAR(1) = 'Q', - @CodQuote BIGINT = 0, - @QuoteRev INT = 0 + @QuoteType CHAR(1) = 'Q', + @CodQuote BIGINT = 0, + @QuoteRev INT = 0 ) AS BEGIN - SET NOCOUNT ON; - SET XACT_ABORT ON; - - BEGIN TRAN + SET NOCOUNT ON; + SET XACT_ABORT ON; + + BEGIN TRAN - -- dichiaro valori da recuperare - DECLARE @cont INT = 0 -- contatore x numeri consecutivi... - DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali" + -- dichiaro valori da recuperare + DECLARE @cont INT = 0 -- contatore x numeri consecutivi... + DECLARE @strTemp NVARCHAR(50) = '' --stringa temporanea x variabili "locali" - DECLARE @valid BIT - DECLARE @CodDiesGroup NVARCHAR(50) - DECLARE @CodPlant NVARCHAR(50) - DECLARE @CodPlantFix NVARCHAR(50) = '' - DECLARE @HoleNum INT - DECLARE @CodItem NVARCHAR(50) = '' --cod item - DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item - DECLARE @KeyAM NVARCHAR(50) = '' - DECLARE @KeyAMI NVARCHAR(50) = '' - DECLARE @KeyAMIL NVARCHAR(50) = '' - DECLARE @NumSMED INT = 0 -- numero cambi - DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali - DECLARE @RawMat NVARCHAR(50) - DECLARE @ProdTeo DECIMAL(18,6) - DECLARE @ScTec DECIMAL(18,6) - DECLARE @BatchQty INT - DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia - DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico - DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura - DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo - DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame - DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice - DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice - DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice - DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice - DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01 - DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01 - DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04 - DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01 - DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04 - DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01 - DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04 - -- IMBALLO - DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo - DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente - DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori - DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo - DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo - DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco - DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata - DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg) - DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto + DECLARE @valid BIT + DECLARE @CodDiesGroup NVARCHAR(50) + DECLARE @CodPlant NVARCHAR(50) + DECLARE @CodPlantFix NVARCHAR(50) = '' + DECLARE @HoleNum INT + DECLARE @CodItem NVARCHAR(50) = '' --cod item + DECLARE @ItemDescr NVARCHAR(50) = '' -- descrizione item + DECLARE @KeyAM NVARCHAR(50) = '' + DECLARE @KeyAMI NVARCHAR(50) = '' + DECLARE @KeyAMIL NVARCHAR(50) = '' + DECLARE @NumSMED INT = 0 -- numero cambi + DECLARE @KgTeo DECIMAL(18, 6) = 0 -- kg totali + DECLARE @RawMat NVARCHAR(50) + DECLARE @ProdTeo DECIMAL(18,6) + DECLARE @ScTec DECIMAL(18,6) + DECLARE @BatchQty INT + DECLARE @MAC_SC DECIMAL(18,6) -- Messa a cento scarto cesoia + DECLARE @MAC_ST DECIMAL(18,6) -- Messa a cento scarto tecnico + DECLARE @MAC_IN DECIMAL(18,6) -- Messa a cento difettosità all'incestatura + DECLARE @MAC_IM DECIMAL(18,6) -- Messa a cento difettosità all'imballo + DECLARE @SSR DECIMAL(9,6) -- percentuale vendita rottame + DECLARE @DiesPrice DECIMAL(9,3) -- prezzo matrice + DECLARE @DiesEOLife DECIMAL(9,2) -- durata matrice + DECLARE @DiesExpLife DECIMAL(9,2) -- durata matrice + DECLARE @DiesPriceLife DECIMAL(18,6) -- Price/Life matrice + DECLARE @OCF01 DECIMAL(18,6) = 0 -- altri costi di fase 01 + DECLARE @VCF01 DECIMAL(18,6) = 0 -- costi variabili di fase 01 + DECLARE @VCF04 DECIMAL(18,6) = 0 -- costi variabili di fase 04 + DECLARE @SellCostF01 DECIMAL(18,6) = 0 -- costo vendita fase 01 + DECLARE @SellCostF04 DECIMAL(18,6) = 0 -- costo vendita fase 04 + DECLARE @RefCostF01 DECIMAL(18,6) = 0 -- costo rifusione fase 01 + DECLARE @RefCostF04 DECIMAL(18,6) = 0 -- costo rifusione fase 04 + -- IMBALLO + DECLARE @CodPackag NVARCHAR(50) = '0' -- codice dell'imballo + DECLARE @CodClient NVARCHAR(50) = '' -- codice cliente + DECLARE @NumImb DECIMAL(9,6) = 0 -- num imballatori + DECLARE @PkgDesc NVARCHAR(50) = '' -- descrizione imballo + DECLARE @PRMWeight DECIMAL(9,4) = 0 -- peso dell'imballo + DECLARE @PWeight DECIMAL(9,4) = 0 -- peso del pacco + DECLARE @PTare DECIMAL(9,4) = 0 -- media delal tara di imballo dichiarata + DECLARE @PCost DECIMAL(9,6) = 0 -- costo unitario dell'imballo (al kg) + DECLARE @PTareStRatio DECIMAL(9,4) = 0 -- coefficiente di recupero tara/prodotto - -- TRASPORTI - DECLARE @TranspZone NVARCHAR(50) = '', -- codice ZONA - @TranspCost DECIMAL(9,6), -- costo di trasporto - @HasTC INT + -- TRASPORTI + DECLARE @TranspZone NVARCHAR(50) = '', -- codice ZONA + @TranspCost DECIMAL(9,6), -- costo di trasporto + @HasTC INT - -- PROVVIGIONI - DECLARE @Provvig DECIMAL(9,6) -- provvigione agente + -- PROVVIGIONI + DECLARE @Provvig DECIMAL(9,6) -- provvigione agente - -- default: validità è true! - SET @valid = 1 + -- default: validità è true! + SET @valid = 1 - --------------------------------------- - -- svuotamento iniziale - --------------------------------------- - -- elimino parametri! - DELETE - FROM dbo.QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- elimino lavorazioni interne! - DELETE - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- elimino preventivamente OtherCosts già inseriti! - DELETE - FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + --------------------------------------- + -- svuotamento iniziale + --------------------------------------- + -- elimino parametri! + DELETE + FROM dbo.QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + -- elimino lavorazioni interne! + DELETE + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + -- elimino preventivamente OtherCosts già inseriti! + DELETE + FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- elimino lavorazioni esterne! - DELETE - FROM dbo.QuoteWorkExt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- elimino lavorazioni esterne! + DELETE + FROM dbo.QuoteWorkExt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato - SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev ), '' ) + -- se ci sono eccezioni nella tab dell'anagrafico articoli imposto il codPlant desiderato + SET @CodPlantFix = ISNULL ( ( SELECT id.CodPlant FROM dbo.ItemDet id INNER JOIN dbo.QuoteList ql ON id.CodItem = ql.CodItem + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev ), '' ) - -- recupero da dati dell'offerta il valore del cliente - SELECT @CodClient = CodClient - FROM dbo.QuoteList - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- recupero da dati dell'offerta il valore del cliente + SELECT @CodClient = CodClient + FROM dbo.QuoteList + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - - -- recupero da dati dell'offerta il valore del package scelto - SELECT @CodPackag = CodPackag - FROM dbo.QuoteRM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + + -- recupero da dati dell'offerta il valore del package scelto + SELECT @CodPackag = CodPackag + FROM dbo.QuoteRM + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- recupero dati!! - SELECT TOP 1 @CodItem = ql.CodItem - , @CodDiesGroup = tps.CodDiesGroup + -- recupero dati!! + SELECT TOP 1 @CodItem = ql.CodItem + , @CodDiesGroup = tps.CodDiesGroup , @CodPlant = CASE WHEN @CodPlantFix <> '' THEN @CodPlantFix ELSE tps.CodPlant END - , @HoleNum = tps.HoleNum - , @KeyAM = ql.KeyAM - , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') - , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) - , @ProdTeo = tps.ProdTeo - , @ScTec = tps.ScTec - , @KgTeo = tps.KgTeo - , @NumSMED = tps.NumSMED - , @RawMat = ql.RawMat - , @BatchQty = ql.BatchQty - , @ItemDescr= i.ItemDescr - FROM dbo.QuoteList ql + , @HoleNum = tps.HoleNum + , @KeyAM = ql.KeyAM + , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) + , @ProdTeo = tps.ProdTeo + , @ScTec = tps.ScTec + , @KgTeo = tps.KgTeo + , @NumSMED = tps.NumSMED + , @RawMat = ql.RawMat + , @BatchQty = ql.BatchQty + , @ItemDescr= i.ItemDescr + FROM dbo.QuoteList ql INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - ORDER BY tps.KgTeo DESC - - - -- inserisco note sull'articolo - SELECT @cont = ISNULL(MAX(NumP),0) + 1 - FROM dbo.QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + ORDER BY tps.KgTeo DESC + + + -- inserisco note sull'articolo + SELECT @cont = ISNULL(MAX(NumP),0) + 1 + FROM dbo.QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ItemDescr', @ItemDescr) + INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ItemDescr', @ItemDescr) - SELECT @cont = @cont + 1 - INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'CodifProfilo', Class01 - FROM dbo.ItemDet - WHERE CodItem = @CodItem + SELECT @cont = @cont + 1 + INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'CodifProfilo', Class01 + FROM dbo.ItemDet + WHERE CodItem = @CodItem - SELECT @cont = @cont + 1 - INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ClasseMerc', Class02 - FROM dbo.ItemDet - WHERE CodItem = @CodItem - - SELECT @cont = @cont + 1 - INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ClienteAssoc', Class03 - FROM dbo.ItemDet - WHERE CodItem = @CodItem - - -- INFORMAZIONI su MATRICE - SELECT @cont = @cont + 1 - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'CodDiesGroup', @CodDiesGroup) + SELECT @cont = @cont + 1 + INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ClasseMerc', Class02 + FROM dbo.ItemDet + WHERE CodItem = @CodItem + + SELECT @cont = @cont + 1 + INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'ClienteAssoc', Class03 + FROM dbo.ItemDet + WHERE CodItem = @CodItem + + -- INFORMAZIONI su MATRICE + SELECT @cont = @cont + 1 + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'CodDiesGroup', @CodDiesGroup) - SELECT @cont = @cont + 1 - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) --@strTemp = SUBSTRING(@CodDiesGroup, 0, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'TipoDies', @strTemp) + SELECT @cont = @cont + 1 + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 1) --@strTemp = SUBSTRING(@CodDiesGroup, 0, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'TipoDies', @strTemp) - SELECT @cont = @cont + 1 - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 2, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'DiamDies', @strTemp) + SELECT @cont = @cont + 1 + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 2) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 2, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'DiamDies', @strTemp) - SELECT @cont = @cont + 1 - SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 5, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'HoleNumDies', @strTemp) + SELECT @cont = @cont + 1 + SET @strTemp = dbo.f_getSubstring(@CodDiesGroup, '-', 3) --@strTemp = SUBSTRING(REPLACE(@CodDiesGroup, @strTemp,''), 5, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + VALUES (@QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'HoleNumDies', @strTemp) - SELECT @cont = @cont + 1 - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumDiesInList', COUNT(CodDies) - FROM dbo.DiesDet - WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem + SELECT @cont = @cont + 1 + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumDiesInList', COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND CodItem = @CodItem - SELECT @cont = @cont + 1 - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumDiesExaust', COUNT(CodDies) - FROM dbo.DiesDet - WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 - - - -- inserisco lavorazione estrusione! - INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec - FROM QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + SELECT @cont = @cont + 1 + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumDiesExaust', COUNT(CodDies) + FROM dbo.DiesDet + WHERE CodDiesGroup = @CodDiesGroup AND Active = 0 + + + -- inserisco lavorazione estrusione! + INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, NetProd, WSR) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '01', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @ProdTeo, @ScTec + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - - -- inserisco parametri calcolati x lavorazione estruzione - INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'CodPlant', @CodPlant - FROM dbo.QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + + -- inserisco parametri calcolati x lavorazione estruzione + INSERT INTO dbo.QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'CodPlant', @CodPlant + FROM dbo.QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KeyAM', @KeyAM - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KeyAM', @KeyAM + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KeyAMIL', @KeyAMIL - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KeyAMIL', @KeyAMIL + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'NumCambi', @NumSMED - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'NumCambi', @NumSMED + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KgTeo', @KgTeo - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'KgTeo', @KgTeo + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'HoleNum', @HoleNum - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'HoleNum', @HoleNum + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - SELECT @cont = ISNULL(MAX(NumP),0) + 1 - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + SELECT @cont = ISNULL(MAX(NumP),0) + 1 + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'KgProdotti', SUM(KgTeo) - FROM QuoteList ql - INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - - --SELECT @cont = @cont + 1 - --INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - --SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumLotti', COUNT(*) - --FROM QuoteList ql INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM - --WHERE ql.QuoteType = @QuoteType - -- AND ql.CodQuote = @CodQuote - -- AND ql.QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'KgProdotti', SUM(KgTeo) + FROM QuoteList ql + INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM + WHERE ql.QuoteType = @QuoteType + AND ql.CodQuote = @CodQuote + AND ql.QuoteRev = @QuoteRev + + --SELECT @cont = @cont + 1 + --INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + --SELECT @QuoteType, @CodQuote, @QuoteRev, @cont, '01', 'NumLotti', COUNT(*) + --FROM QuoteList ql INNER JOIN TabProdSc tps ON ql.KeyAM = tps.KeyAM + --WHERE ql.QuoteType = @QuoteType + -- AND ql.CodQuote = @CodQuote + -- AND ql.QuoteRev = @QuoteRev - -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione! - UPDATE qwi - SET MSR = rmd.CSR - FROM dbo.QuoteWorkInt qwi - INNER JOIN RawMatDet rmd ON qwi.Class03 = rmd.RawMat - WHERE qwi.QuoteType = @QuoteType - AND qwi.CodQuote = @CodQuote - AND qwi.QuoteRev = @QuoteRev + -- inserisco dati mancanti di MSR/CSR (scarto cesoia x estrusione) - DSR è NULLO x estrusione! + UPDATE qwi + SET MSR = rmd.CSR + FROM dbo.QuoteWorkInt qwi + INNER JOIN RawMatDet rmd ON qwi.Class03 = rmd.RawMat + WHERE qwi.QuoteType = @QuoteType + AND qwi.CodQuote = @CodQuote + AND qwi.QuoteRev = @QuoteRev - -- calcolo i costi legati alla fase estrusione! - UPDATE qwi - SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , SC4UG = cp.SC / ql.BatchQty - FROM dbo.QuoteWorkInt qwi - INNER JOIN Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - INNER JOIN QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.QuoteType = @QuoteType - AND qwi.CodQuote = @CodQuote - AND qwi.QuoteRev = @QuoteRev + -- calcolo i costi legati alla fase estrusione! + UPDATE qwi + SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , SC4UG = cp.SC / ql.BatchQty + FROM dbo.QuoteWorkInt qwi + INNER JOIN Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.QuoteType = @QuoteType + AND qwi.CodQuote = @CodQuote + AND qwi.QuoteRev = @QuoteRev - -- inserisco lavorazione incestatura! - INSERT INTO QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - - -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN - UPDATE qwi - SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) - FROM dbo.QuoteWorkInt qwi - INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '02' -- solo incestatura - - -- inserisco lavorazione FORNO! - INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- inserisco lavorazione imballo! - INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- inserisco lavorazione incestatura! + INSERT INTO QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '02', @CodPlant, @KeyAM, @KeyAMI, @RawMat + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + + -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN + UPDATE qwi + SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) + FROM dbo.QuoteWorkInt qwi + INNER JOIN dbo.TabDifett td ON qwi.Class02 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '02' -- solo incestatura + + -- inserisco lavorazione FORNO! + INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '03', @CodPlant, @KeyAM, @KeyAMI, @RawMat + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + -- inserisco lavorazione imballo! + INSERT INTO dbo.QuoteWorkInt(QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumWI),0) + 1, '04', @CodPlant, @KeyAM, @KeyAMIL, @RawMat, @CodItem, @KeyAMI + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- calcolo produttività netta nella fase imballo - UPDATE qwi - SET NetProd = ti.TotOut/ ti.Durata - FROM dbo.QuoteWorkInt qwi - INNER JOIN TabImbArt ti ON qwi.Class04 = ti.KeyA + -- calcolo produttività netta nella fase imballo + UPDATE qwi + SET NetProd = ti.TotOut/ ti.Durata + FROM dbo.QuoteWorkInt qwi + INNER JOIN TabImbArt ti ON qwi.Class04 = ti.KeyA - -- salvo numero imballatori - SELECT @NumImb = ISNULL(NumImb,0) - FROM TabImbArt - WHERE KeyA = @CodItem + -- salvo numero imballatori + SELECT @NumImb = ISNULL(NumImb,0) + FROM TabImbArt + WHERE KeyA = @CodItem - -- parametro num imballatori - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'NumImballatori', @NumImb - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- calcolo i costi legati alla fase di imballo! - UPDATE qwi - SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd - , SC4UG = cp.SC / ql.BatchQty - FROM dbo.QuoteWorkInt qwi - INNER JOIN Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum - INNER JOIN QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev - WHERE qwi.ProcessNum = '04' -- solo imballo + -- parametro num imballatori + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'NumImballatori', @NumImb + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + -- calcolo i costi legati alla fase di imballo! + UPDATE qwi + SET FC4UG = (cp.FC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , VC4UG = (cp.VC * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , OH4UG = (cp.OH * cp.QuotaPlantStd / cp.QuotaManStd) / qwi.NetProd + , SC4UG = cp.SC / ql.BatchQty + FROM dbo.QuoteWorkInt qwi + INNER JOIN Cost2Plant cp ON qwi.CodPlant = cp.CodPlant AND qwi.ProcessNum = cp.ProcessNum + INNER JOIN QuoteList ql ON qwi.QuoteType = ql.QuoteType AND qwi.CodQuote = ql.CodQuote AND qwi.QuoteRev = ql.QuoteRev + WHERE qwi.ProcessNum = '04' -- solo imballo - - -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN - UPDATE qwi - SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) - FROM dbo.QuoteWorkInt qwi - INNER JOIN TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum - WHERE qwi.ProcessNum = '04' -- solo imballo - - - -- recupero le MAC fase 01 - SELECT - @MAC_SC = MCR - ,@MAC_ST = WCR - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND ProcessNum = '01' + + -- inserisco dati mancanti di DSR x incestatura come 1 - OUT/IN + UPDATE qwi + SET DSR = 1 - CAST(td.TotOUT AS DECIMAL(18,6))/CAST(td.TotIN AS DECIMAL(18,6)) + FROM dbo.QuoteWorkInt qwi + INNER JOIN TabDifett td ON qwi.Class05 = td.KeyAMI AND qwi.ProcessNum = td.ProcessNum + WHERE qwi.ProcessNum = '04' -- solo imballo + + + -- recupero le MAC fase 01 + SELECT + @MAC_SC = MCR + ,@MAC_ST = WCR + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND ProcessNum = '01' - -- recupero le MAC fase 02 - SELECT - @MAC_IN = DCR - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND ProcessNum = '02' + -- recupero le MAC fase 02 + SELECT + @MAC_IN = DCR + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND ProcessNum = '02' - -- recupero le MAC fase 04 - SELECT - @MAC_IM = DCR - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND ProcessNum = '04' - - -- calcolo percentuale vendita rottame - SELECT @SSR = SSR - FROM dbo.RawMatDet - WHERE RawMat = @RawMat - - -- update rese RawMat! - UPDATE dbo.QuoteRM - SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND RawMat = @RawMat + -- recupero le MAC fase 04 + SELECT + @MAC_IM = DCR + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND ProcessNum = '04' + + -- calcolo percentuale vendita rottame + SELECT @SSR = SSR + FROM dbo.RawMatDet + WHERE RawMat = @RawMat + + -- update rese RawMat! + UPDATE dbo.QuoteRM + SET FCR = @MAC_SC * @MAC_ST * @MAC_IN * @MAC_IM + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND RawMat = @RawMat - -- inserisco i costi delle utilities in QuoteOC - - -- inserisco altri costi x lavorazione estrusione! GAS ed EE - INSERT INTO dbo.QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ROW_NUMBER() OVER(ORDER BY CodUtil ASC) AS Row, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1 - FROM dbo.Utilities - WHERE CodPlant = @CodPlant - + -- inserisco i costi delle utilities in QuoteOC + + -- inserisco altri costi x lavorazione estrusione! GAS ed EE + INSERT INTO dbo.QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ROW_NUMBER() OVER(ORDER BY CodUtil ASC) AS Row, '01', @CodPlant, CodUtil, @RawMat, @BatchQty, UnitCost * @BatchQty, 1 + FROM dbo.Utilities + WHERE CodPlant = @CodPlant + - /************************************************************* - * MATRICE - * - * calcolo prezzo e durata matrice con procedura a 5 step... - * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup - * B) EOLLife x media ponderata su DiesDet dove Active = 0 - * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup - * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup - * E) Calcolo Price / Life - * - *************************************************************/ + /************************************************************* + * MATRICE + * + * calcolo prezzo e durata matrice con procedura a 5 step... + * A) media ponderata prezzo ed ExpLife da DiesDet selezionando x CodItem + CodDiesGroup + * B) EOLLife x media ponderata su DiesDet dove Active = 0 + * C) SE prezzo = 0 --> prendo prezzo da DiesGroupDet selezionando x CodDiesGroup + * D) Se EOL = 0 --> prendo ExpLife della singola matrice, se è 0 --> prendo EOLLife da DiesGroupDet selezionando x CodDiesGroup + * E) Calcolo Price / Life + * + *************************************************************/ - -- (A) da DiesDet - SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)), - @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) - FROM dbo.DiesDet - WHERE CodItem = @CodItem - AND CodDiesGroup = @CodDiesGroup - GROUP BY CodItem, CodDiesGroup + -- (A) da DiesDet + SELECT @DiesPrice = SUM(ISNULL(Price, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)), + @DiesExpLife = SUM(ISNULL(ExpLife, 0) * ISNULL(ActLife, 1)) / SUM(ISNULL(ActLife, 1)) + FROM dbo.DiesDet + WHERE CodItem = @CodItem + AND CodDiesGroup = @CodDiesGroup + GROUP BY CodItem, CodDiesGroup - -- (B) da DiesDet - SELECT @DiesEOLife = AVG(ISNULL(ActLife, 0)) - FROM dbo.DiesDet - WHERE CodItem = @CodItem - AND CodDiesGroup = @CodDiesGroup - AND Active = 0 - GROUP BY CodItem, CodDiesGroup - - SET @DiesPrice = ISNULL(@DiesPrice,0) - SET @DiesExpLife = ISNULL(@DiesExpLife,0) - SET @DiesEOLife = ISNULL(@DiesEOLife,0) + -- (B) da DiesDet + SELECT @DiesEOLife = AVG(ISNULL(ActLife, 0)) + FROM dbo.DiesDet + WHERE CodItem = @CodItem + AND CodDiesGroup = @CodDiesGroup + AND Active = 0 + GROUP BY CodItem, CodDiesGroup + + SET @DiesPrice = ISNULL(@DiesPrice,0) + SET @DiesExpLife = ISNULL(@DiesExpLife,0) + SET @DiesEOLife = ISNULL(@DiesEOLife,0) - -- (C) verifico se prezzo è OK... - IF (@DiesPrice = 0) - BEGIN - -- calcolo da DiesGroupDet - SELECT @DiesPrice = ISNULL(Price, 0) - FROM DiesGroupDet - WHERE CodDiesGroup = @CodDiesGroup - END - - -- (D) verifico se vita è OK... - IF (@DiesEOLife = 0) - BEGIN - -- uso exp life articolo... - SET @DiesEOLife = @DiesExpLife - END - -- controllo che non sia nulla/vuota la durata... - IF (@DiesEOLife = 0) - BEGIN - SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END - FROM DiesGroupDet - WHERE CodDiesGroup = @CodDiesGroup - END + -- (C) verifico se prezzo è OK... + IF (@DiesPrice = 0) + BEGIN + -- calcolo da DiesGroupDet + SELECT @DiesPrice = ISNULL(Price, 0) + FROM DiesGroupDet + WHERE CodDiesGroup = @CodDiesGroup + END + + -- (D) verifico se vita è OK... + IF (@DiesEOLife = 0) + BEGIN + -- uso exp life articolo... + SET @DiesEOLife = @DiesExpLife + END + -- controllo che non sia nulla/vuota la durata... + IF (@DiesEOLife = 0) + BEGIN + SELECT @DiesEOLife = CASE WHEN EOLLife > 0 THEN EOLLife ELSE ExpLife END + FROM DiesGroupDet + WHERE CodDiesGroup = @CodDiesGroup + END - -- controllo che non sia nulla/vuota la durata... - IF (@DiesEOLife = 0) - BEGIN - SELECT @DiesEOLife = 1 -- metto 1 kg che è sbagliato e mi fa esplodere prezzo matrice ma non blocca calcoli - END + -- controllo che non sia nulla/vuota la durata... + IF (@DiesEOLife = 0) + BEGIN + SELECT @DiesEOLife = 1 -- metto 1 kg che è sbagliato e mi fa esplodere prezzo matrice ma non blocca calcoli + END - -- (E) Calcolo price/life! - SET @DiesPriceLife = @DiesPrice / @DiesEOLife - - -- (D) verifico se vita è OK... - IF (@DiesPriceLife = 0) - BEGIN - SET @DiesPriceLife = 1 - SET @valid = 0 - END - - -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...) - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid - FROM QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- (E) Calcolo price/life! + SET @DiesPriceLife = @DiesPrice / @DiesEOLife + + -- (D) verifico se vita è OK... + IF (@DiesPriceLife = 0) + BEGIN + SET @DiesPriceLife = 1 + SET @valid = 0 + END + + -- inserisco costi per Matrice: costo e durata da matrice, se non ci sono da gruppo, (anche solo uno dei due, ovviamente più facile trovare durata x matrice...) + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota, valid) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'MATRICE', @RawMat, @BatchQty, @DiesPriceLife * @BatchQty, 1, @valid + FROM QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - - -- inserisco parametri calcolati x matrice - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesPrice', @DiesPrice - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + + -- inserisco parametri calcolati x matrice + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesPrice', @DiesPrice + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesExpLife', @DiesExpLife - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesExpLife', @DiesExpLife + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesEOLife', @DiesEOLife - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '01', 'DiesEOLife', @DiesEOLife + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - /************************************************************* - * VENDITA ROTTAME - * - * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04 - * - calcolo costi variabili fase 01 / 04 - * - calcolo costo di vendita x fase 01 / 04 - *************************************************************/ + /************************************************************* + * VENDITA ROTTAME + * + * calcolo COSTO DI VENDITA PER LE 2 FASI ESTRUSIONE 01 ED IMBALLO 04 + * - calcolo costi variabili fase 01 / 04 + * - calcolo costo di vendita x fase 01 / 04 + *************************************************************/ - SELECT @OCF01 = SUM(ISNULL(C4UG,0)) - FROM QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - SELECT @VCF01 = @OCF01 + VC4UG - FROM QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - AND ProcessNum = '01' - - SELECT @VCF04 = @OCF01 + SUM(VC4UG) - FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01) - , @RefCostF01 = -- ( (A - B) / 100 - C ) - ( - -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) - ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100)) - -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) - - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost) - ) / 100 -- divido per 100 finale - -- (C) = sottraggo costo pieno alluminio - - (q.RawMatCost + q.RawMatExtraCost + @VCF01) - FROM dbo.RawMatDet rmd - INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - AND q.RawMat = @RawMat - - SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04) - , @RefCostF04 = -- ( (A - B) / 100 - C ) - ( - -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) - ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100)) - -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) - - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost) - ) / 100 -- divido per 100 finale - -- (C) = sottraggo costo pieno alluminio - - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) + SELECT @OCF01 = SUM(ISNULL(C4UG,0)) + FROM QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + SELECT @VCF01 = @OCF01 + VC4UG + FROM QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + AND ProcessNum = '01' + + SELECT @VCF04 = @OCF01 + SUM(VC4UG) + FROM dbo.QuoteWorkInt + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + SELECT @SellCostF01 = ((@MAC_ST * @MAC_SC * @MAC_IN) - 1) * (q.RawMatCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 01) + , @RefCostF01 = -- ( (A - B) / 100 - C ) + ( + -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) + ((q.RawMatCost + q.RawMatExtraCost + @VCF01) * (@MAC_ST * @MAC_SC * @MAC_IN * 100)) + -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) + - ((@MAC_ST * @MAC_SC * @MAC_IN * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 - rmd.ProcCost) + ) / 100 -- divido per 100 finale + -- (C) = sottraggo costo pieno alluminio + - (q.RawMatCost + q.RawMatExtraCost + @VCF01) + FROM dbo.RawMatDet rmd + INNER JOIN dbo.QuoteRM q ON q.RawMat = rmd.RawMat + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + AND q.RawMat = @RawMat + + SELECT @SellCostF04 = ((@MAC_IM) - 1) * (q.RawMatCost - CASE WHEN SSVA > 0 THEN SSVA ELSE q.RawMatCost * SSVR END + @VCF01 + @VCF04) -- ((prodotto delle MAC = inverso del prodotto delle rese) - 1) * (costo Al - prezzo rivendita + costi var fase 04) + , @RefCostF04 = -- ( (A - B) / 100 - C ) + ( + -- (A) = (costo pieno di acquisto + costi fase 1) * MAC * 100 (IN CENTESIMI) + ((q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) * (@MAC_IM * 100)) + -- (B) = ((MAC * 100) - 100) * Resa di fonderia * (costo pieno acquisto - costo di trasformazione)) + - ((@MAC_IM * 100) - 100) * rmd.ProcYield * (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04 - rmd.ProcCost) + ) / 100 -- divido per 100 finale + -- (C) = sottraggo costo pieno alluminio + - (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @VCF04) - -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM... + -- NOTA: usiamo (q.RawMatCost + q.RawMatExtraCost + @VCF01) e non (q.RawMatCost + q.RawMatExtraCost + @VCF01 + @RefCostF01) perché la differenza è minimale, si tratta di 10/20 PPM... - FROM RawMatDet rmd INNER JOIN QuoteRM q ON q.RawMat = rmd.RawMat - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev - AND q.RawMat = @RawMat - - -- inserisco costi per VENDITA - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR - FROM QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + FROM RawMatDet rmd INNER JOIN QuoteRM q ON q.RawMat = rmd.RawMat + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev + AND q.RawMat = @RawMat + + -- inserisco costi per VENDITA + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR + FROM QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- inserisco costi per ROTTAME - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR - FROM QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - -- inserisco costi per VENDITA - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR - FROM QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- inserisco costi per ROTTAME + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR + FROM QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + -- inserisco costi per VENDITA + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR + FROM QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- inserisco costi per ROTTAME - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR - FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- inserisco costi per ROTTAME + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR + FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - - EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT - - -- inserisco costi per IMBALLO - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1 - FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + + EXEC stp_packageCost @CodItem, @CodClient, @CodPackag, @PDesc=@PkgDesc OUTPUT, @RMWeight=@PRMWeight OUTPUT, @Weight=@PWeight OUTPUT, @Tare=@PTare OUTPUT, @PackCost=@PCost OUTPUT, @TareStRat=@PTareStRatio OUTPUT + + -- inserisco costi per IMBALLO + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'IMBALLO', @RawMat, @BatchQty, @PCost * @BatchQty, 1 + FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - -- inserisco parametri calcolati x imballaggio - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PkgDesc', @PkgDesc - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- inserisco parametri calcolati x imballaggio + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PkgDesc', @PkgDesc + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'RMWeight', @PRMWeight - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'RMWeight', @PRMWeight + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PWeight', @PWeight - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PWeight', @PWeight + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PTare', @PTare - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'PTare', @PTare + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'TareStRatio', @PTareStRatio - FROM QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - - --------------------------------------------- - -- inserisco costi per TRASPORTI - --------------------------------------------- - -- recupero zona da cliente... - SELECT @TranspZone = TranspZone - FROM dbo.ClientDet - WHERE CodClient = @CodClient + INSERT INTO QuoteParam(QuoteType, CodQuote, QuoteRev, NumP, ProcessNum, Descr, Parameter) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumP),0) + 1, '04', 'TareStRatio', @PTareStRatio + FROM QuoteParam + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev + + + --------------------------------------------- + -- inserisco costi per TRASPORTI + --------------------------------------------- + -- recupero zona da cliente... + SELECT @TranspZone = TranspZone + FROM dbo.ClientDet + WHERE CodClient = @CodClient - -- recupero tipo di trasporto - SELECT @HasTC = ISNULL(i.HasTC, 0) - FROM QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev + -- recupero tipo di trasporto + SELECT @HasTC = ISNULL(i.HasTC, 0) + FROM QuoteList q INNER JOIN Incoterms i ON q.CodInco = i.CodInco + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev - -- recupero costi trasporto - SELECT @TranspCost = TranspCost - FROM dbo.TranspCostDet - WHERE TranspZone = @TranspZone + -- recupero costi trasporto + SELECT @TranspCost = TranspCost + FROM dbo.TranspCostDet + WHERE TranspZone = @TranspZone - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1 - FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'TRASPORTI', @RawMat, @BatchQty, @HasTC * @TranspCost * @BatchQty, 1 + FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - - --------------------------------------------- - -- inserisco costi per PROVVIGIONI - --------------------------------------------- - SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0) - FROM dbo.AgentsDet a - INNER JOIN ClientDet c ON a.CodAg = c.CodAg - INNER JOIN QuoteList q ON q.CodClient = c.CodClient - WHERE q.QuoteType = @QuoteType - AND q.CodQuote = @CodQuote - AND q.QuoteRev = @QuoteRev + + --------------------------------------------- + -- inserisco costi per PROVVIGIONI + --------------------------------------------- + SELECT @Provvig = ISNULL(a.QuotaProvvAg, 0) + FROM dbo.AgentsDet a + INNER JOIN ClientDet c ON a.CodAg = c.CodAg + INNER JOIN QuoteList q ON q.CodClient = c.CodClient + WHERE q.QuoteType = @QuoteType + AND q.CodQuote = @CodQuote + AND q.QuoteRev = @QuoteRev - -- inserisco costi per PROVVIGIONI - INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1 - FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev + -- inserisco costi per PROVVIGIONI + INSERT INTO QuoteOC(QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) + SELECT @QuoteType, @CodQuote, @QuoteRev, ISNULL(MAX(NumEx),0) + 1, '04', @CodPlant, 'PROVVIGIONI', @RawMat, @BatchQty, @Provvig * @BatchQty, 1 + FROM dbo.QuoteOC + WHERE QuoteType = @QuoteType + AND CodQuote = @CodQuote + AND QuoteRev = @QuoteRev - COMMIT TRAN + COMMIT TRAN END GO @@ -7036,6 +7057,170 @@ BEGIN END GO +PRINT N'Creating [dbo].[stp_insNewLemma]...'; + + +GO + + +/************************************* +* STORED PROCEDURE stp_insNewLemma +* +* elimina record anagrafica classe prodotto +* +* mod : 14/05/2012 +* aut : S.E. Locatelli +**************************************/ +CREATE PROCEDURE [dbo].[stp_insNewLemma] +( + @lemma NVARCHAR(50), + @traduzione NVARCHAR(500) +) +AS + +-- elimino se c'era già... +DELETE +FROM dbo.Vocabolario +WHERE lemma = @lemma + +-- inserisco x tutte le lingue attive... +INSERT INTO dbo.Vocabolario +SELECT lingua, @lemma, @traduzione +FROM Lingue + +SELECT * +FROM dbo.Vocabolario +WHERE lemma = @lemma + +RETURN +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 + +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 + +BEGIN TRAN + + -- aggiorno valori QuoteList! + UPDATE QuoteList + SET CodClient = @CodClient + , CodItem = @CodItem + , RawMat = @RawMat + , BatchQty = @BatchQty + , CodInco = @CodInco + , Note = @Note + WHERE QuoteType = @Original_QuoteType + AND CodQuote = @Original_CodQuote + AND QuoteRev = @Original_QuoteRev + + -- 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_test]...'; + + +GO +CREATE PROCEDURE stp_test +AS + SELECT TOP 1 * INTO #QuoteParam FROM dbo.ClientDet + EXEC stp_QL_update 'Q', 1312130001, 0 --WITH RECOMPILE + SELECT * FROM #QuoteParam + DROP TABLE #QuoteParam +GO PRINT N'Creating [dbo].[stp_QL_getByKey]...'; @@ -9477,6 +9662,14 @@ GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Tipo risorsa (e lavorazione): 01 .. 04', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteParam', @level2type = N'COLUMN', @level2name = N'ProcessNum'; +GO +PRINT N'Creating [dbo].[QuoteFull_Q].[IdxQState].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = bozza, 10 = completata / in approvazione, 20 = approvata, 30 rilasciata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteFull_Q', @level2type = N'COLUMN', @level2name = N'IdxQState'; + + GO PRINT N'Creating [dbo].[QuoteFull_Q].[PriceOff].[MS_Description]...'; @@ -9664,7 +9857,7 @@ PRINT N'Creating [dbo].[QuoteWorkInt].[Class02].[MS_Description]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 02, codice di ricerca per prod - es cod imballo o Chiave di ricerca Articolo/ClasseArt + RawMat+ Impianto + NumLuci ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class02'; +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Riclass. 02, codice di ricerca per prod - es cod imballo o Chiave di ricerca Articolo/ClasseArt + RawMat+ Impianto + NumLuci', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'Class02'; GO @@ -9784,7 +9977,7 @@ PRINT N'Creating [dbo].[QuoteWorkInt].[WCR].[MS_Description]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Work Conversion Ratio, Messa a Cento, 1 / RESA ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'WCR'; +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Work Conversion Ratio, Messa a Cento, 1 / RESA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'WCR'; GO @@ -9792,7 +9985,7 @@ PRINT N'Creating [dbo].[QuoteWorkInt].[MCR].[MS_Description]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Material Conversion Ratio, Messa a Cento, 1 / RESA ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'MCR'; +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Material Conversion Ratio, Messa a Cento, 1 / RESA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'MCR'; GO @@ -9800,7 +9993,7 @@ PRINT N'Creating [dbo].[QuoteWorkInt].[DCR].[MS_Description]...'; GO -EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Defect Conversion Ratio, Messa a Cento, 1 / RESA ', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'DCR'; +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Defect Conversion Ratio, Messa a Cento, 1 / RESA', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteWorkInt', @level2type = N'COLUMN', @level2name = N'DCR'; GO @@ -9859,6 +10052,14 @@ GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'numero nel formato yyMMddnnnn dove nnn è incrementale giornaliero', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'CodQuote'; +GO +PRINT N'Creating [dbo].[QuoteList].[IdxQState].[MS_Description]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Stato offerta: 0 = bozza, 10 = completata / in approvazione, 20 = approvata, 30 rilasciata', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'QuoteList', @level2type = N'COLUMN', @level2name = N'IdxQState'; + + GO PRINT N'Creating [dbo].[QuoteList].[CodClient].[MS_Description]...'; @@ -10901,8 +11102,7 @@ Begin DesignProperties = Or = 1350 End End -End -', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selItems'; +End', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selItems'; GO @@ -11009,7 +11209,7 @@ Begin DesignProperties = Begin ColumnWidths = 9 Width = 284 Width = 1500 - Width = 4290 + Width = 11790 Width = 1500 Width = 1500 Width = 1500 @@ -11127,7 +11327,7 @@ Begin DesignProperties = Begin Extent = Top = 6 Left = 38 - Bottom = 136 + Bottom = 235 Right = 221 End DisplayFlags = 280 @@ -11277,6 +11477,140 @@ GO EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Costo extra dei servizi sul materiale (es ultrasuoni)', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'TABLE', @level1name = N'RawMatDet', @level2type = N'COLUMN', @level2name = N'ExtraServCost'; +GO +PRINT N'Creating [dbo].[v_selIncoterms].[MS_DiagramPaneCount]...'; + + +GO +EXECUTE sp_addextendedproperty @name = N'MS_DiagramPaneCount', @value = 1, @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selIncoterms'; + + +GO +PRINT N'Creating [dbo].[v_selIncoterms].[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 = "Incoterms" + Begin Extent = + Top = 6 + Left = 38 + Bottom = 119 + Right = 208 + End + DisplayFlags = 280 + TopColumn = 0 + End + End + End + Begin SQLPane = + End + Begin DataPane = + Begin ParameterDefaults = "" + End + Begin ColumnWidths = 9 + Width = 284 + Width = 1500 + Width = 5055 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + Width = 1500 + End + End + Begin CriteriaPane = + Begin ColumnWidths = 11 + Column = 1440 + Alias = 900 + Table = 1170 + Output = 720 + Append = 1400 + NewValue = 1170 + SortType = 1350 + SortOrder = 1410 + GroupBy = 1350 + Filter = 1350 + Or = 1350 + Or = 1350 + Or = 1350 + End + End +End +', @level0type = N'SCHEMA', @level0name = N'dbo', @level1type = N'VIEW', @level1name = N'v_selIncoterms'; + + GO PRINT N'Creating [dbo].[v_selCons].[MS_DiagramPaneCount]...'; diff --git a/C2P_Project/bin/Release/C2P_Project.dll b/C2P_Project/bin/Release/C2P_Project.dll index f66a772..3c80dee 100644 Binary files a/C2P_Project/bin/Release/C2P_Project.dll and b/C2P_Project/bin/Release/C2P_Project.dll differ diff --git a/VersGen/C2P.cs b/VersGen/C2P.cs index f550840..6678f34 100644 --- a/VersGen/C2P.cs +++ b/VersGen/C2P.cs @@ -5,7 +5,7 @@ using System.Reflection; -[assembly: AssemblyVersion("0.6.45.136")] -[assembly: AssemblyFileVersion("0.6.45.136")] +[assembly: AssemblyVersion("0.6.46.136")] +[assembly: AssemblyFileVersion("0.6.46.136")] [assembly: AssemblyCopyright("Proxima & Steamware © 2013-2014")] [assembly: AssemblyCompany("Steamware")] diff --git a/VersGen/C2P.tt b/VersGen/C2P.tt index 0f1f7a7..127e823 100644 --- a/VersGen/C2P.tt +++ b/VersGen/C2P.tt @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyVersion("0.6.45.<#= this.RevisionNumber #>")] -[assembly: AssemblyFileVersion("0.6.45.<#= this.RevisionNumber #>")] +[assembly: AssemblyVersion("0.6.46.<#= this.RevisionNumber #>")] +[assembly: AssemblyFileVersion("0.6.46.<#= this.RevisionNumber #>")] [assembly: AssemblyCopyright("Proxima & Steamware © 2013-<#= DateTime.Now.Year #>")] [assembly: AssemblyCompany("Steamware")] <#+