Inpatient Record - Test - Updated
diff --git a/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py b/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py
index b192064..f912ddb 100644
--- a/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py
+++ b/erpnext/healthcare/doctype/inpatient_record/test_inpatient_record.py
@@ -7,10 +7,11 @@
import unittest
from frappe.utils import now_datetime, today
from frappe.utils.make_random import get_random
-from erpnext.healthcare.doctype.inpatient_record.inpatient_record import admit_patient, discharge_patient
+from erpnext.healthcare.doctype.inpatient_record.inpatient_record import admit_patient, discharge_patient, schedule_discharge
class TestInpatientRecord(unittest.TestCase):
def test_admit_and_discharge(self):
+ frappe.db.sql("""delete from `tabInpatient Record`""")
patient = get_patient()
# Schedule Admission
ip_record = create_inpatient(patient)
@@ -25,10 +26,18 @@
self.assertEqual(1, frappe.db.get_value("Healthcare Service Unit", service_unit, "occupied"))
# Discharge
- discharge_patient(ip_record)
+ schedule_discharge(patient=patient)
+ self.assertEqual(0, frappe.db.get_value("Healthcare Service Unit", service_unit, "occupied"))
+
+ ip_record1 = frappe.get_doc("Inpatient Record", ip_record.name)
+ # Validate Pending Invoices
+ self.assertRaises(frappe.ValidationError, ip_record.discharge)
+ mark_invoiced_inpatient_occupancy(ip_record1)
+
+ discharge_patient(ip_record1)
+
self.assertEqual(None, frappe.db.get_value("Patient", patient, "inpatient_record"))
self.assertEqual(None, frappe.db.get_value("Patient", patient, "inpatient_status"))
- self.assertEqual(0, frappe.db.get_value("Healthcare Service Unit", service_unit, "occupied"))
def test_validate_overlap_admission(self):
frappe.db.sql("""delete from `tabInpatient Record`""")
@@ -45,6 +54,12 @@
self.assertRaises(frappe.ValidationError, ip_record_new.save)
frappe.db.sql("""delete from `tabInpatient Record`""")
+def mark_invoiced_inpatient_occupancy(ip_record):
+ if ip_record.inpatient_occupancies:
+ for inpatient_occupancy in ip_record.inpatient_occupancies:
+ inpatient_occupancy.invoiced = 1
+ ip_record.save(ignore_permissions = True)
+
def create_inpatient(patient):
patient_obj = frappe.get_doc('Patient', patient)
inpatient_record = frappe.new_doc('Inpatient Record')