feat(Sales Invoice): allow linking to project without adding timesheets (backport #44295) (#45528)

feat(Sales Invoice): allow linking to project without adding timesheets (#44295)

* feat(Sales Invoice): allow linking to project without adding timesheets

* test: add timesheet data

(cherry picked from commit 11f65f20a0)

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
This commit is contained in:
mergify[bot]
2025-01-27 14:26:19 +05:30
committed by GitHub
parent ff46ae5bc1
commit 2c2a25ab16
2 changed files with 8 additions and 4 deletions

View File

@@ -1083,13 +1083,16 @@ 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:
self.add_timesheet_data()
else:
if self.timesheets:
self.calculate_billing_amount_for_timesheet()
@frappe.whitelist()
@frappe.whitelist(methods=["PUT"])
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):

View File

@@ -62,6 +62,7 @@ class TestTimesheet(unittest.TestCase):
)
sales_invoice = create_sales_invoice(do_not_save=True)
sales_invoice.project = project
sales_invoice._add_timesheet_data()
sales_invoice.submit()
ts = frappe.get_doc("Timesheet", timesheet.name)