/* * Copyright (C) 2004 Idega software. All Rights Reserved. * * This software is the proprietary information of Idega software. * Use is subject to license terms. * */ package is.idega.idegaweb.member.isi.block.accounting.export.data; import is.idega.idegaweb.member.isi.block.accounting.data.CreditCardContract; import is.idega.idegaweb.member.isi.block.accounting.data.CreditCardType; import java.sql.Timestamp; import java.util.Collection; import javax.ejb.FinderException; import com.idega.block.finance.data.BankInfo; import com.idega.core.file.data.ICFile; import com.idega.data.GenericEntity; import com.idega.data.IDOQuery; /** * @author palli */ public class BatchBMPBean extends GenericEntity implements Batch { protected final static String ENTITY_NAME = "isi_batch"; protected final static String COLUMN_BATCH_NUMBER = "batch_number"; protected final static String COLUMN_BATCH_TYPE = "batch_type"; protected final static String COLUMN_CREATED = "created"; protected final static String COLUMN_SENT = "sent"; protected final static String COLUMN_FIN_BATCH = "fin_batch_id"; protected final static String COLUMN_MARKED = "marked"; // For the creditcard batches protected final static String COLUMN_CC_TYPE = "cc_card_type_id"; protected final static String COLUMN_CC_CONTRACT = "cc_contract_id"; protected final static String COLUMN_CC_FILE_NAME = "cc_file_name"; protected final static String COLUMN_CC_FILE = "cc_file_id"; // For the bank batches protected final static String COLUMN_BANK_INFO = "bank_info_id"; private final static String TYPE_BANK_BATCH = "B"; private final static String TYPE_CREDITCARD_BATCH = "C"; /* * (non-Javadoc) * * @see com.idega.data.GenericEntity#getEntityName() */ public String getEntityName() { return ENTITY_NAME; } /* * (non-Javadoc) * * @see com.idega.data.GenericEntity#initializeAttributes() */ public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(COLUMN_BATCH_NUMBER, "Batch number", true, true, String.class, 255); addAttribute(COLUMN_CREATED, "Created", true, true, Timestamp.class); addAttribute(COLUMN_SENT, "Sent", true, true, Timestamp.class); addAttribute(COLUMN_BATCH_TYPE, "Type", true, true, String.class, 1); addManyToOneRelationship(COLUMN_CC_TYPE, CreditCardType.class); addManyToOneRelationship(COLUMN_CC_CONTRACT, CreditCardContract.class); addAttribute(COLUMN_CC_FILE_NAME, "File name", true, true, String.class, 255); addManyToOneRelationship(COLUMN_CC_FILE, ICFile.class); addManyToOneRelationship(COLUMN_BANK_INFO, BankInfo.class); addOneToOneRelationship(COLUMN_FIN_BATCH, com.idega.block.finance.data.Batch.class); addAttribute(COLUMN_MARKED, "Marked", Boolean.class); } // Setters public void setBatchNumber(String batchNumber) { setColumn(COLUMN_BATCH_NUMBER, batchNumber); } public void setCreated(Timestamp created) { setColumn(COLUMN_CREATED, created); } public void setSent(Timestamp sent) { setColumn(COLUMN_SENT, sent); } public void setTypeBank() { setColumn(COLUMN_BATCH_TYPE, TYPE_BANK_BATCH); } public void setTypeCreditCard() { setColumn(COLUMN_BATCH_TYPE, TYPE_CREDITCARD_BATCH); } public void setCreditcardTypeID(int typeID) { setColumn(COLUMN_CC_TYPE, typeID); } public void setCreditCardType(CreditCardType type) { setColumn(COLUMN_CC_TYPE, type); } public void setCreditCardContractId(int contractID) { setColumn(COLUMN_CC_CONTRACT, contractID); } public void setCreditCardContract(CreditCardContract contract) { setColumn(COLUMN_CC_CONTRACT, contract); } public void setCreditCardFileName(String fileName) { setColumn(COLUMN_CC_FILE_NAME, fileName); } public void setCreditCardFile(ICFile file) { setColumn(COLUMN_CC_FILE, file); } public void setCreditCardFileId(int fileId) { setColumn(COLUMN_CC_FILE, fileId); } public void setBankInfoID(int infoID) { setColumn(COLUMN_BANK_INFO, infoID); } public void setBankInfo(BankInfo info) { setColumn(COLUMN_BANK_INFO, info); } public void setFinBatchID(int batchID) { setColumn(COLUMN_FIN_BATCH, batchID); } public void setFinBatch(com.idega.block.finance.data.Batch batch) { setColumn(COLUMN_FIN_BATCH, batch); } public void setMarked(boolean marked) { setColumn(COLUMN_MARKED, marked); } // Getters public String getBatchNumber() { return getStringColumnValue(COLUMN_BATCH_NUMBER); } public Timestamp getCreated() { return getTimestampColumnValue(COLUMN_CREATED); } public Timestamp getSent() { return getTimestampColumnValue(COLUMN_SENT); } public String getType() { return getStringColumnValue(COLUMN_BATCH_TYPE); } public boolean getIsBankType() { return getStringColumnValue(COLUMN_BATCH_TYPE).equals(TYPE_BANK_BATCH); } public boolean getIsCreditcardType() { return getStringColumnValue(COLUMN_BATCH_TYPE).equals(TYPE_CREDITCARD_BATCH); } public int getCreditcardTypeID() { return getIntColumnValue(COLUMN_CC_TYPE); } public CreditCardType getCreditCardType() { return (CreditCardType) getColumnValue(COLUMN_CC_TYPE); } public int getCreditCardContractID() { return getIntColumnValue(COLUMN_CC_CONTRACT); } public CreditCardContract getCreditCardContract() { return (CreditCardContract) getColumnValue(COLUMN_CC_CONTRACT); } public String getCreditCardFileName() { return getStringColumnValue(COLUMN_CC_FILE_NAME); } public ICFile getCreditCardFile() { return (ICFile) getColumnValue(COLUMN_CC_FILE); } public int getCreditCardFileId() { return getIntColumnValue(COLUMN_CC_FILE); } public int getBankInfoID() { return getIntColumnValue(COLUMN_BANK_INFO); } public BankInfo getBankInfo() { return (BankInfo) getColumnValue(COLUMN_BANK_INFO); } public int getFinBatchID() { return getIntColumnValue(COLUMN_FIN_BATCH); } public com.idega.block.finance.data.Batch getFinBatch() { return (com.idega.block.finance.data.Batch) getColumnValue(COLUMN_FIN_BATCH); } public boolean getMarked() { return getBooleanColumnValue(COLUMN_MARKED, false); } public Collection ejbFindAll() throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); return idoFindPKsBySQL(sql.toString()); } public Object ejbFindUnsentByContractAndCreditCardType(CreditCardContract contract, CreditCardType type) throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhereEquals(COLUMN_CC_CONTRACT, contract); sql.appendAnd(); sql.append(COLUMN_SENT); sql.append(" is null"); sql.appendAnd(); sql.appendEquals(COLUMN_CC_TYPE, type); System.out.println("sql = " + sql.toString()); return idoFindOnePKByQuery(sql); } public Collection ejbFindAllUnsent() throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhere(); sql.append(COLUMN_SENT); sql.append(" is null"); return idoFindPKsByQuery(sql); } public Collection ejbFindAllWithoutFiles() throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhere(); sql.append(COLUMN_SENT); sql.append(" is null"); sql.appendAnd(); sql.append(COLUMN_FIN_BATCH); sql.append(" is null"); return idoFindPKsByQuery(sql); } public Object ejbFindUnsentByBankInfo(BankInfo info) throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhereEquals(COLUMN_BANK_INFO, info); sql.appendAnd(); sql.append(COLUMN_SENT); sql.append(" is null"); return idoFindOnePKByQuery(sql); } public Collection ejbFindAllNewestFirst() throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendOrderByDescending(getIDColumnName()); return idoFindPKsByQuery(sql); } public Collection ejbFindAllByContractNewestFirst(Collection contracts) throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhere(BatchBMPBean.COLUMN_CC_CONTRACT); sql.appendInCollection(contracts); sql.appendOrderByDescending(getIDColumnName()); System.out.println("sql = " + sql.toString()); return idoFindPKsByQuery(sql); } }