From eb4384f4cb2270ef97e7518657b4e6ef5b7eb819 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sat, 1 Dec 2007 08:55:53 +0000 Subject: [PATCH] FR [ 1814291 ] Sales Commitment Offset --- base/src/org/compiere/acct/Doc.java | 7 + .../src/org/compiere/acct/Doc_Allocation.java | 2 +- base/src/org/compiere/acct/Doc_InOut.java | 17 +- base/src/org/compiere/acct/Doc_MatchInv.java | 2 +- base/src/org/compiere/acct/Doc_Order.java | 182 ++++- .../org/compiere/model/I_C_AcctSchema_GL.java | 161 ++-- .../compiere/model/I_GL_BudgetControl.java | 134 ++-- base/src/org/compiere/model/MAcctSchema.java | 27 +- base/src/org/compiere/model/MSetup.java | 5 +- .../org/compiere/model/X_C_AcctSchema.java | 16 +- .../org/compiere/model/X_C_AcctSchema_GL.java | 700 +++++++++--------- .../compiere/model/X_GL_BudgetControl.java | 646 ++++++++-------- data/import/AccountingUS.csv | 1 + data/import/AccountingUS.xls | Bin 91648 -> 91136 bytes migration/330-trunk/041_FR1814291.sql | 231 ++++++ .../330-trunk/postgresql/041_FR1814291.sql | 228 ++++++ 16 files changed, 1548 insertions(+), 811 deletions(-) create mode 100644 migration/330-trunk/041_FR1814291.sql create mode 100644 migration/330-trunk/postgresql/041_FR1814291.sql diff --git a/base/src/org/compiere/acct/Doc.java b/base/src/org/compiere/acct/Doc.java index ac09f2c4b7..2179681009 100644 --- a/base/src/org/compiere/acct/Doc.java +++ b/base/src/org/compiere/acct/Doc.java @@ -1239,6 +1239,8 @@ public abstract class Doc public static final int ACCTTYPE_PPVOffset = 101; /** GL Accounts - Commitment Offset */ public static final int ACCTTYPE_CommitmentOffset = 111; + /** GL Accounts - Commitment Offset Sales */ + public static final int ACCTTYPE_CommitmentOffsetSales = 112; /** @@ -1413,6 +1415,11 @@ public abstract class Doc sql = "SELECT CommitmentOffset_Acct FROM C_AcctSchema_GL WHERE C_AcctSchema_ID=?"; para_1 = -1; } + else if (AcctType == ACCTTYPE_CommitmentOffsetSales) + { + sql = "SELECT CommitmentOffsetSales_Acct FROM C_AcctSchema_GL WHERE C_AcctSchema_ID=?"; + para_1 = -1; + } else { diff --git a/base/src/org/compiere/acct/Doc_Allocation.java b/base/src/org/compiere/acct/Doc_Allocation.java index 57012fe8f2..c2e592d407 100644 --- a/base/src/org/compiere/acct/Doc_Allocation.java +++ b/base/src/org/compiere/acct/Doc_Allocation.java @@ -436,7 +436,7 @@ public class Doc_Allocation extends Doc log.config("Allocation Accounted=" + allocationAccounted); // Cash Based Commitment Release - if (as.isCreateCommitment() && !invoice.isSOTrx()) + if (as.isCreatePOCommitment() && !invoice.isSOTrx()) { MInvoiceLine[] lines = invoice.getLines(); for (int i = 0; i < lines.length; i++) diff --git a/base/src/org/compiere/acct/Doc_InOut.java b/base/src/org/compiere/acct/Doc_InOut.java index a1d1e64ff8..d777251197 100644 --- a/base/src/org/compiere/acct/Doc_InOut.java +++ b/base/src/org/compiere/acct/Doc_InOut.java @@ -125,6 +125,8 @@ public class Doc_InOut extends Doc */ public ArrayList createFacts (MAcctSchema as) { + // + ArrayList facts = new ArrayList(); // create Fact Header Fact fact = new Fact(this, as, Fact.POST_Actual); setC_Currency_ID (as.getC_Currency_ID()); @@ -196,6 +198,20 @@ public class Doc_InOut extends Doc } } // for all lines updateProductInfo(as.getC_AcctSchema_ID()); // only for SO! + + /** Commitment release ****/ + if (as.isAccrual() && as.isCreateSOCommitment()) + { + for (int i = 0; i < p_lines.length; i++) + { + DocLine line = p_lines[i]; + Fact factcomm = Doc_Order.getCommitmentSalesRelease(as, this, + line.getQty(), line.get_ID(), Env.ONE); + if (factcomm != null) + facts.add(factcomm); + } + } // Commitment + } // Shipment // *** Sales - Return else if ( getDocumentType().equals(DOCTYPE_MatReceipt) && isSOTrx() ) @@ -403,7 +419,6 @@ public class Doc_InOut extends Doc return null; } // - ArrayList facts = new ArrayList(); facts.add(fact); return facts; } // createFact diff --git a/base/src/org/compiere/acct/Doc_MatchInv.java b/base/src/org/compiere/acct/Doc_MatchInv.java index 7676580de9..ede4e12569 100644 --- a/base/src/org/compiere/acct/Doc_MatchInv.java +++ b/base/src/org/compiere/acct/Doc_MatchInv.java @@ -316,7 +316,7 @@ public class Doc_MatchInv extends Doc facts.add(fact); /** Commitment release ****/ - if (as.isAccrual() && as.isCreateCommitment()) + if (as.isAccrual() && as.isCreatePOCommitment()) { fact = Doc_Order.getCommitmentRelease(as, this, getQty(), m_invoiceLine.getC_InvoiceLine_ID(), Env.ONE); diff --git a/base/src/org/compiere/acct/Doc_Order.java b/base/src/org/compiere/acct/Doc_Order.java index 07cc7994da..b52371d3d7 100644 --- a/base/src/org/compiere/acct/Doc_Order.java +++ b/base/src/org/compiere/acct/Doc_Order.java @@ -340,7 +340,7 @@ public class Doc_Order extends Doc // Commitment FactLine fl = null; - if (as.isCreateCommitment()) + if (as.isCreatePOCommitment()) { Fact fact = new Fact(this, as, Fact.POST_Commitment); BigDecimal total = Env.ZERO; @@ -402,6 +402,40 @@ public class Doc_Order extends Doc } // reservations } // SO + else if (getDocumentType().equals(DOCTYPE_SOrder)) + { + // Commitment + FactLine fl = null; + if (as.isCreateSOCommitment()) + { + Fact fact = new Fact(this, as, Fact.POST_Commitment); + BigDecimal total = Env.ZERO; + for (int i = 0; i < p_lines.length; i++) + { + DocLine line = p_lines[i]; + BigDecimal cost = line.getAmtSource(); + total = total.add(cost); + + // Account + MAccount revenue = line.getAccount(ProductCost.ACCTTYPE_P_Revenue, as); + fl = fact.createLine (line, revenue, + getC_Currency_ID(), null, cost); + } + // Offset + MAccount offset = getAccount(ACCTTYPE_CommitmentOffsetSales, as); + if (offset == null) + { + p_Error = "@NotFound@ @CommitmentOffsetSales_Acct@"; + log.log(Level.SEVERE, p_Error); + return null; + } + fact.createLine (null, offset, + getC_Currency_ID(), total, null); + // + facts.add(fact); + } + + } return facts; } // createFact @@ -596,6 +630,152 @@ public class Doc_Order extends Doc return fact; } // getCommitmentRelease + /** + * Get Commitments Sales + * @param doc document + * @param maxQty Qty invoiced/matched + * @param C_OrderLine_ID invoice line + * @return commitments (order lines) + */ + protected static DocLine[] getCommitmentsSales(Doc doc, BigDecimal maxQty, int M_InOutLine_ID) + { + int precision = -1; + // + ArrayList list = new ArrayList(); + String sql = "SELECT * FROM C_OrderLine ol " + + "WHERE EXISTS " + + "(SELECT * FROM M_InOutLine il " + + "WHERE il.C_OrderLine_ID=ol.C_OrderLine_ID" + + " AND il.M_InOutLine_ID=?)"; + PreparedStatement pstmt = null; + try + { + pstmt = DB.prepareStatement (sql, null); + pstmt.setInt (1, M_InOutLine_ID); + ResultSet rs = pstmt.executeQuery (); + while (rs.next ()) + { + if (maxQty.signum() == 0) + continue; + MOrderLine line = new MOrderLine (doc.getCtx(), rs, null); + DocLine docLine = new DocLine (line, doc); + // Currency + if (precision == -1) + { + doc.setC_Currency_ID(docLine.getC_Currency_ID()); + precision = MCurrency.getStdPrecision(doc.getCtx(), docLine.getC_Currency_ID()); + } + // Qty + BigDecimal Qty = line.getQtyOrdered().max(maxQty); + docLine.setQty(Qty, false); + // + BigDecimal PriceActual = line.getPriceActual(); + BigDecimal PriceCost = line.getPriceCost(); + BigDecimal LineNetAmt = null; + if (PriceCost != null && PriceCost.signum() != 0) + LineNetAmt = Qty.multiply(PriceCost); + else if (Qty.equals(maxQty)) + LineNetAmt = line.getLineNetAmt(); + else + LineNetAmt = Qty.multiply(PriceActual); + maxQty = maxQty.subtract(Qty); + + docLine.setAmount (LineNetAmt); // DR + BigDecimal PriceList = line.getPriceList(); + int C_Tax_ID = docLine.getC_Tax_ID(); + // Correct included Tax + if (C_Tax_ID != 0 && line.getParent().isTaxIncluded()) + { + MTax tax = MTax.get(doc.getCtx(), C_Tax_ID); + if (!tax.isZeroTax()) + { + BigDecimal LineNetAmtTax = tax.calculateTax(LineNetAmt, true, precision); + s_log.fine("LineNetAmt=" + LineNetAmt + " - Tax=" + LineNetAmtTax); + LineNetAmt = LineNetAmt.subtract(LineNetAmtTax); + BigDecimal PriceListTax = tax.calculateTax(PriceList, true, precision); + PriceList = PriceList.subtract(PriceListTax); + } + } // correct included Tax + + docLine.setAmount (LineNetAmt, PriceList, Qty); + list.add(docLine); + } + rs.close (); + pstmt.close (); + pstmt = null; + } + catch (Exception e) + { + s_log.log (Level.SEVERE, sql, e); + } + try + { + if (pstmt != null) + pstmt.close (); + pstmt = null; + } + catch (Exception e) + { + pstmt = null; + } + + // Return Array + DocLine[] dl = new DocLine[list.size()]; + list.toArray(dl); + return dl; + } // getCommitmentsSales + + /** + * Get Commitment Sales Release. + * Called from InOut + * @param as accounting schema + * @param doc doc + * @param Qty qty invoiced/matched + * @param C_OrderLine_ID line + * @param multiplier 1 for accrual + * @return Fact + */ + protected static Fact getCommitmentSalesRelease(MAcctSchema as, Doc doc, + BigDecimal Qty, int M_InOutLine_ID, BigDecimal multiplier) + { + Fact fact = new Fact(doc, as, Fact.POST_Commitment); + DocLine[] commitments = Doc_Order.getCommitmentsSales(doc, Qty, + M_InOutLine_ID); + + BigDecimal total = Env.ZERO; + FactLine fl = null; + int C_Currency_ID = -1; + for (int i = 0; i < commitments.length; i++) + { + DocLine line = commitments[i]; + if (C_Currency_ID == -1) + C_Currency_ID = line.getC_Currency_ID(); + else if (C_Currency_ID != line.getC_Currency_ID()) + { + doc.p_Error = "Different Currencies of Order Lines"; + s_log.log(Level.SEVERE, doc.p_Error); + return null; + } + BigDecimal cost = line.getAmtSource().multiply(multiplier); + total = total.add(cost); + + // Account + MAccount revenue = line.getAccount(ProductCost.ACCTTYPE_P_Revenue, as); + fl = fact.createLine (line, revenue, + C_Currency_ID, cost, null); + } + // Offset + MAccount offset = doc.getAccount(ACCTTYPE_CommitmentOffsetSales, as); + if (offset == null) + { + doc.p_Error = "@NotFound@ @CommitmentOffsetSales_Acct@"; + s_log.log(Level.SEVERE, doc.p_Error); + return null; + } + fact.createLine (null, offset, + C_Currency_ID, null, total); + return fact; + } // getCommitmentSalesRelease /************************************************************************** * Update Product Info (old) diff --git a/base/src/org/compiere/model/I_C_AcctSchema_GL.java b/base/src/org/compiere/model/I_C_AcctSchema_GL.java index 8618035184..3365320867 100644 --- a/base/src/org/compiere/model/I_C_AcctSchema_GL.java +++ b/base/src/org/compiere/model/I_C_AcctSchema_GL.java @@ -5,21 +5,21 @@ * Copyright (C) Trifon Trifonov. * * Copyright (C) Contributors * * * - * This program is free software; + * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * - * as published by the Free Software Foundation; + * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; + * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; + * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301, USA. * @@ -30,178 +30,189 @@ * Sponsors: * * - Company (http://www.site.com) * **********************************************************************/ -package org.compiere.model; - -import java.util.*; -import java.sql.Timestamp; -import java.math.*; -import org.compiere.util.*; +package org.compiere.model; - /** Generated Interface for C_AcctSchema_GL - * @author Trifon Trifonov (generated) - * @version Release 3.3.0 - 2007-08-24 11:39:36.64 - */ - public interface I_C_AcctSchema_GL -{ +import java.math.BigDecimal; +import org.compiere.util.KeyNamePair; + +/** Generated Interface for C_AcctSchema_GL + * @author Trifon Trifonov (generated) + * @version Release 3.3.0 + */ +public interface I_C_AcctSchema_GL +{ /** TableName=C_AcctSchema_GL */ - public static final String Table_Name = "C_AcctSchema_GL"; + public static final String Table_Name = "C_AcctSchema_GL"; /** AD_Table_ID=266 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = MTable.getTable_ID(Table_Name); - KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); + KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); /** AccessLevel = 2 - Client */ - BigDecimal accessLevel = new BigDecimal(2); + BigDecimal accessLevel = BigDecimal.valueOf(2); /** Load Meta Data */ /** Column name C_AcctSchema_ID */ - public static final String COLUMNNAME_C_AcctSchema_ID = "C_AcctSchema_ID"; + public static final String COLUMNNAME_C_AcctSchema_ID = "C_AcctSchema_ID"; /** Set Accounting Schema. - * Rules for accounting + * Rules for accounting */ - public void setC_AcctSchema_ID (int C_AcctSchema_ID); + public void setC_AcctSchema_ID (int C_AcctSchema_ID); /** Get Accounting Schema. - * Rules for accounting + * Rules for accounting */ - public int getC_AcctSchema_ID(); + public int getC_AcctSchema_ID(); - public I_C_AcctSchema getI_C_AcctSchema() throws Exception; + public I_C_AcctSchema getC_AcctSchema() throws Exception; + + /** Column name CommitmentOffsetSales_Acct */ + public static final String COLUMNNAME_CommitmentOffsetSales_Acct = "CommitmentOffsetSales_Acct"; + + /** Set Commitment Offset Sales. + * Budgetary Commitment Offset Account for Sales + */ + public void setCommitmentOffsetSales_Acct (int CommitmentOffsetSales_Acct); + + /** Get Commitment Offset Sales. + * Budgetary Commitment Offset Account for Sales + */ + public int getCommitmentOffsetSales_Acct(); /** Column name CommitmentOffset_Acct */ - public static final String COLUMNNAME_CommitmentOffset_Acct = "CommitmentOffset_Acct"; + public static final String COLUMNNAME_CommitmentOffset_Acct = "CommitmentOffset_Acct"; /** Set Commitment Offset. - * Budgetary Commitment Offset Account + * Budgetary Commitment Offset Account */ - public void setCommitmentOffset_Acct (int CommitmentOffset_Acct); + public void setCommitmentOffset_Acct (int CommitmentOffset_Acct); /** Get Commitment Offset. - * Budgetary Commitment Offset Account + * Budgetary Commitment Offset Account */ - public int getCommitmentOffset_Acct(); + public int getCommitmentOffset_Acct(); /** Column name CurrencyBalancing_Acct */ - public static final String COLUMNNAME_CurrencyBalancing_Acct = "CurrencyBalancing_Acct"; + public static final String COLUMNNAME_CurrencyBalancing_Acct = "CurrencyBalancing_Acct"; /** Set Currency Balancing Acct. - * Account used when a currency is out of balance + * Account used when a currency is out of balance */ - public void setCurrencyBalancing_Acct (int CurrencyBalancing_Acct); + public void setCurrencyBalancing_Acct (int CurrencyBalancing_Acct); /** Get Currency Balancing Acct. - * Account used when a currency is out of balance + * Account used when a currency is out of balance */ - public int getCurrencyBalancing_Acct(); + public int getCurrencyBalancing_Acct(); /** Column name IncomeSummary_Acct */ - public static final String COLUMNNAME_IncomeSummary_Acct = "IncomeSummary_Acct"; + public static final String COLUMNNAME_IncomeSummary_Acct = "IncomeSummary_Acct"; /** Set Income Summary Acct. - * Income Summary Account + * Income Summary Account */ - public void setIncomeSummary_Acct (int IncomeSummary_Acct); + public void setIncomeSummary_Acct (int IncomeSummary_Acct); /** Get Income Summary Acct. - * Income Summary Account + * Income Summary Account */ - public int getIncomeSummary_Acct(); + public int getIncomeSummary_Acct(); /** Column name IntercompanyDueFrom_Acct */ - public static final String COLUMNNAME_IntercompanyDueFrom_Acct = "IntercompanyDueFrom_Acct"; + public static final String COLUMNNAME_IntercompanyDueFrom_Acct = "IntercompanyDueFrom_Acct"; /** Set Intercompany Due From Acct. - * Intercompany Due From / Receivables Account + * Intercompany Due From / Receivables Account */ - public void setIntercompanyDueFrom_Acct (int IntercompanyDueFrom_Acct); + public void setIntercompanyDueFrom_Acct (int IntercompanyDueFrom_Acct); /** Get Intercompany Due From Acct. - * Intercompany Due From / Receivables Account + * Intercompany Due From / Receivables Account */ - public int getIntercompanyDueFrom_Acct(); + public int getIntercompanyDueFrom_Acct(); /** Column name IntercompanyDueTo_Acct */ - public static final String COLUMNNAME_IntercompanyDueTo_Acct = "IntercompanyDueTo_Acct"; + public static final String COLUMNNAME_IntercompanyDueTo_Acct = "IntercompanyDueTo_Acct"; /** Set Intercompany Due To Acct. - * Intercompany Due To / Payable Account + * Intercompany Due To / Payable Account */ - public void setIntercompanyDueTo_Acct (int IntercompanyDueTo_Acct); + public void setIntercompanyDueTo_Acct (int IntercompanyDueTo_Acct); /** Get Intercompany Due To Acct. - * Intercompany Due To / Payable Account + * Intercompany Due To / Payable Account */ - public int getIntercompanyDueTo_Acct(); + public int getIntercompanyDueTo_Acct(); /** Column name PPVOffset_Acct */ - public static final String COLUMNNAME_PPVOffset_Acct = "PPVOffset_Acct"; + public static final String COLUMNNAME_PPVOffset_Acct = "PPVOffset_Acct"; /** Set PPV Offset. - * Purchase Price Variance Offset Account + * Purchase Price Variance Offset Account */ - public void setPPVOffset_Acct (int PPVOffset_Acct); + public void setPPVOffset_Acct (int PPVOffset_Acct); /** Get PPV Offset. - * Purchase Price Variance Offset Account + * Purchase Price Variance Offset Account */ - public int getPPVOffset_Acct(); + public int getPPVOffset_Acct(); /** Column name RetainedEarning_Acct */ - public static final String COLUMNNAME_RetainedEarning_Acct = "RetainedEarning_Acct"; + public static final String COLUMNNAME_RetainedEarning_Acct = "RetainedEarning_Acct"; /** Set Retained Earning Acct */ - public void setRetainedEarning_Acct (int RetainedEarning_Acct); + public void setRetainedEarning_Acct (int RetainedEarning_Acct); /** Get Retained Earning Acct */ - public int getRetainedEarning_Acct(); + public int getRetainedEarning_Acct(); /** Column name SuspenseBalancing_Acct */ - public static final String COLUMNNAME_SuspenseBalancing_Acct = "SuspenseBalancing_Acct"; + public static final String COLUMNNAME_SuspenseBalancing_Acct = "SuspenseBalancing_Acct"; /** Set Suspense Balancing Acct */ - public void setSuspenseBalancing_Acct (int SuspenseBalancing_Acct); + public void setSuspenseBalancing_Acct (int SuspenseBalancing_Acct); /** Get Suspense Balancing Acct */ - public int getSuspenseBalancing_Acct(); + public int getSuspenseBalancing_Acct(); /** Column name SuspenseError_Acct */ - public static final String COLUMNNAME_SuspenseError_Acct = "SuspenseError_Acct"; + public static final String COLUMNNAME_SuspenseError_Acct = "SuspenseError_Acct"; /** Set Suspense Error Acct */ - public void setSuspenseError_Acct (int SuspenseError_Acct); + public void setSuspenseError_Acct (int SuspenseError_Acct); /** Get Suspense Error Acct */ - public int getSuspenseError_Acct(); + public int getSuspenseError_Acct(); /** Column name UseCurrencyBalancing */ - public static final String COLUMNNAME_UseCurrencyBalancing = "UseCurrencyBalancing"; + public static final String COLUMNNAME_UseCurrencyBalancing = "UseCurrencyBalancing"; /** Set Use Currency Balancing */ - public void setUseCurrencyBalancing (boolean UseCurrencyBalancing); + public void setUseCurrencyBalancing (boolean UseCurrencyBalancing); /** Get Use Currency Balancing */ - public boolean isUseCurrencyBalancing(); + public boolean isUseCurrencyBalancing(); /** Column name UseSuspenseBalancing */ - public static final String COLUMNNAME_UseSuspenseBalancing = "UseSuspenseBalancing"; + public static final String COLUMNNAME_UseSuspenseBalancing = "UseSuspenseBalancing"; /** Set Use Suspense Balancing */ - public void setUseSuspenseBalancing (boolean UseSuspenseBalancing); + public void setUseSuspenseBalancing (boolean UseSuspenseBalancing); /** Get Use Suspense Balancing */ - public boolean isUseSuspenseBalancing(); + public boolean isUseSuspenseBalancing(); /** Column name UseSuspenseError */ - public static final String COLUMNNAME_UseSuspenseError = "UseSuspenseError"; + public static final String COLUMNNAME_UseSuspenseError = "UseSuspenseError"; /** Set Use Suspense Error */ - public void setUseSuspenseError (boolean UseSuspenseError); + public void setUseSuspenseError (boolean UseSuspenseError); /** Get Use Suspense Error */ - public boolean isUseSuspenseError(); -} + public boolean isUseSuspenseError(); +} diff --git a/base/src/org/compiere/model/I_GL_BudgetControl.java b/base/src/org/compiere/model/I_GL_BudgetControl.java index 8b6062a353..1c2bcbcd60 100644 --- a/base/src/org/compiere/model/I_GL_BudgetControl.java +++ b/base/src/org/compiere/model/I_GL_BudgetControl.java @@ -5,21 +5,21 @@ * Copyright (C) Trifon Trifonov. * * Copyright (C) Contributors * * * - * This program is free software; + * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * - * as published by the Free Software Foundation; + * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; + * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; + * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * * MA 02110-1301, USA. * @@ -30,152 +30,150 @@ * Sponsors: * * - Company (http://www.site.com) * **********************************************************************/ -package org.compiere.model; - -import java.util.*; -import java.sql.Timestamp; -import java.math.*; -import org.compiere.util.*; +package org.compiere.model; - /** Generated Interface for GL_BudgetControl - * @author Trifon Trifonov (generated) - * @version Release 3.3.0 - 2007-08-24 11:39:47.187 - */ - public interface I_GL_BudgetControl -{ +import java.math.BigDecimal; +import org.compiere.util.KeyNamePair; + +/** Generated Interface for GL_BudgetControl + * @author Trifon Trifonov (generated) + * @version Release 3.3.0 + */ +public interface I_GL_BudgetControl +{ /** TableName=GL_BudgetControl */ - public static final String Table_Name = "GL_BudgetControl"; + public static final String Table_Name = "GL_BudgetControl"; /** AD_Table_ID=822 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = MTable.getTable_ID(Table_Name); - KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); + KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); /** AccessLevel = 2 - Client */ - BigDecimal accessLevel = new BigDecimal(2); + BigDecimal accessLevel = BigDecimal.valueOf(2); /** Load Meta Data */ /** Column name BudgetControlScope */ - public static final String COLUMNNAME_BudgetControlScope = "BudgetControlScope"; + public static final String COLUMNNAME_BudgetControlScope = "BudgetControlScope"; /** Set Control Scope. - * Scope of the Budget Control + * Scope of the Budget Control */ - public void setBudgetControlScope (String BudgetControlScope); + public void setBudgetControlScope (String BudgetControlScope); /** Get Control Scope. - * Scope of the Budget Control + * Scope of the Budget Control */ - public String getBudgetControlScope(); + public String getBudgetControlScope(); /** Column name C_AcctSchema_ID */ - public static final String COLUMNNAME_C_AcctSchema_ID = "C_AcctSchema_ID"; + public static final String COLUMNNAME_C_AcctSchema_ID = "C_AcctSchema_ID"; /** Set Accounting Schema. - * Rules for accounting + * Rules for accounting */ - public void setC_AcctSchema_ID (int C_AcctSchema_ID); + public void setC_AcctSchema_ID (int C_AcctSchema_ID); /** Get Accounting Schema. - * Rules for accounting + * Rules for accounting */ - public int getC_AcctSchema_ID(); + public int getC_AcctSchema_ID(); - public I_C_AcctSchema getI_C_AcctSchema() throws Exception; + public I_C_AcctSchema getC_AcctSchema() throws Exception; /** Column name CommitmentType */ - public static final String COLUMNNAME_CommitmentType = "CommitmentType"; + public static final String COLUMNNAME_CommitmentType = "CommitmentType"; /** Set Commitment Type. - * Create Commitment and/or Reservations for Budget Control + * Create Commitment and/or Reservations for Budget Control */ - public void setCommitmentType (String CommitmentType); + public void setCommitmentType (String CommitmentType); /** Get Commitment Type. - * Create Commitment and/or Reservations for Budget Control + * Create Commitment and/or Reservations for Budget Control */ - public String getCommitmentType(); + public String getCommitmentType(); /** Column name Description */ - public static final String COLUMNNAME_Description = "Description"; + public static final String COLUMNNAME_Description = "Description"; /** Set Description. - * Optional short description of the record + * Optional short description of the record */ - public void setDescription (String Description); + public void setDescription (String Description); /** Get Description. - * Optional short description of the record + * Optional short description of the record */ - public String getDescription(); + public String getDescription(); /** Column name GL_BudgetControl_ID */ - public static final String COLUMNNAME_GL_BudgetControl_ID = "GL_BudgetControl_ID"; + public static final String COLUMNNAME_GL_BudgetControl_ID = "GL_BudgetControl_ID"; /** Set Budget Control. - * Budget Control + * Budget Control */ - public void setGL_BudgetControl_ID (int GL_BudgetControl_ID); + public void setGL_BudgetControl_ID (int GL_BudgetControl_ID); /** Get Budget Control. - * Budget Control + * Budget Control */ - public int getGL_BudgetControl_ID(); + public int getGL_BudgetControl_ID(); /** Column name GL_Budget_ID */ - public static final String COLUMNNAME_GL_Budget_ID = "GL_Budget_ID"; + public static final String COLUMNNAME_GL_Budget_ID = "GL_Budget_ID"; /** Set Budget. - * General Ledger Budget + * General Ledger Budget */ - public void setGL_Budget_ID (int GL_Budget_ID); + public void setGL_Budget_ID (int GL_Budget_ID); /** Get Budget. - * General Ledger Budget + * General Ledger Budget */ - public int getGL_Budget_ID(); + public int getGL_Budget_ID(); - public I_GL_Budget getI_GL_Budget() throws Exception; + public I_GL_Budget getGL_Budget() throws Exception; /** Column name Help */ - public static final String COLUMNNAME_Help = "Help"; + public static final String COLUMNNAME_Help = "Help"; /** Set Comment/Help. - * Comment or Hint + * Comment or Hint */ - public void setHelp (String Help); + public void setHelp (String Help); /** Get Comment/Help. - * Comment or Hint + * Comment or Hint */ - public String getHelp(); + public String getHelp(); /** Column name IsBeforeApproval */ - public static final String COLUMNNAME_IsBeforeApproval = "IsBeforeApproval"; + public static final String COLUMNNAME_IsBeforeApproval = "IsBeforeApproval"; /** Set Before Approval. - * The Check is before the (manual) approval + * The Check is before the (manual) approval */ - public void setIsBeforeApproval (boolean IsBeforeApproval); + public void setIsBeforeApproval (boolean IsBeforeApproval); /** Get Before Approval. - * The Check is before the (manual) approval + * The Check is before the (manual) approval */ - public boolean isBeforeApproval(); + public boolean isBeforeApproval(); /** Column name Name */ - public static final String COLUMNNAME_Name = "Name"; + public static final String COLUMNNAME_Name = "Name"; /** Set Name. - * Alphanumeric identifier of the entity + * Alphanumeric identifier of the entity */ - public void setName (String Name); + public void setName (String Name); /** Get Name. - * Alphanumeric identifier of the entity + * Alphanumeric identifier of the entity */ - public String getName(); -} + public String getName(); +} diff --git a/base/src/org/compiere/model/MAcctSchema.java b/base/src/org/compiere/model/MAcctSchema.java index 5949783a4a..5798bb2213 100644 --- a/base/src/org/compiere/model/MAcctSchema.java +++ b/base/src/org/compiere/model/MAcctSchema.java @@ -514,16 +514,32 @@ public class MAcctSchema extends X_C_AcctSchema } // isCostingLevelBatch /** - * Create Commitment Accounting + * Create PO Commitment Accounting * @return true if creaet commitments */ - public boolean isCreateCommitment() + public boolean isCreatePOCommitment() { String s = getCommitmentType(); if (s == null) return false; - return COMMITMENTTYPE_CommitmentOnly.equals(s) - || COMMITMENTTYPE_CommitmentReservation.equals(s); + return COMMITMENTTYPE_POCommitmentOnly.equals(s) + || COMMITMENTTYPE_POCommitmentReservation.equals(s) + || COMMITMENTTYPE_POSOCommitmentReservation.equals(s) + || COMMITMENTTYPE_POSOCommitment.equals(s); + } // isCreateCommitment + + /** + * Create SO Commitment Accounting + * @return true if creaet commitments + */ + public boolean isCreateSOCommitment() + { + String s = getCommitmentType(); + if (s == null) + return false; + return COMMITMENTTYPE_SOCommitmentOnly.equals(s) + || COMMITMENTTYPE_POSOCommitmentReservation.equals(s) + || COMMITMENTTYPE_POSOCommitment.equals(s); } // isCreateCommitment /** @@ -535,7 +551,8 @@ public class MAcctSchema extends X_C_AcctSchema String s = getCommitmentType(); if (s == null) return false; - return COMMITMENTTYPE_CommitmentReservation.equals(s); + return COMMITMENTTYPE_POCommitmentReservation.equals(s) + || COMMITMENTTYPE_POSOCommitmentReservation.equals(s); } // isCreateReservation /** diff --git a/base/src/org/compiere/model/MSetup.java b/base/src/org/compiere/model/MSetup.java index d6c2be57f4..0d531a67c2 100644 --- a/base/src/org/compiere/model/MSetup.java +++ b/base/src/org/compiere/model/MSetup.java @@ -560,7 +560,7 @@ public final class MSetup + "USECURRENCYBALANCING,CURRENCYBALANCING_Acct," + "RETAINEDEARNING_Acct,INCOMESUMMARY_Acct," + "INTERCOMPANYDUETO_Acct,INTERCOMPANYDUEFROM_Acct," - + "PPVOFFSET_Acct, CommitmentOffset_Acct) VALUES ("); + + "PPVOFFSET_Acct, CommitmentOffset_Acct, CommitmentOffsetSales_Acct) VALUES ("); sqlCmd.append(m_stdValues).append(",").append(m_as.getC_AcctSchema_ID()).append(",") .append("'Y',").append(getAcct("SUSPENSEBALANCING_Acct")).append(",") .append("'Y',").append(getAcct("SUSPENSEERROR_Acct")).append(",") @@ -572,7 +572,8 @@ public final class MSetup .append(getAcct("INTERCOMPANYDUETO_Acct")).append(",") .append(getAcct("INTERCOMPANYDUEFROM_Acct")).append(",") .append(getAcct("PPVOFFSET_Acct")).append(",") - .append(getAcct("CommitmentOffset_Acct")) + .append(getAcct("CommitmentOffset_Acct")).append(",") + .append(getAcct("CommitmentOffsetSales_Acct")) .append(")"); if (m_accountsOK) no = DB.executeUpdate(sqlCmd.toString(), m_trx.getTrxName()); diff --git a/base/src/org/compiere/model/X_C_AcctSchema.java b/base/src/org/compiere/model/X_C_AcctSchema.java index 13d5af8e06..b96e1a12ce 100644 --- a/base/src/org/compiere/model/X_C_AcctSchema.java +++ b/base/src/org/compiere/model/X_C_AcctSchema.java @@ -247,12 +247,18 @@ public class X_C_AcctSchema extends PO implements I_C_AcctSchema, I_Persistent /** CommitmentType AD_Reference_ID=359 */ public static final int COMMITMENTTYPE_AD_Reference_ID=359; - /** Commitment only = C */ - public static final String COMMITMENTTYPE_CommitmentOnly = "C"; - /** Commitment & Reservation = B */ - public static final String COMMITMENTTYPE_CommitmentReservation = "B"; + /** PO Commitment only = C */ + public static final String COMMITMENTTYPE_POCommitmentOnly = "C"; + /** PO Commitment & Reservation = B */ + public static final String COMMITMENTTYPE_POCommitmentReservation = "B"; /** None = N */ public static final String COMMITMENTTYPE_None = "N"; + /** PO/SO Commitment & Reservation = A */ + public static final String COMMITMENTTYPE_POSOCommitmentReservation = "A"; + /** SO Commitment only = S */ + public static final String COMMITMENTTYPE_SOCommitmentOnly = "S"; + /** PO/SO Commitment = O */ + public static final String COMMITMENTTYPE_POSOCommitment = "O"; /** Set Commitment Type. @param CommitmentType Create Commitment and/or Reservations for Budget Control @@ -260,7 +266,7 @@ public class X_C_AcctSchema extends PO implements I_C_AcctSchema, I_Persistent public void setCommitmentType (String CommitmentType) { if (CommitmentType == null) throw new IllegalArgumentException ("CommitmentType is mandatory"); - if (CommitmentType.equals("C") || CommitmentType.equals("B") || CommitmentType.equals("N")); else throw new IllegalArgumentException ("CommitmentType Invalid value - " + CommitmentType + " - Reference_ID=359 - C - B - N"); + if (CommitmentType.equals("C") || CommitmentType.equals("B") || CommitmentType.equals("N") || CommitmentType.equals("A") || CommitmentType.equals("S") || CommitmentType.equals("O")); else throw new IllegalArgumentException ("CommitmentType Invalid value - " + CommitmentType + " - Reference_ID=359 - C - B - N - A - S - O"); if (CommitmentType.length() > 1) { log.warning("Length > 1 - truncated"); diff --git a/base/src/org/compiere/model/X_C_AcctSchema_GL.java b/base/src/org/compiere/model/X_C_AcctSchema_GL.java index 9cdb6f09ac..f822be89e7 100644 --- a/base/src/org/compiere/model/X_C_AcctSchema_GL.java +++ b/base/src/org/compiere/model/X_C_AcctSchema_GL.java @@ -14,349 +14,371 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -/** Generated Model - DO NOT CHANGE */ -package org.compiere.model; - -import java.util.*; -import java.sql.*; -import java.math.*; -import java.lang.reflect.Constructor; -import java.util.logging.Level; -import org.compiere.util.*; - -/** Generated Model for C_AcctSchema_GL - * @author Adempiere (generated) - * @version Release 3.3.0 - $Id$ */ -public class X_C_AcctSchema_GL extends PO implements I_C_AcctSchema_GL, I_Persistent -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** Standard Constructor */ - public X_C_AcctSchema_GL (Properties ctx, int C_AcctSchema_GL_ID, String trxName) - { - super (ctx, C_AcctSchema_GL_ID, trxName); - /** if (C_AcctSchema_GL_ID == 0) { setC_AcctSchema_ID (0); - setCommitmentOffset_Acct (0); - setIncomeSummary_Acct (0); - setIntercompanyDueFrom_Acct (0); - setIntercompanyDueTo_Acct (0); - setPPVOffset_Acct (0); - setRetainedEarning_Acct (0); - setUseCurrencyBalancing (false); - setUseSuspenseBalancing (false); - setUseSuspenseError (false); -} */ - } - - /** Load Constructor */ - public X_C_AcctSchema_GL (Properties ctx, ResultSet rs, String trxName) - { - super (ctx, rs, trxName); - } - - /** AccessLevel - * @return 2 - Client - */ - protected int get_AccessLevel() - { - return accessLevel.intValue(); - } - - /** Load Meta Data */ - protected POInfo initPO (Properties ctx) - { - POInfo poi = POInfo.getPOInfo (ctx, Table_ID); - return poi; - } - - public String toString() - { - StringBuffer sb = new StringBuffer ("X_C_AcctSchema_GL[") - .append(get_ID()).append("]"); - return sb.toString(); - } - - public I_C_AcctSchema getI_C_AcctSchema() throws Exception - { - Class clazz = MTable.getClass(I_C_AcctSchema.Table_Name); - I_C_AcctSchema result = null; - try { - Constructor constructor = null; - constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class}); - result = (I_C_AcctSchema)constructor.newInstance(new Object[] {getCtx(), new Integer(getC_AcctSchema_ID()), get_TrxName()}); - } catch (Exception e) { - log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e); - log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz); - throw e; - } - return result; - } - - /** Set Accounting Schema. - @param C_AcctSchema_ID - Rules for accounting - */ - public void setC_AcctSchema_ID (int C_AcctSchema_ID) - { - if (C_AcctSchema_ID < 1) - throw new IllegalArgumentException ("C_AcctSchema_ID is mandatory."); - set_ValueNoCheck (COLUMNNAME_C_AcctSchema_ID, Integer.valueOf(C_AcctSchema_ID)); - } - - /** Get Accounting Schema. - @return Rules for accounting - */ - public int getC_AcctSchema_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_C_AcctSchema_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Get Record ID/ColumnName - @return ID/ColumnName pair - */ - public KeyNamePair getKeyNamePair() - { - return new KeyNamePair(get_ID(), String.valueOf(getC_AcctSchema_ID())); - } - - /** Set Commitment Offset. - @param CommitmentOffset_Acct - Budgetary Commitment Offset Account - */ - public void setCommitmentOffset_Acct (int CommitmentOffset_Acct) - { - set_Value (COLUMNNAME_CommitmentOffset_Acct, Integer.valueOf(CommitmentOffset_Acct)); - } - - /** Get Commitment Offset. - @return Budgetary Commitment Offset Account - */ - public int getCommitmentOffset_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_CommitmentOffset_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Currency Balancing Acct. - @param CurrencyBalancing_Acct - Account used when a currency is out of balance - */ - public void setCurrencyBalancing_Acct (int CurrencyBalancing_Acct) - { - set_Value (COLUMNNAME_CurrencyBalancing_Acct, Integer.valueOf(CurrencyBalancing_Acct)); - } - - /** Get Currency Balancing Acct. - @return Account used when a currency is out of balance - */ - public int getCurrencyBalancing_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_CurrencyBalancing_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Income Summary Acct. - @param IncomeSummary_Acct - Income Summary Account - */ - public void setIncomeSummary_Acct (int IncomeSummary_Acct) - { - set_Value (COLUMNNAME_IncomeSummary_Acct, Integer.valueOf(IncomeSummary_Acct)); - } - - /** Get Income Summary Acct. - @return Income Summary Account - */ - public int getIncomeSummary_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_IncomeSummary_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Intercompany Due From Acct. - @param IntercompanyDueFrom_Acct - Intercompany Due From / Receivables Account - */ - public void setIntercompanyDueFrom_Acct (int IntercompanyDueFrom_Acct) - { - set_Value (COLUMNNAME_IntercompanyDueFrom_Acct, Integer.valueOf(IntercompanyDueFrom_Acct)); - } - - /** Get Intercompany Due From Acct. - @return Intercompany Due From / Receivables Account - */ - public int getIntercompanyDueFrom_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_IntercompanyDueFrom_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Intercompany Due To Acct. - @param IntercompanyDueTo_Acct - Intercompany Due To / Payable Account - */ - public void setIntercompanyDueTo_Acct (int IntercompanyDueTo_Acct) - { - set_Value (COLUMNNAME_IntercompanyDueTo_Acct, Integer.valueOf(IntercompanyDueTo_Acct)); - } - - /** Get Intercompany Due To Acct. - @return Intercompany Due To / Payable Account - */ - public int getIntercompanyDueTo_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_IntercompanyDueTo_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set PPV Offset. - @param PPVOffset_Acct - Purchase Price Variance Offset Account - */ - public void setPPVOffset_Acct (int PPVOffset_Acct) - { - set_Value (COLUMNNAME_PPVOffset_Acct, Integer.valueOf(PPVOffset_Acct)); - } - - /** Get PPV Offset. - @return Purchase Price Variance Offset Account - */ - public int getPPVOffset_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_PPVOffset_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Retained Earning Acct. - @param RetainedEarning_Acct Retained Earning Acct */ - public void setRetainedEarning_Acct (int RetainedEarning_Acct) - { - set_Value (COLUMNNAME_RetainedEarning_Acct, Integer.valueOf(RetainedEarning_Acct)); - } - +/** Generated Model - DO NOT CHANGE */ +package org.compiere.model; + +import java.lang.reflect.Constructor; +import java.sql.ResultSet; +import java.util.Properties; +import java.util.logging.Level; +import org.compiere.util.KeyNamePair; + +/** Generated Model for C_AcctSchema_GL + * @author Adempiere (generated) + * @version Release 3.3.0 - $Id$ */ +public class X_C_AcctSchema_GL extends PO implements I_C_AcctSchema_GL, I_Persistent +{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** Standard Constructor */ + public X_C_AcctSchema_GL (Properties ctx, int C_AcctSchema_GL_ID, String trxName) + { + super (ctx, C_AcctSchema_GL_ID, trxName); + /** if (C_AcctSchema_GL_ID == 0) + { + setC_AcctSchema_ID (0); + setCommitmentOffsetSales_Acct (0); + setCommitmentOffset_Acct (0); + setIncomeSummary_Acct (0); + setIntercompanyDueFrom_Acct (0); + setIntercompanyDueTo_Acct (0); + setPPVOffset_Acct (0); + setRetainedEarning_Acct (0); + setUseCurrencyBalancing (false); + setUseSuspenseBalancing (false); + setUseSuspenseError (false); + } */ + } + + /** Load Constructor */ + public X_C_AcctSchema_GL (Properties ctx, ResultSet rs, String trxName) + { + super (ctx, rs, trxName); + } + + /** AccessLevel + * @return 2 - Client + */ + protected int get_AccessLevel() + { + return accessLevel.intValue(); + } + + /** Load Meta Data */ + protected POInfo initPO (Properties ctx) + { + POInfo poi = POInfo.getPOInfo (ctx, Table_ID); + return poi; + } + + public String toString() + { + StringBuffer sb = new StringBuffer ("X_C_AcctSchema_GL[") + .append(get_ID()).append("]"); + return sb.toString(); + } + + public I_C_AcctSchema getC_AcctSchema() throws Exception + { + Class clazz = MTable.getClass(I_C_AcctSchema.Table_Name); + I_C_AcctSchema result = null; + try { + Constructor constructor = null; + constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class}); + result = (I_C_AcctSchema)constructor.newInstance(new Object[] {getCtx(), new Integer(getC_AcctSchema_ID()), get_TrxName()}); + } catch (Exception e) { + log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e); + log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz); + throw e; + } + return result; + } + + /** Set Accounting Schema. + @param C_AcctSchema_ID + Rules for accounting + */ + public void setC_AcctSchema_ID (int C_AcctSchema_ID) + { + if (C_AcctSchema_ID < 1) + throw new IllegalArgumentException ("C_AcctSchema_ID is mandatory."); + set_ValueNoCheck (COLUMNNAME_C_AcctSchema_ID, Integer.valueOf(C_AcctSchema_ID)); + } + + /** Get Accounting Schema. + @return Rules for accounting + */ + public int getC_AcctSchema_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_C_AcctSchema_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Get Record ID/ColumnName + @return ID/ColumnName pair + */ + public KeyNamePair getKeyNamePair() + { + return new KeyNamePair(get_ID(), String.valueOf(getC_AcctSchema_ID())); + } + + /** Set Commitment Offset Sales. + @param CommitmentOffsetSales_Acct + Budgetary Commitment Offset Account for Sales + */ + public void setCommitmentOffsetSales_Acct (int CommitmentOffsetSales_Acct) + { + set_Value (COLUMNNAME_CommitmentOffsetSales_Acct, Integer.valueOf(CommitmentOffsetSales_Acct)); + } + + /** Get Commitment Offset Sales. + @return Budgetary Commitment Offset Account for Sales + */ + public int getCommitmentOffsetSales_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_CommitmentOffsetSales_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Commitment Offset. + @param CommitmentOffset_Acct + Budgetary Commitment Offset Account + */ + public void setCommitmentOffset_Acct (int CommitmentOffset_Acct) + { + set_Value (COLUMNNAME_CommitmentOffset_Acct, Integer.valueOf(CommitmentOffset_Acct)); + } + + /** Get Commitment Offset. + @return Budgetary Commitment Offset Account + */ + public int getCommitmentOffset_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_CommitmentOffset_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Currency Balancing Acct. + @param CurrencyBalancing_Acct + Account used when a currency is out of balance + */ + public void setCurrencyBalancing_Acct (int CurrencyBalancing_Acct) + { + set_Value (COLUMNNAME_CurrencyBalancing_Acct, Integer.valueOf(CurrencyBalancing_Acct)); + } + + /** Get Currency Balancing Acct. + @return Account used when a currency is out of balance + */ + public int getCurrencyBalancing_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_CurrencyBalancing_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Income Summary Acct. + @param IncomeSummary_Acct + Income Summary Account + */ + public void setIncomeSummary_Acct (int IncomeSummary_Acct) + { + set_Value (COLUMNNAME_IncomeSummary_Acct, Integer.valueOf(IncomeSummary_Acct)); + } + + /** Get Income Summary Acct. + @return Income Summary Account + */ + public int getIncomeSummary_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_IncomeSummary_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Intercompany Due From Acct. + @param IntercompanyDueFrom_Acct + Intercompany Due From / Receivables Account + */ + public void setIntercompanyDueFrom_Acct (int IntercompanyDueFrom_Acct) + { + set_Value (COLUMNNAME_IntercompanyDueFrom_Acct, Integer.valueOf(IntercompanyDueFrom_Acct)); + } + + /** Get Intercompany Due From Acct. + @return Intercompany Due From / Receivables Account + */ + public int getIntercompanyDueFrom_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_IntercompanyDueFrom_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Intercompany Due To Acct. + @param IntercompanyDueTo_Acct + Intercompany Due To / Payable Account + */ + public void setIntercompanyDueTo_Acct (int IntercompanyDueTo_Acct) + { + set_Value (COLUMNNAME_IntercompanyDueTo_Acct, Integer.valueOf(IntercompanyDueTo_Acct)); + } + + /** Get Intercompany Due To Acct. + @return Intercompany Due To / Payable Account + */ + public int getIntercompanyDueTo_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_IntercompanyDueTo_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set PPV Offset. + @param PPVOffset_Acct + Purchase Price Variance Offset Account + */ + public void setPPVOffset_Acct (int PPVOffset_Acct) + { + set_Value (COLUMNNAME_PPVOffset_Acct, Integer.valueOf(PPVOffset_Acct)); + } + + /** Get PPV Offset. + @return Purchase Price Variance Offset Account + */ + public int getPPVOffset_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_PPVOffset_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Retained Earning Acct. + @param RetainedEarning_Acct Retained Earning Acct */ + public void setRetainedEarning_Acct (int RetainedEarning_Acct) + { + set_Value (COLUMNNAME_RetainedEarning_Acct, Integer.valueOf(RetainedEarning_Acct)); + } + /** Get Retained Earning Acct. -@return Retained Earning Acct */ - public int getRetainedEarning_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_RetainedEarning_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Suspense Balancing Acct. - @param SuspenseBalancing_Acct Suspense Balancing Acct */ - public void setSuspenseBalancing_Acct (int SuspenseBalancing_Acct) - { - set_Value (COLUMNNAME_SuspenseBalancing_Acct, Integer.valueOf(SuspenseBalancing_Acct)); - } - + @return Retained Earning Acct */ + public int getRetainedEarning_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_RetainedEarning_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Suspense Balancing Acct. + @param SuspenseBalancing_Acct Suspense Balancing Acct */ + public void setSuspenseBalancing_Acct (int SuspenseBalancing_Acct) + { + set_Value (COLUMNNAME_SuspenseBalancing_Acct, Integer.valueOf(SuspenseBalancing_Acct)); + } + /** Get Suspense Balancing Acct. -@return Suspense Balancing Acct */ - public int getSuspenseBalancing_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_SuspenseBalancing_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Suspense Error Acct. - @param SuspenseError_Acct Suspense Error Acct */ - public void setSuspenseError_Acct (int SuspenseError_Acct) - { - set_Value (COLUMNNAME_SuspenseError_Acct, Integer.valueOf(SuspenseError_Acct)); - } - + @return Suspense Balancing Acct */ + public int getSuspenseBalancing_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_SuspenseBalancing_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Suspense Error Acct. + @param SuspenseError_Acct Suspense Error Acct */ + public void setSuspenseError_Acct (int SuspenseError_Acct) + { + set_Value (COLUMNNAME_SuspenseError_Acct, Integer.valueOf(SuspenseError_Acct)); + } + /** Get Suspense Error Acct. -@return Suspense Error Acct */ - public int getSuspenseError_Acct () - { - Integer ii = (Integer)get_Value(COLUMNNAME_SuspenseError_Acct); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Use Currency Balancing. - @param UseCurrencyBalancing Use Currency Balancing */ - public void setUseCurrencyBalancing (boolean UseCurrencyBalancing) - { - set_Value (COLUMNNAME_UseCurrencyBalancing, Boolean.valueOf(UseCurrencyBalancing)); - } - + @return Suspense Error Acct */ + public int getSuspenseError_Acct () + { + Integer ii = (Integer)get_Value(COLUMNNAME_SuspenseError_Acct); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Use Currency Balancing. + @param UseCurrencyBalancing Use Currency Balancing */ + public void setUseCurrencyBalancing (boolean UseCurrencyBalancing) + { + set_Value (COLUMNNAME_UseCurrencyBalancing, Boolean.valueOf(UseCurrencyBalancing)); + } + /** Get Use Currency Balancing. -@return Use Currency Balancing */ - public boolean isUseCurrencyBalancing () - { - Object oo = get_Value(COLUMNNAME_UseCurrencyBalancing); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } - - /** Set Use Suspense Balancing. - @param UseSuspenseBalancing Use Suspense Balancing */ - public void setUseSuspenseBalancing (boolean UseSuspenseBalancing) - { - set_Value (COLUMNNAME_UseSuspenseBalancing, Boolean.valueOf(UseSuspenseBalancing)); - } - + @return Use Currency Balancing */ + public boolean isUseCurrencyBalancing () + { + Object oo = get_Value(COLUMNNAME_UseCurrencyBalancing); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + + /** Set Use Suspense Balancing. + @param UseSuspenseBalancing Use Suspense Balancing */ + public void setUseSuspenseBalancing (boolean UseSuspenseBalancing) + { + set_Value (COLUMNNAME_UseSuspenseBalancing, Boolean.valueOf(UseSuspenseBalancing)); + } + /** Get Use Suspense Balancing. -@return Use Suspense Balancing */ - public boolean isUseSuspenseBalancing () - { - Object oo = get_Value(COLUMNNAME_UseSuspenseBalancing); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } - - /** Set Use Suspense Error. - @param UseSuspenseError Use Suspense Error */ - public void setUseSuspenseError (boolean UseSuspenseError) - { - set_Value (COLUMNNAME_UseSuspenseError, Boolean.valueOf(UseSuspenseError)); - } - + @return Use Suspense Balancing */ + public boolean isUseSuspenseBalancing () + { + Object oo = get_Value(COLUMNNAME_UseSuspenseBalancing); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + + /** Set Use Suspense Error. + @param UseSuspenseError Use Suspense Error */ + public void setUseSuspenseError (boolean UseSuspenseError) + { + set_Value (COLUMNNAME_UseSuspenseError, Boolean.valueOf(UseSuspenseError)); + } + /** Get Use Suspense Error. -@return Use Suspense Error */ - public boolean isUseSuspenseError () - { - Object oo = get_Value(COLUMNNAME_UseSuspenseError); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } + @return Use Suspense Error */ + public boolean isUseSuspenseError () + { + Object oo = get_Value(COLUMNNAME_UseSuspenseError); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } } \ No newline at end of file diff --git a/base/src/org/compiere/model/X_GL_BudgetControl.java b/base/src/org/compiere/model/X_GL_BudgetControl.java index 0e21c48544..16b832fafe 100644 --- a/base/src/org/compiere/model/X_GL_BudgetControl.java +++ b/base/src/org/compiere/model/X_GL_BudgetControl.java @@ -14,319 +14,339 @@ * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * * or via info@compiere.org or http://www.compiere.org/license.html * *****************************************************************************/ -/** Generated Model - DO NOT CHANGE */ -package org.compiere.model; - -import java.util.*; -import java.sql.*; -import java.math.*; -import java.lang.reflect.Constructor; -import java.util.logging.Level; -import org.compiere.util.*; - -/** Generated Model for GL_BudgetControl - * @author Adempiere (generated) - * @version Release 3.3.0 - $Id$ */ -public class X_GL_BudgetControl extends PO implements I_GL_BudgetControl, I_Persistent -{ - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** Standard Constructor */ - public X_GL_BudgetControl (Properties ctx, int GL_BudgetControl_ID, String trxName) - { - super (ctx, GL_BudgetControl_ID, trxName); - /** if (GL_BudgetControl_ID == 0) { setBudgetControlScope (null); - setC_AcctSchema_ID (0); - setCommitmentType (null); -// C - setGL_BudgetControl_ID (0); - setGL_Budget_ID (0); - setIsBeforeApproval (false); - setName (null); -} */ - } - - /** Load Constructor */ - public X_GL_BudgetControl (Properties ctx, ResultSet rs, String trxName) - { - super (ctx, rs, trxName); - } - - /** AccessLevel - * @return 2 - Client - */ - protected int get_AccessLevel() - { - return accessLevel.intValue(); - } - - /** Load Meta Data */ - protected POInfo initPO (Properties ctx) - { - POInfo poi = POInfo.getPOInfo (ctx, Table_ID); - return poi; - } - - public String toString() - { - StringBuffer sb = new StringBuffer ("X_GL_BudgetControl[") - .append(get_ID()).append("]"); - return sb.toString(); - } +/** Generated Model - DO NOT CHANGE */ +package org.compiere.model; -/** BudgetControlScope AD_Reference_ID=361 */ -public static final int BUDGETCONTROLSCOPE_AD_Reference_ID=361;/** Period only = P */ -public static final String BUDGETCONTROLSCOPE_PeriodOnly = "P";/** Total = T */ -public static final String BUDGETCONTROLSCOPE_Total = "T";/** Year To Date = Y */ -public static final String BUDGETCONTROLSCOPE_YearToDate = "Y"; - /** Set Control Scope. - @param BudgetControlScope - Scope of the Budget Control - */ - public void setBudgetControlScope (String BudgetControlScope) - { -if (BudgetControlScope == null) throw new IllegalArgumentException ("BudgetControlScope is mandatory");if (BudgetControlScope.equals("P") || BudgetControlScope.equals("T") || BudgetControlScope.equals("Y")); else throw new IllegalArgumentException ("BudgetControlScope Invalid value - " + BudgetControlScope + " - Reference_ID=361 - P - T - Y"); if (BudgetControlScope.length() > 1) - { - log.warning("Length > 1 - truncated"); - BudgetControlScope = BudgetControlScope.substring(0, 0); - } - set_Value (COLUMNNAME_BudgetControlScope, BudgetControlScope); - } - - /** Get Control Scope. - @return Scope of the Budget Control - */ - public String getBudgetControlScope () - { - return (String)get_Value(COLUMNNAME_BudgetControlScope); - } - - public I_C_AcctSchema getI_C_AcctSchema() throws Exception - { - Class clazz = MTable.getClass(I_C_AcctSchema.Table_Name); - I_C_AcctSchema result = null; - try { - Constructor constructor = null; - constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class}); - result = (I_C_AcctSchema)constructor.newInstance(new Object[] {getCtx(), new Integer(getC_AcctSchema_ID()), get_TrxName()}); - } catch (Exception e) { - log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e); - log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz); - throw e; - } - return result; - } - - /** Set Accounting Schema. - @param C_AcctSchema_ID - Rules for accounting - */ - public void setC_AcctSchema_ID (int C_AcctSchema_ID) - { - if (C_AcctSchema_ID < 1) - throw new IllegalArgumentException ("C_AcctSchema_ID is mandatory."); - set_Value (COLUMNNAME_C_AcctSchema_ID, Integer.valueOf(C_AcctSchema_ID)); - } - - /** Get Accounting Schema. - @return Rules for accounting - */ - public int getC_AcctSchema_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_C_AcctSchema_ID); - if (ii == null) - return 0; - return ii.intValue(); - } +import java.lang.reflect.Constructor; +import java.sql.ResultSet; +import java.util.Properties; +import java.util.logging.Level; +import org.compiere.util.KeyNamePair; -/** CommitmentType AD_Reference_ID=359 */ -public static final int COMMITMENTTYPE_AD_Reference_ID=359;/** Commitment & Reservation = B */ -public static final String COMMITMENTTYPE_CommitmentReservation = "B";/** Commitment only = C */ -public static final String COMMITMENTTYPE_CommitmentOnly = "C";/** None = N */ -public static final String COMMITMENTTYPE_None = "N"; - /** Set Commitment Type. - @param CommitmentType - Create Commitment and/or Reservations for Budget Control - */ - public void setCommitmentType (String CommitmentType) - { -if (CommitmentType == null) throw new IllegalArgumentException ("CommitmentType is mandatory");if (CommitmentType.equals("B") || CommitmentType.equals("C") || CommitmentType.equals("N")); else throw new IllegalArgumentException ("CommitmentType Invalid value - " + CommitmentType + " - Reference_ID=359 - B - C - N"); if (CommitmentType.length() > 1) - { - log.warning("Length > 1 - truncated"); - CommitmentType = CommitmentType.substring(0, 0); - } - set_Value (COLUMNNAME_CommitmentType, CommitmentType); - } - - /** Get Commitment Type. - @return Create Commitment and/or Reservations for Budget Control - */ - public String getCommitmentType () - { - return (String)get_Value(COLUMNNAME_CommitmentType); - } - - /** Set Description. - @param Description - Optional short description of the record - */ - public void setDescription (String Description) - { - if (Description != null && Description.length() > 255) - { - log.warning("Length > 255 - truncated"); - Description = Description.substring(0, 254); - } - set_Value (COLUMNNAME_Description, Description); - } - - /** Get Description. - @return Optional short description of the record - */ - public String getDescription () - { - return (String)get_Value(COLUMNNAME_Description); - } - - /** Set Budget Control. - @param GL_BudgetControl_ID - Budget Control - */ - public void setGL_BudgetControl_ID (int GL_BudgetControl_ID) - { - if (GL_BudgetControl_ID < 1) - throw new IllegalArgumentException ("GL_BudgetControl_ID is mandatory."); - set_ValueNoCheck (COLUMNNAME_GL_BudgetControl_ID, Integer.valueOf(GL_BudgetControl_ID)); - } - - /** Get Budget Control. - @return Budget Control - */ - public int getGL_BudgetControl_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_GL_BudgetControl_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - public I_GL_Budget getI_GL_Budget() throws Exception - { - Class clazz = MTable.getClass(I_GL_Budget.Table_Name); - I_GL_Budget result = null; - try { - Constructor constructor = null; - constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class}); - result = (I_GL_Budget)constructor.newInstance(new Object[] {getCtx(), new Integer(getGL_Budget_ID()), get_TrxName()}); - } catch (Exception e) { - log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e); - log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz); - throw e; - } - return result; - } - - /** Set Budget. - @param GL_Budget_ID - General Ledger Budget - */ - public void setGL_Budget_ID (int GL_Budget_ID) - { - if (GL_Budget_ID < 1) - throw new IllegalArgumentException ("GL_Budget_ID is mandatory."); - set_Value (COLUMNNAME_GL_Budget_ID, Integer.valueOf(GL_Budget_ID)); - } - - /** Get Budget. - @return General Ledger Budget - */ - public int getGL_Budget_ID () - { - Integer ii = (Integer)get_Value(COLUMNNAME_GL_Budget_ID); - if (ii == null) - return 0; - return ii.intValue(); - } - - /** Set Comment/Help. - @param Help - Comment or Hint - */ - public void setHelp (String Help) - { - if (Help != null && Help.length() > 2000) - { - log.warning("Length > 2000 - truncated"); - Help = Help.substring(0, 1999); - } - set_Value (COLUMNNAME_Help, Help); - } - - /** Get Comment/Help. - @return Comment or Hint - */ - public String getHelp () - { - return (String)get_Value(COLUMNNAME_Help); - } - - /** Set Before Approval. - @param IsBeforeApproval - The Check is before the (manual) approval - */ - public void setIsBeforeApproval (boolean IsBeforeApproval) - { - set_Value (COLUMNNAME_IsBeforeApproval, Boolean.valueOf(IsBeforeApproval)); - } - - /** Get Before Approval. - @return The Check is before the (manual) approval - */ - public boolean isBeforeApproval () - { - Object oo = get_Value(COLUMNNAME_IsBeforeApproval); - if (oo != null) - { - if (oo instanceof Boolean) - return ((Boolean)oo).booleanValue(); - return "Y".equals(oo); - } - return false; - } - - /** Set Name. - @param Name - Alphanumeric identifier of the entity - */ - public void setName (String Name) - { - if (Name == null) - throw new IllegalArgumentException ("Name is mandatory."); - if (Name.length() > 120) - { - log.warning("Length > 120 - truncated"); - Name = Name.substring(0, 119); - } - set_Value (COLUMNNAME_Name, Name); - } - - /** Get Name. - @return Alphanumeric identifier of the entity - */ - public String getName () - { - return (String)get_Value(COLUMNNAME_Name); - } - - /** Get Record ID/ColumnName - @return ID/ColumnName pair - */ - public KeyNamePair getKeyNamePair() - { - return new KeyNamePair(get_ID(), getName()); - } +/** Generated Model for GL_BudgetControl + * @author Adempiere (generated) + * @version Release 3.3.0 - $Id$ */ +public class X_GL_BudgetControl extends PO implements I_GL_BudgetControl, I_Persistent +{ + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** Standard Constructor */ + public X_GL_BudgetControl (Properties ctx, int GL_BudgetControl_ID, String trxName) + { + super (ctx, GL_BudgetControl_ID, trxName); + /** if (GL_BudgetControl_ID == 0) + { + setBudgetControlScope (null); + setC_AcctSchema_ID (0); + setCommitmentType (null); +// C + setGL_BudgetControl_ID (0); + setGL_Budget_ID (0); + setIsBeforeApproval (false); + setName (null); + } */ + } + + /** Load Constructor */ + public X_GL_BudgetControl (Properties ctx, ResultSet rs, String trxName) + { + super (ctx, rs, trxName); + } + + /** AccessLevel + * @return 2 - Client + */ + protected int get_AccessLevel() + { + return accessLevel.intValue(); + } + + /** Load Meta Data */ + protected POInfo initPO (Properties ctx) + { + POInfo poi = POInfo.getPOInfo (ctx, Table_ID); + return poi; + } + + public String toString() + { + StringBuffer sb = new StringBuffer ("X_GL_BudgetControl[") + .append(get_ID()).append("]"); + return sb.toString(); + } + + /** BudgetControlScope AD_Reference_ID=361 */ + public static final int BUDGETCONTROLSCOPE_AD_Reference_ID=361; + /** Period only = P */ + public static final String BUDGETCONTROLSCOPE_PeriodOnly = "P"; + /** Year To Date = Y */ + public static final String BUDGETCONTROLSCOPE_YearToDate = "Y"; + /** Total = T */ + public static final String BUDGETCONTROLSCOPE_Total = "T"; + /** Set Control Scope. + @param BudgetControlScope + Scope of the Budget Control + */ + public void setBudgetControlScope (String BudgetControlScope) + { + if (BudgetControlScope == null) throw new IllegalArgumentException ("BudgetControlScope is mandatory"); + if (BudgetControlScope.equals("P") || BudgetControlScope.equals("Y") || BudgetControlScope.equals("T")); else throw new IllegalArgumentException ("BudgetControlScope Invalid value - " + BudgetControlScope + " - Reference_ID=361 - P - Y - T"); + if (BudgetControlScope.length() > 1) + { + log.warning("Length > 1 - truncated"); + BudgetControlScope = BudgetControlScope.substring(0, 1); + } + set_Value (COLUMNNAME_BudgetControlScope, BudgetControlScope); + } + + /** Get Control Scope. + @return Scope of the Budget Control + */ + public String getBudgetControlScope () + { + return (String)get_Value(COLUMNNAME_BudgetControlScope); + } + + public I_C_AcctSchema getC_AcctSchema() throws Exception + { + Class clazz = MTable.getClass(I_C_AcctSchema.Table_Name); + I_C_AcctSchema result = null; + try { + Constructor constructor = null; + constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class}); + result = (I_C_AcctSchema)constructor.newInstance(new Object[] {getCtx(), new Integer(getC_AcctSchema_ID()), get_TrxName()}); + } catch (Exception e) { + log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e); + log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz); + throw e; + } + return result; + } + + /** Set Accounting Schema. + @param C_AcctSchema_ID + Rules for accounting + */ + public void setC_AcctSchema_ID (int C_AcctSchema_ID) + { + if (C_AcctSchema_ID < 1) + throw new IllegalArgumentException ("C_AcctSchema_ID is mandatory."); + set_Value (COLUMNNAME_C_AcctSchema_ID, Integer.valueOf(C_AcctSchema_ID)); + } + + /** Get Accounting Schema. + @return Rules for accounting + */ + public int getC_AcctSchema_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_C_AcctSchema_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** CommitmentType AD_Reference_ID=359 */ + public static final int COMMITMENTTYPE_AD_Reference_ID=359; + /** PO Commitment only = C */ + public static final String COMMITMENTTYPE_POCommitmentOnly = "C"; + /** PO Commitment & Reservation = B */ + public static final String COMMITMENTTYPE_POCommitmentReservation = "B"; + /** None = N */ + public static final String COMMITMENTTYPE_None = "N"; + /** PO/SO Commitment & Reservation = A */ + public static final String COMMITMENTTYPE_POSOCommitmentReservation = "A"; + /** SO Commitment only = S */ + public static final String COMMITMENTTYPE_SOCommitmentOnly = "S"; + /** PO/SO Commitment = O */ + public static final String COMMITMENTTYPE_POSOCommitment = "O"; + /** Set Commitment Type. + @param CommitmentType + Create Commitment and/or Reservations for Budget Control + */ + public void setCommitmentType (String CommitmentType) + { + if (CommitmentType == null) throw new IllegalArgumentException ("CommitmentType is mandatory"); + if (CommitmentType.equals("C") || CommitmentType.equals("B") || CommitmentType.equals("N") || CommitmentType.equals("A") || CommitmentType.equals("S") || CommitmentType.equals("O")); else throw new IllegalArgumentException ("CommitmentType Invalid value - " + CommitmentType + " - Reference_ID=359 - C - B - N - A - S - O"); + if (CommitmentType.length() > 1) + { + log.warning("Length > 1 - truncated"); + CommitmentType = CommitmentType.substring(0, 1); + } + set_Value (COLUMNNAME_CommitmentType, CommitmentType); + } + + /** Get Commitment Type. + @return Create Commitment and/or Reservations for Budget Control + */ + public String getCommitmentType () + { + return (String)get_Value(COLUMNNAME_CommitmentType); + } + + /** Set Description. + @param Description + Optional short description of the record + */ + public void setDescription (String Description) + { + + if (Description != null && Description.length() > 255) + { + log.warning("Length > 255 - truncated"); + Description = Description.substring(0, 255); + } + set_Value (COLUMNNAME_Description, Description); + } + + /** Get Description. + @return Optional short description of the record + */ + public String getDescription () + { + return (String)get_Value(COLUMNNAME_Description); + } + + /** Set Budget Control. + @param GL_BudgetControl_ID + Budget Control + */ + public void setGL_BudgetControl_ID (int GL_BudgetControl_ID) + { + if (GL_BudgetControl_ID < 1) + throw new IllegalArgumentException ("GL_BudgetControl_ID is mandatory."); + set_ValueNoCheck (COLUMNNAME_GL_BudgetControl_ID, Integer.valueOf(GL_BudgetControl_ID)); + } + + /** Get Budget Control. + @return Budget Control + */ + public int getGL_BudgetControl_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_GL_BudgetControl_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + public I_GL_Budget getGL_Budget() throws Exception + { + Class clazz = MTable.getClass(I_GL_Budget.Table_Name); + I_GL_Budget result = null; + try { + Constructor constructor = null; + constructor = clazz.getDeclaredConstructor(new Class[]{Properties.class, int.class, String.class}); + result = (I_GL_Budget)constructor.newInstance(new Object[] {getCtx(), new Integer(getGL_Budget_ID()), get_TrxName()}); + } catch (Exception e) { + log.log(Level.SEVERE, "(id) - Table=" + Table_Name + ",Class=" + clazz, e); + log.saveError("Error", "Table=" + Table_Name + ",Class=" + clazz); + throw e; + } + return result; + } + + /** Set Budget. + @param GL_Budget_ID + General Ledger Budget + */ + public void setGL_Budget_ID (int GL_Budget_ID) + { + if (GL_Budget_ID < 1) + throw new IllegalArgumentException ("GL_Budget_ID is mandatory."); + set_Value (COLUMNNAME_GL_Budget_ID, Integer.valueOf(GL_Budget_ID)); + } + + /** Get Budget. + @return General Ledger Budget + */ + public int getGL_Budget_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_GL_Budget_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Comment/Help. + @param Help + Comment or Hint + */ + public void setHelp (String Help) + { + + if (Help != null && Help.length() > 2000) + { + log.warning("Length > 2000 - truncated"); + Help = Help.substring(0, 2000); + } + set_Value (COLUMNNAME_Help, Help); + } + + /** Get Comment/Help. + @return Comment or Hint + */ + public String getHelp () + { + return (String)get_Value(COLUMNNAME_Help); + } + + /** Set Before Approval. + @param IsBeforeApproval + The Check is before the (manual) approval + */ + public void setIsBeforeApproval (boolean IsBeforeApproval) + { + set_Value (COLUMNNAME_IsBeforeApproval, Boolean.valueOf(IsBeforeApproval)); + } + + /** Get Before Approval. + @return The Check is before the (manual) approval + */ + public boolean isBeforeApproval () + { + Object oo = get_Value(COLUMNNAME_IsBeforeApproval); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + + /** Set Name. + @param Name + Alphanumeric identifier of the entity + */ + public void setName (String Name) + { + if (Name == null) + throw new IllegalArgumentException ("Name is mandatory."); + + if (Name.length() > 120) + { + log.warning("Length > 120 - truncated"); + Name = Name.substring(0, 120); + } + set_Value (COLUMNNAME_Name, Name); + } + + /** Get Name. + @return Alphanumeric identifier of the entity + */ + public String getName () + { + return (String)get_Value(COLUMNNAME_Name); + } + + /** Get Record ID/ColumnName + @return ID/ColumnName pair + */ + public KeyNamePair getKeyNamePair() + { + return new KeyNamePair(get_ID(), getName()); + } } \ No newline at end of file diff --git a/data/import/AccountingUS.csv b/data/import/AccountingUS.csv index ff169bf8c5..aeec82049b 100644 --- a/data/import/AccountingUS.csv +++ b/data/import/AccountingUS.csv @@ -365,4 +365,5 @@ 95,Commitment Accounting,,Memo,,,Yes,,,,,,,,,,,, 951,PO Encumbrance,,Memo,,,No,,95,,,,,,,,,, 952,PO Commitment,,Memo,,,No,COMMITMENTOFFSET_ACCT,95,,,,,,,,,, +953,SO Commitment,,Memo,,,No,COMMITMENTOFFSETSALES_ACCT,95,,,,,,,,,, 955,SO Future Revenue,,Memo,,,No,,95,,,,,,,,,, diff --git a/data/import/AccountingUS.xls b/data/import/AccountingUS.xls index e02f1ee9d9fd121912c03ccf0d27232c493c15d8..289d59eeafed90100263a655bcb3a8cfc8b981f6 100644 GIT binary patch literal 91136 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 T95}&aPLzLwuoFJ)O2q!3 z`6&<`;#t&TUsez-#k;KFGD!OeBSf>o^7|0^{X=PYm;7ED3=S^&*Db-$)$`{afvW>t zcXW21v^z(BkCWg1@jENHO|JQ+NM;8)!NX|($>+}lBY(POJnwV){*I>dy&t8rz zKFv2_Z8DL&I9;J{)Y-m)SQ2^GBS)U?0gHGoyD}5m>l}Hu+oxWe?d*-X_LZQAwJ4g` zBWL(|WI#_IC4R=6pnFy|B5Vixw-K+i1D?;qdDpZ0{OGPDgKojFAQ(4c-1uqZ$Iq&n zym)i2JJ>vVbl0&Mts~X>O_hoIExOS-s6Q&*XvQp!gJVKX3VH_PI=AYCW}7YyrUY|> zpoXeUi8;;e;pSWsY@WQ>3dT(z2fb@@^J>5{BbbbTxHNp-lvwzpDKT}$@?ctUq$V>K zXg*ObM7ex@yZRi& zE+fyhD=ZJ=8#%Ssc7^3=pT`#X>1yPeb{To5U151FWS5a=+BNwgb{To5U150`-^i)5 zwks@0`#iS5Pgf())IThbh4c^OgyUg==ub!)FL`{2pRPupsef1=3*j4iraobLX8TNk zn)aFTZ{$=>>p4{P&y0T~H~NHmjXcZY__#IlOkN|$tQwgI{J8FflNoQu|Cw@QS0>Iu z{1BM@HpuDU6K~|l$Oq%S_@|RTULM&#b6orO9>?S*BM-MX<07+tSRQU~{E*o`EDyIg ze#mTZ!6PA@;bPqtGpi4(L-K`bo7$fLpyrPYtRwM>(GvFpByVI$}ge18n>Eu^$qgt z>Qe1ZZONwX>#EMi`YQ|nZpf0?uES7ZXR#T6hNFUx!4WxlZ)H6u4@1$1AG6aUZ{;u; zcwbh};65~~J|`=9H#ml+<$+3`3%VZ|j^8*ft6DSG3?j$Z+@Q|^_Rqaw?irkdm1fX$ zUsfJ|=LMtRV+&l-6Ekv8tTB526${IM1VdwYpfo5!nTPVWG!<`ZjkTp>RXgG>i5;ni z`b10X#2_eWPd3!U$ktfAsXmr!+mUFA)hC);5_QRVZ9^g!Z*5JqwPMXtnrKCvy1Mqp z_J(*{qTaV^OQxEz|1f)gO;oFRW2&Vsc|zQ^T2zDXD+PA4A=#Epv_f_3>DE|9d@ngi z2f^AzOWh7Alx$7J3R@EO$+p(mx+c6yBpMU-SSGDZZflDbCIG!HStshGPY(@(s%Gln z5G!winX#fobE*{(7!YgY$<9)v0gC_nSn;0bL{n>`6}zWb*B7Q>aR6_JrJ_GJXZ2b!K?fOD{R4 zLPHVtxwM|t8Y@1oJ=wMw2}uiPmL=L^8=&Y8*ijg7PPWAxW)`Lz8)2#_iK!RC9ZxoK zFflk0r@6jqEZG!G?5SfSfnzG-Eiqgdz8vGJq9w5{fk9Aj0MUzt>MO^miX~x z?S;3=-N|~4CT1_^UCDAS34~~(RU)_nzDB|@=}~+hauv+6-cBd1*=exWX|W~@RJ_!t zn(A9)%_e_Q)7i1T3EI~ZL;g$5{g19edO?Op+Ot<<)EM?Un-v<;S|H)hnNusj;~3G- zN74x~?-fK#em#;WLJ<~M#FO>Yp_^@-?n2{g+Y?Bx)hYCAEEE~yH4_t44KKb8-bDJtf1%OEJ|Irdrz= zCM#1ZxV8#O4-?t^8ccC3TT*b;+IY+MWD^>CH7eRUX&`-5=!m@#Rm_T(L~{F%HuMkl zK%BO>U`n)U8rL`pCdu`QrutM1l`Cn2ZEdNRy_h&#l1;lXLgBcyG{1gldutmr3xn58 z77i1-Zb181GmMG0K90$Xi2*IG6frAV7fBD@Wm7YTJkx798KGTOvThfz1a24zT_Q9X zuB#B)Z98HmO|9)M@uoV=A(&^9?Twh|GfvsGi3wKc)r^LPsoIt}d1+-U;sf1e=I_0k zOj8bWI+Be8FS#v|iNZ{#PefjitR0$5bM0(54OXX69&jKd6-QX4P$(T* zWo~TQ)rwlfNGp5qA9U0 z+2-U31=m-$mmzVzY$cd24&K?e4Q9EF-mpDtTR?y0<6UNYY-IIf;>$Iph7^|2A zydQ|#j-fa)R@GkHTGx_nCb(F$4JBm4bsh3R1&qS5Wz!wW=4SLafQk_jqBiVjCTx~s zq7p2yqcYJPPohGZh^&-^22C7$oIRzSE^kJ)#f609XvF|Fr%IaYQjJWU=FpmoL^qpR z-6T4AA^~kNXST#zS%dO)Ez1PX7cDl8(Y^78hSc$-W(IWmbGzivR^(4aQ#x;LXh|Z$ z6s3-DiWMYqnRF%eDneyi*A^>{*QQ!8xV`sHxw#x znd=FCD2cSRKwb=y-ux&S~sBXpF&k8dh3+av=QivFANFk||C5~@xNVFl` zu%BAYNrIQGPNDz9mtbU>$s{a{<@=t(c|#wffrW65nG>O^A48Z>*QT&=Lf!3#74iyd zvg45gVueU|=n!~&L!vge3PFsJ!>m`D*pAtJMZzs>?5b8I-gwLbt?dmGq-=@kN{7n& zM2lHvapL0HaR=#+*z{Pr8BACW!B?x}O-W3hT!^_IL%4Jv#qJb_apzO)vv>pRp!T*_ z%;-!Y&Fye`%q0uBFMLru2ALX42njoJxx|4{#GxTEh44E*j-^dFh%i-#5oOr=@g8mn z->pyVNY-&x7?#71bb<(T@__LD)oxTc1a08}ne`YPp5N5;Ta5j$R z&YyMoWOSyPaMvcV3PyLWKz=gQ?qnnw58)FxbgyK+UW}xSjOFDRY}Wm08T2*1?_0rz z9@0({(`C_}n2Ez=(@d0I$*}6aQGPq>z{*6jv9`UXRoo75b;eS$hAE~14_mm{bORD& z$!uYu@NU7f##GJjtRMd_Ogo*&)%mThDePv*WVklbSc}OX^OB52I3YZpiA-|8Y*28# z+9?HItU$8Dj2&;?5i7@ZjU^!#a!4=8#wZ$*O;OpcVAZ&TyDk{#v6->T)Lxw1E4XlO z3HuWZCwQFm79?(sWhJN+TpLVkX877u$V+B2kvRd18*K2x%SfN?gtIM#6=#s}9Go)* z*17EqqXhRLxYDrELA|V~G*ySVNw>mk>4-%&$cS9U8Zq3GK8V#OwqdcxtJ!o;4Sp|N zRD+ad7DSozcvopq1N!ti?;2M|*dE|SiIoD>Ye6kt$AyHm2}NA`lr27(XWZid7VNGh=~Rm(P!NE@Cjd7^`eKC*4$sVbk?j!URW57VT8Eb-irrw0 zybMvCA!ngtk~Mn4&Kv2($tWQi<`4MECtxeq0*{iOvnIyuhFpTPayWsYccp6aL%9^y zA2=@6QyMTIG53ITyT)ACQrh6wp|J0ZacDu~x(8mMKx zCCW;%<#a+AaW8|>(|Kq>8O$%(IYGiegmal5TNzI_S$S(%UWz3&+*@e&aHLtQ9TUtS zO3b$K$~x@kU|9+L!gy=Dqy>vYCbu)%*qD@pp5e~*SDWlYg_oF|dG&6f9U;5}~FwbH&7DXp-eCcmnxxVk34u&|mAET}2WuUb`InO|15qPSAT&>0@u5i3Zg zb{U_GOPxe?#2y!F(l8j?>`2t@;+$xA#A9;+RTbY25jxM@k3jm8Nk;k@5m``EQYP#r zMkg3mP_wSAq^P*8x@1L3agnHmnuOB)($ez6{OaN&>MSRa^98Prj*DZ>i#m||S8|+e z!|G9T5SJgaIfm66x71J%A`a?oK0|hKnQB_B9kWRTGB0ltG}}D`=-Jse<~(OEA}bB* z_>fXU4bqtIJp3iL7grWnRaX|T7jqC=VouUcR4ry|QH_g_u83}&Fx&rF;T6=NQE^#S zu{1=#3#vWOfm2XZk-u>*d|XvrT3l#ckN9%rwqD zG3gzckYBnkzq+KnY-N5)nbHte#2ea81+YDyYy#>EDRuz6SzTBVGKDpj#f8Ns>+=gr zO|-%3p;9gFPa-4T6qT$%qA4ybEH+)iS;@q0EMC7`R{uaPuBoUjwjnA#hVh0i9XB9j z48Lvdvf{8qL{#Z?5oGBp)#?wv4ahm`(NX1<8wDH9ym1%-Vi}sPuPH6bFDNN3sW#0f zM>G>fno>>EvAE%$8}>7#7Q`|ke0f!I<@yq5G0t_Sb5%7XHsc%;Zap_`(=}Gw5g6;X zK&)zSY{c%ukqmt7++zbc2A$l7AJzi3*!y5u$L$!)#nvNY458-kbZ`MvQdU^Lwzz8D z+O_%CJIEeb&5LnzGZpH);|%9wPC#z*6AZMgP?-p0wvx13^bV~;7JGlz! zq_}LIiKsa&tm8IJQz*cWuC+^y%28;xr9>WU zP*TBBBsC=WmRSzq+;%Mdq%T+3poRE^fo3m~=B+cNVx?zm6Bx6xrA(0}$P< zv%Q%xweeOA3@nv9>4pqe-6?}1+Y>A_U!>uT5VPJv;1E^Sp;T{115#q>2D~K0*|Qcc zVk{nok%4=#v6b!c6~=CYiMOPB)vEH+qLQ+eF7evUMeLW`xH@>Ex8)0BX?^F}0ob_L zgd4W-gv}zbY(pZpBfdM~ik5oZ=WK7|El+e|1JeI3R&49-$t{$s61mK3slIr5}6)U9AV3J$l;W-F* z0mdIAD{W1+vIfaGy~vW_#~3qR&)gu(jan`@EWm8|&CU}kxd&n85@F4<5md(|ij?`b z?1%SJUWDsjn4CtI_{KUQ1KP&RzlWAOr@{|(vtR8rMo|~3F|}Hyv_epDGd+QIQtMQXWRmcPj74shs5eDY>yA`AHmxxYoRDZqF_6;h6ziS>j2+yI z;Im9n)UO&o#Z8un7dTgO5?oiwa(JWm3VKBLN3b7=Ta|lbNF%Z8)O2qW_TXHhZ~elO zSk{g1lD3vTfXDK>xDqv8MSj^vOe)po>2d%Y39c>SSKyuveD5NxGQFyB9+ENAnS&b+ znqx&}`C4JYDLe`0^KW?K!EFkp=X4%sW|m~l{DG)8=D-6&Co(UbOJY3+{06QajmT{ zIKT7OwJbAx0Mcx-V#C+1A5jFPS5dsV%}ZRKg03$4dYM_yu>eTlSuj}*_?2cMhj+zh ze*m+eDI&aUIF(|B77Gh7-0WhCr%a0~tjo->YZYL5a*B%E=Vj9~MGTVyADK+Jd7TKG ztl~9g@y5g!q#Q3OO87@HwuBp2?`=+OfnC0#b=ww{eqM$L2%+f~nB_&XeB1(`Zz`~> z^{O4X&uECT8N9A4HhcD*S+UHsAPZOGxo|xn8B#LYpr7oV=3U}^)F=d_R-K?gx0p0zPM z=`gLTJhsB@_SmREC!`y=oPvoJceHSeF%|BMD(sbQ!3^%5T$BP8J&y+;%(@R(6{4JE zAhN1NMN^sB4hwLn5{t3)Ab~@D45z0@3>P1CNX`*0P*}*Ih9}m`tP^^G0#xo{R|JQ7 zjx#O7s9A}JN#to~+4}HIP?mQI)SU?2OQ*~v5dVyZq*`0EC);vOo6yo5d-Lvb4&4+1 z*IA#KTe!%5CV3`5t*p7t#0O@nMH!Z)RqcG9A_-@s|M-Zhc}5YFvLqxv3N$CqU$uyN zbC=RY9&UligZr?ulyegQcXt5s98l=ap?@R+x9i<)HY8f~f`8IK{Kx>Zk_-cj&m<*J ziyAtlL~{#@d}ifgP9Ryhhb5qrWI5EP{x&^eoQ!w)(2?#?ia6YIMhmFH$N1rcrZ#}M zL;oZXg4W4IMW!AHV+3%LQC>R<%GnEf$Jt%tk{g1XE<_{eK0E zl9A7Fw1%JCIGD4sJs`aoBH~z$>==}`PQS1M2W>y&Ac`II0t{0hHgJZE8;E_}a2|-a z#bZcUZsXLSL#p$aAC!X+MY>014rVBTJm{wZxp+Hhn>nAN?LjYshW-Zl!8C+-TpNT6 zA~@c(oez`RF@w{5sQLJ0LjxkzPu-`JW${m6&nq>@mT!4~*(Q)JB`ZSB-OF~&(= zstzUbRfmUgJ5796MP^W>;)9+vmqY7K((fyrLg(c43}syE+G2iFcdyi48kA+wM{ZHrObTZ@3G0~9EvVnU4tqHxzMe`-Mx`Ivlc6vk(eP{BA8s0 zuF{>1JnPy!&~SUzmb#|ze-)NukI?PJu&63uySAj7T87qLp9GcJJ%d@8TQG|Suj2I% zyk3eB+?^E!Nes(k%;A-&j%J{bmSL94!K5=Ba3A6|8&k-uSc+VXS3YYx27dfIUT?+g z1t=wtfkq3EQ+8q0twc6H3a*)sva3I8sdw;tHC|6a7%f2cG#Cmzi`N_Rx(9dIt5GYC z#NzWKygrB5n~;!hMNnRV-n$T+o6XR5H$tHjx~@jzod{i@$Lo*q8Xu1@_<_y`@cJlT z-$G>F58bc8!!IX6_btd+i=gu%lY-z+czqDBS3u`vF6@QQE8z8U&>5ef3|_(OTX?-6 zx<4}2=zQWdeDWW}UhjskduIjmY0IgzgWwN<>p3R~ zeh$CBfY-0Xuh-8F0)9Yo`@A5S41Z3X9|UjXb@YND*bl!hT4?;a`Uvz7{J3dR5R8H! zPdpNR0sn1ZjO*aPH}QHcUUx1Df@$#I$9TO9uist@U%-C_%kar?`0sYSo`BaAm*aZ) zaakUef*<$e^-8=p<_Ez{__L@0ANqtJ#}x*_Z}9pdUT=jTFE0uLmUA15gJ1;w*mp$` zJdW3^@VX6t{Mt%vZNrasJrBkIz_veVB0t}Q&Vl)csDbJmqWWa#Ndx|BhJ&)>=*(6q z_$3r)7s0Trg5b1UK=vRSJQoCK{yGS*c^|=$l@+WWoD~cok%dp0X5&+?eet^9w^L%WFhFMdVZE_ZLLcfi~{vaC}Y|pN|br!I}HI9u`c*x8K0u zkkrWUOXc@H^7|wCJslcneO5L=5k@;UB-hDG}_%|80;hlJ9Stg?Fux@EfKQc*h@n zEV$b%!Hq)-Kk4W}pS;sM)w3S21A=MzTyd8DT`D+ja;?$pzw;aJkRQGx%7gxR!>=zh z()4fKELt}Xhx4*e9K7alH*H9t$$XcaDY6nWWd3B~`{u$w*`i5U;>$Y6ju7GZtgqdVle>=@(SCx$A-ZXAQ$WC>3P%JF z4)@1>f<8Du-5>XbPPdMj;g9=aPyK=(3p{>*{H=rwhA#By2XNN!d!#=<5cd*p9kSS; zAA~)+34M?C$Aj^g6fQW_90%FB4}l-<_Txqj{_mNMI}q}Il*l@=%0uop)TzT|XxavIdBZJNcbu-6CY%KO@@rVa_yXLtf)H6=)ul1?vr+wVG}h&#y)WEoG!eN;be}N_cc1p zaPKEWhWkJnGTd9sknuiSXFS|%^D?Ik?iG5O(*^h7GGw?9mmwP+k~zFFAsO-h$GP!yk3SxnKLE?l^kFAN9b|Oa!oD=n1|j z{kdM)FPP=e^~T?9c-o)qgKz4e?a%ea-|TqCpX(P?2Xp+n{>VXd{n3D6J?^kLzJbAp zV7@;Z6l@I^_@lu%T8N{QvwKT^!(F}Lz;f!z%rz?bjpgILl~KX%IJ!s9b;WM_O8gB8 z)3Q6x9fosR+1+tf&tQec>lMU8c)f$Mf@iq;@Xs{_Gx7{VU)*>7yPyvSLO=WkgSkN- zRjJz1vR^|q=KC??M{~r#!a>iOqwY9&n?LHoTx)ge0=>Zi>!~4g9FA@_eEb&R0l`n~ zbzOz8hd&DQ;l^NyuPZ#0=Ie@?WkAr?@^w{w%%9-9-SBl2zCMn42NEMGUp$J`9QyA2;>YCzD}GISTdUj8V|*In^(?o8X)UHH0NzV3>Tc^`cH4POu8 z<1QO}rHAh^Mt2WkFmi{^9_gX*IA;KF@XsV3c#jw}zQyaQ@OpZ@o?ctxab5?4?QhOE zIO_Y5;Pn!`-&(w03a^*P?{W%ZfsL=5B5xzStUmxM)Tu+ofim#92>!bMkz~{{1hOdv} z;~dLTo-6)h6_yjcZTb3wA)U$ks$9_*4C!3a7ntc>k(+07MPFz+UeN9dhN606u9y~) z6F8^i>b$L@LqE~s9jik>r9(fZLqD$r{n*dykehc8Z0Lu690&GjMpg{)^0mgx{l&|U zk$zuS(fi`>%}mQS z*RWTW3(D5T76*kXI*Jxo>mSNJ*e$KuLFI-XH0-#SqFO7fu5DESc#$4&kfHY z;rWy08Kigyd7eRvXOQ9<m+V{w+64v%nt9)w8YEY)9njg=pCc*5ww`E@|> zO?w?@!~wy#{E@Sq_6}A(FxYEl&T;g88`sgw!Ai%$UdO?rBje&8cz-bdHzUR9#p)9y zq{EDmL!ehqP-!(eM2(O`)Cf5QnwU{a?nA(B#yUsHA>iiUJ(?UjCRy9U6E7K0@NX9l z2>3h?EgGVFV~FpKA>MAX4KbENXU4`5Z|M-#>#Uc-^Qz%FRCxYoc@9-PhkBkv70;oH z=TOgcsN!J_4xV2do}t3?vE>=6c!qkOp^9gy;u-3BhAJM`_27Bi@C*~4zgwPRif5ST z8K!vnHwu7Y{Wi?=3{yN@E1*@@!;&+H3(o-?5yKVFaL+Sb@eEfy!#&S%;o)duFLM0> zp6-Tcgz&s;c}6H6R*}ObK1L{>5rzjd4C7#g=NX~w;hKiAStIu3fF~#Tz2(UPPkJ88 zQ4yX4u5^U+DYJBh=YWe59z6$e#RSWi8p{q7%ign$hbhYr^OhZ^EIZ6vRwI@j<}Eu+ zS;kcucnS>9Na4W~mEx(9ipTt=IgYTAif5$a87VyMn~~t*%3!4UY$S5V6daknHqx#P zO#a}i4?2_@9Y%=`?^|0(DIG?6TSqA!u(Ln}^bdP+l(%)1vXv`I_&?9|;%Mo`do9ms z)r+H5FOF8dI9m1M=uhoMu2Z2`%2+l=EZbojxfe7bNcy92#vUVfy7j~uZ!5h&MrQJz zxQ<>PV=RYFw0w-We2lmJ1w4az8K$p>?A}@5!e7m7w*M-yUagS#r{bx@i}7zqaB6S~ z-tP$g$G|$sFDhA~XAS4iC>Qd%tvKA**1Y>&S>}@f>r8E=wY0OCw~wpWWGx<(*`V_84Rs zPibO2rW!QkDdxvh%#SBlKrzW?+}ki2 zY%KIbX6Z1QWvpbDI;+W8m08BB%)-CUnVuiUs?0LhW|qmwn`F{E6&zvk#1+O9+}j=y zY_^Q!#1qH(qp&B&DNl@3p5UJW9T057b@aqIlUZOBGs`&fgpqTNfDaPn@ra`udR$}l z7%zG_%g2iz^;VDZK9e(xjaPb%S9**WJrY)r@k)>JUXSt8BTf%y66g^;BD2i|(c@Cf z%w6;W!8iO-*dG&=9ut%v6GV^8tR54L9=1}L;PsfG^kDXa9&?Nyhl?J6w9JQl5748B z3p0IjxM!tD4_7>g3y*2#)@E$QjEIN}rii^0!IKkA$~N=%L=|xpRmAa$`1Hz{&$Sc9 z?4nJ{Gb`hX(mzDw%6KB|i>^_afnn>##@0zle|wS zfs=WApjbCaMjMg2CYq#b2WEUAJZyBx6&)s99deZpxn74{r30VgPwSBDb;z|k3=ti2 zMF%2Nhg_utH3h=QMu*9w!xXE-WTnGouft@e13x>E)?u>OVY1a>oaiuFbRaTyn5=Z* zjK-dvCM~B(Jp9ha-4qoMQ&c=mQSmTE#ltik4^t!_h{nj9BJqHGK9-4V!5N~{V4REE zRprbI>(2azTrpMr^9QRNKgls5nCXwgV{5=`xY6ZIOuazrih;I0R ziRd;%={7^@HpA;i-WgW68F^f<&w%9zU(K)-rx_OsDqbUm zo%nt(kg+PY$a8_5Uc1g!y*(G`>Dpv2(1~JtdoIuqzB|LJ6t?`>*fLLS$+C>|lr8hT zE%THu^NcOfnSDIZ+rruw$afgz`GTBnk>@Mq`5t+`LY}XX=lhM{g}H%@M|fMzQP_ebj0Mn?{y)NdiEDu(WS0K;)Ee{UmS8k~P1>JEo$Um1ioNBPC-JjXE4D88d3HpKBQStK|vNVX^qDr}fuj?=M=r z*!TTn)%S~y=U|0t#hrC#r^Vo8oseshxf?=c&g6^LOwKhEbhygsutap|Wp!AhbXekb zSfX@TqI6gyy~jRYB05a)SkwV75gnE&9k@n=4$m7MmWmF&?R86)4okfbOO*~wl@3e2 z4ojiK^ng0hD_r-1r|XmAm1V-y$MP&wJj*=KGR3n@@htN^%M=gSlHeI-c$N!KU(2&x z@htZ|%N5UZ#k1V=EcZOzXNk!^3-?e?mw((lG5;UaT{0isgS#+!QoUwAm%-RatlwZkqZ=Zfk)<3f$7=4Kp_`+WLgg7Hw|*3 zARl6p3l(yqM=n&zg$lXQBXcwZ`CkUPNRa<&d#6Yt7kT6&g=Vuf7nk(pV5Jj)=j5ah!w@(P8#!XvLx$SV}`3XjbE1YgItiOws5 zoD*!c-dG9bbgZsavAPoI>H2mh&`rd1MqUYY*0;SS!d4>3r(<;GL1L6Su^{MJV=P=H z7FJn3R>@kk+8>42nybWKx7WYQ+sxQrC2P%fxQ?;9%6I^lvbI>|J;2Nh->nSb(O5rCwGp#gc0zD~tikJ}b{#m+AfA6@ys}2T($8MMMn&8jA8~8E z59seT#%fqcf3Fd%S^KU*Jj_Jxl-~d4{8b!u++w&&g{!~iDpg#io~u-Gl`5`M?_th@ z1wn9|L0&7!11$1dg}l}yuT{uv74lk-%()ct`V)g(CddOVa+yLd^T=fixlAFKd1TJW zKz`UDmkaWt7P(v@mwV)Lg^Z_%X|?ryxku)_4*4$(a)lrdwa66;xxyn?DC7!-T;Y*f z9YE*D4DwNeJj@~=rI3&E$VVyUqZIN{9+@=;bbitxR|@iQi(ILYD?M_hLatQEl^&Uu z3Uq$jAXf?U2#Z{$kgGg$l|rsk$W;*JxmqDtE97dA%&LhQ zW3FV3bwJJuKDHTS9gx%6dY#G`>wuoFEY<;?C?;df%`+Keon#E6ah11DvUb!ek5wA3 z-oIURST8z^wAQUxI;>YZtoJ%FJFK@l%+2He*LqlJc0{7?*02UdPhI!4Fm4ckj@TG;U0@?I@&@FS!EXB*(k$$w6Kn{Ess{LM|;+z z73iiZ_8?77+SY!aTamS>aV+2naPDV|M=XOrjI1fI#kM32SZ z>Iyd29Glb%oE1H6-Dh;zEIP#Ob(@tAo4pR3l@6PY4j5^Sn9ZUCduy}k;O-P`mYLLy z8J;swY@559TtPsG)H4#bTSNypR<|e}ws;-3C>^#a9kzHKwurx}19ju7#Ox|<1?pPt zDviW%v#Ycf2xeDlE3W2!BvbWog~xJ(f7r3U6?oCRN?hHr_6)>^8rZ-mM+`;{*hU3+ z3Px`{1s;ADz6PyKzM+OS(84?mUjr>-Av`_{PdsLv8u6?d|LJGmxi9eK06u?l9#;J6 zf2Z3WfrgOGo#hi5yX{jL+!@$`p5ea0v0!q~D7eql#3N+2BI7-6{A8KW)6_-C>LX-{ z2-&uf%&m2|hh&apM}#aHA=?=t+Z7>e2+168V@T$Bn<8YX2w8K4?6?S7OGxH;TSGF( z+ZG{fkC5$-kR2Z(+Y=$%8zDO(LiV``*@+RdlOkj%N60?kNygl9EMy!_^JO$0E2C*P zqKq@qv3@jh#2hQ5$;jPEVy%Cyj3hwh#RSL9+{fbju~>1Kadd3tI3hn|9sI}c6#lsI z-)H&bia+l8<9;L?1de1{z?>VG(L5IK%sI11JIkUoI~$z_qh-`*Svby+A;0mgTv00- za)H&SR#sllJGIbmjN}^nq*n5!Tl3XI!}K%JwX*V>0~G31YceP-=24ySb=+k5>V)rd z%U36SSNNkaU!CHsQ+##8ccta4Q+&)1uW{*F3B{LCdKo^kNEX3OoptvWe_0v4erKmWv zo|8D*E_N@pdTbZF`8|b?x4Bk$`>uvFN zD!iQ@Z>PfBsqi?rK)*f)ZhFG}ySAV;Pu>c>j?59SxED9h?_oV~(-0QEc2|b!wCt+Uk$O zW2aFpcDbn0Tg^Uilo+b9G1O>$0IS(!oO97fqYPh@@EvOznuIUzkHUOSimyrWH3?s> zWzg2KLW!qW{;e{>Ldk)-a5& z1rk9m;LAbwF=M<%#b}F)(H1bISK4^)S5VA+y&%ub*Dc^4D`>Q{MdoYn)-cDl$ciHK ziAB~=u>T@sf2-Kv&+5~v{MqXL+3Kw&Pph?Wfy5tcFW}u^@Y)3L5R2EQ@Y+0Ho5E{T zc&yvd-!~e(cEKBJ@!Az$yT@x+cg|}DXvBrgdcN@GD1n*FbcY?w@!Q-8v@J>*8tdF7Jy$0`df;YtCeNN$h z&f|Sf;eAfwv9<=@0|xIz!8^?2ov83m^mr#Kyb~23>vGupkik1i@J3p^lN8=b9`7WD zcap+mO%MGZF?c5n-YAQAvcfyrD4ge|?yP&|nz#cxbiQYON`&kS5wb5v$WD!r zeJMhAT1e*Bh+huL+#2!p2-z7SnY;GPkj!0smdHNAZ~WMG{MmTh+1_&^WM7Gpohvef z=k^cIi;$fkaqR^Wvad$SE{u>}6p}f6FAm9^ZC{I!T@oSty2!L&E)B_?ZQlsV9LHr5 zvTuq^@0WZlLiX)W*K$_sfDGg8aWgJDWL%7ajPrAc8W$aYTy&^$(c#Ah@ff=pXHOZt zQv@$&@lH{Ar+BLE(Kt;c?6W?{5b0i-L#k zEy4Su!uz7f`=Y}8qQc{N1K!~0rA|3j@CI4DQx)E+9`96zcdEkUSOwk|gZCxD8))&q zr0~Av@xG++zNGLt&RIt-6#Y&EUJhz-WAACeOV|3RsXFR3V5aM+(|}17Q%5bdb<}B6 zM-h!Zf10hMW?LrK{0nf7HUDXL|3R-CnQvh0xyIHni>+fJW9)rd+4^N~>z9?SU$(X` zl$wgU3V0h{5DiWjym1!qbcJ`i$2(o&ov!eh=T_kVBLwdZ;Elqrt5%UW&Tg!@LTc&M-EeDK?F_I-IF&I@8;9rn2cwYts?pqcd$U z%@do>lxlarXwf@3Q|+HKdxQB(!+e%7Pq55qDdw}lJY0J1EX915Vm`|<$AtMTTW8b$ z-oaUlnR5h~?=;M33-jTY`E12}wzv6g#eBA6KHD;zyLM*_^IYJO`E13^nF!2ByeK-J zBg_*m^Erz79M61?Vm?PPpJSQlTRe`5d6xMc#mxB*%tsmKuL$!v%ls9^{1wmq6~+7& z#rzd8PsjE1q}MrfGLp@w9?k{&C}?6L`COonlBYZAk8=^p>F?Az7Yrr~a5v>#Fqr!Y z=VG-V3*m7+MLfpxxngtY`v}YsoU5tDa`DD_qQ%`=MvL>57UwA~&huJu5B5CKg0{p2 z%dF|ngYIJkqEUzQ4yprd1NeExtD?jC;^(Q5G3T5wex8gYT6@0t^ZClp=UYD;E6x|D zBRm3o_(&Ylm*=YWWGQ#U*MT9P|O#2W_t4iVRo7Q0*UIymiYq3 z%sK})*BIun3iAxh{8h#LRnPoY#r##zOl`j^%!@n%ZC+xTzp9v7O~K~4VZKn9XWHv7 zRLmE8<_i_`g`SxEo*B4b^t(jxXc6_h zMD}yqtS2w==;mDbyPGcY4CWj^f!U7h*jJZ$K6>dAWQ>Uzq3-jb{bh`O9l8#e)?YUn zrNi{)*P+E&e7BWBVr|U4F;H~96uOR*XRpb5sr2*xGVXa4&R&=Le!d6alX5BaSrNpn z4t<67Qi;|ya({eMbs3oWoYbYTC4C>17O@^jA9VYT=e$&U;Hx>FfZJ!(czp2o)XP$%l5{%rKcMF z5qB$HPkkHA>Cfza+q1J5zb!r0XnX40UKexD^%VC8p2dQqA=|C;`Ffe`0h}uL%=sk! zR#e39XsbPY8pg-zs7I=C7JKX18@L=+xclX9{da}P%v#T_MXwCWT)Xc?$gYZzT`jUt z@H@aAoKeDijmY$R^4bX5cOzuiMaaGvA^X0_46oDq`iOQv2(@$i-4N04hoN>3@5YeK zU3*i+wLglG-5epiB|`S&2-&S6nd_t5LNce{?Gdt{M9A(4$sFFDA(_LwD?)a+$h4pD z3CSGZy`gI<<0!fuGK`|;w`9a#E~Dr>cHCSpqsV<@)8&5rax`47M$zSJ6kRT(=qfvk zE?1-Ia*XKJlJA&fE|(EaJs9(tp*vQI9#=q*oZvyL#}!~6CF7SB*A>YBoBek#UIAt^ z&l?n%`Iz0Wz^q_rLK(nR6$v85cgF@fI$gzld z^>4;!SBlTzL%Hrs@mapr{7U7sD<$W-`&d^hpIs?FE3iJh()bMCpj8~_!0-OH_~tvp zcavrKj`01+AB8jBcNE`u6yJA*?`F&Q9mU5S0{aFVzN>_f)f4@4mA8ofca<<0dHCMz zRSJ*!hjaT7(f?}TjY0-Bcvnl`J^(%F=d0D+ezosg&h1wNv-8}3wVm4?GUs+8(`#4T zxg)TwoI5^`bA~6}pUj1@_XA_^HDYg(_2@O?U#IOgVm-B`&DSXZUZebbjrh0N`u7^+ z4|ss=*NE2cn>m%QEcW7503~_g!Hx@JEa-XZv>*`*#)lcZIzW*BJ&gCXMaiRqUKez~0BO zUuQgT`K}Z875*s9ew|{!PO)Dn>?G?{$OseZgC0@xHI{z7IUJoAQ0HyFqZi;t}Uc;B9?JBIA0&E3tUj zE4=Hye%C9!>y>_-XE6>t)(GAYfHx|5#K!UufHz8dm-hZZ#v$$f0r1lK^#{N+BboX2 z2U5?Qdf(*NADHpz88{x(46L=8U-|tsKak9y{$5+o_ZWk38C!1U%^PiYb1d{GS!myl&?gTX1js0Tam4JF_9iPJc(eXp z(eEa)z7#U{=uI-NR#|Ot^1d+V!YjXx9XZU_3d>xkW zN1lO^^&{VVKl11X!9>2nV`T>YPcnEn3*K6bceBY0R{xtlI(58R(A^Asvu7~psQ*f< z|IJE&R(;U_Ov87J@t0+|Mfg_xqi`O&Me*ID_->Irw8rw?qWD-*g6}!Q_haEZ#oG5{ zZxQ|VWACpYdvyBi#};ph_@C7%XXv%k-?suUCwSOud@JzG$Ywm=ig-*vC3Y(?)1&)V zU=oFyx<6WWuAXj1JaT8#v9Nl2-r9F7e9QeI6OXqd9>d>S&B_@4x%Ky=-)&;=)mFdT z#J|`0qp*K(Q~tfpdw~6UoA~!y%YU2o$6E0Rt8Vyrm*Klz_`YiyZWq4m{85_hC*Lf8U|{`wrFLcVzVU9j3oM3;X*8tIr*(zwhYO-(0!CA1@n!+$sLJ z#p-vb_~Xa^DD00rl|SxO{d$+mKly1GGTh_)^B#O6;U4Kvx8mXRO?q#O z>p!xTi3axyOOs`}SFzlyqUK)DLS65*Q8OH#?~kL-S>j$hYdIGBpbV_0b$Gvx`zZX{ z;)d+gQS0zqA1kmTJlXy;dn?>k*$OGoxfXnFmX^)vXFS`AeUyD*7-auuhg&P(7a{v; zgzWwZ*#i->2P0%Zi;!{0tFtcLwdyQ;BtrJ{2-zVGWEmq5uO;@GoPyEGQMS)!izyb5_1zbN z$8(J9f*{yrxb73Ka?5p};=0ds-RHBJK`_;p;kpl8N8tWCJu;O}HaXqa3#2gAsIt=n-{(6#6eb`Y#mvFBJMOl`3jI-~JLekc zevUzZOwbb+{V|39m`8t1p+Bb3A5*$>)=uZgx(H8v)h5m#`e?p-@q0paD=$uL6nXei2Ck1_*MSoJEKk3n*ROnAC^d}WM z=Va)9l|g?>&^KE2rxf~A9{nkW{**$0N}+Rhhwj%H^rr=VyG4Imp+D`>pH}EkEA*!= zdah)9)(O!427~^LpdVw=pHb+~c=Tr!`ZEgs8KpZbj)EZXCWHR0pl`D1&non1J^Hf> z{aJ{W*pHoI-z2d4^RGbidP}KQHK;E&B5c{dtf6 zyh49op+B#5XFUbo?=t8w2zuP2zo5`x@aQin^cNKR3qa4q_2x;57bM%Cj$>wf)@kVD zyA9Wi!nGALX8RWv*NdL(MaA`^;(F0qvPdF`6(8dBUW5LUpx0RRmlXO-9{nYS{*pp} zNujfLgzgU+^j`}4u@?Q83jLQJ{g(>;mkRxt7Twf3tU?R1W;g4imw}!W?6l}F13kS* z^Rilfy$pu*9?i>O018%$Tu;56vHE)1tiC)8S6^gd-@FWc^6=h#dh})Kw=dzCE9jT8 zI!W&zvN}e@JZC)dig@B|$k>aoC{MiNJ@Jb2#4E-V(1XmZtkG|87`$Hz-Z>WUR|@Y} z9`9EQ?^gtoNw_`{p&@H(W8l)1NEm20TBo)&C2> zPfOG9-1+OVisnDAnD+y{^NR2F2-zDEvR_BYeiI>kGeY*;2-#a9nOmW~9g?{f+V3J{ z??lMn4apqd??W<&_lF4CA0uRc64@vCjUW3dhXZ)){O35{3&~u&_akH_lCmbn1OzK4BoE=?*fbWYlZh~kN0bZ_iKg6@do`)HF&=f zyh|+JZxr5dJl<~<-ft8h$13#up22%l@Gi7?Zz{YuJ>HuN?@firaSr`%HF&=jysuik z-zvP{dc5B%yx%H3<_P5I4wF6K0$xs#$};it7Vy&Z=UXaAzXi;yqnQC@7np(v9NE_EbN;jZQs0$+Qyt? z-@L2(hVuYyFa49~`g^hc>sHs_E8BnXZU4Qp{rARpSj)cQ9D=^tXz>0Zc$ZqdKPbFE zc)UL-ygw*B&OgvEVetMac$ZncKPtRGdb~d>ygw>D&RxJe+2H+2@V;U3{^aqPb^oML z{-jVi+o6Z^jPDNsB?q5qF(cssP|~CCfa>7`z)X+61Hep=z5^LOe8BXuXJHSgS=hsi zZ4V!i9_Bgr@B!7soP}ZWBgW$Q#NuySUElK-b1(Ki@4@$!?e7`ep$B`IGdS@6Zt&h0 zyl+{&_Z8mz9`AjH_rAj8><=$=7+-!MzHGLc>;vV?50o!IP`>;?`SODdUw&XSnPZ_Z zQ&#H_B$F+%zWhLZ$#eAO2g;YMN(zF!@dsqId?>bm+oF7^Z2!>P{-Lt{Lt{Ivr7v00 zz?YK^-k$~Ua*Ow8h4*KV_h*IoXNAXV2y3>P2JbI|cZJ3Ki^BVh$NP)I`-{S3B?Wue z8N9y=-jx>buL|$49`COT@2?7vRT%nuUxoPZBjDx8_fl}YeFVJpxcNx+^+&)=kDHHx znI1PEW%Tt&rmsB<`??9t^!P`1Wnn%I_K~dm&cr$P^+&3&SsfPR&oCI<|0cFy4;gj+ zo3j0H-uAyK+y7>4haO~RWmz0tZt*@AydPM+j}_j>9`9p?_p!obRf@i;H~Rfu@V;;H z{;u%;?(zPv@cypwSkV>)`z_u-1n+wm?;i^9A0F=?3hy5ZkJWHNaQP0S-#-QKI*a#D zh4)X7_fLiQPld-y8ulg)-oFIzyB6%eQM%u5h3Q^b;La}3x#RFVw-SXSYIVTXX;y?RTV#3_)+N-=t#Z1C zWNwwyEkf2kLe?Wf)>CAfw^u~F-VyEkgxWd%`i5jqzkU(2{t>bP5wd|Hnd2A~k~xmS z5i)-3RCr}Z-}C#doXp|zTdkbT;SG(D4GYQKwZlcG{Wl__T~0{mIQT4AXWo$!vQZJT z(IJ`BWlSd-^AzI`bJ9*T&KPdqGzC-ffWO{zhw%6~1>HWXb(hoA(&I1wm|= z!OIf7t1VuZ!prh_Sqd*p;W6$p$635=!Mn=hWqUkk>1>6Ptxz~pIENf1Gf@|yH^I4Ow=W-^V1()viL1@X%@~z%{b<6Wf!dc^{2x*QVW8- z%Z;bHie>}qU;RqRQQa`fai2Ctjo-DdH+DZFkTubaZ_rtp{{ z;Q8wfUU$L!p~dU2@Va}v?h3EF!ee&9TH$7c*F*4bw0J!fUJsAgL*eyMc+5-%LEcXc zUQfZh$>R0&c#Mpm3ZNsUe_y&fBozi{>Y66b1wX}XfMxT&hcr> zR$Rw^>81FXC!zJzhOf8q-EOt+t+ej#F^SS!p)j)|67x(v_W?={zHQ2A-3KV?c3Hsw5zl>0JbM<#Gg%nVeKO*inH}-+sO$HKZVy%;c-TR=ifDW{RQt9i`QS__4j!F6<&XZ z$Jq#x^Pa&QAb3BvcmovP0FO67;SErDoXOA|9i~qQ0HpAO9E(}AW>Jq!EvJJ6baIxwS8Ig`R?qu!IeIY?~0!`e7V**M7CI7rzz$k+%z z_9J^&jl;!8r_*q6Bcp4$vTV4q47Siytm6<3d4_WYP;!FZkny?^%CZs4vJuL% z5z4X=8J3N(S=h1AvNmhkhz!eEM6XYp<*&vDOUbXNFIHS76RLEf+iBV>ysWJ@AsOCx0bY^d|IvxDDk5tcFL8Goo& zMw#&ylkxQiMj}T?%;y%4%b1L)Vc0n`=fdmbm>)UBWc(Hc`^Fp0v4Z()i#b+dj#Zdr z{n#`pZZz_U@sAum#bAyTOx_`-F5?vDIE6V*VUAOJa{Lqoc_jvOykPP!DKW<@%<&3y zyuuu>FggB^757!<5oH1}bAon@IRTjI+&Tf6=}&4+0A@P3P5@>)w@wIUBJ(-S3ATE2 zEX=KBVI?pjW4`40M}Mp{b{;Nv@@^|NJlxyKta-SfKMq$m9u9rreOSf5VD7-tW`j3T z@OU?vcoP-gM2|O7;Z0O{%sT}^Uai5KBzU~TO1w!5Z<5EGr0^ywJmxIe`(=ZdD|o-N zc)1EM*W=|Xyj+FHe8=9Xl0KabJk&rIZ!+-GeL7k7>11H0`*boe(|tNQqfaN>>dvvS zPszeQot)99%(w8_g~rAyV&iL8rzy(DDc;5@%El?iMp(r@Wv)gZxYXcH6}qwZ z>hY#3yr~M0c^>-x%-~HEyw@$>G=(?K<4sd|(-a=(2zW2gcxSrw!SNPvy6S`Jst=~C zKA5ihV0uO$Ot*EYV__eVg&vx2YnEve1=FQwISc2Q8>g$9g>x6;?`dQE46*%}R@WKI z_8H#x8Ort<#&%dsX3l#UZ!a0VnS%F{#ha<{W_rAt3U8*u61cznW;`DL!hGe_ZBZLUILWq=6mFtITYC^^9%i!u)==`1i$Mc_PW zmd*n6fSJw$^D-iEo~@c43nP#$%mVW=vH&ZSf*@~@v24CrwihzmGGD6Wh>Ap$@ww{_^b)fu_8hg3^Tec5MA!E{#oF?%volE z@3jS<*&vvG4a3E13cWVU;4KuqdoA8Vv5k3|8ZY$d<|u62LeF5%(KhBz@-0-hu~Ne* zn_&2k5WYWKz9T#X^*_Sve}qRT-Vq9qRbD}mH^tyB61=}yyhRFck;hx4@D?dNR*3NL zEQ5EX;QiI&9jWk+^ms=qydxDJt4sKIfx%lWc>65gVuiQZ<1JQrixnO#Q}}PG!CNAD z_gTCp3U7(WTcYrmC_GlR1wme+!CNYLd|HA1xK!aS^>|Aa-cp6fiWnnrUzNn}GT`L| z7eGe5Wr(Mo;H&;9JerrO(Yy={>CwCl4C&FlEMqh;!)Trt;^Zf+$;r{YEMqjYK3^5= zD>oJ|7mLrZIxUxoKhqz%(ad;U4h_v(ce!|i`x&%qx%Y-SV(g!VbBxvH&>U-Bc!O)* zWpkw+j4%fO@$y&D>-)hEx>D8`#m%jH~5peZ;c3@V$ZdF_n;QNlU@i)c69bSJ> zmLDN22+7=ft1v=V6d@~)kgX7zUgxchkgW>I+;@$YMBuHCkgbW3l}5y_{I%2#^jE4}hXuk)>5`D)zff2v*_ zhpU2)TBBEi=yj6Sq(JmK*&l`VD)4$0D7^}lUIn7p=dE4^UN2^}0_4pS@gv7Qa^eo7 zL!s!v~bSP3f6p0RBvN{wg9g4gT%xj2|cB4bF=x~~4EfyWV?2p2JDE2xO zD;)m?6oadVRlb{AK)rjkp4F7RnXhazx>X)RnT-r5DUWJQMF1~ z)5z3~$eeRm$r>*FO-jt~s4~7{{8}P@{i)TXMEu$xEtnxnq~>6JnWJ!(S)#mIBHrwW zmbA14I-)LurRK;~(B>QMN~D5*0B3oQ^9m}w3ym(TMVI@nE~`B|eY{%wl6tK6%myLM zwc4&&2a1nZ3)gJR#rdir*mtSnS|eN!TCO#UYmMhxqqx>6yVh7P^9?6!gzIOPi}N5n zaE0M26|VO!SE=GE^<1Tjt5k7u4n@_KdxqGx7I-SS!3iFjKzH-G^E^#}? z@|7z-)*b~x>^j3&A$;R3Lxu2-_eWvA3dL8U_$q{tJEpX#Lh-S#L3~=iqlAzBPQM%_ zeDt_E3iBPM_>NM1M+qN2N4}#JA8RJ?-E8cu6h1y#Plierqm{y76&~w6dOI{&T%X6O97&g5T@%=}Aaj+=EE`IogN?CSGj z9zC;O?0UrNv0nOlAX=Dn>}P6aj>7qOy|>hyk3MM<)Nyv3$Jq=<+XX zT8ybdMwbnu3qMUl%njmWvNQi~@IKz)nTftZaj_mQ2=)y#ct;D~dlv6#g?F^aJ6ho# zt?*b&Bc?_hyp4kQfyLXX@HTq9jS6pLCp_bex#EkBlCz0NOIV{LJ3ef3>@ncV30{PZ zzBoq3$1y6$9s|B~jy(o^K!NYs`^RMD*keqN^(@S>WHGI&U3jkM8UZyEPT9Q#_Ki_H9voTZC_-<=dk8 zxNbsxTE4Bq$2?EIt-|MW>{i9MRq<_Ad|QQ&*_$5Rs`$7jD+rFAWbCUEz6&j1jqqLM zkHY;|qxfnRUyblxZ24+DANMVq2lA8Dm*DRf@GqG2-$eZ5_p|fU)#<TE)Zr{SKP2&-=T9N5}hPnt@eMsik*og?dZ4t8V5waZ-vZToLI(}zJ z=Iq!NA!`W9oPLcVnY*?rLYC?zV-(PTh_hLy-;b4k=jY8BXUF=;VqQH~dfLdtbL+9D zUu_Pj?~w-=8oapR{n6sZ6<*xq#eLLJqqxFjzZC>|OATJF;JLZ5*5gsDT7^>UQK)+z zxXkLPPG-O-twwdS?s>xIRrWpR-MsaA#H$C_sNgQh%#qu7BwoGDyGHJED%U*qVC_8T z)|)xkqjJtAD)VT4#+=JoD+u=O`?Khf5PN@awM}??sYAm1FQF_?7|X#&Z!%8N9}gM4 zZG!g;i?>bTZS#2B6y7$4#~4R{JZA8=3*Ms^Z@a?V?(w!OyzL5);{*1-Z}4^q-Vu<| zw>u>7Eb>R;yt6~l-Mq2GGnngGV{lKN9@yde%(;H}t7(r}jdw`@KaL}|H9wkW><5Kggo5;nco7*QI6i&bGG#EPO{2MqDYScoXw?9eQNezT(xB{a z@OC#SyBq$E-ONzX^Y(Lup;7ewm1SsDdNwLO8?Bxj#9HPwpzJd!O@i{OMQKtfO&*1| zH_1G-D%SR57WXHK7Ouy`MtC5d;jvh z=NJAbP8s8!5{q_9QKGf3CE47TOf_}(%})4c40JsMfIqIt_~lpg_Wmyouk7HAF5U1|x}boEehaM5Vbc{JBHx6*X%C&+^N(X* z{d;-ojcYH?-G1el_d7j4Eo`=V4{eY3Q1#yCL~MF2zqK{dHZ4|~jMpX`Qf+&u#mbLw zO0-OBjU|q2Px82UPjjNFH8Cw#nb@6ZYR8+kiN;iHQ&D-Wth_o_U7252RhnO2yrr|F z-#|6AEl46DY7pO=xJ;JrySh_pMYl`>k+(~joYU9>Fnrka5VWkLXLj7_Kw1C z-Rep%Uvk^kFYa%|BS)sgKh4qict_u>9bJ^z7H@B8i@9+MPbarGH71(c7RRc0BwJ(n zuMN4bF4fT9*c5BRFpj0RiKyOQ8s{avBDO8nB4=DioF1!9w6!58wuO+I;%)6M@dlqZ z%|)PbSJkB&Ym;b&Q8AIH#Wvw_PWyYQ8 zw931*I?|=FDvW_6V`Vl{b8Vzgjv>BdMTy#E8{ZYSB?Fv6dG;7>Bu4@~>>iI2}nW`BQA`31$N{bp~~p?GMB z6A6C~KKn28{#>s8S(K`4m&{O@YHDjqH8dpZ;XlbZaBu2AaNQWVZW$C_<{_)jdVIp<9yiRJ z@t>sUUEYBW+JPGr$iPkY$+~zO-erv3SZ;DgVn(bk-qe(8i|vT-PQ+^C4e>g(MSxX>j~B)G1e?3d{jw=LxVMJWP(eLLNTqvGSAJ|1o^+MOPixrO$D5vF`ZyA-c(X zc(e8}3;Bj*QzC}4-DS^~M02X8&4{O)X)v)T-q_rb;B?sDnrzxG^W3^BlpE5ts;#BH z4)a<@je8P2x+(Z1m@We-)1&<}JUXrQzvI!~!T;6X)dp8}l;Lwu62eUo@-Q9Qheb3%=AB3WL zoJJA*C{uW&%l91*gc#Lt!#h;Yx39%4 zbU(Q(enKViJ~Tj??o9ToQE&bE_ZMbt{DJo&PxNe(@Zo`5kN)-IZ{VAh&stnAg4t{MFm9st^I0>Xa^ORRuCv zpk>Y=Ek}&hdntmJIfJy-9&I(|fTZP*NgL=g(wbzIE|+gd}%~sypT|E_V)9V;-P#xpt8YTCLSN=efEmb% ztz^M82QB2okk*Pi>?&An%NylxOrsmq>cuQ|V-|Ta>)e>dUd%2xrp=4Vx-m<-Nj=5mCDYa35t$o1+sVqOe?zXH$85F=8nQZluy zUn>1;JI<`FhhPEsA(QVzX*{!Hs#={zYIvs@;>@Zbu_8;6AZ01*ky#yTFg|o2o;`aO zIfSm6#E|vXI<*C9OD*OM($-m>E^S>w+7j#sI&)~JVuvmDPAy35 z;CbKf9NKy->C)C0q_trOC0*KbbsfQ8ME7S<`oWgfs58}3dP*dEr>n<|M0rM9Bs#i| zqn4_**5%OFSv>Ph+PVVz(Z;@rIfFb;#i?a2(L(i7qC5%BU5@6tUY$Hpkoi^=yo}eH=c=@qA6SRpzWb zbv7K!TyMZQ;#`+_WLKfEJ*lmB_%1gF7T%8P+fL=f77;1 zqCeY}%$U-2`Mj38U`=u_^<+&wt^Rrzt9r7ihqkKMhVA{S-FO<6>Po@Cw7i%@?kh(%|_mg zr(A@G6CMvRu6?~ZOYv|5lAzbXlZ4xw@z(IxYl)QlYB=rHuqaRiCEQwZ8a0rUt%>_E zTC#e$46yt%UmHw)*+)h)S}rnX zIN}Ryq%!cqTw3prrjd{dwa8B2zsC|Uz=%ulUtgFjsKe-+%-<>Ld|c;*m;7B3y%yY) zNqSU1y}Q!uW;Iqz&h=V&G)7-@`Fozssp}vGt&lxRPt+o`*-gvm&$h0Dc8|xO&^CCq z4H2}=8LYR>qiu_zWzHaNyGPp|LCc&$+76GlBZ8JWgS7iS+Wir<%o(H|@@R)5Xqhue zJM7U8N6<27koJ^Edn$sKIfJz4Jlb;+w9FZ#z2wneilAjqp`||JTn*nrX)8(Z@MJCq z_Y}c9mc|{1*ex8h%3J8xLM_Po?(Y5E*vamGMb~1h9c7R|YCL)bwLKIpVTz|mu3fu= zd_s$pj|gjj9fEFrwYrYrv9s1bOw*}2j)m|DPAbZb8^j4mhQjxROyS;HW^~Z2c}0~( zZzlJ|4LI}Gg`IyF&M@|1H_fo{DLQPdT2=Vtn}#%3S6um_64fH{Z|eOXE#KUFjCXYb z1Q{lUDwnr%wKHtMX@f?*0jUw^N?%Z5_&_NCl$r3CXp2Iu4 z=D54je|t6$64hs0qC4G}(0BP)DYYht-uR2gMz6=0mX^%%CR^f1aB@WI3C3$(pz}rF z*LWi_*N<7^>YM|3 zmlJvM+m>20@|(?~J@fV9MvTRE_6@L3Z^SN1kJrL7*Q3_ReEj;4yi!j^>p?AJqqSbc z3H8^ki+IZu!SJC#KWIJfUtj!sFu%kz(4=ReRhQTV!}*#uTn}n3ZS-JnS^g1XI1{?@ z=|L^`398S-b*0H8dhi0?Rd&$&nJXWyhjc&ddp)joeAIokzG0m?`euG%eIt5e2z1mF z+L)swgj&k4QOaGtA(GX+j(5zCPfzGo+N|vP>y_xB)8{lLJ|` zYO$qEVyVw=?SH+&(owdjA^se3g!tW+WoZgdAfn8Gic}2exC}^)~7#! zuce^3kLLF@fM=9=nuOLgPwK>hnE=mu%mx~OMqmyw7nldk2W|px1{MHK0KN@seH3U0 zT7Xty5wI9&1C{{%*3U9vIj{ow7_bufIB*MaE3gV!4crE-0X_lT4tx?=3)}&;19t-J zfc3xz;4WYzunE`LRFVG3>29iJ* zum|V{QovrI2j~U*fPNqi>;v`#86XP`0E57NzyaVOa0s{`_&o3c@CD$Dz?Xo-z=Oa; zz{9{1U#X{(rjmqw|Jh&qb_Z(DV07QB_~0lX z->1fMy!y$0^dCym)p9+IjD#>daH>uCQES#cHrS=RpnOO!!$ diff --git a/migration/330-trunk/041_FR1814291.sql b/migration/330-trunk/041_FR1814291.sql new file mode 100644 index 0000000000..6103eccb0e --- /dev/null +++ b/migration/330-trunk/041_FR1814291.sql @@ -0,0 +1,231 @@ +-- Dec 1, 2007 1:51:24 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST SET NAME='PO Commitment & Reservation',Updated=TO_DATE('2007-12-01 01:51:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=785 +/ + +-- Dec 1, 2007 1:51:24 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Compromisos Compra y Reservas', IsTranslated='Y' WHERE AD_Ref_List_ID=785 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST SET NAME='PO Commitment only',Updated=TO_DATE('2007-12-01 01:52:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=784 +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Solamente Compromiso Compras', IsTranslated='Y' WHERE AD_Ref_List_ID=784 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:53:53 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST (AD_Client_ID,AD_Org_ID,AD_Ref_List_ID,AD_Reference_ID,Created,CreatedBy,EntityType,IsActive,NAME,Updated,UpdatedBy,VALUE) VALUES (0,0,53223,359,TO_DATE('2007-12-01 01:53:45','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','PO/SO Commitment & Reservation',TO_DATE('2007-12-01 01:53:45','YYYY-MM-DD HH24:MI:SS'),100,'A') +/ + +-- Dec 1, 2007 1:53:53 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST_TRL (AD_LANGUAGE,AD_Ref_List_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Ref_List_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_REF_LIST t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Ref_List_ID=53223 AND EXISTS (SELECT * FROM AD_REF_LIST_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Ref_List_ID!=t.AD_Ref_List_ID) +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Compromisos (ambos) y Reservas', IsTranslated='Y' WHERE AD_Ref_List_ID=53223 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:54:46 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST (AD_Client_ID,AD_Org_ID,AD_Ref_List_ID,AD_Reference_ID,Created,CreatedBy,EntityType,IsActive,NAME,Updated,UpdatedBy,VALUE) VALUES (0,0,53224,359,TO_DATE('2007-12-01 01:54:31','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','SO Commitment only',TO_DATE('2007-12-01 01:54:31','YYYY-MM-DD HH24:MI:SS'),100,'S') +/ + +-- Dec 1, 2007 1:54:46 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST_TRL (AD_LANGUAGE,AD_Ref_List_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Ref_List_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_REF_LIST t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Ref_List_ID=53224 AND EXISTS (SELECT * FROM AD_REF_LIST_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Ref_List_ID!=t.AD_Ref_List_ID) +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Solamente Compromiso Ventas', IsTranslated='Y' WHERE AD_Ref_List_ID=53224 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:55:44 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST (AD_Client_ID,AD_Org_ID,AD_Ref_List_ID,AD_Reference_ID,Created,CreatedBy,EntityType,IsActive,NAME,Updated,UpdatedBy,VALUE) VALUES (0,0,53225,359,TO_DATE('2007-12-01 01:55:35','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','PO/SO Commitment',TO_DATE('2007-12-01 01:55:35','YYYY-MM-DD HH24:MI:SS'),100,'O') +/ + +-- Dec 1, 2007 1:55:44 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST_TRL (AD_LANGUAGE,AD_Ref_List_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Ref_List_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_REF_LIST t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Ref_List_ID=53225 AND EXISTS (SELECT * FROM AD_REF_LIST_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Ref_List_ID!=t.AD_Ref_List_ID) +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Solamente Compromisos (ambos)', IsTranslated='Y' WHERE AD_Ref_List_ID=53225 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:58:18 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_ELEMENT (AD_Client_ID,AD_Element_ID,AD_Org_ID,ColumnName,Created,CreatedBy,Description,EntityType,Help,IsActive,NAME,PrintName,Updated,UpdatedBy) VALUES (0,53228,0,'CommitmentOffsetSales_Acct',TO_DATE('2007-12-01 01:58:04','YYYY-MM-DD HH24:MI:SS'),100,'Budgetary Commitment Offset Account for Sales','D','The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.','Y','Commitment Offset Sales','Commitment Offset Sales',TO_DATE('2007-12-01 01:58:04','YYYY-MM-DD HH24:MI:SS'),100) +/ + +-- Dec 1, 2007 1:58:18 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_ELEMENT_TRL (AD_LANGUAGE,AD_Element_ID, Description,Help,NAME,PO_Description,PO_Help,PO_Name,PO_PrintName,PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Element_ID, t.Description,t.Help,t.NAME,t.PO_Description,t.PO_Help,t.PO_Name,t.PO_PrintName,t.PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_ELEMENT t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=53228 AND EXISTS (SELECT * FROM AD_ELEMENT_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Element_ID!=t.AD_Element_ID) +/ + +-- Dec 1, 2007 1:59:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_COLUMN (AD_Client_ID,AD_Column_ID,AD_Element_ID,AD_Org_ID,AD_Reference_ID,AD_Table_ID,ColumnName,Created,CreatedBy,Description,EntityType,FieldLength,Help,IsActive,IsAlwaysUpdateable,IsEncrypted,IsIdentifier,IsKey,IsMandatory,IsParent,IsSelectionColumn,IsSyncDatabase,IsTranslated,IsUpdateable,NAME,Updated,UpdatedBy,VERSION) VALUES (0,53267,53228,0,25,266,'CommitmentOffsetSales_Acct',TO_DATE('2007-12-01 01:58:56','YYYY-MM-DD HH24:MI:SS'),100,'Budgetary Commitment Offset Account for Sales','D',10,'The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.','Y','N','N','N','N','N','N','N','N','N','Y','Commitment Offset Sales',TO_DATE('2007-12-01 01:58:56','YYYY-MM-DD HH24:MI:SS'),100,0) +/ + +-- Dec 1, 2007 1:59:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_COLUMN_TRL (AD_LANGUAGE,AD_Column_ID, NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Column_ID, t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_COLUMN t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=53267 AND EXISTS (SELECT * FROM AD_COLUMN_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Column_ID!=t.AD_Column_ID) +/ + +-- Dec 1, 2007 1:59:26 AM COT +-- FR 1814291 - Sales Commitment Offset +ALTER TABLE C_ACCTSCHEMA_GL ADD CommitmentOffsetSales_Acct NUMBER(10) +/ + +-- FR 1814291 - Sales Commitment Offset +UPDATE C_ACCTSCHEMA_GL SET CommitmentOffsetSales_Acct = CommitmentOffset_Acct +/ + +-- Dec 1, 2007 2:00:11 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_COLUMN SET IsMandatory='Y',Updated=TO_DATE('2007-12-01 02:00:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=53267 +/ + +-- Dec 1, 2007 2:00:11 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_FIELD SET NAME='Commitment Offset Sales', Description='Budgetary Commitment Offset Account for Sales', Help='The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.' WHERE AD_Column_ID=53267 AND IsCentrallyMaintained='Y' +/ + +-- Dec 1, 2007 2:00:20 AM COT +-- FR 1814291 - Sales Commitment Offset +ALTER TABLE C_ACCTSCHEMA_GL MODIFY CommitmentOffsetSales_Acct NOT NULL +/ + +-- Dec 1, 2007 2:02:34 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_FIELD SET IsSameLine='N', SeqNo=160,Updated=TO_DATE('2007-12-01 02:02:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12375 +/ + +-- Dec 1, 2007 2:03:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_FIELD (AD_Client_ID,AD_Column_ID,AD_Field_ID,AD_Org_ID,AD_Tab_ID,Created,CreatedBy,Description,DisplayLength,EntityType,Help,IsActive,IsCentrallyMaintained,IsDisplayed,IsEncrypted,IsFieldOnly,IsHeading,IsReadOnly,IsSameLine,NAME,SeqNo,Updated,UpdatedBy) VALUES (0,53267,53282,0,200,TO_DATE('2007-12-01 02:02:56','YYYY-MM-DD HH24:MI:SS'),100,'Budgetary Commitment Offset Account for Sales',10,'D','The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.','Y','Y','Y','N','N','N','N','Y','Commitment Offset Sales',170,TO_DATE('2007-12-01 02:02:56','YYYY-MM-DD HH24:MI:SS'),100) +/ + +-- Dec 1, 2007 2:03:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_FIELD_TRL (AD_LANGUAGE,AD_Field_ID, Description,Help,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Field_ID, t.Description,t.Help,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_FIELD t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=53282 AND EXISTS (SELECT * FROM AD_FIELD_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Field_ID!=t.AD_Field_ID) +/ + +-- Dec 1, 2007 2:55:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO C_ELEMENTVALUE (AD_Client_ID,AD_Org_ID,AccountSign,AccountType,C_ElementValue_ID,C_Element_ID,Created,CreatedBy,IsActive,IsBankAccount,IsDocControlled,IsForeignCurrency,IsSummary,NAME,PostActual,PostBudget,PostEncumbrance,PostStatistical,Updated,UpdatedBy,VALUE) VALUES (11,0,'N','M',50000,105,TO_DATE('2007-12-01 02:55:03','YYYY-MM-DD HH24:MI:SS'),100,'Y','N','N','N','N','SO Commitment','Y','Y','Y','Y',TO_DATE('2007-12-01 02:55:03','YYYY-MM-DD HH24:MI:SS'),100,'953') +/ + +-- Dec 1, 2007 2:55:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO C_ELEMENTVALUE_TRL (AD_LANGUAGE,C_ElementValue_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.C_ElementValue_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, C_ELEMENTVALUE t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.C_ElementValue_ID=50000 AND EXISTS (SELECT * FROM C_ELEMENTVALUE_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.C_ElementValue_ID!=t.C_ElementValue_ID) +/ + +-- Dec 1, 2007 2:55:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_TREENODE (AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, AD_Tree_ID, Node_ID, Parent_ID, SeqNo) SELECT t.AD_Client_ID,0, 'Y', SYSDATE, 0, SYSDATE, 0,t.AD_Tree_ID, 50000, 0, 999 FROM AD_TREE t WHERE t.AD_Client_ID=11 AND t.IsActive='Y' AND EXISTS (SELECT * FROM C_ELEMENT ae WHERE ae.C_Element_ID=105 AND t.AD_Tree_ID=ae.AD_Tree_ID) AND NOT EXISTS (SELECT * FROM AD_TREENODE e WHERE e.AD_Tree_ID=t.AD_Tree_ID AND Node_ID=50000) +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=0, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=506 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=1, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=584 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=2, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=624 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=3, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=632 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=4, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=429 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=5, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=449 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=6, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=783 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=7, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=704 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=8, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=716 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=9, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=728 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=10, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=731 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=11, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=734 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=0, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=735 +/ + +-- Dec 1, 2007 2:55:09 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=1, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=736 +/ + +-- Dec 1, 2007 2:55:09 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=2, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=50000 +/ + +-- Dec 1, 2007 2:55:09 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=3, Updated=SYSDATE WHERE AD_Tree_ID=101 AND Node_ID=737 +/ + +-- Dec 1, 2007 2:55:54 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO C_VALIDCOMBINATION (AD_Client_ID,AD_Org_ID,Account_ID,C_AcctSchema_ID,C_ValidCombination_ID,Combination,Created,CreatedBy,Description,IsActive,IsFullyQualified,Updated,UpdatedBy) VALUES (11,11,50000,101,50000,'HQ-953-_-_-_-_',TO_DATE('2007-12-01 02:55:54','YYYY-MM-DD HH24:MI:SS'),100,'HQ-SO Commitment-_-_-_-_','Y','Y',TO_DATE('2007-12-01 02:55:54','YYYY-MM-DD HH24:MI:SS'),100) +/ + +-- Dec 1, 2007 2:56:01 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE C_ACCTSCHEMA_GL SET CommitmentOffsetSales_Acct=50000,Updated=TO_DATE('2007-12-01 02:56:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE C_AcctSchema_ID=101 +/ + +COMMIT +/ \ No newline at end of file diff --git a/migration/330-trunk/postgresql/041_FR1814291.sql b/migration/330-trunk/postgresql/041_FR1814291.sql new file mode 100644 index 0000000000..884a6ed021 --- /dev/null +++ b/migration/330-trunk/postgresql/041_FR1814291.sql @@ -0,0 +1,228 @@ +-- Dec 1, 2007 1:51:24 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST SET NAME='PO Commitment & Reservation',Updated=TO_TIMESTAMP('2007-12-01 01:51:24','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=785 +/ + +-- Dec 1, 2007 1:51:24 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Compromisos Compra y Reservas', IsTranslated='Y' WHERE AD_Ref_List_ID=785 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST SET NAME='PO Commitment only',Updated=TO_TIMESTAMP('2007-12-01 01:52:54','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Ref_List_ID=784 +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Solamente Compromiso Compras', IsTranslated='Y' WHERE AD_Ref_List_ID=784 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:53:53 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST (AD_Client_ID,AD_Org_ID,AD_Ref_List_ID,AD_Reference_ID,Created,CreatedBy,EntityType,IsActive,NAME,Updated,UpdatedBy,VALUE) VALUES (0,0,53223,359,TO_TIMESTAMP('2007-12-01 01:53:45','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','PO/SO Commitment & Reservation',TO_TIMESTAMP('2007-12-01 01:53:45','YYYY-MM-DD HH24:MI:SS'),100,'A') +/ + +-- Dec 1, 2007 1:53:53 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST_TRL (AD_LANGUAGE,AD_Ref_List_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Ref_List_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_REF_LIST t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Ref_List_ID=53223 AND EXISTS (SELECT * FROM AD_REF_LIST_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Ref_List_ID!=t.AD_Ref_List_ID) +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Compromisos (ambos) y Reservas', IsTranslated='Y' WHERE AD_Ref_List_ID=53223 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:54:46 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST (AD_Client_ID,AD_Org_ID,AD_Ref_List_ID,AD_Reference_ID,Created,CreatedBy,EntityType,IsActive,NAME,Updated,UpdatedBy,VALUE) VALUES (0,0,53224,359,TO_TIMESTAMP('2007-12-01 01:54:31','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','SO Commitment only',TO_TIMESTAMP('2007-12-01 01:54:31','YYYY-MM-DD HH24:MI:SS'),100,'S') +/ + +-- Dec 1, 2007 1:54:46 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST_TRL (AD_LANGUAGE,AD_Ref_List_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Ref_List_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_REF_LIST t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Ref_List_ID=53224 AND EXISTS (SELECT * FROM AD_REF_LIST_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Ref_List_ID!=t.AD_Ref_List_ID) +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Solamente Compromiso Ventas', IsTranslated='Y' WHERE AD_Ref_List_ID=53224 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:55:44 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST (AD_Client_ID,AD_Org_ID,AD_Ref_List_ID,AD_Reference_ID,Created,CreatedBy,EntityType,IsActive,NAME,Updated,UpdatedBy,VALUE) VALUES (0,0,53225,359,TO_TIMESTAMP('2007-12-01 01:55:35','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','PO/SO Commitment',TO_TIMESTAMP('2007-12-01 01:55:35','YYYY-MM-DD HH24:MI:SS'),100,'O') +/ + +-- Dec 1, 2007 1:55:44 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_REF_LIST_TRL (AD_LANGUAGE,AD_Ref_List_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Ref_List_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_REF_LIST t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Ref_List_ID=53225 AND EXISTS (SELECT * FROM AD_REF_LIST_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Ref_List_ID!=t.AD_Ref_List_ID) +/ + +-- Dec 1, 2007 1:52:54 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_REF_LIST_TRL SET NAME = 'Solamente Compromisos (ambos)', IsTranslated='Y' WHERE AD_Ref_List_ID=53225 AND AD_LANGUAGE LIKE 'es_%' +/ + +-- Dec 1, 2007 1:58:18 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_ELEMENT (AD_Client_ID,AD_Element_ID,AD_Org_ID,ColumnName,Created,CreatedBy,Description,EntityType,Help,IsActive,NAME,PrintName,Updated,UpdatedBy) VALUES (0,53228,0,'CommitmentOffsetSales_Acct',TO_TIMESTAMP('2007-12-01 01:58:04','YYYY-MM-DD HH24:MI:SS'),100,'Budgetary Commitment Offset Account for Sales','D','The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.','Y','Commitment Offset Sales','Commitment Offset Sales',TO_TIMESTAMP('2007-12-01 01:58:04','YYYY-MM-DD HH24:MI:SS'),100) +/ + +-- Dec 1, 2007 1:58:18 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_ELEMENT_TRL (AD_LANGUAGE,AD_Element_ID, Description,Help,NAME,PO_Description,PO_Help,PO_Name,PO_PrintName,PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Element_ID, t.Description,t.Help,t.NAME,t.PO_Description,t.PO_Help,t.PO_Name,t.PO_PrintName,t.PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_ELEMENT t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=53228 AND EXISTS (SELECT * FROM AD_ELEMENT_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Element_ID!=t.AD_Element_ID) +/ + +-- Dec 1, 2007 1:59:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_COLUMN (AD_Client_ID,AD_Column_ID,AD_Element_ID,AD_Org_ID,AD_Reference_ID,AD_Table_ID,ColumnName,Created,CreatedBy,Description,EntityType,FieldLength,Help,IsActive,IsAlwaysUpdateable,IsEncrypted,IsIdentifier,IsKey,IsMandatory,IsParent,IsSelectionColumn,IsSyncDatabase,IsTranslated,IsUpdateable,NAME,Updated,UpdatedBy,VERSION) VALUES (0,53267,53228,0,25,266,'CommitmentOffsetSales_Acct',TO_TIMESTAMP('2007-12-01 01:58:56','YYYY-MM-DD HH24:MI:SS'),100,'Budgetary Commitment Offset Account for Sales','D',10,'The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.','Y','N','N','N','N','N','N','N','N','N','Y','Commitment Offset Sales',TO_TIMESTAMP('2007-12-01 01:58:56','YYYY-MM-DD HH24:MI:SS'),100,0) +/ + +-- Dec 1, 2007 1:59:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_COLUMN_TRL (AD_LANGUAGE,AD_Column_ID, NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Column_ID, t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_COLUMN t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=53267 AND EXISTS (SELECT * FROM AD_COLUMN_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Column_ID!=t.AD_Column_ID) +/ + +-- Dec 1, 2007 1:59:26 AM COT +-- FR 1814291 - Sales Commitment Offset +ALTER TABLE C_ACCTSCHEMA_GL ADD COLUMN CommitmentOffsetSales_Acct NUMERIC(10) +/ + +-- FR 1814291 - Sales Commitment Offset +UPDATE C_ACCTSCHEMA_GL SET CommitmentOffsetSales_Acct = CommitmentOffset_Acct +/ + +-- Dec 1, 2007 2:00:20 AM COT +-- FR 1814291 - Sales Commitment Offset +ALTER TABLE C_ACCTSCHEMA_GL ALTER COLUMN CommitmentOffsetSales_Acct SET NOT NULL +/ + +-- Dec 1, 2007 2:00:11 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_COLUMN SET IsMandatory='Y',Updated=TO_TIMESTAMP('2007-12-01 02:00:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=53267 +/ + +-- Dec 1, 2007 2:00:11 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_FIELD SET NAME='Commitment Offset Sales', Description='Budgetary Commitment Offset Account for Sales', Help='The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.' WHERE AD_Column_ID=53267 AND IsCentrallyMaintained='Y' +/ + +-- Dec 1, 2007 2:02:34 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_FIELD SET IsSameLine='N', SeqNo=160,Updated=TO_TIMESTAMP('2007-12-01 02:02:34','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12375 +/ + +-- Dec 1, 2007 2:03:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_FIELD (AD_Client_ID,AD_Column_ID,AD_Field_ID,AD_Org_ID,AD_Tab_ID,Created,CreatedBy,Description,DisplayLength,EntityType,Help,IsActive,IsCentrallyMaintained,IsDisplayed,IsEncrypted,IsFieldOnly,IsHeading,IsReadOnly,IsSameLine,NAME,SeqNo,Updated,UpdatedBy) VALUES (0,53267,53282,0,200,TO_TIMESTAMP('2007-12-01 02:02:56','YYYY-MM-DD HH24:MI:SS'),100,'Budgetary Commitment Offset Account for Sales',10,'D','The Commitment Offset Account is used for posting Commitments Sales and Reservations. It is usually an off-balance sheet and gain-and-loss account.','Y','Y','Y','N','N','N','N','Y','Commitment Offset Sales',170,TO_TIMESTAMP('2007-12-01 02:02:56','YYYY-MM-DD HH24:MI:SS'),100) +/ + +-- Dec 1, 2007 2:03:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_FIELD_TRL (AD_LANGUAGE,AD_Field_ID, Description,Help,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.AD_Field_ID, t.Description,t.Help,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, AD_FIELD t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=53282 AND EXISTS (SELECT * FROM AD_FIELD_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.AD_Field_ID!=t.AD_Field_ID) +/ + +-- Dec 1, 2007 2:55:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO C_ELEMENTVALUE (AD_Client_ID,AD_Org_ID,AccountSign,AccountType,C_ElementValue_ID,C_Element_ID,Created,CreatedBy,IsActive,IsBankAccount,IsDocControlled,IsForeignCurrency,IsSummary,NAME,PostActual,PostBudget,PostEncumbrance,PostStatistical,Updated,UpdatedBy,VALUE) VALUES (11,0,'N','M',50000,105,TO_TIMESTAMP('2007-12-01 02:55:03','YYYY-MM-DD HH24:MI:SS'),100,'Y','N','N','N','N','SO Commitment','Y','Y','Y','Y',TO_TIMESTAMP('2007-12-01 02:55:03','YYYY-MM-DD HH24:MI:SS'),100,'953') +/ + +-- Dec 1, 2007 2:55:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO C_ELEMENTVALUE_TRL (AD_LANGUAGE,C_ElementValue_ID, Description,NAME, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_LANGUAGE,t.C_ElementValue_ID, t.Description,t.NAME, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_LANGUAGE l, C_ELEMENTVALUE t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.C_ElementValue_ID=50000 AND EXISTS (SELECT * FROM C_ELEMENTVALUE_TRL tt WHERE tt.AD_LANGUAGE!=l.AD_LANGUAGE OR tt.C_ElementValue_ID!=t.C_ElementValue_ID) +/ + +-- Dec 1, 2007 2:55:04 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO AD_TREENODE (AD_Client_ID,AD_Org_ID, IsActive,Created,CreatedBy,Updated,UpdatedBy, AD_Tree_ID, Node_ID, Parent_ID, SeqNo) SELECT t.AD_Client_ID,0, 'Y', CURRENT_TIMESTAMP, 0, CURRENT_TIMESTAMP, 0,t.AD_Tree_ID, 50000, 0, 999 FROM AD_TREE t WHERE t.AD_Client_ID=11 AND t.IsActive='Y' AND EXISTS (SELECT * FROM C_ELEMENT ae WHERE ae.C_Element_ID=105 AND t.AD_Tree_ID=ae.AD_Tree_ID) AND NOT EXISTS (SELECT * FROM AD_TREENODE e WHERE e.AD_Tree_ID=t.AD_Tree_ID AND Node_ID=50000) +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=0, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=506 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=1, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=584 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=2, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=624 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=3, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=632 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=4, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=429 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=5, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=449 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=6, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=783 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=7, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=704 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=8, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=716 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=9, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=728 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=10, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=731 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=0, SeqNo=11, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=734 +/ + +-- Dec 1, 2007 2:55:08 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=0, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=735 +/ + +-- Dec 1, 2007 2:55:09 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=1, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=736 +/ + +-- Dec 1, 2007 2:55:09 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=2, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=50000 +/ + +-- Dec 1, 2007 2:55:09 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE AD_TREENODE SET Parent_ID=734, SeqNo=3, Updated=CURRENT_TIMESTAMP WHERE AD_Tree_ID=101 AND Node_ID=737 +/ + +-- Dec 1, 2007 2:55:54 AM COT +-- FR 1814291 - Sales Commitment Offset +INSERT INTO C_VALIDCOMBINATION (AD_Client_ID,AD_Org_ID,Account_ID,C_AcctSchema_ID,C_ValidCombination_ID,Combination,Created,CreatedBy,Description,IsActive,IsFullyQualified,Updated,UpdatedBy) VALUES (11,11,50000,101,50000,'HQ-953-_-_-_-_',TO_TIMESTAMP('2007-12-01 02:55:54','YYYY-MM-DD HH24:MI:SS'),100,'HQ-SO Commitment-_-_-_-_','Y','Y',TO_TIMESTAMP('2007-12-01 02:55:54','YYYY-MM-DD HH24:MI:SS'),100) +/ + +-- Dec 1, 2007 2:56:01 AM COT +-- FR 1814291 - Sales Commitment Offset +UPDATE C_ACCTSCHEMA_GL SET CommitmentOffsetSales_Acct=50000,Updated=TO_TIMESTAMP('2007-12-01 02:56:01','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE C_AcctSchema_ID=101 +/