From 8764a321c73c124019dbfde72aa43efc32424fe6 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 21 Jan 2025 12:57:10 +0530 Subject: [PATCH] chore: resolve conflicts --- .../purchase_invoice_advance.json | 4 - .../purchase_invoice_advance.py | 25 -- .../sales_invoice_advance.json | 4 - .../sales_invoice_advance.py | 25 -- .../tests/test_accounts_controller.py | 214 ------------------ 5 files changed, 272 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json b/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json index 2f6d30c0922..ebd309bfb67 100644 --- a/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json +++ b/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json @@ -125,11 +125,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], -<<<<<<< HEAD - "modified": "2021-09-26 15:47:28.167371", -======= "modified": "2024-12-20 12:04:46.729972", ->>>>>>> 225e56cbca (feat: add difference_posting_date field) "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice Advance", diff --git a/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py b/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py index 6f8971c12f4..44e1f6d5685 100644 --- a/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py +++ b/erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py @@ -6,29 +6,4 @@ from frappe.model.document import Document class PurchaseInvoiceAdvance(Document): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - advance_amount: DF.Currency - allocated_amount: DF.Currency - difference_posting_date: DF.Date | None - exchange_gain_loss: DF.Currency - parent: DF.Data - parentfield: DF.Data - parenttype: DF.Data - ref_exchange_rate: DF.Float - reference_name: DF.DynamicLink | None - reference_row: DF.Data | None - reference_type: DF.Link | None - remarks: DF.Text | None - # end: auto-generated types - ->>>>>>> 225e56cbca (feat: add difference_posting_date field) pass diff --git a/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.json b/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.json index 19336f84342..d4e3b9d896c 100644 --- a/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.json +++ b/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.json @@ -126,11 +126,7 @@ "index_web_pages_for_search": 1, "istable": 1, "links": [], -<<<<<<< HEAD - "modified": "2021-09-26 15:47:46.911595", -======= "modified": "2024-12-20 11:58:28.962370", ->>>>>>> 225e56cbca (feat: add difference_posting_date field) "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice Advance", diff --git a/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py b/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py index edfa42e5eb7..6d4bd4633c3 100644 --- a/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py +++ b/erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py @@ -6,29 +6,4 @@ from frappe.model.document import Document class SalesInvoiceAdvance(Document): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - advance_amount: DF.Currency - allocated_amount: DF.Currency - difference_posting_date: DF.Date | None - exchange_gain_loss: DF.Currency - parent: DF.Data - parentfield: DF.Data - parenttype: DF.Data - ref_exchange_rate: DF.Float - reference_name: DF.DynamicLink | None - reference_row: DF.Data | None - reference_type: DF.Link | None - remarks: DF.Text | None - # end: auto-generated types - ->>>>>>> 225e56cbca (feat: add difference_posting_date field) pass diff --git a/erpnext/controllers/tests/test_accounts_controller.py b/erpnext/controllers/tests/test_accounts_controller.py index 029a5cb9659..a184009b1e1 100644 --- a/erpnext/controllers/tests/test_accounts_controller.py +++ b/erpnext/controllers/tests/test_accounts_controller.py @@ -1739,217 +1739,3 @@ class TestAccountsController(FrappeTestCase): # Exchange Gain/Loss Journal should've been cancelled exc_je_for_je1 = self.get_journals_for(je1.doctype, je1.name) self.assertEqual(exc_je_for_je1, []) -<<<<<<< HEAD -======= - - def test_70_advance_payment_against_sales_invoice_in_foreign_currency(self): - """ - Customer advance booked under Liability - """ - self.setup_advance_accounts_in_party_master() - - adv = self.create_payment_entry(amount=1, source_exc_rate=83) - adv.save() # explicit 'save' is needed to trigger set_liability_account() - self.assertEqual(adv.paid_from, self.advance_received_usd) - adv.submit() - - si = self.create_sales_invoice(qty=1, conversion_rate=80, rate=1, do_not_submit=True) - si.debit_to = self.debtors_usd - si.save().submit() - self.assert_ledger_outstanding(si.doctype, si.name, 80.0, 1.0) - - pr = self.create_payment_reconciliation() - pr.receivable_payable_account = self.debtors_usd - pr.default_advance_account = self.advance_received_usd - pr.get_unreconciled_entries() - self.assertEqual(pr.invoices[0].invoice_number, si.name) - self.assertEqual(pr.payments[0].reference_name, adv.name) - - # Allocate and Reconcile - invoices = [x.as_dict() for x in pr.invoices] - payments = [x.as_dict() for x in pr.payments] - pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) - pr.reconcile() - self.assertEqual(len(pr.invoices), 0) - self.assertEqual(len(pr.payments), 0) - self.assert_ledger_outstanding(si.doctype, si.name, 0.0, 0.0) - - # Exc Gain/Loss journal should've been creatad - exc_je_for_si = self.get_journals_for(si.doctype, si.name) - exc_je_for_adv = self.get_journals_for(adv.doctype, adv.name) - self.assertEqual(len(exc_je_for_si), 1) - self.assertEqual(len(exc_je_for_adv), 1) - self.assertEqual(exc_je_for_si, exc_je_for_adv) - - adv.reload() - adv.cancel() - si.reload() - self.assert_ledger_outstanding(si.doctype, si.name, 80.0, 1.0) - # Exc Gain/Loss journal should've been cancelled - exc_je_for_si = self.get_journals_for(si.doctype, si.name) - exc_je_for_adv = self.get_journals_for(adv.doctype, adv.name) - self.assertEqual(len(exc_je_for_si), 0) - self.assertEqual(len(exc_je_for_adv), 0) - - self.remove_advance_accounts_from_party_master() - - def test_71_advance_payment_against_purchase_invoice_in_foreign_currency(self): - """ - Supplier advance booked under Asset - """ - self.setup_advance_accounts_in_party_master() - - usd_amount = 1 - inr_amount = 85 - exc_rate = 85 - adv = create_payment_entry( - company=self.company, - payment_type="Pay", - party_type="Supplier", - party=self.supplier, - paid_from=self.cash, - paid_to=self.advance_paid_usd, - paid_amount=inr_amount, - ) - adv.source_exchange_rate = 1 - adv.target_exchange_rate = exc_rate - adv.received_amount = usd_amount - adv.paid_amount = exc_rate * usd_amount - adv.posting_date = nowdate() - adv.save() - # Make sure that advance account is still set - self.assertEqual(adv.paid_to, self.advance_paid_usd) - adv.submit() - - pi = self.create_purchase_invoice(qty=1, conversion_rate=83, rate=1) - self.assertEqual(pi.credit_to, self.creditors_usd) - self.assert_ledger_outstanding(pi.doctype, pi.name, 83.0, 1.0) - - pr = self.create_payment_reconciliation() - pr.party_type = "Supplier" - pr.party = self.supplier - pr.receivable_payable_account = self.creditors_usd - pr.default_advance_account = self.advance_paid_usd - pr.get_unreconciled_entries() - self.assertEqual(pr.invoices[0].invoice_number, pi.name) - self.assertEqual(pr.payments[0].reference_name, adv.name) - - # Allocate and Reconcile - invoices = [x.as_dict() for x in pr.invoices] - payments = [x.as_dict() for x in pr.payments] - pr.allocate_entries(frappe._dict({"invoices": invoices, "payments": payments})) - pr.reconcile() - self.assertEqual(len(pr.invoices), 0) - self.assertEqual(len(pr.payments), 0) - self.assert_ledger_outstanding(pi.doctype, pi.name, 0.0, 0.0) - - # Exc Gain/Loss journal should've been creatad - exc_je_for_pi = self.get_journals_for(pi.doctype, pi.name) - exc_je_for_adv = self.get_journals_for(adv.doctype, adv.name) - self.assertEqual(len(exc_je_for_pi), 1) - self.assertEqual(len(exc_je_for_adv), 1) - self.assertEqual(exc_je_for_pi, exc_je_for_adv) - - adv.reload() - adv.cancel() - pi.reload() - self.assert_ledger_outstanding(pi.doctype, pi.name, 83.0, 1.0) - # Exc Gain/Loss journal should've been cancelled - exc_je_for_pi = self.get_journals_for(pi.doctype, pi.name) - exc_je_for_adv = self.get_journals_for(adv.doctype, adv.name) - self.assertEqual(len(exc_je_for_pi), 0) - self.assertEqual(len(exc_je_for_adv), 0) - - self.remove_advance_accounts_from_party_master() - - def test_difference_posting_date_in_pi_and_si(self): - self.setup_advance_accounts_in_party_master() - - # create payment entry for customer - adv = self.create_payment_entry(amount=1, source_exc_rate=83) - adv.save() - self.assertEqual(adv.paid_from, self.advance_received_usd) - adv.submit() - - # create sales invoice with advance received - si = self.create_sales_invoice(qty=1, conversion_rate=80, rate=1, do_not_submit=True) - si.debit_to = self.debtors_usd - si.append( - "advances", - { - "reference_type": "Payment Entry", - "reference_name": "ACC-PAY-2024-00001", - "remarks": "Amount INR 1 received from _Test MC Customer USD\nTransaction reference no Test001 dated 2024-12-19", - "advance_amount": 1.0, - "allocated_amount": 1.0, - "exchange_gain_loss": 3.0, - "ref_exchange_rate": 83.0, - "difference_posting_date": add_days(nowdate(), -2), - }, - ) - si.save().submit() - - # exc Gain/Loss journal should've been creatad - exc_je_for_si = self.get_journals_for(si.doctype, si.name) - exc_je_for_adv = self.get_journals_for(adv.doctype, adv.name) - self.assertEqual(len(exc_je_for_si), 1) - self.assertEqual(len(exc_je_for_adv), 1) - self.assertEqual(exc_je_for_si, exc_je_for_adv) - - # check jv created with difference_posting_date in sales invoice - jv = frappe.get_doc("Journal Entry", exc_je_for_si[0].parent) - sales_invoice = frappe.get_doc("Sales Invoice", si.name) - self.assertEqual(sales_invoice.advances[0].difference_posting_date, jv.posting_date) - - # create payment entry for supplier - usd_amount = 1 - inr_amount = 85 - exc_rate = 85 - adv = create_payment_entry( - company=self.company, - payment_type="Pay", - party_type="Supplier", - party=self.supplier, - paid_from=self.cash, - paid_to=self.advance_paid_usd, - paid_amount=inr_amount, - ) - adv.source_exchange_rate = 1 - adv.target_exchange_rate = exc_rate - adv.received_amount = usd_amount - adv.paid_amount = exc_rate * usd_amount - adv.posting_date = nowdate() - adv.save() - self.assertEqual(adv.paid_to, self.advance_paid_usd) - adv.submit() - - # create purchase invoice with advance paid - pi = self.create_purchase_invoice(qty=1, conversion_rate=80, rate=1, do_not_submit=True) - pi.append( - "advances", - { - "reference_type": "Payment Entry", - "reference_name": "ACC-PAY-2024-00002", - "remarks": "Amount INR 1 paid to _Test MC Supplier USD\nTransaction reference no Test001 dated 2024-12-20", - "advance_amount": 1.0, - "allocated_amount": 1.0, - "exchange_gain_loss": 5.0, - "ref_exchange_rate": 85.0, - "difference_posting_date": add_days(nowdate(), -2), - }, - ) - pi.save().submit() - self.assertEqual(pi.credit_to, self.creditors_usd) - - # exc Gain/Loss journal should've been creatad - exc_je_for_pi = self.get_journals_for(pi.doctype, pi.name) - exc_je_for_adv = self.get_journals_for(adv.doctype, adv.name) - self.assertEqual(len(exc_je_for_pi), 1) - self.assertEqual(len(exc_je_for_adv), 1) - self.assertEqual(exc_je_for_pi, exc_je_for_adv) - - # check jv created with difference_posting_date in purchase invoice - journal_voucher = frappe.get_doc("Journal Entry", exc_je_for_pi[0].parent) - purchase_invoice = frappe.get_doc("Purchase Invoice", pi.name) - self.assertEqual(purchase_invoice.advances[0].difference_posting_date, journal_voucher.posting_date) ->>>>>>> c14a2d73bf (test: add unit test to validate journal entry posting date)