📄 msetup.java
字号:
StringBuffer sqlCmd = null;
int no = 0;
/**
* Create Calendar
*/
m_calendar = new MCalendar(m_client);
if (!m_calendar.save())
{
String err = "Calendar NOT inserted";
log.log(Level.SEVERE, err);
m_info.append(err);
m_trx.rollback();
m_trx.close();
return false;
}
// Info
m_info.append(Msg.translate(m_lang, "C_Calendar_ID")).append("=").append(m_calendar.getName()).append("\n");
if (m_calendar.createYear(m_client.getLocale()) == null)
log.log(Level.SEVERE, "Year NOT inserted");
// Create Account Elements
name = m_clientName + " " + Msg.translate(m_lang, "Account_ID");
MElement element = new MElement (m_client, name,
MElement.ELEMENTTYPE_Account, m_AD_Tree_Account_ID);
if (!element.save())
{
String err = "Acct Element NOT inserted";
log.log(Level.SEVERE, err);
m_info.append(err);
m_trx.rollback();
m_trx.close();
return false;
}
int C_Element_ID = element.getC_Element_ID();
m_info.append(Msg.translate(m_lang, "C_Element_ID")).append("=").append(name).append("\n");
// Create Account Values
m_nap = new NaturalAccountMap<String,MElementValue>(m_ctx, m_trx.getTrxName());
String errMsg = m_nap.parseFile(AccountingFile);
if (errMsg.length() != 0)
{
log.log(Level.SEVERE, errMsg);
m_info.append(errMsg);
m_trx.rollback();
m_trx.close();
return false;
}
if (m_nap.saveAccounts(getAD_Client_ID(), getAD_Org_ID(), C_Element_ID))
m_info.append(Msg.translate(m_lang, "C_ElementValue_ID")).append(" # ").append(m_nap.size()).append("\n");
else
{
String err = "Acct Element Values NOT inserted";
log.log(Level.SEVERE, err);
m_info.append(err);
m_trx.rollback();
m_trx.close();
return false;
}
int C_ElementValue_ID = m_nap.getC_ElementValue_ID("DEFAULT_ACCT");
log.fine("C_ElementValue_ID=" + C_ElementValue_ID);
/**
* Create AccountingSchema
*/
m_as = new MAcctSchema (m_client, currency);
if (!m_as.save())
{
String err = "AcctSchema NOT inserted";
log.log(Level.SEVERE, err);
m_info.append(err);
m_trx.rollback();
m_trx.close();
return false;
}
// Info
m_info.append(Msg.translate(m_lang, "C_AcctSchema_ID")).append("=").append(m_as.getName()).append("\n");
/**
* Create AccountingSchema Elements (Structure)
*/
String sql2 = null;
if (Env.isBaseLanguage(m_lang, "AD_Reference")) // Get ElementTypes & Name
sql2 = "SELECT Value, Name FROM AD_Ref_List WHERE AD_Reference_ID=181";
else
sql2 = "SELECT l.Value, t.Name FROM AD_Ref_List l, AD_Ref_List_Trl t "
+ "WHERE l.AD_Reference_ID=181 AND l.AD_Ref_List_ID=t.AD_Ref_List_ID";
//
int Element_OO=0, Element_AC=0, Element_PR=0, Element_BP=0, Element_PJ=0,
Element_MC=0, Element_SR=0;
try
{
int AD_Client_ID = m_client.getAD_Client_ID();
PreparedStatement stmt = DB.prepareStatement(sql2, m_trx.getTrxName());
ResultSet rs = stmt.executeQuery();
while (rs.next())
{
String ElementType = rs.getString(1);
name = rs.getString(2);
//
String IsMandatory = null;
String IsBalanced = "N";
int SeqNo = 0;
int C_AcctSchema_Element_ID = 0;
if (ElementType.equals("OO"))
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_OO = C_AcctSchema_Element_ID;
IsMandatory = "Y";
IsBalanced = "Y";
SeqNo = 10;
}
else if (ElementType.equals("AC"))
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_AC = C_AcctSchema_Element_ID;
IsMandatory = "Y";
SeqNo = 20;
}
else if (ElementType.equals("PR") && hasProduct)
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_PR = C_AcctSchema_Element_ID;
IsMandatory = "N";
SeqNo = 30;
}
else if (ElementType.equals("BP") && hasBPartner)
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_BP = C_AcctSchema_Element_ID;
IsMandatory = "N";
SeqNo = 40;
}
else if (ElementType.equals("PJ") && hasProject)
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_PJ = C_AcctSchema_Element_ID;
IsMandatory = "N";
SeqNo = 50;
}
else if (ElementType.equals("MC") && hasMCampaign)
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_MC = C_AcctSchema_Element_ID;
IsMandatory = "N";
SeqNo = 60;
}
else if (ElementType.equals("SR") && hasSRegion)
{
C_AcctSchema_Element_ID = getNextID(AD_Client_ID, "C_AcctSchema_Element");
Element_SR = C_AcctSchema_Element_ID;
IsMandatory = "N";
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(m_as.getC_AcctSchema_ID()).append(",")
.append("'").append(ElementType).append("','").append(name).append("',").append(SeqNo).append(",'")
.append(IsMandatory).append("','").append(IsBalanced).append("')");
no = DB.executeUpdate(sqlCmd.toString(), m_trx.getTrxName());
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(getAD_Org_ID()).append(" WHERE C_AcctSchema_Element_ID=").append(C_AcctSchema_Element_ID);
no = DB.executeUpdate(sqlCmd.toString(), m_trx.getTrxName());
if (no != 1)
log.log(Level.SEVERE, "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(), m_trx.getTrxName());
if (no != 1)
log.log(Level.SEVERE, "Default Account in AcctSchamaElement NOT updated");
}
}
}
rs.close();
stmt.close();
}
catch (SQLException e1)
{
log.log(Level.SEVERE, "Elements", e1);
m_info.append(e1.getMessage());
m_trx.rollback();
m_trx.close();
return false;
}
// Create AcctSchema
// Create GL Accounts
m_accountsOK = true;
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, CommitmentOffset_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(",")
.append("'Y',").append(getAcct("CURRENCYBALANCING_Acct")).append(",");
// RETAINEDEARNING_Acct,INCOMESUMMARY_Acct,
sqlCmd.append(getAcct("RETAINEDEARNING_Acct")).append(",")
.append(getAcct("INCOMESUMMARY_Acct")).append(",")
// INTERCOMPANYDUETO_Acct,INTERCOMPANYDUEFROM_Acct)
.append(getAcct("INTERCOMPANYDUETO_Acct")).append(",")
.append(getAcct("INTERCOMPANYDUEFROM_Acct")).append(",")
.append(getAcct("PPVOFFSET_Acct")).append(",")
.append(getAcct("CommitmentOffset_Acct"))
.append(")");
if (m_accountsOK)
no = DB.executeUpdate(sqlCmd.toString(), m_trx.getTrxName());
else
no = -1;
if (no != 1)
{
String err = "GL Accounts NOT inserted";
log.log(Level.SEVERE, err);
m_info.append(err);
m_trx.rollback();
m_trx.close();
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_CostAdjustment_Acct,P_InventoryClearing_Acct,P_ASSET_Acct,P_COGS_Acct, "
+ "P_PURCHASEPRICEVARIANCE_Acct,P_INVOICEPRICEVARIANCE_Acct,P_TRADEDISCOUNTREC_Acct,P_TRADEDISCOUNTGRANT_Acct, "
+ "C_RECEIVABLE_Acct,C_Receivable_Services_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(m_as.getC_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_CostAdjustment_Acct")).append(",");
sqlCmd.append(getAcct("P_InventoryClearing_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_Receivable_Services_Acct,C_PREPAYMENT_Acct,
sqlCmd.append(getAcct("C_RECEIVABLE_Acct")).append(",");
sqlCmd.append(getAcct("C_RECEIVABLE_SERVICES_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(")");
if (m_accountsOK)
no = DB.executeUpdate(sqlCmd.toString(), m_trx.getTrxName());
else
no = -1;
if (no != 1)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -