Skip to content

Pharmacy Income Report Refunds

Dr M H B Ariyaratne edited this page Jul 30, 2026 · 1 revision

Pharmacy Income Report - How Refunds Are Shown

Policy: Immutable Reports

Pharmacy reports (Income Report, Movement-Out Report) never rewrite history. A bill's original sale value stays exactly as it was on the date it was billed, no matter what happens to it later. If items are returned and a refund is processed on a different day, the refund appears as its own line, on its own date, and reduces that day's totals only.

This means:

  • Yesterday's Pharmacy Income Report never changes because of a refund processed today.
  • A refund processed on the same day as the original sale nets the two transactions to zero in that day's report.
  • Both the original sale and the refund remain individually visible and traceable to their source bills.

What Counts as a Refund

A pharmacy retail sale can be returned in two different ways:

  1. Single-step: Return Items And Payments - one bill records both the item return and the cash refund together.
  2. Two-step: Return Item Only followed separately by Refund for Pharmacy Bills - the item return and the cash refund are two separate bills, often processed by different staff or at a different time.

Both paths must show up correctly in the Pharmacy Income Report and the Movement-Out report, since both represent real cash leaving the pharmacy.

Fixed: Two-Step Refunds Were Invisible to Reports (#22458)

Before this fix, the two-step refund flow's cash-out payment bill was missing from the bill types both reports query for. The refund payment never appeared in the Pharmacy Income Report or the Movement-Out report - at any date, not just across days. Report totals stayed at the full original sale value even when the sale had been fully returned and refunded on the very same day.

Before the fix - two fully-refunded sales on 21 Jul 2026 still show at full value, with no sign of the refund:

Pharmacy Income Report before fix - refunds missing, total not adjusted

After the fix - the refund payments (MP/SRIP/...) appear as their own rows and net the same-day total to zero:

Pharmacy Income Report after fix - refunds shown, total nets to zero

The Movement-Out report had the same gap and was fixed the same way:

Pharmacy Movement-Out report after fix - refunds shown, total nets to zero

Reading the Report After a Refund

  • The original sale bill (e.g. MP/SALE/140891) keeps its original, positive value on its own date - this never changes.
  • The refund payment bill (e.g. MP/SRIP/26/037936) shows as a separate, negative line on the date the refund was actually processed.
  • If both bills fall inside the date range you're viewing, the report's Total Amounts row nets them out.
  • If only the original sale falls inside your date range (because the refund happened later, outside the range), the original sale still shows at full value - this is expected under the immutable-reports policy, not a bug.

Back to Pharmacy Summaries & Reports

Clone this wiki locally