package com.idega.block.finance.data; import java.sql.SQLException; import java.sql.Timestamp; import java.util.Collection; import javax.ejb.FinderException; import com.idega.user.data.User; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: idega multimedia * @author <a href="mailto:aron@idega.is">Aron Birkir</a> * @version 1.0 */ public class AccountInfoBMPBean extends com.idega.data.GenericEntity implements AccountInfo,FinanceAccount { /* CREATE VIEW "FIN_ACCOUNT_INFO" ( "ACCOUNT_ID", "CATEGORY_ID", "USER_ID", "NAME", "LAST_UPDATED", "BALANCE", "ACCOUNT_TYPE" ) AS select ac.fin_account_id account_id, ac.ic_category_id category_id, ac.ic_user_id user_id, ac.name, max(e.last_updated) last_updated, sum(e.total ) balance, ac.account_type from fin_account ac,fin_acc_entry e where e.fin_account_id = ac.fin_account_id group by ac.fin_account_id, ac.ic_category_id , ac.ic_user_id, ac.name, ac.account_type */ public AccountInfoBMPBean() { } public AccountInfoBMPBean(int id)throws SQLException{ } public static String getEntityTableName(){ return "FIN_ACCOUNT_INFO";} public static String getColumnAccountId(){return "ACCOUNT_ID";} public static String getColumnCategoryId(){return "CATEGORY_ID";} public static String getColumnUserId(){ return "USER_ID";} public static String getColumnCashierId(){ return "CASHIER_ID";} public static String getColumnName(){ return "NAME";} public static String getColumnLastUpdated(){ return "LAST_UPDATED";} public static String getColumnBalance(){ return "BALANCE";} public static String getColumnType(){return "ACCOUNT_TYPE";} public void initializeAttributes(){ addAttribute(getIDColumnName()); addAttribute(getColumnAccountId(),"Accountid",true,true,Integer.class); addAttribute(getColumnCategoryId(),"Category",true,true,Integer.class); //addAttribute(getColumnUserId(),"UserId",true,true,Integer.class); // addAttribute(getColumnCashierId(),"Cashier",true,true,Integer.class); addAttribute(getColumnName(),"Name",true,true,String.class); addAttribute(getColumnLastUpdated(),"LastUpdated",true,true,Timestamp.class); addAttribute(getColumnBalance(),"Balance",true,true,Float.class); addAttribute(getColumnType(),"Type",true,true,String.class); setAsPrimaryKey(getIDColumnName(),true); addManyToOneRelationship(getColumnUserId(), User.class); } public String getIDColumnName(){ return getColumnAccountId(); } public String getEntityName(){ return getEntityTableName(); } public Integer getAccountId(){ return getIntegerColumnValue( getColumnAccountId() ); } public int getCategoryId(){ return getIntColumnValue( getColumnCategoryId() ); } public int getUserId(){ return getIntColumnValue( getColumnUserId() ); } public User getUser(){ return (User) getColumnValue( getColumnUserId() ); } public int getCashierId(){ return getIntColumnValue( getColumnCashierId() ); } public String getName(){ return getStringColumnValue(getColumnName()); } public String getAccountType(){ return getStringColumnValue(getColumnType()); } public Timestamp getLastUpdated(){ return (Timestamp) getColumnValue(getColumnLastUpdated()); } public float getBalance(){ return getFloatColumnValue(getColumnBalance()); } public String getAccountName(){ return getName(); } public Collection ejbFindByOwner(Integer ownerID)throws FinderException{ return super.idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(getColumnUserId(),ownerID)); } public Collection ejbFindByOwnerAndType(Integer ownerID,String type)throws FinderException{ return super.idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(getColumnUserId(),ownerID).appendAndEquals(getColumnType(),type)); } public Collection ejbFindByAssessmentRound(Integer roundID)throws FinderException{ return ejbFindByAssessmentRound(roundID,-1,-1); } public Collection ejbFindByAssessmentRound(Integer roundID,int resultSize,int startindex)throws FinderException{ return super.idoFindPKsBySQL(getByRoundSQL(roundID),resultSize,startindex); } private String getByRoundSQL(Integer roundID){ StringBuffer sql = new StringBuffer("select distinct a.* "); sql.append(" from fin_account_info a,fin_acc_entry e "); sql.append(" where a.account_id = e.fin_account_id "); sql.append(" and e.fin_assessment_round_id = "); sql.append(roundID.toString()); return sql.toString(); } /* (non-Javadoc) * @see com.idega.data.CategoryEntity#setCategoryId(int) */ public void setCategoryId(int p0) { } }