Commit e71941a8 by chenith Committed by Harsh Shah

Added field to JobApplication to keep completed date. Conditional application…

Added field to JobApplication to keep completed date. Conditional application process and modification in C004.
parent 429564d6
......@@ -10,6 +10,7 @@
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="cv" type="BLOB" nullable="true"/>
<column name="application_status" type="String" nullable="true" length="200"/>
<column name="submitted_date" type="Date" nullable="true"/>
<column name="candidate_id" type="Long" length="11" nullable="false"/>
<column name="job_id" type="Long" length="11" nullable="false"/>
</NODE>
......
......@@ -10,6 +10,7 @@ CREATE TABLE tl_job_application (
,
cv image NULL,
application_status varchar(200) NULL,
submitted_date datetime NULL,
candidate_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL
);
......
......@@ -11,6 +11,7 @@ CREATE TABLE tl_job_application (
,
cv blob NULL,
application_status varchar2(200) NULL,
submitted_date date NULL,
candidate_id number(12) NOT NULL,
job_id number(12) NOT NULL
);
......
......@@ -11,6 +11,7 @@ CREATE TABLE tl_job_application (
,
cv bytea NULL,
application_status varchar(200) NULL,
submitted_date timestamp NULL,
candidate_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL
);
......
package performa.form;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.logging.*;
......@@ -21,7 +22,8 @@ public class CompleteApplicationFP extends SaveFP
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED);
jobApplication.setSubmittedDate(new Date());
AnalysisEngine.analyseAnswers(jobApplication);
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING2, "Job Application Completed", jobApplication);
......
......@@ -42,6 +42,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public static final String FIELD_CV = "CV";
public static final String FIELD_ApplicationStatus = "ApplicationStatus";
public static final String FIELD_SubmittedDate = "SubmittedDate";
public static final String FIELD_IsSelected = "IsSelected";
public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = "";
......@@ -62,12 +63,14 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Static constants corresponding to attribute helpers
private static final BLOBAttributeHelper HELPER_CV = BLOBAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<JobApplication, ApplicationStatus> HELPER_ApplicationStatus = new EnumeratedAttributeHelper<JobApplication, ApplicationStatus> (ApplicationStatus.FACTORY_ApplicationStatus);
private static final DefaultAttributeHelper<JobApplication> HELPER_SubmittedDate = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<JobApplication> HELPER_IsSelected = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
private BinaryContent _CV;
private ApplicationStatus _ApplicationStatus;
private Date _SubmittedDate;
private Boolean _IsSelected;
......@@ -89,6 +92,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private static final AttributeValidator[] FIELD_IsSelected_Validators;
private static final AttributeValidator[] FIELD_CV_Validators;
private static final AttributeValidator[] FIELD_ApplicationStatus_Validators;
private static final AttributeValidator[] FIELD_SubmittedDate_Validators;
// Arrays of behaviour decorators
......@@ -115,6 +119,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
FIELD_IsSelected_Validators = (AttributeValidator[])setupAttribMetaData_IsSelected(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CV_Validators = (AttributeValidator[])setupAttribMetaData_CV(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_ApplicationStatus_Validators = (AttributeValidator[])setupAttribMetaData_ApplicationStatus(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_SubmittedDate_Validators = (AttributeValidator[])setupAttribMetaData_SubmittedDate(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_JobApplication.initialiseReference ();
......@@ -263,6 +268,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_SubmittedDate(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "submitted_date");
metaInfo.put ("name", "SubmittedDate");
metaInfo.put ("type", "Date");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.SubmittedDate:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_SubmittedDate, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "SubmittedDate", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.SubmittedDate:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION
......@@ -292,6 +315,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_CV = (BinaryContent)(HELPER_CV.initialise (_CV));
_ApplicationStatus = (ApplicationStatus)(ApplicationStatus.DRAFT);
_SubmittedDate = (Date)(HELPER_SubmittedDate.initialise (_SubmittedDate));
_IsSelected = (Boolean)(Boolean.FALSE);
}
......@@ -524,6 +548,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
/**
* Get the attribute SubmittedDate
*/
public Date getSubmittedDate ()
{
assertValid();
Date valToReturn = _SubmittedDate;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getSubmittedDate ((JobApplication)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preSubmittedDateChange (Date newSubmittedDate) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postSubmittedDateChange () throws FieldException
{
}
public FieldWriteability getWriteability_SubmittedDate ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute SubmittedDate. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setSubmittedDate (Date newSubmittedDate) throws FieldException
{
boolean oldAndNewIdentical = HELPER_SubmittedDate.compare (_SubmittedDate, newSubmittedDate);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newSubmittedDate = bhd.setSubmittedDate ((JobApplication)this, newSubmittedDate);
oldAndNewIdentical = HELPER_SubmittedDate.compare (_SubmittedDate, newSubmittedDate);
}
if (FIELD_SubmittedDate_Validators.length > 0)
{
Object newSubmittedDateObj = HELPER_SubmittedDate.toObject (newSubmittedDate);
if (newSubmittedDateObj != null)
{
int loopMax = FIELD_SubmittedDate_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_SubmittedDate);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_SubmittedDate_Validators[v].checkAttribute (this, FIELD_SubmittedDate, metadata, newSubmittedDateObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_SubmittedDate () != FieldWriteability.FALSE, "Field SubmittedDate is not writeable");
preSubmittedDateChange (newSubmittedDate);
markFieldChange (FIELD_SubmittedDate);
_SubmittedDate = newSubmittedDate;
postFieldChange (FIELD_SubmittedDate);
postSubmittedDateChange ();
}
}
/**
* Get the attribute IsSelected
*/
public Boolean getIsSelected ()
......@@ -1531,6 +1653,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
tl_job_applicationPSet.setAttrib (FIELD_ObjectID, myID);
tl_job_applicationPSet.setAttrib (FIELD_CV, HELPER_CV.toObject (_CV)); //
tl_job_applicationPSet.setAttrib (FIELD_ApplicationStatus, HELPER_ApplicationStatus.toObject (_ApplicationStatus)); //
tl_job_applicationPSet.setAttrib (FIELD_SubmittedDate, HELPER_SubmittedDate.toObject (_SubmittedDate)); //
_Candidate.getPersistentSets (allSets);
_Job.getPersistentSets (allSets);
......@@ -1549,6 +1672,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_CV = (BinaryContent)(HELPER_CV.fromObject (_CV, tl_job_applicationPSet.getAttrib (FIELD_CV))); //
_ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.fromObject (_ApplicationStatus, tl_job_applicationPSet.getAttrib (FIELD_ApplicationStatus))); //
_SubmittedDate = (Date)(HELPER_SubmittedDate.fromObject (_SubmittedDate, tl_job_applicationPSet.getAttrib (FIELD_SubmittedDate))); //
_Candidate.setFromPersistentSets (objectID, allSets);
_Job.setFromPersistentSets (objectID, allSets);
......@@ -1584,6 +1708,15 @@ public abstract class BaseJobApplication extends BaseBusinessClass
e.addException (ex);
}
try
{
setSubmittedDate (otherJobApplication.getSubmittedDate ());
}
catch (FieldException ex)
{
e.addException (ex);
}
}
}
......@@ -1601,6 +1734,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_CV = sourceJobApplication._CV;
_ApplicationStatus = sourceJobApplication._ApplicationStatus;
_SubmittedDate = sourceJobApplication._SubmittedDate;
_IsSelected = sourceJobApplication._IsSelected;
}
......@@ -1665,6 +1799,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_CV = (BinaryContent)(HELPER_CV.readExternal (_CV, vals.get(FIELD_CV))); //
_ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.readExternal (_ApplicationStatus, vals.get(FIELD_ApplicationStatus))); //
_SubmittedDate = (Date)(HELPER_SubmittedDate.readExternal (_SubmittedDate, vals.get(FIELD_SubmittedDate))); //
_IsSelected = (Boolean)(HELPER_IsSelected.readExternal (_IsSelected, vals.get(FIELD_IsSelected))); //
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
......@@ -1684,6 +1819,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
vals.put (FIELD_CV, HELPER_CV.writeExternal (_CV));
vals.put (FIELD_ApplicationStatus, HELPER_ApplicationStatus.writeExternal (_ApplicationStatus));
vals.put (FIELD_SubmittedDate, HELPER_SubmittedDate.writeExternal (_SubmittedDate));
vals.put (FIELD_IsSelected, HELPER_IsSelected.writeExternal (_IsSelected));
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
......@@ -1711,6 +1847,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
listener.notifyFieldChange(this, other, FIELD_ApplicationStatus, HELPER_ApplicationStatus.toObject(this._ApplicationStatus), HELPER_ApplicationStatus.toObject(otherJobApplication._ApplicationStatus));
}
if (!HELPER_SubmittedDate.compare(this._SubmittedDate, otherJobApplication._SubmittedDate))
{
listener.notifyFieldChange(this, other, FIELD_SubmittedDate, HELPER_SubmittedDate.toObject(this._SubmittedDate), HELPER_SubmittedDate.toObject(otherJobApplication._SubmittedDate));
}
// Compare single assocs
_Candidate.compare (otherJobApplication._Candidate, listener);
......@@ -1741,6 +1881,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
visitor.visitField(this, FIELD_CV, HELPER_CV.toObject(getCV()));
visitor.visitField(this, FIELD_ApplicationStatus, HELPER_ApplicationStatus.toObject(getApplicationStatus()));
visitor.visitField(this, FIELD_SubmittedDate, HELPER_SubmittedDate.toObject(getSubmittedDate()));
visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Job);
visitor.visitAssociation (_AssessmentCriteriaAnswers);
......@@ -1807,6 +1948,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return filter.matches (getApplicationStatus ());
}
else if (attribName.equals (FIELD_SubmittedDate))
{
return filter.matches (getSubmittedDate ());
}
else if (attribName.equals (SINGLEREFERENCE_Candidate))
{
return filter.matches (getCandidate ());
......@@ -1858,6 +2003,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this;
}
public SearchAll andSubmittedDate (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job_application.submitted_date", "SubmittedDate");
return this;
}
public SearchAll andCandidate (QueryFilter<Candidate> filter)
{
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
......@@ -1945,6 +2096,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this;
}
public SearchCandidateJob andSubmittedDate (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job_application.submitted_date", "SubmittedDate");
return this;
}
public SearchCandidateJob andCandidate (QueryFilter<Candidate> filter)
{
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
......@@ -2000,6 +2157,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_ApplicationStatus.toObject (getApplicationStatus ());
}
else if (attribName.equals (FIELD_SubmittedDate))
{
return HELPER_SubmittedDate.toObject (getSubmittedDate ());
}
else if (attribName.equals (FIELD_IsSelected))
{
return HELPER_IsSelected.toObject (getIsSelected ());
......@@ -2025,6 +2186,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_ApplicationStatus;
}
else if (attribName.equals (FIELD_SubmittedDate))
{
return HELPER_SubmittedDate;
}
else if (attribName.equals (FIELD_IsSelected))
{
return HELPER_IsSelected;
......@@ -2050,6 +2215,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
setApplicationStatus ((ApplicationStatus)(HELPER_ApplicationStatus.fromObject (_ApplicationStatus, attribValue)));
}
else if (attribName.equals (FIELD_SubmittedDate))
{
setSubmittedDate ((Date)(HELPER_SubmittedDate.fromObject (_SubmittedDate, attribValue)));
}
else if (attribName.equals (FIELD_IsSelected))
{
setIsSelected ((Boolean)(HELPER_IsSelected.fromObject (_IsSelected, attribValue)));
......@@ -2082,6 +2251,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return getWriteability_ApplicationStatus ();
}
else if (fieldName.equals (FIELD_SubmittedDate))
{
return getWriteability_SubmittedDate ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_AssessmentCriteriaAnswers))
{
return getWriteability_AssessmentCriteriaAnswers ();
......@@ -2126,6 +2299,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_ApplicationStatus);
}
if (getWriteability_SubmittedDate () != FieldWriteability.TRUE)
{
fields.add (FIELD_SubmittedDate);
}
if (getWriteability_IsSelected () != FieldWriteability.TRUE)
{
fields.add (FIELD_IsSelected);
......@@ -2142,6 +2320,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add(HELPER_CV.getAttribObject (getClass (), _CV, false, FIELD_CV));
result.add(HELPER_ApplicationStatus.getAttribObject (getClass (), _ApplicationStatus, false, FIELD_ApplicationStatus));
result.add(HELPER_SubmittedDate.getAttribObject (getClass (), _SubmittedDate, false, FIELD_SubmittedDate));
result.add(HELPER_IsSelected.getAttribObject (getClass (), _IsSelected, false, FIELD_IsSelected));
return result;
......@@ -2248,6 +2427,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
/**
* Get the attribute SubmittedDate
*/
public Date getSubmittedDate (JobApplication obj, Date original)
{
return original;
}
/**
* Change the value set for attribute SubmittedDate.
* May modify the field beforehand
* Occurs before validation.
*/
public Date setSubmittedDate (JobApplication obj, Date newSubmittedDate) throws FieldException
{
return newSubmittedDate;
}
/**
* Get the attribute IsSelected
*/
public Boolean getIsSelected (JobApplication obj, Boolean original)
......@@ -2341,6 +2538,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return toApplicationStatus ();
}
if (name.equals ("SubmittedDate"))
{
return toSubmittedDate ();
}
if (name.equals ("Candidate"))
{
return toCandidate ();
......@@ -2360,6 +2561,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, BinaryContent> toCV () { return pipe(new ORMAttributePipe<Me, BinaryContent>(FIELD_CV)); }
public PipeLine<From, ApplicationStatus> toApplicationStatus () { return pipe(new ORMAttributePipe<Me, ApplicationStatus>(FIELD_ApplicationStatus)); }
public PipeLine<From, Date> toSubmittedDate () { return pipe(new ORMAttributePipe<Me, Date>(FIELD_SubmittedDate)); }
public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate () { return toCandidate (Filter.ALL); }
public Candidate.CandidatePipeLineFactory<From, Candidate> toCandidate (Filter<Candidate> filter)
......
......@@ -304,4 +304,9 @@ public class Job extends BaseJob
{
return 25;
}
public Boolean isClosed()
{
return getApplyBy() != null && DateDiff.endOfDay(getApplyBy()).before(DateDiff.getToday());
}
}
\ No newline at end of file
......@@ -15,7 +15,8 @@
<ATTRIB name="CV" type="BinaryContent" dbcol="cv" binaryHandler="loggedin" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE" mandatory="false"/>
<ATTRIB name="ApplicationStatus" type="ApplicationStatus" dbcol="application_status" attribHelper="EnumeratedAttributeHelper" defaultValue="ApplicationStatus.DRAFT"/>
<ATTRIB name="SubmittedDate" type="Date" dbcol="submitted_date"/>
<SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="JobApplications" mandatory="true"/>
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="JobApplications" mandatory="true"/>
......
......@@ -29,11 +29,13 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
// Private attributes corresponding to business object data
private BinaryContent dummyCV;
private ApplicationStatus dummyApplicationStatus;
private Date dummySubmittedDate;
// Static constants corresponding to attribute helpers
private static final BLOBAttributeHelper HELPER_CV = BLOBAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper HELPER_ApplicationStatus = new EnumeratedAttributeHelper (ApplicationStatus.FACTORY_ApplicationStatus);
private static final DefaultAttributeHelper HELPER_SubmittedDate = DefaultAttributeHelper.INSTANCE;
......@@ -42,10 +44,11 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{
dummyCV = (BinaryContent)(HELPER_CV.initialise (dummyCV));
dummyApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.initialise (dummyApplicationStatus));
dummySubmittedDate = (Date)(HELPER_SubmittedDate.initialise (dummySubmittedDate));
}
private String SELECT_COLUMNS = "{PREFIX}tl_job_application.object_id as id, {PREFIX}tl_job_application.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_job_application.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_job_application.cv, {PREFIX}tl_job_application.application_status, {PREFIX}tl_job_application.candidate_id, {PREFIX}tl_job_application.job_id, 1 AS commasafe ";
private String SELECT_COLUMNS = "{PREFIX}tl_job_application.object_id as id, {PREFIX}tl_job_application.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_job_application.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_job_application.cv, {PREFIX}tl_job_application.application_status, {PREFIX}tl_job_application.submitted_date, {PREFIX}tl_job_application.candidate_id, {PREFIX}tl_job_application.job_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -98,6 +101,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
if (false || !tl_job_applicationPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_CV)||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_ApplicationStatus)||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_SubmittedDate)||
!tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Candidate)||
!tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Job))
{
......@@ -189,10 +193,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_job_application " +
"SET cv = ?, application_status = ?, candidate_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"SET cv = ?, application_status = ?, submitted_date = ?, candidate_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_job_application.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (HELPER_SubmittedDate.getForSQL(dummySubmittedDate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_SubmittedDate))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
......@@ -516,6 +520,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_CV, HELPER_CV.getFromRS(dummyCV, r, "cv"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_ApplicationStatus, HELPER_ApplicationStatus.getFromRS(dummyApplicationStatus, r, "application_status"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_SubmittedDate, HELPER_SubmittedDate.getFromRS(dummySubmittedDate, r, "submitted_date"));
tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Job, r.getObject ("job_id"));
......@@ -535,10 +540,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_job_application " +
" (cv, application_status, candidate_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
" (cv, application_status, submitted_date, candidate_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " +
" (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))) .listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray());
" (?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (HELPER_SubmittedDate.getForSQL(dummySubmittedDate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_SubmittedDate))) .listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray());
tl_job_applicationPSet.setStatus (PersistentSetStatus.PROCESSED);
}
......
......@@ -2,6 +2,7 @@
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/inc/stdcms.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<%@ page import="oneit.utils.text.FormatUtils"%>
<oneit:dynIncluded>
<div class="main-application-outline">
......@@ -24,16 +25,6 @@
process.setAttribute("JobApplication", jobApplication);
if(jobApplication.getApplicationStatus()==ApplicationStatus.SUBMITTED)
{
%>
<div class="welcome-aust-logo">
<p class="overview-title" align="center">You have already applied to this job.</p>
</div>
<%
}
else
{
%>
<div class="welcome-aust-logo"><img src="images/australia-post.png" /></div>
<div class="welcome-title">Welcome <oneit:toString value="<%= candidate.getFirstName() %>"/>, here's your application outline</div>
......@@ -79,18 +70,43 @@
</p>
</div>
</div>
<oneit:form name="applyJob" method="post" enctype="multipart/form-data">
<%
if(!job.isClosed() && jobApplication.getApplicationStatus()!=ApplicationStatus.SUBMITTED)
{
String btnText = "Resume the application";
if(jobApplication.getStatus()==ObjectStatus.NEW)
{
btnText = "Begin the application";
}
%>
<oneit:form name="applyJob" method="post" enctype="multipart/form-data">
<div class="app-out-btn">
<span>Total time to complete: Approximately 40 minutes</span>
<oneit:button value="<%= btnText %>" name="gotoPage" skin="link" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"/>
</div>
</oneit:form>
<%
}
else
{
String infoStr = "Job is no longer accepting applications.";
if(jobApplication.getApplicationStatus() == ApplicationStatus.SUBMITTED)
{
infoStr = "Completed on " + FormatUtils.stringify(jobApplication.getSubmittedDate(), "MidDate", "") ;
}
%>
<div class="app-out-btn">
<span>Total time to complete: Approximately 40 minutes</span>
<oneit:button value="Begin the application" name="gotoPage" skin="link" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"/>
<span></span>
<span style="float: right"><oneit:toString value="<%= infoStr %>" mode="EscapeHTML"/></span>
</div>
</oneit:form>
<%
}
%>
<%
}
%>
<style>
.power-footer {
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_job_application</tableName>
<column name="submitted_date" type="Date" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment