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

📄 acctschemaelement.java

📁 Java写的ERP系统
💻 JAVA
字号:
/******************************************************************************
 * 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 Schema Element Object
 *
 *  @author 	Jorg Janke
 *  @version 	$Id: AcctSchemaElement.java,v 1.10 2003/02/14 06:43:42 jjanke Exp $
 */
public final class AcctSchemaElement implements Serializable
{
	/**
	 *  Constructor
	 *  @param id	C_AcctSchema_Element_ID
	 *  @param seqNo Sequence
	 *  @param name Name
	 *  @param segmentType	Type
	 *  @param C_Element_ID C_Element_ID
	 *  @param defaultValue default
	 *  @param mandatory mandatory
	 *  @param balanced balanced
	 */
	private AcctSchemaElement (int id, int seqNo, String name, String segmentType,
		int C_Element_ID, int defaultValue, boolean mandatory, boolean balanced)
	{
		m_ID = id;
		m_seqNo = seqNo;
		m_name = name;
		m_segmentType = segmentType;
		m_C_Element_ID = C_Element_ID;
		m_defaultValue = defaultValue;
		m_mandatory = mandatory;
		m_balanced = balanced;
	}   //  AcctSchemaElement

	private int     m_ID;
	private int     m_seqNo;
	private String  m_name;
	private String  m_segmentType;
	private int     m_C_Element_ID;
	private int     m_defaultValue;
	private boolean m_mandatory;
	private boolean m_balanced;
	private boolean m_active;

	/** Segment             */
	public final static String	SEGMENT_Org		    = "OO";
	/** Segment             */
	public final static String  SEGMENT_Account	    = "AC";
	/** Segment             */
	public final static String	SEGMENT_BPartner    = "BP";
	/** Segment             */
	public final static String	SEGMENT_Product	    = "PR";
	/** Segment             */
	public final static String	SEGMENT_Activity    = "AY";
	/** Segment             */
	public final static String	SEGMENT_LocationFrom= "LF";
	/** Segment             */
	public final static String	SEGMENT_LocationTo  = "LT";
	/** Segment             */
	public final static String	SEGMENT_Campaign    = "MC";
	/** Segment             */
	public final static String	SEGMENT_TrxOrg	    = "OT";
	/** Segment             */
	public final static String	SEGMENT_Project	    = "PJ";
	/** Segment             */
	public final static String	SEGMENT_SalesRegion = "SR";
	/** Segment             */
	public final static String	SEGMENT_User1	    = "U1";
	/** Segment             */
	public final static String	SEGMENT_User2	    = "U2";

