From 1d0d7c428c1607086e351907816db3737b491ee8 Mon Sep 17 00:00:00 2001 From: dharaneesh-r Date: Wed, 1 Jul 2026 11:42:33 +0530 Subject: [PATCH] updateson the profitability page --- src/pages/nearle/dispatch/Dispatch.js | 2 +- .../nearle/dispatch/ProfitabilitySection.js | 34 +++++++++++++++---- src/pages/nearle/reports/profitability.js | 6 ++-- 3 files changed, 32 insertions(+), 10 deletions(-) diff --git a/src/pages/nearle/dispatch/Dispatch.js b/src/pages/nearle/dispatch/Dispatch.js index c669df1..4399108 100644 --- a/src/pages/nearle/dispatch/Dispatch.js +++ b/src/pages/nearle/dispatch/Dispatch.js @@ -4327,7 +4327,7 @@ const Dispatch = ({
{riderKm.toFixed(1)}km
-
Rider KMs
+
Trip KMs
); diff --git a/src/pages/nearle/dispatch/ProfitabilitySection.js b/src/pages/nearle/dispatch/ProfitabilitySection.js index 357e6bd..7c1ac26 100644 --- a/src/pages/nearle/dispatch/ProfitabilitySection.js +++ b/src/pages/nearle/dispatch/ProfitabilitySection.js @@ -50,7 +50,7 @@ function getStatusConfig(raw) { } function orderRevenue(order) { - const km = parseFloat(order.kms || order.actualkms || 0); + const km = parseFloat(order.riderkms || 0); return km <= BASE_KM_LIMIT ? BASE_REVENUE : BASE_REVENUE + (km - BASE_KM_LIMIT) * EXTRA_RATE_KM; } @@ -93,7 +93,7 @@ function calcRiderMetrics(rider, selectedDate, batches) { for (const o of orders) { revenue += orderRevenue(o); - kms += parseFloat(o.kms || o.actualkms || 0); + kms += parseFloat(o.riderkms || 0); const slot = getRowBatch(o, batches); if (!slot) continue; @@ -125,6 +125,15 @@ function calcRiderMetrics(rider, selectedDate, batches) { return { revenue, kms, varCost, fixedCost, totalCost, net, margin, orders }; } +/** Format a km value, switching to metres below 1 km so short hops don't round to "0.0 km". */ +function formatDistance(km) { + const value = Number.isFinite(km) ? km : 0; + if (value > 0 && value < 1) { + return { value: String(Math.round(value * 1000)), unit: 'm' }; + } + return { value: value.toFixed(1), unit: 'km' }; +} + function rupees(v, decimals = 0) { if (v == null) return '—'; return `₹${parseFloat(v).toFixed(decimals)}`; @@ -202,7 +211,9 @@ function OrdersBreakdownTable({ orders, getRevenue }) { Customer Status - Distance + Planned KMs + Actual KMs + Trip KMs Revenue @@ -210,7 +221,10 @@ function OrdersBreakdownTable({ orders, getRevenue }) { {orders.map((order, idx) => { - const km = parseFloat(order.kms ?? order.actualkms ?? 0); + const km = parseFloat(order.riderkms ?? 0); + const dist = formatDistance(km); + const plannedDist = formatDistance(parseFloat(order.kms ?? 0)); + const actualDist = formatDistance(parseFloat(order.actualkms ?? 0)); const rev = getRevenue(order); return ( @@ -221,8 +235,16 @@ function OrdersBreakdownTable({ orders, getRevenue }) { - {km.toFixed(1)} - km + {plannedDist.value} + {plannedDist.unit} + + + {actualDist.value} + {actualDist.unit} + + + {dist.value} + {dist.unit} {rupees(rev)} diff --git a/src/pages/nearle/reports/profitability.js b/src/pages/nearle/reports/profitability.js index f811ec0..d973863 100644 --- a/src/pages/nearle/reports/profitability.js +++ b/src/pages/nearle/reports/profitability.js @@ -299,7 +299,7 @@ export default function ProfitabilityReport() { const slot = getRowBatch(o, customBatches); if (!slot) return; - const oKms = parseFloat(o.kms || o.actualkms || 0); + const oKms = parseFloat(o.riderkms || 0); rKms += oKms; rRevenue += oKms <= 8 ? 30 : 30 + (oKms - 8) * 6; @@ -611,7 +611,7 @@ export default function ProfitabilityReport() { > - + @@ -658,7 +658,7 @@ export default function ProfitabilityReport() { # Rider Orders - Distance + Rider KMs Revenue Fixed Cost Variable Cost