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

📄 vcharge.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
			if (rs.next())
				m_C_TaxCategory_ID = rs.getInt(1);
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			Log.error ("VCharge.dynInit-tc", e);
		}
	}   //  dynInit

	/**
	 * 	Dispose
	 */
	public void dispose()
	{
		m_frame.dispose();
	}	//	dispose

	/**
	 *	Action Listener
	 *  @param e event
	 */
	public void actionPerformed (ActionEvent e)
	{
		Log.trace(Log.l1_User, "VCharge.actionPerformed - " + e.getActionCommand());
		//
		if (e.getActionCommand().equals(ConfirmPanel.A_OK) || m_C_Element_ID == 0)
			dispose();
		//  new Account
		else if (e.getSource().equals(newButton))
			createNew();
		else if (e.getSource().equals(accountButton))
			createAccount();
	}   //  actionPerformed

	/**
	 *  Create new Account and Charge
	 */
	private void createNew()
	{
		Log.trace(Log.l3_Util, "VCharge.createNew");
		//  Get Input
		String value = valueField.getText();
		if (value.length() == 0)
		{
			valueField.setBackground(CompierePLAF.getFieldBackground_Error());
			return;
		}
		String name = nameField.getText();
		if (name.length() == 0)
		{
			nameField.setBackground(CompierePLAF.getFieldBackground_Error());
			return;
		}
		//  Create Element
		int C_ElementValue_ID = create_ElementValue (value, name, isExpense.isSelected());
		if (C_ElementValue_ID == 0)
		{
			ADialog.error(m_WindowNo, this, "ChargeNotCreated", name);
			return;
		}
		//  Create Charge
		int C_Charge_ID = create_Charge(name, C_ElementValue_ID);
		if (C_Charge_ID == 0)
		{
			ADialog.error(m_WindowNo, this, "ChargeNotCreated", name);
			return;
		}
		ADialog.info(m_WindowNo, this, "ChargeCreated", name);
	}   //  createNew

	/**
	 *  Create Charges from Accounts
	 */
	private void createAccount()
	{
		Log.trace(Log.l3_Util, "VCharge.createAccount");
		//
		StringBuffer listCreated = new StringBuffer();
		StringBuffer listRejected = new StringBuffer();
		//
		TableModel model = dataTable.getModel();
		int rows = model.getRowCount();
		for (int i = 0; i < rows; i++)
		{
			if (((Boolean)model.getValueAt(i, 0)).booleanValue())
			{
				KeyNamePair pp = (KeyNamePair)model.getValueAt(i, 1);
				int C_ElementValue_ID = pp.getKey();
				String name = (String)model.getValueAt(i, 2);
				//
				int C_Charge_ID = create_Charge(name, C_ElementValue_ID);
				if (C_Charge_ID == 0)
				{
					if (listRejected.length() > 0)
						listRejected.append(", ");
					listRejected.append(name);
				}
				else
				{
					if (listCreated.length() > 0)
						listCreated.append(", ");
					listCreated.append(name);
				}
				//  reset selection
				model.setValueAt(new Boolean(false), i, 0);
			}
		}
		if (listCreated.length() > 0)
			ADialog.info(m_WindowNo, this, "ChargeCreated", listCreated.toString());
		if (listRejected.length() > 0)
			ADialog.error(m_WindowNo, this, "ChargeNotCreated", listRejected.toString());
	}   //  createAccount

	/*************************************************************************/

	/**
	 *  Create ElementValue for primary AcctSchema
	 *  @param value value
	 *  @param name name
	 *  @param isExpense is expense
	 *  @return element value
	 */
	private int create_ElementValue (String value, String name, boolean isExpense)
	{
		Log.trace(Log.l4_Data, "VCharge.create_ElementValue - " + name);
		//
		int C_ElementValue_ID = DB.getKeyNextNo(Env.getCtx(), m_WindowNo, "C_ElementValue");
		StringBuffer sql = new StringBuffer("INSERT INTO C_ElementValue "
			+ "(C_ElementValue_ID, C_Element_ID,"
			+ " AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,"
			+ " Value, Name, Description,"
			+ " AccountType, AccountSign,"
			+ " IsDocControlled, IsSummary,"
			+ "	ValidFrom, ValidTo,"
			+ " PostActual, PostBudget, PostEncumbrance, PostStatistical,"
			+ "	IsBankAccount, C_BankAccount_ID, IsForeignCurrency, C_Currency_ID"
			+ ") VALUES (");
		//  C_ElementValue_ID, C_Element_ID,
		sql.append(C_ElementValue_ID).append(",").append(m_C_Element_ID).append(",");
		//  AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,
		sql.append(m_AD_Client_ID).append(",").append(m_AD_Org_ID);
		sql.append(",'Y',SysDate,").append(m_CreatedBy).append(",SysDate,").append(m_CreatedBy).append(",");
		//  Value, Name, Description,
		sql.append("'").append(value).append("','").append(name).append("',NULL,");
		//  AccountType, AccountSign,
		sql.append(isExpense ? "'E'" : "'R'").append(",'N',");
		//  IsDocControlled, IsSummary,
		sql.append("'N','N',");
		//  ValidFrom, ValidTo,
		sql.append("TO_DATE('01-JAN-1970'),NULL,");
		//  PostActual, PostBudget, PostEncumbrance, PostStatistical,
		sql.append("'Y','Y','Y','Y',");
		//  IsBankAccount, C_BankAccount_ID, IsForeignCurrency, C_Currency_ID
		sql.append("'N',NULL,'N',NULL)");
		//
		int no = DB.executeUpdate(sql.toString());
		if (no != 1)
		{
			Log.error("VCharge.create_ElementValue #" + no + "\n" + sql.toString());
			C_ElementValue_ID = 0;
		}
		else
			Log.trace(Log.l4_Data, "VCharge.create_ElementValue - C_ElementValue_ID="
				+ C_ElementValue_ID + " " + value + "=" + name);
		return C_ElementValue_ID;
	}   //  create_ElementValue

	/**
	 *  Create Charge and account entries for primary AcctSchema
	 *
	 *	@param name name
	 * 	@param C_ElementValue_ID element value
	 * 	@return charge
	 */
	private int create_Charge (String name, int C_ElementValue_ID)
	{
		Log.trace(Log.l4_Data, "VCharge.create_ElementCharge - " + name);
		//
		int C_Charge_ID = DB.getKeyNextNo(Env.getCtx(), m_WindowNo, "C_Charge");
		StringBuffer sql = new StringBuffer("INSERT INTO C_Charge "
			+ "(C_Charge_ID,"
			+ " AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,"
			+ " Name, Description,"
			+ " ChargeAmt, IsSameTax, C_TaxCategory_ID, IsSameCurrency"
			+ ") VALUES (");
		//  C_Charge_ID,
		sql.append(C_Charge_ID).append(",");
		//  AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,
		sql.append(m_AD_Client_ID).append(",").append(m_AD_Org_ID);
		sql.append(",'Y',SysDate,").append(m_CreatedBy).append(",SysDate,").append(m_CreatedBy).append(",");
		//  Name, Description,
		sql.append("'").append(name).append("',NULL,");
		//  ChargeAmt, IsSameTax, C_TaxCategory_ID, IsSameCurrency
		sql.append("0,'Y',").append(m_C_TaxCategory_ID).append(",'Y')");
		//
		int no = DB.executeUpdate(sql.toString());
		if (no != 1)
		{
			Log.error("VCharge.create_Charge #" + no + "\n" + sql.toString());
			return 0;
		}

		//  Get Combination
		int C_ValidCombination_ID = create_ValidCombination(C_ElementValue_ID);
		if (C_ValidCombination_ID == 0)
			return 0;

		//  Update Accounts
		sql = new StringBuffer("UPDATE C_Charge_Acct ");
		sql.append("SET CH_Expense_Acct=").append(C_ValidCombination_ID);
		sql.append(", CH_Revenue_Acct=").append(C_ValidCombination_ID);
		sql.append(" WHERE C_Charge_ID=").append(C_Charge_ID);
		sql.append(" AND C_AcctSchema_ID=").append(m_C_AcctSchema_ID);
		//
		no = DB.executeUpdate(sql.toString());
		if (no != 1)
			Log.error("VCharge.create_Charge Acct Update #" + no + "\n" + sql.toString());
		//
		return C_Charge_ID;
	}   //  create_Charge

	/**
	 *  Get ValidCombination
	 *
	 * 	@param C_ElementValue_ID element value
	 * 	@return valid combination
	 */
	private int create_ValidCombination (int C_ElementValue_ID)
	{
		Log.trace(Log.l4_Data, "VCharge.create_ValidCombination - " + C_ElementValue_ID);

		//  Get AcctSchame
		if (m_acctSchema == null)
			m_acctSchema = new AcctSchema(m_C_AcctSchema_ID);
		if (m_acctSchema == null || m_acctSchema.getC_AcctSchema_ID() == 0)
			return 0;
		//
		Account vc = Account.getDefault(m_acctSchema);
		vc.setAccount_ID(C_ElementValue_ID);
		vc.save(m_AD_Client_ID, m_CreatedBy);
		int C_ValidCombination_ID = vc.getC_ValidCombination_ID();
		//
		return C_ValidCombination_ID;
	}   //  create_ValidCombination

}   //  VCharge

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -