fix: Fee Validity test
diff --git a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
index fbb2530..cdf692e 100644
--- a/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
+++ b/erpnext/healthcare/doctype/fee_validity/test_fee_validity.py
@@ -6,7 +6,7 @@
import frappe
import unittest
from frappe.utils import nowdate, add_days
-from erpnext.healthcare.doctype.patient_appointment.test_patient_appointment import create_healthcare_docs, create_appointment
+from erpnext.healthcare.doctype.patient_appointment.test_patient_appointment import create_healthcare_docs, create_appointment, create_healthcare_service_items
test_dependencies = ["Company"]
@@ -14,10 +14,20 @@
def setUp(self):
frappe.db.sql("""delete from `tabPatient Appointment`""")
frappe.db.sql("""delete from `tabFee Validity`""")
+ frappe.db.sql("""delete from `tabPatient`""")
def test_fee_validity(self):
+ item = create_healthcare_service_items()
+ healthcare_settings = frappe.get_single("Healthcare Settings")
+ healthcare_settings.enable_free_follow_ups = 1
+ healthcare_settings.max_visits = 2
+ healthcare_settings.valid_days = 7
+ healthcare_settings.automate_appointment_invoicing = 1
+ healthcare_settings.op_consulting_charge_item = item
+ healthcare_settings.save(ignore_permissions=True)
patient, medical_department, practitioner = create_healthcare_docs()
- # appointment should not be invoiced as it is within fee validity
+
+ # appointment should not be invoiced. Check Fee Validity created for new patient
appointment = create_appointment(patient, practitioner, nowdate())
invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
self.assertEqual(invoiced, 0)
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
index c867120..a2d9d02 100755
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
@@ -24,8 +24,8 @@
def after_insert(self):
self.update_prescription_details()
- self.update_fee_validity()
invoice_appointment(self)
+ self.update_fee_validity()
send_confirmation_msg(self)
def set_status(self):
@@ -107,7 +107,7 @@
enable_free_follow_ups = frappe.db.get_single_value('Healthcare Settings', 'enable_free_follow_ups')
if enable_free_follow_ups:
fee_validity = check_fee_validity(appointment_doc)
- if fee_validity.status == 'Completed':
+ if fee_validity and fee_validity.status == 'Completed':
fee_validity = None
elif not fee_validity:
if frappe.db.exists('Fee Validity Reference', {'appointment': appointment_doc.name}):