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

📄 msetup.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					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 + -