package com.idega.block.finance.business; import java.sql.SQLException; import com.idega.block.finance.data.Account; import com.idega.block.finance.data.AccountHome; import com.idega.data.IDOLookup; import com.idega.util.IWTimestamp; /** * Title: AccountManager * Description: * Copyright: Copyright (c) 2001 * Company: idega multimedia * @author <a href="mailto:aron@idega.is">aron@idega.is</a> * @version 1.0 */ public class AccountManager { public AccountManager() { } /* public static List listOfAccountEntries( int iAssessmentRoundId){ try { return EntityFinder.findAllByColumnOrdered(((com.idega.block.finance.data.AccountEntryHome)com.idega.data.IDOLookup.getHomeLegacy(AccountEntry.class)).createLegacy(),com.idega.block.finance.data.AccountEntryBMPBean.getRoundIdColumnName(),String.valueOf(iAssessmentRoundId) ,com.idega.block.finance.data.AccountEntryBMPBean.getAccountIdColumnName()); } catch (SQLException ex) { ex.printStackTrace(); return null; } } public static List listOfAccountEntries(int iAccountId,IWTimestamp from,IWTimestamp to){ return listOfAccEntries(iAccountId,((com.idega.block.finance.data.AccountEntryHome)com.idega.data.IDOLookup.getHomeLegacy(AccountEntry.class)).createLegacy(), from,to,null); } public static List listOfPhoneEntries(int iAccountId,IWTimestamp from,IWTimestamp to){ return listOfPhoneEntries(iAccountId, from,to,null); } public static List listOfPhoneEntries(int iAccountId,IWTimestamp to,String status){ return listOfPhoneEntries(iAccountId,null,to,status); } private static List listOfAccEntries(int iAccountId,Entry entry,IWTimestamp from,IWTimestamp to,String status){ StringBuffer sql = new StringBuffer("select * from "); sql.append(entry.getTableName()); sql.append(" where "); sql.append(entry.getFieldNameAccountId()); sql.append(" = "); sql.append(iAccountId); if(from !=null){ sql.append(" and "); sql.append(entry.getFieldNameLastUpdated()); sql.append(" >= '"); sql.append(from.getSQLDate()); sql.append("'"); } if(to != null){ sql.append(" and "); sql.append(entry.getFieldNameLastUpdated()); sql.append(" <= '"); sql.append(to.getSQLDate()); sql.append(" 23:59:59'"); } if(status!=null){ sql.append(" and "); sql.append(entry.getFieldNameStatus()); sql.append(" = '"); sql.append(status); sql.append("'"); } //System.err.println(sql.toString()); List A = null; try{ if(entry.getType().equals(entry.typeFinancial)) A = EntityFinder.findAll(((com.idega.block.finance.data.AccountEntryHome)com.idega.data.IDOLookup.getHomeLegacy(AccountEntry.class)).createLegacy(),sql.toString()); else if(entry.getType().equals(entry.typePhone)){ A = EntityFinder.findAll(((com.idega.block.finance.data.AccountPhoneEntryHome)com.idega.data.IDOLookup.getHomeLegacy(AccountPhoneEntry.class)).createLegacy(),sql.toString()); } } catch(Exception e){A=null;} return A; } private static List listOfPhoneEntries(int iAccountId,IWTimestamp from,IWTimestamp to,String status){ StringBuffer sql = new StringBuffer("select * from "); sql.append(com.idega.block.finance.data.AccountPhoneEntryBMPBean.getEntityTableName()); sql.append(" where "); sql.append(com.idega.block.finance.data.AccountPhoneEntryBMPBean.getColumnNameAccountId()); sql.append(" = "); sql.append(iAccountId); if(from !=null){ sql.append(" and "); sql.append(com.idega.block.finance.data.AccountPhoneEntryBMPBean.getColumnNamePhonedStamp()); sql.append(" >= '"); sql.append(from.getSQLDate()); sql.append("'"); } if(to != null){ sql.append(" and "); sql.append(com.idega.block.finance.data.AccountPhoneEntryBMPBean.getColumnNamePhonedStamp()); sql.append(" <= '"); sql.append(to.getSQLDate()); sql.append(" 23:59:59'"); } if(status!=null){ sql.append(" and "); sql.append(com.idega.block.finance.data.AccountPhoneEntryBMPBean.getColumnNameStatus()); sql.append(" = '"); sql.append(status); sql.append("'"); } //System.err.println(sql.toString()); List A = null; try{ A = EntityFinder.findAll(((com.idega.block.finance.data.AccountPhoneEntryHome)com.idega.data.IDOLookup.getHomeLegacy(AccountPhoneEntry.class)).createLegacy(),sql.toString()); } catch(Exception e){A=null;} return A; } public static List listOfAccountKeys(){ return FinanceFinder.getInstance().listOfAccountKeys(); } public static List listOfTariffKeys(){ return FinanceFinder.getInstance().listOfTariffKeys(); } public static Map hashOfAccountKeys(){ return FinanceFinder.getInstance().mapOfAccountKeys(); } public static Map hashOfTariffKeys(){ return FinanceFinder.getInstance().mapOfTariffKeys(); } public static List listOfKeySortedEntries(int iAccountId,IWTimestamp from,IWTimestamp to){ Map acckeys = hashOfAccountKeys(); Map takeys = hashOfTariffKeys(); if(acckeys != null && takeys != null){ List entries = listOfAccountEntries(iAccountId,from,to); if(entries != null){ int len = entries.size(); Hashtable hash = new Hashtable(len); AccountEntry AE; for (int i = 0; i < len; i++) { AE = (AccountEntry) entries.get(i); Integer AEid = new Integer(AE.getAccountKeyId()); if(acckeys.containsKey(AEid)){ AccountKey AK = (AccountKey) acckeys.get(AEid); Integer AKid = new Integer(AK.getTariffKeyId()); TariffKey TK = (TariffKey) takeys.get(AKid); // have to add amounts if(hash.containsKey(AKid)){ AccountEntry a = (AccountEntry)hash.get(AKid); a.setTotal(a.getTotal()+AE.getTotal()); } else{ AE.setName(TK.getName()); AE.setInfo(TK.getInfo()); hash.put(AKid,AE); } } } Vector V = new Vector(hash.values()); return V; } else return null; } else return null; } */ public static Account makeNewAccount(int iUserId, String sName,String sExtra, int iCashierId,String type,int iCategoryId)throws SQLException,java.rmi.RemoteException,javax.ejb.CreateException{ Account A = ((AccountHome)IDOLookup.getHome(Account.class)).create(); A.setBalance(0); A.setCreationDate(IWTimestamp.getTimestampRightNow() ); A.setLastUpdated(IWTimestamp.getTimestampRightNow()) ; A.setUserId(iUserId); A.setName(sName) ; A.setExtraInfo(sExtra); //if(iCashierId > 0) A.setCashierId(iCashierId); A.setValid(true); A.setType(type); A.setCategoryId(iCategoryId); A.store(); //System.err.println("account id "+A.getID()); return A; } public static Account makeNewFinanceAccount(int iUserId, String sName,String sExtra, int iCashierId,int iCategoryId)throws Exception{ return makeNewAccount(iUserId,sName,sExtra,iCashierId,com.idega.block.finance.data.AccountBMPBean.typeFinancial,iCategoryId); } public static Account makeNewPhoneAccount(int iUserId, String sName,String sExtra, int iCashierId,int iCategoryId)throws Exception{ return makeNewAccount(iUserId,sName,sExtra,iCashierId,com.idega.block.finance.data.AccountBMPBean.typePhone,iCategoryId); } public static Account makeNewAccount(int iUserId, String sName,String sExtra, int iCashierId,int iCategoryId)throws Exception{ return makeNewAccount(iUserId,sName,sExtra,iCashierId,"",iCategoryId); } }