package is.idega.idegaweb.travel.data;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.block.trade.stockroom.data.Reseller;
import com.idega.data.IDOQuery;
/**
* Title: idegaWeb TravelBooking
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="mailto:gimmi@idega.is">Grimur Jonsson</a>
* @version 1.0
*/
public class ContractBMPBean extends com.idega.data.GenericEntity implements is.idega.idegaweb.travel.data.Contract {
public ContractBMPBean() {
super();
}
public ContractBMPBean(int id) throws SQLException {
super(id);
}
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(getColumnNameServiceId(), "ServiceID", true, true, Integer.class, "many-to-one",Service.class);
addAttribute(getColumnNameResellerId(), "ResellerID", true, true, Integer.class, "many-to-one",Reseller.class);
addAttribute(getColumnNameAlotment(), "Fj�ldi s�ta", true, true, Integer.class);
addAttribute(getColumnNameFrom(), "Virkt fr�", true, true, Timestamp.class);
addAttribute(getColumnNameTo(), "Virkt til", true, true, Timestamp.class);
addAttribute(getColumnNameDiscount(), "Afsl�ttur", true, true, String.class);
addAttribute(getColumnNameExpiresDaysBeforeDeparture(), "dagar fyrir brottf�r", true, true, Integer.class);
addIndex("IDC_CON_SERV_ID", getColumnNameServiceId());
addIndex("IDX_CON_SERVICE", new String[]{getIDColumnName(), getColumnNameServiceId()});
}
public String getEntityName() {
return getContractTableName();
}
// Setters
public void setServiceId(int id) {
setColumn(getColumnNameServiceId(), id);
}
public void setService(Service service) throws RemoteException{
setServiceId(((Integer)service.getPrimaryKey()).intValue());
}
public void setResellerId(int id) {
setColumn(getColumnNameResellerId(), id);
}
public void setReseller(Reseller reseller) {
setResellerId(reseller.getID());
}
public void setAlotment(int alotment) {
setColumn(getColumnNameAlotment(), alotment);
}
public void setFrom(Timestamp from) {
setColumn(getColumnNameFrom(),from);
}
public void setTo(Timestamp to) {
setColumn(getColumnNameTo(),to);
}
public void setDiscount(String discount) {
setColumn(getColumnNameDiscount(), discount);
}
public void setExpireDays(int daysBeforeDeparture) {
setColumn(getColumnNameExpiresDaysBeforeDeparture(), daysBeforeDeparture);
}
// getters
public int getServiceId() {
return getIntColumnValue(getColumnNameServiceId());
}
public Service getService() throws RemoteException, FinderException {
return ((is.idega.idegaweb.travel.data.ServiceHome)com.idega.data.IDOLookup.getHome(Service.class)).findByPrimaryKey(new Integer(getServiceId()));
}
public int getResellerId() {
return getIntColumnValue(getColumnNameResellerId());
}
public Reseller getReseller() throws SQLException {
return ((com.idega.block.trade.stockroom.data.ResellerHome)com.idega.data.IDOLookup.getHomeLegacy(Reseller.class)).findByPrimaryKeyLegacy(getResellerId());
}
public int getAlotment() {
return getIntColumnValue(getColumnNameAlotment());
}
public Timestamp getFrom() {
return (Timestamp) getColumnValue(getColumnNameFrom());
}
public Timestamp getTo() {
return (Timestamp) getColumnValue(getColumnNameTo());
}
public String getDiscount() {
return getStringColumnValue(getColumnNameDiscount());
}
public int getExpireDays() {
return getIntColumnValue(getColumnNameExpiresDaysBeforeDeparture());
}
public Collection ejbFindByProductId(int productId) throws FinderException {
return this.idoFindAllIDsByColumnBySQL(getColumnNameServiceId(), Integer.toString(productId));
}
public Collection ejbFindByResellerId(int resellerID) throws FinderException {
return super.idoFindAllIDsByColumnBySQL(getColumnNameResellerId(), Integer.toString(resellerID));
}
public Object ejbFindByProductAndReseller(int productId, int resellerId) throws FinderException {
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this)
.appendWhereEquals(getColumnNameServiceId(), productId)
.appendAndEquals(getColumnNameResellerId(), resellerId);
return this.idoFindOnePKByQuery(query);
}
public static String getContractTableName() { return "TB_CONTRACT";}
public static String getColumnNameServiceId() { return "TB_SERVICE_ID";}
public static String getColumnNameResellerId() { return "SR_RESELLER_ID";}
public static String getColumnNameAlotment() { return "ALOTMENT";}
public static String getColumnNameFrom() { return "ACTIVE_FROM";}
public static String getColumnNameTo() { return "ACTIVE_TO";}
public static String getColumnNameDiscount() { return "DISCOUNT";}
public static String getColumnNameExpiresDaysBeforeDeparture() { return "VALID_DAYS_BEFORE";}
}