From dd70fb5f7e4e430d8cb2e1cf610d119e77611551 Mon Sep 17 00:00:00 2001 From: Nihantra Patel Date: Thu, 29 Feb 2024 15:31:53 +0530 Subject: [PATCH 1/2] fix: skip timesheet link on return time --- erpnext/accounts/doctype/sales_invoice/sales_invoice.js | 2 +- erpnext/accounts/doctype/sales_invoice/sales_invoice.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index ef1f6bd8d82..e03ed866478 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -486,7 +486,7 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e currency() { var me = this; super.currency(); - if (this.frm.doc.timesheets) { + if (!this.frm.doc.is_return && this.frm.doc.timesheets) { this.frm.doc.timesheets.forEach((d) => { let row = frappe.get_doc(d.doctype, d.name) set_timesheet_detail_rate(row.doctype, row.name, me.frm.doc.currency, row.timesheet_detail) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 3352e0d90ad..572a9f94493 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -757,6 +757,8 @@ class SalesInvoice(SellingController): def validate_time_sheets_are_submitted(self): for data in self.timesheets: if data.time_sheet: + if self.is_return: + continue status = frappe.db.get_value("Timesheet", data.time_sheet, "status") if status not in ["Submitted", "Payslip"]: frappe.throw(_("Timesheet {0} is already completed or cancelled").format(data.time_sheet)) From 79c492cc4b44d5594b8428ae0dbbf7712462e56d Mon Sep 17 00:00:00 2001 From: Nihantra Patel Date: Fri, 1 Mar 2024 09:26:49 +0530 Subject: [PATCH 2/2] fix: skip timesheet on return time and revert code --- erpnext/accounts/doctype/sales_invoice/sales_invoice.js | 2 +- erpnext/accounts/doctype/sales_invoice/sales_invoice.json | 3 ++- erpnext/accounts/doctype/sales_invoice/sales_invoice.py | 2 -- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js index e03ed866478..ef1f6bd8d82 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js @@ -486,7 +486,7 @@ erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends e currency() { var me = this; super.currency(); - if (!this.frm.doc.is_return && this.frm.doc.timesheets) { + if (this.frm.doc.timesheets) { this.frm.doc.timesheets.forEach((d) => { let row = frappe.get_doc(d.doctype, d.name) set_timesheet_detail_rate(row.doctype, row.name, me.frm.doc.currency, row.timesheet_detail) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 5e2187e91fe..88b28adbf14 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -785,6 +785,7 @@ "hide_days": 1, "hide_seconds": 1, "label": "Time Sheets", + "no_copy": 1, "options": "Sales Invoice Timesheet", "print_hide": 1 }, @@ -2182,7 +2183,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2024-01-02 17:25:46.027523", + "modified": "2024-03-01 09:21:54.201289", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 572a9f94493..3352e0d90ad 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -757,8 +757,6 @@ class SalesInvoice(SellingController): def validate_time_sheets_are_submitted(self): for data in self.timesheets: if data.time_sheet: - if self.is_return: - continue status = frappe.db.get_value("Timesheet", data.time_sheet, "status") if status not in ["Submitted", "Payslip"]: frappe.throw(_("Timesheet {0} is already completed or cancelled").format(data.time_sheet))