FIX_salesTracker10

This commit is contained in:
sanjeev.p 2026-02-27 16:06:39 +05:30
parent 9b154ee3a1
commit 7e9b188720
6 changed files with 37 additions and 18 deletions

View File

@ -78,7 +78,8 @@ class SalesController extends BaseController
$data = [
'users' => [],
'sales_manager_ids' => []
'sales_manager_ids' => [],
'sales_role' => ''
];
$row = $db->table('user_profiles')->select('*')
@ -89,6 +90,7 @@ class SalesController extends BaseController
// Is the logged-in user a Sales Manager? (Role 4, Team 5)
if ($role == 4 && in_array(5, $team_id)) {
$data['sales_role'] = "Sales Manager";
$data['sales_manager_ids'] = [$logged_user_id];
$data['users'] = [
@ -102,7 +104,7 @@ class SalesController extends BaseController
}
// Otherwise fetch ALL sales managers in this branch
elseif (in_array($role,[1,5])) {
$data['sales_role'] = "Sales Head";
$data['users'] = $db->table('user_profiles up')
->select('up.id, up.first_name, up.last_name, up.nhance_branch_id')
->join('user_teams ut', 'ut.user_id = up.id')

View File

@ -38,7 +38,7 @@ class SalesActivityModel extends Model
// Validation
protected $validationRules = [
'lead_id' => 'required|integer',
'activity_type' => 'required|in_list[Call,Email,Meeting,Demo,Share,Todo,Visit]',
'activity_type' => 'required|in_list[Call,Email,Meeting,Visit,Demo,Share Docs,To Do]',
'notes' => 'required',
'scheduled_date' => 'required',
'assigned_to' => 'required|integer',

View File

@ -256,8 +256,8 @@
<button type="button" class="activity-type-btn d_activity_type" data-type="Meeting" onclick="selectType('Meeting', this)">📅 Meeting</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Visit" onclick="selectType('Visit', this)">🚗 Visit</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Demo" onclick="selectType('Demo', this)">🖥️ Demo</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Share" onclick="selectType('Share', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Todo" onclick="selectType('Todo', this)"> To Do</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Share Docs" onclick="selectType('Share Docs', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="To Do" onclick="selectType('To Do', this)"> To Do</button>
</div>
</div>
<div class="form-group">
@ -326,8 +326,8 @@
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Meeting', this)">📅 Meeting</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Visit', this)">🚗 Visit</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Demo', this)">🖥️ Demo</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Share', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Todo', this)"> To Do</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Share Docs', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('To Do', this)"> To Do</button>
</div>
@ -429,7 +429,15 @@ function resetFlatpicker(){
});
}
const activityIcons = { Call: "📞", Email: "✉️", Meeting: "📅", Visit: "🚗",Demo: "🖥️", Share: "📄", Todo: "" };
const activityIcons = {
"Call": "📞",
"Email": "✉️",
"Meeting": "📅",
"Visit": "🚗",
"Demo": "🖥️",
"Share Docs": "📄",
"To Do": ""
};
const salesManagerIds = <?= json_encode($sales_manager_ids ?? []) ?>;
const API = '<?= base_url('sales') ?>';
@ -441,6 +449,7 @@ let selectedFollowUpActivityType = '';
let currentPage = 1;
let limit = 10;
let currentOffset = 0;
const department = '<?= $sales_role ?>';
function openModal(id) { document.getElementById(id).classList.add('active'); resetFlatpicker(); }

View File

@ -135,8 +135,8 @@
'Meeting' => '📅',
'Visit' => '🚗',
'Demo' => '🖥️',
'Share' => '📄',
'Todo' => '✓'
'Share Docs' => '📄',
'To Do' => '✓'
];
$icon = $activityIcons[$a['activity_type']] ?? '📌';
$statusClass = strtolower(str_replace(' ', '-', $a['status']));
@ -217,8 +217,8 @@
'Meeting' => ['color' => '#4299e1', 'icon' => '📅'],
'Visit' => ['color' => '#ecc94b', 'icon' => '🚗'],
'Demo' => ['color' => '#9f7aea', 'icon' => '🖥️'],
'Share' => ['color' => '#ed8936', 'icon' => '📄'],
'Todo' => ['color' => '#718096', 'icon' => '✓'],
'Share Docs' => ['color' => '#ed8936', 'icon' => '📄'],
'To Do' => ['color' => '#718096', 'icon' => '✓'],
];
?>

View File

@ -134,7 +134,7 @@
</div>
<?php endforeach; ?> -->
<?php foreach($upcoming as $u):
$activityIcons = [ 'Call' => '📞', 'Email' => '✉️', 'Meeting' => '📅', 'Visit' => '🚗', 'Demo' => '🖥️', 'Share' => '📄', 'Todo' => '✓' ];
$activityIcons = [ 'Call' => '📞', 'Email' => '✉️', 'Meeting' => '📅', 'Visit' => '🚗', 'Demo' => '🖥️', 'Share Docs' => '📄', 'To Do' => '✓' ];
$icon = $activityIcons[$u['activity_type']] ?? '📌';
$formattedscheduledDate = date('M d, Y, h:i A', strtotime($u['scheduled_date']));
?>

View File

@ -285,8 +285,8 @@
<button type="button" class="activity-type-btn d_activity_type" data-type="Meeting" onclick="selectType('Meeting', this)">📅 Meeting</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Visit" onclick="selectType('Visit', this)">🚗 Visit</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Demo" onclick="selectType('Demo', this)">🖥️ Demo</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Share" onclick="selectType('Share', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Todo" onclick="selectType('Todo', this)"> To Do</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="Share Docs" onclick="selectType('Share Docs', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn d_activity_type" data-type="To Do" onclick="selectType('To Do', this)"> To Do</button>
</div>
<div class="form-group">
@ -354,8 +354,8 @@
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Meeting', this)">📅 Meeting</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Visit', this)">🚗 Visit</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Demo', this)">🖥️ Demo</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Share', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Todo', this)"> To Do</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('Share Docs', this)">📄 Share Docs</button>
<button type="button" class="activity-type-btn f_activity_type" onclick="selectFollowUpActivityType('To Do', this)"> To Do</button>
</div>
@ -936,7 +936,15 @@ function renderCard(opps) {
}
function renderTimeline(acts) {
const cont = document.getElementById('timelineContainer');
const activityIcons = { Call: "📞", Email: "✉️", Meeting: "📅", Visit: "🚗",Demo: "🖥️", Share: "📄", Todo: "" };
const activityIcons = {
"Call": "📞",
"Email": "✉️",
"Meeting": "📅",
"Visit": "🚗",
"Demo": "🖥️",
"Share Docs": "📄",
"To Do": ""
};
if (acts.length === 0) {
cont.classList.add('no-line');