Commit dec39df6 by Nilu

Adding job count and draft job count to intercom

parent ec492124
...@@ -33,7 +33,7 @@ public class SaveCompanyFP extends SaveFP ...@@ -33,7 +33,7 @@ public class SaveCompanyFP extends SaveFP
} }
// Update company in intercom // Update company in intercom
IntercomUtils.updateCompany(company); IntercomUtils.updateCompany(company, process.getTransaction());
return super.processForm(process, submission, params); return super.processForm(process, submission, params);
} }
......
...@@ -7,12 +7,15 @@ import java.util.Map; ...@@ -7,12 +7,15 @@ import java.util.Map;
import oneit.logging.LogLevel; import oneit.logging.LogLevel;
import oneit.logging.LogMgr; import oneit.logging.LogMgr;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.security.SecUser;
import oneit.servlets.forms.SubmissionDetails; import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult; import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState; import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP; import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException; import oneit.utils.BusinessException;
import oneit.utils.DateDiff; import oneit.utils.DateDiff;
import performa.intercom.utils.IntercomUtils;
import performa.orm.CompanyUser;
import performa.orm.Job; import performa.orm.Job;
import performa.orm.types.JobStatus; import performa.orm.types.JobStatus;
...@@ -30,19 +33,17 @@ public class SaveJobFP extends SaveFP ...@@ -30,19 +33,17 @@ public class SaveJobFP extends SaveFP
Job oldJob = (Job) job.getEarliestBackup(); 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.setJobStatus(JobStatus.OPEN);
job.setOpenDate(new Date());
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.setApplyBy(DateDiff.add(DateDiff.getToday(), Calendar.DATE, 30));
job.setOpenDate(new Date()); job.setOpenDate(new Date());
LogMgr.log(Job.LOG, LogLevel.PROCESSING1,"Job status changed as Open. ", job );
} }
if(job.getJobStatus() == JobStatus.OPEN && job.getShortenedURL() == null) if(job.getJobStatus() == JobStatus.OPEN && job.getShortenedURL() == null)
...@@ -50,6 +51,18 @@ public class SaveJobFP extends SaveFP ...@@ -50,6 +51,18 @@ public class SaveJobFP extends SaveFP
job.createShortenedURL(); 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); return super.processForm(process, submission, params);
} }
} }
\ No newline at end of file
...@@ -87,7 +87,7 @@ public class SaveUserDetailsFP extends SaveFP ...@@ -87,7 +87,7 @@ public class SaveUserDetailsFP extends SaveFP
if(intercomUser == null) 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()); IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany, companyUser.getPhone());
} }
......
...@@ -134,7 +134,7 @@ public class SendCompanyUserInvitesFP extends SaveFP ...@@ -134,7 +134,7 @@ public class SendCompanyUserInvitesFP extends SaveFP
// Create company and the first user of it in intercom // 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()); IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany, companyUser.getPhone());
......
package performa.intercom.utils; package performa.intercom.utils;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import oneit.logging.LogLevel; import oneit.logging.LogLevel;
import oneit.logging.LogMgr; import oneit.logging.LogMgr;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.security.SecUser; import oneit.security.SecUser;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import performa.intercom.resources.Company; import performa.intercom.resources.Company;
import performa.intercom.resources.CustomAttribute; import performa.intercom.resources.CustomAttribute;
import performa.intercom.resources.Intercom; import performa.intercom.resources.Intercom;
import performa.intercom.resources.User; import performa.intercom.resources.User;
import performa.orm.Job;
import performa.orm.types.JobStatus;
import performa.utils.Utils; import performa.utils.Utils;
...@@ -93,7 +101,7 @@ public class IntercomUtils ...@@ -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 try
{ {
...@@ -102,6 +110,13 @@ public class IntercomUtils ...@@ -102,6 +110,13 @@ public class IntercomUtils
intercomCompany.setName(company.getCompanyName()); intercomCompany.setName(company.getCompanyName());
intercomCompany.setCompanyID(company.getID().toString()); 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); return Company.create(intercomCompany);
} }
catch (Exception e) catch (Exception e)
...@@ -132,7 +147,7 @@ public class IntercomUtils ...@@ -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 try
{ {
...@@ -140,11 +155,19 @@ public class IntercomUtils ...@@ -140,11 +155,19 @@ public class IntercomUtils
if(intercomCompany == null) if(intercomCompany == null)
{ {
createIntercomCompany(company); createIntercomCompany(company, transaction);
} }
else else
{ {
intercomCompany.setName(company.getCompanyName()); 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); Company.update(intercomCompany);
} }
} }
...@@ -156,13 +179,13 @@ public class IntercomUtils ...@@ -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); Company intercomCompany = findCompanyByID(company);
if(intercomCompany == null) if(intercomCompany == null)
{ {
intercomCompany = createIntercomCompany(company); intercomCompany = createIntercomCompany(company, transaction);
} }
return intercomCompany; return intercomCompany;
......
...@@ -206,7 +206,7 @@ ...@@ -206,7 +206,7 @@
<% } %> <% } %>
<div class="text-center"> <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) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", jobsPage)
.mapEntry ("restartProcess", Boolean.TRUE) .mapEntry ("restartProcess", Boolean.TRUE)
.mapEntry ("attribNamesToRestore", Collections.singleton("Job")) .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