Fix bed number not showing in bill print - add bed_assignment_history fallback

- Use COALESCE to check both bed_master.current_ipd_id and bed_assignment_history
- Join with bed_assignment_history where released_date IS NULL for active beds
- Handles cases where bed is assigned in history but current_ipd_id not set
- Fixes bill print showing blank Bed No when assignment exists in history
This commit is contained in:
DevSoftTech Server 2026-06-10 11:47:18 +05:30
parent 7cf13bffd1
commit 342f54e509

View File

@ -159,11 +159,18 @@ class IpdBillingModel extends Model
->select("o.final_bill_send as final_bill_send", false)
->select("o.org_approved_status as org_approved_status", false)
->select("o.remark as remark", false)
->select("bm.bed_number as bed_no", false)
->select("COALESCE(bm.bed_number, bm2.bed_number) as bed_no", false)
->select("group_concat(distinct concat_ws(' ', 'Dr.', d.p_fname, d.p_mname, d.p_lname) separator ', ') as r_doc_name", false)
->join('organization_case_master o', 'i.case_id = o.id', 'left')
->join('hc_insurance in_master', 'in_master.id = o.insurance_id', 'left')
->join('bed_master bm', 'bm.current_ipd_id = i.id', 'left')
->join(
'(select ipd_id, bed_id from bed_assignment_history where released_date is null order by id desc) bah_active',
'bah_active.ipd_id = i.id',
'left',
false
)
->join('bed_master bm2', 'bm2.id = bah_active.bed_id', 'left')
->join('ipd_master_doc_list imdl', 'imdl.ipd_id = i.id', 'left')
->join('doctor_master d', 'd.id = imdl.doc_id', 'left')
->where('i.id', $ipdId)