📄 acctschemaelement.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 + -