Merge branch 'dev' of bitbucket.org:jubilian/nhance into dev
This commit is contained in:
commit
bf48c2c0ac
@ -914,6 +914,8 @@ $routes->group('sales', function($routes) {
|
||||
$routes->get('/', 'SalesController::index');
|
||||
|
||||
$routes->get('loadactivities', 'SalesController::loadactivities');
|
||||
|
||||
$routes->get('loadtargets', 'SalesController::loadtargets');
|
||||
|
||||
$routes->get('page/(:segment)', 'SalesController::noPage/$1');
|
||||
|
||||
|
||||
@ -53,6 +53,15 @@ class SalesController extends BaseController
|
||||
return $this->loadLayout('sales/activity_view', $data);
|
||||
}
|
||||
|
||||
public function loadtargets(){
|
||||
$data = $this->getSalesStaffData();
|
||||
|
||||
$data['tab_name'] = 'Team Target';
|
||||
$data['page_name'] = 'Team Target';
|
||||
|
||||
return $this->loadLayout('sales/target_view', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* HELPER: Fetches Sales Managers based on the logged-in user's role and branch
|
||||
*/
|
||||
@ -1001,7 +1010,7 @@ class SalesController extends BaseController
|
||||
->findAll();
|
||||
|
||||
$data = [
|
||||
'target' => $targetAmount,
|
||||
'target_amt' => $targetAmount,
|
||||
'achieved' => $achievedAmount,
|
||||
'remaining' => $remainingAmount,
|
||||
'percent' => $achievementPercent,
|
||||
|
||||
@ -2104,6 +2104,11 @@
|
||||
<!-- <li>
|
||||
<a href="<?= base_url('sales/page/Team') ?>"><i class="ri-bar-chart-line"></i> Sales Team </a>
|
||||
</li> -->
|
||||
<?php if (in_array(get_role_id(), [1, 5])){ ?>
|
||||
<li>
|
||||
<a href="<?= base_url('sales/loadtargets') ?>"><i class="ri-group-2-fill"></i> Team Targets </a>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
@ -452,6 +452,33 @@
|
||||
policyEnd.attr("id", end_date_id);
|
||||
$("label[for='policy_end_date'], label[for^='policy_end_date_']").attr("for", end_date_id);
|
||||
}, 3000);
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#salse_person_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
$('#client_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
$('#client_branch_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
@ -1241,6 +1268,15 @@
|
||||
var lead_type = $('#lead_type').val();
|
||||
leadTypeBsedHideAndShow(lead_type)
|
||||
|
||||
$('#policy_type_id_' + increment).parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
|
||||
$('#insurer_' + increment).select2();
|
||||
$('#tpa_' + increment).select2();
|
||||
$('#proposed_insurer_' + increment).select2();
|
||||
|
||||
@ -432,6 +432,42 @@
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#salse_person_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
$('#client_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
$('#client_branch_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
$('#policy_type_id').parsley({
|
||||
errorsContainer: function(ParsleyField) {
|
||||
if (ParsleyField.$element.hasClass('select2-hidden-accessible')) {
|
||||
return ParsleyField.$element.siblings('.select2-container');
|
||||
}
|
||||
return ParsleyField.$element;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
|
||||
|
||||
@ -406,7 +406,7 @@ $(document).ready(function() {
|
||||
$('.searchable').each(function() {
|
||||
let parentModal = $(this).closest('.modal');
|
||||
$(this).select2({
|
||||
placeholder: "Select User",
|
||||
placeholder: "Select..",
|
||||
dropdownParent: parentModal.length ? parentModal : $(document.body)
|
||||
});
|
||||
});
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
|
||||
<div class="target-card">
|
||||
<div style="font-size:11px; color:#999; letter-spacing: 1px; font-weight: 600;">YEARLY TARGET</div>
|
||||
<div class="target-amount">₹<?= number_format($target / 100000, 1) ?>L</div>
|
||||
<div class="target-amount">₹<?= number_format($target_amt / 100000, 1) ?>L</div>
|
||||
<div style="font-size:12px; color:#777;"><?= $display_fin_years ?></div>
|
||||
|
||||
<div class="chart-circle" style="position: absolute; right: 40px; top: 35px; width: 75px; height: 75px;">
|
||||
|
||||
@ -604,7 +604,7 @@ $(document).ready(function() {
|
||||
$('.searchable').each(function() {
|
||||
let parentModal = $(this).closest('.modal');
|
||||
$(this).select2({
|
||||
placeholder: "Select User",
|
||||
placeholder: "Select..",
|
||||
dropdownParent: parentModal.length ? parentModal : $(document.body)
|
||||
});
|
||||
});
|
||||
@ -1592,7 +1592,7 @@ if (btnSaveContact) {
|
||||
// Use .value instead of .val()
|
||||
let name = document.getElementById('contact_name').value.trim();
|
||||
let mobile = document.getElementById('contact_mobile').value.trim();
|
||||
let lead_id = document.getElementById('lead_id').value.trim();
|
||||
let lead_id = document.getElementById('hidden_lead_id').value.trim();
|
||||
|
||||
if (!name || !mobile) {
|
||||
return toastr.warning('Please enter both contact person name and mobile number.');
|
||||
|
||||
Loading…
Reference in New Issue
Block a user