diff --git a/C2P/Quote.aspx.cs b/C2P/Quote.aspx.cs index 0c8e107..b1093b5 100644 --- a/C2P/Quote.aspx.cs +++ b/C2P/Quote.aspx.cs @@ -13,6 +13,16 @@ namespace C2P { mod_newQuote1.eh_newSearchData += mod_newQuote1_eh_newSearchData; mod_newQuote1.eh_newQuote += mod_newQuote1_eh_newQuote; + mod_QuoteList1.eh_loadReq += mod_QuoteList1_eh_loadReq; + } + /// + /// richeista load dati dell'offerta... + /// + /// + /// + void mod_QuoteList1_eh_loadReq(object sender, EventArgs e) + { + mod_newQuote1.loadSelData(); } void mod_newQuote1_eh_newQuote(object sender, EventArgs e) diff --git a/C2P/WebUserControls/mod_QuoteList.ascx b/C2P/WebUserControls/mod_QuoteList.ascx index bcf22f0..4516f28 100644 --- a/C2P/WebUserControls/mod_QuoteList.ascx +++ b/C2P/WebUserControls/mod_QuoteList.ascx @@ -92,7 +92,13 @@ <%----%> - + + + <%----%> + + + + @@ -148,15 +154,15 @@ - - - - + + + + - + - + diff --git a/C2P/WebUserControls/mod_QuoteList.ascx.cs b/C2P/WebUserControls/mod_QuoteList.ascx.cs index 26cf4fe..ed8532a 100644 --- a/C2P/WebUserControls/mod_QuoteList.ascx.cs +++ b/C2P/WebUserControls/mod_QuoteList.ascx.cs @@ -11,6 +11,11 @@ namespace C2P.WebUserControls { public partial class mod_QuoteList : System.Web.UI.UserControl { + + /// + public event EventHandler eh_loadReq; + protected void Page_Load(object sender, EventArgs e) { } @@ -30,12 +35,45 @@ namespace C2P.WebUserControls /// protected void grView_SelectedIndexChanged(object sender, EventArgs e) { - // ricalcolo! + // verifico parametri riga scelta string QuoteType = grView.SelectedDataKey["QuoteType"].ToString(); long CodQuote = Convert.ToInt64(grView.SelectedDataKey["CodQuote"]); int QuoteRev = Convert.ToInt16(grView.SelectedDataKey["QuoteRev"]); - // rimando a dettaglio! - Response.Redirect(string.Format("QuoteDet?QuoteType={0}&CodQuote={1}&QuoteRev={2}", QuoteType, CodQuote, QuoteRev)); + // verifico tipo di caricamento... + string _comando = ""; + if (SteamWare.memLayer.ML.isInSessionObject("nextObjCommand")) + { + _comando = SteamWare.memLayer.ML.StringSessionObj("nextObjCommand"); + SteamWare.memLayer.ML.emptySessionVal("nextObjCommand"); + } + switch (_comando) + { + case "load": + memLayer.ML.setSessionVal("QuoteType", QuoteType); + memLayer.ML.setSessionVal("CodQuote", CodQuote); + memLayer.ML.setSessionVal("QuoteRev", QuoteRev); + // sollevo evento + if (eh_loadReq!= null) + { + eh_loadReq(this, new EventArgs()); + } + break; + case "toDetail": + // rimando a dettaglio! + Response.Redirect(string.Format("QuoteDet?QuoteType={0}&CodQuote={1}&QuoteRev={2}", QuoteType, CodQuote, QuoteRev)); + break; + default: + break; + } + //if (_comando == "load") + //{ + // memLayer.ML.setSessionVal("QuoteType", QuoteType); + // memLayer.ML.setSessionVal("CodQuote", CodQuote); + // memLayer.ML.setSessionVal("QuoteRev", QuoteRev); + //} + //else + //{ + //} } /// /// Calcola css dato valore prezzo offerto vs importi full cost e min price @@ -88,5 +126,10 @@ namespace C2P.WebUserControls { doUpdate(); } + + protected void lbt_Command(object sender, CommandEventArgs e) + { + SteamWare.memLayer.ML.setSessionVal("nextObjCommand", ((LinkButton)sender).CommandArgument); + } } } \ No newline at end of file diff --git a/C2P/WebUserControls/mod_newQuote.ascx b/C2P/WebUserControls/mod_newQuote.ascx index 1872720..2e667aa 100644 --- a/C2P/WebUserControls/mod_newQuote.ascx +++ b/C2P/WebUserControls/mod_newQuote.ascx @@ -114,6 +114,15 @@ - +
+
+
+ +
+
+ +
+
+
diff --git a/C2P/WebUserControls/mod_newQuote.ascx.cs b/C2P/WebUserControls/mod_newQuote.ascx.cs index 9344eb3..e5084bb 100644 --- a/C2P/WebUserControls/mod_newQuote.ascx.cs +++ b/C2P/WebUserControls/mod_newQuote.ascx.cs @@ -5,6 +5,7 @@ using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SteamWare; +using C2P_Data; namespace C2P.WebUserControls { @@ -210,6 +211,57 @@ namespace C2P.WebUserControls { checkBtnNew(); } + /// + /// carica i dati selezionati (da chiave quote...) + /// + public void loadSelData() + { + string QuoteType = memLayer.ML.StringSessionObj("QuoteType"); + long CodQuote = memLayer.ML.IntSessionObj("CodQuote"); + int QuoteRev = memLayer.ML.IntSessionObj("QuoteRev"); + DS_Quotes.QuoteListRow riga = DtProxy.man.taQL.getByKey(QuoteType, CodQuote, QuoteRev)[0]; + DS_Quotes.QuoteRMRow rigaRM = DtProxy.man.taQRM.getByKey(QuoteType, CodQuote, QuoteRev, 1)[0]; + if (riga != null) + { + // imposto valori! + acCliente.selezione = riga.CodClient; + acCliente.valore = riga.CodClient; + acArticolo.selezione = riga.CodItem; + acArticolo.valore = riga.CodItem; + ddlConsegna.SelectedValue = riga.CodInco; + ddlLega.SelectedValue = riga.RawMat; + txtLotto.Text = riga.BatchQty.ToString(); + txtNote.Text = riga.Note; + txtBaseAl.Text = rigaRM.RawMatCost.ToString(); + txtExtraLega.Text = rigaRM.RawMatExtraCost.ToString(); + } + // update filtraggio + salvaRicerca(); + // check btn genera... + checkBtnNew(); + } + /// + /// reset dell'offerta + /// + /// + /// + protected void btnReset_Click(object sender, EventArgs e) + { + acCliente.selezione = ""; + acCliente.valore = ""; + acArticolo.selezione = ""; + acArticolo.valore = ""; + ddlConsegna.SelectedValue = ""; + ddlLega.SelectedValue = ""; + txtLotto.Text = ""; + txtNote.Text = ""; + txtBaseAl.Text = ""; + txtExtraLega.Text = ""; + // update filtraggio + salvaRicerca(); + // check btn genera... + checkBtnNew(); + } } } \ No newline at end of file diff --git a/C2P/WebUserControls/mod_newQuote.ascx.designer.cs b/C2P/WebUserControls/mod_newQuote.ascx.designer.cs index cf9bf10..20c6907 100644 --- a/C2P/WebUserControls/mod_newQuote.ascx.designer.cs +++ b/C2P/WebUserControls/mod_newQuote.ascx.designer.cs @@ -218,5 +218,14 @@ namespace C2P.WebUserControls { /// To modify move field declaration from designer file to code-behind file. /// protected global::System.Web.UI.WebControls.Button btnNew; + + /// + /// btnReset control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnReset; } } diff --git a/C2P/bin/C2P.dll b/C2P/bin/C2P.dll index 95f51c2..88d3be5 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 150809f..5a729d6 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 index d67db79..a7b1b7a 100644 Binary files a/C2P/bin/C2P_Data.pdb and b/C2P/bin/C2P_Data.pdb differ diff --git a/C2P/bin/SteamWare.dll b/C2P/bin/SteamWare.dll index eb0b2bf..ba4dabe 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 ca1be0a..56a7c14 100644 --- a/C2P_Data/DS_Quotes.Designer.cs +++ b/C2P_Data/DS_Quotes.Designer.cs @@ -568,6 +568,16 @@ namespace C2P_Data { private global::System.Data.DataColumn columnNote; + private global::System.Data.DataColumn columnPriceOff; + + private global::System.Data.DataColumn columnOrdDate; + + private global::System.Data.DataColumn columnOrdNum; + + private global::System.Data.DataColumn columnOrdRow; + + private global::System.Data.DataColumn columnOrdPrice; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public QuoteListDataTable() { @@ -697,6 +707,46 @@ namespace C2P_Data { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn PriceOffColumn { + get { + return this.columnPriceOff; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn OrdDateColumn { + get { + return this.columnOrdDate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn OrdNumColumn { + get { + return this.columnOrdNum; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn OrdRowColumn { + get { + return this.columnOrdRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn OrdPriceColumn { + get { + return this.columnOrdPrice; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Browsable(false)] @@ -734,7 +784,24 @@ namespace C2P_Data { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] - public QuoteListRow AddQuoteListRow(string QuoteType, long CodQuote, int QuoteRev, string CodClient, string CodItem, string CodItemGroup, string RawMat, decimal UnitWeight, int BatchQty, string CodInco, string KeyAM, string Note) { + public QuoteListRow AddQuoteListRow( + string QuoteType, + long CodQuote, + int QuoteRev, + string CodClient, + string CodItem, + string CodItemGroup, + string RawMat, + decimal UnitWeight, + int BatchQty, + string CodInco, + string KeyAM, + string Note, + decimal PriceOff, + System.DateTime OrdDate, + string OrdNum, + string OrdRow, + decimal OrdPrice) { QuoteListRow rowQuoteListRow = ((QuoteListRow)(this.NewRow())); object[] columnValuesArray = new object[] { QuoteType, @@ -748,7 +815,12 @@ namespace C2P_Data { BatchQty, CodInco, KeyAM, - Note}; + Note, + PriceOff, + OrdDate, + OrdNum, + OrdRow, + OrdPrice}; rowQuoteListRow.ItemArray = columnValuesArray; this.Rows.Add(rowQuoteListRow); return rowQuoteListRow; @@ -792,6 +864,11 @@ namespace C2P_Data { this.columnCodInco = base.Columns["CodInco"]; this.columnKeyAM = base.Columns["KeyAM"]; this.columnNote = base.Columns["Note"]; + this.columnPriceOff = base.Columns["PriceOff"]; + this.columnOrdDate = base.Columns["OrdDate"]; + this.columnOrdNum = base.Columns["OrdNum"]; + this.columnOrdRow = base.Columns["OrdRow"]; + this.columnOrdPrice = base.Columns["OrdPrice"]; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -821,6 +898,16 @@ namespace C2P_Data { base.Columns.Add(this.columnKeyAM); this.columnNote = new global::System.Data.DataColumn("Note", typeof(string), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnNote); + this.columnPriceOff = new global::System.Data.DataColumn("PriceOff", typeof(decimal), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPriceOff); + this.columnOrdDate = new global::System.Data.DataColumn("OrdDate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnOrdDate); + this.columnOrdNum = new global::System.Data.DataColumn("OrdNum", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnOrdNum); + this.columnOrdRow = new global::System.Data.DataColumn("OrdRow", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnOrdRow); + this.columnOrdPrice = new global::System.Data.DataColumn("OrdPrice", typeof(decimal), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnOrdPrice); this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { this.columnQuoteType, this.columnCodQuote, @@ -845,6 +932,12 @@ namespace C2P_Data { this.columnKeyAM.MaxLength = 101; this.columnNote.AllowDBNull = false; this.columnNote.MaxLength = 2500; + this.columnPriceOff.AllowDBNull = false; + this.columnOrdNum.AllowDBNull = false; + this.columnOrdNum.MaxLength = 50; + this.columnOrdRow.AllowDBNull = false; + this.columnOrdRow.MaxLength = 50; + this.columnOrdPrice.AllowDBNull = false; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -4969,6 +5062,66 @@ namespace C2P_Data { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public decimal PriceOff { + get { + return ((decimal)(this[this.tableQuoteList.PriceOffColumn])); + } + set { + this[this.tableQuoteList.PriceOffColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public System.DateTime OrdDate { + get { + try { + return ((global::System.DateTime)(this[this.tableQuoteList.OrdDateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("The value for column \'OrdDate\' in table \'QuoteList\' is DBNull.", e); + } + } + set { + this[this.tableQuoteList.OrdDateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public string OrdNum { + get { + return ((string)(this[this.tableQuoteList.OrdNumColumn])); + } + set { + this[this.tableQuoteList.OrdNumColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public string OrdRow { + get { + return ((string)(this[this.tableQuoteList.OrdRowColumn])); + } + set { + this[this.tableQuoteList.OrdRowColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public decimal OrdPrice { + get { + return ((decimal)(this[this.tableQuoteList.OrdPriceColumn])); + } + set { + this[this.tableQuoteList.OrdPriceColumn] = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public bool IsKeyAMNull() { @@ -4981,6 +5134,18 @@ namespace C2P_Data { this[this.tableQuoteList.KeyAMColumn] = global::System.Convert.DBNull; } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public bool IsOrdDateNull() { + return this.IsNull(this.tableQuoteList.OrdDateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public void SetOrdDateNull() { + this[this.tableQuoteList.OrdDateColumn] = global::System.Convert.DBNull; + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public QuoteRMRow[] GetQuoteRMRows() { @@ -8035,10 +8200,15 @@ namespace C2P_Data.DS_QuotesTableAdapters { tableMapping.ColumnMappings.Add("CodInco", "CodInco"); tableMapping.ColumnMappings.Add("KeyAM", "KeyAM"); tableMapping.ColumnMappings.Add("Note", "Note"); + tableMapping.ColumnMappings.Add("PriceOff", "PriceOff"); + tableMapping.ColumnMappings.Add("OrdDate", "OrdDate"); + tableMapping.ColumnMappings.Add("OrdNum", "OrdNum"); + tableMapping.ColumnMappings.Add("OrdRow", "OrdRow"); + tableMapping.ColumnMappings.Add("OrdPrice", "OrdPrice"); this._adapter.TableMappings.Add(tableMapping); this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = @"DELETE FROM [dbo].[QuoteList] WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note))"; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [dbo].[QuoteList] WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note) AND ([PriceOff] = @Original_PriceOff) AND ((@IsNull_OrdDate = 1 AND [OrdDate] IS NULL) OR ([OrdDate] = @Original_OrdDate)) AND ([OrdNum] = @Original_OrdNum) AND ([OrdRow] = @Original_OrdRow) AND ([OrdPrice] = @Original_OrdPrice))"; this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QuoteType", global::System.Data.SqlDbType.Char, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QuoteType", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodQuote", global::System.Data.SqlDbType.BigInt, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodQuote", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); @@ -8052,10 +8222,16 @@ namespace C2P_Data.DS_QuotesTableAdapters { this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodInco", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodInco", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_KeyAM", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "KeyAM", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Note", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Note", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PriceOff", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "PriceOff", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_OrdDate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdDate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdDate", global::System.Data.SqlDbType.Date, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdDate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdNum", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdNum", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdRow", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdRow", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdPrice", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "OrdPrice", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = @"INSERT INTO [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev], [CodClient], [CodItem], [CodItemGroup], [RawMat], [UnitWeight], [BatchQty], [CodInco], [Note]) VALUES (@QuoteType, @CodQuote, @QuoteRev, @CodClient, @CodItem, @CodItemGroup, @RawMat, @UnitWeight, @BatchQty, @CodInco, @Note); -SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType)"; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev], [CodClient], [CodItem], [CodItemGroup], [RawMat], [UnitWeight], [BatchQty], [CodInco], [Note], [PriceOff], [OrdDate], [OrdNum], [OrdRow], [OrdPrice]) VALUES (@QuoteType, @CodQuote, @QuoteRev, @CodClient, @CodItem, @CodItemGroup, @RawMat, @UnitWeight, @BatchQty, @CodInco, @Note, @PriceOff, @OrdDate, @OrdNum, @OrdRow, @OrdPrice); +SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType)"; this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteType", global::System.Data.SqlDbType.Char, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QuoteType", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodQuote", global::System.Data.SqlDbType.BigInt, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodQuote", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); @@ -8068,10 +8244,15 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchQty", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BatchQty", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodInco", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodInco", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Note", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Note", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PriceOff", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "PriceOff", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdDate", global::System.Data.SqlDbType.Date, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdDate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdNum", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdNum", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdRow", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdRow", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdPrice", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "OrdPrice", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE [dbo].[QuoteList] SET [QuoteType] = @QuoteType, [CodQuote] = @CodQuote, [QuoteRev] = @QuoteRev, [CodClient] = @CodClient, [CodItem] = @CodItem, [CodItemGroup] = @CodItemGroup, [RawMat] = @RawMat, [UnitWeight] = @UnitWeight, [BatchQty] = @BatchQty, [CodInco] = @CodInco, [Note] = @Note WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note)); -SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType)"; + this._adapter.UpdateCommand.CommandText = @"UPDATE [dbo].[QuoteList] SET [QuoteType] = @QuoteType, [CodQuote] = @CodQuote, [QuoteRev] = @QuoteRev, [CodClient] = @CodClient, [CodItem] = @CodItem, [CodItemGroup] = @CodItemGroup, [RawMat] = @RawMat, [UnitWeight] = @UnitWeight, [BatchQty] = @BatchQty, [CodInco] = @CodInco, [Note] = @Note, [PriceOff] = @PriceOff, [OrdDate] = @OrdDate, [OrdNum] = @OrdNum, [OrdRow] = @OrdRow, [OrdPrice] = @OrdPrice WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note) AND ([PriceOff] = @Original_PriceOff) AND ((@IsNull_OrdDate = 1 AND [OrdDate] IS NULL) OR ([OrdDate] = @Original_OrdDate)) AND ([OrdNum] = @Original_OrdNum) AND ([OrdRow] = @Original_OrdRow) AND ([OrdPrice] = @Original_OrdPrice)); +SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType)"; this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteType", global::System.Data.SqlDbType.Char, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QuoteType", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodQuote", global::System.Data.SqlDbType.BigInt, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodQuote", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); @@ -8084,6 +8265,11 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BatchQty", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BatchQty", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodInco", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodInco", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Note", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Note", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PriceOff", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "PriceOff", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdDate", global::System.Data.SqlDbType.Date, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdDate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdNum", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdNum", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdRow", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdRow", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@OrdPrice", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "OrdPrice", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QuoteType", global::System.Data.SqlDbType.Char, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QuoteType", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodQuote", global::System.Data.SqlDbType.BigInt, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodQuote", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QuoteRev", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QuoteRev", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); @@ -8096,6 +8282,12 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CodInco", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CodInco", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_KeyAM", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "KeyAM", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Note", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Note", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PriceOff", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "PriceOff", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_OrdDate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdDate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdDate", global::System.Data.SqlDbType.Date, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdDate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdNum", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdNum", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdRow", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "OrdRow", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_OrdPrice", global::System.Data.SqlDbType.Decimal, 0, global::System.Data.ParameterDirection.Input, 9, 6, "OrdPrice", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -8108,34 +8300,41 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, [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[3]; + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[4]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, U" + - "nitWeight, BatchQty, CodInco, KeyAM, Note FROM dbo.QuoteList"; + this._commandCollection[0].CommandText = "SELECT * FROM dbo.QuoteList"; this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[1].Connection = this.Connection; - this._commandCollection[1].CommandText = "dbo.stp_QL_insNew"; + this._commandCollection[1].CommandText = "dbo.stp_QL_getByKey"; this._commandCollection[1].CommandType = global::System.Data.CommandType.StoredProcedure; this._commandCollection[1].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[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteType", global::System.Data.SqlDbType.Char, 1, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodClient", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodItem", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RawMat", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RawMatCost", global::System.Data.SqlDbType.Decimal, 9, global::System.Data.ParameterDirection.Input, 18, 6, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RawMatExtraCost", global::System.Data.SqlDbType.Decimal, 9, global::System.Data.ParameterDirection.Input, 18, 6, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[1].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[1].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[1].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[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodQuote", global::System.Data.SqlDbType.BigInt, 8, global::System.Data.ParameterDirection.Input, 19, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteRev", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[2].Connection = this.Connection; - this._commandCollection[2].CommandText = "dbo.stp_QL_update"; + this._commandCollection[2].CommandText = "dbo.stp_QL_insNew"; this._commandCollection[2].CommandType = global::System.Data.CommandType.StoredProcedure; this._commandCollection[2].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[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteType", global::System.Data.SqlDbType.Char, 1, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodQuote", global::System.Data.SqlDbType.BigInt, 8, global::System.Data.ParameterDirection.Input, 19, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteRev", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodClient", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodItem", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RawMat", global::System.Data.SqlDbType.NVarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RawMatCost", global::System.Data.SqlDbType.Decimal, 9, global::System.Data.ParameterDirection.Input, 18, 6, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RawMatExtraCost", global::System.Data.SqlDbType.Decimal, 9, global::System.Data.ParameterDirection.Input, 18, 6, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].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[2].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[2].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[3] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[3].Connection = this.Connection; + this._commandCollection[3].CommandText = "dbo.stp_QL_update"; + this._commandCollection[3].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[3].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[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteType", global::System.Data.SqlDbType.Char, 1, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodQuote", global::System.Data.SqlDbType.BigInt, 8, global::System.Data.ParameterDirection.Input, 19, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteRev", 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()] @@ -8162,6 +8361,35 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, 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.QuoteListDataTable getByKey(string QuoteType, global::System.Nullable CodQuote, global::System.Nullable QuoteRev) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((QuoteType == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(QuoteType)); + } + if ((CodQuote.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[2].Value = ((long)(CodQuote.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = global::System.DBNull.Value; + } + if ((QuoteRev.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[3].Value = ((int)(QuoteRev.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = global::System.DBNull.Value; + } + DS_Quotes.QuoteListDataTable dataTable = new DS_Quotes.QuoteListDataTable(); + 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")] @@ -8195,7 +8423,24 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, [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.Delete, true)] - public virtual int Delete(string Original_QuoteType, long Original_CodQuote, int Original_QuoteRev, string Original_CodClient, string Original_CodItem, string Original_CodItemGroup, string Original_RawMat, decimal Original_UnitWeight, int Original_BatchQty, string Original_CodInco, string Original_KeyAM, string Original_Note) { + public virtual int Delete( + string Original_QuoteType, + long Original_CodQuote, + int Original_QuoteRev, + string Original_CodClient, + string Original_CodItem, + string Original_CodItemGroup, + string Original_RawMat, + decimal Original_UnitWeight, + int Original_BatchQty, + string Original_CodInco, + string Original_KeyAM, + string Original_Note, + decimal Original_PriceOff, + global::System.Nullable Original_OrdDate, + string Original_OrdNum, + string Original_OrdRow, + decimal Original_OrdPrice) { if ((Original_QuoteType == null)) { throw new global::System.ArgumentNullException("Original_QuoteType"); } @@ -8248,6 +8493,28 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, else { this.Adapter.DeleteCommand.Parameters[11].Value = ((string)(Original_Note)); } + this.Adapter.DeleteCommand.Parameters[12].Value = ((decimal)(Original_PriceOff)); + if ((Original_OrdDate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[14].Value = ((System.DateTime)(Original_OrdDate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((Original_OrdNum == null)) { + throw new global::System.ArgumentNullException("Original_OrdNum"); + } + else { + this.Adapter.DeleteCommand.Parameters[15].Value = ((string)(Original_OrdNum)); + } + if ((Original_OrdRow == null)) { + throw new global::System.ArgumentNullException("Original_OrdRow"); + } + else { + this.Adapter.DeleteCommand.Parameters[16].Value = ((string)(Original_OrdRow)); + } + this.Adapter.DeleteCommand.Parameters[17].Value = ((decimal)(Original_OrdPrice)); global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) != global::System.Data.ConnectionState.Open)) { @@ -8268,7 +8535,23 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, [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.Insert, true)] - public virtual int Insert(string QuoteType, long CodQuote, int QuoteRev, string CodClient, string CodItem, string CodItemGroup, string RawMat, decimal UnitWeight, int BatchQty, string CodInco, string Note) { + public virtual int Insert( + string QuoteType, + long CodQuote, + int QuoteRev, + string CodClient, + string CodItem, + string CodItemGroup, + string RawMat, + decimal UnitWeight, + int BatchQty, + string CodInco, + string Note, + decimal PriceOff, + global::System.Nullable OrdDate, + string OrdNum, + string OrdRow, + decimal OrdPrice) { if ((QuoteType == null)) { throw new global::System.ArgumentNullException("QuoteType"); } @@ -8315,6 +8598,26 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, else { this.Adapter.InsertCommand.Parameters[10].Value = ((string)(Note)); } + this.Adapter.InsertCommand.Parameters[11].Value = ((decimal)(PriceOff)); + if ((OrdDate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[12].Value = ((System.DateTime)(OrdDate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((OrdNum == null)) { + throw new global::System.ArgumentNullException("OrdNum"); + } + else { + this.Adapter.InsertCommand.Parameters[13].Value = ((string)(OrdNum)); + } + if ((OrdRow == null)) { + throw new global::System.ArgumentNullException("OrdRow"); + } + else { + this.Adapter.InsertCommand.Parameters[14].Value = ((string)(OrdRow)); + } + this.Adapter.InsertCommand.Parameters[15].Value = ((decimal)(OrdPrice)); global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) != global::System.Data.ConnectionState.Open)) { @@ -8347,6 +8650,11 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, int BatchQty, string CodInco, string Note, + decimal PriceOff, + global::System.Nullable OrdDate, + string OrdNum, + string OrdRow, + decimal OrdPrice, string Original_QuoteType, long Original_CodQuote, int Original_QuoteRev, @@ -8358,7 +8666,12 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, int Original_BatchQty, string Original_CodInco, string Original_KeyAM, - string Original_Note) { + string Original_Note, + decimal Original_PriceOff, + global::System.Nullable Original_OrdDate, + string Original_OrdNum, + string Original_OrdRow, + decimal Original_OrdPrice) { if ((QuoteType == null)) { throw new global::System.ArgumentNullException("QuoteType"); } @@ -8405,58 +8718,100 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, else { this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Note)); } + this.Adapter.UpdateCommand.Parameters[11].Value = ((decimal)(PriceOff)); + if ((OrdDate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[12].Value = ((System.DateTime)(OrdDate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((OrdNum == null)) { + throw new global::System.ArgumentNullException("OrdNum"); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(OrdNum)); + } + if ((OrdRow == null)) { + throw new global::System.ArgumentNullException("OrdRow"); + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(OrdRow)); + } + this.Adapter.UpdateCommand.Parameters[15].Value = ((decimal)(OrdPrice)); if ((Original_QuoteType == null)) { throw new global::System.ArgumentNullException("Original_QuoteType"); } else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(Original_QuoteType)); + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_QuoteType)); } - this.Adapter.UpdateCommand.Parameters[12].Value = ((long)(Original_CodQuote)); - this.Adapter.UpdateCommand.Parameters[13].Value = ((int)(Original_QuoteRev)); + this.Adapter.UpdateCommand.Parameters[17].Value = ((long)(Original_CodQuote)); + this.Adapter.UpdateCommand.Parameters[18].Value = ((int)(Original_QuoteRev)); if ((Original_CodClient == null)) { throw new global::System.ArgumentNullException("Original_CodClient"); } else { - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_CodClient)); + this.Adapter.UpdateCommand.Parameters[19].Value = ((string)(Original_CodClient)); } if ((Original_CodItem == null)) { throw new global::System.ArgumentNullException("Original_CodItem"); } else { - this.Adapter.UpdateCommand.Parameters[15].Value = ((string)(Original_CodItem)); + this.Adapter.UpdateCommand.Parameters[20].Value = ((string)(Original_CodItem)); } if ((Original_CodItemGroup == null)) { throw new global::System.ArgumentNullException("Original_CodItemGroup"); } else { - this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_CodItemGroup)); + this.Adapter.UpdateCommand.Parameters[21].Value = ((string)(Original_CodItemGroup)); } if ((Original_RawMat == null)) { throw new global::System.ArgumentNullException("Original_RawMat"); } else { - this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(Original_RawMat)); + this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(Original_RawMat)); } - this.Adapter.UpdateCommand.Parameters[18].Value = ((decimal)(Original_UnitWeight)); - this.Adapter.UpdateCommand.Parameters[19].Value = ((int)(Original_BatchQty)); + this.Adapter.UpdateCommand.Parameters[23].Value = ((decimal)(Original_UnitWeight)); + this.Adapter.UpdateCommand.Parameters[24].Value = ((int)(Original_BatchQty)); if ((Original_CodInco == null)) { throw new global::System.ArgumentNullException("Original_CodInco"); } else { - this.Adapter.UpdateCommand.Parameters[20].Value = ((string)(Original_CodInco)); + this.Adapter.UpdateCommand.Parameters[25].Value = ((string)(Original_CodInco)); } if ((Original_KeyAM == null)) { throw new global::System.ArgumentNullException("Original_KeyAM"); } else { - this.Adapter.UpdateCommand.Parameters[21].Value = ((string)(Original_KeyAM)); + this.Adapter.UpdateCommand.Parameters[26].Value = ((string)(Original_KeyAM)); } if ((Original_Note == null)) { throw new global::System.ArgumentNullException("Original_Note"); } else { - this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(Original_Note)); + this.Adapter.UpdateCommand.Parameters[27].Value = ((string)(Original_Note)); } + this.Adapter.UpdateCommand.Parameters[28].Value = ((decimal)(Original_PriceOff)); + if ((Original_OrdDate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[30].Value = ((System.DateTime)(Original_OrdDate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[30].Value = global::System.DBNull.Value; + } + if ((Original_OrdNum == null)) { + throw new global::System.ArgumentNullException("Original_OrdNum"); + } + else { + this.Adapter.UpdateCommand.Parameters[31].Value = ((string)(Original_OrdNum)); + } + if ((Original_OrdRow == null)) { + throw new global::System.ArgumentNullException("Original_OrdRow"); + } + else { + this.Adapter.UpdateCommand.Parameters[32].Value = ((string)(Original_OrdRow)); + } + this.Adapter.UpdateCommand.Parameters[33].Value = ((decimal)(Original_OrdPrice)); global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) != global::System.Data.ConnectionState.Open)) { @@ -8486,6 +8841,11 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, int BatchQty, string CodInco, string Note, + decimal PriceOff, + global::System.Nullable OrdDate, + string OrdNum, + string OrdRow, + decimal OrdPrice, string Original_QuoteType, long Original_CodQuote, int Original_QuoteRev, @@ -8497,15 +8857,20 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, int Original_BatchQty, string Original_CodInco, string Original_KeyAM, - string Original_Note) { - return this.Update(Original_QuoteType, Original_CodQuote, Original_QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, Note, Original_QuoteType, Original_CodQuote, Original_QuoteRev, Original_CodClient, Original_CodItem, Original_CodItemGroup, Original_RawMat, Original_UnitWeight, Original_BatchQty, Original_CodInco, Original_KeyAM, Original_Note); + string Original_Note, + decimal Original_PriceOff, + global::System.Nullable Original_OrdDate, + string Original_OrdNum, + string Original_OrdRow, + decimal Original_OrdPrice) { + return this.Update(Original_QuoteType, Original_CodQuote, Original_QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice, Original_QuoteType, Original_CodQuote, Original_QuoteRev, Original_CodClient, Original_CodItem, Original_CodItemGroup, Original_RawMat, Original_UnitWeight, Original_BatchQty, Original_CodInco, Original_KeyAM, Original_Note, Original_PriceOff, Original_OrdDate, Original_OrdNum, Original_OrdRow, Original_OrdPrice); } [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")] public virtual int stp_QL_insNew(string QuoteType, string CodClient, string CodItem, string RawMat, global::System.Nullable RawMatCost, global::System.Nullable RawMatExtraCost, global::System.Nullable BatchQty, string CodInco, string Note) { - global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[1]; + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[2]; if ((QuoteType == null)) { command.Parameters[1].Value = global::System.DBNull.Value; } @@ -8581,7 +8946,7 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] public virtual int stp_QL_update(string QuoteType, global::System.Nullable CodQuote, global::System.Nullable QuoteRev) { - global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[2]; + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[3]; if ((QuoteType == null)) { command.Parameters[1].Value = global::System.DBNull.Value; } @@ -8826,12 +9191,21 @@ SELECT QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost [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[1]; + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[2]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; this._commandCollection[0].CommandText = "SELECT QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost," + " CodPackag, FCR, FYR, FSR, valid FROM dbo.QuoteRM"; this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "dbo.stp_QRM_getByKey"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.StoredProcedure; + this._commandCollection[1].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[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteType", global::System.Data.SqlDbType.Char, 1, global::System.Data.ParameterDirection.Input, 0, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CodQuote", global::System.Data.SqlDbType.BigInt, 8, global::System.Data.ParameterDirection.Input, 19, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QuoteRev", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 10, 0, null, global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@NumRM", 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()] @@ -8858,6 +9232,41 @@ SELECT QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost 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.QuoteRMDataTable getByKey(string QuoteType, global::System.Nullable CodQuote, global::System.Nullable QuoteRev, global::System.Nullable NumRM) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((QuoteType == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(QuoteType)); + } + if ((CodQuote.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[2].Value = ((long)(CodQuote.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = global::System.DBNull.Value; + } + if ((QuoteRev.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[3].Value = ((int)(QuoteRev.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((NumRM.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[4].Value = ((int)(NumRM.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[4].Value = global::System.DBNull.Value; + } + DS_Quotes.QuoteRMDataTable dataTable = new DS_Quotes.QuoteRMDataTable(); + 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 09449b1..9e472b7 100644 --- a/C2P_Data/DS_Quotes.xsd +++ b/C2P_Data/DS_Quotes.xsd @@ -12,7 +12,7 @@ - DELETE FROM [dbo].[QuoteList] WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note)) + DELETE FROM [dbo].[QuoteList] WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note) AND ([PriceOff] = @Original_PriceOff) AND ((@IsNull_OrdDate = 1 AND [OrdDate] IS NULL) OR ([OrdDate] = @Original_OrdDate)) AND ([OrdNum] = @Original_OrdNum) AND ([OrdRow] = @Original_OrdRow) AND ([OrdPrice] = @Original_OrdPrice)) @@ -26,13 +26,19 @@ + + + + + + - INSERT INTO [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev], [CodClient], [CodItem], [CodItemGroup], [RawMat], [UnitWeight], [BatchQty], [CodInco], [Note]) VALUES (@QuoteType, @CodQuote, @QuoteRev, @CodClient, @CodItem, @CodItemGroup, @RawMat, @UnitWeight, @BatchQty, @CodInco, @Note); -SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType) + INSERT INTO [dbo].[QuoteList] ([QuoteType], [CodQuote], [QuoteRev], [CodClient], [CodItem], [CodItemGroup], [RawMat], [UnitWeight], [BatchQty], [CodInco], [Note], [PriceOff], [OrdDate], [OrdNum], [OrdRow], [OrdPrice]) VALUES (@QuoteType, @CodQuote, @QuoteRev, @CodClient, @CodItem, @CodItemGroup, @RawMat, @UnitWeight, @BatchQty, @CodInco, @Note, @PriceOff, @OrdDate, @OrdNum, @OrdRow, @OrdPrice); +SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType) @@ -45,19 +51,24 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, + + + + + - - SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note FROM dbo.QuoteList + + SELECT * FROM dbo.QuoteList - UPDATE [dbo].[QuoteList] SET [QuoteType] = @QuoteType, [CodQuote] = @CodQuote, [QuoteRev] = @QuoteRev, [CodClient] = @CodClient, [CodItem] = @CodItem, [CodItemGroup] = @CodItemGroup, [RawMat] = @RawMat, [UnitWeight] = @UnitWeight, [BatchQty] = @BatchQty, [CodInco] = @CodInco, [Note] = @Note WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note)); -SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType) + UPDATE [dbo].[QuoteList] SET [QuoteType] = @QuoteType, [CodQuote] = @CodQuote, [QuoteRev] = @QuoteRev, [CodClient] = @CodClient, [CodItem] = @CodItem, [CodItemGroup] = @CodItemGroup, [RawMat] = @RawMat, [UnitWeight] = @UnitWeight, [BatchQty] = @BatchQty, [CodInco] = @CodInco, [Note] = @Note, [PriceOff] = @PriceOff, [OrdDate] = @OrdDate, [OrdNum] = @OrdNum, [OrdRow] = @OrdRow, [OrdPrice] = @OrdPrice WHERE (([QuoteType] = @Original_QuoteType) AND ([CodQuote] = @Original_CodQuote) AND ([QuoteRev] = @Original_QuoteRev) AND ([CodClient] = @Original_CodClient) AND ([CodItem] = @Original_CodItem) AND ([CodItemGroup] = @Original_CodItemGroup) AND ([RawMat] = @Original_RawMat) AND ([UnitWeight] = @Original_UnitWeight) AND ([BatchQty] = @Original_BatchQty) AND ([CodInco] = @Original_CodInco) AND ([KeyAM] = @Original_KeyAM) AND ([Note] = @Original_Note) AND ([PriceOff] = @Original_PriceOff) AND ((@IsNull_OrdDate = 1 AND [OrdDate] IS NULL) OR ([OrdDate] = @Original_OrdDate)) AND ([OrdNum] = @Original_OrdNum) AND ([OrdRow] = @Original_OrdRow) AND ([OrdPrice] = @Original_OrdPrice)); +SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, UnitWeight, BatchQty, CodInco, KeyAM, Note, PriceOff, OrdDate, OrdNum, OrdRow, OrdPrice FROM QuoteList WHERE (CodQuote = @CodQuote) AND (QuoteRev = @QuoteRev) AND (QuoteType = @QuoteType) @@ -70,6 +81,11 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, + + + + + @@ -82,6 +98,12 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, + + + + + + @@ -100,8 +122,26 @@ SELECT QuoteType, CodQuote, QuoteRev, CodClient, CodItem, CodItemGroup, RawMat, + + + + + + + + + dbo.stp_QL_getByKey + + + + + + + + + @@ -232,7 +272,22 @@ SELECT QuoteType, CodQuote, QuoteRev, NumRM, RawMat, RawMatCost, RawMatExtraCost - + + + + + dbo.stp_QRM_getByKey + + + + + + + + + + + @@ -876,6 +931,23 @@ SELECT QuoteType, CodQuote, QuoteRev, NumEx, ProcessNum, CodPlant, Class01, Clas + + + + + + + + + + + + + + + + + diff --git a/C2P_Data/DS_Quotes.xss b/C2P_Data/DS_Quotes.xss index 07b596b..c8b9c41 100644 --- a/C2P_Data/DS_Quotes.xss +++ b/C2P_Data/DS_Quotes.xss @@ -6,11 +6,11 @@ --> - - + + - + @@ -22,7 +22,7 @@ 280 - 322 + 386 280 @@ -43,7 +43,7 @@ 645 - 167 + 129 645 @@ -58,19 +58,19 @@ - 562 - 510 + 570 + 586 - 562 - 551 + 570 + 665 - 718 + 762 430 diff --git a/C2P_Data/DtProxy.cs b/C2P_Data/DtProxy.cs index c479c98..4f9d83a 100644 --- a/C2P_Data/DtProxy.cs +++ b/C2P_Data/DtProxy.cs @@ -24,6 +24,7 @@ namespace C2P_Data protected virtual void avvioTableAdapters() { taQL = new DS_QuotesTableAdapters.QuoteListTableAdapter(); + taQRM = new DS_QuotesTableAdapters.QuoteRMTableAdapter(); taVSCli = new DS_UtilityTableAdapters.v_selClientTableAdapter(); taVSItm = new DS_UtilityTableAdapters.v_selItemsTableAdapter(); taVSRM = new DS_UtilityTableAdapters.v_selRawMatTableAdapter(); @@ -36,6 +37,7 @@ namespace C2P_Data string connStr = memLayer.ML.confReadString("C2PConnectionString"); // connections del db vocabolario taQL.Connection.ConnectionString = connStr; + taQRM.Connection.ConnectionString = connStr; taVSCli.Connection.ConnectionString = connStr; taVSItm.Connection.ConnectionString = connStr; taVSRM.Connection.ConnectionString = connStr; @@ -46,6 +48,7 @@ namespace C2P_Data #region area public public DS_QuotesTableAdapters.QuoteListTableAdapter taQL; + public DS_QuotesTableAdapters.QuoteRMTableAdapter taQRM; public DS_UtilityTableAdapters.v_selClientTableAdapter taVSCli; public DS_UtilityTableAdapters.v_selItemsTableAdapter taVSItm; public DS_UtilityTableAdapters.v_selRawMatTableAdapter taVSRM; diff --git a/C2P_Project/obj/Debug/C2P_DB.sqlproj.FileListAbsolute.txt b/C2P_Project/obj/Debug/C2P_DB.sqlproj.FileListAbsolute.txt index 8ed8325..f7d06c7 100644 --- a/C2P_Project/obj/Debug/C2P_DB.sqlproj.FileListAbsolute.txt +++ b/C2P_Project/obj/Debug/C2P_DB.sqlproj.FileListAbsolute.txt @@ -1,9 +1,5 @@ C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\bin\Debug\C2P_DB.dacpac C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\bin\Debug\C2P_Project.dll C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\bin\Debug\C2P_Project.pdb -C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\obj\Debug\Model.xml -C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\obj\Debug\refactor.xml -C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\obj\Debug\postdeploy.sql -C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\obj\Debug\predeploy.sql C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\obj\Debug\C2P_Project.dll C:\Users\samuele\Documents\Visual Studio 2012\Projects\C2P\C2P_Project\obj\Debug\C2P_Project.pdb diff --git a/C2P_Project/obj/Debug/C2P_Project.dll b/C2P_Project/obj/Debug/C2P_Project.dll index 563d58d..fb81909 100644 Binary files a/C2P_Project/obj/Debug/C2P_Project.dll and b/C2P_Project/obj/Debug/C2P_Project.dll differ diff --git a/C2P_Project/obj/Debug/Model.xml b/C2P_Project/obj/Debug/Model.xml deleted file mode 100644 index ecc13ed..0000000 --- a/C2P_Project/obj/Debug/Model.xml +++ /dev/null @@ -1,38116 +0,0 @@ - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0) - -- primo tentativo: cerco il package dato SIA cliente che ITEM - BEGIN - SELECT TOP 1 @output = CodPackag - FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem - ORDER BY TotQta DESC - END - ELSE - -- secondo tentativo: se non lo trovo cerco per SOLO ITEM - BEGIN - SELECT TOP 1 @output = CodPackag - FROM Package2Item WHERE CodItem = @CodItem - ORDER BY TotQta DESC - END - - RETURN @output - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0) - -- primo tentativo: cerco il package dato SIA cliente che ITEM - BEGIN - INSERT @Table - SELECT TOP 1 CodItem, CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata - ,'Item-Client-Package', @CodItem + '-' + @CodClient + '-' + CodPackag - FROM Package2ItemClient WHERE CodClient = @CodClient AND CodItem = @CodItem - ORDER BY TotQta DESC - END - ELSE IF EXISTS ( SELECT * FROM Package2Item WHERE CodItem = @CodItem ) - -- secondo tentativo: se non lo trovo cerco per SOLO ITEM - BEGIN - INSERT @Table - SELECT TOP 1 CodItem, 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata - ,'Item-Package', @CodItem + '-' + CodPackag - FROM Package2Item WHERE CodItem = @CodItem - ORDER BY TotQta DESC - END - ELSE - -- secondo tentativo: se non lo trovo cerco per SOLO ITEM - BEGIN - INSERT @Table - SELECT TOP 1 'ND', 'ND' AS CodClient , CodPackag, TotQta, Weight, Tare, NumImb, Durata - ,'Package', CodPackag - FROM dbo.Package2 WHERE CodPackag = 0 - END - - RETURN -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @separator - SET @str_out = @str_in + @separator ; - ELSE - SET @str_out = @str_in ; - - -- calcolo il numero di elementi della nella stringa - SET @Occurrences = ( (DATALENGTH( REPLACE(@str_out, @separator, @separator+'#')) - DATALENGTH(@str_out)) ) / 2 - - -- se l'elemento richiesto esiste proseguo altrimenti ritorno NULL - IF @Occurrences >= @PosizValue AND @PosizValue <> 0 - BEGIN - - SET @tmpStr = @str_out ; - SET @Counter = 1 ; - - WHILE @Counter <= @PosizValue - BEGIN - SET @Counter = @Counter + 1 ; - SET @str_out = SUBSTRING( @tmpStr, 1, CHARINDEX(@separator,@tmpStr) - 1) ; - -- metto via il resto della stringa - SET @tmpStr = SUBSTRING( @tmpStr, CHARINDEX(@separator,@tmpStr) + DATALENGTH(@separator)/2, 4000) ; - - IF DATALENGTH(@tmpStr) = 0 - BREAK - END - - -- pulisco da caratteri NON voluti - --SET @str_out = REPLACE(@str_out, char(13), '') ; -- carriage return - --SET @str_out = REPLACE(@str_out, char(10), '') ; -- line feed - --SET @str_out = REPLACE(@str_out, char(9), '') ; -- tab - --SET @str_out = LTRIM ( RTRIM (@str_out) ) ; -- blank - END - ELSE - SET @str_out = NULL ; - - RETURN @str_out - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0) - -- primo tentativo: cerco il package dato SIA Cliente che Item che Package - BEGIN - SELECT TOP 1 @Weight = [Weight], @Tare = Tare - FROM Package2ItemClient WHERE CodItem = @CodItem AND CodClient = @CodClient AND CodPackag = @CodPackag - ORDER BY TotQta DESC - END - ELSE - -- secondo tentativo: se non lo trovo cerco per SOLO ITEM e package - BEGIN - SELECT @trovati = COUNT(*) FROM Package2Item WHERE CodItem = @CodItem AND CodPackag = @CodPackag - IF(@trovati > 0) - BEGIN - SELECT TOP 1 @Weight = [Weight], @Tare = Tare - FROM Package2Item WHERE CodItem = @CodItem AND CodPackag = @CodPackag - ORDER BY TotQta DESC - END - ELSE - BEGIN - SELECT @Weight = [Weight], @Tare = Tare - FROM Package2 WHERE CodPackag = @CodPackag - END - END - - - -- faccio ultimi calcoli! - SELECT @PackCost = @RMCost / @Weight, @TareStRat = (@RMWeight - @Tare) / @Weight - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' THEN @CodPlantFix ELSE tps.CodPlant END - , @HoleNum = tps.HoleNum - , @KeyAM = ql.KeyAM - , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') - , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) - , @ProdTeo = tps.ProdTeo - , @ScTec = tps.ScTec - , @KgTeo = tps.KgTeo - , @NumSMED = tps.NumSMED - , @RawMat = ql.RawMat - , @BatchQty = ql.BatchQty - , @ItemDescr = i.ItemDescr - , @CodifProfilo = i.Class01 - , @ClasseMerc = i.Class02 - , @CodClientAssoc = i.Class03 - - FROM dbo.QuoteList ql - INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM - INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - ORDER BY tps.KgTeo DESC - - -- ================================================================================= - -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi - -- Secondo la logica Client-Item-Package ( vedi funzione ) - -- ================================================================================= - -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) ) - -- attenzione è una function tabellare - SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = Weight, @PTare = Tare, - @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet - FROM f_getDataCodPackag ( @CodItem, @CodClient) - - -- e aggiorno il CodPackage in QuoteRM - UPDATE dbo.QuoteRM - SET CodPackag = @CodPackag - FROM dbo.QuoteRM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr ) - , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo ) - , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc ) - , ( @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc ) - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName - FROM dbo.ClientDet - WHERE ClientDet.CodClient = @CodClientAssoc - - -- INFORMAZIONI su MATRICE - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'CodDiesGroup', @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) - - 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 - - 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 - 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 - - 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 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 - - -- 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 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 - - -- 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 - * - *************************************************************/ - - -- (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 - 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) - - -- (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) - BEGIN - -- (E) Calcolo price/life! - SET @DiesPriceLife = @DiesPrice / @DiesEOLife - END - ELSE - BEGIN - SET @DiesPriceLife = 0 -- metto a zero il DiesPriceLife - SET @valid = 0 -- indico che valore non è valido ( ND excel ) - 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) - 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 - *************************************************************/ - - 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 - 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 - ,( @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 - -- 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 - , @PRMWeight = RMWeight - , @PkgDesc = PackagDesc - , @PTareStRatio = ( RMWeight - @PTare) / @PWeight - 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 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 - - -- 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 - - 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 - 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 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 - , Class05, TotQty, TotCost, Quota, valid - 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 - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' THEN @CodPlantFix ELSE tps.CodPlant END - , @HoleNum = tps.HoleNum - , @KeyAM = ql.KeyAM - , @KeyAMI = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') - , @KeyAMIL = ql.KeyAM + '-' + ISNULL(@CodPlant,'0000') + '-' + CAST(ISNULL(tps.HoleNum,0) AS NVARCHAR(10)) - , @ProdTeo = tps.ProdTeo - , @ScTec = tps.ScTec - , @KgTeo = tps.KgTeo - , @NumSMED = tps.NumSMED - , @RawMat = ql.RawMat - , @BatchQty = ql.BatchQty - , @ItemDescr = i.ItemDescr - , @CodifProfilo = i.Class01 - , @ClasseMerc = i.Class02 - , @CodClientAssoc = i.Class03 - - FROM dbo.QuoteList ql - INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM - INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - ORDER BY tps.KgTeo DESC - - -- ================================================================================= - -- recupero dall'offerta il valore del PACKAGE/IMBALLO scelto e i dati relativi - -- Secondo la logica Client-Item-Package ( vedi funzione ) - -- ================================================================================= - -- SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) ) - -- attenzione è una function tabellare - SELECT @CodPackag = CodPackag, @PTotQta = TotQta, @PWeight = [Weight], @PTare = Tare, - @NumImb = NumImb, @PDurata = Durata, @PLiv = LivPackag , @PLivDett = LivPackagDet - FROM f_getDataCodPackag ( @CodItem, @CodClient) - - -- e aggiorno il CodPackage in QuoteRM - UPDATE dbo.QuoteRM - SET CodPackag = @CodPackag - FROM dbo.QuoteRM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr) - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', @CodifProfilo - --FROM dbo.ItemDet - --WHERE CodItem = @CodItem - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', @ClasseMerc - --FROM dbo.ItemDet - --WHERE CodItem = @CodItem - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', @CodClientAssoc - --FROM dbo.ItemDet - --WHERE CodItem = @CodItem - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName - FROM dbo.ClientDet WHERE ClientDet.CodClient = @CodClientAssoc - --FROM dbo.ItemDet - --INNER JOIN dbo.ClientDet ON ItemDet.Class03 = ClientDet.CodClient - --WHERE CodItem = @CodItem - - -- 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) - - 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(50) , @NumSMED ) ) - ,( @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo' , CONVERT(NVARCHAR(50) , @KgTeo ) ) - - --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM', @KeyAM - --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL', @KeyAMIL - --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED', @NumSMED - --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo', @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 - - 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 - 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 - - -- calcolo produttività netta nella fase imballo --- UPDATE qwi --- SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END --- FROM #QuoteWorkInt qwi --- INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA --- WHERE qwi.ProcessNum = '04' -- solo imballo - - 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 - - -- ADESSO LO FACCIO GIA' NELLA FUNZIONE DI RECUPERO DATI PACKAGE f_getDataCodPackag - ---- Se Produttività netta ancora = 0 la leggo nella tabella Gruppo Imballo ( Packaging ) - --IF ( SELECT NetProd FROM #QuoteWorkInt WHERE ProcessNum = '04' ) = 0 - -- BEGIN - -- UPDATE qwi - -- SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END - -- FROM #QuoteWorkInt qwi - -- INNER JOIN dbo.TabImbGrp ti ON ti.CodPackag = @CodPackag -- packag generico dell' offerta - -- WHERE qwi.ProcessNum = '04' -- solo imballo - -- END - - -- salvo numero imballatori - --SELECT @NumImb = ISNULL(NumImb,0) - --FROM dbo.TabImbArt - --WHERE KeyA = @CodItem - - -- parametro num imballatori - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb - - -- parametro Livello search package/imballo - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackage', @PLiv - - -- parametro Livello search package/imballo - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'LivPackageDett', @PLivDett - - -- calcolo i costi legati alla fase di imballo! - UPDATE #QuoteWorkInt - SET FC4UG = ( ( 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 qwi - 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 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 - - -- 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 - - - /************************************************************* - * 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 - - -- (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) - - -- (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) - BEGIN - SET @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, 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) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', @DiesPrice - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', @DiesExpLife - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', @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 - *************************************************************/ - - 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 - 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) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR - - -- inserisco costi per ROTTAME - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR - - -- inserisco costi per VENDITA - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR - - -- inserisco costi per ROTTAME - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @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 - , @PRMWeight = RMWeight - , @PkgDesc = PackagDesc - , @PTareStRatio = ( RMWeight - @PTare) / @PWeight - 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 parametri calcolati x imballaggio - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', @PRMWeight - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', @PWeight - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', @PTare - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', @PTareStRatio - - - --------------------------------------------- - -- 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 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 - - - --------------------------------------------- - -- 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 - - /* ================================================== - CARICO TABELLE EFFETTIVE - ==================================================*/ - - -- carico quote parametri! - INSERT dbo.QuoteParam - SELECT * FROM #QuoteParam - - -- carico lavorazioni INTERNE! - INSERT dbo.QuoteWorkInt -- ci sono valori calcolati quindi devo selezionare i campi - SELECT QuoteType, CodQuote, QuoteRev, NumWI, ProcessNum, CodPlant, Class01, Class02, Class03, Class04, Class05 - , NetProd, WSR, MSR, DSR, FC4UG, VC4UG, OH4UG, SC4UG, valid - FROM #QuoteWorkInt - - -- carico 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 - - -- 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 - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' 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 - INNER JOIN dbo.TabProdSc tps ON ql.KeyAM = tps.KeyAM - INNER JOIN dbo.ItemDet i ON ql.CodItem = i.CodItem - WHERE ql.QuoteType = @QuoteType - AND ql.CodQuote = @CodQuote - AND ql.QuoteRev = @QuoteRev - ORDER BY tps.KgTeo DESC - - -- recupero da dati dell'offerta il valore del package scelto - SET @CodPackag = ( SELECT dbo.f_getCodPackag( @CodItem , @CodClient ) ) - - -- e aggiorno QuoteRM - UPDATE dbo.QuoteRM - SET CodPackag = @CodPackag - FROM dbo.QuoteRM - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'ItemDescr', @ItemDescr) - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodifProfilo', Class01 - FROM dbo.ItemDet - WHERE CodItem = @CodItem - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClasseMerc', Class02 - FROM dbo.ItemDet - WHERE CodItem = @CodItem - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodClientAssoc', Class03 - FROM dbo.ItemDet - WHERE CodItem = @CodItem - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'ClientNameAssoc', ClientDet.ClientName - FROM dbo.ItemDet INNER JOIN ClientDet ON ItemDet.Class03=ClientDet.CodClient - WHERE CodItem = @CodItem - - -- 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) --@strTemp = SUBSTRING(@CodDiesGroup, 0, CHARINDEX('-', @CodDiesGroup)) -- !!!fare con finc Gian - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'TipoDies', @strTemp) - - 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, ProcessNum, Descr, Parameter) - VALUES (@QuoteType, @CodQuote, @QuoteRev, '01', 'DiamDies', @strTemp) - - 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, 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) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'CodPlant', @CodPlant - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAM', @KeyAM - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KeyAMIL', @KeyAMIL - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'NumSMED', @NumSMED - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'KgTeo', @KgTeo - - -- tolto: è duplicato di HoleNumDies - --INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - --SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'HoleNum', @HoleNum - - -- 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 - - --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 #QuoteWorkInt qwi - INNER JOIN dbo.RawMatDet rmd ON qwi.Class03 = rmd.RawMat - - -- 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 #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 qwi - 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 - - -- calcolo produttività netta nella fase imballo - UPDATE qwi - SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END - FROM #QuoteWorkInt qwi - INNER JOIN dbo.TabImbArt ti ON qwi.Class04 = ti.KeyA - WHERE qwi.ProcessNum = '04' -- solo imballo - - -- Se Produttività netta ancora = 0 la leggo nella tabella Gruppo Imballo ( Packaging ) - IF ( SELECT NetProd FROM #QuoteWorkInt WHERE ProcessNum = '04' ) = 0 - BEGIN - UPDATE qwi - SET NetProd = CASE ti.Durata WHEN 0 THEN 0 ELSE ti.TotOut / ti.Durata END - FROM #QuoteWorkInt qwi - INNER JOIN dbo.TabImbGrp ti ON ti.CodPackag = @CodPackag -- packag generico dell' offerta - WHERE qwi.ProcessNum = '04' -- solo imballo - END - - -- salvo numero imballatori - SELECT @NumImb = ISNULL(NumImb,0) - FROM dbo.TabImbArt - WHERE KeyA = @CodItem - - -- parametro num imballatori - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'QuotaMan', @NumImb - - -- calcolo i costi legati alla fase di imballo! - -- QUI VA FATTO CALCOLO PUNTUALE SU quotaPlant tramite Articolo-Cliente / Articolo / Packaging - 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 #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 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 #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 WITH (NOLOCK) - WHERE ProcessNum = '01' - - -- recupero le MAC fase 02 - SELECT - @MAC_IN = DCR - FROM #QuoteWorkInt WITH (NOLOCK) - WHERE ProcessNum = '02' - - -- recupero le MAC fase 04 - SELECT - @MAC_IM = DCR - FROM #QuoteWorkInt WITH (NOLOCK) - 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 - - -- 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 - - - /************************************************************* - * 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 - - -- (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 - - -- controllo che non sia nulla/vuota la durata... - IF (@DiesEOLife = 0) - BEGIN - SET @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, 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) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesPrice', @DiesPrice - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesExpLife', @DiesExpLife - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', 'DiesEOLife', @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 - *************************************************************/ - - SELECT @OCF01 = SUM(ISNULL(C4UG,0)) - FROM #QuoteOC WITH (NOLOCK) - - 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 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, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF01 * @BatchQty, @SSR - - -- inserisco costi per ROTTAME - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '01', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF01 * @BatchQty, 1 - @SSR - - -- inserisco costi per VENDITA - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'VENDITA', @RawMat, @BatchQty, @SellCostF04 * @BatchQty, @SSR - - -- inserisco costi per ROTTAME - INSERT INTO #QuoteOC(QuoteType, CodQuote, QuoteRev, ProcessNum, CodPlant, Class01, Class02, TotQty, TotCost, Quota) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', @CodPlant, 'ROTTAME', @RawMat, @BatchQty, @RefCostF04 * @BatchQty, 1 - @SSR - - 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, 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) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PkgDesc', @PkgDesc - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PRMWeight', @PRMWeight - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PWeight', @PWeight - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'PTare', @PTare - - INSERT INTO #QuoteParam(QuoteType, CodQuote, QuoteRev, ProcessNum, Descr, Parameter) - SELECT @QuoteType, @CodQuote, @QuoteRev, '04', 'TareStRatio', @PTareStRatio - - - --------------------------------------------- - -- 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 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 - - - --------------------------------------------- - -- 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 - - /* ================================================== - CANCELLO E CARICO TABELLE EFFETTIVE - ==================================================*/ - - -- elimino e carico parametri! - DELETE FROM dbo.QuoteParam - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - INSERT dbo.QuoteParam - SELECT * FROM #QuoteParam WITH (NOLOCK) - - -- elimino e carico lavorazioni interne! - DELETE FROM dbo.QuoteWorkInt - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - 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 WITH (NOLOCK) - - -- elimino e carico OtherCosts - DELETE FROM dbo.QuoteOC - WHERE QuoteType = @QuoteType - AND CodQuote = @CodQuote - AND QuoteRev = @QuoteRev - - 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 WITH (NOLOCK) - - - 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 - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' 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 - 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 - - 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', '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, '-', 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 - 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 - - - -- 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', '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', '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 - - 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 - - -- 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 - - -- 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 - - -- 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 - - - -- 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 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 - - - /************************************************************* - * 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 - - -- (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 - - -- 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 - - - -- 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', '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 - *************************************************************/ - - 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... - - 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, '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 - - -- 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', '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', '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 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 - - - --------------------------------------------- - -- 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 - - - - COMMIT TRAN - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' +CONVERT(NVARCHAR(20), @dateTo, 120) - FROM RevHistory - WHERE RevType = 'P' - - COMMIT TRAN - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' +CONVERT(NVARCHAR(20), @dateTo, 120) - FROM RevHistory - WHERE RevType = 'P' - - COMMIT TRAN - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' +CONVERT(NVARCHAR(20), @dateTo, 120) - FROM RevHistory - WHERE RevType = 'P' - - COMMIT TRAN - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - delete from tmp.ItemsRaw - where CodItem IN - ( - SELECT CodItem - FROM ( SELECT DISTINCT * FROM tmp.ItemsRaw ) AS a - GROUP BY CodItem - having COUNT(*)>1 - ) - - - -- ========================================== - -- CARICO DATI IN RAW ( da Char a Tipi corretti ) - -- ========================================== - exec tmp.convertClientsRaw - exec tmp.convertTranspCostRaw - exec tmp.convertItemsRaw - exec tmp.convertProductionLogRaw - exec tmp.convertPackagRaw - exec tmp.convertDiesRaw - - -- necessario se integriamo i dati x i gruppi di matrici con un file - exec tmp.convertDiesGroupRaw - - select top 10 * FROM ext.ProductionLogRaw - select * FROM ext.ClientsRaw - select * FROM ext.ItemsRaw - select * FROM ext.PackagRaw - select * FROM ext.DiesRaw - SELECT * FROM ext.DiesGroupRaw - - -- elimino a mano dato con oltre 68 anni di evento... - select * - --delete - from ext.ProductionLogRaw - where DATEDIFF(YEAR,EventStart,EventEnd)> 10 - - exec ext.stp_mergeAgentsDet - exec ext.stp_mergeClientDet 'ProductionLogRaw' - exec ext.stp_mergeClientDet 'ClientsRaw' - exec ext.stp_mergeTranspCostDet 'TranspCostRaw' - exec ext.stp_mergePlantsDet - exec ext.stp_mergeCost2Plant - exec ext.stp_mergeItemDet 'ItemsRaw' - exec ext.stp_mergePackagDet 'ProductionLogRaw' -- 'PackagRaw' - exec ext.stp_mergePackage2ItemClient 'ProductionLog', @dateFrom, @dateTo - exec ext.stp_mergePackage2Item 'ProductionLog', @dateFrom, @dateTo - exec ext.stp_mergePackage2 'ProductionLog', @dateFrom, @dateTo - - exec ext.stp_mergeDiesDet - -- se ricarico diesgroup... ricarico solo i campi che nel file sono <> '' - exec ext.stp_mergeDiesGroupDet - - exec ext.stp_mergeRawMat - exec ext.stp_updateProductionLog - - ---- aggiorno quota agenti a 0.037 - ----update AgentsDet set quotaperc=0.0374 - - - SELECT DISTINCT dr.CodItem FROM ext.DiesRaw dr LEFT OUTER JOIN ItemDet id ON dr.CodItem = id.CodItem - where id.CodItemGroup is null - - select * from ClientDet - select * from ItemDet - select * from Package2ItemClient - select * from Package2Item - select * from Package2 - select * from PackagDet - select * from DiesGroupDet where EOLLife > 0 - select * from DiesDet - select * from DiesGroupDet - select * from AgentsDet - select * from PlantsDet - select * from Cost2Plant - select * from utilities - select top 100 * from ProductionLog - - --update tmp.ProductionLogRaw - --set - -- okPr = 1 - -- , okDi = 1 - -- , okQM = 1 - -- , okSc = 1 - - select distinct ProcessNum from ProductionLog - - select top 10 * from ext.ProductionLogRaw - - - ---- fix errore packaging - --update tmp.ProductionLogRaw - --SET CodPackag='4' - --where CodPackag LIKE '%4%' and CodPackag <> '4' - --select * from tmp.ProductionLogRaw where CodPackag LIKE '%4%' and CodPackag <> '4' - - SELECT p.CodDies, CodItem, CodClient, CodPackag, p.* FROM ext.ProductionLogRaw AS p - LEFT JOIN dbo.DiesDet AS d ON p.CodDies = d.CodDies - WHERE CodItem IS NULL - - - - -- parte CALCOLI!!! - - select * from QuoteList - - select * from ClientDet where CodClient='05000001048' - - select * from itemdet - where CodItem like '1PT00102%' - - select * from RawMatDet - - - --Q 1312130001 0 05000001048 1PT00102 A 7020 7673,400 1000 CPT NULL NULL NULL NULL - - SELECT --TOP 10 - dd.CodItem, pl.RawMat, dd.CodItem + '-' + pl.RawMat as KeyAM, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum - ,dd.CodItem + '-' + pl.RawMat + '-' + pl.CodPlant + '-' + CAST(dd.HoleNum AS NVARCHAR(19)) as KeyAMIL - ,0 as NumSMED -- numero cambi, da sistemare... - , SUM(QtyOUT) as KgTeorici, SUM(Duration) AS Durata - ,ISNULL(SUM(QtyOUT),0)/ISNULL(SUM(Duration), 1) as ProduttTeo - FROM ProductionLog pl INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies - WHERE pl.ProcessNum='01' and pl.EventType=1 - GROUP BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, pl.CodPlant, dd.HoleNum - ORDER BY dd.CodItem, pl.RawMat, dd.CodDiesGroup, SUM(QtyOUT) DESC - - -- ========================================== - -- re-insert dei dati di produzione x statistiche - -- ========================================== - exec stp_TPS_upsert @dateFrom, @dateTo - exec stp_TD_upsert @dateFrom , @dateTo --- exec stp_TI_upsert @dateFrom , @dateTo -- adesso sono già calcolati e inseriti in Package2 / Package2Item - - -- ========================================== - -- salvo nuova revisione dati di produzione... - -- Va messa in ogni procedura di update con 'procedura' e versione anno-mese-giorno - -- ========================================== - INSERT INTO RevHistory - SELECT 'P', ISNULL(MAX(RevNum),0) + 1, GETDATE(), 'Aggiornamento dati di produzione x fase 04 ' + CONVERT(NVARCHAR(20), @dateFrom, 120) + ' --> ' +CONVERT(NVARCHAR(20), @dateTo, 120) - FROM RevHistory - WHERE RevType = 'P' - - - select * from RevHistory - - -- simulazione tempo di calcolo: circa 50/sec - ---- aggiornamento dei dati dell'offerta in oggetto - --DECLARE @tick DATETIME, - -- @idx INT = 100 - --SET @tick = GETDATE() - --WHILE @idx > 0 - --BEGIN - -- EXEC stp_QL_update 'Q', 1312130001, 0 - -- SELECT @idx = @idx - 1 - --END - --SELECT GETDATE() - @tick as tempo - - DECLARE @QuoteType CHAR(1) = 'Q', - @CodQuote BIGINT = 1312130001, - @QuoteRev INT = 0 - - EXEC stp_QL_update @QuoteType, @CodQuote, @QuoteRev - SELECT * FROM QuoteList WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - SELECT * FROM QuoteRM WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - SELECT * FROM QuoteWorkInt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - SELECT * FROM QuoteWorkExt WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - SELECT * FROM QuoteOC WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - SELECT * FROM QuoteParam WHERE QuoteType=@QuoteType AND CodQuote = @CodQuote AND QuoteRev = @QuoteRev - - select top 10 * from ItemDet - - SELECT * FROM RawMatDet - - SELECT top 10 * FROM TabProdSc - SELECT top 10 * FROM TabDifett --- SELECT * FROM TabImbArt --- SELECT * FROM TabImbGrp - SELECT * FROM PackagDet - SELECT * FROM Package2 - - ---- test gestione selezione CodPackag corretto - --SELECT TOP 5 * FROM Package2ItemClient - --SELECT TOP 5 * FROM Package2Item - --SELECT TOP 5 * FROM Package2 - - SELECT dbo.f_getCodPackag('1EL00005', '05000001048') - --SELECT dbo.f_getCodPackag('1AN00001', '05000000137') - - - -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '')]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '')]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - BEGIN - WHILE @Riga <= @TotRighe - BEGIN - SELECT @WhereCond = WhereCond FROM #tmpTable WHERE Riga = @Riga - - SET @Sql = @Sql + ' OR ' + @WhereCond; - SET @Riga = @Riga + 1; - END - END - - -- Ritorno la select eseguita - SELECT @Sql - -- ======================================================= - -- Eseguo la select/delete e ritorno i record elaborati - -- ======================================================= - EXEC sp_executesql @Sql - SELECT @@ROWCOUNT - --- SELECT * FROM ext.ProductionLogRaw_KO - - IF OBJECT_ID('tempdb..#tmpTable') IS NOT NULL - DROP TABLE #tmpTable -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5000 THEN ActLife END ),0 ) AS EOLLife -- solo Matrici rottamate e vita > 5000KG - FROM dbo.DiesDet - GROUP BY CodDiesGroup - ) AS Source - ON Target.CodDiesGroup = Source.CodDiesGroup - WHEN MATCHED THEN - UPDATE SET CodDiesGroup = Source.CodDiesGroup, Price = Source.Price, QtyTot = Source.QtyTot - , QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife - , DateMod = GETDATE(), UserMod = 'IMPORT_DiesRaw' - - WHEN NOT MATCHED BY TARGET THEN - INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod ,UserMod ) - VALUES ( CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'IMPORT_DiesRaw' ) -- mi da errori in calcoli successivi altrimenti con zero a ExpLife e EOLLife - OUTPUT $action INTO @SummaryOfChanges; - - - ---- a questo punto calcolo il VERO update dalle inforamzioni di dbo.DiesDet --> dbo.DiesGroupDet - --MERGE INTO dbo.DiesGroupDet AS Target - --USING ( - -- SELECT coddiesgroup, - -- Avg(Isnull(price, 0)) AS Price, - -- Count(*) AS QtyTot, - -- Count(*) - Sum(Active) AS QtyEOL, - -- Avg(Isnull(ExpLife, 0.1)) AS ExpLife, -- mi da errori in calcoli successivi altrimenti con zero a ExpLife e EOLLife - -- Sum(Isnull(ActLife * (1 - Active), 0)) / (Count(*) - Sum(Active)) AS EOLLife - -- FROM dbo.DiesDet - -- WHERE ActLife > 5000 - -- GROUP BY CodDiesGroup - -- HAVING Count(*) > Sum(Active) -- ci siano rottamate - -- ) - -- AS Source - --ON Target.CodDiesGroup = Source.CodDiesGroup - --WHEN MATCHED THEN - -- UPDATE SET Price = Source.Price, QtyTot = Source.QtyTot, QtyEOL = Source.QtyEOL, ExpLife = Source.ExpLife, EOLLife = Source.EOLLife - --OUTPUT $action INTO @SummaryOfChanges; - - COMMIT tran - - -- Query the results of the table variable. - SELECT Change, COUNT(*) AS CountPerChange - FROM @SummaryOfChanges - GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 ( li ritengo come non passati ) - MERGE INTO dbo.DiesGroupDet AS Target - USING ( SELECT * FROM ext.DiesGroupRaw ) - AS Source - ON Target.CodDiesGroup = Source.CodDiesGroup - WHEN MATCHED THEN - UPDATE SET Price = CASE Source.Price WHEN 0 THEN Target.Price ELSE Source.Price END - , QtyTot = CASE Source.QtyTot WHEN 0 THEN Target.QtyTot ELSE Source.QtyTot END - , QtyEOL = CASE Source.QtyEOL WHEN 0 THEN Target.QtyEOL ELSE Source.QtyEOL END - , ExpLife = CASE Source.ExpLife WHEN 0 THEN Target.ExpLife ELSE Source.ExpLife END - , EOLLife = CASE Source.EOLLife WHEN 0 THEN Target.EOLLife ELSE Source.EOLLife END - , DateMod = GETDATE() - , UserMod = 'UPDATE_DiesGroupRaw' - WHEN NOT MATCHED BY TARGET THEN - INSERT ( CodDiesGroup, Price, QtyTot, QtyEOL, ExpLife, EOLLife, DateMod, UserMod ) - VALUES ( Source.CodDiesGroup, Source.Price, Source.QtyTot, Source.QtyEOL, Source.ExpLife, Source.EOLLife, GETDATE(), 'INSERT_DiesGroupRaw' ) --- VALUES ( CodDiesGroup, 0, 1, 0, 0.1, 0.1 ) -- mi da errori in calcoli successivi altrimenti con 0 a ExpLife e EOLLife - OUTPUT $action INTO @SummaryOfChanges; - - COMMIT TRAN - - -- Query the results of the table variable. - SELECT Change, COUNT(*) AS CountPerChange - FROM @SummaryOfChanges - GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - --GROUP BY plr.CodPackag - SELECT - pl.CodPackag - , SUM(QtyOUT) AS TotQta --- , COUNT(*) AS NumEv - , SUM(QtyOUT) / COUNT(*) AS PesoMedio - , SUM(QtyEXT) / COUNT(*) AS TaraMedia - - -- dati produttività imballo - , ROUND(SUM(QtyOUT * QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb - -- , SUM(QtyOUT) AS TotOut -- unificata a TotQta - , SUM(Duration) AS Durata - FROM ProductionLog pl - INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies - WHERE pl.ProcessNum = '04' - AND pl.okPr = 1 AND pl.okQM = 1 - AND ISNULL(pl.CodPackag, '') <> '' -- cmq filtro righe con package VUOTO - AND pl.EventStart BETWEEN @dateFrom AND @dateTo - GROUP BY pl.CodPackag - ) - AS Source - ON Target.CodPackag = Source.CodPackag - WHEN MATCHED THEN - UPDATE SET TotQta = Source.TotQta - , [Weight] = Source.PesoMedio - , Tare = Source.TaraMedia - , NumImb = Source.NumImb - , Durata = Source.Durata - WHEN NOT MATCHED BY TARGET THEN - INSERT (CodPackag, TotQta, [Weight], Tare, NumImb, Durata) - VALUES (CodPackag, TotQta, PesoMedio, TaraMedia, NumImb, Durata) - WHEN NOT MATCHED BY SOURCE THEN - DELETE - OUTPUT $action INTO @SummaryOfChanges; - - END - --ELSE IF @source = 'ItemsRaw' -- carico da anagrafica - -- BEGIN - -- MERGE INTO Item2Package AS Target - -- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw) - -- AS Source - -- ON Target.CodItem = Source.CodItem - -- WHEN MATCHED THEN - -- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup - -- WHEN NOT MATCHED BY TARGET THEN - -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) - -- OUTPUT $action INTO @SummaryOfChanges; - - -- END - - -- Query the results of the table variable. - SELECT Change, COUNT(*) AS CountPerChange - FROM @SummaryOfChanges - GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - -- GROUP BY plr.CodPackag - -- ) - -- AS Source - -- ON Target.CodPackag = Source.CodPackag - -- WHEN MATCHED THEN - -- UPDATE SET TotQty = Source.TotQta - -- , [Weight] = Source.PesoMedio - -- , Tare = Source.TaraMedia - -- WHEN NOT MATCHED BY TARGET THEN - -- INSERT (CodPackag, TotQty, [Weight], Tare) VALUES (CodPackag, TotQta, PesoMedio, TaraMedia) - -- OUTPUT $action INTO @SummaryOfChanges; - - -- END - ----ELSE IF @source = 'ItemsRaw' -- carico da anagrafica - ---- BEGIN - ---- MERGE INTO Item2Package AS Target - ---- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw) - ---- AS Source - ---- ON Target.CodItem = Source.CodItem - ---- WHEN MATCHED THEN - ---- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup - ---- WHEN NOT MATCHED BY TARGET THEN - ---- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) - ---- OUTPUT $action INTO @SummaryOfChanges; - - ---- END - - ---- Query the results of the table variable. - --SELECT Change, COUNT(*) AS CountPerChange - --FROM @SummaryOfChanges - --GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - --GROUP BY dd.CodItem, plr.CodPackag - SELECT - dd.CodItem - , pl.CodPackag - , SUM(QtyOUT) AS TotQta - -- , COUNT(*) AS NumEv - , SUM(QtyOUT) / COUNT(*) AS PesoMedio - , SUM(QtyEXT) / COUNT(*) AS TaraMedia - -- dati produttività imballo - , ROUND(SUM(QtyOUT* QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb - , SUM(Duration) AS Durata - FROM ProductionLog pl - INNER JOIN DiesDet dd ON pl.CodDies=dd.CodDies - WHERE pl.ProcessNum = '04' - AND pl.okPr = 1 AND pl.okQM = 1 - AND ISNULL(pl.CodPackag, '') <> '' - AND pl.EventStart BETWEEN @dateFrom AND @dateTo - GROUP BY dd.CodItem, pl.CodPackag - ) - AS Source - ON Target.CodItem = Source.CodItem AND Target.CodPackag = Source.CodPackag - WHEN MATCHED THEN - UPDATE SET TotQta = Source.TotQta - , [Weight] = Source.PesoMedio - , Tare = Source.TaraMedia - , NumImb = Source.NumImb - , Durata = Source.Durata - WHEN NOT MATCHED BY TARGET THEN - INSERT (CodItem, CodPackag, TotQta, [Weight], Tare, NumImb, Durata) - VALUES (CodItem, CodPackag, TotQta, PesoMedio, TaraMedia, NumImb, Durata) - WHEN NOT MATCHED BY SOURCE THEN - DELETE - OUTPUT $action INTO @SummaryOfChanges; - - END - --ELSE IF @source = 'ItemsRaw' -- carico da anagrafica - -- BEGIN - -- MERGE INTO Item2Package AS Target - -- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw) - -- AS Source - -- ON Target.CodItem = Source.CodItem - -- WHEN MATCHED THEN - -- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup - -- WHEN NOT MATCHED BY TARGET THEN - -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) - -- OUTPUT $action INTO @SummaryOfChanges; - - -- END - - -- Query the results of the table variable. - SELECT Change, COUNT(*) AS CountPerChange - FROM @SummaryOfChanges - GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - -- GROUP BY dd.CodItem, plr.CodPackag - -- ) - -- AS Source - -- ON Target.CodItem = Source.CodItem AND Target.CodPackag = Source.CodPackag - -- WHEN MATCHED THEN - -- UPDATE SET TotQty = Source.TotQta - -- , [Weight] = Source.PesoMedio - -- , Tare = Source.TaraMedia - -- WHEN NOT MATCHED BY TARGET THEN - -- INSERT (CodItem, CodPackag, TotQty, [Weight], Tare) VALUES (CodItem, CodPackag, TotQta, PesoMedio, TaraMedia) - -- OUTPUT $action INTO @SummaryOfChanges; - - -- END - ----ELSE IF @source = 'ItemsRaw' -- carico da anagrafica - ---- BEGIN - ---- MERGE INTO Item2Package AS Target - ---- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw) - ---- AS Source - ---- ON Target.CodItem = Source.CodItem - ---- WHEN MATCHED THEN - ---- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup - ---- WHEN NOT MATCHED BY TARGET THEN - ---- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) - ---- OUTPUT $action INTO @SummaryOfChanges; - - ---- END - - ---- Query the results of the table variable. - --SELECT Change, COUNT(*) AS CountPerChange - --FROM @SummaryOfChanges - --GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - --GROUP BY dd.CodItem, plr.CodClient, plr.CodPackag - SELECT - dd.CodItem - , pl.CodClient - , pl.CodPackag - , SUM(QtyOUT) AS TotQta - -- , COUNT(*) AS NumEv - , SUM(QtyOUT) / COUNT(*) AS PesoMedio - , SUM(QtyEXT) / COUNT(*) AS TaraMedia - -- dati produttività imballo - , ROUND(SUM(QtyOUT* QuotaMan) / CASE WHEN SUM(QtyOUT) = 0 THEN 1 ELSE SUM(QtyOUT) END,0) as NumImb - , SUM(Duration) AS Durata - FROM dbo.ProductionLog pl - INNER JOIN dbo.DiesDet dd ON pl.CodDies=dd.CodDies - - WHERE pl.ProcessNum = '04' - AND pl.okPr = 1 AND pl.okQM = 1 - AND ISNULL(pl.CodPackag, '') <> '' - AND pl.EventStart BETWEEN @dateFrom AND @dateTo - GROUP BY dd.CodItem, pl.CodClient, pl.CodPackag - - ) - AS Source - ON Target.CodItem = Source.CodItem AND Target.CodClient = Source.CodClient AND Target.CodPackag = Source.CodPackag - WHEN MATCHED THEN - UPDATE SET TotQta = Source.TotQta - , [Weight] = Source.PesoMedio - , Tare = Source.TaraMedia - , NumImb = Source.NumImb - , Durata = Source.Durata - WHEN NOT MATCHED BY TARGET THEN - INSERT (CodItem, CodClient, CodPackag, TotQta, [Weight], Tare, NumImb, Durata) - VALUES (CodItem, CodClient, CodPackag, TotQta, PesoMedio, TaraMedia, NumImb, Durata) - WHEN NOT MATCHED BY SOURCE THEN - DELETE - OUTPUT $action INTO @SummaryOfChanges; - - END - --ELSE IF @source = 'ItemsRaw' -- carico da anagrafica - -- BEGIN - -- MERGE INTO Item2PackageClient AS Target - -- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw) - -- AS Source - -- ON Target.CodItem = Source.CodItem - -- WHEN MATCHED THEN - -- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup - -- WHEN NOT MATCHED BY TARGET THEN - -- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) - -- OUTPUT $action INTO @SummaryOfChanges; - - -- END - - -- Query the results of the table variable. - SELECT Change, COUNT(*) AS CountPerChange - FROM @SummaryOfChanges - GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '' - -- GROUP BY dd.CodItem, plr.CodClient, plr.CodPackag - -- ) - -- AS Source - -- ON Target.CodItem = Source.CodItem AND Target.CodClient = Source.CodClient AND Target.CodPackag = Source.CodPackag - -- WHEN MATCHED THEN - -- UPDATE SET TotQty = Source.TotQta - -- , [Weight] = Source.PesoMedio - -- , Tare = Source.TaraMedia - -- WHEN NOT MATCHED BY TARGET THEN - -- INSERT (CodItem, CodClient, CodPackag, TotQty, [Weight], Tare) VALUES (CodItem, CodClient, CodPackag, TotQta, PesoMedio, TaraMedia) - -- OUTPUT $action INTO @SummaryOfChanges; - - -- END - ----ELSE IF @source = 'ItemsRaw' -- carico da anagrafica - ---- BEGIN - ---- MERGE INTO Item2PackageClient AS Target - ---- USING (SELECT CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup FROM ItemsRaw) - ---- AS Source - ---- ON Target.CodItem = Source.CodItem - ---- WHEN MATCHED THEN - ---- UPDATE SET ItemDescr = Source.ItemDescr, CodPlant = Source.CodPlant, UnitWeight = Source.UnitWeight, CodItemGroup = Source.CodItemGroup - ---- WHEN NOT MATCHED BY TARGET THEN - ---- INSERT (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) VALUES (CodItem, ItemDescr, CodPlant, UnitWeight, CodItemGroup) - ---- OUTPUT $action INTO @SummaryOfChanges; - - ---- END - - ---- Query the results of the table variable. - --SELECT Change, COUNT(*) AS CountPerChange - --FROM @SummaryOfChanges - --GROUP BY Change; -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - in C = costi di contab industriale, P = da ProductionLog, S = Sistema di calcolo']]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - ) AS Dupl ON Prod.EventStart = Dupl.EventStart AND - Prod.EventEnd = Dupl.EventEnd AND - Prod.CodPlant = Dupl.CodPlant AND - Prod.ProcessNum = Dupl.ProcessNum AND - Prod.NrPos = Dupl.NrPos AND - Prod.CodDies = Dupl.CodDies - - -- Cancello i record con chiave duplicata - DELETE Prod - WITH (TABLOCK) - FROM tmp.ProductionLogRaw AS Prod - INNER JOIN - ( - SELECT EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies - FROM tmp.ProductionLogRaw - GROUP BY EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies - HAVING COUNT(*)>1 - ) AS Dupl ON Prod.EventStart = Dupl.EventStart AND - Prod.EventEnd = Dupl.EventEnd AND - Prod.CodPlant = Dupl.CodPlant AND - Prod.ProcessNum = Dupl.ProcessNum AND - Prod.NrPos = Dupl.NrPos AND - Prod.CodDies = Dupl.CodDies - - -- =============================================================================== - -- pulisco la tabella dai record con date non corrette - -- =============================================================================== - DELETE FROM tmp.ProductionLogRaw - WITH (TABLOCK) - OUTPUT deleted.* INTO tmp.ProductionLogRaw_KO -- salvo i record cancellati in tabella KO - ( EventStart, EventEnd, CodPlant, ProcessNum, NrPos, CodDies, CodClient, OrderNum, BatchNum, ProcessType, EventType, RawMat - , CodPackag, QtyIN, QtyOUT, QtyEXT, NumIN, NumOUT, QuotaPlant, QuotaMan, Tags, okPr, okQM, okSc, okDi ) - WHERE EventStart >= EventEnd - OR CONVERT( BIGINT , EventStart ) + 68000000000000 <= EventEnd -- record che darebbero errore poi nel datediff > 68 anni - OR EventStart IS NULL - OR EventEnd IS NULL - --- SELECT * FROM tmp.ProductionLogRaw_KO - - --ROLLBACK - COMMIT - - SELECT COUNT(*) AS RecordsIn FROM tmp.ProductionLogRaw - - END -END]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\ No newline at end of file