package com.idega.block.creditcard.data;
import java.sql.Date;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.data.GenericEntity;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.data.query.Column;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
import com.idega.data.query.WildCardColumn;
import com.idega.util.IWTimestamp;
/**
* @author gimmi
*/
public class KortathjonustanAuthorisationEntriesBMPBean extends GenericEntity implements KortathjonustanAuthorisationEntries, CreditCardAuthorizationEntry {
private static final String TABLE_NAME = "CC_KORTTHJ_AUTH_ENTRIES";
private static final String COLUMN_AMOUNT = "AMOUNT";
private static final String COLUMN_AUTHORIZATION_CODE = "AUTH_CODE";
private static final String COLUMN_BRAND_NAME = "BRAND_NAME";
private static final String COLUMN_CARD_EXPIRES = "CARD_EXPIRES";
private static final String COLUMN_CARD_NUMBER = "CARD_NUMBER";
private static final String COLUMN_CURRENCY = "CURRENCY";
private static final String COLUMN_DATE = "ENTRY_DATE";
private static final String COLUMN_ERROR_NUMBER = "ERROR_NUMBER";
private static final String COLUMN_ERROR_TEXT = "ERROR_TEXT";
private static final String COLUMN_SERVER_RESPONSE = "SERVER_RESPONSE";
private static final String COLUMN_PARENT_ID = "PARENT_ID";
private static final String COLUMN_TRANSACTION_TYPE = "TRANSACTION_TYPE"; //sale or refund ?
public String getEntityName() {
return TABLE_NAME;
}
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(COLUMN_AMOUNT, "amount", true, true, Double.class);
addAttribute(COLUMN_AUTHORIZATION_CODE, "auth_code", true, true, String.class);
addAttribute(COLUMN_BRAND_NAME, "brand_name", true, true, String.class);
addAttribute(COLUMN_CARD_EXPIRES, "card expire date", true, true, String.class);
addAttribute(COLUMN_CARD_NUMBER, "card number", true, true, String.class);
addAttribute(COLUMN_CURRENCY, "currency", true, true, String.class);
addAttribute(COLUMN_DATE, "date", true, true, Date.class);
addAttribute(COLUMN_ERROR_NUMBER, "error number", true, true , String.class);
addAttribute(COLUMN_ERROR_TEXT, "error text", true, true , String.class);
addAttribute(COLUMN_TRANSACTION_TYPE, "transaction_type", true, true, String.class);
addOneToOneRelationship(COLUMN_PARENT_ID, KortathjonustanAuthorisationEntries.class);
addAttribute(COLUMN_SERVER_RESPONSE, "server response", true, true, String.class, 1000);
}
public double getAmount() {
return getDoubleColumnValue(COLUMN_AMOUNT);
}
public void setAmount(double amount) {
setColumn(COLUMN_AMOUNT, amount);
}
public String getCurrency() {
return getStringColumnValue(COLUMN_CURRENCY);
}
public void setCurrency(String currency) {
setColumn(COLUMN_CURRENCY, currency);
}
public Date getDate() {
return getDateColumnValue(COLUMN_DATE);
}
public void setDate(Date date) {
setColumn(COLUMN_DATE, date);
}
public String getCardExpires() {
return getStringColumnValue(COLUMN_CARD_EXPIRES);
}
public void setCardExpires(String expires) {
setColumn(COLUMN_CARD_EXPIRES, expires);
}
public String getCardNumber() {
return getStringColumnValue(COLUMN_CARD_NUMBER);
}
public void setCardNumber(String number) {
setColumn(COLUMN_CARD_NUMBER, number);
}
public String getBrandName() {
return getStringColumnValue(COLUMN_BRAND_NAME);
}
public void setBrandName(String name) {
setColumn(COLUMN_BRAND_NAME, name);
}
public String getAuthorizationCode() {
return getStringColumnValue(COLUMN_AUTHORIZATION_CODE);
}
public void setAuthorizationCode(String code) {
setColumn(COLUMN_AUTHORIZATION_CODE, code);
}
public String getTransactionType() {
return getStringColumnValue(COLUMN_TRANSACTION_TYPE);
}
public void setTransactionType(String type) {
setColumn(COLUMN_TRANSACTION_TYPE, type);
}
public int getParentID() {
return getIntColumnValue(COLUMN_PARENT_ID);
}
public CreditCardAuthorizationEntry getParent() {
return (KortathjonustanAuthorisationEntries) getColumnValue(COLUMN_PARENT_ID);
}
public void setParentID(int id) {
setColumn(COLUMN_PARENT_ID, id);
}
public Object ejbFindByAuthorizationCode(String code, IWTimestamp stamp) throws FinderException {
Table table = new Table(this);
Column auth = new Column(table, COLUMN_AUTHORIZATION_CODE);
Column date = new Column(table, COLUMN_DATE);
SelectQuery query = new SelectQuery(table);
query.addColumn(new WildCardColumn(table));
query.addCriteria(new MatchCriteria(auth, MatchCriteria.EQUALS, code));
query.addCriteria(new MatchCriteria(date, MatchCriteria.EQUALS, stamp.getDate().toString()));
return this.idoFindOnePKBySQL(query.toString());
//return this.idoFindOnePKByColumnBySQL(COLUMN_AUTHORIZATION_CODE, code);
}
public Collection ejbFindByDates(IWTimestamp from, IWTimestamp to) throws FinderException {
to.addDays(1);
Table table = new Table(this);
Column date = new Column(table, COLUMN_DATE);
SelectQuery query = new SelectQuery(table);
query.addColumn(new WildCardColumn(table));
query.addCriteria(new MatchCriteria(date, MatchCriteria.GREATEREQUAL, from.getDate().toString()));
query.addCriteria(new MatchCriteria(date, MatchCriteria.LESSEQUAL, to.getDate().toString()));
return this.idoFindPKsByQuery(query);
}
public void setErrorNumber(String errorNumber) {
setColumn(COLUMN_ERROR_NUMBER, errorNumber);
}
public String getErrorNumber() {
return getStringColumnValue(COLUMN_ERROR_NUMBER);
}
public void setErrorText(String errorText) {
setColumn(COLUMN_ERROR_TEXT, errorText);
}
public String getErrorText() {
return getStringColumnValue(COLUMN_ERROR_TEXT);
}
public void setServerResponse(String response) {
setColumn(COLUMN_SERVER_RESPONSE, response);
}
public String getServerResponse() {
return getStringColumnValue(COLUMN_SERVER_RESPONSE);
}
public String getExtraField() {
return getServerResponse();
}
public CreditCardAuthorizationEntry getChild() throws FinderException {
Object obj = this.idoFindOnePKByColumnBySQL(COLUMN_PARENT_ID, this.getPrimaryKey().toString());
if (obj != null) {
KortathjonustanAuthorisationEntriesHome home;
try {
home = (KortathjonustanAuthorisationEntriesHome) IDOLookup.getHome(KortathjonustanAuthorisationEntries.class);
return home.findByPrimaryKey(obj);
}
catch (IDOLookupException e) {
throw new FinderException(e.getMessage());
}
}
return null;
}
public Collection ejbFindRefunds(IWTimestamp from, IWTimestamp to) throws FinderException {
to.addDays(1);
Table table = new Table(this);
Column date = new Column(COLUMN_DATE);
Column code = new Column(COLUMN_TRANSACTION_TYPE);
SelectQuery query = new SelectQuery(table);
query.addColumn(new WildCardColumn(table));
query.addCriteria(new MatchCriteria(code, MatchCriteria.EQUALS, KortathjonustanAuthorisationEntries.AUTHORIZATION_TYPE_REFUND));
query.addCriteria(new MatchCriteria(date, MatchCriteria.GREATEREQUAL, from.getDate().toString()));
query.addCriteria(new MatchCriteria(date, MatchCriteria.LESSEQUAL, to.getDate().toString()));
return this.idoFindPKsByQuery(query);
}
}