Commit 6aa76736 by Nilu

S21285830 # Client - Incoming Issues (raised by Client) #Applicant Sateg is not…

S21285830 # Client - Incoming Issues (raised by Client) #Applicant Sateg is not refreshed when tabs clicked
parent baf67f61
package performa.search;
import oneit.objstore.BaseBusinessClass;
import java.util.ArrayList;
import java.util.List;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.objstore.*;
import oneit.objstore.rdbms.filters.EqualsFilter;
import performa.orm.Answer;
import performa.orm.AssessmentCriteriaAnswer;
import performa.orm.CultureCriteriaAnswer;
import performa.orm.JobApplication;
import oneit.objstore.services.TransactionTask;
import oneit.utils.parsers.FieldException;
import performa.orm.*;
import performa.orm.types.*;
public class SearchApplicant extends BaseSearchApplicant
{
private static final long serialVersionUID = 0L;
public static final LoggingArea LOG = LoggingArea.createLoggingArea("SearchApplicant");
// This constructor should not be called
public SearchApplicant ()
{
......@@ -21,41 +27,61 @@ public class SearchApplicant extends BaseSearchApplicant
@Override
public BaseBusinessClass[] doSearch()
{
JobApplication[] appResults = JobApplication.SearchByDetails()
.byName(getDetails())
.andJob(new EqualsFilter<>(getJob()))
.search(getTransaction());
// add to make sure to have any new ones
if(getJob() != null)
final List<JobApplication> appResults = new ArrayList<>();
try
{
for(JobApplication app : appResults)
{
Answer[] answers = Answer.SearchByAll().andCandidate(new EqualsFilter<>(app.getCandidate())).search(getTransaction());
for (Answer answer: answers)
getTransaction().runInNewTX(new TransactionTask()
{
@Override
public void run(ObjectTransaction newObjTran) throws FieldException, StorageException
{
app.getCandidate().addToProfileAssessmentAnswers(answer);
}
AssessmentCriteriaAnswer[] requirements = AssessmentCriteriaAnswer.SearchByAll().andJobApplication(new EqualsFilter<>(app)).search(getTransaction());
for (AssessmentCriteriaAnswer requirement: requirements)
{
app.addToAssessmentCriteriaAnswers(requirement);
}
CultureCriteriaAnswer[] cultures = CultureCriteriaAnswer.SearchByAll().andCandidate(new EqualsFilter<>(app.getCandidate())).search(getTransaction());
for (CultureCriteriaAnswer culture: cultures)
{
app.getCandidate().addToCultureCriteriaAnswers(culture);
JobApplication[] results = JobApplication.SearchByDetails()
.byName(getDetails())
.andJob(new EqualsFilter<>(getJob()))
.search(newObjTran);
for(JobApplication app : results)
{
ApplicationStatus appStatus = app.getApplicationStatus();
app = app.getInTransaction(getTransaction());
app.setApplicationStatus(appStatus);
Answer[] answers = Answer.SearchByAll().andCandidate(new EqualsFilter<>(app.getCandidate())).search(getTransaction());
for (Answer answer: answers)
{
app.getCandidate().addToProfileAssessmentAnswers(answer);
}
AssessmentCriteriaAnswer[] requirements = AssessmentCriteriaAnswer.SearchByAll().andJobApplication(new EqualsFilter<>(app)).search(getTransaction());
for (AssessmentCriteriaAnswer requirement: requirements)
{
app.addToAssessmentCriteriaAnswers(requirement);
}
CultureCriteriaAnswer[] cultures = CultureCriteriaAnswer.SearchByAll().andCandidate(new EqualsFilter<>(app.getCandidate())).search(getTransaction());
for (CultureCriteriaAnswer culture: cultures)
{
app.getCandidate().addToCultureCriteriaAnswers(culture);
}
getJob().addToJobApplications(app);
appResults.add(app);
}
}
getJob().addToJobApplications(app);
}
});
}
catch (FieldException | StorageException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING2 , ex, "Error when searching job applications");
}
return appResults;
return appResults.toArray(new JobApplication[0]);
}
}
\ 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