	/**
	 *  Factory: Return ArrayList of Account Schema Elements
	 *  @param C_AcctSchema_ID C_AcctSchema_ID
	 *  @return ArrayList with Elements
	 */
	public static ArrayList getAcctSchemaElementList (int C_AcctSchema_ID)
	{
		Log.trace(Log.l3_Util, "AcctSchamaElement.getAcctSchemaElementList - " + C_AcctSchema_ID);
		ArrayList list = new ArrayList();
		//
		String sql = "SELECT C_AcctSchema_Element_ID,SeqNo,Name,ElementType,"	//	1..4
			+ "C_Element_ID,IsMandatory,IsBalanced, "							//	5..7
			+ "Org_ID,C_ElementValue_ID,C_BPartner_ID,M_Product_ID,"			//	8..11
			+ "C_Activity_ID,C_Location_ID,C_Campaign_ID,"						//	12..14
			+ "C_Project_ID,C_SalesRegion_ID "									//	15..16
			+ "FROM C_AcctSchema_Element "
			+ "WHERE C_AcctSchema_ID=? AND IsActive='Y' ORDER BY SeqNo";

		try
		{
			PreparedStatement pstmt = DB.prepareStatement(sql);
			pstmt.setInt(1, C_AcctSchema_ID);
			ResultSet rs = pstmt.executeQuery();
			while (rs.next())
			{
				int id = rs.getInt(1);
				int seqNo = rs.getInt(2);
				String name = rs.getString(3);
				String segmentType = rs.getString(4);
				int C_Element_ID = rs.getInt(5);
				boolean mandatory = rs.getString(6).equals("Y");
				boolean balanced = rs.getString(7).equals("Y");
				//
				int defaultValue = 0;
				if (segmentType.equals(SEGMENT_Org))
					defaultValue = rs.getInt(8);			//	Org_ID
				else if (segmentType.equals(SEGMENT_Account))
					defaultValue = rs.getInt(9);			//	C_ElementValue_ID
				else if (segmentType.equals(SEGMENT_BPartner))
					defaultValue = rs.getInt(10);
				else if (segmentType.equals(SEGMENT_Product))
					defaultValue = rs.getInt(11);
				else if (segmentType.equals(SEGMENT_Activity))
					defaultValue = rs.getInt(12);
				else if (segmentType.equals(SEGMENT_LocationFrom))
					defaultValue = rs.getInt(13);			//	C_Location_ID
				else if (segmentType.equals(SEGMENT_LocationTo))
					defaultValue = rs.getInt(13);			//	C_Location_ID
				else if (segmentType.equals(SEGMENT_Campaign))
					defaultValue = rs.getInt(14);
				else if (segmentType.equals(SEGMENT_TrxOrg))
					defaultValue = rs.getInt(8);			//	Org_ID
				else if (segmentType.equals(SEGMENT_Project))
					defaultValue = rs.getInt(15);
				else if (segmentType.equals(SEGMENT_SalesRegion))
					defaultValue = rs.getInt(16);
				else if (segmentType.equals(SEGMENT_User1))
					defaultValue = rs.getInt(9);			//	C_ElementValue_ID
				else if (segmentType.equals(SEGMENT_User2))
					defaultValue = rs.getInt(9);			//	C_ElementValue_ID
				//
				Log.trace(Log.l6_Database, seqNo + " " + name + " " + segmentType + "=" + defaultValue);
				if (mandatory && defaultValue == 0)
					Log.error("AcctSchameElement.getAcctSchemaElementList - No default value for " + name);
				//
				AcctSchemaElement e = new AcctSchemaElement(id, seqNo, name, segmentType,
					C_Element_ID, defaultValue, mandatory, balanced);
				list.add(e);
			}
			rs.close();
			pstmt.close();
		}
		catch (SQLException e)
		{
			Log.error ("AcctSchemaElement.getAcctSchemaElementList", e);
		}
		return list;
	}   //  getAcctSchemaElementList

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

	/**
	 *  Get Display Name
	 *  @return name
	 */
	public String getName()
	{
		return m_name;
	}   //  getName

	/**
	 *  Get Segment Type
	 *  @return segment type
	 */
	public String getSegmentType()
	{
		return m_segmentType;
	}   //  getSegmentType

	/**
	 *  Is Segment Type
	 *  @param st gegmant type
	 *	@return segment type
	 */
	public boolean isSegmentType (String st)
	{
		return m_segmentType.equals(st);
	}   //  isSegmentType

	/**
	 *  Get ColumnName
	 *  @return column name
	 */
	public String getColumnName()
	{
		return getColumnName(m_segmentType);
	}	//	getColumnName

