fix(billing): bill the insurance share on clinic appointments
The invoice and the encounter belong to the clinic, but the contract sits on the doctor, so every coverage lookup asked the clinic, got nothing, and resolved to zero percent. Three failures followed from that one wrong tenant: the encounter charged the patient the full amount, the payment page showed a balance the insurer owed, and — because no line carried an insurance share — no claim was ever built, leaving the claims page empty. Coverage now resolves through the same doctor-first-then-clinic rule the rest of the insurance settings use, both when the encounter is created and when its invoice lines are built. Changing the insurance on an appointment also re-runs the encounter's shares. Reception routinely confirms first and corrects the insurance afterwards, and until now those shares stayed frozen at whatever the first calculation said. Recorded payments are untouched; only the payable amount moves, so an overpayment simply clamps the remainder at zero. The PATCH response also returns the appointment's real venue now, matching GET. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -460,6 +460,8 @@ Get appointment detail.
|
||||
}
|
||||
```
|
||||
|
||||
> ℹ️ تغییر بیمهٔ نوبت با `PATCH` سهمهای مراجعهٔ همان نوبت را هم دوباره حساب میکند: پذیرش گاهی اول نوبت را قطعی میکند و بعد بیمه را اصلاح میکند، و بدون این، مراجعه روی محاسبهٔ اول میماند و صفحهٔ پرداخت سهمِ بیمه را از بیمار میخواهد. پرداختهای ثبتشده دست نمیخورند؛ فقط مبلغ قابلپرداخت اصلاح میشود. پاسخ `PATCH` هم مثل `GET` نشانیِ واقعیِ نوبت را برمیگرداند.
|
||||
|
||||
> ℹ️ `address` is the venue recorded on this appointment (`address_id`) — the doctor's own
|
||||
> office or the clinic branch, whichever the booking was made at — and it is the only place
|
||||
> `telephone` is returned. When that record carries no number, the clinic's own number takes
|
||||
|
||||
Reference in New Issue
Block a user