W

Wise Visit Tracker

{{ user.name }}

Dashboard

View and manage your planned visits

šŸ“…

No planned visits

Try adjusting your date filters or create a visit plan from the Places section

{{ dateLabel }}

{{ plans.length }} {{ plans.length === 1 ? 'visit' : 'visits' }} āš ļø Missed

{{ plan.place_name }}

šŸ“ {{ plan.city }}

{{ plan.address }}

planned
šŸ• {{ plan.planned_time || 'All day' }} šŸ‘¤ {{ plan.user_name }}
Product to Suggest: {{ formatProduct(plan.product_to_suggest) }}
Notes:

{{ plan.notes }}

šŸ“ž Call

Places

Manage all your places and locations

#{{ index + 1 }}
{{ place.priority }} {{ place.status }}
City: {{ place.city || 'N/A' }}
Category: {{ place.category_name || 'Uncategorized' }}
Contact: {{ place.contact_name || 'N/A' }}
Product: {{ formatProduct(place.suggested_product) }}
šŸ“ {{ place.visit_count || 0 }} visits Min: ${{ formatAmount(place.min_price) }} Max: ${{ formatAmount(place.max_price) }}
{{ formatProduct(product) }}
šŸ“ž Call

Categories

Organize places by type to make filtering faster

šŸ—‚ļø

No categories yet

Add your first category to start grouping places like hospitals, institutes, or shops.

{{ category.name }}

Updated {{ formatDateTime(category.updated_at) }}

{{ category.place_count }} places

{{ category.description || 'No description provided.' }}

Visit Plans

All scheduled visit plans

šŸ“…

No plans found

Create a visit plan from the Places section

{{ plan.place_name }}

šŸ“ {{ plan.city }}

šŸ“… {{ plan.planned_date }}

šŸ• {{ plan.planned_time }}

By: {{ plan.user_name }}

Product to Suggest: {{ formatProduct(plan.product_to_suggest) }}
Notes:

{{ plan.notes }}

{{ plan.status === 'done' ? 'planned' : plan.status }}

Visits

View all completed visits

āœ…

No visits recorded

Mark visits as completed from the Dashboard or Plans section

{{ dateLabel }}

{{ visitsGroup.length }} {{ visitsGroup.length === 1 ? 'visit' : 'visits' }}

{{ visit.place_name }}

šŸ“ {{ visit.city }}

šŸ• {{ new Date(visit.visited_at).toLocaleTimeString() }}

By: {{ visit.user_name }}

{{ visit.notes }}

{{ visit.outcome }}
Product: {{ formatProduct(visit.product_interest) }}
šŸ’° ${{ visit.amount_estimate }}
āœ… Offer Sent: {{ formatDateTime(visit.offer_sent_at) }}
ā³ Offer Pending

Pending Offers

Visits where clients requested offers/quotations

šŸ’°

No pending offers

Offers requested during visits will appear here

{{ offer.place_name }}

šŸ“ {{ offer.city }}

šŸ“… {{ formatDateTime(offer.visited_at) }}

By: {{ offer.user_name }}

šŸ“ž Contact Info:

šŸ‘¤ {{ offer.contact_name }}
šŸ“± {{ offer.contact_phone }} šŸ“ž Call
Notes:

{{ offer.notes }}

{{ offer.outcome }}
Product: {{ formatProduct(offer.product_interest) }}
šŸ’° ${{ formatAmount(offer.amount_estimate) }}

šŸ“Ø Offers Requested

Track all visits where clients requested offers/quotations

{{ sentOffersStats.total_sent }}
Total Offers
{{ sentOffersStats.sent_this_week }}
This Week
{{ sentOffersStats.sent_this_month }}
This Month
{{ sentOffersStats.unique_places }}
Unique Places
šŸ“Ø

No offers requested yet

Visits where offers were requested will appear here

{{ offer.place_name }}

šŸ“ {{ offer.city }}

āœ… Sent ā³ Pending
${{ formatAmount(offer.offer_price) }}
Visit Date: {{ formatDateTime(offer.visited_at) }}
By: {{ offer.user_name }}
Product: {{ formatProduct(offer.product_interest) }}
šŸ‘¤ {{ offer.contact_name }}
šŸ“ž {{ offer.contact_phone }} šŸ“ž Call
šŸ“ {{ offer.offer_notes }}

{{ selectedPlace.name }}

šŸ“ {{ selectedPlace.city }}, {{ selectedPlace.address }}

Details

Contact

{{ selectedPlace.contact_name || 'N/A' }}

Phone

{{ selectedPlace.contact_phone || 'N/A' }}

Priority

{{ selectedPlace.priority }}

Status

{{ selectedPlace.status }}

Suggested Product

{{ formatProduct(selectedPlace.suggested_product) }}

Category

{{ selectedPlace.category_name || 'Uncategorized' }}

Last Visited

{{ formatDateTime(selectedPlace.last_visited_at) }}

Notes

{{ note.body }}

{{ note.user_name }} - {{ formatDateTime(note.created_at) }}

No notes yet

šŸ“Ø Offers for this Place

{{ placeVisits.filter(v => parseInt(v.offer_requested)).length }}
Total Offers
{{ placeVisits.filter(v => v.offer_sent_at).length }}
Sent
{{ placeVisits.filter(v => parseInt(v.offer_requested) && !v.offer_sent_at).length }}
Pending
${{ formatAmount(placeVisits.filter(v => v.offer_price).reduce((sum, v) => sum + parseFloat(v.offer_price || 0), 0)) }}
Total Value

Visit History

{{ formatDateTime(visit.visited_at) }}

By: {{ visit.user_name }}

{{ visit.notes }}

āœ… Offer Sent ā³ Offer Pending
Sent: {{ formatDateTime(visit.offer_sent_at) }}
šŸ’° ${{ formatAmount(visit.offer_price) }}
šŸ“ {{ visit.offer_notes }}
{{ visit.outcome }}
No visits recorded yet

šŸ• {{ user && user.role === 'admin' ? 'Attendance' : 'Check In / Check Out' }}

{{ user && user.role === 'admin' ? 'View all employee check-ins and check-outs' : 'Record your work start and end with your location (GPS required)' }}

Users Management

Manage sales people and admin accounts

{{ u.name }}

{{ u.email }}

{{ u.role }}
Created: {{ formatDateTime(u.created_at) }}

šŸ“‹ Weekly Tasks Management

šŸ‘„ Assign and track weekly tasks for employees

{{ adminSelectedBatchDetails.user_name }} - Week Details

⭐ Current Week ⚠ Incomplete

Week: {{ formatDate(adminSelectedBatchDetails.week_start_date) }} - {{ formatDate(adminSelectedBatchDetails.week_end_date) }}

{{ adminSelectedBatchDetails.completed_tasks }} / {{ adminSelectedBatchDetails.total_tasks }} tasks completed

āš ļø
{{ (100 - adminSelectedBatchDetails.progress_percentage).toFixed(1) }}% REMAINING
āš ļø INCOMPLETE TASKS - ACTION REQUIRED! āš ļø
{{ adminSelectedBatchDetails.progress_percentage }}%
Tasks ({{ adminSelectedBatchTasks.length }})
{{ task.title }} {{ task.task_type }}

{{ task.description }}

Progress: {{ task.completed_count }} / {{ task.required_count }} ({{ getTaskProgressPercentage(task) }}%)
{{ task.status }}
šŸ“ Place: {{ task.place_name }}
šŸ“ {{ task.result_count }} note(s)
No tasks assigned yet

šŸ“Š Weekly Tasks Overview

šŸ“… Showing current/upcoming week Showing all weeks ({{ weeklyTaskBatches.length }} total)
šŸŽ‰ 😊 😐 😢

{{ batch.user_name }}

⭐ Current āœ… All Done! 😢 Incomplete

šŸ“… Week: {{ formatDate(batch.week_start_date) }} - {{ formatDate(batch.week_end_date) }}

