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

📄 account.java

📁 Java写的ERP系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 * The contents of this file are subject to the   Compiere License  Version 1.1
 * ("License"); You may not use this file except in compliance with the License
 * You may obtain a copy of the License at http://www.compiere.org/license.html
 * Software distributed under the License is distributed on an  "AS IS"  basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
 * the specific language governing rights and limitations under the License.
 * The Original Code is                  Compiere  ERP & CRM  Business Solution
 * The Initial Developer of the Original Code is Jorg Janke  and ComPiere, Inc.
 * Portions created by Jorg Janke are Copyright (C) 1999-2001 Jorg Janke, parts
 * created by ComPiere are Copyright (C) ComPiere, Inc.;   All Rights Reserved.
 * Contributor(s): ______________________________________.
 *****************************************************************************/
package org.compiere.model;

import java.sql.*;
import java.util.*;

import org.compiere.util.*;
import java.io.*;

/**
 *  Account Object Entity to maintain all segment values
 *
 *  @author		Jorg Janke
 *  @version 	$Id: Account.java,v 1.8 2003/04/15 05:03:15 jjanke Exp $
 */
public final class Account implements Serializable
{
	/**
	 *  Basic constructor
	 */
	public Account()
	{
	}   //  Account

	/**
	 *  Default constructor
	 *  @param C_ValidCombination_ID combination
	 */
	public Account (int C_ValidCombination_ID)
	{
		if (C_ValidCombination_ID == 0)
			return;
		load(C_ValidCombination_ID);
	}   //  Account


	/** database field              */
	private int C_ValidCombination_ID = 0;
	/** database field              */
	private int C_AcctSchema_ID = 0;
	//
	/** database field              */
	private int AD_Client_ID = 0;
	/** database field              */
	private int AD_Org_ID = 0;
	/** database field              */
	private int Account_ID = 0;
	/** database field              */
	private int M_Product_ID = 0;
	/** database field              */
	private int C_BPartner_ID = 0;
	/** database field              */
	private int AD_OrgTrx_ID = 0;
	/** database field              */
	private int C_LocFrom_ID = 0;
	/** database field              */
	private int C_LocTo_ID = 0;
	/** database field              */
	private int C_SalesRegion_ID = 0;
	/** database field              */
	private int C_Project_ID = 0;
	/** database field              */
	private int C_Channel_ID = 0;
	/** database field              */
	private int C_Campaign_ID = 0;
	/** database field              */
	private int C_Activity_ID = 0;
	/** database field              */
	private int User1_ID = 0;
	/** database field              */
	private int User2_ID = 0;
	//
	private String alias = "";
	private String combination = "";
	private String description = "";
	private boolean active = true;
	private int updatedBy = 0;
	private boolean fullyQualified = false;


	/** Account Type - Asset,..     */
	private char        m_AcctType = ' ';
	/** Account definition valid?   */
	private Boolean     m_IsValid = null;
	/** Previous checked account    */
	private int         m_OldAccount_ID = 0;

	/** Has the current Account been changed    */
	private boolean     m_changed = true;


