/*
* $Id: ChildCareApplicationBMPBean.java,v 1.22.2.4 2006/04/04 14:37:53 dainis Exp $
*
* Copyright (C) 2002 Idega hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*
*/
package se.idega.idegaweb.commune.care.data;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.FinderException;
import se.idega.idegaweb.commune.care.business.CareConstants;
import se.idega.idegaweb.commune.care.check.data.GrantedCheck;
import com.idega.block.contract.data.Contract;
import com.idega.block.process.data.AbstractCaseBMPBean;
import com.idega.block.process.data.Case;
import com.idega.block.process.data.CaseStatus;
import com.idega.block.school.data.School;
import com.idega.core.file.data.ICFile;
import com.idega.data.IDOException;
import com.idega.data.IDOQuery;
import com.idega.data.query.InCriteria;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
import com.idega.user.data.User;
import com.idega.util.IWTimestamp;
/**
* This class does something very clever.....
*
* @author palli
* @version 1.0
*/
public class ChildCareApplicationBMPBean extends AbstractCaseBMPBean implements ChildCareApplication, Case {
public final static String ENTITY_NAME = "comm_childcare";
private final static String CASE_CODE_KEY_DESC = "Application for child care";
public final static String MEMBER = "ic_user_id";
public final static String CLASSMEMBER = "SCH_CLASS_MEMBER_ID";
public final static String SCHOOLCLASS = "sch_school_class_id";
public final static String REGISTER_DATE = "register_date";
public final static String PROVIDER_ID = "provider_id";
public final static String FROM_DATE = "from_date";
public final static String CHILD_ID = "child_id";
public final static String QUEUE_DATE = "queue_date";
public final static String METHOD = "method";
public final static String CARE_TIME = "care_time_string";
public final static String CARE_TIME_OLD = "care_time";
public final static String CHOICE_NUMBER = "choice_number";
public final static String CHECK_ID = "check_id";
public final static String CONTRACT_ID = "contract_id";
public final static String CONTRACT_FILE_ID = "contract_file_id";
public final static String OFFER_VALID_UNTIL = "offer_valid_until";
public final static String REJECTION_DATE = "rejection_date";
public final static String PROGNOSIS = "prognosis";
public final static String PRESENTATION = "presentation";
public final static String CC_MESSAGE = "cc_message";
public final static String QUEUE_ORDER = "queue_order";
public final static String APPLICATION_STATUS = "application_status";
public final static String HAS_PRIORITY = "has_priority";
public final static String HAS_DATE_SET = "has_date_set";
public final static String HAS_QUEUE_PRIORITY = "has_queue_priority";
public final static String PRESCHOOL = "preschool";
public final static String LAST_REPLY_DATE = "last_reply_date";
public final static String REQUESTED_CANCEL_DATE = "requested_cancel_date";
public final static String CANCEL_MESSAGE = "cancel_message";
public final static String CANCEL_PARENTAL_LEAVE = "cancel_parental_leave";
public final static String CANCEL_FORM_FILE_ID = "cancel_form_file_id";
public final static String CANCEL_CONFIRMATION_RECEIVED = "cancel_confirmation_received";
protected final static String EXTRA_CONTRACT = "extra_contract";
protected final static String EXTRA_CONTRACT_MESSAGE = "extra_contract_message";
protected final static String EXTRA_CONTRACT_OTHER = "extra_contract_other";
protected final static String EXTRA_CONTRACT_OTHER_MESSAGE = "extra_contract_message_other";
protected final static String FROM_DATE_REQUESTED = "from_date_requested"; // Requested start date
protected final static String CANCEL_REQUEST_RECEIVED = "cancel_request_received"; // The date the parents want as the last day of placement
protected final static String CANCEL_DATE_REQUESTED = "cancel_date_requested"; // The date the parent registered the cancellation
protected final static String FROM_TIME = "from_time";
protected final static String TO_TIME = "to_time";
protected final static String FEE = "fee";
protected final int SORT_DATE_OF_BIRTH = 1;
protected final int SORT_QUEUE_DATE = 2;
protected final int SORT_PLACEMENT_DATE = 3;
public final int ORDER_BY_QUEUE_DATE = 1;
public final int ORDER_BY_DATE_OF_BIRTH = 2;
/**
* @see com.idega.block.process.data.AbstractCaseBMPBean#getCaseCodeKey()
*/
public String getCaseCodeKey() {
return CareConstants.CASE_CODE_KEY;
}
/**
* @see com.idega.block.process.data.AbstractCaseBMPBean#getCaseCodeDescription()
*/
public String getCaseCodeDescription() {
return CASE_CODE_KEY_DESC;
}
/**
* @see com.idega.data.IDOLegacyEntity#getEntityName()
*/
public String getEntityName() {
return ENTITY_NAME;
}
/**
* @see com.idega.data.IDOLegacyEntity#initializeAttributes()
*/
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(FROM_DATE,"",true,true,java.sql.Date.class);
addAttribute(QUEUE_DATE,"",true,true,java.sql.Date.class);
addAttribute(METHOD,"",true,true,java.lang.Integer.class);
addAttribute(CARE_TIME_OLD,"",true,true,java.lang.Integer.class);
addAttribute(CARE_TIME,"",true,true,java.lang.String.class);
addAttribute(CHOICE_NUMBER,"",true,true,java.lang.Integer.class);
addAttribute(REJECTION_DATE,"",true,true,java.sql.Date.class);
addAttribute(OFFER_VALID_UNTIL,"",true,true,java.sql.Date.class);
addAttribute(PROGNOSIS,"",true,true,java.lang.String.class,1000);
addAttribute(PRESENTATION,"",true,true,java.lang.String.class,1000);
addAttribute(CC_MESSAGE,"",true,true,java.lang.String.class,1000);
addAttribute(QUEUE_ORDER,"",true,true,java.lang.Integer.class);
addAttribute(APPLICATION_STATUS,"",true,true,java.lang.String.class,1);
addAttribute(HAS_PRIORITY,"",true,true,java.lang.Boolean.class);
addAttribute(HAS_DATE_SET,"",true,true,java.lang.Boolean.class);
addAttribute(HAS_QUEUE_PRIORITY,"",true,true,java.lang.Boolean.class);
addAttribute(PRESCHOOL,"",true,true,java.lang.String.class);
addAttribute(LAST_REPLY_DATE,"",true,true,java.sql.Date.class);
addAttribute(EXTRA_CONTRACT,"",true,true,java.lang.Boolean.class);
addAttribute(EXTRA_CONTRACT_MESSAGE,"",true,true,java.lang.String.class);
addAttribute(EXTRA_CONTRACT_OTHER,"",true,true,java.lang.Boolean.class);
addAttribute(EXTRA_CONTRACT_OTHER_MESSAGE,"",true,true,java.lang.String.class);
addManyToOneRelationship(PROVIDER_ID,School.class);
addManyToOneRelationship(CHILD_ID,User.class);
addManyToOneRelationship(CHECK_ID,GrantedCheck.class);
addManyToOneRelationship(CONTRACT_ID,Contract.class);
addManyToOneRelationship(CONTRACT_FILE_ID,ICFile.class);
addAttribute(REQUESTED_CANCEL_DATE, "Requested cancel date", Date.class);
addAttribute(CANCEL_MESSAGE, "Cancel message", String.class, 255);
addAttribute(CANCEL_PARENTAL_LEAVE, "Cancel reason", Boolean.class);
addAttribute(CANCEL_CONFIRMATION_RECEIVED, "Cancel confirmation received", Date.class);
addManyToOneRelationship(CANCEL_FORM_FILE_ID,ICFile.class);
addAttribute(FROM_DATE_REQUESTED, "", true, true, java.sql.Date.class);
addAttribute(CANCEL_REQUEST_RECEIVED, "", true, true, java.sql.Date.class);
addAttribute(CANCEL_DATE_REQUESTED, "", true, true, java.sql.Date.class);
addAttribute(FROM_TIME, "From time", Timestamp.class);
addAttribute(TO_TIME, "To time", Timestamp.class);
addAttribute(FEE, "Fee", Float.class);
}
public float getFee() {
return getFloatColumnValue(FEE, 0);
}
public void setFee(float fee) {
setColumn(FEE, fee);
}
public Time getFromTime() {
Timestamp stamp = getTimestampColumnValue(FROM_TIME);
if (stamp != null) {
return new IWTimestamp(stamp).getTime();
}
return null;
}
public void setFromTime(Timestamp stamp) {
setColumn(FROM_TIME, stamp);
}
public Time getToTime() {
Timestamp stamp = getTimestampColumnValue(TO_TIME);
if (stamp != null) {
return new IWTimestamp(stamp).getTime();
}
return null;
}
public void setToTime(Timestamp stamp) {
setColumn(TO_TIME, stamp);
}
public int getProviderId() {
return getIntColumnValue(PROVIDER_ID);
}
public School getProvider() {
return (School)getColumnValue(PROVIDER_ID);
}
public Date getFromDate() {
return (Date)getColumnValue(FROM_DATE);
}
public int getChildId() {
return getIntColumnValue(CHILD_ID);
}
public User getChild() {
return (User) getColumnValue(CHILD_ID);
}
public Date getQueueDate() {
return (Date)getColumnValue(QUEUE_DATE);
}
public int getMethod() {
return getIntColumnValue(METHOD);
}
public String getCareTime() {
String careTime = getStringColumnValue(CARE_TIME);
if (careTime == null) {
int oldCareTime = getIntColumnValue(CARE_TIME_OLD);
if (oldCareTime != -1) {
careTime = String.valueOf(oldCareTime);
}
}
return careTime;
}
public int getChoiceNumber() {
return getIntColumnValue(CHOICE_NUMBER);
}
public int getCheckId() {
return getIntColumnValue(CHECK_ID);
}
public GrantedCheck getCheck() {
return (GrantedCheck)getColumnValue(CHECK_ID);
}
public Date getRejectionDate() {
return (Date)getColumnValue(REJECTION_DATE);
}
public Date getOfferValidUntil() {
return (Date)getColumnValue(OFFER_VALID_UNTIL);
}
public Date getLastReplyDate() {
return (Date)getColumnValue(LAST_REPLY_DATE);
}
public int getContractId() {
return getIntColumnValue(CONTRACT_ID);
}
public Contract getContract() {
return (Contract)getColumnValue(CONTRACT_ID);
}
public int getContractFileId() {
return getIntColumnValue(CONTRACT_FILE_ID);
}
public ICFile getContractFile() {
return (ICFile) getColumnValue(CONTRACT_FILE_ID);
}
public String getPrognosis() {
return getStringColumnValue(PROGNOSIS);
}
public String getPresentation() {
return getStringColumnValue(PRESENTATION);
}
public String getPreSchool() {
return getStringColumnValue(PRESCHOOL);
}
public String getMessage() {
return getStringColumnValue(CC_MESSAGE);
}
public int getQueueOrder() {
return getIntColumnValue(QUEUE_ORDER);
}
public char getApplicationStatus() {
String status = this.getStringColumnValue(APPLICATION_STATUS);
if (status != null)
return status.charAt(0);
else
return 'A';
}
public boolean getHasPriority() {
return getBooleanColumnValue(HAS_PRIORITY, false);
}
public boolean getHasDateSet() {
return getBooleanColumnValue(HAS_DATE_SET, false);
}
public boolean getHasQueuePriority() {
return getBooleanColumnValue(HAS_QUEUE_PRIORITY, false);
}
public boolean getHasExtraContract() {
return getBooleanColumnValue(EXTRA_CONTRACT, false);
}
public String getExtraContractMessage() {
return getStringColumnValue(EXTRA_CONTRACT_MESSAGE);
}
public boolean getHasExtraContractOther() {
return getBooleanColumnValue(EXTRA_CONTRACT_OTHER, false);
}
public String getExtraContractMessageOther() {
return getStringColumnValue(EXTRA_CONTRACT_OTHER_MESSAGE);
}
public Date getRequestedCancelDate() {
return getDateColumnValue(REQUESTED_CANCEL_DATE);
}
public String getCancelMessage() {
return getStringColumnValue(CANCEL_MESSAGE);
}
public boolean getParentalLeave() {
return getBooleanColumnValue(CANCEL_PARENTAL_LEAVE, false);
}
public ICFile getCancelFormFile() {
return (ICFile) getColumnValue(CANCEL_FORM_FILE_ID);
}
public int getCancelFormFileID() {
return getIntColumnValue(CANCEL_FORM_FILE_ID);
}
public Date getCancelConfirmationReceived() {
return getDateColumnValue(CANCEL_CONFIRMATION_RECEIVED);
}
public Date getFromDateRequested(){
return getDateColumnValue(FROM_DATE_REQUESTED);
}
public Date getCancelRequestReceived(){
return getDateColumnValue(CANCEL_REQUEST_RECEIVED);
}
public Date getCancelDateRequested(){
return getDateColumnValue(CANCEL_DATE_REQUESTED);
}
public void setProviderId(int id) {
setColumn(PROVIDER_ID,id);
}
public void setProvider(School provider) {
setColumn(PROVIDER_ID,provider);
}
public void setFromDate(Date date) {
if(date!=null)
setColumn(FROM_DATE,date);
}
public void setChildId(int id) {
setColumn(CHILD_ID,id);
}
public void setChild(User child) {
setColumn(CHILD_ID,child);
}
public void setQueueDate(Date date) {
setColumn(QUEUE_DATE,date);
}
public void setMethod(int method) {
setColumn(METHOD,method);
}
public void setCareTime(String careTime) {
setColumn(CARE_TIME,careTime);
}
public void setChoiceNumber(int number) {
setColumn(CHOICE_NUMBER,number);
}
public void setCheckId(int checkId) {
setColumn(CHECK_ID,checkId);
}
public void setCheck(GrantedCheck check) {
setColumn(CHECK_ID,check);
}
public void setRejectionDate(Date date) {
setColumn(REJECTION_DATE,date);
}
public void setOfferValidUntil(Date date) {
setColumn(OFFER_VALID_UNTIL,date);
}
public void setLastReplyDate(Date date) {
setColumn(LAST_REPLY_DATE,date);
}
public void setContractId(int id) {
setColumn(CONTRACT_ID,id);
}
public void setContractId(Integer id) {
setColumn(CONTRACT_ID,id);
}
public void setContractFileId(int id) {
setColumn(CONTRACT_FILE_ID,id);
}
public void setContractFileId(Integer id) {
setColumn(CONTRACT_FILE_ID,id);
}
public void setContractFile(ICFile contractFile) {
setColumn(CONTRACT_FILE_ID, contractFile);
}
public void setPrognosis(String prognosis) {
setColumn(PROGNOSIS,prognosis);
}
public void setPresentation(String presentation) {
setColumn(PRESENTATION,presentation);
}
public void setPreSchool(java.lang.String preSchool){
setColumn(PRESCHOOL, preSchool);
}
public void setMessage(String message) {
setColumn(CC_MESSAGE,message);
}
public void setQueueOrder(int order) {
setColumn(QUEUE_ORDER,order);
}
public void setApplicationStatus(char status) {
setColumn(APPLICATION_STATUS,String.valueOf(status));
}
public void setHasPriority(boolean hasPriority) {
setColumn(HAS_PRIORITY, hasPriority);
}
public void setHasDateSet(boolean hasDateSet) {
setColumn(HAS_DATE_SET, hasDateSet);
}
public void setHasQueuePriority(boolean hasPriority) {
setColumn(HAS_QUEUE_PRIORITY, hasPriority);
}
public void setRejectionDateAsNull(boolean setAsNull) {
if (setAsNull)
removeFromColumn(ENTITY_NAME);
}
public void setHasExtraContract(boolean hasExtraContract) {
setColumn(EXTRA_CONTRACT, hasExtraContract);
}
public void setExtraContractMessage(String message) {
setColumn(EXTRA_CONTRACT_MESSAGE, message);
}
public void setHasExtraContractOther(boolean hasExtraContractOther) {
setColumn(EXTRA_CONTRACT_OTHER, hasExtraContractOther);
}
public void setExtraContractMessageOther(String message) {
setColumn(EXTRA_CONTRACT_OTHER_MESSAGE, message);
}
public void setRequestedCancelDate(Date date) {
setColumn(REQUESTED_CANCEL_DATE, date);
}
public void setCancelMessage(String message) {
setColumn(CANCEL_MESSAGE, message);
}
public void setParentalLeave(boolean parentalLeave) {
setColumn(CANCEL_PARENTAL_LEAVE, parentalLeave);
}
public void setCancelFormFile(ICFile file) {
setColumn(CANCEL_FORM_FILE_ID, file);
}
public void setCancelFormFileID(int fileID) {
setColumn(CANCEL_FORM_FILE_ID, fileID);
}
public void setCancelConfirmationReceived(Date date) {
setColumn(CANCEL_CONFIRMATION_RECEIVED, date);
}
public void setFromDateRequested(Date date) {
setColumn(FROM_DATE_REQUESTED, date);
}
public void setCancelRequestReceived(Date date) {
setColumn(CANCEL_REQUEST_RECEIVED, date);
}
public void setCancelDateRequested(Date date) {
setColumn(CANCEL_DATE_REQUESTED, date);
}
public Collection ejbFindAll() throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this);
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindAllCasesByProviderAndStatus(int providerId, CaseStatus caseStatus) throws FinderException {
return ejbFindAllCasesByProviderStatus(providerId, caseStatus.getStatus());
}
public Collection ejbFindAllCasesByProviderAndStatus(School provider, String caseStatus) throws FinderException {
return ejbFindAllCasesByProviderStatus(((Integer)provider.getPrimaryKey()).intValue(), caseStatus);
}
public Collection ejbFindAllCasesByProviderAndStatus(School provider, CaseStatus caseStatus) throws FinderException {
return ejbFindAllCasesByProviderStatus(((Integer)provider.getPrimaryKey()).intValue(), caseStatus.getStatus());
}
public Collection ejbFindAllCasesByProviderStatus(int providerId, String caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerId);
sql.appendAnd().appendEqualsQuoted("p.case_status",caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
sql.appendOrderBy("c."+QUEUE_DATE+",c."+QUEUE_ORDER);
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindAllChildCasesByProvider(int providerId) throws FinderException {
StringBuffer sql = new StringBuffer(
"select m.* from msg_letter_message m, proc_case p, comm_childcare c" +
" where m.msg_letter_message_id = p.proc_case_id and " +
" c.provider_id = " + providerId + " and " +
" p.parent_case_id in (select proc_case_id from proc_case where p.proc_case_id = c.comm_childcare_id)");
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindAllCasesByProviderAndStatus(int providerId, String caseStatus, int numberOfEntries, int startingEntry) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerId);
sql.appendAnd().appendEqualsQuoted("p.case_status",caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
sql.appendOrderBy("c."+QUEUE_ORDER);
return idoFindPKsBySQL(sql.toString(), numberOfEntries, startingEntry);
}
public Collection ejbFindAllCasesByProviderAndNotInStatus(int providerId, String[] caseStatus, int numberOfEntries, int startingEntry) throws FinderException {
return ejbFindAllCasesByProviderAndNotInStatus(providerId, caseStatus, numberOfEntries, startingEntry, ORDER_BY_QUEUE_DATE);
}
public Collection ejbFindAllCasesByProviderAndNotInStatus(int providerId, String[] caseStatus, int numberOfEntries, int startingEntry, int orderBy) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
if ( orderBy == ORDER_BY_DATE_OF_BIRTH ) {
sql.append(", ic_user u");
sql.appendWhereEquals("c."+CHILD_ID, "u.ic_user_id");
sql.appendAndEquals("c."+getIDColumnName(), "p.proc_case_id");
} else {
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
}
sql.appendAndEquals("c."+PROVIDER_ID,providerId);
if (caseStatus != null)
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
String s = null;
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
s = "u.date_of_birth asc,";
} else {
s = "c." + QUEUE_DATE + ",";
}
sql.appendOrderBy("c." + APPLICATION_STATUS + " desc, " + s + " c." + QUEUE_ORDER);
return idoFindPKsBySQL(sql.toString(), numberOfEntries, startingEntry);
}
public Collection ejbFindAllCasesByProviderAndNotInStatus(int providerId, int sortBy, Date fromDate, Date toDate, String[] caseStatus, int numberOfEntries, int startingEntry) throws FinderException {
return ejbFindAllCasesByProviderAndNotInStatus(providerId, sortBy, fromDate, toDate, caseStatus, numberOfEntries, startingEntry, ORDER_BY_QUEUE_DATE);
}
public Collection ejbFindAllCasesByProviderAndNotInStatus(int providerId, int sortBy, Date fromDate, Date toDate, String[] caseStatus, int numberOfEntries, int startingEntry, int orderBy) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
if ( (sortBy == SORT_DATE_OF_BIRTH)||(orderBy == ORDER_BY_DATE_OF_BIRTH) )
sql.append(", ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerId);
if (caseStatus != null)
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
if ( (sortBy == SORT_DATE_OF_BIRTH)||(orderBy == ORDER_BY_DATE_OF_BIRTH) )
sql.appendAndEquals("c."+CHILD_ID, "u.ic_user_id");
if (sortBy == SORT_DATE_OF_BIRTH) {
sql.appendAnd().append("u.date_of_birth").appendGreaterThanOrEqualsSign().append(fromDate);
sql.appendAnd().append("u.date_of_birth").appendLessThanOrEqualsSign().append(toDate);
}
else if (sortBy == SORT_QUEUE_DATE) {
sql.appendAnd().append("c."+QUEUE_DATE).appendGreaterThanOrEqualsSign().append(fromDate);
sql.appendAnd().append("c."+QUEUE_DATE).appendLessThanOrEqualsSign().append(toDate);
}
else if (sortBy == SORT_PLACEMENT_DATE) {
sql.appendAnd().append("c."+FROM_DATE).appendGreaterThanOrEqualsSign().append(fromDate);
sql.appendAnd().append("c."+FROM_DATE).appendLessThanOrEqualsSign().append(toDate);
}
String s = null;
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
s = "u.date_of_birth asc,";
} else {
s = "c." + QUEUE_DATE + ",";
}
sql.appendOrderBy("c." + APPLICATION_STATUS + " desc, " + s + " c." + QUEUE_ORDER);
return idoFindPKsBySQL(sql.toString(), numberOfEntries, startingEntry);
}
public Collection ejbFindAllCasesByProviderStatus(int providerId, String caseStatus[]) throws FinderException {
return ejbFindAllCasesByProviderStatus(providerId, caseStatus, ORDER_BY_QUEUE_DATE);
}
public Collection ejbFindAllCasesByProviderStatus(int providerId, String caseStatus[], int orderBy) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
if(orderBy == ORDER_BY_DATE_OF_BIRTH)
sql.append(", ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
if(orderBy == ORDER_BY_DATE_OF_BIRTH)
sql.appendAndEquals("c."+CHILD_ID, "u.ic_user_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerId);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
String order;
if(orderBy == ORDER_BY_DATE_OF_BIRTH){
order = "u.date_of_birth";
} else {
order = "c. "+ QUEUE_DATE;
}
sql.appendOrderBy(order + ",c."+QUEUE_ORDER);
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindAllByAreaAndApplicationStatus(Object areaID, String applicationStatus[], String caseCode, Date queueDate, Date placementDate, boolean firstHandOnly) throws FinderException {
IDOQuery inQuery = idoQuery();
inQuery.appendSelect().append("ic_user_id").appendFrom().append("sch_class_member");
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p, sch_school s, ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,"s.sch_school_id");
sql.appendAndEquals("c."+CHILD_ID,"u.ic_user_id");
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
sql.appendAnd().append("c."+APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatus);
if (areaID != null) {
sql.appendAndEquals("s.sch_school_area_id", areaID);
}
sql.appendAnd().append(QUEUE_DATE).appendLessThanSign().append(queueDate);
sql.appendAnd().append(FROM_DATE).appendLessThanSign().append(placementDate);
if (firstHandOnly) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
sql.appendAnd().append(CHILD_ID).appendNotIn(inQuery);
sql.appendOrderBy("u.last_name, u.first_name, u.last_name, c."+APPLICATION_STATUS+", c."+QUEUE_DATE);
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindAllCasesByProviderStatusNotRejected(int providerId, String caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerId);
sql.appendAnd().appendEqualsQuoted("p.case_status",caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
sql.appendAnd().append(REJECTION_DATE).append(" is null");
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindAllCasesByUserAndStatus(User owner, String caseStatus) throws FinderException {
return super.ejbFindAllCasesByUserAndStatus(owner,caseStatus);
}
public Collection ejbFindAllCasesByStatus(String caseStatus) throws FinderException {
return super.ejbFindAllCasesByStatus(caseStatus);
}
public Collection ejbFindApplicationsByProviderAndStatus(int providerID, String caseStatus) throws FinderException {
String[] status = { caseStatus };
return ejbFindApplicationsByProviderAndStatus(providerID, status, -1, -1);
}
public Collection ejbFindApplicationsByProviderAndStatus(int providerID, String[] caseStatus) throws FinderException {
return ejbFindApplicationsByProviderAndStatus(providerID, caseStatus, -1, -1);
}
public Collection ejbFindApplicationsByProviderAndStatus(int providerID, String[] caseStatus, String caseCode) throws FinderException {
return ejbFindApplicationsByProviderAndStatus(providerID, caseStatus, caseCode, -1, -1);
}
public Collection ejbFindApplicationsByProviderAndStatus(int providerID, String caseStatus, int numberOfEntries, int startingEntry) throws FinderException {
String[] status = { caseStatus };
return ejbFindApplicationsByProviderAndStatus(providerID, status, numberOfEntries, startingEntry);
}
public Collection ejbFindApplicationsByProviderAndStatus(int providerID, String[] caseStatus, int numberOfEntries, int startingEntry) throws FinderException {
return ejbFindApplicationsByProviderAndStatus(providerID, caseStatus, null, numberOfEntries, startingEntry);
}
public Collection ejbFindApplicationsByProviderAndStatus(int providerID, String[] caseStatus, String caseCode, int numberOfEntries, int startingEntry) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p, ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, "u.ic_user_id");
sql.appendAndEquals("c."+PROVIDER_ID, providerID);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
if (caseCode != null)
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
sql.appendOrderBy("u.last_name, u.first_name, u.middle_name");
if (numberOfEntries == -1)
return idoFindPKsBySQL(sql.toString());
else
return idoFindPKsBySQL(sql.toString(), numberOfEntries, startingEntry);
}
public Collection ejbFindApplicationsByProviderAndStatus(Integer providerID, String[] applicationStatus, Date fromDateOfBirth, Date toDateOfBirth, Date fromDate, Date toDate) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, ic_user u");
sql.appendWhereEquals("c."+CHILD_ID, "u.ic_user_id");
if (providerID != null) {
sql.appendAndEquals("c."+PROVIDER_ID, providerID);
}
if (fromDateOfBirth != null) {
sql.appendAnd().append("u.date_of_birth").appendGreaterThanOrEqualsSign().append(fromDateOfBirth);
}
if (toDateOfBirth != null) {
sql.appendAnd().append("u.date_of_birth").appendLessThanOrEqualsSign().append(toDateOfBirth);
}
if (fromDate != null) {
sql.appendAnd().append("c."+REJECTION_DATE).appendGreaterThanOrEqualsSign().append(fromDate);
}
if (toDate != null) {
sql.appendAnd().append("c."+REJECTION_DATE).appendLessThanOrEqualsSign().append(toDate);
}
sql.appendAnd().append("c."+APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatus);
sql.appendOrderBy("u.last_name, u.first_name, u.middle_name");
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindApplicationsByProviderAndApplicationStatusAndTerminatedDate(int providerID, String[] applicationStatuses, Date terminatedDate) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p, ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, "u.ic_user_id");
sql.appendAndEquals("c."+PROVIDER_ID, providerID);
sql.appendAnd().append("c."+APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatuses);
sql.appendAnd().append("c."+REJECTION_DATE).appendLessThanOrEqualsSign().append(terminatedDate);
sql.appendOrderBy("u.last_name, u.first_name, u.middle_name");
return idoFindPKsBySQL(sql.toString());
}
public Collection ejbFindApplicationsByProviderAndApplicationStatus(int providerID, String[] applicationStatuses) throws FinderException {
return ejbFindApplicationsByProviderAndApplicationStatus(providerID, applicationStatuses, null);
}
public Collection ejbFindApplicationsByProviderAndApplicationStatus(int providerID, String[] applicationStatuses, String caseCode) throws FinderException {
return ejbFindApplicationsByProviderAndApplicationStatus(providerID, applicationStatuses, caseCode, -1, -1);
}
public Collection ejbFindApplicationsByProviderAndApplicationStatus(int providerID, String[] applicationStatuses, String caseCode, int numberOfEntries, int startingEntry) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p, ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, "u.ic_user_id");
sql.appendAndEquals("c."+PROVIDER_ID, providerID);
sql.appendAnd().append("c."+APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatuses);
if (caseCode != null)
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
sql.appendOrderBy("u.last_name, u.first_name, u.middle_name");
if (numberOfEntries == -1)
return idoFindPKsBySQL(sql.toString());
else
return idoFindPKsBySQL(sql.toString(), numberOfEntries, startingEntry);
}
public Integer ejbFindApplicationByChildAndApplicationStatus(int childID, String[] applicationStatuses) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, childID);
sql.appendAnd().append("c."+APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatuses);
return (Integer) idoFindOnePKByQuery(sql);
}
public Collection ejbFindApplicationsByChildAndApplicationStatus(int childID, String[] applicationStatuses) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this);
sql.appendWhereEquals(CHILD_ID, childID);
sql.appendAnd().append(APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatuses);
return idoFindPKsByQuery(sql);
}
public Collection ejbFindApplicationsWithoutPlacing() throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelect().append(" distinct c.* ").appendFrom().append(getEntityName()).append(" c, comm_childcare_archive a");
sql.appendWhereEquals("c."+getIDColumnName(), "a.application_id").appendAnd().append("c." + APPLICATION_STATUS).appendNOTEqual().appendWithinSingleQuotes("E");
sql.appendAnd().append("a.sch_class_member_id").appendIsNull();
return idoFindPKsByQuery(sql);
}
public Integer ejbFindApplicationByChildAndChoiceNumber(User child, int choiceNumber) throws FinderException {
return ejbFindApplicationByChildAndChoiceNumber(((Integer)child.getPrimaryKey()).intValue(), choiceNumber);
}
public Integer ejbFindApplicationByChildAndChoiceNumber(int childID, int choiceNumber) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(CHOICE_NUMBER, choiceNumber).appendAndEquals(CHILD_ID,childID);
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindApplicationByChildAndChoiceNumberWithStatus(int childID, int choiceNumber, String caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.append("select c.* from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, childID);
sql.appendAnd().appendEqualsQuoted("p.case_status", caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code", CASE_CODE_KEY);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindApplicationByChildAndChoiceNumberInStatus(int childID, int choiceNumber, String[] caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, childID);
//sql.appendAnd().appendEqualsQuoted("p.case_code", CASE_CODE_KEY);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindApplicationByChildAndChoiceNumberNotInStatus(int childID, int choiceNumber, String[] caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID, childID);
//sql.appendAnd().appendEqualsQuoted("p.case_code", CASE_CODE_KEY);
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
return (Integer) idoFindOnePKByQuery(sql);
}
public Collection ejbFindApplicationByChild(int childID) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(CHILD_ID,childID);
sql.appendOrderBy(CHOICE_NUMBER);
return super.idoFindPKsByQuery(sql);
}
public Integer ejbFindApplicationByChildAndProvider(int childID, int providerID) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(CHILD_ID,childID);
sql.appendAndEquals(PROVIDER_ID, providerID);
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindApplicationByChildAndProviderAndStatus(int childID, int providerID, String[] status) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(CHILD_ID,childID);
sql.appendAndEquals(PROVIDER_ID, providerID);
sql.appendAnd().append(APPLICATION_STATUS).appendInArrayWithSingleQuotes(status);
sql.appendOrderByDescending(FROM_DATE);
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindNewestApplication(int providerID, Date date) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAnd().append(QUEUE_DATE).appendLessThanSign().append(date);
sql.appendOrderBy(QUEUE_DATE+" desc, "+QUEUE_ORDER+" desc");
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindOldestApplication(int providerID, Date date) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAnd().append(QUEUE_DATE).appendGreaterThanSign().append(date);
sql.appendOrderBy(QUEUE_DATE+", "+QUEUE_ORDER);
return (Integer) idoFindOnePKByQuery(sql);
}
public Collection ejbFindApplicationByChildAndNotInStatus(int childID, String[] caseStatus) throws FinderException {
return ejbFindApplicationByChildAndNotInStatus(childID, caseStatus, null);
}
public Collection ejbFindApplicationByChildAndNotInStatus(int childID, String[] caseStatus, String caseCode) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
sql.appendOrderBy(CHOICE_NUMBER);
return super.idoFindPKsByQuery(sql);
}
public Collection ejbFindApplicationByChildAndInStatus(int childID, String[] caseStatus, String caseCode) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendOrderBy(CHOICE_NUMBER);
return super.idoFindPKsByQuery(sql);
}
public Integer ejbFindActiveApplicationByChild(int childID) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
sql.appendAnd().appendEqualsQuoted("p.case_status", "KLAR");
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindActiveApplicationByChildAndStatus(int childID, String[] caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendOrderBy(CHOICE_NUMBER);
return (Integer) idoFindOnePKByQuery(sql);
}
public Integer ejbFindActiveApplicationByChildAndStatusAndCaseCode(int childID, String[] caseStatus, String caseCode) throws FinderException {
String[] caseCodes = {caseCode};
return ejbFindActiveApplicationByChildAndStatusAndCaseCodes(childID, caseStatus, caseCodes);
}
public Integer ejbFindActiveApplicationByChildAndStatusAndCaseCodes(int childID, String[] caseStatus, String[] caseCodes) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().append("p.case_code").appendInArrayWithSingleQuotes(caseCodes);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendOrderBy(CHOICE_NUMBER);
return (Integer) idoFindOnePKByQuery(sql);
}
public int ejbHomeGetNumberOfActiveApplications(int childID) throws IDOException {
return ejbHomeGetNumberOfActiveApplications(childID, null);
}
public int ejbHomeGetNumberOfActiveApplications(int childID, String caseCode) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
sql.appendAnd().appendEqualsQuoted("p.case_status", "KLAR");
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsByStatusAndActiveDate(int childID, String[] caseStatus, String caseCode, Date activeDate) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
sql.appendAnd().appendLeftParenthesis().append("c."+REJECTION_DATE).appendGreaterThanOrEqualsSign().append(activeDate);
sql.appendOr().append("c."+REJECTION_DATE).appendIsNull().appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public Collection ejbFindApplicationsByProviderAndDate(int providerID, Date date) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).appendWhereEquals(PROVIDER_ID,providerID);
sql.appendAndEquals(QUEUE_DATE, date);
sql.appendOrderBy(QUEUE_ORDER);
return super.idoFindPKsByQuery(sql);
}
public Collection ejbFindApplicationsBeforeLastReplyDate(Date date, String[] caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendAnd().append("c."+LAST_REPLY_DATE).appendLessThanSign().append(date);
return idoFindPKsByQuery(sql);
}
public Collection ejbFindApplicationsByProviderAndBeforeDate(int providerID, Date date, String[] caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
if (providerID != -1) {
sql.appendAndEquals("c."+PROVIDER_ID,providerID);
}
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendAnd().append("c."+QUEUE_DATE).appendLessThanSign().append(date);
return idoFindPKsByQuery(sql);
}
public int ejbHomeGetNumberOfApplications(int providerID, String caseStatus) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerID);
sql.appendAnd().appendEqualsQuoted("p.case_status",caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplications(int providerID, String[] caseStatus) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerID);
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsByStatus(int providerID, String[] caseStatus) throws IDOException {
Table table = new Table(this,"c");
Table caseTable = new Table(Case.class,"p");
SelectQuery query = new SelectQuery(table);
query.addColumn(table,CHILD_ID);
query.setAsCountQuery(true);
query.addJoin(table,getIDColumnName(),caseTable,"proc_case_id");
query.addCriteria(new MatchCriteria(table,PROVIDER_ID,MatchCriteria.EQUALS,providerID));
query.addCriteria(new InCriteria(caseTable,"case_status",caseStatus));
return idoGetNumberOfRecords(query);
}
public int ejbHomeGetNumberOfApplicationsForChild(int childID) throws IDOException {
IDOQuery sql = idoQuery();
sql.appendSelectCountFrom(this).appendWhereEquals(CHILD_ID, childID);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsForChild(int childID, String caseStatus, String caseCode) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().appendEqualsQuoted("p.case_status",caseStatus);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsForChildNotInStatus(int childID, String[] caseStatus) throws IDOException {
return ejbHomeGetNumberOfApplicationsForChildNotInStatus(childID, caseStatus, null);
}
public int ejbHomeGetNumberOfApplicationsForChildNotInStatus(int childID, String[] caseStatus, String caseCode) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsForChildInStatus(int childID, String[] caseStatus, String caseCode) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
if (caseCode != null) {
sql.appendAnd().appendEqualsQuoted("p.case_code",caseCode);
}
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsForChildInStatusNotWithProvider(int childID, int providerID, Date date, String[] caseStatus) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendAnd().append("c." + PROVIDER_ID).appendNOTEqual().append(providerID);
sql.appendAnd().append("c." + FROM_DATE).appendGreaterThanSign().append(date);
return idoGetNumberOfRecords(sql);
}
public Integer ejbFindFutureApplicationForChildInStatusNotWithProvider(int childID, int providerID, Date date, String[] caseStatus) throws FinderException {
IDOQuery sql = idoQuery();
sql.append("select * from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+CHILD_ID,childID);
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(caseStatus);
sql.appendAnd().append("c." + PROVIDER_ID).appendNOTEqual().append(providerID);
sql.appendAnd().append("c." + FROM_DATE).appendGreaterThanSign().append(date);
sql.appendOrderBy(FROM_DATE);
return (Integer) idoFindOnePKByQuery(sql);
}
public int ejbHomeGetNumberOfPlacedApplications(int childID, int providerID, String[] caseStatus) throws IDOException {
//SelectQuery query = idoSelectQueryGetAllCasesByStatusArray(caseStatus);
Table table = new Table(this,"c");
Table caseTable = new Table(Case.class,"p");
SelectQuery query = new SelectQuery(table);
query.addColumn(table,CHILD_ID);
query.setAsCountQuery(true);
query.addJoin(table,getIDColumnName(),caseTable,"proc_case_id");
query.addCriteria(new MatchCriteria(table,PROVIDER_ID,MatchCriteria.NOTEQUALS,providerID));
query.addCriteria(new MatchCriteria(table,CHILD_ID,MatchCriteria.EQUALS,childID));
query.addCriteria(new InCriteria(caseTable,"case_status",caseStatus));
return idoGetNumberOfRecords(query);
}
public int ejbHomeGetNumberOfApplications(int providerID, String[] caseStatus, int sortBy, Date fromDate, Date toDate) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
if (sortBy == SORT_DATE_OF_BIRTH)
sql.append(", ic_user u");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerID);
if (caseStatus != null)
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
if (sortBy == SORT_DATE_OF_BIRTH) {
sql.appendAndEquals("c."+CHILD_ID, "u.ic_user_id");
sql.appendAnd().append("u.date_of_birth").appendGreaterThanOrEqualsSign().append(fromDate);
sql.appendAnd().append("u.date_of_birth").appendLessThanOrEqualsSign().append(toDate);
}
else if (sortBy == SORT_QUEUE_DATE) {
sql.appendAnd().append("c."+QUEUE_DATE).appendGreaterThanOrEqualsSign().append(fromDate);
sql.appendAnd().append("c."+QUEUE_DATE).appendLessThanOrEqualsSign().append(toDate);
}
else if (sortBy == SORT_PLACEMENT_DATE) {
sql.appendAnd().append("c."+FROM_DATE).appendGreaterThanOrEqualsSign().append(fromDate);
sql.appendAnd().append("c."+FROM_DATE).appendLessThanOrEqualsSign().append(toDate);
}
//sql.appendAnd().appendEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetPositionInQueue(Date queueDate, int providerID, String[] caseStatus) throws IDOException {
return ejbHomeGetPositionInQueue(queueDate, providerID, caseStatus, ORDER_BY_QUEUE_DATE);
}
public int ejbHomeGetPositionInQueue(Date queueDate, int providerID, String[] caseStatus, int orderBy) throws IDOException {
Table table = new Table(this);
Table caseTable = new Table(Case.class);
Table userTable = null;
SelectQuery query = new SelectQuery(table);
query.addColumn(table,CHILD_ID);
query.setAsCountQuery(true);
query.addJoin(table,getIDColumnName(),caseTable,"proc_case_id");
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
userTable = new Table(User.class);
query.addJoin(table, CHILD_ID, userTable, User.FIELD_USER_ID);
}
query.addCriteria(new MatchCriteria(table,PROVIDER_ID,MatchCriteria.EQUALS, providerID));
query.addCriteria(new InCriteria(caseTable,"case_status",caseStatus,true));
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
if(queueDate != null) { // there are children without birth date
query.addCriteria(new MatchCriteria(userTable, User.FIELD_DATE_OF_BIRTH, MatchCriteria.LESS, queueDate));
}
} else {
query.addCriteria(new MatchCriteria(table,QUEUE_DATE,MatchCriteria.LESS,queueDate));
}
return idoGetNumberOfRecords(query);
}
public int ejbHomeGetPositionInQueue(Date queueDate, int providerID, String applicationStatus) throws IDOException {
return ejbHomeGetPositionInQueue(queueDate, providerID, applicationStatus, ORDER_BY_QUEUE_DATE);
}
public int ejbHomeGetPositionInQueue(Date queueDate, int providerID, String applicationStatus, int orderBy) throws IDOException {
Table table = new Table(this);
Table userTable = null;
SelectQuery query = new SelectQuery(table);
query.addColumn(table,CHILD_ID);
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
userTable = new Table(User.class);
query.addJoin(table, CHILD_ID, userTable, User.FIELD_USER_ID);
}
query.addCriteria(new MatchCriteria(table,PROVIDER_ID,MatchCriteria.EQUALS,providerID));
query.addCriteria(new MatchCriteria(table,APPLICATION_STATUS,MatchCriteria.EQUALS,applicationStatus,true));
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
if(queueDate != null) { // there are children without birth date
query.addCriteria(new MatchCriteria(userTable, User.FIELD_DATE_OF_BIRTH, MatchCriteria.LESS, queueDate));
}
} else {
query.addCriteria(new MatchCriteria(table,QUEUE_DATE,MatchCriteria.LESS,queueDate));
}
query.setAsCountQuery(true);
return idoGetNumberOfRecords(query);
}
public int ejbHomeGetPositionInQueueByDate(int queueOrder, Date queueDate, int providerID, String[] caseStatus) throws IDOException {
return ejbHomeGetPositionInQueueByDate(queueOrder, queueDate, providerID, caseStatus, ORDER_BY_QUEUE_DATE);
}
public int ejbHomeGetPositionInQueueByDate(int queueOrder, Date queueDate, int providerID, String[] caseStatus, int orderBy) throws IDOException {
Table table = new Table(this,"c");
Table caseTable = new Table(Case.class,"p");
Table userTable = null;
SelectQuery query = new SelectQuery(table);
query.addColumn(table,CHILD_ID);
query.addJoin(table,getIDColumnName(),caseTable,"proc_case_id");
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
userTable = new Table(User.class, "u");
query.addJoin(table, CHILD_ID, userTable, User.FIELD_USER_ID);
}
query.addCriteria(new MatchCriteria(table,PROVIDER_ID,MatchCriteria.EQUALS,providerID));
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
if(queueDate != null) { // there are children without birth date
query.addCriteria(new MatchCriteria(userTable, User.FIELD_DATE_OF_BIRTH, MatchCriteria.EQUALS, queueDate));
}
} else {
query.addCriteria(new MatchCriteria(table,QUEUE_DATE,MatchCriteria.EQUALS,queueDate));
}
query.addCriteria(new MatchCriteria(table,QUEUE_ORDER,MatchCriteria.LESSEQUAL,queueOrder));
// not in statuses, strange but seems to do it ( aron )
query.addCriteria(new InCriteria(caseTable, "case_status",caseStatus,true));
query.setAsCountQuery(true);
return idoGetNumberOfRecords(query);
}
public int ejbHomeGetPositionInQueueByDate(int queueOrder, Date queueDate, int providerID, String applicationStatus) throws IDOException {
return ejbHomeGetPositionInQueueByDate(queueOrder, queueDate, providerID, applicationStatus, ORDER_BY_QUEUE_DATE);
}
public int ejbHomeGetPositionInQueueByDate(int queueOrder, Date queueDate, int providerID, String applicationStatus, int orderBy) throws IDOException {
Table table = new Table(this,"c");
Table userTable = null;
SelectQuery query = new SelectQuery(table);
query.addColumn(table,CHILD_ID);
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
userTable = new Table(User.class, "u");
query.addJoin(table, CHILD_ID, userTable, User.FIELD_USER_ID);
}
query.addCriteria(new MatchCriteria(table,PROVIDER_ID,MatchCriteria.EQUALS,providerID));
query.addCriteria(new MatchCriteria(table,APPLICATION_STATUS,MatchCriteria.EQUALS,applicationStatus,true));
if (orderBy == ORDER_BY_DATE_OF_BIRTH) {
if(queueDate != null) { // there are children without birth date
query.addCriteria(new MatchCriteria(userTable, User.FIELD_DATE_OF_BIRTH, MatchCriteria.EQUALS, queueDate));
}
//query.addCriteria(new MatchCriteria(table,QUEUE_ORDER,MatchCriteria.LESS,queueOrder));
} else {
query.addCriteria(new MatchCriteria(table,QUEUE_DATE,MatchCriteria.EQUALS,queueDate));
//query.addCriteria(new MatchCriteria(table,QUEUE_ORDER,MatchCriteria.LESSEQUAL,queueOrder));
}
query.addCriteria(new MatchCriteria(table,QUEUE_ORDER,MatchCriteria.LESSEQUAL,queueOrder));
query.setAsCountQuery(true);
return idoGetNumberOfRecords(query);
}
public int ejbHomeGetQueueSizeNotInStatus(int providerID, String caseStatus[]) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerID);
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
//sql.appendAndEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetQueueSizeInStatus(int providerID, String applicationStatus[], Date from, Date to, boolean isOnlyFirstHand) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(" + CHILD_ID + ") from ").append(ENTITY_NAME);
sql.appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAnd().append(APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatus);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
if (isOnlyFirstHand) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetBruttoQueueSizeInStatus(int providerID, String applicationStatus[], Date from, Date to, boolean isOnlyFirstHand) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(" + CHILD_ID + ") from ").append(ENTITY_NAME);
sql.appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAnd().append(APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatus);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
if (isOnlyFirstHand) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
Date today = new Date(System.currentTimeMillis());
sql.appendAnd().append(CHILD_ID + " in ")
.appendLeftParenthesis()
.appendSelect().append("c.child_id").appendFrom()
.append("comm_childcare_archive a,")
.append("comm_childcare c")
.appendWhereEquals("a.application_id", "c.comm_childcare_id")
.appendAndEqualsQuoted("c.application_status", "F")
.appendAnd().appendLeftParenthesis().append("a.terminated_date is null").appendOr()
.append("a.terminated_date").appendGreaterThanOrEqualsSign().appendWithinSingleQuotes(today).appendRightParenthesis()
.appendAnd().append("a.valid_from_date").appendLessThanSign().appendWithinSingleQuotes(today)
.appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNettoQueueSizeInStatus(int providerID, String applicationStatus[], Date from, Date to, boolean isOnlyFirstHand) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(" + CHILD_ID + ") from ").append(ENTITY_NAME);
sql.appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAnd().append(APPLICATION_STATUS).appendInArrayWithSingleQuotes(applicationStatus);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
if (isOnlyFirstHand) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
Date today = new Date(System.currentTimeMillis());
sql.appendAnd().append(CHILD_ID + " not in ")
.appendLeftParenthesis()
.appendSelect().append("c.child_id").appendFrom()
.append("comm_childcare_archive a,")
.append("comm_childcare c")
.appendWhereEquals("a.application_id", "c.comm_childcare_id")
.appendAndEqualsQuoted("c.application_status", "F")
.appendAnd().appendLeftParenthesis().append("a.terminated_date is null").appendOr()
.append("a.terminated_date").appendGreaterThanOrEqualsSign().appendWithinSingleQuotes(today).appendRightParenthesis()
.appendAnd().append("a.valid_from_date").appendLessThanSign().appendWithinSingleQuotes(today)
.appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetQueueSizeInStatus(int providerID, String caseStatus) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,providerID);
sql.appendAndEqualsQuoted("p.case_status",caseStatus);
//sql.appendAndEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetQueueSizeInStatus(int providerID, String applicationStatus, Date from, Date to, boolean isOnlyFirstHand) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(" + CHILD_ID + ") from ").append(ENTITY_NAME);
sql.appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEqualsQuoted(APPLICATION_STATUS, applicationStatus);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
if (isOnlyFirstHand) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetBruttoQueueSizeInStatus(int providerID, String applicationStatus, Date from, Date to, boolean isOnlyFirstHand) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(" + CHILD_ID + ") from ").append(ENTITY_NAME);
sql.appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEqualsQuoted(APPLICATION_STATUS, applicationStatus);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
if (isOnlyFirstHand) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
Date today = new Date(System.currentTimeMillis());
sql.appendAnd().append(CHILD_ID + " in ")
.appendLeftParenthesis()
.appendSelect().append("c.child_id").appendFrom()
.append("comm_childcare_archive a,")
.append("comm_childcare c")
.appendWhereEquals("a.application_id", "c.comm_childcare_id")
.appendAndEqualsQuoted("c.application_status", "F")
.appendAnd().appendLeftParenthesis().append("a.terminated_date is null").appendOr()
.append("a.terminated_date").appendGreaterThanOrEqualsSign().appendWithinSingleQuotes(today).appendRightParenthesis()
.appendAnd().append("a.valid_from_date").appendLessThanSign().appendWithinSingleQuotes(today)
.appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNettoQueueSizeInStatus(int providerID, String applicationStatus, Date from, Date to, boolean isOnlyFirstHand) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(" + CHILD_ID + ") from ").append(ENTITY_NAME);
sql.appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEqualsQuoted(APPLICATION_STATUS, applicationStatus);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
if (isOnlyFirstHand) {
sql.appendAndEquals(CHOICE_NUMBER, 1);
}
Date today = new Date(System.currentTimeMillis());
sql.appendAnd().append(CHILD_ID + " not in ")
.appendLeftParenthesis()
.appendSelect().append("c.child_id").appendFrom()
.append("comm_childcare_archive a,")
.append("comm_childcare c")
.appendWhereEquals("a.application_id", "c.comm_childcare_id")
.appendAndEqualsQuoted("c.application_status", "F")
.appendAnd().appendLeftParenthesis().append("a.terminated_date is null").appendOr()
.append("a.terminated_date").appendGreaterThanOrEqualsSign().appendWithinSingleQuotes(today).appendRightParenthesis()
.appendAnd().append("a.valid_from_date").appendLessThanSign().appendWithinSingleQuotes(today)
.appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetQueueSizeByAreaNotInStatus(int areaID, String caseStatus[]) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p, sch_school s");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("s.sch_school_id","c."+PROVIDER_ID);
sql.appendAndEquals("s.sch_school_area_id",areaID);
sql.appendAnd().append("p.case_status").appendNotInArrayWithSingleQuotes(caseStatus);
//sql.appendAndEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetQueueSizeByAreaInStatus(int areaID, String caseStatus) throws IDOException {
IDOQuery sql = idoQuery();
sql.append("select count(c."+CHILD_ID+") from ").append(ENTITY_NAME).append(" c , proc_case p, sch_school s");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("s.sch_school_id","c."+PROVIDER_ID);
sql.appendAndEquals("s.sch_school_area_id",areaID);
sql.appendAndEqualsQuoted("p.case_status",caseStatus);
//sql.appendAndEqualsQuoted("p.case_code",CASE_CODE_KEY);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNumberOfApplicationsByProviderAndChoiceNumber(int providerID, int choiceNumber) throws IDOException {
IDOQuery sql = idoQuery();
sql.appendSelectCountFrom(this).appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetQueueByProviderAndChoiceNumber(int providerID, int choiceNumber, String status, Date from, Date to) throws IDOException {
IDOQuery sql = idoQuery();
sql.appendSelectCountFrom(this).appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
sql.appendAndEqualsQuoted(APPLICATION_STATUS, status);
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetNettoQueueByProviderAndChoiceNumber(int providerID, int choiceNumber, String status, Date from, Date to) throws IDOException {
IDOQuery sql = idoQuery();
sql.appendSelectCountFrom(this).appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
Date today = new Date(System.currentTimeMillis());
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
sql.appendAndEqualsQuoted(APPLICATION_STATUS, status)
.appendAnd().append(CHILD_ID + " not in ")
.appendLeftParenthesis()
.appendSelect().append("c.child_id").appendFrom()
.append("comm_childcare_archive a,")
.append("comm_childcare c")
.appendWhereEquals("a.application_id", "c.comm_childcare_id")
.appendAndEqualsQuoted("c.application_status", "F")
.appendAnd().appendLeftParenthesis().append("a.terminated_date is null").appendOr()
.append("a.terminated_date").appendGreaterThanOrEqualsSign().appendWithinSingleQuotes(today).appendRightParenthesis()
.appendAnd().append("a.valid_from_date").appendLessThanSign().appendWithinSingleQuotes(today)
.appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public int ejbHomeGetBruttoQueueByProviderAndChoiceNumber(int providerID, int choiceNumber, String status, Date from, Date to) throws IDOException {
IDOQuery sql = idoQuery();
sql.appendSelectCountFrom(this).appendWhereEquals(PROVIDER_ID, providerID);
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
if (from == null) {
from = new Date(0L);
}
if (to == null) {
to = Date.valueOf("2999-01-01");
}
Date today = new Date(System.currentTimeMillis());
sql.appendAnd().appendBetweenDates(FROM_DATE, from, to);
sql.appendAndEqualsQuoted(APPLICATION_STATUS, status)
.appendAnd().append(CHILD_ID + "in ")
.appendLeftParenthesis()
.appendSelect().append("c.child_id").appendFrom()
.append("comm_childcare_archive a,")
.append("comm_childcare c")
.appendWhereEquals("a.application_id", "c.comm_childcare_id")
.appendAndEqualsQuoted("c.application_status", "F")
.appendAnd().appendLeftParenthesis().append("a.terminated_date is null").appendOr()
.append("a.terminated_date").appendGreaterThanOrEqualsSign().appendWithinSingleQuotes(today).appendRightParenthesis()
.appendAnd().append("a.valid_from_date").appendLessThanSign().appendWithinSingleQuotes(today)
.appendRightParenthesis();
return idoGetNumberOfRecords(sql);
}
public boolean isAcceptedByParent() {
return getStatus().equals("PREL") && //CaseBMPBean.CASE_STATUS_PRELIMINARY_KEY (make public...?)
getApplicationStatus() == 'D'; //ChildCareBusinessBean.STATUS_PARENTS_ACCEPT (make public...?)
}
public boolean isCancelledOrRejectedByParent() {
return getStatus().equals("TYST") //CaseBMPBean.CASE_STATUS_INACTIVE_KEY (make public...?)
&& (getApplicationStatus() == 'Z' //ChildCareBusinessBean.STATUS_CANCELLED (make public...?)
|| getApplicationStatus() == 'V'); //ChildCareBusinessBean.STATUS_REJECTED (make public...?)
}
public boolean isActive(){
Contract contract = getContract();
java.util.Date today = new java.util.Date();
if (contract != null) {
if (contract.getValidTo() != null) {
// if (contract.getValidFrom().compareTo(today) <= 0 && contract.getValidTo().compareTo(today) >= 0 && contract.isSigned()) {
if (contract.getValidFrom().compareTo(today) <= 0 && contract.getValidTo().compareTo(today) >= 0) {
return true;
}
} else {
// if (contract.getValidFrom().compareTo(today) <= 0 && contract.isSigned()) {
if (contract.getValidFrom().compareTo(today) <= 0) {
return true;
}
}
}
return false;
}
public Collection ejbFindApplicationsInSchoolAreaByStatus(int schoolAreaID, String[] statuses, int choiceNumber) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this).append(" c, proc_case p, sch_school s");
sql.appendWhereEquals("c."+getIDColumnName(), "p.proc_case_id");
sql.appendAndEquals("c."+PROVIDER_ID,"s.sch_school_id");
sql.appendAndEquals("s.sch_school_area_id", schoolAreaID);
if (choiceNumber != -1) {
sql.appendAndEquals(CHOICE_NUMBER, choiceNumber);
}
sql.appendAnd().append("p.case_status").appendInArrayWithSingleQuotes(statuses);
sql.appendOrderBy("c."+APPLICATION_STATUS+" desc, c."+QUEUE_DATE+", c."+QUEUE_ORDER);
return idoFindPKsByQuery(sql);
}
}