[Fix] Billing Hours showing blank on sales invoice
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 3245e78..4886dea 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -483,4 +483,5 @@
}
})
+cur_frm.add_fetch("time_sheet", "total_billing_hours", "billing_hours");
cur_frm.add_fetch("time_sheet", "total_billing_amount", "billing_amount");
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 3ebe873..3bbd5ad 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -83,6 +83,7 @@
self.validate_time_sheets_are_submitted()
self.validate_multiple_billing("Delivery Note", "dn_detail", "amount", "items")
self.update_packing_list()
+ self.set_billing_hours_and_amount()
self.calculate_billing_amount_from_timesheet()
def before_save(self):
@@ -440,6 +441,15 @@
else:
self.set('packed_items', [])
+ def set_billing_hours_and_amount(self):
+ for timesheet in self.timesheets:
+ ts_doc = frappe.get_doc('Timesheet', timesheet.time_sheet)
+ if not timesheet.billing_hours and ts_doc.total_billing_hours:
+ timesheet.billing_hours = ts_doc.total_billing_hours
+
+ if not timesheet.billing_amount and ts_doc.total_billing_amount:
+ timesheet.billing_amount = ts_doc.total_billing_amount
+
def calculate_billing_amount_from_timesheet(self):
total_billing_amount = 0.0
for data in self.timesheets:
diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py
index c2a2d3e..63cb898 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.py
+++ b/erpnext/projects/doctype/timesheet/timesheet.py
@@ -313,7 +313,7 @@
conditions = get_conditions(filters)
return frappe.db.sql("""select `tabTimesheet Detail`.name as name, `tabTimesheet Detail`.parent as parent,
from_time, hours, activity_type, project, to_time from `tabTimesheet Detail`,
- `tabTimesheet` where `tabTimesheet Detail`.parent = `tabTimesheet`.name and
+ `tabTimesheet` where `tabTimesheet Detail`.parent = `tabTimesheet`.name and `tabTimesheet`.docstatus < 2 and
(from_time between %(start)s and %(end)s) {conditions}""".format(conditions=conditions),
{
"start": start,