Commit dec39df6 by Nilu

Adding job count and draft job count to intercom

parent ec492124
......@@ -33,7 +33,7 @@ public class SaveCompanyFP extends SaveFP
}
// Update company in intercom
IntercomUtils.updateCompany(company);
IntercomUtils.updateCompany(company, process.getTransaction());
return super.processForm(process, submission, params);
}
......
......@@ -7,12 +7,15 @@ import java.util.Map;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.objstore.StorageException;
import oneit.security.SecUser;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.DateDiff;
import performa.intercom.utils.IntercomUtils;
import performa.orm.CompanyUser;
import performa.orm.Job;
import performa.orm.types.JobStatus;
......@@ -30,19 +33,17 @@ public class SaveJobFP extends SaveFP
Job oldJob = (Job) job.getEarliestBackup();
if(oldJob != null && oldJob.getJobStatus() == JobStatus.DRAFT && job.getJobStatus() == JobStatus.OPEN)
if(openJob==Boolean.TRUE)
{
job.setApplyBy(DateDiff.add(DateDiff.getToday(), Calendar.DATE, 30));
job.setOpenDate(new Date());
job.setJobStatus(JobStatus.OPEN);
LogMgr.log(Job.LOG, LogLevel.PROCESSING1,"Job status changed as Open. ", job );
}
if(openJob==Boolean.TRUE)
if(oldJob != null && oldJob.getJobStatus() == JobStatus.DRAFT && job.getJobStatus() == JobStatus.OPEN)
{
job.setJobStatus(JobStatus.OPEN);
job.setApplyBy(DateDiff.add(DateDiff.getToday(), Calendar.DATE, 30));
job.setOpenDate(new Date());
LogMgr.log(Job.LOG, LogLevel.PROCESSING1,"Job status changed as Open. ", job );
}
if(job.getJobStatus() == JobStatus.OPEN && job.getShortenedURL() == null)
......@@ -50,6 +51,18 @@ public class SaveJobFP extends SaveFP
job.createShortenedURL();
}
// restarting process as job count needs to be updated to intercom
process.completeAndRestart();
SecUser secUser = SecUser.getTXUser(process.getTransaction());
CompanyUser companyUser = secUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
// Update company in intercom job count details
if(companyUser.getCompany() != null)
{
IntercomUtils.updateCompany(companyUser.getCompany(), process.getTransaction());
}
return super.processForm(process, submission, params);
}
}
\ No newline at end of file
......@@ -87,7 +87,7 @@ public class SaveUserDetailsFP extends SaveFP
if(intercomUser == null)
{
performa.intercom.resources.Company intercomCompany = IntercomUtils.findOrCreateCompany(companyUser.getCompany());
performa.intercom.resources.Company intercomCompany = IntercomUtils.findOrCreateCompany(companyUser.getCompany(), process.getTransaction());
IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany, companyUser.getPhone());
}
......
......@@ -134,7 +134,7 @@ public class SendCompanyUserInvitesFP extends SaveFP
// Create company and the first user of it in intercom
performa.intercom.resources.Company intercomCompany = IntercomUtils.findOrCreateCompany(company);
performa.intercom.resources.Company intercomCompany = IntercomUtils.findOrCreateCompany(company, objTran);
IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany, companyUser.getPhone());
......
package performa.intercom.utils;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.security.SecUser;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import performa.intercom.resources.Company;
import performa.intercom.resources.CustomAttribute;
import performa.intercom.resources.Intercom;
import performa.intercom.resources.User;
import performa.orm.Job;
import performa.orm.types.JobStatus;
import performa.utils.Utils;
......@@ -93,7 +101,7 @@ public class IntercomUtils
}
public static Company createIntercomCompany(performa.orm.Company company)
public static Company createIntercomCompany(performa.orm.Company company, ObjectTransaction transaction)
{
try
{
......@@ -102,6 +110,13 @@ public class IntercomUtils
intercomCompany.setName(company.getCompanyName());
intercomCompany.setCompanyID(company.getID().toString());
Job[] jobs = Job.searchCompany(transaction, company);
Filter filter = Job.SearchByAll().andJobStatus(new EqualsFilter<>(JobStatus.DRAFT));
Collection draftJobs = CollectionFilter.filter(Arrays.asList(jobs), filter);
intercomCompany.addCustomAttribute(CustomAttribute.newStringAttribute("job-count", jobs != null ? String.valueOf(jobs.length) : ""));
intercomCompany.addCustomAttribute(CustomAttribute.newStringAttribute("draft-job-count", String.valueOf(draftJobs.size())));
return Company.create(intercomCompany);
}
catch (Exception e)
......@@ -132,7 +147,7 @@ public class IntercomUtils
}
public static void updateCompany(performa.orm.Company company)
public static void updateCompany(performa.orm.Company company, ObjectTransaction transaction)
{
try
{
......@@ -140,11 +155,19 @@ public class IntercomUtils
if(intercomCompany == null)
{
createIntercomCompany(company);
createIntercomCompany(company, transaction);
}
else
{
intercomCompany.setName(company.getCompanyName());
Job[] jobs = Job.searchCompany(transaction, company);
Filter filter = Job.SearchByAll().andJobStatus(new EqualsFilter<>(JobStatus.DRAFT));
Collection draftJobs = CollectionFilter.filter(Arrays.asList(jobs), filter);
intercomCompany.addCustomAttribute(CustomAttribute.newStringAttribute("job-count", jobs != null ? String.valueOf(jobs.length) : ""));
intercomCompany.addCustomAttribute(CustomAttribute.newStringAttribute("draft-job-count", String.valueOf(draftJobs.size())));
Company.update(intercomCompany);
}
}
......@@ -156,13 +179,13 @@ public class IntercomUtils
}
public static Company findOrCreateCompany(performa.orm.Company company)
public static Company findOrCreateCompany(performa.orm.Company company, ObjectTransaction transaction)
{
Company intercomCompany = findCompanyByID(company);
if(intercomCompany == null)
{
intercomCompany = createIntercomCompany(company);
intercomCompany = createIntercomCompany(company, transaction);
}
return intercomCompany;
......
......@@ -206,7 +206,7 @@
<% } %>
<div class="text-center">
<oneit:button value="Save as Draft and go to your jobs" name="save" cssClass="btn btn-primary btn-gray largeBtn"
<oneit:button value="Save as Draft and go to your jobs" name="saveJob" cssClass="btn btn-primary btn-gray largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", jobsPage)
.mapEntry ("restartProcess", Boolean.TRUE)
.mapEntry ("attribNamesToRestore", Collections.singleton("Job"))
......
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