fix: Unlink PO on cancelling SO

(cherry picked from commit 8396f24e70)
This commit is contained in:
GangaManoj
2021-09-20 19:01:46 +05:30
committed by mergify-bot
parent c822f286c7
commit 2fb18afea0
2 changed files with 54 additions and 1 deletions

View File

@@ -19,7 +19,8 @@ from frappe.utils import (
get_link_to_form,
getdate,
nowdate,
today,
now,
today
)
from six import text_type
@@ -820,6 +821,52 @@ class AccountsController(TransactionBase):
if frappe.db.get_single_value('Accounts Settings', 'unlink_advance_payment_on_cancelation_of_order'):
unlink_ref_doc_from_payment_entries(self)
if self.doctype == "Sales Order":
self.unlink_ref_doc_from_po()
def unlink_ref_doc_from_po(self):
print("\n"*5, "*"*50, "\n"*5)
so_items = []
for item in self.items:
so_items.append(item.name)
print("SO Items: ", so_items)
linked_po = frappe.get_all(
'Purchase Order Item',
filters = {
'sales_order': self.name,
'sales_order_item': ['in', so_items],
'docstatus': ['<', 2]
},
pluck='parent'
)
print("Before unlinking: ", linked_po)
if linked_po:
frappe.db.sql("""update `tabPurchase Order Item`
set sales_order = null, sales_order_item = null,
modified = %s, modified_by = %s
where sales_order = %s and sales_order_item in %s
and docstatus < 2""", (now(), frappe.session.user, self.name, so_items))
frappe.msgprint(_("Purchase Orders {0} are un-linked").format("\n".join(linked_po)))
linked_po = frappe.get_all(
'Purchase Order Item',
filters = {
'sales_order': self.name,
'sales_order_item': ['in', so_items],
'docstatus': ['<', 2]
},
pluck='parent'
)
print("After unlinking: ", linked_po)
print("\n"*5, "*"*50, "\n"*5)
def get_tax_map(self):
tax_map = {}
for tax in self.get('taxes'):