Fee Validity - Test - Updated

This commit is contained in:
Jamsheer 2018-07-25 11:31:14 +05:30
parent 146683bbff
commit 94efed161a

View File

@ -5,33 +5,35 @@ from __future__ import unicode_literals
import frappe
import unittest
from erpnext.healthcare.doctype.patient_appointment.patient_appointment import invoice_appointment
from frappe.utils.make_random import get_random
from frappe.utils import nowdate, add_days
# test_records = frappe.get_test_records('Fee Validity')
from frappe.utils import nowdate, add_days, getdate
test_dependencies = ["Company"]
class TestFeeValidity(unittest.TestCase):
def test_fee_validity(self):
frappe.db.sql("""delete from `tabPatient Appointment`""")
frappe.db.sql("""delete from `tabFee Validity`""")
patient = get_random("Patient")
practitioner = get_random("Healthcare Practitioner")
department = get_random("Medical Department")
if not patient:
patient = frappe.new_doc("Patient")
patient.patient_name = "Test Patient"
patient.patient_name = "_Test Patient"
patient.sex = "Male"
patient.save(ignore_permissions=True)
patient = patient.name
if not department:
medical_department = frappe.new_doc("Medical Department")
medical_department.department = "Test Medical Department"
medical_department.department = "_Test Medical Department"
medical_department.save(ignore_permissions=True)
department = medical_department.name
if not practitioner:
practitioner = frappe.new_doc("Healthcare Practitioner")
practitioner.first_name = "Amit Jain"
practitioner.first_name = "_Test Healthcare Practitioner"
practitioner.department = department
practitioner.save(ignore_permissions=True)
practitioner = practitioner.name
@ -42,18 +44,22 @@ class TestFeeValidity(unittest.TestCase):
frappe.db.set_value("Healthcare Settings", None, "valid_days", 7)
appointment = create_appointment(patient, practitioner, nowdate(), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertEqual(invoice, None)
invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
self.assertEqual(invoiced, 0)
invoice_appointment(appointment)
appointment = create_appointment(patient, practitioner, add_days(nowdate(), 4), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertTrue(invoice)
invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
self.assertTrue(invoiced)
appointment = create_appointment(patient, practitioner, add_days(nowdate(), 5), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertEqual(invoice, None)
invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
self.assertEqual(invoiced, 0)
appointment = create_appointment(patient, practitioner, add_days(nowdate(), 10), department)
invoice = frappe.db.get_value("Patient Appointment", appointment.name, "sales_invoice")
self.assertEqual(invoice, None)
invoiced = frappe.db.get_value("Patient Appointment", appointment.name, "invoiced")
self.assertEqual(invoiced, 0)
def create_appointment(patient, practitioner, appointment_date, department):
appointment = frappe.new_doc("Patient Appointment")
@ -64,3 +70,34 @@ def create_appointment(patient, practitioner, appointment_date, department):
appointment.company = "_Test Company"
appointment.save(ignore_permissions=True)
return appointment
def invoice_appointment(appointment_doc):
if not appointment_doc.name:
return False
sales_invoice = frappe.new_doc("Sales Invoice")
sales_invoice.customer = frappe.get_value("Patient", appointment_doc.patient, "customer")
sales_invoice.due_date = getdate()
sales_invoice.is_pos = 0
sales_invoice.company = appointment_doc.company
sales_invoice.debit_to = "_Test Receivable - _TC"
create_invoice_items(appointment_doc, sales_invoice)
sales_invoice.save(ignore_permissions=True)
sales_invoice.submit()
def create_invoice_items(appointment, invoice):
item_line = invoice.append("items")
item_line.item_name = "Consulting Charges"
item_line.description = "Consulting Charges: " + appointment.practitioner
item_line.uom = "Nos"
item_line.conversion_factor = 1
item_line.income_account = "_Test Account Cost for Goods Sold - _TC"
item_line.cost_center = "_Test Cost Center - _TC"
item_line.rate = 250
item_line.amount = 250
item_line.qty = 1
item_line.reference_dt = "Patient Appointment"
item_line.reference_dn = appointment.name
return invoice