⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msetup.java

📁 大家共享愉快, 共享愉快, 共享愉快, 共享愉快,共享愉快
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
		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 + -