Commit b36602b2 by Nilu Committed by Harsh Shah

Row - Job - If job is Open, then show [calendar] N days until closed. Otherwise,…

Row - Job - If job is Open, then show [calendar] N days until closed. Otherwise, show [calendar] {Status} on {date} - For example, if job is Closed, then show the calendar icon with **Closed on July 28, 2017** Statuses: Draft / Open / Closed / Filled. Date is whenever the most recent status was applied.
parent a23beb0a
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<column name="random_key" type="String" nullable="true" length="10"/> <column name="random_key" type="String" nullable="true" length="10"/>
<column name="job_type" type="String" nullable="false" length="200"/> <column name="job_type" type="String" nullable="false" length="200"/>
<column name="ref_number" type="String" nullable="true" length="100"/> <column name="ref_number" type="String" nullable="true" length="100"/>
<column name="last_status_change_date" type="Date" nullable="true"/>
<column name="level_id" type="Long" length="11" nullable="false"/> <column name="level_id" type="Long" length="11" nullable="false"/>
<column name="secuser_id" type="Long" length="11" nullable="true"/> <column name="secuser_id" type="Long" length="11" nullable="true"/>
</NODE> </NODE>
......
...@@ -18,6 +18,7 @@ CREATE TABLE tl_job ( ...@@ -18,6 +18,7 @@ CREATE TABLE tl_job (
random_key varchar(10) NULL, random_key varchar(10) NULL,
job_type varchar(200) NOT NULL, job_type varchar(200) NOT NULL,
ref_number varchar(100) NULL, ref_number varchar(100) NULL,
last_status_change_date datetime NULL,
level_id numeric(12) NOT NULL, level_id numeric(12) NOT NULL,
secuser_id numeric(12) NULL secuser_id numeric(12) NULL
); );
......
...@@ -19,6 +19,7 @@ CREATE TABLE tl_job ( ...@@ -19,6 +19,7 @@ CREATE TABLE tl_job (
random_key varchar2(10) NULL, random_key varchar2(10) NULL,
job_type varchar2(200) NOT NULL, job_type varchar2(200) NOT NULL,
ref_number varchar2(100) NULL, ref_number varchar2(100) NULL,
last_status_change_date date NULL,
level_id number(12) NOT NULL, level_id number(12) NOT NULL,
secuser_id number(12) NULL secuser_id number(12) NULL
); );
......
...@@ -19,6 +19,7 @@ CREATE TABLE tl_job ( ...@@ -19,6 +19,7 @@ CREATE TABLE tl_job (
random_key varchar(10) NULL, random_key varchar(10) NULL,
job_type varchar(200) NOT NULL, job_type varchar(200) NOT NULL,
ref_number varchar(100) NULL, ref_number varchar(100) NULL,
last_status_change_date timestamp NULL,
level_id numeric(12) NOT NULL, level_id numeric(12) NOT NULL,
secuser_id numeric(12) NULL secuser_id numeric(12) NULL
); );
......
...@@ -52,6 +52,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -52,6 +52,7 @@ public abstract class BaseJob extends BaseBusinessClass
public static final String FIELD_RandomKey = "RandomKey"; public static final String FIELD_RandomKey = "RandomKey";
public static final String FIELD_JobType = "JobType"; public static final String FIELD_JobType = "JobType";
public static final String FIELD_ReferenceNumber = "ReferenceNumber"; public static final String FIELD_ReferenceNumber = "ReferenceNumber";
public static final String FIELD_LastStatusChangeDate = "LastStatusChangeDate";
public static final String FIELD_Email = "Email"; public static final String FIELD_Email = "Email";
public static final String FIELD_CompletedDetails = "CompletedDetails"; public static final String FIELD_CompletedDetails = "CompletedDetails";
public static final String FIELD_CompletedRequirements = "CompletedRequirements"; public static final String FIELD_CompletedRequirements = "CompletedRequirements";
...@@ -90,6 +91,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -90,6 +91,7 @@ public abstract class BaseJob extends BaseBusinessClass
private static final DefaultAttributeHelper<Job> HELPER_RandomKey = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_RandomKey = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<Job, JobType> HELPER_JobType = new EnumeratedAttributeHelper<Job, JobType> (JobType.FACTORY_JobType); private static final EnumeratedAttributeHelper<Job, JobType> HELPER_JobType = new EnumeratedAttributeHelper<Job, JobType> (JobType.FACTORY_JobType);
private static final DefaultAttributeHelper<Job> HELPER_ReferenceNumber = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_ReferenceNumber = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Job> HELPER_LastStatusChangeDate = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Job> HELPER_Email = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_Email = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Job> HELPER_CompletedDetails = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_CompletedDetails = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Job> HELPER_CompletedRequirements = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<Job> HELPER_CompletedRequirements = DefaultAttributeHelper.INSTANCE;
...@@ -113,6 +115,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -113,6 +115,7 @@ public abstract class BaseJob extends BaseBusinessClass
private String _RandomKey; private String _RandomKey;
private JobType _JobType; private JobType _JobType;
private String _ReferenceNumber; private String _ReferenceNumber;
private Date _LastStatusChangeDate;
private String _Email; private String _Email;
private Boolean _CompletedDetails; private Boolean _CompletedDetails;
private Boolean _CompletedRequirements; private Boolean _CompletedRequirements;
...@@ -163,6 +166,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -163,6 +166,7 @@ public abstract class BaseJob extends BaseBusinessClass
private static final AttributeValidator[] FIELD_RandomKey_Validators; private static final AttributeValidator[] FIELD_RandomKey_Validators;
private static final AttributeValidator[] FIELD_JobType_Validators; private static final AttributeValidator[] FIELD_JobType_Validators;
private static final AttributeValidator[] FIELD_ReferenceNumber_Validators; private static final AttributeValidator[] FIELD_ReferenceNumber_Validators;
private static final AttributeValidator[] FIELD_LastStatusChangeDate_Validators;
// Arrays of behaviour decorators // Arrays of behaviour decorators
...@@ -207,6 +211,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -207,6 +211,7 @@ public abstract class BaseJob extends BaseBusinessClass
FIELD_RandomKey_Validators = (AttributeValidator[])setupAttribMetaData_RandomKey(validatorMapping).toArray (new AttributeValidator[0]); FIELD_RandomKey_Validators = (AttributeValidator[])setupAttribMetaData_RandomKey(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobType_Validators = (AttributeValidator[])setupAttribMetaData_JobType(validatorMapping).toArray (new AttributeValidator[0]); FIELD_JobType_Validators = (AttributeValidator[])setupAttribMetaData_JobType(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_ReferenceNumber_Validators = (AttributeValidator[])setupAttribMetaData_ReferenceNumber(validatorMapping).toArray (new AttributeValidator[0]); FIELD_ReferenceNumber_Validators = (AttributeValidator[])setupAttribMetaData_ReferenceNumber(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_LastStatusChangeDate_Validators = (AttributeValidator[])setupAttribMetaData_LastStatusChangeDate(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_Job.initialiseReference (); REFERENCE_Job.initialiseReference ();
...@@ -705,6 +710,24 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -705,6 +710,24 @@ public abstract class BaseJob extends BaseBusinessClass
return validators; return validators;
} }
// Meta Info setup
private static List setupAttribMetaData_LastStatusChangeDate(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "last_status_change_date");
metaInfo.put ("name", "LastStatusChangeDate");
metaInfo.put ("type", "Date");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Job.LastStatusChangeDate:", metaInfo);
ATTRIBUTES_METADATA_Job.put (FIELD_LastStatusChangeDate, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(Job.class, "LastStatusChangeDate", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for Job.LastStatusChangeDate:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION // END OF STATIC METADATA DEFINITION
...@@ -742,6 +765,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -742,6 +765,7 @@ public abstract class BaseJob extends BaseBusinessClass
_RandomKey = (String)(HELPER_RandomKey.initialise (_RandomKey)); _RandomKey = (String)(HELPER_RandomKey.initialise (_RandomKey));
_JobType = (JobType)(JobType.FULL_TIME); _JobType = (JobType)(JobType.FULL_TIME);
_ReferenceNumber = (String)(HELPER_ReferenceNumber.initialise (_ReferenceNumber)); _ReferenceNumber = (String)(HELPER_ReferenceNumber.initialise (_ReferenceNumber));
_LastStatusChangeDate = (Date)(HELPER_LastStatusChangeDate.initialise (_LastStatusChangeDate));
_Email = (String)(HELPER_Email.initialise (_Email)); _Email = (String)(HELPER_Email.initialise (_Email));
_CompletedDetails = (Boolean)(Boolean.FALSE); _CompletedDetails = (Boolean)(Boolean.FALSE);
_CompletedRequirements = (Boolean)(Boolean.FALSE); _CompletedRequirements = (Boolean)(Boolean.FALSE);
...@@ -1779,6 +1803,104 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -1779,6 +1803,104 @@ public abstract class BaseJob extends BaseBusinessClass
} }
/** /**
* Get the attribute LastStatusChangeDate
*/
public Date getLastStatusChangeDate ()
{
assertValid();
Date valToReturn = _LastStatusChangeDate;
for (JobBehaviourDecorator bhd : Job_BehaviourDecorators)
{
valToReturn = bhd.getLastStatusChangeDate ((Job)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 preLastStatusChangeDateChange (Date newLastStatusChangeDate) 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 postLastStatusChangeDateChange () throws FieldException
{
}
public FieldWriteability getWriteability_LastStatusChangeDate ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute LastStatusChangeDate. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setLastStatusChangeDate (Date newLastStatusChangeDate) throws FieldException
{
boolean oldAndNewIdentical = HELPER_LastStatusChangeDate.compare (_LastStatusChangeDate, newLastStatusChangeDate);
try
{
for (JobBehaviourDecorator bhd : Job_BehaviourDecorators)
{
newLastStatusChangeDate = bhd.setLastStatusChangeDate ((Job)this, newLastStatusChangeDate);
oldAndNewIdentical = HELPER_LastStatusChangeDate.compare (_LastStatusChangeDate, newLastStatusChangeDate);
}
if (FIELD_LastStatusChangeDate_Validators.length > 0)
{
Object newLastStatusChangeDateObj = HELPER_LastStatusChangeDate.toObject (newLastStatusChangeDate);
if (newLastStatusChangeDateObj != null)
{
int loopMax = FIELD_LastStatusChangeDate_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_Job.get (FIELD_LastStatusChangeDate);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_LastStatusChangeDate_Validators[v].checkAttribute (this, FIELD_LastStatusChangeDate, metadata, newLastStatusChangeDateObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_LastStatusChangeDate () != FieldWriteability.FALSE, "Field LastStatusChangeDate is not writeable");
preLastStatusChangeDateChange (newLastStatusChangeDate);
markFieldChange (FIELD_LastStatusChangeDate);
_LastStatusChangeDate = newLastStatusChangeDate;
postFieldChange (FIELD_LastStatusChangeDate);
postLastStatusChangeDateChange ();
}
}
/**
* Get the attribute Email * Get the attribute Email
*/ */
public String getEmail () public String getEmail ()
...@@ -3954,6 +4076,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -3954,6 +4076,7 @@ public abstract class BaseJob extends BaseBusinessClass
tl_jobPSet.setAttrib (FIELD_RandomKey, HELPER_RandomKey.toObject (_RandomKey)); // tl_jobPSet.setAttrib (FIELD_RandomKey, HELPER_RandomKey.toObject (_RandomKey)); //
tl_jobPSet.setAttrib (FIELD_JobType, HELPER_JobType.toObject (_JobType)); // tl_jobPSet.setAttrib (FIELD_JobType, HELPER_JobType.toObject (_JobType)); //
tl_jobPSet.setAttrib (FIELD_ReferenceNumber, HELPER_ReferenceNumber.toObject (_ReferenceNumber)); // tl_jobPSet.setAttrib (FIELD_ReferenceNumber, HELPER_ReferenceNumber.toObject (_ReferenceNumber)); //
tl_jobPSet.setAttrib (FIELD_LastStatusChangeDate, HELPER_LastStatusChangeDate.toObject (_LastStatusChangeDate)); //
_Level.getPersistentSets (allSets); _Level.getPersistentSets (allSets);
_SecUser.getPersistentSets (allSets); _SecUser.getPersistentSets (allSets);
...@@ -3980,6 +4103,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -3980,6 +4103,7 @@ public abstract class BaseJob extends BaseBusinessClass
_RandomKey = (String)(HELPER_RandomKey.fromObject (_RandomKey, tl_jobPSet.getAttrib (FIELD_RandomKey))); // _RandomKey = (String)(HELPER_RandomKey.fromObject (_RandomKey, tl_jobPSet.getAttrib (FIELD_RandomKey))); //
_JobType = (JobType)(HELPER_JobType.fromObject (_JobType, tl_jobPSet.getAttrib (FIELD_JobType))); // _JobType = (JobType)(HELPER_JobType.fromObject (_JobType, tl_jobPSet.getAttrib (FIELD_JobType))); //
_ReferenceNumber = (String)(HELPER_ReferenceNumber.fromObject (_ReferenceNumber, tl_jobPSet.getAttrib (FIELD_ReferenceNumber))); // _ReferenceNumber = (String)(HELPER_ReferenceNumber.fromObject (_ReferenceNumber, tl_jobPSet.getAttrib (FIELD_ReferenceNumber))); //
_LastStatusChangeDate = (Date)(HELPER_LastStatusChangeDate.fromObject (_LastStatusChangeDate, tl_jobPSet.getAttrib (FIELD_LastStatusChangeDate))); //
_Level.setFromPersistentSets (objectID, allSets); _Level.setFromPersistentSets (objectID, allSets);
_SecUser.setFromPersistentSets (objectID, allSets); _SecUser.setFromPersistentSets (objectID, allSets);
...@@ -4087,6 +4211,15 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4087,6 +4211,15 @@ public abstract class BaseJob extends BaseBusinessClass
e.addException (ex); e.addException (ex);
} }
try
{
setLastStatusChangeDate (otherJob.getLastStatusChangeDate ());
}
catch (FieldException ex)
{
e.addException (ex);
}
} }
} }
...@@ -4112,6 +4245,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4112,6 +4245,7 @@ public abstract class BaseJob extends BaseBusinessClass
_RandomKey = sourceJob._RandomKey; _RandomKey = sourceJob._RandomKey;
_JobType = sourceJob._JobType; _JobType = sourceJob._JobType;
_ReferenceNumber = sourceJob._ReferenceNumber; _ReferenceNumber = sourceJob._ReferenceNumber;
_LastStatusChangeDate = sourceJob._LastStatusChangeDate;
_Email = sourceJob._Email; _Email = sourceJob._Email;
_CompletedDetails = sourceJob._CompletedDetails; _CompletedDetails = sourceJob._CompletedDetails;
_CompletedRequirements = sourceJob._CompletedRequirements; _CompletedRequirements = sourceJob._CompletedRequirements;
...@@ -4194,6 +4328,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4194,6 +4328,7 @@ public abstract class BaseJob extends BaseBusinessClass
_RandomKey = (String)(HELPER_RandomKey.readExternal (_RandomKey, vals.get(FIELD_RandomKey))); // _RandomKey = (String)(HELPER_RandomKey.readExternal (_RandomKey, vals.get(FIELD_RandomKey))); //
_JobType = (JobType)(HELPER_JobType.readExternal (_JobType, vals.get(FIELD_JobType))); // _JobType = (JobType)(HELPER_JobType.readExternal (_JobType, vals.get(FIELD_JobType))); //
_ReferenceNumber = (String)(HELPER_ReferenceNumber.readExternal (_ReferenceNumber, vals.get(FIELD_ReferenceNumber))); // _ReferenceNumber = (String)(HELPER_ReferenceNumber.readExternal (_ReferenceNumber, vals.get(FIELD_ReferenceNumber))); //
_LastStatusChangeDate = (Date)(HELPER_LastStatusChangeDate.readExternal (_LastStatusChangeDate, vals.get(FIELD_LastStatusChangeDate))); //
_Email = (String)(HELPER_Email.readExternal (_Email, vals.get(FIELD_Email))); // _Email = (String)(HELPER_Email.readExternal (_Email, vals.get(FIELD_Email))); //
_CompletedDetails = (Boolean)(HELPER_CompletedDetails.readExternal (_CompletedDetails, vals.get(FIELD_CompletedDetails))); // _CompletedDetails = (Boolean)(HELPER_CompletedDetails.readExternal (_CompletedDetails, vals.get(FIELD_CompletedDetails))); //
_CompletedRequirements = (Boolean)(HELPER_CompletedRequirements.readExternal (_CompletedRequirements, vals.get(FIELD_CompletedRequirements))); // _CompletedRequirements = (Boolean)(HELPER_CompletedRequirements.readExternal (_CompletedRequirements, vals.get(FIELD_CompletedRequirements))); //
...@@ -4233,6 +4368,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4233,6 +4368,7 @@ public abstract class BaseJob extends BaseBusinessClass
vals.put (FIELD_RandomKey, HELPER_RandomKey.writeExternal (_RandomKey)); vals.put (FIELD_RandomKey, HELPER_RandomKey.writeExternal (_RandomKey));
vals.put (FIELD_JobType, HELPER_JobType.writeExternal (_JobType)); vals.put (FIELD_JobType, HELPER_JobType.writeExternal (_JobType));
vals.put (FIELD_ReferenceNumber, HELPER_ReferenceNumber.writeExternal (_ReferenceNumber)); vals.put (FIELD_ReferenceNumber, HELPER_ReferenceNumber.writeExternal (_ReferenceNumber));
vals.put (FIELD_LastStatusChangeDate, HELPER_LastStatusChangeDate.writeExternal (_LastStatusChangeDate));
vals.put (FIELD_Email, HELPER_Email.writeExternal (_Email)); vals.put (FIELD_Email, HELPER_Email.writeExternal (_Email));
vals.put (FIELD_CompletedDetails, HELPER_CompletedDetails.writeExternal (_CompletedDetails)); vals.put (FIELD_CompletedDetails, HELPER_CompletedDetails.writeExternal (_CompletedDetails));
vals.put (FIELD_CompletedRequirements, HELPER_CompletedRequirements.writeExternal (_CompletedRequirements)); vals.put (FIELD_CompletedRequirements, HELPER_CompletedRequirements.writeExternal (_CompletedRequirements));
...@@ -4304,6 +4440,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4304,6 +4440,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
listener.notifyFieldChange(this, other, FIELD_ReferenceNumber, HELPER_ReferenceNumber.toObject(this._ReferenceNumber), HELPER_ReferenceNumber.toObject(otherJob._ReferenceNumber)); listener.notifyFieldChange(this, other, FIELD_ReferenceNumber, HELPER_ReferenceNumber.toObject(this._ReferenceNumber), HELPER_ReferenceNumber.toObject(otherJob._ReferenceNumber));
} }
if (!HELPER_LastStatusChangeDate.compare(this._LastStatusChangeDate, otherJob._LastStatusChangeDate))
{
listener.notifyFieldChange(this, other, FIELD_LastStatusChangeDate, HELPER_LastStatusChangeDate.toObject(this._LastStatusChangeDate), HELPER_LastStatusChangeDate.toObject(otherJob._LastStatusChangeDate));
}
// Compare single assocs // Compare single assocs
_AssessmentTemplate.compare (otherJob._AssessmentTemplate, listener); _AssessmentTemplate.compare (otherJob._AssessmentTemplate, listener);
...@@ -4354,6 +4494,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4354,6 +4494,7 @@ public abstract class BaseJob extends BaseBusinessClass
visitor.visitField(this, FIELD_RandomKey, HELPER_RandomKey.toObject(getRandomKey())); visitor.visitField(this, FIELD_RandomKey, HELPER_RandomKey.toObject(getRandomKey()));
visitor.visitField(this, FIELD_JobType, HELPER_JobType.toObject(getJobType())); visitor.visitField(this, FIELD_JobType, HELPER_JobType.toObject(getJobType()));
visitor.visitField(this, FIELD_ReferenceNumber, HELPER_ReferenceNumber.toObject(getReferenceNumber())); visitor.visitField(this, FIELD_ReferenceNumber, HELPER_ReferenceNumber.toObject(getReferenceNumber()));
visitor.visitField(this, FIELD_LastStatusChangeDate, HELPER_LastStatusChangeDate.toObject(getLastStatusChangeDate()));
visitor.visitAssociation (_AssessmentTemplate); visitor.visitAssociation (_AssessmentTemplate);
visitor.visitAssociation (_CultureTemplate); visitor.visitAssociation (_CultureTemplate);
visitor.visitAssociation (_JobTemplate); visitor.visitAssociation (_JobTemplate);
...@@ -4467,6 +4608,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4467,6 +4608,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return filter.matches (getReferenceNumber ()); return filter.matches (getReferenceNumber ());
} }
else if (attribName.equals (FIELD_LastStatusChangeDate))
{
return filter.matches (getLastStatusChangeDate ());
}
else if (attribName.equals (SINGLEREFERENCE_Level)) else if (attribName.equals (SINGLEREFERENCE_Level))
{ {
return filter.matches (getLevel ()); return filter.matches (getLevel ());
...@@ -4566,6 +4711,12 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4566,6 +4711,12 @@ public abstract class BaseJob extends BaseBusinessClass
return this; return this;
} }
public SearchAll andLastStatusChangeDate (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.last_status_change_date", "LastStatusChangeDate");
return this;
}
public SearchAll andLevel (QueryFilter<Level> filter) public SearchAll andLevel (QueryFilter<Level> filter)
{ {
filter.addFilter (context, "tl_job.level_id", "Level"); filter.addFilter (context, "tl_job.level_id", "Level");
...@@ -4701,6 +4852,12 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4701,6 +4852,12 @@ public abstract class BaseJob extends BaseBusinessClass
return this; return this;
} }
public SearchJobKey andLastStatusChangeDate (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.last_status_change_date", "LastStatusChangeDate");
return this;
}
public SearchJobKey andLevel (QueryFilter<Level> filter) public SearchJobKey andLevel (QueryFilter<Level> filter)
{ {
filter.addFilter (context, "tl_job.level_id", "Level"); filter.addFilter (context, "tl_job.level_id", "Level");
...@@ -4788,6 +4945,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4788,6 +4945,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return HELPER_ReferenceNumber.toObject (getReferenceNumber ()); return HELPER_ReferenceNumber.toObject (getReferenceNumber ());
} }
else if (attribName.equals (FIELD_LastStatusChangeDate))
{
return HELPER_LastStatusChangeDate.toObject (getLastStatusChangeDate ());
}
else if (attribName.equals (FIELD_Email)) else if (attribName.equals (FIELD_Email))
{ {
return HELPER_Email.toObject (getEmail ()); return HELPER_Email.toObject (getEmail ());
...@@ -4881,6 +5042,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4881,6 +5042,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return HELPER_ReferenceNumber; return HELPER_ReferenceNumber;
} }
else if (attribName.equals (FIELD_LastStatusChangeDate))
{
return HELPER_LastStatusChangeDate;
}
else if (attribName.equals (FIELD_Email)) else if (attribName.equals (FIELD_Email))
{ {
return HELPER_Email; return HELPER_Email;
...@@ -4974,6 +5139,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -4974,6 +5139,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
setReferenceNumber ((String)(HELPER_ReferenceNumber.fromObject (_ReferenceNumber, attribValue))); setReferenceNumber ((String)(HELPER_ReferenceNumber.fromObject (_ReferenceNumber, attribValue)));
} }
else if (attribName.equals (FIELD_LastStatusChangeDate))
{
setLastStatusChangeDate ((Date)(HELPER_LastStatusChangeDate.fromObject (_LastStatusChangeDate, attribValue)));
}
else if (attribName.equals (FIELD_Email)) else if (attribName.equals (FIELD_Email))
{ {
setEmail ((String)(HELPER_Email.fromObject (_Email, attribValue))); setEmail ((String)(HELPER_Email.fromObject (_Email, attribValue)));
...@@ -5074,6 +5243,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5074,6 +5243,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return getWriteability_ReferenceNumber (); return getWriteability_ReferenceNumber ();
} }
else if (fieldName.equals (FIELD_LastStatusChangeDate))
{
return getWriteability_LastStatusChangeDate ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_JobApplications)) else if (fieldName.equals (MULTIPLEREFERENCE_JobApplications))
{ {
return getWriteability_JobApplications (); return getWriteability_JobApplications ();
...@@ -5206,6 +5379,11 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5206,6 +5379,11 @@ public abstract class BaseJob extends BaseBusinessClass
fields.add (FIELD_ReferenceNumber); fields.add (FIELD_ReferenceNumber);
} }
if (getWriteability_LastStatusChangeDate () != FieldWriteability.TRUE)
{
fields.add (FIELD_LastStatusChangeDate);
}
if (getWriteability_Email () != FieldWriteability.TRUE) if (getWriteability_Email () != FieldWriteability.TRUE)
{ {
fields.add (FIELD_Email); fields.add (FIELD_Email);
...@@ -5275,6 +5453,7 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5275,6 +5453,7 @@ public abstract class BaseJob extends BaseBusinessClass
result.add(HELPER_RandomKey.getAttribObject (getClass (), _RandomKey, false, FIELD_RandomKey)); result.add(HELPER_RandomKey.getAttribObject (getClass (), _RandomKey, false, FIELD_RandomKey));
result.add(HELPER_JobType.getAttribObject (getClass (), _JobType, true, FIELD_JobType)); result.add(HELPER_JobType.getAttribObject (getClass (), _JobType, true, FIELD_JobType));
result.add(HELPER_ReferenceNumber.getAttribObject (getClass (), _ReferenceNumber, false, FIELD_ReferenceNumber)); result.add(HELPER_ReferenceNumber.getAttribObject (getClass (), _ReferenceNumber, false, FIELD_ReferenceNumber));
result.add(HELPER_LastStatusChangeDate.getAttribObject (getClass (), _LastStatusChangeDate, false, FIELD_LastStatusChangeDate));
result.add(HELPER_Email.getAttribObject (getClass (), _Email, false, FIELD_Email)); result.add(HELPER_Email.getAttribObject (getClass (), _Email, false, FIELD_Email));
result.add(HELPER_CompletedDetails.getAttribObject (getClass (), _CompletedDetails, false, FIELD_CompletedDetails)); result.add(HELPER_CompletedDetails.getAttribObject (getClass (), _CompletedDetails, false, FIELD_CompletedDetails));
result.add(HELPER_CompletedRequirements.getAttribObject (getClass (), _CompletedRequirements, false, FIELD_CompletedRequirements)); result.add(HELPER_CompletedRequirements.getAttribObject (getClass (), _CompletedRequirements, false, FIELD_CompletedRequirements));
...@@ -5516,6 +5695,24 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5516,6 +5695,24 @@ public abstract class BaseJob extends BaseBusinessClass
} }
/** /**
* Get the attribute LastStatusChangeDate
*/
public Date getLastStatusChangeDate (Job obj, Date original)
{
return original;
}
/**
* Change the value set for attribute LastStatusChangeDate.
* May modify the field beforehand
* Occurs before validation.
*/
public Date setLastStatusChangeDate (Job obj, Date newLastStatusChangeDate) throws FieldException
{
return newLastStatusChangeDate;
}
/**
* Get the attribute Email * Get the attribute Email
*/ */
public String getEmail (Job obj, String original) public String getEmail (Job obj, String original)
...@@ -5851,6 +6048,10 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5851,6 +6048,10 @@ public abstract class BaseJob extends BaseBusinessClass
{ {
return toReferenceNumber (); return toReferenceNumber ();
} }
if (name.equals ("LastStatusChangeDate"))
{
return toLastStatusChangeDate ();
}
if (name.equals ("Level")) if (name.equals ("Level"))
{ {
return toLevel (); return toLevel ();
...@@ -5904,6 +6105,8 @@ public abstract class BaseJob extends BaseBusinessClass ...@@ -5904,6 +6105,8 @@ public abstract class BaseJob extends BaseBusinessClass
public PipeLine<From, JobType> toJobType () { return pipe(new ORMAttributePipe<Me, JobType>(FIELD_JobType)); } public PipeLine<From, JobType> toJobType () { return pipe(new ORMAttributePipe<Me, JobType>(FIELD_JobType)); }
public PipeLine<From, String> toReferenceNumber () { return pipe(new ORMAttributePipe<Me, String>(FIELD_ReferenceNumber)); } public PipeLine<From, String> toReferenceNumber () { return pipe(new ORMAttributePipe<Me, String>(FIELD_ReferenceNumber)); }
public PipeLine<From, Date> toLastStatusChangeDate () { return pipe(new ORMAttributePipe<Me, Date>(FIELD_LastStatusChangeDate)); }
public AssessmentCriteriaTemplate.AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> toAssessmentTemplate () { return toAssessmentTemplate (Filter.ALL); } public AssessmentCriteriaTemplate.AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> toAssessmentTemplate () { return toAssessmentTemplate (Filter.ALL); }
public AssessmentCriteriaTemplate.AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> toAssessmentTemplate (Filter<AssessmentCriteriaTemplate> filter) public AssessmentCriteriaTemplate.AssessmentCriteriaTemplatePipeLineFactory<From, AssessmentCriteriaTemplate> toAssessmentTemplate (Filter<AssessmentCriteriaTemplate> filter)
......
...@@ -69,6 +69,14 @@ public class Job extends BaseJob ...@@ -69,6 +69,14 @@ public class Job extends BaseJob
context.check(getSaveCultureTemplate() == null || !getSaveCultureTemplate() , this, FIELD_CultureTemplateName, "saveTemplateFirst"); context.check(getSaveCultureTemplate() == null || !getSaveCultureTemplate() , this, FIELD_CultureTemplateName, "saveTemplateFirst");
} }
@Override
protected void postJobStatusChange() throws FieldException
{
setLastStatusChangeDate(new Date());
super.postJobStatusChange();
}
@Override @Override
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
<ATTRIB name="RandomKey" type="String" dbcol="random_key" length="10"/> <ATTRIB name="RandomKey" type="String" dbcol="random_key" length="10"/>
<ATTRIB name="JobType" type="JobType" dbcol="job_type" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="JobType.FULL_TIME"/> <ATTRIB name="JobType" type="JobType" dbcol="job_type" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="JobType.FULL_TIME"/>
<ATTRIB name="ReferenceNumber" type="String" dbcol="ref_number" length="100"/> <ATTRIB name="ReferenceNumber" type="String" dbcol="ref_number" length="100"/>
<ATTRIB name="LastStatusChangeDate" type="Date" dbcol="last_status_change_date"/>
<SINGLEREFERENCE name="Level" type="Level" dbcol="level_id" mandatory="true"/> <SINGLEREFERENCE name="Level" type="Level" dbcol="level_id" mandatory="true"/>
<SINGLEREFERENCE name="SecUser" type="SecUser" dbcol="secuser_id" /> <SINGLEREFERENCE name="SecUser" type="SecUser" dbcol="secuser_id" />
......
...@@ -107,4 +107,12 @@ ...@@ -107,4 +107,12 @@
</NODE> </NODE>
<NODE name="CONFIG.Formatting::AdminPortal">
<PARAM name="PerformaDateFormatter" factory="Participant" class="oneit.utils.text.DateFormatterFactory"
format="MMM dd, yyyy" language="en" country="au"/>
</NODE>
</OBJECTS> </OBJECTS>
\ No newline at end of file
...@@ -29,15 +29,15 @@ ...@@ -29,15 +29,15 @@
<label class="label-16">Detail</label> <label class="label-16">Detail</label>
</div> </div>
<div class="form-group"> <div class="form-group">
<label><oneit:ormlabel obj="<%= job %>" field="JobTitle" /></label> <label><oneit:label GUIName="Job Title" /></label>
<oneit:ormInput obj="<%= job %>" type="text" attributeName="JobTitle" cssClass="form-control" /> <oneit:ormInput obj="<%= job %>" type="text" attributeName="JobTitle" cssClass="form-control" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label><oneit:ormlabel obj="<%= job %>" field="JobDescription" /></label> <label><oneit:label GUIName="Job Description" /></label>
<oneit:ormtextarea obj="<%= job %>" attributeName="JobDescription" cssClass="form-control textarea-box"/> <oneit:ormtextarea obj="<%= job %>" attributeName="JobDescription" cssClass="form-control textarea-box"/>
</div> </div>
<div class="form-group"> <div class="form-group">
<label><oneit:ormlabel obj="<%= job %>" field="JobType" /></label> <label><oneit:label GUIName="Job Type" /></label>
<oneit:ormEnum obj="<%= job %>" attributeName="JobType" cssClass="form-control"/> <oneit:ormEnum obj="<%= job %>" attributeName="JobType" cssClass="form-control"/>
</div> </div>
<div class="optional-title">OPTIONAL</div> <div class="optional-title">OPTIONAL</div>
......
...@@ -60,12 +60,24 @@ ...@@ -60,12 +60,24 @@
<span class="superlaw">SUPERLAW</span> <span class="superlaw">SUPERLAW</span>
<span class="calendar"> <span class="calendar">
<% <%
int daysToClose = job.getNoOfDaystoClosed(); if(job.getJobStatus() == JobStatus.OPEN)
{
int daysToClose = job.getNoOfDaystoClosed();
%>
<span class="number">
<oneit:toString value="<%= daysToClose %>" mode="Integer"/>
</span>
<oneit:toString value="<%= (daysToClose == 1 ? "day" : "days") + " until closed" %>" mode="EscapeHTML"/>
<%
}
else
{
%>
<oneit:toString value="<%= job.getJobStatus().getDescription() %>" mode="EscapeHTML"/> on
<oneit:toString value="<%= job.getLastStatusChangeDate() %>" mode="PerformaDate"/>
<%
}
%> %>
<span class="number">
<oneit:toString value="<%= daysToClose %>" mode="Integer"/>
</span>
<oneit:toString value="<%= (daysToClose == 1 ? "day" : "days") + " until close" %>" mode="EscapeHTML"/>
</span> </span>
</div> </div>
</div> </div>
......
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="review-medium-title"> <div class="review-medium-title">
<oneit:ormlabel obj="<%= job %>" field="JobTitle"/> <oneit:label GUIName="Job Title" />
<span class="skill-label"> <span class="skill-label">
<oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML" /> <oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML" />
</span> </span>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<div class="review-medium-title"> <div class="review-medium-title">
<oneit:ormlabel obj="<%= job %>" field="JobDescription" /> <oneit:label GUIName="Job Description" />
<span class="skill-label"> <span class="skill-label">
<oneit:toString value="<%= job.getJobDescription() %>" mode="ParagraphHTML" /> <oneit:toString value="<%= job.getJobDescription() %>" mode="ParagraphHTML" />
</span> </span>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
<div class="form-group"> <div class="form-group">
<div class="row main-review-label"> <div class="row main-review-label">
<div class="col-sm-3 col-xs-12 review-label"> <div class="col-sm-3 col-xs-12 review-label">
<oneit:ormlabel obj="<%= job %>" field="Level" /> <oneit:label GUIName="Job Type" />
</div> </div>
<div class="col-sm-9 col-xs-12 review-data"> <div class="col-sm-9 col-xs-12 review-data">
<oneit:toString value="<%= job.getLevel() %>" mode="EscapeHTML" /> <oneit:toString value="<%= job.getLevel() %>" mode="EscapeHTML" />
......
<?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</tableName>
<column name="last_status_change_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