Commit 8c2dd2b1 by Nilu

adding job reference number and client to job list

partial job search
parent c591abb6
<?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.DefineTableOperation">
<tableName factory="String">it_does_not_matter</tableName>
<column name="object_id" type="Long" nullable="false" length="11"/>
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="xxxx" type="CLOB" nullable="true"/>
</NODE>
</NODE></OBJECTS>
\ No newline at end of file
-- DROP TABLE it_does_not_matter;
CREATE TABLE it_does_not_matter (
object_id int NOT NULL ,
object_last_updated_date datetime DEFAULT getdate() NOT NULL ,
object_created_date datetime DEFAULT getdate() NOT NULL
,
xxxx text NULL
);
ALTER TABLE it_does_not_matter ADD
CONSTRAINT PK_it_does_not_matter PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
-- DROP TABLE it_does_not_matter;
CREATE TABLE it_does_not_matter (
object_id number(12) NOT NULL ,
object_last_updated_date date DEFAULT SYSDATE NOT NULL ,
object_created_date date DEFAULT SYSDATE NOT NULL
,
xxxx clob NULL
);
ALTER TABLE it_does_not_matter ADD
CONSTRAINT PK_it_does_not_matter PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
-- @AutoRun
-- drop table it_does_not_matter;
CREATE TABLE it_does_not_matter (
object_id numeric(12) NOT NULL ,
object_last_updated_date timestamp DEFAULT NOW() NOT NULL ,
object_created_date timestamp DEFAULT NOW() NOT NULL
,
xxxx text NULL
);
ALTER TABLE it_does_not_matter ADD
CONSTRAINT pk_it_does_not_matter PRIMARY KEY
(
object_id
) ;
\ No newline at end of file
......@@ -102,6 +102,7 @@ public abstract class BaseJob extends BaseBusinessClass
public static final String SEARCH_All = "All";
public static final String SEARCH_JobKey = "JobKey";
public static final String SEARCH_Company = "Company";
public static final String SEARCH_Details = "Details";
// Static constants corresponding to attribute helpers
......@@ -8236,6 +8237,244 @@ public abstract class BaseJob extends BaseBusinessClass
.search (transaction);
}
public static SearchDetails SearchByDetails () { return new SearchDetails (); }
public static class SearchDetails extends SearchObject<Job>
{
public SearchDetails byName (String Name)
{
by ("Name", Name);
return this;
}
public SearchDetails andObjectID (QueryFilter<Long> filter)
{
filter.addFilter (context, "tl_job.object_id", FIELD_ObjectID);
return this;
}
public SearchDetails andObjectCreated (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.object_created_date", FIELD_ObjectCreated);
return this;
}
public SearchDetails andObjectLastModified (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.object_last_updated_date", FIELD_ObjectLastModified);
return this;
}
public SearchDetails andJobTitle (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.job_title", "JobTitle");
return this;
}
public SearchDetails andJobDescription (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.job_description", "JobDescription");
return this;
}
public SearchDetails andJobStatus (QueryFilter<JobStatus> filter)
{
filter.addFilter (context, "tl_job.job_status", "JobStatus");
return this;
}
public SearchDetails andOpenDate (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.open_date", "OpenDate");
return this;
}
public SearchDetails andApplyBy (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.apply_by", "ApplyBy");
return this;
}
public SearchDetails andIncludeAssessmentCriteria (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job.include_assessment_criteria", "IncludeAssessmentCriteria");
return this;
}
public SearchDetails andAssessmentType (QueryFilter<AssessmentType> filter)
{
filter.addFilter (context, "tl_job.assessment_type", "AssessmentType");
return this;
}
public SearchDetails andRandomKey (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.random_key", "RandomKey");
return this;
}
public SearchDetails andJobType (QueryFilter<JobType> filter)
{
filter.addFilter (context, "tl_job.job_type", "JobType");
return this;
}
public SearchDetails andReferenceNumber (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.ref_number", "ReferenceNumber");
return this;
}
public SearchDetails andLastStatusChangeDate (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.last_status_change_date", "LastStatusChangeDate");
return this;
}
public SearchDetails andRemote (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job.remote", "Remote");
return this;
}
public SearchDetails andCity (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.city", "City");
return this;
}
public SearchDetails andPostCode (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.postcode", "PostCode");
return this;
}
public SearchDetails andExpectedCandidateRadius (QueryFilter<LocationRadius> filter)
{
filter.addFilter (context, "tl_job.location_radius", "ExpectedCandidateRadius");
return this;
}
public SearchDetails andState (QueryFilter<State> filter)
{
filter.addFilter (context, "tl_job.state", "State");
return this;
}
public SearchDetails andCountry (QueryFilter<Countries> filter)
{
filter.addFilter (context, "tl_job.country", "Country");
return this;
}
public SearchDetails andRequireCV (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job.require_cv", "RequireCV");
return this;
}
public SearchDetails andIsManuallyClosed (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job.manually_closed", "IsManuallyClosed");
return this;
}
public SearchDetails andLastEdited (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_job.last_edited", "LastEdited");
return this;
}
public SearchDetails andIsPPJ (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job.is_ppj", "IsPPJ");
return this;
}
public SearchDetails andIndustry (QueryFilter<Industry> filter)
{
filter.addFilter (context, "tl_job.industry", "Industry");
return this;
}
public SearchDetails andCultureStatement (QueryFilter<String> filter)
{
filter.addFilter (context, "tl_job.culture_statement", "CultureStatement");
return this;
}
public SearchDetails andLevel (QueryFilter<Level> filter)
{
filter.addFilter (context, "tl_job.level_id", "Level");
return this;
}
public SearchDetails andClient (QueryFilter<Client> filter)
{
filter.addFilter (context, "tl_job.client_id", "Client");
return this;
}
public SearchDetails andJobOwner (QueryFilter<CompanyUser> filter)
{
filter.addFilter (context, "tl_job.job_owner_id", "JobOwner");
return this;
}
public SearchDetails andCreatedBy (QueryFilter<CompanyUser> filter)
{
filter.addFilter (context, "tl_job.company_user_id", "CreatedBy");
return this;
}
public SearchDetails andHiringTeam (QueryFilter<HiringTeam> filter)
{
filter.addFilter (context, "tl_job.hiring_team_id", "HiringTeam");
return this;
}
public SearchDetails andOccupation (QueryFilter<Occupation> filter)
{
filter.addFilter (context, "tl_job.occupation_id", "Occupation");
return this;
}
public SearchDetails andShortenedURL (QueryFilter<ShortenedURL> filter)
{
filter.addFilter (context, "tl_job.shortened_url_id", "ShortenedURL");
return this;
}
public Job[]
search (ObjectTransaction transaction) throws StorageException
{
BaseBusinessClass[] results = super.search (transaction, REFERENCE_Job, SEARCH_Details, criteria);
Set<Job> typedResults = new LinkedHashSet <Job> ();
for (BaseBusinessClass bbcResult : results)
{
Job aResult = (Job)bbcResult;
typedResults.add (aResult);
}
return ObjstoreUtils.removeDeleted(transaction, typedResults).toArray (new Job[0]);
}
}
public static Job[]
searchDetails (ObjectTransaction transaction, String Name) throws StorageException
{
return SearchByDetails ()
.byName (Name)
.search (transaction);
}
public Object getAttribute (String attribName)
......
......@@ -472,7 +472,7 @@ public class Job extends BaseJob
public Boolean isClientAvailable()
{
return getClient() != null && getCreatedBy() != null && isTrue(getCreatedBy().getCompany().getHasClientSupport());
return getClient() != null && getHiringTeam()!= null && isTrue(getHiringTeam().getHasClientSupport());
}
......@@ -482,9 +482,9 @@ public class Job extends BaseJob
{
return getClient().getClientLogo();
}
else if(getCreatedBy() != null)
else if(getHiringTeam() != null)
{
return getCreatedBy().getCompany().getCompanyLogo();
return getHiringTeam().getHiringTeamLogo();
}
return null;
......
......@@ -77,6 +77,14 @@
<TABLE name="tl_company" join="tl_company.object_id = oneit_sec_user_extension.company_id"/>
<PARAM name="Company" type="Company" transform="Company.getObjectID ()" paramFilter="tl_company.object_id = ${Company}"/>
</SEARCH>
<SEARCH type="Details" paramFilter="tl_job.object_id is not null" orderBy="tl_job.object_id">
<!--<TABLE name="ss_address" join="ss_address.object_id = ss_strata_company.address_id"/>-->
<PARAM name="Name" type="String" transform=' "%" + Name + "%" '
paramFilter="tl_job.job_title ILIKE ${Name} OR
tl_job.ref_number ILIKE ${Name}">
</PARAM>
</SEARCH>
</BUSINESSCLASS>
</ROOT>
\ No newline at end of file
......@@ -369,6 +369,10 @@ public class JobPersistenceMgr extends ObjectPersistenceMgr
{
throw new RuntimeException ("NOT implemented: executeSearchQueryCompany");
}
public ResultSet executeSearchQueryDetails (SQLManager sqlMgr, String Name) throws SQLException
{
throw new RuntimeException ("NOT implemented: executeSearchQueryDetails");
}
......@@ -620,6 +624,56 @@ public class JobPersistenceMgr extends ObjectPersistenceMgr
return results;
}
else if (searchType.equals (Job.SEARCH_Details))
{
// Local scope for transformed variables
{
if (criteria.containsKey("Name"))
{
String Name = (String)(criteria.get("Name"));
criteria.put ("Name", "%" + Name + "%" );
}
}
String orderBy = " ORDER BY tl_job.object_id";
String tables = " ";
Set<String> joinTableSet = new HashSet<String>();
String filter;
Object[] searchParams; // paramFilter: tl_job.object_id is not null
String preFilter = "(tl_job.object_id is not null)"
+ " ";
if (criteria.containsKey("Name"))
{
preFilter += " AND (tl_job.job_title ILIKE ${Name} OR tl_job.ref_number ILIKE ${Name}) ";
preFilter += "";
}
preFilter += context.getLoadingAttributes ().getCustomSQL() ;
SearchParamTransform tx = new SearchParamTransform (criteria);
filter = StringUtils.replaceParams (preFilter, tx);
searchParams = tx.getParamsArray();
Integer maxRows = context.getLoadingAttributes ().getMaxRows ();
boolean truncateExtra = !context.getLoadingAttributes ().isFailIfMaxExceeded();
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_job " + tables + tableSetToSQL(joinTableSet) +
"WHERE " + SELECT_JOINS + " " + filter + orderBy;
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, searchParams, maxRows, truncateExtra);
return results;
}
else
{
......
package performa.search;
import oneit.objstore.BaseBusinessClass;
import performa.orm.Job;
public class SearchJob extends BaseSearchJob
{
private static final long serialVersionUID = 0L;
// This constructor should not be called
public SearchJob ()
{
}
@Override
public BaseBusinessClass[] doSearch()
{
return Job.searchDetails(getTransaction(), getDetails());
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<ROOT xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://www.oneit.com.au/schemas/5.2/BusinessObject.xsd'>
<BUSINESSCLASS name="SearchJob" package="performa.search" superclass="SearchExecutor" >
<IMPORT value="oneit.servlets.orm.*" />
<TABLE name="it_does_not_matter" tablePrefix="object" polymorphic="FALSE" >
<ATTRIB name="Details" type="String" dbcol="xxxx" />
</TABLE>
</BUSINESSCLASS>
</ROOT>
\ No newline at end of file
......@@ -52,6 +52,14 @@
<a href="<%= goToPage+"&JobID="+job.getObjectID() %>">
<oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML" />
</a>
<%
if(job.getReferenceNumber() != null)
{
%>
&nbsp;(<oneit:toString value="<%= job.getReferenceNumber() %>" mode="EscapeHTML" />)
<%
}
%>
</div>
<div class="job-company-name">
<span class="superlaw">
......
<%@ page import="performa.orm.*, performa.orm.types.*, performa.form.*, performa.utils.*"%>
<%@ page import="performa.orm.*, performa.orm.types.*, performa.form.*, performa.utils.*, performa.search.*"%>
<%@ page import="performa.intercom.utils.*, performa.intercom.resources.User, com.stripe.model.*"%>
<%@ page import="oneit.objstore.rdbms.filters.*, oneit.security.jsp.SecUserToNameTransform, oneit.servlets.utils.*, oneit.utils.image.*, oneit.objstore.utils.ObjstoreUtils "%>
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