	/**
	 * Load Account with Combination_ID
	 * @param C_ValidCombination_ID combination
	 */
	public void load (int C_ValidCombination_ID)
	{
		String sql = "SELECT AD_CLIENT_ID,AD_ORG_ID, ISACTIVE, UPDATED,UPDATEDBY,"  //  1..5
			+ "ALIAS, COMBINATION, DESCRIPTION, ISFULLYQUALIFIED,"                  //  1..9
			+ "C_ACCTSCHEMA_ID, ACCOUNT_ID, M_PRODUCT_ID, C_BPARTNER_ID,"           //  10..13
			+ "AD_ORGTRX_ID, C_LOCFROM_ID, C_LOCTO_ID, C_SALESREGION_ID,"           //  14..17
			+ "C_PROJECT_ID, C_CAMPAIGN_ID, C_ACTIVITY_ID, USER1_ID,USER2_ID "      //  18..22
			+ "FROM C_ValidCombination "
			+ "WHERE C_ValidCombination_ID=?";
		try
		{
			PreparedStatement pstmt = DB.prepareStatement(sql);
			pstmt.setInt(1, C_ValidCombination_ID);
			ResultSet rs = pstmt.executeQuery();
			if (rs.next())
			{
				//	Minimum values
				setAD_Client_ID(rs.getInt(1));
				setAD_Org_ID(rs.getInt(2));
				setActive(rs.getString(3).equals("Y"));
				//  Updated
				setUpdatedBy(rs.getInt(5));
				//
				setAlias(rs.getString(6));
				setCombination(rs.getString(7));
				setDescription(rs.getString(8));
				setFullyQualified(rs.getString(9).equals("Y"));
				//
				setC_AcctSchema_ID(rs.getInt(10));
				setAccount_ID(rs.getInt(11));
				setM_Product_ID(rs.getInt(12));
				setC_BPartner_ID(rs.getInt(13));
				//
				setAD_OrgTrx_ID(rs.getInt(14));
				setC_LocFrom_ID(rs.getInt(15));
				setC_LocTo_ID(rs.getInt(16));
				setC_SalesRegion_ID(rs.getInt(17));
				//
				setC_Project_ID(rs.getInt(18));
				setC_Campaign_ID(rs.getInt(19));
				setC_Activity_ID(rs.getInt(20));
				setUser1_ID(rs.getInt(21));
				setUser2_ID(rs.getInt(22));
				//
				setC_ValidCombination_ID(C_ValidCombination_ID);
				m_changed = false;
			}
			else
				Log.error("Account.getAccount - " + C_ValidCombination_ID + " not found");
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			C_ValidCombination_ID = 0;
			Log.error ("Account.load", e);
		}
	}	//	load

	/**
	 *  Factory: default combination
	 *  @param C_AcctSchema_ID accounting schema
	 *  @return Account
	 */
	public static Account getDefault (int C_AcctSchema_ID)
	{
		AcctSchema acctSchema = new AcctSchema(C_AcctSchema_ID);
		return getDefault(acctSchema);
	}   //  getDefault

