Merge pull request #46159 from frappe/mergify/bp/version-15-hotfix/pr-46156

fix: no permission to get project settings in sales invoice (backport #46156)
This commit is contained in:
ruthra kumar
2025-02-26 14:34:36 +05:30
committed by GitHub
2 changed files with 15 additions and 11 deletions

View File

@@ -897,12 +897,16 @@ frappe.ui.form.on("Sales Invoice", {
project: function (frm) {
if (frm.doc.project) {
frappe.db.get_value("Projects Settings", {}, "fetch_timesheet_in_sales_invoice", (r) => {
if (cint(r.fetch_timesheet_in_sales_invoice)) {
frm.events.add_timesheet_data(frm, {
project: frm.doc.project,
});
}
frappe.call({
method: "is_auto_fetch_timesheet_enabled",
doc: frm.doc,
callback: function (r) {
if (cint(r.message)) {
frm.events.add_timesheet_data(frm, {
project: frm.doc.project,
});
}
},
});
}
},

View File

@@ -1090,15 +1090,15 @@ class SalesInvoice(SellingController):
timesheet.billing_amount = ts_doc.total_billable_amount
def update_timesheet_billing_for_project(self):
if (
not self.timesheets
and self.project
and frappe.db.get_single_value("Projects Settings", "fetch_timesheet_in_sales_invoice")
):
if not self.timesheets and self.project and self.is_auto_fetch_timesheet_enabled():
self.add_timesheet_data()
else:
self.calculate_billing_amount_for_timesheet()
@frappe.whitelist()
def is_auto_fetch_timesheet_enabled(self):
return frappe.db.get_single_value("Projects Settings", "fetch_timesheet_in_sales_invoice")
@frappe.whitelist()
def add_timesheet_data(self):
self.set("timesheets", [])