Commit a8854243 by Nilu

when a hiring team doesnt manage its own billing - using the assigned team's job…

when a hiring team doesnt manage its own billing - using the assigned team's job availability to open a job
parent 6c8bbd5c
......@@ -42,4 +42,6 @@
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_hiring_team" indexName="idx_tl_hiring_team_company_id" isUnique="false"><column name="company_id"/></NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_hiring_team" indexName="idx_tl_hiring_team_billing_team_id" isUnique="false"><column name="billing_team_id"/></NODE>
</NODE></OBJECTS>
\ No newline at end of file
......@@ -52,3 +52,6 @@ ALTER TABLE tl_hiring_team ADD
CREATE INDEX idx_tl_hiring_team_company_id
ON tl_hiring_team (company_id);
CREATE INDEX idx_tl_hiring_team_billing_team_id
ON tl_hiring_team (billing_team_id);
......@@ -53,3 +53,6 @@ ALTER TABLE tl_hiring_team ADD
CREATE INDEX idx_tl_hiring_team_company_id
ON tl_hiring_team (company_id);
CREATE INDEX idx_tl_hiring_team_billing_team_id
ON tl_hiring_team (billing_team_id);
......@@ -53,3 +53,6 @@ ALTER TABLE tl_hiring_team ADD
CREATE INDEX idx_tl_hiring_team_company_id
ON tl_hiring_team (company_id);
CREATE INDEX idx_tl_hiring_team_billing_team_id
ON tl_hiring_team (billing_team_id);
......@@ -58,13 +58,13 @@ public class AddHiringTeamFP extends SaveFP
if(hiringTeam.getManageOwnBilling())
{
hiringTeam.setBillingTeam(null);
hiringTeam.setBilledByTeam(null);
StripeUtils.createCustomer(hiringTeam);
}
else
{
hiringTeam.setBillingTeam(company.getBillingTeam());
hiringTeam.setBilledByTeam(company.getBillingTeam());
}
LogMgr.log(LOG, LogLevel.PROCESSING1, "New hiring team created : ", hiringTeam);
......
......@@ -39,7 +39,7 @@ public class SaveCompanyFP extends SaveFP
if(hiringTeam.getManageOwnBilling())
{
hiringTeam.setBillingTeam(null);
hiringTeam.setBilledByTeam(null);
if(hiringTeam.getStripeReference() == null)
{
......@@ -143,7 +143,7 @@ public class SaveCompanyFP extends SaveFP
if(hiringTeam != null && !hiringTeam.getManageOwnBilling())
{
BusinessObjectParser.assertFieldCondition(hiringTeam.getBillingTeam() != null, hiringTeam , HiringTeam.SINGLEREFERENCE_BillingTeam, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(hiringTeam.getBilledByTeam() != null, hiringTeam , HiringTeam.SINGLEREFERENCE_BilledByTeam, "mandatory", exceptions, true, request);
}
super.validate(process, submission, exceptions, params);
......
......@@ -36,6 +36,7 @@ public class SaveJobFP extends SaveFP
CompanyUser companyUser = secUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
Company company = companyUser.getCompany();
HiringTeam hiringTeam = job.getHiringTeam();
HiringTeam billingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam : hiringTeam.getBilledByTeam();
LogMgr.log(Job.LOG, LogLevel.PROCESSING1,"In SaveJobFP saving job : ", job );
......@@ -53,16 +54,16 @@ public class SaveJobFP extends SaveFP
job.setApplyBy(DateDiff.add(DateDiff.getToday(), Calendar.DATE, 30));
job.setOpenDate(new Date());
if (!hiringTeam.canCreateJob())
if (!billingTeam.canCreateJob())
{
throw new BusinessException("Please change payment plan settings to open this job");
}
hiringTeam.setUsedCredits(NullArith.add(hiringTeam.getUsedCredits(), 1).intValue());
billingTeam.setUsedCredits(NullArith.add(billingTeam.getUsedCredits(), 1).intValue());
if(hiringTeam.getUsedCredits() > hiringTeam.getAvailableCredits())
if(billingTeam.getUsedCredits() > billingTeam.getAvailableCredits())
{
StripeUtils.recordUsage(hiringTeam);
StripeUtils.recordUsage(billingTeam);
}
if(status == JobStatus.OPEN)
......@@ -126,8 +127,8 @@ public class SaveJobFP extends SaveFP
JobStatus status = (JobStatus) request.getAttribute("JobStatus");
SecUser loggedInUser = SecUser.getTXUser(process.getTransaction());
CompanyUser companyUser = loggedInUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
Company company = companyUser.getCompany();
HiringTeam hiringTeam = job.getHiringTeam();
HiringTeam billingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam : hiringTeam.getBilledByTeam();
if(job.getJobStatus() != JobStatus.DRAFT || openJob == Boolean.TRUE)
{
......@@ -146,15 +147,15 @@ public class SaveJobFP extends SaveFP
// if(company.getSelectedPaymentPlan() != null)
// {
BusinessObjectParser.assertFieldCondition(hiringTeam.canCreateJob() , job, Job.FIELD_JobStatus, "insufficientCredit", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(billingTeam.canCreateJob() , job, Job.FIELD_JobStatus, "insufficientCredit", exceptions, true, request);
// }
}
if(job.getJobStatus() == JobStatus.OPEN)
{
BusinessObjectParser.assertFieldCondition(hiringTeam.getCardID() != null , hiringTeam, HiringTeam.FIELD_CardID, "mandatoryCardDetails", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(billingTeam.getCardID() != null , billingTeam, HiringTeam.FIELD_CardID, "mandatoryCardDetails", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(hiringTeam.canCreateJob() , job, Job.FIELD_JobStatus, "insufficientCredit", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(billingTeam.canCreateJob() , job, Job.FIELD_JobStatus, "insufficientCredit", exceptions, true, request);
}
super.validate(process, submission, exceptions, params);
......
......@@ -148,9 +148,14 @@ public class HiringTeam extends BaseHiringTeam
public boolean canCreateJob()
{
if(getManageOwnBilling())
{
return getAvailableCredits() > getUsedCredits() || !getHasCap() || (getHasCap() && getMaxCap() > getUsedCredits());
}
return getBilledByTeam().canCreateJob();
}
@Override
public FieldWriteability getWriteability_ManageOwnBilling()
{
......@@ -163,7 +168,7 @@ public class HiringTeam extends BaseHiringTeam
}
@Override
public FieldWriteability getWriteability_BillingTeam()
public FieldWriteability getWriteability_BilledByTeam()
{
if(!getManageOwnBilling())
{
......
......@@ -10,6 +10,7 @@
<MULTIPLEREFERENCE name="Users" type="CompanyUserHiringTeamLink" backreferenceName="HiringTeam" />
<MULTIPLEREFERENCE name="Clients" type="Client" backreferenceName="HiringTeam" />
<MULTIPLEREFERENCE name="BillingTeams" type="HiringTeam" backreferenceName="BilledByTeam" />
<TRANSIENT name="IsLogoDeleted" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="CouponCode" type="String" length="20"/>
......@@ -45,7 +46,7 @@
<ATTRIB name="CouponExpiryDate" type="Date" dbcol="coupon_expiry_date" />
<SINGLEREFERENCE name="Company" type="Company" dbcol="company_id" mandatory="true" backreferenceName="HiringTeams" />
<SINGLEREFERENCE name="BillingTeam" type="HiringTeam" dbcol="billing_team_id" mandatory="false" />
<SINGLEREFERENCE name="BilledByTeam" type="HiringTeam" dbcol="billing_team_id" mandatory="false" backreferenceName="BillingTeams" />
<SINGLEREFERENCE name="AddedByUser" type="CompanyUser" dbcol="added_by_user_id" mandatory="true" />
<SINGLEREFERENCE name="PaymentPlan" type="PaymentPlan" dbcol="payment_plan_id" mandatory="false" />
<SINGLEREFERENCE name="Coupon" type="StripeCoupon" dbcol="coupon_id" mandatory="false" />
......
......@@ -294,7 +294,7 @@ public class StripeUtils
Map<String, Object> params = new HashMap<>();
Date now = new Date();
HiringTeam billingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam: hiringTeam.getBillingTeam();
HiringTeam billingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam: hiringTeam.getBilledByTeam();
params.put("quantity", 1);
params.put("timestamp", now.getTime() / 1000L);
......
......@@ -17,6 +17,11 @@
boolean fromJob = request.getParameter("fromJob") != null ? Boolean.parseBoolean(request.getParameter("fromJob")) : false;
String nextPage = WebUtils.getSamePageInRenderMode(request, (fromJob ? "Page" : WebUtils.VIEW_APPLICANTS));
HiringTeam hiringTeam = job.getHiringTeam();
HiringTeam billlingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam : hiringTeam.getBilledByTeam();
Integer activeCount = billlingTeam.getUsedCredits();
Integer totCount = billlingTeam.getAvailableCredits();
Integer remCount = (totCount - activeCount) > 0 ? (totCount - activeCount) : 0;
%>
<script>
function copyToClipboard() {
......@@ -71,7 +76,7 @@
<oneit:button value="<%= "Go to Job" + (fromJob ? "s" : "")%>" name="gotoPage" cssClass="btn btn-primary largeBtn"
requestAttribs='<%= CollectionUtils.mapEntry("nextPage", nextPage).toMap() %>'/>
</div>
<div class="space-55">You have 4 jobs remaining for this month.</div>
<div class="space-55">You have <%= remCount %> jobs remaining for this month.</div>
</div>
<div class="job-desc-box">
......
......@@ -19,7 +19,7 @@
if(ownBilling)
{
hiringTeam.setBillingTeam(null);
hiringTeam.setBilledByTeam(null);
}
%>
</oneit:form>
\ No newline at end of file
......@@ -32,8 +32,9 @@
Debug.assertion(job != null, "Job is null in admin portal create job");
HiringTeam hiringTeam = job.getHiringTeam();
HiringTeam billlingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam : hiringTeam.getBilledByTeam();
process.setAttribute("HiringTeam", hiringTeam);
process.setAttribute("HiringTeam", billlingTeam);
%>
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
......@@ -44,10 +45,10 @@
<h1 class="page-title">Review Job
<%
if(hiringTeam.getPaymentPlan() != null)
if(billlingTeam.getPaymentPlan() != null)
{
Integer activeCount = hiringTeam.getUsedCredits();
Integer totCount = hiringTeam.getAvailableCredits();
Integer activeCount = billlingTeam.getUsedCredits();
Integer totCount = billlingTeam.getAvailableCredits();
Integer remCount = (totCount - activeCount) > 0 ? (totCount - activeCount) : 0;
%>
<div style="float:right;">
......@@ -106,7 +107,7 @@
</span>
</div>
<%
if(job.getHiringTeam().showHasClientSupport())
if(hiringTeam.showHasClientSupport())
{
%>
<div class="col-md-6 review-medium-title">
......@@ -347,7 +348,7 @@
.toMap() %>" />
<%
if(hiringTeam.getCardID() == null)
if(billlingTeam.getCardID() == null)
{
%>
<oneit:button value="Open this Job" name="saveJob" cssClass="btn btn-primary btn-green top-margin-25 largeBtn"
......@@ -359,14 +360,14 @@
.toMap() %>" />
<%
}
else if(hiringTeam.isTrue(hiringTeam.getIsPPJ()))
else if(billlingTeam.isTrue(billlingTeam.getIsPPJ()))
{
%>
<oneit:button value="Open this Job" name="savePayment" cssClass="btn btn-primary btn-green top-margin-25 largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", sharingPage).toMap() %>" />
<%
}
else if(hiringTeam.canCreateJob())
else if(billlingTeam.canCreateJob())
{
%>
<oneit:button value="Open this Job" name="saveJob" cssClass="btn btn-primary btn-green top-margin-25 largeBtn"
......
......@@ -45,4 +45,4 @@ HiringTeam.HasClientSupport = We help clients with hiring
HiringTeam.HiringTeamLogo = Hiring Team Logo
HiringTeam.HiringTeamType = Hiring Team Type
HiringTeam.HiringTeamName = Hiring Team Name
HiringTeam.BillingTeam = Billing Team
HiringTeam.BilledByTeam = Billing Team
......@@ -135,7 +135,7 @@
<div class="col-md-6">
<oneit:recalcClass htmlTag="div" classScript="hiringTeam.getManageOwnBilling() ? 'hide': 'show'" hiringTeam="<%= hiringTeam %>">
<div class="wider-select">
<tagfile:ormsingleasso_select obj="<%= hiringTeam %>" assocName="BillingTeam" options="<%= Utils.getOtherHiringTeams(hiringTeam) %>"/>
<tagfile:ormsingleasso_select obj="<%= hiringTeam %>" assocName="BilledByTeam" options="<%= Utils.getOtherHiringTeams(hiringTeam) %>"/>
</div>
</oneit:recalcClass>
</div>
......
......@@ -37,5 +37,9 @@
<column name="company_id"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_hiring_team" indexName="idx_tl_hiring_team_billing_team_id" isUnique="false">
<column name="billing_team_id"/>
</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