/*
* Created on Dec 6, 2004
*
*/
package com.idega.block.finance.business;
import java.sql.Date;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.FinderException;
import com.idega.block.finance.data.AccountEntry;
import com.idega.block.finance.data.AccountEntryHome;
import com.idega.block.finance.data.BankInfo;
import com.idega.block.finance.data.BankInfoHome;
import com.idega.block.finance.data.Batch;
import com.idega.block.finance.data.BatchHome;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.user.data.Group;
import com.idega.user.data.GroupHome;
import com.idega.user.data.User;
import com.idega.user.data.UserHome;
import com.idega.util.IWTimestamp;
/**
* @author birna
*
*/
public class BankInvoiceFileManager implements BankFileManager {
private int groupID = -1;
private BankInfo bankInfo = null;
public BankInvoiceFileManager(int groupID) {
this.groupID = groupID;
this.bankInfo = getBankInfo(groupID);
}
public BankInvoiceFileManager(BankInfo info) {
this.bankInfo = info;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getAccountBook(int)
*/
public int getAccountBook() {
if (this.bankInfo != null) {
return this.bankInfo.getAccountBook();
} else {
return 66;
}
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getAmount(int)
*/
public String getAmount(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return String.valueOf((int) ae.getTotal());
} else {
return "";
}
}
public String getAmount100(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return String.valueOf((int) ae.getTotal() * 100);
} else {
return "";
}
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getBankId(int)
*/
public String getBankBranchNumber() {
if (this.bankInfo != null) {
return this.bankInfo.getClaimantsBankBranch().getBankBranchNumber();
} else {
return "";
}
}
public String getBookkeepingType(int invoiceNumber) {
// TODO: K er stofnun krafa - ath med ad geyma thetta ser - eda
// eitthvad!!
return "K";
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getClaimantsAccountId(int)
*/
public String getClaimantsAccountId() {
if (this.bankInfo != null) {
return this.bankInfo.getAccountId();
} else {
return "";
}
}
public String getClaimantSSN() {
if (this.bankInfo != null) {
return this.bankInfo.getClaimantsSSN();
} else {
return "";
}
}
public String getClaimantName() {
if (this.bankInfo != null) {
return this.bankInfo.getClaimantsName();
} else {
return "";
}
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getClaimNumber(int)
*/
public String getClaimNumber(int invoiceNumber) {
return null;
}
public Integer[] getInvoiceNumbers(int batchNumber) {
Collection accountEntries = null;
AccountEntryHome aeh = null;
try {
aeh = (AccountEntryHome) IDOLookup.getHome(AccountEntry.class);
} catch (IDOLookupException e) {
e.printStackTrace();
}
if (aeh != null) {
try {
accountEntries = aeh.findByBatchNumber(batchNumber);
} catch (FinderException e1) {
e1.printStackTrace();
}
if (accountEntries != null) {
Integer[] invoiceNumbers = new Integer[accountEntries.size()];
Iterator i = accountEntries.iterator();
int j = 0;
while (i.hasNext()) {
AccountEntry accEntry = (AccountEntry) i.next();
invoiceNumbers[j++] = accEntry.getInvoiceNumber();
}
return invoiceNumbers;
}
}
return null;
}
public int[] getInvoiceNumbers(String claimantsSSN, Timestamp dueDate) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDepositRule(int)
*/
public String getDepositRule(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDisallowanceDate(int)
*/
public String getDisallowanceDate(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getDisallowanceDate().toString();
} else {
return "";
}
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDiscount(int)
*/
public String getDiscount(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDiscount1(int)
*/
public String getDiscount1(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDiscount2(int)
*/
public String getDiscount2(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDisplay(int)
*/
public String getDisplay(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDisplayForm(int)
*/
public String getDisplayForm(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDisplayFormType(int)
*/
public String getDisplayFormType(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDisplayFormURL(int)
*/
public String getDisplayFormURL(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDueDate(int)
*/
public Calendar getDueDate(int invoiceNumber) {
Calendar cal = Calendar.getInstance();
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
Date date = ae.getDueDate();
if (date != null) {
cal.setTime(date);
}
return cal;
} else {
return null;
}
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDueDateFrom(int)
*/
public String getDueDateFrom(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getDueDateTo(int)
*/
public String getDueDateTo(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getExchangeBank(int)
*/
public String getExchangeBank(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getExchangeClaim(int)
*/
public String getExchangeClaim(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getExchangeCurrency(int)
*/
public String getExchangeCurrency(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getExchangeRule(int)
*/
public String getExchangeRule(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getExchangeType(int)
*/
public String getExchangeType(int claimNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getFinalDueDate(int)
*/
public Calendar getFinalDueDate(int invoiceNumber) {
Calendar cal = Calendar.getInstance();
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
IWTimestamp t = new IWTimestamp(ae.getFinalDueDate());
Date date = t.getDate();
if (date != null) {
cal.setTime(date);
}
return cal;
}
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getLoginName()
*/
public String getUsername() {
if (this.bankInfo != null) {
return this.bankInfo.getUsername();
}
return "";
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getLoginPsw()
*/
public String getPassword() {
if (this.bankInfo != null) {
return this.bankInfo.getPassword();
}
return "";
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getNoteNumber(int)
*/
public String getNoteNumber(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getNotificationAndPaymentFee1(int)
*/
public double getNotificationAndPaymentFee1(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getNotificationAndPaymentFee1();
}
return 0;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getNotificationAndPaymentFee2(int)
*/
public double getNotificationAndPaymentFee2(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getNotificationAndPaymentFee2();
}
return 0;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getOtherCost(int)
*/
public double getOtherCost(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getOtherCost();
}
return 0;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getOtherOverdueCost(int)
*/
public String getOtherOverdueCost(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getOverdueFee(int)
*/
public String getOverdueFee(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getOverdueFee1(int)
*/
public String getOverdueFee1(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getOverdueFee2(int)
*/
public String getOverdueFee2(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getPayersSSN(int)
*/
public String getPayersSSN(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
User user = getUserByUserId(ae.getUserId());
return user.getPersonalID();
} else {
return "";
}
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getPaymentRule(int)
*/
public String getPaymentCode(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getPaymentCode();
}
return "1";
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getPenalIntrest(int)
*/
public String getPenalIntrest(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getPenalIntrestBankRate(int)
*/
public String getPenalIntrestCode(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getPenalIntrestCode();
}
return "";
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getPenalIntrestProsent(int)
*/
public double getPenalIntrestProsent(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getPenalIntrestProsent();
}
return 0;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getPenalIntrestRule(int)
*/
public String getPenalIntrestRule(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getPenalIntrestRule();
}
return "1";
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getReferenceNumber(int)
*/
public int getBatchNumber(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getBatchNumber();
}
return 0;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getSessionId()
*/
public String getSessionId() {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getStatus(int)
*/
public String getStatus(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getTradeNumber(int)
*/
public String getTradeNumber(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getTransactionDayFrom(int)
*/
public String getTransactionDayFrom(int invoiceNumber) {
return null;
}
/*
* (non-Javadoc)
*
* @see com.idega.block.finance.business.BankFileManager#getTransactionDayTo(int)
*/
public String getTransactionDayTo(int invoiceNumber) {
return null;
}
/**
* returns the status of the invoice. The status can be: NOT PAYED -
* ÓGREIDD PAYED - GREIDD CREATED - STOFNUD SENT - SEND ERROR - VILLA
*/
public String getInvoiceStatus(int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
return ae.getInvoiceStatus();
}
return "STOFNUD";
}
public void setInvoiceStatus(String status, int invoiceNumber) {
AccountEntry ae = getAccountEntry(invoiceNumber);
if (ae != null) {
ae.setInvoiceStatus(status);
}
}
private AccountEntry getAccountEntry(int invoiceNumber) {
AccountEntry ae = null;
AccountEntryHome aeh = null;
try {
aeh = (AccountEntryHome) IDOLookup.getHome(AccountEntry.class);
} catch (IDOLookupException e) {
e.printStackTrace();
}
if (aeh != null) {
try {
ae = aeh.findByInvoiceNumber(invoiceNumber);
} catch (FinderException e1) {
e1.printStackTrace();
}
}
return ae;
}
private BankInfo getBankInfo(int groupId) {
BankInfo bi = null;
BankInfoHome bih = null;
try {
bih = (BankInfoHome) IDOLookup.getHome(BankInfo.class);
} catch (IDOLookupException e) {
e.printStackTrace();
}
if (bih != null) {
try {
bi = bih.findByGroupId(groupId);
} catch (FinderException e1) {
e1.printStackTrace();
}
}
return bi;
}
private User getUserByUserId(int userId) {
User u = null;
UserHome uh = null;
try {
uh = (UserHome) IDOLookup.getHome(User.class);
} catch (IDOLookupException e) {
e.printStackTrace();
}
if (uh != null) {
try {
u = uh.findByPrimaryKey(new Integer(userId));
} catch (FinderException e1) {
e1.printStackTrace();
}
}
return u;
}
private Group getGroupByGroupId(int groupId) {
Group g = null;
GroupHome gh = null;
try {
gh = (GroupHome) IDOLookup.getHome(Group.class);
} catch (IDOLookupException e) {
e.printStackTrace();
}
if (gh != null) {
try {
g = gh.findByPrimaryKey(new Integer(groupId));
} catch (FinderException e1) {
e1.printStackTrace();
}
}
return g;
}
public Batch getBatch(int batchNumber) {
Batch b = null;
try {
b = ((BatchHome) IDOLookup.getHome(Batch.class)).findByPrimaryKey(new Integer(batchNumber));
} catch (IDOLookupException e) {
e.printStackTrace();
} catch (FinderException e) {
e.printStackTrace();
}
return b;
}
}