	/**
	 *  Factory: default combination
	 *  @param acctSchema accounting schema
	 *  @return Account
	 */
	public static Account getDefault (AcctSchema acctSchema)
	{
		Account vc = new Account();
		vc.setC_AcctSchema_ID(acctSchema.getC_AcctSchema_ID());
		//  Active Elements
		ArrayList list = acctSchema.getAcctSchemaElementList();
		for (int i = 0; i < list.size(); i++)
		{
			AcctSchemaElement ase = (AcctSchemaElement)list.get(i);
			String segmentType = ase.getSegmentType();
			int defaultValue = ase.getDefaultValue();
			//
			if (segmentType.equals(AcctSchemaElement.SEGMENT_Org))
				vc.setAD_Org_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_Account))
				vc.setAccount_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_BPartner))
				vc.setC_BPartner_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_Product))
				vc.setM_Product_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_Activity))
				vc.setC_Activity_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_LocationFrom))
				vc.setC_LocFrom_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_LocationTo))
				vc.setC_LocTo_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_Campaign))
				vc.setC_Campaign_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_TrxOrg))
				vc.setAD_OrgTrx_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_Project))
				vc.setC_Project_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_SalesRegion))
				vc.setC_SalesRegion_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_User1))
				vc.setUser1_ID(defaultValue);
			else if (segmentType.equals(AcctSchemaElement.SEGMENT_User2))
				vc.setUser2_ID(defaultValue);
		}
		Log.trace(Log.l3_Util, "Account.getDefault - Client_ID="
			+ vc.getAD_Client_ID() + ", Org_ID=" + vc.getAD_Org_ID(),
			"AcctSchema_ID=" + vc.getC_AcctSchema_ID() + ", Account_ID=" + vc.getAccount_ID());
		return vc;
	}   //  getDefault

	/**
	 *  Factory: get Account
	 *  @param C_ValidCombination_ID combination
	 *  @return Account
	 */
	public static Account getAccount (int C_ValidCombination_ID)
	{
		return new Account(C_ValidCombination_ID);
	}   //  getAccount

	/**
	 *  Save
	 *  @param AD_Client_ID new client
	 *  @param UpdatedBy updated
	 *  @return true if saved
	 */
	public boolean save (int AD_Client_ID, int UpdatedBy)
	{
		setAD_Client_ID(AD_Client_ID);
		setUpdatedBy(UpdatedBy);
		return save();
	}   //  save

	/**
	 *  Save and reload
	 *  @return true if saved
	 */
	public boolean save()
	{
		Log.trace(Log.l4_Data, "Account.save - Client_ID="
			+ AD_Client_ID + ", Org_ID=" + AD_Org_ID,
			"AcctSchema_ID=" + C_AcctSchema_ID + ", Account_ID=" + Account_ID);

		int C_ValidCombination_ID = 0;
		boolean saved = false;
		try
		{
			String SQL = "{CALL C_ValidCombination_Get(?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?, ?,?,?,?,?)}";
			CallableStatement cstmt = DB.prepareCall(SQL);
			//  1 - ID
			cstmt.registerOutParameter(1, Types.NUMERIC);

			//  --  Mandatory Accounting fields
			//	2 - AD_Client_ID
			cstmt.setInt(2, AD_Client_ID);
			//	3 - AD_Org_ID
			cstmt.setInt(3, AD_Org_ID);
			//  4- C_AcctSchema_ID
			cstmt.setInt(4, C_AcctSchema_ID);
			//  5 - Account_ID
			cstmt.setInt(5, Account_ID);

			//  --  Optional
			//  6 - Base C_ValidCombination_ID
			cstmt.setNull(6, Types.NUMERIC);
			//  7 - MustBeFullyQualified
			cstmt.setString(7, "Y");
			//  8 - Alias
			if (alias != null && alias.length() > 0)
				cstmt.setString(8, alias);
			else
				cstmt.setNull(8, Types.VARCHAR);
			//  9 - CreatedBy
			cstmt.setInt(9, getUpdatedBy());

			//	--  Optional Accounting fields
			//  10 - M_Product_ID
			if (M_Product_ID != 0)
				cstmt.setInt(10, M_Product_ID);
			else
				cstmt.setNull(10, Types.NUMERIC);
			//  11 - C_BPartner_ID
			if (C_BPartner_ID != 0)
				cstmt.setInt(11, C_BPartner_ID);
			else
				cstmt.setNull(11, Types.NUMERIC);
			//  12 - AD_OrgTrx_ID
			if (AD_OrgTrx_ID != 0)
				cstmt.setInt(12, AD_OrgTrx_ID);
			else
				cstmt.setNull(12, Types.NUMERIC);
			//  13 - C_LocFrom_ID
			if (C_LocFrom_ID != 0)
				cstmt.setInt(13, C_LocFrom_ID);
			else
				cstmt.setNull(13, Types.NUMERIC);
			//  14 - C_LocTo_ID
			if (C_LocTo_ID != 0)
				cstmt.setInt(14, C_LocTo_ID);
			else
				cstmt.setNull(14, Types.NUMERIC);
			//  15 - C_SalesRegion_ID
			if (C_SalesRegion_ID != 0)
				cstmt.setInt(15, C_SalesRegion_ID);
			else
				cstmt.setNull(15, Types.NUMERIC);
			//  16 - C_Project_ID
			if (C_Project_ID != 0)
				cstmt.setInt(16, C_Project_ID);
			else
				cstmt.setNull(16, Types.NUMERIC);
			//  17 - C_Campaign_ID
			if (C_Campaign_ID != 0)
				cstmt.setInt(17, C_Campaign_ID);
			else
				cstmt.setNull(17, Types.NUMERIC);
			//  18 - C_Activity_ID
			if (C_Activity_ID != 0)
				cstmt.setInt(18, C_Activity_ID);
			else
				cstmt.setNull(18, Types.NUMERIC);
			//  19 - User1_ID
			if (User1_ID != 0)
				cstmt.setInt(19, User1_ID);
			else
				cstmt.setNull(19, Types.NUMERIC);

⌨️ 快捷键说明

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