package com.idega.block.finance.data; import java.sql.Date; import java.sql.SQLException; import java.sql.Timestamp; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.IDOQuery; import com.idega.util.IWTimestamp; /** * Title: Description: Copyright: Copyright (c) 2001 Company: idega multimedia * * @author <a href="mailto:aron@idega.is">Aron Birkir</a> * @version 1.0 */ public class AccountPhoneEntryBMPBean extends com.idega.data.GenericEntity implements com.idega.block.finance.data.AccountPhoneEntry, com.idega.block.finance.data.Entry { public static final String statusUnread = "U"; public static final String statusRead = "R"; public static final String statusBilled = "B"; public AccountPhoneEntryBMPBean() { super(); } public AccountPhoneEntryBMPBean(int id) throws SQLException { super(id); } public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(getColumnNameAccountId(), "Account", true, true, Integer.class, "many-to-one", com.idega.block.finance.data.Account.class); addAttribute(getColumnNameAccountEntryId(), "Account_entry", true, true, Integer.class, "many-to-one", com.idega.block.finance.data.AccountEntry.class); addAttribute(getColumnNameCashierId(), "Cashier", true, true, Integer.class, "many-to-one", com.idega.block.finance.data.Cashier.class); addAttribute(getRoundIdColumnName(), "Round", true, true, java.lang.Integer.class, "many-to-one", com.idega.block.finance.data.AssessmentRound.class); addAttribute(getColumnNameMainNumber(), "main number", true, true, String.class); addAttribute(getColumnNameSubNumber(), "sub number", true, true, String.class); addAttribute(getColumnNamePhonedNumber(), "main number", true, true, String.class); addAttribute(getColumnNamePhonedStamp(), "phone stamp", true, true, java.sql.Timestamp.class); addAttribute(getColumnNameDayDuration(), "day duration", true, true, Integer.class); addAttribute(getColumnNameNightDuration(), "night duration", true, true, Integer.class); addAttribute(getColumnNameDuration(), "duration", true, true, Integer.class); addAttribute(getColumnNamePrice(), "price", true, true, Float.class); addAttribute(getColumnNameLastUpdated(), "Last updated", true, true, java.sql.Timestamp.class); addAttribute(getColumnNameStatus(), "status", true, true, String.class); } public static String getEntityTableName() { return "FIN_PHONE_ENTRY"; } public static String getRoundIdColumnName() { return "FIN_ASSESSMENT_ROUND_ID"; } public static String getColumnNameAccountId() { return "FIN_ACCOUNT_ID"; } public static String getColumnNameAccountEntryId() { return "FIN_ACC_ENTRY_ID"; } public static String getColumnNameCashierId() { return "FIN_CASHIER_ID"; } public static String getColumnNameMainNumber() { return "MAIN_NUMBER"; } public static String getColumnNameSubNumber() { return "SUB_NUMBER"; } public static String getColumnNamePhonedNumber() { return "PHONED_NUMBER"; } public static String getColumnNamePhonedStamp() { return "PHONED_STAMP"; } public static String getColumnNameDayDuration() { return "DAY_DURATION"; } public static String getColumnNameNightDuration() { return "NIGHT_DURATION"; } public static String getColumnNameDuration() { return "DURATION"; } public static String getColumnNamePrice() { return "TOTAL_PRICE"; } public static String getColumnNameLastUpdated() { return "LAST_UPDATED"; } public static String getColumnNameStatus() { return "STATUS"; } public String getEntityName() { return getEntityTableName(); } public int getAccountId() { return getIntColumnValue(getColumnNameAccountId()); } public void setAccountId(Integer account_id) { setColumn(getColumnNameAccountId(), account_id); } public void setAccountId(int account_id) { setColumn(getColumnNameAccountId(), account_id); } public int getAccountEntryId() { return getIntColumnValue(getColumnNameAccountEntryId()); } public void setAccountEntryId(Integer account_id) { setColumn(getColumnNameAccountEntryId(), account_id); } public void setAccountEntryId(int account_id) { setColumn(getColumnNameAccountEntryId(), account_id); } public int getCashierId() { return getIntColumnValue(getColumnNameCashierId()); } public void setCashierId(Integer member_id) { setColumn(getColumnNameCashierId(), member_id); } public void setCashierId(int member_id) { setColumn(getColumnNameCashierId(), member_id); } public String getMainNumber() { return getStringColumnValue(getColumnNameMainNumber()); } public void setMainNumber(String number) { setColumn(getColumnNameMainNumber(), number); } public String getSubNumber() { return getStringColumnValue(getColumnNameSubNumber()); } public void setSubNumber(String number) { setColumn(getColumnNameSubNumber(), number); } public String getPhonedNumber() { return getStringColumnValue(getColumnNamePhonedNumber()); } public void setPhoneNumber(String number) { setColumn(getColumnNamePhonedNumber(), number); } public Timestamp getPhonedStamp() { return (Timestamp) getColumnValue(getColumnNamePhonedStamp()); } public void setPhonedStamp(Timestamp stamp) { setColumn(getColumnNamePhonedStamp(), stamp); } public Timestamp getLastUpdated() { return (Timestamp) getColumnValue(getColumnNameLastUpdated()); } public void setLastUpdated(Timestamp last_updated) { setColumn(getColumnNameLastUpdated(), last_updated); } public void setPrice(float price) { setColumn(getColumnNamePrice(), price); } public void setPrice(Float price) { setColumn(getColumnNamePrice(), price); } public float getPrice() { return getFloatColumnValue(getColumnNamePrice()); } public void setDayDuration(int seconds) { setColumn(getColumnNameDayDuration(), seconds); } public void setDayDuration(Integer seconds) { setColumn(getColumnNameDayDuration(), seconds); } public int getDayDuration() { return getIntColumnValue(getColumnNameDayDuration()); } public void setDuration(int seconds) { setColumn(getColumnNameDuration(), seconds); } public void setDuration(Integer seconds) { setColumn(getColumnNameDuration(), seconds); } public int getDuration() { return getIntColumnValue(getColumnNameDuration()); } public void setNightDuration(int seconds) { setColumn(getColumnNameNightDuration(), seconds); } public void setNightDuration(Integer seconds) { setColumn(getColumnNameNightDuration(), seconds); } public int getNightDuration() { return getIntColumnValue(getColumnNameNightDuration()); } public int getRoundId() { return getIntColumnValue(getRoundIdColumnName()); } public void setRoundId(Integer round) { setColumn(getRoundIdColumnName(), round); } public void setRoundId(int round) { setColumn(getRoundIdColumnName(), round); } public String getStatus() { return getStringColumnValue(getColumnNameStatus()); } public void setStatus(String status) throws IllegalStateException { if ((status.equalsIgnoreCase(statusUnread)) || (status.equalsIgnoreCase(statusRead)) || (status.equalsIgnoreCase(statusBilled))) { setColumn(getColumnNameStatus(), status); setLastUpdated(com.idega.util.IWTimestamp.getTimestampRightNow()); } else { throw new IllegalStateException("Undefined state : " + status); } } // interface specific: public String getType() { return typePhone; } public String getFieldNameLastUpdated() { return getColumnNameLastUpdated(); } public String getFieldNameAccountId() { return getColumnNameAccountId(); } public String getTableName() { return getEntityTableName(); } public String getFieldNameStatus() { return getColumnNameStatus(); } public Collection ejbFindByAccountAndStatus(Integer accountID, String status, Date fromDate, Date toDate) throws FinderException { IDOQuery query = super.idoQueryGetSelect().appendWhereEquals(getColumnNameAccountId(), accountID); if (status != null) { query.appendAndEquals(getColumnNameStatus(), status); } if (fromDate != null && toDate != null) { IWTimestamp from = new IWTimestamp(fromDate); IWTimestamp to = new IWTimestamp(toDate); to.setTime(23, 59, 59); query.appendAnd(); query.appendWithinStamps(getColumnNamePhonedStamp(), from.getTimestamp(), to.getTimestamp()); } return super.idoFindPKsByQuery(query); } public Collection ejbFindUnbilledByAccountAndPeriod(Integer accountID, Date fromDate, Date toDate) throws FinderException { IDOQuery query = super.idoQueryGetSelect(); query.appendWhereIsNull(getColumnNameAccountEntryId()); if (accountID != null) { query.appendAndEquals(getColumnNameAccountId(), accountID); } IWTimestamp to = new IWTimestamp(toDate); to.setTime(23, 59, 59); query.appendAnd().appendWithinDates(getColumnNamePhonedStamp(), fromDate, to.getDate()); query.appendAnd().appendEqualsQuoted(this.getFieldNameStatus(), AccountPhoneEntryBMPBean.statusRead); return super.idoFindPKsByQuery(query); } public Collection ejbFindByPhoneNumber(String number) throws FinderException { return super.idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEqualsQuoted(getColumnNameSubNumber(), number)); } }