Payment mode and Paid amount in Patient Appointment
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
index c0e5cd0..9338b9f 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
@@ -84,6 +84,20 @@
});
}
frm.set_df_property("get_procedure_from_encounter", "read_only", frm.doc.__islocal ? 0 : 1);
+ frappe.db.get_value('Healthcare Settings', {name: 'Healthcare Settings'}, 'manage_appointment_invoice_automatically', (r) => {
+ if(r.manage_appointment_invoice_automatically == 1){
+ frm.set_df_property("mode_of_payment", "hidden", 0);
+ frm.set_df_property("paid_amount", "hidden", 0);
+ frm.set_df_property("mode_of_payment", "reqd", 1);
+ frm.set_df_property("paid_amount", "reqd", 1);
+ }
+ else{
+ frm.set_df_property("mode_of_payment", "hidden", 1);
+ frm.set_df_property("paid_amount", "hidden", 1);
+ frm.set_df_property("mode_of_payment", "reqd", 0);
+ frm.set_df_property("paid_amount", "reqd", 0);
+ }
+ });
},
check_availability: function(frm) {
var { practitioner, appointment_date } = frm.doc;
@@ -335,6 +349,7 @@
},
callback: function (data) {
frappe.model.set_value(frm.doctype,frm.docname, "department",data.message.department);
+ frappe.model.set_value(frm.doctype,frm.docname, "paid_amount",data.message.op_consulting_charge);
}
});
}
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
index fc7b69d..4ce4573 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.json
@@ -617,7 +617,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval:!doc.__islocal",
+ "depends_on": "",
"fieldname": "section_break_1",
"fieldtype": "Section Break",
"hidden": 0,
@@ -681,6 +681,71 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fieldname": "mode_of_payment",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Mode of Payment",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Mode of Payment",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "paid_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Paid Amount",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "translatable": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_in_quick_entry": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
"fieldname": "column_break_2",
"fieldtype": "Column Break",
"hidden": 0,
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
index a0ffeb1..3e6706f 100755
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.py
@@ -71,8 +71,8 @@
item_line.reference_dn = appointment_doc.name
payments_line = sales_invoice.append("payments")
- payments_line.mode_of_payment = "Cash"
- payments_line.amount = practitioner_charge
+ payments_line.mode_of_payment = appointment_doc.mode_of_payment
+ payments_line.amount = appointment_doc.paid_amount
sales_invoice.set_missing_values(for_validate = True)