	/**
	 *  Get Column Name of segment type
	 * 	@param segmentType segment type
	 *  @return column name
	 */
	public static String getColumnName(String segmentType)
	{
		if (segmentType.equals(SEGMENT_Org))
			return "AD_Org_ID";
		else if (segmentType.equals(SEGMENT_Account))
			return "Account_ID";
		else if (segmentType.equals(SEGMENT_BPartner))
			return "C_BPartner_ID";
		else if (segmentType.equals(SEGMENT_Product))
			return "M_Product_ID";
		else if (segmentType.equals(SEGMENT_Activity))
			return "C_Activity_ID";
		else if (segmentType.equals(SEGMENT_LocationFrom))
			return "C_LocFrom_ID";
		else if (segmentType.equals(SEGMENT_LocationTo))
			return "C_LocTo_ID";
		else if (segmentType.equals(SEGMENT_Campaign))
			return "C_Campaign_ID";
		else if (segmentType.equals(SEGMENT_TrxOrg))
			return "Org_ID";
		else if (segmentType.equals(SEGMENT_Project))
			return "C_Project_ID";
		else if (segmentType.equals(SEGMENT_SalesRegion))
			return "C_SalesRegion_ID";
		else if (segmentType.equals(SEGMENT_User1))
			return "User1_ID";
		else if (segmentType.equals(SEGMENT_User2))
			return "User2_ID";
		//
		return "";
	}   //  getColumnName

	/**
	 *  Get Value Query for Segment Type
	 * 	@param segmentType segment type
	 *  @return query "SELECT Value,Name FROM Table WHERE ID="
	 */
	public static String getValueQuery (String segmentType)
	{
		if (segmentType.equals(SEGMENT_Org))
			return "SELECT Value,Name FROM AD_Org WHERE AD_Org_ID=";
		else if (segmentType.equals(SEGMENT_Account))
			return "SELECT Value,Name FROM C_ElementValue WHERE C_ElementValue_ID=";
		else if (segmentType.equals(SEGMENT_BPartner))
			return "SELECT Value,Name FROM C_BPartner WHERE C_BPartner_ID=";
		else if (segmentType.equals(SEGMENT_Product))
			return "SELECT Value,Name FROM M_Product WHERE M_Product_ID=";
		else if (segmentType.equals(SEGMENT_Activity))
			return "SELECT Value,Name FROM C_Activity WHERE C_Activity_ID=";
		else if (segmentType.equals(SEGMENT_LocationFrom))
			return "SELECT City,Address1 FROM C_Location WHERE C_Location_ID=";
		else if (segmentType.equals(SEGMENT_LocationTo))
			return "SELECT City,Address1 FROM C_Location WHERE C_Location_ID=";
		else if (segmentType.equals(SEGMENT_Campaign))
			return "SELECT Value,Name FROM C_Campaign WHERE C_Campaign_ID=";
		else if (segmentType.equals(SEGMENT_TrxOrg))
			return "SELECT Value,Name FROM AD_Org WHERE AD_Org_ID=";
		else if (segmentType.equals(SEGMENT_Project))
			return "SELECT Value,Name FROM C_Project WHERE C_Project_ID=";
		else if (segmentType.equals(SEGMENT_SalesRegion))
			return "SELECT Value,Name FROM C_SalesRegion WHERE C_SalesRegion_ID";
		else if (segmentType.equals(SEGMENT_User1))
			return "SELECT Value,Name FROM C_ElementValue WHERE C_ElementValue_ID=";
		else if (segmentType.equals(SEGMENT_User2))
			return "SELECT Value,Name FROM C_ElementValue WHERE C_ElementValue_ID=";
		//
		return "";
	}   //  getColumnName


	/**
	 * 	Get ID
	 *  @return ID
	 */
	public int getID()
	{
		return m_ID;
	}
	public int getC_Element_ID()
	{
		return m_C_Element_ID;
	}
	public int getDefaultValue()
	{
		return m_defaultValue;
	}
	public boolean isMandatory()
	{
		return m_mandatory;
	}
	public boolean isBalanced()
	{
		return m_balanced;
	}
	public int getSeqNo()
	{
		return m_seqNo;
	}


	/**
	 *  String representation
	 *  @return info
	 */
	public String toString()
	{
		return "AcctSchemaElement[" + m_name + " (" + m_segmentType + ") Pos=" + m_seqNo + "]";
	}   //  toString

}   //  AcctSchemaElement

⌨️ 快捷键说明

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