📄 msetup.java
字号:
SeqNo = 70;
}
// Not OT, LF, LT, U1, U2, AY
if (IsMandatory != null)
{
sqlCmd = new StringBuffer ("INSERT INTO C_AcctSchema_Element(");
sqlCmd.append(m_stdColumns).append(",C_AcctSchema_Element_ID,C_AcctSchema_ID,")
.append("ElementType,Name,SeqNo,IsMandatory,IsBalanced) VALUES (");
sqlCmd.append(m_stdValues).append(",").append(C_AcctSchema_Element_ID).append(",").append(C_AcctSchema_ID).append(",")
.append("'").append(ElementType).append("','").append(name).append("',").append(SeqNo).append(",'")
.append(IsMandatory).append("','").append(IsBalanced).append("')");
no = DB.executeUpdate(sqlCmd.toString());
if (no == 1)
m_info.append(Msg.translate(m_lang, "C_AcctSchema_Element_ID")).append("=").append(name).append("\n");
/** Default value for mandatory elements: OO and AC */
if (ElementType.equals("OO"))
{
sqlCmd = new StringBuffer ("UPDATE C_AcctSchema_Element SET Org_ID=");
sqlCmd.append(AD_Org_ID).append(" WHERE C_AcctSchema_Element_ID=").append(C_AcctSchema_Element_ID);
no = DB.executeUpdate(sqlCmd.toString());
if (no != 1)
Log.error("MSetup.createAccounting - Default Org in AcctSchamaElement NOT updated");
}
if (ElementType.equals("AC"))
{
sqlCmd = new StringBuffer ("UPDATE C_AcctSchema_Element SET C_ElementValue_ID=");
sqlCmd.append(C_ElementValue_ID).append(", C_Element_ID=").append(C_Element_ID);
sqlCmd.append(" WHERE C_AcctSchema_Element_ID=").append(C_AcctSchema_Element_ID);
no = DB.executeUpdate(sqlCmd.toString());
if (no != 1)
Log.error("MSetup.createAccounting - Default Account in AcctSchamaElement NOT updated");
}
}
}
rs.close();
stmt.close();
}
catch (SQLException e1)
{
Log.error ("MSetup.createAccounting - Elements", e1);
}
// Create AcctSchema
m_AcctSchema = new AcctSchema (C_AcctSchema_ID);
// Create GL Accounts
sqlCmd = new StringBuffer ("INSERT INTO C_ACCTSCHEMA_GL (");
sqlCmd.append(m_stdColumns).append(",C_ACCTSCHEMA_ID,"
+ "USESUSPENSEBALANCING,SUSPENSEBALANCING_ACCT,"
+ "USESUSPENSEERROR,SUSPENSEERROR_ACCT,"
+ "USECURRENCYBALANCING,CURRENCYBALANCING_ACCT,"
+ "RETAINEDEARNING_ACCT,INCOMESUMMARY_ACCT,"
+ "INTERCOMPANYDUETO_ACCT,INTERCOMPANYDUEFROM_ACCT,"
+ "PPVOFFSET_ACCT) VALUES (");
sqlCmd.append(m_stdValues).append(",").append(C_AcctSchema_ID).append(",");
sqlCmd.append("'Y',").append(getAcct("SUSPENSEBALANCING_ACCT")).append(",");
sqlCmd.append("'Y',").append(getAcct("SUSPENSEERROR_ACCT")).append(",");
sqlCmd.append("'Y',").append(getAcct("CURRENCYBALANCING_ACCT")).append(",");
// RETAINEDEARNING_ACCT,INCOMESUMMARY_ACCT,
sqlCmd.append(getAcct("RETAINEDEARNING_ACCT")).append(",");
sqlCmd.append(getAcct("INCOMESUMMARY_ACCT")).append(",");
// INTERCOMPANYDUETO_ACCT,INTERCOMPANYDUEFROM_ACCT)
sqlCmd.append(getAcct("INTERCOMPANYDUETO_ACCT")).append(",");
sqlCmd.append(getAcct("INTERCOMPANYDUEFROM_ACCT")).append(",");
sqlCmd.append(getAcct("PPVOFFSET_ACCT")).append(")");
no = DB.executeUpdate(sqlCmd.toString());
if (no != 1)
{
String err = "MSetup.createAccounting - GL Accounts NOT iserted";
Log.error(err);
m_info.append(err);
return false;
}
// Create Std Accounts
sqlCmd = new StringBuffer ("INSERT INTO C_ACCTSCHEMA_DEFAULT (");
sqlCmd.append(m_stdColumns).append(",C_ACCTSCHEMA_ID,"
+ "W_INVENTORY_ACCT,W_DIFFERENCES_ACCT,W_REVALUATION_ACCT,W_INVACTUALADJUST_ACCT, "
+ "P_REVENUE_ACCT,P_EXPENSE_ACCT,P_ASSET_ACCT,P_COGS_ACCT, "
+ "P_PURCHASEPRICEVARIANCE_ACCT,P_INVOICEPRICEVARIANCE_ACCT,P_TRADEDISCOUNTREC_ACCT,P_TRADEDISCOUNTGRANT_ACCT, "
+ "C_RECEIVABLE_ACCT,C_PREPAYMENT_ACCT, "
+ "V_LIABILITY_ACCT,V_LIABILITY_SERVICES_ACCT,V_PREPAYMENT_ACCT, "
+ "PAYDISCOUNT_EXP_ACCT,PAYDISCOUNT_REV_ACCT,WRITEOFF_ACCT, "
+ "UNREALIZEDGAIN_ACCT,UNREALIZEDLOSS_ACCT,REALIZEDGAIN_ACCT,REALIZEDLOSS_ACCT, "
+ "WITHHOLDING_ACCT,E_PREPAYMENT_ACCT,E_EXPENSE_ACCT, "
+ "PJ_ASSET_ACCT,PJ_WIP_ACCT,"
+ "T_EXPENSE_ACCT,T_LIABILITY_ACCT,T_RECEIVABLES_ACCT,T_DUE_ACCT,T_CREDIT_ACCT, "
+ "B_INTRANSIT_ACCT,B_ASSET_ACCT,B_EXPENSE_ACCT,B_INTERESTREV_ACCT,B_INTERESTEXP_ACCT,"
+ "B_UNIDENTIFIED_ACCT,B_SETTLEMENTGAIN_ACCT,B_SETTLEMENTLOSS_ACCT,"
+ "B_REVALUATIONGAIN_ACCT,B_REVALUATIONLOSS_ACCT,B_PAYMENTSELECT_ACCT,B_UNALLOCATEDCASH_ACCT, "
+ "CH_EXPENSE_ACCT,CH_REVENUE_ACCT, "
+ "UNEARNEDREVENUE_ACCT,NOTINVOICEDRECEIVABLES_ACCT,NOTINVOICEDREVENUE_ACCT,NOTINVOICEDRECEIPTS_ACCT, "
+ "CB_ASSET_ACCT,CB_CASHTRANSFER_ACCT,CB_DIFFERENCES_ACCT,CB_EXPENSE_ACCT,CB_RECEIPT_ACCT) VALUES (");
sqlCmd.append(m_stdValues).append(",").append(C_AcctSchema_ID).append(",");
// W_INVENTORY_ACCT,W_DIFFERENCES_ACCT,W_REVALUATION_ACCT,W_INVACTUALADJUST_ACCT
sqlCmd.append(getAcct("W_INVENTORY_ACCT")).append(",");
sqlCmd.append(getAcct("W_DIFFERENCES_ACCT")).append(",");
sqlCmd.append(getAcct("W_REVALUATION_ACCT")).append(",");
sqlCmd.append(getAcct("W_INVACTUALADJUST_ACCT")).append(", ");
// P_REVENUE_ACCT,P_EXPENSE_ACCT,P_ASSET_ACCT,P_COGS_ACCT,
sqlCmd.append(getAcct("P_REVENUE_ACCT")).append(",");
sqlCmd.append(getAcct("P_EXPENSE_ACCT")).append(",");
sqlCmd.append(getAcct("P_ASSET_ACCT")).append(",");
sqlCmd.append(getAcct("P_COGS_ACCT")).append(", ");
// P_PURCHASEPRICEVARIANCE_ACCT,P_INVOICEPRICEVARIANCE_ACCT,P_TRADEDISCOUNTREC_ACCT,P_TRADEDISCOUNTGRANT_ACCT,
sqlCmd.append(getAcct("P_PURCHASEPRICEVARIANCE_ACCT")).append(",");
sqlCmd.append(getAcct("P_INVOICEPRICEVARIANCE_ACCT")).append(",");
sqlCmd.append(getAcct("P_TRADEDISCOUNTREC_ACCT")).append(",");
sqlCmd.append(getAcct("P_TRADEDISCOUNTGRANT_ACCT")).append(", ");
// C_RECEIVABLE_ACCT,C_PREPAYMENT_ACCT,
sqlCmd.append(getAcct("C_RECEIVABLE_ACCT")).append(",");
sqlCmd.append(getAcct("C_PREPAYMENT_ACCT")).append(", ");
// V_LIABILITY_ACCT,V_LIABILITY_SERVICES_ACCT,V_PREPAYMENT_ACCT,
sqlCmd.append(getAcct("V_LIABILITY_ACCT")).append(",");
sqlCmd.append(getAcct("V_LIABILITY_SERVICES_ACCT")).append(",");
sqlCmd.append(getAcct("V_PREPAYMENT_ACCT")).append(", ");
// PAYDISCOUNT_EXP_ACCT,PAYDISCOUNT_REV_ACCT,WRITEOFF_ACCT,
sqlCmd.append(getAcct("PAYDISCOUNT_EXP_ACCT")).append(",");
sqlCmd.append(getAcct("PAYDISCOUNT_REV_ACCT")).append(",");
sqlCmd.append(getAcct("WRITEOFF_ACCT")).append(", ");
// UNREALIZEDGAIN_ACCT,UNREALIZEDLOSS_ACCT,REALIZEDGAIN_ACCT,REALIZEDLOSS_ACCT,
sqlCmd.append(getAcct("UNREALIZEDGAIN_ACCT")).append(",");
sqlCmd.append(getAcct("UNREALIZEDLOSS_ACCT")).append(",");
sqlCmd.append(getAcct("REALIZEDGAIN_ACCT")).append(",");
sqlCmd.append(getAcct("REALIZEDLOSS_ACCT")).append(", ");
// WITHHOLDING_ACCT,E_PREPAYMENT_ACCT,E_EXPENSE_ACCT,
sqlCmd.append(getAcct("WITHHOLDING_ACCT")).append(",");
sqlCmd.append(getAcct("E_PREPAYMENT_ACCT")).append(",");
sqlCmd.append(getAcct("E_EXPENSE_ACCT")).append(", ");
// PJ_ASSET_ACCT,PJ_WIP_ACCT,
sqlCmd.append(getAcct("PJ_ASSET_ACCT")).append(",");
sqlCmd.append(getAcct("PJ_WIP_ACCT")).append(",");
// T_EXPENSE_ACCT,T_LIABILITY_ACCT,T_RECEIVABLES_ACCT,T_DUE_ACCT,T_CREDIT_ACCT,
sqlCmd.append(getAcct("T_EXPENSE_ACCT")).append(",");
sqlCmd.append(getAcct("T_LIABILITY_ACCT")).append(",");
sqlCmd.append(getAcct("T_RECEIVABLES_ACCT")).append(",");
sqlCmd.append(getAcct("T_DUE_ACCT")).append(",");
sqlCmd.append(getAcct("T_CREDIT_ACCT")).append(", ");
// B_INTRANSIT_ACCT,B_ASSET_ACCT,B_EXPENSE_ACCT,B_INTERESTREV_ACCT,B_INTERESTEXP_ACCT,
sqlCmd.append(getAcct("B_INTRANSIT_ACCT")).append(",");
sqlCmd.append(getAcct("B_ASSET_ACCT")).append(",");
sqlCmd.append(getAcct("B_EXPENSE_ACCT")).append(",");
sqlCmd.append(getAcct("B_INTERESTREV_ACCT")).append(",");
sqlCmd.append(getAcct("B_INTERESTEXP_ACCT")).append(",");
// B_UNIDENTIFIED_ACCT,B_SETTLEMENTGAIN_ACCT,B_SETTLEMENTLOSS_ACCT,
sqlCmd.append(getAcct("B_UNIDENTIFIED_ACCT")).append(",");
sqlCmd.append(getAcct("B_SETTLEMENTGAIN_ACCT")).append(",");
sqlCmd.append(getAcct("B_SETTLEMENTLOSS_ACCT")).append(",");
// B_REVALUATIONGAIN_ACCT,B_REVALUATIONLOSS_ACCT,B_PAYMENTSELECT_ACCT,B_UNALLOCATEDCASH_ACCT,
sqlCmd.append(getAcct("B_REVALUATIONGAIN_ACCT")).append(",");
sqlCmd.append(getAcct("B_REVALUATIONLOSS_ACCT")).append(",");
sqlCmd.append(getAcct("B_PAYMENTSELECT_ACCT")).append(",");
sqlCmd.append(getAcct("B_UNALLOCATEDCASH_ACCT")).append(", ");
// CH_EXPENSE_ACCT,CH_REVENUE_ACCT,
sqlCmd.append(getAcct("CH_EXPENSE_ACCT")).append(",");
sqlCmd.append(getAcct("CH_REVENUE_ACCT")).append(", ");
// UNEARNEDREVENUE_ACCT,NOTINVOICEDRECEIVABLES_ACCT,NOTINVOICEDREVENUE_ACCT,NOTINVOICEDRECEIPTS_ACCT,
sqlCmd.append(getAcct("UNEARNEDREVENUE_ACCT")).append(",");
sqlCmd.append(getAcct("NOTINVOICEDRECEIVABLES_ACCT")).append(",");
sqlCmd.append(getAcct("NOTINVOICEDREVENUE_ACCT")).append(",");
sqlCmd.append(getAcct("NOTINVOICEDRECEIPTS_ACCT")).append(", ");
// CB_ASSET_ACCT,CB_CASHTRANSFER_ACCT,CB_DIFFERENCES_ACCT,CB_EXPENSE_ACCT,CB_RECEIPT_ACCT)
sqlCmd.append(getAcct("CB_ASSET_ACCT")).append(",");
sqlCmd.append(getAcct("CB_CASHTRANSFER_ACCT")).append(",");
sqlCmd.append(getAcct("CB_DIFFERENCES_ACCT")).append(",");
sqlCmd.append(getAcct("CB_EXPENSE_ACCT")).append(",");
sqlCmd.append(getAcct("CB_RECEIPT_ACCT")).append(")");
no = DB.executeUpdate(sqlCmd.toString());
if (no != 1)
{
String err = "MSetup.createAccounting - Default Accounts NOT iserted";
Log.error(err);
m_info.append(err);
return false;
}
// GL Categories
createGLCategory("Standard", "M", true);
int GL_None = createGLCategory("None", "D", false);
int GL_GL = createGLCategory("Manual", "M", false);
int GL_ARI = createGLCategory("AR Invoice", "D", false);
int GL_ARR = createGLCategory("AR Receipt", "D", false);
int GL_MM = createGLCategory("Material Management", "D", false);
int GL_API = createGLCategory("AP Invoice", "D", false);
int GL_APP = createGLCategory("AP Payment", "D", false);
// Base DocumentTypes
createDocType("GL Journal", "Journal", "GLJ", null, 0, 0, 1000, GL_GL);
int DT_I = createDocType("AR Invoice", "Invoice", "ARI", null, 0, 0, 100000, GL_ARI);
int DT_II = createDocType("AR Invoice Indirect", "Invoice", "ARI", null, 0, 0, 200000, GL_ARI);
createDocType("AR Credit Memo", "Credit Memo", "ARC", null, 0, 0, 300000, GL_ARI);
createDocType("AR Receipt", "Receipt", "ARR", null, 0, 0, 400000, GL_ARR);
int DT_S = createDocType("MM Shipment", "Delivery Note", "MMS", null, 0, 0, 500000, GL_MM);
int DT_SI = createDocType("MM Shipment Indirect", "Delivery Note", "MMS", null, 0, 0, 600000, GL_MM);
createDocType("MM Receipt", "Vendor Delivery", "MMR", null, 0, 0, 0, GL_MM);
createDocType("AP Invoice", "Vendor Invoice", "API", null, 0, 0, 0, GL_API);
createDocType("AP CreditMemo", "Vendor Credit Memo", "APC", null, 0, 0, 0, GL_API);
createDocType("AP Payment", "Vendor Payment", "APP", null, 0, 0, 700000, GL_APP);
createDocType("Purchase Order", "Purchase Order", "POO", null, 0, 0, 800000, GL_None);
createDocType("Purchase Requisition", "Purchase Requisition", "POR", null, 0, 0, 900000, GL_None);
// Order Entry
createDocType("Quotation", "Binding offer", "SOO", "OB", 0, 0, 10000, GL_None);
createDocType("Proposal", "Non binding offer", "SOO", "ON", 0, 0, 20000, GL_None);
createDocType("Prepay Order", "Prepay Order", "SOO", "PR", DT_S, DT_I, 30000, GL_None);
createDocType("Return Material", "Return Material Authorization", "SOO", "RM", DT_S, DT_I, 40000, GL_None);
createDocType("Standard Order", "Order Confirmation", "SOO", "SO", DT_S, DT_I, 50000, GL_None);
createDocType("Credit Order", "Order Confirmation", "SOO", "WI", DT_SI, DT_I, 60000, GL_None); // RE
createDocType("Warehouse Order", "Order Confirmation", "SOO", "WP", DT_S, DT_I, 70000, GL_None); // LS
int DT = createDocType("POS Order", "Order Confirmation", "SOO", "WR", DT_SI, DT_II, 80000, GL_None); // Bar
createPreference("C_DocTypeTarget_ID", String.valueOf(DT), 143);
// Update ClientInfo
sqlCmd = new StringBuffer ("UPDATE AD_ClientInfo SET ");
sqlCmd.append("C_AcctSchema1_ID=").append(C_AcctSchema_ID)
.append(", C_Calendar_ID=").append(C_Calendar_ID)
.append(" WHERE AD_Client_ID=").append(AD_Client_ID);
no = DB.executeUpdate(sqlCmd.toString());
if (no != 1)
{
String err = "MSetup.createAccounting - ClientInfo not updated";
Log.error(err);
m_info.append(err);
return false;
}
//
return true;
} // createAccounting
/**
* Get Account ID for key
* @param key key
* @return C_ValidCombination_ID
*/
private int getAcct (String key)
{
Log.trace(Log.l4_Data, "MSetup.getAcct - " + key);
// Element
int C_ElementValue_ID = m_nap.getC_ElementValue_ID(key);
Account vc = Account.getDefault(m_AcctSchema);
vc.setAccount_ID(C_ElementValue_ID);
vc.save(AD_Client_ID, 0);
int C_ValidCombination_ID = vc.getC_ValidCombination_ID();
// Error
if (C_ValidCombination_ID == 0)
Log.error("MSetup.getAcct - no account for " + key);
return C_ValidCombination_ID;
} // getAcct
/**
* Create GL Category
* @param Name name
* @param CategoryType category type
* @param isDefault is default value
* @return GL_Category_ID
*/
private int createGLCategory (String Name, String CategoryType, boolean isDefault)
{
int GL_Category_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "GL_Category");
StringBuffer sqlCmd = new StringBuffer ("INSERT INTO GL_Category ");
sqlCmd.append("(GL_Category_ID,").append(m_stdColumns).append(",")
.append("Name,CategoryType,IsDefault) VALUES (")
.append(GL_Category_ID).append(",").append(m_stdValues).append(",")
.append("'").append(Name).append("','").append(CategoryType).append("','")
.append(isDefault ? "Y" : "N").append("')");
int no = DB.executeUpdate(sqlCmd.toString());
if (no != 1)
Log.error("MSetup.createGLCategory - GL Category NOT created - " + Name);
//
return GL_Category_ID;
} // createGLCategory
/**
* Create Document Types with Sequence
* @param Name name
* @param PrintName print name
* @param DocBaseType document base type
* @param DocSubTypeSO sales order sub type
* @param C_DocTypeShipment_ID shipment doc
* @param C_DocTypeInvoice_ID invoice doc
* @param StartNo start doc no
* @param GL_Category_ID gl category
* @return C_DocType_ID doc type
*/
private int createDocType (String Name, String PrintName,
String DocBaseType, String DocSubTypeSO,
int C_DocTypeShipment_ID, int C_DocTypeInvoice_ID,
int StartNo, int GL_Category_ID)
{
StringBuffer sqlCmd = null;
// Get Sequence
int AD_Sequence_ID = 0;
if (StartNo != 0) // manual sequenec, if startNo == 0
{
AD_Sequence_ID = DB.getKeyNextNo(AD_Client_ID, CompiereSys, "AD_Sequence");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -