Dashboard
Total Orders
{{ stats.total_orders || 0 }}
Total Clients
{{ stats.total_clients || 0 }}
Revenue
{{ formatCurrency(stats.total_revenue) }}
Outstanding
{{ formatCurrency(stats.outstanding) }}
Orders Today
{{ stats.orders_today || 0 }}
Pending Shipments
{{ stats.shipment_status?.Scheduled || 0 }}
Avg. Order Value
{{ formatCurrency(stats.avg_order_value) }}
Recent Activity
Order Status Distribution
Vessel Status Distribution
Avg. Order Processing Time
{{ stats.avg_order_processing_time || 0 }} hours
Avg. Vessel Transit Time
{{ stats.avg_vessel_transit_time || 0 }} days
Orders Trend
Shipments
Top Clients
By Order Count
By Order Value
Orders Management
| Order # | Client | Date | Order Status | Vessel | Vessel Status | Total | Paid | Amount Left | Collected Date | Action |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ o.order_number }} | {{ o.client_name }} | {{ formatDate(o.order_date) }} | {{ o.order_status }} |
{{ getVesselName(o) }}
|
{{ getVesselStatus(o) }} - | {{ formatCurrency(o.amount_due) }} | {{ formatCurrency(o.amount_paid) }} | {{ formatCurrency(o.amount_due - o.amount_paid) }} | {{ formatDate(o.collected_date) || '-' }} |
Create Order
Order #{{ viewOrderData.order.order_number }}
{{ formatDate(viewOrderData.order.order_date) }}
Client
{{ viewOrderData.order.client_name }}
Vessel
Status
Due / Paid / Left
| Item | Qty | Outside Accra | Total |
|---|---|---|---|
| {{ item.item_name }} | {{ item.quantity }} | {{ formatCurrency(item.item_sum) }} |
Completed Orders
| Order # | Client | Date | Collected Date | Vessel | Status | Action |
|---|---|---|---|---|---|---|
| {{ o.order_number }} | {{ o.client_name }} | {{ formatDate(o.order_date) }} | {{ formatDate(o.collected_date) || '-' }} |
{{ getVesselName(o) }}
|
{{ o.order_status }} |
Order #{{ viewCompletedOrderData.order.order_number }}
{{ formatDate(viewCompletedOrderData.order.order_date) }}
Client
{{ viewCompletedOrderData.order.client_name }}
Vessel
Status
Collected: {{ formatDate(viewCompletedOrderData.order.collected_date) }}
Items
| Item | Qty | Outside Accra |
|---|---|---|
| {{ item.item_name }} | {{ item.quantity }} |
Remarks
Warehouse Management
Filters
Orders
| Order # | Client | Order Date | Status | Vessel | Amount Left | Collected Date | Actions |
|---|---|---|---|---|---|---|---|
| {{ order.order_number }} | {{ order.client_name }} | {{ formatDate(order.order_date) }} | {{ order.order_status }} |
{{ getVesselName(order) }}
{{ getVesselStatus(order) }}
|
{{ formatCurrency(order.amount_due - order.amount_paid) }} | {{ formatDate(order.collected_date) || '-' }} |
Clients Management
| ID | Name | Phone 1 | Phone 2 | Digital Address | Location | Type | Actions | |
|---|---|---|---|---|---|---|---|---|
| {{ row.display_id }} | {{ row.firstName }} {{ row.surname }} | {{ row.phone1 }} | {{ row.phone2 || '-' }} | {{ row.digital_address || '-' }} | {{ row.email }} | {{ row.location }} | {{ row.client_type }} |
Items
Items List
| Name | Cost | Outside Accra Cost | Category | CBM Size | Actions |
|---|---|---|---|---|---|
| {{row.name}} | {{ formatCurrency(row.unit_cost) }} | {{ formatCurrency(row.outside_accra_cost) }} | {{row.category}} | {{ row.cbm_size || '-' }} |
Vessels
Vessels List
| Name | Departure Date | Arrival Date | Status | Max CBM Capacity | Actions |
|---|---|---|---|---|---|
| {{row.name}} | {{ formatDate(row.departure_date) }} | {{ formatDate(row.arrival_date) }} | {{row.status || 'Scheduled'}} | {{ row.max_cbm_capacity || '-' }} |
Communication
Send Bulk Message
Message Delivery Status (Last 100 Entries)
| Timestamp | User | Recipient | Status | Message |
|---|---|---|---|---|
| {{ formatDate(status.timestamp) }} | {{ status.user_identity }} | {{ status.resource_id }} | {{ status.after && status.after.includes('success') ? 'Success' : 'Queued' }} | {{ JSON.parse(status.before || '{}').message || '-' }} |
No SMS status records available.
Click "Refresh Status" to load the latest SMS delivery status.
Sent Messages (Last 100)
| Timestamp | Channel | Recipient | Status | Message |
|---|---|---|---|---|
| {{ formatDate(msg.timestamp) }} | SMS Email | {{ msg.recipient }} | Success Queued | {{ msg.message }} |
No sent messages available.
Click "Refresh" to load the latest sent messages.
CBM Calculator
Calculate cubic meters and shipping costs
Measurement Unit
Dimensions
Package Details
Expense Management
Filters
Total Expenses
{{ formatCurrency(totalExpenses) }}
This Month
{{ formatCurrency(monthExpenses) }}
This Week
{{ formatCurrency(weekExpenses) }}
Today
{{ formatCurrency(todayExpenses) }}
Expenses
| Expense # | Date | Category | Description | Payment Method | Reference | Amount | Actions |
|---|---|---|---|---|---|---|---|
| {{ expense.expense_number }} | {{ formatDate(expense.expense_date) }} | {{ getCategoryName(expense.category_id) }} | {{ expense.description || '-' }} | {{ expense.payment_method }} | {{ expense.reference || '-' }} | {{ formatCurrency(expense.amount) }} |
{{ expenseForm.id ? 'Edit Expense' : 'Add Expense' }}
{{ categoryForm.id ? 'Edit Category' : 'Add Category' }}
Expense Categories
| ID | Name | Description | Actions |
|---|---|---|---|
| {{ category.id }} | {{ category.name }} | {{ category.description || '-' }} | |
| No expense categories found. Click "Add Category" to create one. | |||
Reports
Orders
{{ reportResults.total_orders }}
Revenue
{{ formatCurrency(reportResults.total_revenue) }}
Outstanding
{{ formatCurrency(reportResults.outstanding) }}
Completed
{{ reportResults.completed }}
Total Clients
{{ reportResults.total_clients }}
Total Orders
{{ (reportResults.clients || []).reduce(function(sum, c) { return sum + (c.total_orders || 0); }, 0) }}
Total Value
{{ formatCurrency((reportResults.clients || []).reduce(function(sum, c) { return sum + (c.total_value || 0); }, 0)) }}
Corporate
{{ reportResults.clients.filter(function(c) { return c.client_type === 'Corporate'; }).length }}
Total Items
{{ reportResults.total_items }}
Categories
{{ getUniqueCategoriesCount(reportResults.items || []) }}
Avg Cost
{{ formatCurrency((reportResults.items || []).reduce(function(sum, i) { return sum + (i.unit_cost || 0); }, 0) / (reportResults.items || []).length) }}
Total CBM
{{ (reportResults.items || []).reduce(function(sum, i) { return sum + (i.cbm_size || 0); }, 0).toFixed(2) }}
Total Vessels
{{ reportResults.total_vessels }}
Scheduled
{{ (reportResults.vessels || []).filter(function(v) { return v.status === 'Scheduled'; }).length }}
Departed
{{ (reportResults.vessels || []).filter(function(v) { return v.status === 'Departed'; }).length }}
Arrived
{{ (reportResults.vessels || []).filter(function(v) { return v.status === 'Arrived'; }).length }}
| Order # | Client | Date | Total | Paid | Status |
|---|---|---|---|---|---|
| {{ o.order_number }} | {{ o.client_name }} | {{ formatDate(o.order_date) }} | {{ formatCurrency(o.amount_due) }} | {{ formatCurrency(o.amount_paid) }} | {{ o.order_status }} |
| No orders found | |||||
| ID | Name | Phone | Location | Type | Orders | Value | |
|---|---|---|---|---|---|---|---|
| {{ c.display_id }} | {{ c.name }} | {{ c.email }} | {{ c.phone1 }} | {{ c.location }} | {{ c.client_type }} | {{ c.total_orders || 0 }} | {{ formatCurrency(c.total_value || 0) }} |
| No clients found | |||||||
| Name | Category | Cost | Outside Accra Cost | CBM Size |
|---|---|---|---|---|
| {{ i.name }} | {{ i.category }} | {{ formatCurrency(i.unit_cost) }} | {{ formatCurrency(i.outside_accra_cost) }} | {{ i.cbm_size || '-' }} |
| No items found | ||||
| Name | Departure Date | Arrival Date | Status | Max CBM Capacity |
|---|---|---|---|---|
| {{ v.name }} | {{ formatDate(v.departure_date) }} | {{ formatDate(v.arrival_date) }} | {{ v.status || 'Scheduled' }} | {{ v.max_cbm_capacity || '-' }} |
| No vessels found | ||||
Total Expenses
{{ formatCurrency(reportResults.total_expenses || 0) }}
This Month
{{ formatCurrency(reportResults.month_expenses || 0) }}
This Week
{{ formatCurrency(reportResults.week_expenses || 0) }}
Today
{{ formatCurrency(reportResults.today_expenses || 0) }}
| Expense # | Date | Category | Description | Payment Method | Reference | Amount |
|---|---|---|---|---|---|---|
| {{ e.expense_number }} | {{ formatDate(e.expense_date) }} | {{ getCategoryName(e.category_id) }} | {{ e.description || '-' }} | {{ e.payment_method }} | {{ e.reference || '-' }} | {{ formatCurrency(e.amount) }} |
| No expenses found | ||||||
Admin
Users
| Username | Role | Status | Actions |
|---|---|---|---|
| {{ u.username }} | {{ u.role }} | {{ u.active ? 'Active' : 'Disabled' }} |
System Configuration
Mass Upload
Upload Clients
Upload Items
Upload Vessels
Company Information
API Request Logs (Last 100)
| Timestamp | User | Method | Path | Action | Resource | Resource ID |
|---|---|---|---|---|---|---|
| {{ formatDate(log.timestamp) }} | {{ log.user_identity }} | {{ log.method }} | {{ log.path }} | {{ log.action_type || '-' }} | {{ log.resource || '-' }} | {{ log.resource_id || '-' }} |
No API logs available.
Click "Refresh Logs" to load the latest API requests.
CBM Configuration
Payment Instructions
Terms & Conditions
Backup Management
Backup
Create manual backup of database
Backups are retained weekly for up to 6 months
Leave empty to save to server backup folder
Restore
Restore database from a backup file
Choose restore method
Restore from server backup folder
Restore from your local file
Server Backups
Loading backups...
No backups found in server folder
{{ formatDate(backup.modified_date) }}
{{ formatFileSize(backup.size) }}
Select Backup Folder
Enter the full path where you want to save the backup file: