fix: set is_return & return_against in POS Invoice Reference table
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 3199912..a135484 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -361,3 +361,4 @@
erpnext.patches.v14_0.update_employee_advance_status
erpnext.patches.v13_0.add_cost_center_in_loans
erpnext.patches.v13_0.remove_unknown_links_to_prod_plan_items
+erpnext.patches.v13_0.set_return_against_in_pos_invoice_references
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/set_return_against_in_pos_invoice_references.py b/erpnext/patches/v13_0/set_return_against_in_pos_invoice_references.py
new file mode 100644
index 0000000..6c24f52
--- /dev/null
+++ b/erpnext/patches/v13_0/set_return_against_in_pos_invoice_references.py
@@ -0,0 +1,38 @@
+import frappe
+
+
+def execute():
+ '''
+ Fetch and Set is_return & return_against from POS Invoice in POS Invoice References table.
+ '''
+
+ POSClosingEntry = frappe.qb.DocType("POS Closing Entry")
+ open_pos_closing_entries = (
+ frappe.qb
+ .from_(POSClosingEntry)
+ .select(POSClosingEntry.name)
+ .where(POSClosingEntry.docstatus == 0)
+ .run(pluck=True)
+ )
+
+ if not open_pos_closing_entries:
+ return
+
+ POSInvoiceReference = frappe.qb.DocType("POS Invoice Reference")
+ POSInvoice = frappe.qb.DocType("POS Invoice")
+ pos_invoice_references = (
+ frappe.qb
+ .from_(POSInvoiceReference)
+ .join(POSInvoice)
+ .on(POSInvoiceReference.pos_invoice == POSInvoice.name)
+ .select(POSInvoiceReference.name, POSInvoice.is_return, POSInvoice.return_against)
+ .where(POSInvoiceReference.parent.isin(open_pos_closing_entries))
+ .run(as_dict=True)
+ )
+
+ for row in pos_invoice_references:
+ frappe.db.set_value("POS Invoice Reference", row.name, "is_return", row.is_return)
+ if row.is_return:
+ frappe.db.set_value("POS Invoice Reference", row.name, "return_against", row.return_against)
+ else:
+ frappe.db.set_value("POS Invoice Reference", row.name, "return_against", None)