/*
* Created on 28.10.2003
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package se.idega.idegaweb.commune.accounting.invoice.data;
import java.sql.Date;
import java.util.Collection;
import javax.ejb.FinderException;
import se.idega.idegaweb.commune.accounting.regulations.data.Regulation;
import se.idega.idegaweb.commune.accounting.regulations.data.RegulationSpecType;
import com.idega.block.school.data.School;
import com.idega.block.school.data.SchoolType;
import com.idega.data.GenericEntity;
import com.idega.data.IDOQuery;
import com.idega.user.data.User;
/**
* @author Roar
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class RegularPaymentEntryBMPBean extends GenericEntity implements RegularPaymentEntry {
private static final String COLUMN_PRIMARY_KEY = "cacc_reg_pay_entry_id";
private static final String COLUMN_OWN_POSTING = "own_posting";
private static final String COLUMN_DOUBLE_POSTING = "double_posting";
private static final String COLUMN_NOTE = "note";
private static final String COLUMN_VAT = "vat";
//private static final String COLUMN_VAT_RULE_ID = "vat_rule_id";
private static final String COLUMN_AMOUNT = "amount";
private static final String COLUMN_SCHOOL_ID = "school_id";
private static final String COLUMN_REG_SPEC_TYPE_ID = "reg_spec_type";
private static final String COLUMN_USER_ID = "user_id";
private static final String COLUMN_PLACING = "placing";
private static final String COLUMN_TO = "periode_to";
private static final String COLUMN_FROM = "periode_from";
private static final String COLUMN_SCHOOL_TYPE_ID = "school_type_id";
private static final String COLUMN_VAT_RULE_REGULATION_ID="VAT_RULE_REGULATION_ID";
private static final String COLUMN_EDIT_NAME = "edit_name";
private static final String COLUMN_EDIT_DATE = "edit_date";
private static final String COLUMN_CREATED_NAME = "created_date";
private static final String COLUMN_CREATED_DATE = "created_name";
private static final String ENTITY_NAME = "cacc_regular_payment_entry";
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.PaymentRecord#initializeAttributes()
*/
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(COLUMN_OWN_POSTING, "", true, true, java.lang.String.class);
addAttribute(COLUMN_DOUBLE_POSTING, "", true, true, java.lang.String.class);
addAttribute(COLUMN_NOTE, "", true, true, java.lang.String.class);
addAttribute(COLUMN_VAT, "", true, true, java.lang.Float.class);
// addAttribute(COLUMN_VAT_RULE_ID, "", true, true, java.lang.Integer.class, 1);
addAttribute(COLUMN_AMOUNT, "", true, true, java.lang.Float.class);
// addAttribute(COLUMN_SCHOOL_ID, "", true, true, java.lang.Integer.class);
// addAttribute(COLUMN_REG_SPEC_TYPE_ID, "", true, true, java.lang.Integer.class);
// addAttribute(COLUMN_USER_ID, "", true, true, java.lang.Integer.class);
addAttribute(COLUMN_PLACING, "", true, true, java.lang.String.class);
addAttribute(COLUMN_TO, "", true, true, java.sql.Date.class);
addAttribute(COLUMN_FROM, "", true, true, java.sql.Date.class);
// addAttribute(COLUMN_SCHOOL_TYPE_ID, "", true, true, java.lang.Integer.class);
addAttribute(COLUMN_EDIT_NAME, "", true, true, java.lang.String.class);
addAttribute(COLUMN_EDIT_DATE, "", true, true, java.sql.Date.class);
addAttribute(COLUMN_CREATED_NAME, "", true, true, java.lang.String.class);
addAttribute(COLUMN_CREATED_DATE, "", true, true, java.sql.Date.class);
addManyToOneRelationship(COLUMN_USER_ID, User.class);
addManyToOneRelationship(COLUMN_SCHOOL_ID, School.class);
addManyToOneRelationship(COLUMN_SCHOOL_TYPE_ID, SchoolType.class);
addManyToOneRelationship(COLUMN_REG_SPEC_TYPE_ID, RegulationSpecType.class);
//addManyToOneRelationship(COLUMN_VAT_RULE_ID, VATRule.class);
addManyToOneRelationship(COLUMN_VAT_RULE_REGULATION_ID,Regulation.class);
}
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#getEntityName()
*/
public String getEntityName() {
return ENTITY_NAME;
}
public String getIDColumnName(){
return COLUMN_PRIMARY_KEY;
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getFrom()
*/
public Date getFrom() {
return getDateColumnValue(COLUMN_FROM);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getTo()
*/
public Date getTo() {
return getDateColumnValue(COLUMN_TO);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getPlacing()
*/
public String getPlacing() {
return getStringColumnValue(COLUMN_PLACING);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getUser()
*/
public User getUser() {
return (User) getColumnValue(COLUMN_USER_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularPaymentEntry#getUserId()
*/
public int getUserId() {
return getIntColumnValue(COLUMN_USER_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getRegSpecType()
*/
public RegulationSpecType getRegSpecType() {
return (RegulationSpecType) getColumnValue(COLUMN_REG_SPEC_TYPE_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getRegSpecType()
*/
public int getRegSpecTypeId() {
return getIntColumnValue(COLUMN_REG_SPEC_TYPE_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getSchool()
*/
public School getSchool() {
return (School) getColumnValue(COLUMN_SCHOOL_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getSchoolId()
*/
public int getSchoolId() {
return getIntColumnValue(COLUMN_SCHOOL_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getDoublePostin()
*/
public String getDoublePosting() {
return getStringColumnValue(COLUMN_DOUBLE_POSTING);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getAmount()
*/
public float getAmount() {
return getFloatColumnValue(COLUMN_AMOUNT);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getVAT()
*/
public float getVATAmount() {
return getFloatColumnValue(COLUMN_VAT);
}
/*
public VATRule getVatRule() {
return (VATRule) getColumnValue(COLUMN_VAT_RULE_ID);
}
public int getVatRuleId() {
return getIntColumnValue(COLUMN_VAT_RULE_ID);
}
public void setVatRule(VATRule vatRule) {
setColumn(COLUMN_VAT_RULE_ID, vatRule);
}
public void setVatRuleId(int vatRuleId){
setColumn(COLUMN_VAT_RULE_ID, vatRuleId);
}
*/
public Regulation getVatRuleRegulation() {
return (Regulation) getColumnValue(COLUMN_VAT_RULE_REGULATION_ID);
}
public int getVatRuleRegulationId() {
return getIntColumnValue(COLUMN_VAT_RULE_REGULATION_ID);
}
public void setVatRuleRegulation(Regulation vatRule) {
setColumn(COLUMN_VAT_RULE_REGULATION_ID, vatRule);
}
public void setVatRuleRegulationId(int vatRuleId){
setColumn(COLUMN_VAT_RULE_REGULATION_ID, vatRuleId);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getNote()
*/
public String getNote() {
return getStringColumnValue(COLUMN_NOTE);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getOwnPosting()
*/
public String getOwnPosting() {
return getStringColumnValue(COLUMN_OWN_POSTING);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getVatRegulationID()
*/
public int getSchoolTypeId() {
return getIntColumnValue(COLUMN_SCHOOL_TYPE_ID);
}
public SchoolType getSchoolType(){
return (SchoolType)getColumnValue(COLUMN_SCHOOL_TYPE_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setFrom(java.util.Date)
*/
public void setFrom(Date from) {
setColumn(COLUMN_FROM, from);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setTo(java.util.Date)
*/
public void setTo(Date to) {
setColumn(COLUMN_TO, to);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setPlacing(java.lang.String)
*/
public void setPlacing(String plascing) {
setColumn(COLUMN_PLACING, plascing);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setAmount(float)
*/
public void setAmount(float amount) {
setColumn(COLUMN_AMOUNT, amount);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setNote(java.lang.String)
*/
public void setNote(String note) {
setColumn(COLUMN_NOTE, note);
}
public Collection ejbFindByPeriodeAndUser(Date from, Date to, int userId) throws FinderException {
return idoFindPKsByQuery(idoQuery()
.appendSelectAllFrom(this)
.appendWhereEquals(COLUMN_USER_ID, userId)
.appendAnd()
.append(COLUMN_FROM)
.appendLessThanOrEqualsSign()
.append(to)
.appendAnd()
.appendLeftParenthesis()
.append(COLUMN_TO)
.appendGreaterThanOrEqualsSign()
.append(from)
// .appendOr()
// .append(COLUMN_TO)
// .appendIsNull()
.appendRightParenthesis());
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setUser(com.idega.user.data.User)
*/
public void setUser(User user) {
if (user == null){
//TODO (roar) how to handle this?
}else{
setColumn(COLUMN_USER_ID, user.getPrimaryKey());
}
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setRegSpecType(se.idega.idegaweb.commune.accounting.regulations.data.RegulationSpecType)
*/
public void setRegSpecType(RegulationSpecType regType) {
setColumn(COLUMN_REG_SPEC_TYPE_ID, regType);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setRegSpecTypeId(int)
*/
public void setRegSpecTypeId(int regTypeId){
setColumn(COLUMN_REG_SPEC_TYPE_ID, regTypeId);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setProvider(com.idega.block.school.data.School)
*/
public void setSchoolId(int schoolId) {
setColumn(COLUMN_SCHOOL_ID, schoolId);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setVAT(float)
*/
public void setVATAmount(float vat) {
setColumn(COLUMN_VAT, vat);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setOwnPosting(java.lang.String)
*/
public void setOwnPosting(String ownPosting) {
setColumn(COLUMN_OWN_POSTING, ownPosting);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setDoublePosting(java.lang.String)
*/
public void setDoublePosting(String doublePosting) {
setColumn(COLUMN_DOUBLE_POSTING, doublePosting);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularPaymentEntry#setSchoolTypeId(int)
*/
public void setSchoolTypeId(int schoolTypeId) {
setColumn(COLUMN_SCHOOL_TYPE_ID, schoolTypeId);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getCreatedDate()
*/
public Date getCreatedDate() {
return getDateColumnValue(COLUMN_CREATED_DATE);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getCreatedName()
*/
public String getCreatedName() {
return getStringColumnValue(COLUMN_CREATED_NAME);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getEditDate()
*/
public Date getEditDate() {
return getDateColumnValue(COLUMN_EDIT_DATE);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getEditdName()
*/
public String getEditName() {
return getStringColumnValue(COLUMN_EDIT_NAME);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setCreatedDate(java.sql.Date)
*/
public void setCreatedDate(Date date) {
setColumn(COLUMN_CREATED_DATE, date);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setCreatedSign(java.lang.String)
*/
public void setCreatedSign(String name) {
setColumn(COLUMN_CREATED_NAME, name);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setEditDate(java.sql.Date)
*/
public void setEditDate(Date date) {
setColumn(COLUMN_EDIT_DATE, date);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setEditSign(java.lang.String)
*/
public void setEditSign(String name) {
setColumn(COLUMN_EDIT_NAME, name);
}
/**
* @param from
* @param to
* @param provider
* @return
*/
public Collection ejbFindByPeriodeAndProvider(Date from, Date to, School provider) throws FinderException {
return idoFindPKsByQuery(idoQuery()
.appendSelectAllFrom(this)
.appendWhereEquals(COLUMN_SCHOOL_ID, provider.getPrimaryKey())
.appendAnd()
.append(COLUMN_FROM)
.appendLessThanOrEqualsSign()
.append(to)
.appendAnd()
.appendLeftParenthesis()
.append(COLUMN_TO)
.appendGreaterThanOrEqualsSign()
.append(from)
// .appendOr()
// .append(COLUMN_TO)
// .appendIsNull()
.appendRightParenthesis());
}
public Collection ejbFindRegularPaymentForPeriodeCategoryExcludingRegSpecType(Date date, String category, int regSpecType) throws FinderException{
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" p, sch_school_type t");
sql.appendWhereEquals("p."+COLUMN_SCHOOL_TYPE_ID, "t.SCH_SCHOOL_TYPE_ID");
sql.appendAndEqualsQuoted("t.school_category",category);
sql.appendAnd().append(COLUMN_FROM).appendLessThanOrEqualsSign().append(date);
sql.appendAnd().appendLeftParenthesis().append(COLUMN_TO).appendGreaterThanOrEqualsSign().append(date);
sql.appendOr().append(COLUMN_TO).append(" is null").appendRightParenthesis();
sql.appendAnd().append(COLUMN_REG_SPEC_TYPE_ID).appendNOTEqual().append(regSpecType);
System.out.println("SQL:"+sql);
return idoFindPKsByQuery(sql);
}
public Collection ejbFindRegularPaymentForPeriodeCategory(Date date, String category) throws FinderException{
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" p, sch_school_type t");
sql.appendWhereEquals("p."+COLUMN_SCHOOL_TYPE_ID, "t.SCH_SCHOOL_TYPE_ID");
sql.appendAndEqualsQuoted("t.school_category",category);
sql.appendAnd().append(COLUMN_FROM).appendLessThanOrEqualsSign().append(date);
sql.appendAnd().appendLeftParenthesis().append(COLUMN_TO).appendGreaterThanOrEqualsSign().append(date);
sql.appendOr().append(COLUMN_TO).append(" is null").appendRightParenthesis();
System.out.println("SQL:"+sql);
return idoFindPKsByQuery(sql);
}
/**
* Find ongoing payment/s according to the date with TO date set or null.
* @param child
* @param provider
* @param date
* @return
*/
public Collection ejbFindOngoingByUserAndProviderAndDate(User child, School provider, Date date) throws FinderException {
return idoFindPKsByQuery(idoQuery()
.appendSelectAllFrom(this)
.appendWhereEquals(COLUMN_SCHOOL_ID, provider.getPrimaryKey())
.appendAndEquals(COLUMN_USER_ID, child.getPrimaryKey())
.appendAnd()
.append(COLUMN_FROM)
.appendLessThanOrEqualsSign()
.append(date)
.appendAnd()
.appendLeftParenthesis()
.append(COLUMN_TO)
.appendGreaterThanOrEqualsSign()
.append(date)
.appendOr()
.append(COLUMN_TO)
.appendIsNull()
.appendRightParenthesis());
}
}