fix(sales invoice): check fetch_timesheet_in_sales_invoice enabled before fetching the timesheet

This commit is contained in:
venkat102
2025-02-13 23:07:45 +05:30
parent 876082ea2f
commit 914ad357fd
2 changed files with 14 additions and 9 deletions

View File

@@ -895,8 +895,12 @@ frappe.ui.form.on("Sales Invoice", {
project: function (frm) {
if (frm.doc.project) {
frm.events.add_timesheet_data(frm, {
project: frm.doc.project,
frappe.db.get_value("Projects Settings", {}, "fetch_timesheet_in_sales_invoice", (r) => {
if (r.fetch_timesheet_in_sales_invoice) {
frm.events.add_timesheet_data(frm, {
project: frm.doc.project,
});
}
});
}
},

View File

@@ -1096,16 +1096,17 @@ class SalesInvoice(SellingController):
timesheet.billing_amount = ts_doc.total_billable_amount
def update_timesheet_billing_for_project(self):
if self.timesheets:
if (
not self.timesheets
and self.project
and frappe.db.get_single_value("Projects Settings", "fetch_timesheet_in_sales_invoice")
):
self.add_timesheet_data()
else:
self.calculate_billing_amount_for_timesheet()
@frappe.whitelist(methods=["PUT"])
@frappe.whitelist()
def add_timesheet_data(self):
if not self.timesheets and self.project:
self._add_timesheet_data()
self.save()
def _add_timesheet_data(self):
self.set("timesheets", [])
if self.project:
for data in get_projectwise_timesheet_data(self.project):