/*
* Created on 1.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.SchoolCategory;
import com.idega.data.GenericEntity;
import com.idega.data.IDOLookup;
import com.idega.data.IDOLookupException;
import com.idega.data.IDOQuery;
import com.idega.user.data.User;
import com.idega.util.IWTimestamp;
/**
* @author Roar
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class RegularInvoiceEntryBMPBean extends GenericEntity implements RegularInvoiceEntry {
private static final String COLUMN_PRIMARY_KEY = "cacc_reg_inv_entry_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 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_CATEGORY_ID = "school_category_id";
private static final String COLUMN_VAT_RULE_REGULATION_ID ="VAT_RULE_REGULATION_ID";
private static final String ENTITY_NAME = "cacc_regular_invoice_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_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);
// addAttribute(COLUMN_SCHOOL_CATEGORY_ID, "", true, true, java.lang.String.class);
addManyToOneRelationship(COLUMN_USER_ID, User.class);
addManyToOneRelationship(COLUMN_SCHOOL_ID, School.class);
addManyToOneRelationship(COLUMN_REG_SPEC_TYPE_ID, RegulationSpecType.class);
addManyToOneRelationship(COLUMN_SCHOOL_CATEGORY_ID, SchoolCategory.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 getChild() {
return (User) getColumnValue(COLUMN_USER_ID);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#getUser()
*/
public int getChildId() {
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() {
try{
return (School) IDOLookup.findByPrimaryKey(School.class, getSchoolId());
}catch( FinderException ex){
return null;
}catch( IDOLookupException ex){
return null;
}
}
/* (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#getSchoolId()
*/
public String getSchoolCategoryId() {
return getStringColumnValue(COLUMN_SCHOOL_CATEGORY_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);
}
public float getVAT() {
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 vatRegId){
setColumn(COLUMN_VAT_RULE_ID, vatRegId);
}
*/
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 vatRegId){
setColumn(COLUMN_VAT_RULE_REGULATION_ID, vatRegId);
}
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#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#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);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setUser(com.idega.user.data.User)
*/
public void setChild(User user) {
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#getSchoolId()
*/
public void setSchoolCategoryId(String schoolCategoryId) {
setColumn(COLUMN_SCHOOL_CATEGORY_ID, schoolCategoryId);
}
/* (non-Javadoc)
* @see se.idega.idegaweb.commune.accounting.invoice.data.RegularInvoiceEntry#setVAT(float)
*/
public void setVAT(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.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);
}
public Collection ejbFindRegularInvoicesForPeriodAndChildAndCategoryExceptType(Date from, Date to, int childUserId, String schoolCategoryId, int regulationSpecTypeId) throws FinderException {
IDOQuery query = idoQuery()
.appendSelectAllFrom(this)
.appendWhereEquals(COLUMN_USER_ID, childUserId)
.appendAndEqualsQuoted(COLUMN_SCHOOL_CATEGORY_ID, schoolCategoryId)
.appendAnd()
.append(COLUMN_FROM)
.appendLessThanOrEqualsSign()
.append(to)
.appendAnd()
.appendLeftParenthesis()
.append(COLUMN_TO)
.appendGreaterThanOrEqualsSign()
.append(from)
// .appendOr()
// .append(COLUMN_TO)
// .appendIsNull()
.appendRightParenthesis()
.appendAnd()
.append(COLUMN_REG_SPEC_TYPE_ID)
.appendNOTEqual()
.append(regulationSpecTypeId);
return idoFindPKsByQuery(query);
}
public Collection ejbFindRegularInvoicesForPeriodAndChildAndCategory(Date from, Date to, int childUserId, String schoolCategoryId) throws FinderException {
IDOQuery query = idoQuery()
.appendSelectAllFrom(this)
.appendWhereEquals(COLUMN_USER_ID, childUserId)
.appendAndEqualsQuoted(COLUMN_SCHOOL_CATEGORY_ID, schoolCategoryId)
.appendAnd()
.append(COLUMN_FROM)
.appendLessThanOrEqualsSign()
.append(to)
.appendAnd()
.appendLeftParenthesis()
.append(COLUMN_TO)
.appendGreaterThanOrEqualsSign()
.append(from)
// .appendOr()
// .append(COLUMN_TO)
// .appendIsNull()
.appendRightParenthesis();
return idoFindPKsByQuery(query);
}
public Collection ejbFindRegularInvoicesForPeriodAndCategoryExceptType(Date firstDateOfMonthForPeriod, String category, int regulationSpecTypeId) throws FinderException{
IDOQuery sql = idoQuery();
IWTimestamp endOfPeriod = new IWTimestamp(firstDateOfMonthForPeriod);
endOfPeriod.addMonths(1);
sql.appendSelectAllFrom(this).appendWhereEqualsQuoted(COLUMN_SCHOOL_CATEGORY_ID, category);
sql.appendAnd().append(COLUMN_FROM).appendLessThanSign().append(endOfPeriod.getDate());
sql.appendAnd().appendLeftParenthesis().append(COLUMN_TO).appendGreaterThanOrEqualsSign().append(firstDateOfMonthForPeriod);
sql.appendOr().append(COLUMN_TO).append(" is null").appendRightParenthesis();
sql.appendAnd().append(COLUMN_REG_SPEC_TYPE_ID).appendNOTEqual().append(regulationSpecTypeId);
// System.out.println("SQL:"+sql);
return idoFindPKsByQuery(sql);
}
public Collection ejbFindRegularInvoicesForPeriodAndChildAndCategoryAndRegSpecType(Date date, int childUserId, String category, int regSpecTypeId) throws FinderException{
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this);
sql.appendWhereEqualsQuoted(COLUMN_SCHOOL_CATEGORY_ID, 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.appendAndEquals(COLUMN_REG_SPEC_TYPE_ID,regSpecTypeId);
sql.appendAndEquals(COLUMN_USER_ID, childUserId);
// System.out.println("SQL = " + sql);
return idoFindPKsByQuery(sql);
}
}