diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py index b9bf145c728..761ed8d804e 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py @@ -117,12 +117,12 @@ class POSInvoiceMergeLog(Document): sales = [d for d in pos_invoice_docs if d.get("is_return") == 0] sales_invoice, credit_note = "", "" - if returns: - credit_note = self.process_merging_into_credit_note(returns) - if sales: sales_invoice = self.process_merging_into_sales_invoice(sales) + if returns: + credit_note = self.process_merging_into_credit_note(returns, sales_invoice) + self.save() # save consolidated_sales_invoice & consolidated_credit_note ref in merge log self.update_pos_invoices(pos_invoice_docs, sales_invoice, credit_note) @@ -140,8 +140,13 @@ class POSInvoiceMergeLog(Document): sales_invoice.is_consolidated = 1 sales_invoice.set_posting_time = 1 - sales_invoice.posting_date = getdate(self.posting_date) - sales_invoice.posting_time = get_time(self.posting_time) + + if not sales_invoice.posting_date: + sales_invoice.posting_date = getdate(self.posting_date) + + if not sales_invoice.posting_time: + sales_invoice.posting_time = get_time(self.posting_time) + sales_invoice.save() sales_invoice.submit() @@ -149,12 +154,14 @@ class POSInvoiceMergeLog(Document): return sales_invoice.name - def process_merging_into_credit_note(self, data): + def process_merging_into_credit_note(self, data, sales_invoice): credit_note = self.get_new_sales_invoice() credit_note.is_return = 1 credit_note = self.merge_pos_invoice_into(credit_note, data) + credit_note.return_against = sales_invoice + credit_note.is_consolidated = 1 credit_note.set_posting_time = 1 credit_note.posting_date = getdate(self.posting_date) @@ -181,6 +188,10 @@ class POSInvoiceMergeLog(Document): for doc in data: map_doc(doc, invoice, table_map={"doctype": invoice.doctype}) + if doc.get("posting_date"): + invoice.posting_date = getdate(doc.posting_date) + invoice.posting_time = get_time(doc.posting_time) + if doc.redeem_loyalty_points: invoice.loyalty_redemption_account = doc.loyalty_redemption_account invoice.loyalty_redemption_cost_center = doc.loyalty_redemption_cost_center @@ -298,6 +309,8 @@ class POSInvoiceMergeLog(Document): sales_invoice = frappe.new_doc("Sales Invoice") sales_invoice.customer = self.customer sales_invoice.is_pos = 1 + sales_invoice.posting_date = None + sales_invoice.posting_time = None return sales_invoice