| 1234567891011121314151617181920212223 |
- function roundKm(value) {
- const n = Number(value)
- if (!Number.isFinite(n)) return 0
- return Math.round(n * 100) / 100
- }
- /**
- * 乐跑扣费:跑前按预计距离预扣,结算时按 min(预计, 实际) 计费。
- * 多扣退还差额,少扣不补收。
- * @returns {{ plannedKm: number, actualKm: number, billableKm: number, refundKm: number }}
- */
- function resolveLepaoBilling(plannedKm, actualKm) {
- const planned = roundKm(plannedKm)
- const actual = roundKm(actualKm)
- const billableKm = roundKm(Math.min(planned, actual))
- const refundKm = roundKm(Math.max(0, planned - actual))
- return { plannedKm: planned, actualKm: actual, billableKm, refundKm }
- }
- module.exports = {
- roundKm,
- resolveLepaoBilling
- }
|