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