{{ batch.progress_percentage }}%
Progress {{ batch.completed_tasks }} / {{ batch.total_tasks }} tasks ({{ batch.progress_percentage }}% complete)
āš ļø
{{ (100 - batch.progress_percentage).toFixed(1) }}% REMAINING
āš ļø INCOMPLETE TASKS - ACTION REQUIRED! āš ļø
šŸ“ Weekly Plan
{{ getDayLabel(item.day) }}: {{ item.note }}

No weekly plan added yet

Tasks ({{ batch.tasks.length }})
{{ task.title }} {{ task.task_type }} ✨ Added by {{ task.created_by_name }} šŸ‘¤ You added

{{ task.description }}

Progress: {{ task.completed_count }} / {{ task.required_count }} ({{ getTaskProgressPercentage(task) }}%)
{{ task.status }}
šŸ“ Place: {{ task.place_name }}
šŸ“ {{ task.result_count }} note(s)
No tasks assigned yet
šŸ“‹

No weekly tasks found

Create weekly tasks for employees to get started

āš ļø
You have {{ getUnfinishedPreviousWeeks().length }} previous week(s) with unfinished tasks! {{ formatDate(week.week_start_date) }} ({{ week.progress_percentage }}% done),
šŸŽ‰
All done! Excellent work this week! You're a star! ⭐
{{ getProgressMessage(currentWeeklyBatch.progress_percentage).emoji }}
{{ getProgressMessage(currentWeeklyBatch.progress_percentage).message }}

šŸ“‹ My Weekly Tasks

šŸ‘‹ View and complete your assigned tasks

{{ getProgressMessage(currentWeeklyBatch.progress_percentage).emoji }}

Week: {{ formatDate(currentWeeklyBatch.week_start_date) }} - {{ formatDate(currentWeeklyBatch.week_end_date) }}

⭐ Current Week šŸŽ‰ All Done! šŸ“ In Progress
āœ… šŸ“‹

{{ currentWeeklyBatch.completed_tasks }} / {{ currentWeeklyBatch.total_tasks }} tasks completed

šŸŽ‰
100% Complete - {{ getProgressMessage(100).message }}
{{ getProgressMessage(currentWeeklyBatch.progress_percentage).emoji }}
{{ (100 - currentWeeklyBatch.progress_percentage).toFixed(1) }}% remaining - {{ getProgressMessage(currentWeeklyBatch.progress_percentage).message }}
{{ currentWeeklyBatch.progress_percentage }}%
šŸ“‹

Your Weekly Plan

šŸ“… {{ getDayLabel(item.day) }}

{{ item.note }}

šŸ“ šŸ“ šŸŽ„ šŸ’” šŸ“‹

{{ type }} Tasks ({{ tasks.length }})

āœ… šŸ“Œ
{{ task.title }}
✨ My Task šŸ‘¤ Added by {{ task.created_by_name }}

{{ task.description }}

šŸ“ Place: {{ task.place_name }}
šŸ“… Visit: {{ formatDate(task.visit_planned_date) }}
āœ… Done ā³ Pending
šŸ“Š Progress: {{ task.completed_count }} / {{ task.required_count }} ({{ getTaskProgressPercentage(task) }}%)
šŸ“‹

No tasks assigned yet

😊 Contact your admin to get tasks assigned

šŸ“‹

No weekly tasks found

No tasks have been assigned for this week

šŸ“Š Reports & Analytics

Comprehensive reports and statistics

Total Visits
{{ reportData.visits.total }}
Unique Places
{{ reportData.visits.unique_places }}
Positive Visits
{{ reportData.visits.by_outcome.positive }}

Visits by Outcome

Daily Visits Trend

Product Interest Distribution

Top Visited Places

Place City Visits Positive Negative
{{ place.name }} {{ place.city }} {{ place.visit_count }} {{ place.positive_count }} {{ place.negative_count }}
šŸ“Š

No report data available

Select a date range to view reports

{{ snackbar.message }}