From 8ae7ca7f14c8c575713e76223e43ff2ef6bc9ae5 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 10:56:17 +0530 Subject: [PATCH 01/39] Revert "fix: use dynamic link for against field" This reverts commit 725a7f90e9a873335caaa588d73ddb3de7383c33. --- erpnext/accounts/doctype/gl_entry/gl_entry.json | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.json b/erpnext/accounts/doctype/gl_entry/gl_entry.json index 09912e9896..7f41fb62b0 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.json +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.json @@ -17,7 +17,6 @@ "account_currency", "debit_in_account_currency", "credit_in_account_currency", - "against_type", "against", "against_link", "against_voucher_type", @@ -131,13 +130,6 @@ "label": "Credit Amount in Account Currency", "options": "account_currency" }, - { - "fieldname": "against_type", - "fieldtype": "Link", - "in_filter": 1, - "label": "Against Type", - "options": "DocType" - }, { "fieldname": "against", "fieldtype": "Text", @@ -146,13 +138,6 @@ "oldfieldname": "against", "oldfieldtype": "Text" }, - { - "fieldname": "against_link", - "fieldtype": "Dynamic Link", - "in_filter": 1, - "label": "Against", - "options": "against_type" - }, { "fieldname": "against_voucher_type", "fieldtype": "Link", @@ -306,7 +291,7 @@ "idx": 1, "in_create": 1, "links": [], - "modified": "2023-12-18 15:38:14.006208", + "modified": "2023-08-16 21:38:44.072267", "modified_by": "Administrator", "module": "Accounts", "name": "GL Entry", From 1710e10b31104cb9b4cf009cff99d6ef7bc34d56 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:01:27 +0530 Subject: [PATCH 02/39] Revert "fix: set against type in inv gl dict" This reverts commit 19b220f39ca3596e416d99f3aef7c2485019b9fd. --- .../purchase_invoice/purchase_invoice.py | 23 +------------------ .../doctype/sales_invoice/sales_invoice.py | 21 ++++------------- 2 files changed, 5 insertions(+), 39 deletions(-) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index b8ecf983ec..fa365fcc7c 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -827,7 +827,6 @@ class PurchaseInvoice(BuyingController): "party_type": "Supplier", "party": self.supplier, "due_date": self.due_date, - "against_type": "Account", "against": self.against_expense_account, "against_link": self.against_expense_account, "credit": base_grand_total, @@ -902,7 +901,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": warehouse_account[item.warehouse]["account"], - "against_type": "Account", "against": warehouse_account[item.from_warehouse]["account"], "against_link": warehouse_account[item.from_warehouse]["account"], "cost_center": item.cost_center, @@ -924,7 +922,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": warehouse_account[item.from_warehouse]["account"], - "against_type": "Account", "against": warehouse_account[item.warehouse]["account"], "against_link": warehouse_account[item.warehouse]["account"], "cost_center": item.cost_center, @@ -943,7 +940,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": item.expense_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "debit": flt(item.base_net_amount, item.precision("base_net_amount")), @@ -962,7 +958,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": item.expense_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "debit": warehouse_debit_amount, @@ -983,7 +978,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": account, - "against_type": "Account", "against": item.expense_account, "against_link": item.expense_account, "cost_center": item.cost_center, @@ -1005,7 +999,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": supplier_warehouse_account, - "against_type": "Account", "against": item.expense_account, "against_link": item.expense_account, "cost_center": item.cost_center, @@ -1062,7 +1055,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": expense_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "debit": amount, @@ -1090,7 +1082,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": expense_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "debit": discrepancy_caused_by_exchange_rate_difference, @@ -1105,7 +1096,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": self.get_company_default("exchange_gain_loss_account"), - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "credit": discrepancy_caused_by_exchange_rate_difference, @@ -1140,8 +1130,7 @@ class PurchaseInvoice(BuyingController): gl_entries.append( self.get_gl_dict( { - "account": stock_rbnb, - "against_type": "Supplier", + "account": self.stock_received_but_not_billed, "against": self.supplier, "against_link": self.supplier, "debit": flt(item.item_tax_amount, item.precision("item_tax_amount")), @@ -1204,7 +1193,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": cost_of_goods_sold_account, - "against_type": "Account", "against": item.expense_account, "against_link": item.expense_account, "debit": stock_adjustment_amt, @@ -1236,7 +1224,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": tax.account_head, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, dr_or_cr: base_amount, @@ -1286,7 +1273,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": tax.account_head, - "against_type": "Supplier", "cost_center": tax.cost_center, "against": self.supplier, "against_link": self.supplier, @@ -1307,7 +1293,6 @@ class PurchaseInvoice(BuyingController): { "account": tax.account_head, "cost_center": tax.cost_center, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "credit": valuation_tax[tax.name], @@ -1324,7 +1309,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": self.unrealized_profit_loss_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "credit": flt(self.total_taxes_and_charges), @@ -1347,7 +1331,6 @@ class PurchaseInvoice(BuyingController): "account": self.credit_to, "party_type": "Supplier", "party": self.supplier, - "against_type": "Account", "against": self.cash_bank_account, "against_link": self.cash_bank_account, "debit": self.base_paid_amount, @@ -1370,7 +1353,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": self.cash_bank_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "credit": self.base_paid_amount, @@ -1396,7 +1378,6 @@ class PurchaseInvoice(BuyingController): "account": self.credit_to, "party_type": "Supplier", "party": self.supplier, - "against_type": "Account", "against": self.write_off_account, "against_link": self.write_off_account, "debit": self.base_write_off_amount, @@ -1418,7 +1399,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": self.write_off_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "credit": flt(self.base_write_off_amount), @@ -1447,7 +1427,6 @@ class PurchaseInvoice(BuyingController): self.get_gl_dict( { "account": round_off_account, - "against_type": "Supplier", "against": self.supplier, "against_link": self.supplier, "debit_in_account_currency": self.rounding_adjustment, diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 8da45054c2..7f00f0fd4f 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -7,7 +7,7 @@ from frappe import _, msgprint, throw from frappe.contacts.doctype.address.address import get_address_display from frappe.model.mapper import get_mapped_doc from frappe.model.utils import get_fetch_values -from frappe.utils import add_days, cint, flt, formatdate, get_link_to_form, getdate, nowdate +from frappe.utils import add_days, cint, cstr, flt, formatdate, get_link_to_form, getdate, nowdate import erpnext from erpnext.accounts.deferred_revenue import validate_service_stop_date @@ -1233,7 +1233,6 @@ class SalesInvoice(SellingController): "party_type": "Customer", "party": self.customer, "due_date": self.due_date, - "against_type": "Account", "against": self.against_income_account, "against_link": self.against_income_account, "debit": base_grand_total, @@ -1264,7 +1263,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": tax.account_head, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "credit": flt(base_amount, tax.precision("tax_amount_after_discount_amount")), @@ -1287,7 +1285,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": self.unrealized_profit_loss_account, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "debit": flt(self.total_taxes_and_charges), @@ -1357,7 +1354,6 @@ class SalesInvoice(SellingController): add_asset_activity(asset.name, _("Asset sold")) for gle in fixed_asset_gl_entries: - gle["against_type"] = "Customer" gle["against"] = self.customer gle["against_link"] = self.customer gl_entries.append(self.get_gl_dict(gle, item=item)) @@ -1380,7 +1376,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": income_account, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "credit": flt(base_amount, item.precision("base_net_amount")), @@ -1436,9 +1431,9 @@ class SalesInvoice(SellingController): "account": self.debit_to, "party_type": "Customer", "party": self.customer, - "against_type": "Account", - "against": self.loyalty_redemption_account, - "against_link": self.loyalty_redemption_account, + "against": "Expense account - " + + cstr(self.loyalty_redemption_account) + + " for the Loyalty Program", "credit": self.loyalty_amount, "against_voucher": self.return_against if cint(self.is_return) else self.name, "against_voucher_type": self.doctype, @@ -1452,7 +1447,6 @@ class SalesInvoice(SellingController): { "account": self.loyalty_redemption_account, "cost_center": self.cost_center or self.loyalty_redemption_cost_center, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "debit": self.loyalty_amount, @@ -1481,7 +1475,6 @@ class SalesInvoice(SellingController): "account": self.debit_to, "party_type": "Customer", "party": self.customer, - "against_type": "Account", "against": payment_mode.account, "against_link": payment_mode.account, "credit": payment_mode.base_amount, @@ -1504,7 +1497,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": payment_mode.account, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "debit": payment_mode.base_amount, @@ -1530,7 +1522,6 @@ class SalesInvoice(SellingController): "account": self.debit_to, "party_type": "Customer", "party": self.customer, - "against_type": "Account", "against": self.account_for_change_amount, "against_link": self.account_for_change_amount, "debit": flt(self.base_change_amount), @@ -1553,7 +1544,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": self.account_for_change_amount, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "credit": self.base_change_amount, @@ -1581,7 +1571,6 @@ class SalesInvoice(SellingController): "account": self.debit_to, "party_type": "Customer", "party": self.customer, - "against_type": "Account", "against": self.write_off_account, "against_link": self.write_off_account, "credit": flt(self.base_write_off_amount, self.precision("base_write_off_amount")), @@ -1603,7 +1592,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": self.write_off_account, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "debit": flt(self.base_write_off_amount, self.precision("base_write_off_amount")), @@ -1633,7 +1621,6 @@ class SalesInvoice(SellingController): self.get_gl_dict( { "account": round_off_account, - "against_type": "Customer", "against": self.customer, "against_link": self.customer, "credit_in_account_currency": flt( From 7c0e180fd9fdd00df34bf91f50d26bb7129c865e Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:01:40 +0530 Subject: [PATCH 03/39] Revert "fix: set against type in deferred revenue" This reverts commit 82774f89b106a56c4754536b1c0cf5eb695a3c15. --- erpnext/accounts/deferred_revenue.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/erpnext/accounts/deferred_revenue.py b/erpnext/accounts/deferred_revenue.py index 6282e9a560..a63032566e 100644 --- a/erpnext/accounts/deferred_revenue.py +++ b/erpnext/accounts/deferred_revenue.py @@ -358,11 +358,9 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None): account_currency = get_account_currency(item.expense_account or item.income_account) if doc.doctype == "Sales Invoice": - against_type = "Customer" against, project = doc.customer, doc.project credit_account, debit_account = item.income_account, item.deferred_revenue_account else: - against_type = "Supplier" against, project = doc.supplier, item.project credit_account, debit_account = item.deferred_expense_account, item.expense_account @@ -415,7 +413,6 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None): doc, credit_account, debit_account, - against_type, against, amount, base_amount, @@ -497,7 +494,6 @@ def make_gl_entries( doc, credit_account, debit_account, - against_type, against, amount, base_amount, @@ -519,7 +515,6 @@ def make_gl_entries( doc.get_gl_dict( { "account": credit_account, - "against_type": against_type, "against": against, "against_link": against, "credit": base_amount, @@ -540,7 +535,6 @@ def make_gl_entries( doc.get_gl_dict( { "account": debit_account, - "against_type": against_type, "against": against, "against_link": against, "debit": base_amount, From fbeaf2b3987a6f6593a3a61d054bb1db3032c152 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:04:00 +0530 Subject: [PATCH 04/39] Revert "fix: set against type in controllers" This reverts commit 4c5a83d6cf7e4b39a403b1e99a2b1c443f854ac9. --- .../doctype/journal_entry/journal_entry.py | 94 ++++++------------- .../doctype/payment_entry/payment_entry.py | 7 -- erpnext/controllers/accounts_controller.py | 7 -- 3 files changed, 27 insertions(+), 81 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 79f1ab063d..e8c0e3cb5c 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1038,75 +1038,35 @@ class JournalEntry(AccountsController): r = [x for x in r if x] remarks = "\n".join(r) - gl_dict = self.get_gl_dict( - { - "account": d.account, - "party_type": d.party_type, - "due_date": self.due_date, - "party": d.party, - "debit": flt(d.debit, d.precision("debit")), - "credit": flt(d.credit, d.precision("credit")), - "account_currency": d.account_currency, - "debit_in_account_currency": flt( - d.debit_in_account_currency, d.precision("debit_in_account_currency") - ), - "credit_in_account_currency": flt( - d.credit_in_account_currency, d.precision("credit_in_account_currency") - ), - "against_voucher_type": d.reference_type, - "against_voucher": d.reference_name, - "remarks": remarks, - "voucher_detail_no": d.reference_detail_no, - "cost_center": d.cost_center, - "project": d.project, - "finance_book": self.finance_book, - }, - item=d, + gl_map.append( + self.get_gl_dict( + { + "account": d.account, + "party_type": d.party_type, + "due_date": self.due_date, + "party": d.party, + "against": d.against_account, + "debit": flt(d.debit, d.precision("debit")), + "credit": flt(d.credit, d.precision("credit")), + "account_currency": d.account_currency, + "debit_in_account_currency": flt( + d.debit_in_account_currency, d.precision("debit_in_account_currency") + ), + "credit_in_account_currency": flt( + d.credit_in_account_currency, d.precision("credit_in_account_currency") + ), + "against_voucher_type": d.reference_type, + "against_voucher": d.reference_name, + "remarks": remarks, + "voucher_detail_no": d.reference_detail_no, + "cost_center": d.cost_center, + "project": d.project, + "finance_book": self.finance_book, + }, + item=d, + ) ) - if not self.separate_against_account_entries: - gl_dict.update( - { - "against_type": d.against_type, - "against_link": d.against_account_link, - } - ) - gl_map.append(gl_dict) - - elif d in self.against_accounts: - gl_dict.update( - { - "against_type": self.split_account.get("party_type") or "Account", - "against": self.split_account.get("party") or self.split_account.get("account"), - "against_link": self.split_account.get("party") or self.split_account.get("account"), - } - ) - gl_map.append(gl_dict) - - else: - for against_account in self.against_accounts: - against_account = against_account.as_dict() - debit = against_account.credit or against_account.credit_in_account_currency - credit = against_account.debit or against_account.debit_in_account_currency - gl_dict = gl_dict.copy() - gl_dict.update( - { - "against_type": against_account.party_type or "Account", - "against": against_account.party or against_account.account, - "against_link": against_account.party or against_account.account, - "debit": flt(debit, d.precision("debit")), - "credit": flt(credit, d.precision("credit")), - "account_currency": d.account_currency, - "debit_in_account_currency": flt( - debit / d.exchange_rate, d.precision("debit_in_account_currency") - ), - "credit_in_account_currency": flt( - credit / d.exchange_rate, d.precision("credit_in_account_currency") - ), - } - ) - gl_map.append(gl_dict) - return gl_map def make_gl_entries(self, cancel=0, adv_adj=0): diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 37bd8e6fcd..cc75d8c1f0 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -1144,7 +1144,6 @@ class PaymentEntry(AccountsController): "account": self.party_account, "party_type": self.party_type, "party": self.party, - "against_type": "Account", "against": against_account, "against_link": against_account, "account_currency": self.party_account_currency, @@ -1311,7 +1310,6 @@ class PaymentEntry(AccountsController): { "account": self.paid_from, "account_currency": self.paid_from_account_currency, - "against_type": self.party_type if self.payment_type == "Pay" else "Account", "against": self.party if self.payment_type == "Pay" else self.paid_to, "against_link": self.party if self.payment_type == "Pay" else self.paid_to, "credit_in_account_currency": self.paid_amount, @@ -1328,7 +1326,6 @@ class PaymentEntry(AccountsController): { "account": self.paid_to, "account_currency": self.paid_to_account_currency, - "against_type": self.party_type if self.payment_type == "Receive" else "Account", "against": self.party if self.payment_type == "Receive" else self.paid_from, "against_link": self.party if self.payment_type == "Receive" else self.paid_from, "debit_in_account_currency": self.received_amount, @@ -1354,7 +1351,6 @@ class PaymentEntry(AccountsController): rev_dr_or_cr = "credit" if dr_or_cr == "debit" else "debit" against = self.party or self.paid_to - against_type = self.party_type or "Account" payment_account = self.get_party_account_for_taxes() tax_amount = d.tax_amount base_tax_amount = d.base_tax_amount @@ -1363,7 +1359,6 @@ class PaymentEntry(AccountsController): self.get_gl_dict( { "account": d.account_head, - "against_type": against_type, "against": against, "against_link": against, dr_or_cr: tax_amount, @@ -1390,7 +1385,6 @@ class PaymentEntry(AccountsController): self.get_gl_dict( { "account": payment_account, - "against_type": against_type, "against": against, "against_link": against, rev_dr_or_cr: tax_amount, @@ -1417,7 +1411,6 @@ class PaymentEntry(AccountsController): { "account": d.account, "account_currency": account_currency, - "against_type": self.party_type or "Account", "against": self.party or self.paid_from, "against_link": self.party or self.paid_from, "debit_in_account_currency": d.amount, diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index aef3d31b10..be92a69a40 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1161,7 +1161,6 @@ class AccountsController(TransactionBase): ) credit_or_debit = "credit" if self.doctype == "Purchase Invoice" else "debit" - against_type = "Supplier" if self.doctype == "Purchase Invoice" else "Customer" against = self.supplier if self.doctype == "Purchase Invoice" else self.customer if precision_loss: @@ -1169,7 +1168,6 @@ class AccountsController(TransactionBase): self.get_gl_dict( { "account": round_off_account, - "against_type": against_type, "against": against, "against_link": against, credit_or_debit: precision_loss, @@ -1525,13 +1523,11 @@ class AccountsController(TransactionBase): if self.doctype == "Purchase Invoice": dr_or_cr = "credit" rev_dr_cr = "debit" - against_type = "Supplier" supplier_or_customer = self.supplier else: dr_or_cr = "debit" rev_dr_cr = "credit" - against_type = "Customer" supplier_or_customer = self.customer if enable_discount_accounting: @@ -1556,7 +1552,6 @@ class AccountsController(TransactionBase): self.get_gl_dict( { "account": item.discount_account, - "against_type": against_type, "against": supplier_or_customer, "against_link": supplier_or_customer, dr_or_cr: flt( @@ -1576,7 +1571,6 @@ class AccountsController(TransactionBase): self.get_gl_dict( { "account": income_or_expense_account, - "against_type": against_type, "against": supplier_or_customer, "against_link": supplier_or_customer, rev_dr_cr: flt( @@ -1601,7 +1595,6 @@ class AccountsController(TransactionBase): self.get_gl_dict( { "account": self.additional_discount_account, - "against_type": against_type, "against": supplier_or_customer, "against_link": supplier_or_customer, dr_or_cr: self.base_discount_amount, From 9339a8b57ff13833b218d05e873e3232eb5b5b2a Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:04:13 +0530 Subject: [PATCH 05/39] Revert "fix: set against type in utils" This reverts commit f292a0cc4c89814607fec0bb66d1c458d6624750. --- .../accounts/doctype/invoice_discounting/invoice_discounting.py | 2 -- erpnext/regional/united_arab_emirates/utils.py | 1 - erpnext/stock/doctype/stock_entry/stock_entry.py | 2 -- 3 files changed, 5 deletions(-) diff --git a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py index 69b0860a30..d677f2247f 100644 --- a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py +++ b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py @@ -153,7 +153,6 @@ class InvoiceDiscounting(AccountsController): "account": inv.debit_to, "party_type": "Customer", "party": d.customer, - "against_type": "Account", "against": self.accounts_receivable_credit, "against_link": self.accounts_receivable_credit, "credit": outstanding_in_company_currency, @@ -175,7 +174,6 @@ class InvoiceDiscounting(AccountsController): "account": self.accounts_receivable_credit, "party_type": "Customer", "party": d.customer, - "against_type": "Account", "against": inv.debit_to, "against_link": inv.debit_to, "debit": outstanding_in_company_currency, diff --git a/erpnext/regional/united_arab_emirates/utils.py b/erpnext/regional/united_arab_emirates/utils.py index 3e9f76132c..6530ab8676 100644 --- a/erpnext/regional/united_arab_emirates/utils.py +++ b/erpnext/regional/united_arab_emirates/utils.py @@ -153,7 +153,6 @@ def make_gl_entry(tax, gl_entries, doc, tax_accounts): "account": tax.account_head, "cost_center": tax.cost_center, "posting_date": doc.posting_date, - "against_type": "Supplier", "against": doc.supplier, "against_link": doc.supplier, dr_or_cr: tax.base_tax_amount_after_discount_amount, diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index bc5f428951..0f866cbdc5 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -1459,7 +1459,6 @@ class StockEntry(StockController): self.get_gl_dict( { "account": account, - "against_type": "Account", "against": d.expense_account, "against_link": d.expense_account, "cost_center": d.cost_center, @@ -1475,7 +1474,6 @@ class StockEntry(StockController): self.get_gl_dict( { "account": d.expense_account, - "against_type": "Account", "against": account, "against_link": account, "cost_center": d.cost_center, From 073f2fa302cc6541c1b212417e2bbda1bb04bd9e Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:04:40 +0530 Subject: [PATCH 06/39] Revert "fix: set against type in stock controller" This reverts commit 4ea43ebc5dadc35e66cec30d36a9578118f01622. --- erpnext/controllers/stock_controller.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index de86846701..3480683204 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -162,7 +162,6 @@ class StockController(AccountsController): self.get_gl_dict( { "account": warehouse_account[sle.warehouse]["account"], - "against_type": "Account", "against": expense_account, "against_link": expense_account, "cost_center": item_row.cost_center, @@ -180,7 +179,6 @@ class StockController(AccountsController): self.get_gl_dict( { "account": expense_account, - "against_type": "Account", "against": warehouse_account[sle.warehouse]["account"], "against_link": warehouse_account[sle.warehouse]["account"], "cost_center": item_row.cost_center, @@ -214,7 +212,6 @@ class StockController(AccountsController): self.get_gl_dict( { "account": expense_account, - "against_type": "Account", "against": warehouse_asset_account, "against_link": warehouse_asset_account, "cost_center": item_row.cost_center, @@ -232,7 +229,6 @@ class StockController(AccountsController): self.get_gl_dict( { "account": warehouse_asset_account, - "against_type": "Account", "against": expense_account, "against_link": expense_account, "cost_center": item_row.cost_center, @@ -851,7 +847,6 @@ class StockController(AccountsController): "cost_center": cost_center, "debit": debit, "credit": credit, - "against_type": against_type, "against": against_account, "against_link": against_account, "remarks": remarks, From 498c9c795588188a9a0e523880ecb29dfc5b30d4 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:04:51 +0530 Subject: [PATCH 07/39] Revert "fix: set against type in asset" This reverts commit 6e1565c32c41a5d8bb5cffc4a74c861b0592ece6. --- erpnext/assets/doctype/asset/asset.py | 2 -- erpnext/assets/doctype/asset_repair/asset_repair.py | 4 ---- 2 files changed, 6 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 5f448987a5..604ff6b961 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -697,7 +697,6 @@ class Asset(AccountsController): self.get_gl_dict( { "account": cwip_account, - "against_type": "Account", "against": fixed_asset_account, "against_link": fixed_asset_account, "remarks": self.get("remarks") or _("Accounting Entry for Asset"), @@ -714,7 +713,6 @@ class Asset(AccountsController): self.get_gl_dict( { "account": fixed_asset_account, - "against_type": "Account", "against": cwip_account, "against_link": cwip_account, "remarks": self.get("remarks") or _("Accounting Entry for Asset"), diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index bb627d408c..fb088ebdf2 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -285,7 +285,6 @@ class AssetRepair(AccountsController): "account": fixed_asset_account, "debit": self.repair_cost, "debit_in_account_currency": self.repair_cost, - "against_type": "Account", "against": pi_expense_account, "against_link": pi_expense_account, "voucher_type": self.doctype, @@ -306,7 +305,6 @@ class AssetRepair(AccountsController): "account": pi_expense_account, "credit": self.repair_cost, "credit_in_account_currency": self.repair_cost, - "against_type": "Account", "against": fixed_asset_account, "against_link": fixed_asset_account, "voucher_type": self.doctype, @@ -342,7 +340,6 @@ class AssetRepair(AccountsController): "account": item.expense_account or default_expense_account, "credit": item.amount, "credit_in_account_currency": item.amount, - "against_type": "Account", "against": fixed_asset_account, "against_link": fixed_asset_account, "voucher_type": self.doctype, @@ -361,7 +358,6 @@ class AssetRepair(AccountsController): "account": fixed_asset_account, "debit": item.amount, "debit_in_account_currency": item.amount, - "against_type": "Account", "against": item.expense_account or default_expense_account, "against_link": item.expense_account or default_expense_account, "voucher_type": self.doctype, From 93ff84bf56bf631ddb05c89522585023a906d3de Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:06:01 +0530 Subject: [PATCH 08/39] Revert "fix: remove multiple accounts from against in capitalization" This reverts commit f705bf2efe7bf079bb9b8af200f4c8cadfddd4ee. --- .../asset_capitalization.py | 64 ++++++++----------- 1 file changed, 28 insertions(+), 36 deletions(-) diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index de758419e0..4a3c04e4ed 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -485,7 +485,6 @@ class AssetCapitalization(StockController): self.get_gl_dict( { "account": account, - "against_type": "Account", "against": target_account, "against_link": target_account, "cost_center": item_row.cost_center, @@ -528,7 +527,6 @@ class AssetCapitalization(StockController): self.set_consumed_asset_status(asset) for gle in fixed_asset_gl_entries: - gle["against_type"] = "Account" gle["against"] = target_account gle["against_link"] = target_account gl_entries.append(self.get_gl_dict(gle, item=item)) @@ -546,7 +544,6 @@ class AssetCapitalization(StockController): self.get_gl_dict( { "account": item_row.expense_account, - "against_type": "Account", "against": target_account, "against_link": target_account, "cost_center": item_row.cost_center, @@ -559,46 +556,41 @@ class AssetCapitalization(StockController): ) def get_gl_entries_for_target_item(self, gl_entries, target_against, precision): - for target_account in target_against: - if self.target_is_fixed_asset: - # Capitalization + if self.target_is_fixed_asset: + # Capitalization + gl_entries.append( + self.get_gl_dict( + { + "account": self.target_fixed_asset_account, + "against": ", ".join(target_against), + "remarks": self.get("remarks") or _("Accounting Entry for Asset"), + "debit": flt(self.total_value, precision), + "cost_center": self.get("cost_center"), + }, + item=self, + ) + ) + else: + # Target Stock Item + sle_list = self.sle_map.get(self.name) + for sle in sle_list: + stock_value_difference = flt(sle.stock_value_difference, precision) + account = self.warehouse_account[sle.warehouse]["account"] + gl_entries.append( self.get_gl_dict( { - "account": self.target_fixed_asset_account, - "against_type": "Account", - "against": target_account, - "against_link": target_account, - "remarks": self.get("remarks") or _("Accounting Entry for Asset"), - "debit": flt(self.total_value, precision) / len(target_against), - "cost_center": self.get("cost_center"), + "account": account, + "against": ", ".join(target_against), + "cost_center": self.cost_center, + "project": self.get("project"), + "remarks": self.get("remarks") or "Accounting Entry for Stock", + "debit": stock_value_difference, }, + self.warehouse_account[sle.warehouse]["account_currency"], item=self, ) ) - else: - # Target Stock Item - sle_list = self.sle_map.get(self.name) - for sle in sle_list: - stock_value_difference = flt(sle.stock_value_difference, precision) - account = self.warehouse_account[sle.warehouse]["account"] - - gl_entries.append( - self.get_gl_dict( - { - "account": account, - "against_type": "Account", - "against": target_account, - "against_link": target_account, - "cost_center": self.cost_center, - "project": self.get("project"), - "remarks": self.get("remarks") or "Accounting Entry for Stock", - "debit": stock_value_difference / len(target_against), - }, - self.warehouse_account[sle.warehouse]["account_currency"], - item=self, - ) - ) def create_target_asset(self): if ( From b40d3b0a057da7d9e333db8a1a1836e10a303225 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:09:18 +0530 Subject: [PATCH 09/39] Revert "fix: purchase receipt tests" This reverts commit fcfdb9b5667755b2846e834d70d3f9b444743d2b. --- erpnext/controllers/stock_controller.py | 1 - .../purchase_receipt/purchase_receipt.py | 21 +++++++++---------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 3480683204..4eef7cf4f0 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -832,7 +832,6 @@ class StockController(AccountsController): credit, remarks, against_account, - against_type="Account", debit_in_account_currency=None, credit_in_account_currency=None, account_currency=None, diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 326ef9be88..a0cf7e74f0 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -832,17 +832,16 @@ class PurchaseReceipt(BuyingController): ) amount_including_divisional_loss -= applicable_amount - for against in against_accounts: - self.add_gl_entry( - gl_entries=gl_entries, - account=account, - cost_center=tax.cost_center, - debit=0.0, - credit=flt(applicable_amount) / len(against_accounts), - remarks=self.remarks or _("Accounting Entry for Stock"), - against_account=against, - item=tax, - ) + self.add_gl_entry( + gl_entries=gl_entries, + account=account, + cost_center=tax.cost_center, + debit=0.0, + credit=applicable_amount, + remarks=self.remarks or _("Accounting Entry for Stock"), + against_account=against_accounts, + item=tax, + ) i += 1 From beb169cf75a5db20570a65ed21d53d99b8b1e42a Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:09:28 +0530 Subject: [PATCH 10/39] Revert "fix: asset capitalization tests" This reverts commit 952e8cf60ca138ddb5941221421d87c2d00800c4. --- .../asset_capitalization/test_asset_capitalization.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py index 7a7a10de20..ac7c90d9e6 100644 --- a/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py @@ -98,12 +98,12 @@ class TestAssetCapitalization(unittest.TestCase): # Test General Ledger Entries expected_gle = { - "_Test Fixed Asset - TCP1": 2999.99, + "_Test Fixed Asset - TCP1": 3000, "Expenses Included In Asset Valuation - TCP1": -1000, "_Test Warehouse - TCP1": -2000, - "Round Off - TCP1": 0.01, } actual_gle = get_actual_gle_dict(asset_capitalization.name) + self.assertEqual(actual_gle, expected_gle) # Test Stock Ledger Entries @@ -189,10 +189,9 @@ class TestAssetCapitalization(unittest.TestCase): # Test General Ledger Entries default_expense_account = frappe.db.get_value("Company", company, "default_expense_account") expected_gle = { - "_Test Fixed Asset - _TC": 2999.99, + "_Test Fixed Asset - _TC": 3000, "Expenses Included In Asset Valuation - _TC": -1000, default_expense_account: -2000, - "Round Off - _TC": 0.01, } actual_gle = get_actual_gle_dict(asset_capitalization.name) @@ -377,10 +376,9 @@ class TestAssetCapitalization(unittest.TestCase): # Test General Ledger Entries expected_gle = { + "_Test Warehouse - TCP1": consumed_asset_value_before_disposal, "_Test Accumulated Depreciations - TCP1": accumulated_depreciation, "_Test Fixed Asset - TCP1": -consumed_asset_purchase_value, - "_Test Warehouse - TCP1": consumed_asset_value_before_disposal - 0.01, - "Round Off - TCP1": 0.01, } actual_gle = get_actual_gle_dict(asset_capitalization.name) self.assertEqual(actual_gle, expected_gle) From 8ee6dbc1e23f4d5fd642add3b21d3434dcb37601 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:10:22 +0530 Subject: [PATCH 11/39] Revert "fix: make JV account against field a dynamic link" This reverts commit aab5737ff3b95cd38de9240666854805bbb272a4. --- .../journal_entry_account.json | 31 +++++-------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json index 01006bd3db..99e66e67ab 100644 --- a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json +++ b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json @@ -37,9 +37,7 @@ "col_break3", "is_advance", "user_remark", - "against_type", - "against_account", - "against_account_link" + "against_account" ], "fields": [ { @@ -252,21 +250,14 @@ "print_hide": 1 }, { - "fieldname": "against_account", - "fieldtype": "Text", - "hidden": 1, - "label": "Against Account", - "no_copy": 1, - "oldfieldname": "against_account", - "oldfieldtype": "Text", - "print_hide": 1 - }, - { - "fieldname": "against_account_link", - "fieldtype": "Dynamic Link", + "fieldname": "against_account", + "fieldtype": "Text", + "hidden": 1, "label": "Against Account", "no_copy": 1, - "options": "against_type" + "oldfieldname": "against_account", + "oldfieldtype": "Text", + "print_hide": 1 }, { "collapsible": 1, @@ -290,18 +281,12 @@ "hidden": 1, "label": "Reference Detail No", "no_copy": 1 - }, - { - "fieldname": "against_type", - "fieldtype": "Link", - "label": "Against Type", - "options": "DocType" } ], "idx": 1, "istable": 1, "links": [], - "modified": "2023-12-02 23:21:22.205409", + "modified": "2023-12-03 23:21:22.205409", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry Account", From 2c95cd206b4017dd063c97f0cda03b0a51dbb23b Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:12:15 +0530 Subject: [PATCH 12/39] Revert "fix: remove multiple against account values from gle" This reverts commit 35d92abe731b5d3d6b091297defaafc76ecc2af5. --- .../doctype/journal_entry/journal_entry.py | 91 +++---------------- 1 file changed, 14 insertions(+), 77 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index e8c0e3cb5c..982a3db5df 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -751,90 +751,27 @@ class JournalEntry(AccountsController): ) def set_against_account(self): + accounts_debited, accounts_credited = [], [] if self.voucher_type in ("Deferred Revenue", "Deferred Expense"): for d in self.get("accounts"): if d.reference_type == "Sales Invoice": - against_type = "Customer" + field = "customer" else: - against_type = "Supplier" + field = "supplier" - against_account = frappe.db.get_value(d.reference_type, d.reference_name, against_type.lower()) - d.against_type = against_type - d.against_account_link = against_account + d.against_account = frappe.db.get_value(d.reference_type, d.reference_name, field) else: - self.get_debited_credited_accounts() - if len(self.accounts_credited) > 1 and len(self.accounts_debited) > 1: - self.auto_set_against_accounts() - return - self.get_against_accounts() + for d in self.get("accounts"): + if flt(d.debit) > 0: + accounts_debited.append(d.party or d.account) + if flt(d.credit) > 0: + accounts_credited.append(d.party or d.account) - def auto_set_against_accounts(self): - for i in range(0, len(self.accounts), 2): - acc = self.accounts[i] - against_acc = self.accounts[i + 1] - if acc.debit_in_account_currency > 0: - current_val = acc.debit_in_account_currency * flt(acc.exchange_rate) - against_val = against_acc.credit_in_account_currency * flt(against_acc.exchange_rate) - else: - current_val = acc.credit_in_account_currency * flt(acc.exchange_rate) - against_val = against_acc.debit_in_account_currency * flt(against_acc.exchange_rate) - - if current_val == against_val: - acc.against_type = against_acc.party_type or "Account" - against_acc.against_type = acc.party_type or "Account" - - acc.against_account_link = against_acc.party or against_acc.account - against_acc.against_account_link = acc.party or acc.account - else: - frappe.msgprint( - _( - "Unable to automatically determine {0} accounts. Set them up in the {1} table if needed." - ).format(frappe.bold("against"), frappe.bold("Accounting Entries")), - alert=True, - ) - break - - def get_against_accounts(self): - self.against_accounts = [] - self.split_account = {} - self.get_debited_credited_accounts() - - if self.separate_against_account_entries: - no_of_credited_acc, no_of_debited_acc = len(self.accounts_credited), len(self.accounts_debited) - if no_of_credited_acc <= 1 and no_of_debited_acc <= 1: - self.set_against_accounts_for_single_dr_cr() - self.separate_against_account_entries = 0 - elif no_of_credited_acc == 1: - self.against_accounts = self.accounts_debited - self.split_account = self.accounts_credited[0] - elif no_of_debited_acc == 1: - self.against_accounts = self.accounts_credited - self.split_account = self.accounts_debited[0] - - def get_debited_credited_accounts(self): - self.accounts_debited, self.accounts_credited = [], [] - self.separate_against_account_entries = 1 - for d in self.get("accounts"): - if flt(d.debit) > 0: - self.accounts_debited.append(d) - elif flt(d.credit) > 0: - self.accounts_credited.append(d) - - if d.against_account_link: - self.separate_against_account_entries = 0 - break - - def set_against_accounts_for_single_dr_cr(self): - against_account = None - for d in self.accounts: - if flt(d.debit) > 0: - against_account = self.accounts_credited[0] - elif flt(d.credit) > 0: - against_account = self.accounts_debited[0] - if against_account: - d.against_type = against_account.party_type or "Account" - d.against_account = against_account.party or against_account.account - d.against_account_link = against_account.party or against_account.account + for d in self.get("accounts"): + if flt(d.debit) > 0: + d.against_account = ", ".join(list(set(accounts_credited))) + if flt(d.credit) > 0: + d.against_account = ", ".join(list(set(accounts_debited))) def validate_debit_credit_amount(self): if not (self.voucher_type == "Exchange Gain Or Loss" and self.multi_currency): From 591de1338b737f5db8319465ed1d12ae468066bc Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:12:36 +0530 Subject: [PATCH 13/39] Revert "fix: combine jv entries for rate revaluation" This reverts commit 3d00d74fed4ce065118bedce886972bb6c43b614. --- .../exchange_rate_revaluation.py | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py index 8be09db2cf..f02b43e799 100644 --- a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py +++ b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py @@ -489,6 +489,16 @@ class ExchangeRateRevaluation(Document): else "credit_in_account_currency" ) + balance_in_account_currency = flt( + abs(d.get("balance_in_account_currency")), d.precision("balance_in_account_currency") + ) + difference_amount = ( + flt(d.get("new_exchange_rate"), d.precision("new_exchange_rate")) * balance_in_account_currency + ) + difference_amount -= ( + flt(d.get("current_exchange_rate"), d.precision("current_exchange_rate")) + * balance_in_account_currency + ) journal_entry_accounts.append( { "account": d.get("account"), @@ -525,28 +535,26 @@ class ExchangeRateRevaluation(Document): "reference_name": self.name, } ) + journal_entry_accounts.append( + { + "party_type": d.get("party_type"), + "party": d.get("party"), + "account": unrealized_exchange_gain_loss_account, + "balance": get_balance_on(unrealized_exchange_gain_loss_account), + "debit_in_account_currency": abs(difference_amount) if difference_amount < 0 else 0, + "credit_in_account_currency": difference_amount if difference_amount > 0 else 0, + "cost_center": erpnext.get_default_cost_center(self.company), + "exchange_rate": 1, + "reference_type": "Exchange Rate Revaluation", + "reference_name": self.name, + } + ) journal_entry.set("accounts", journal_entry_accounts) journal_entry.set_amounts_in_company_currency() journal_entry.set_total_debit_credit() self.gain_loss_unbooked += journal_entry.difference - self.gain_loss_unbooked - journal_entry.append( - "accounts", - { - "account": unrealized_exchange_gain_loss_account, - "balance": get_balance_on(unrealized_exchange_gain_loss_account), - "debit_in_account_currency": abs(self.gain_loss_unbooked) - if self.gain_loss_unbooked < 0 - else 0, - "credit_in_account_currency": self.gain_loss_unbooked if self.gain_loss_unbooked > 0 else 0, - "cost_center": erpnext.get_default_cost_center(self.company), - "exchange_rate": 1, - "reference_type": "Exchange Rate Revaluation", - "reference_name": self.name, - }, - ) - journal_entry.set_amounts_in_company_currency() journal_entry.set_total_debit_credit() journal_entry.save() From 2249b7c793b98bbbe66c8d983009adf6421b1b23 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:13:34 +0530 Subject: [PATCH 14/39] Revert "fix: auto separate against accounts" This reverts commit ff0343d2cc9e1818beaf4047b8232183858d09d6. --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 982a3db5df..9c2868c172 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -968,7 +968,6 @@ class JournalEntry(AccountsController): def build_gl_map(self): gl_map = [] - self.get_against_accounts() for d in self.get("accounts"): if d.debit or d.credit or (self.voucher_type == "Exchange Gain Or Loss"): r = [d.user_remark, self.remark] @@ -1003,7 +1002,6 @@ class JournalEntry(AccountsController): item=d, ) ) - return gl_map def make_gl_entries(self, cancel=0, adv_adj=0): From 8cf6ff69c09287491cb079e31627a3eef8234fa0 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:14:14 +0530 Subject: [PATCH 15/39] Revert "fix: remove join for against in purchase receipt" This reverts commit 758ec720deb78507f4972b8b71cb3731f6ee43c4. --- erpnext/stock/doctype/purchase_receipt/purchase_receipt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index a0cf7e74f0..e941c52039 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -525,7 +525,7 @@ class PurchaseReceipt(BuyingController): account_currency=account_currency, item=item, ) - + self.add_gl_entry( gl_entries=gl_entries, account=self.get_company_default("exchange_gain_loss_account"), @@ -800,7 +800,7 @@ class PurchaseReceipt(BuyingController): # Backward compatibility: # and charges added via Landed Cost Voucher, # post valuation related charges on "Stock Received But Not Billed" - against_accounts = [d.account for d in gl_entries if flt(d.debit) > 0] + against_account = ", ".join([d.account for d in gl_entries if flt(d.debit) > 0]) total_valuation_amount = sum(valuation_tax.values()) amount_including_divisional_loss = negative_expense_to_be_booked stock_rbnb = ( From e6f599b32daaa7e4d79a3247b1e2170a000e88ce Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:16:17 +0530 Subject: [PATCH 16/39] Revert "fix: single dr cr entries" This reverts commit e845b63228baffb3165aee6c24f038477cfb71bf. --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 9c2868c172..619912b46b 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1626,10 +1626,3 @@ def make_reverse_journal_entry(source_name, target_doc=None): ) return doclist - - -@frappe.whitelist() -def get_against_type(doctype, txt, searchfield, start, page_len, filters): - against_types = frappe.db.get_list("Party Type", pluck="name") + ["Account"] - doctype = frappe.qb.DocType("DocType") - return frappe.qb.from_(doctype).select(doctype.name).where(doctype.name.isin(against_types)).run() From a43ee34bd5dbdab6603254588f531fca8fdeb5ab Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:16:29 +0530 Subject: [PATCH 17/39] Revert "fix: purchase receipt test" This reverts commit 5ce395a60a0ebace32382343110e0ceccac4880e. --- erpnext/stock/doctype/purchase_receipt/purchase_receipt.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index e941c52039..d2c1bff08a 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -519,7 +519,6 @@ class PurchaseReceipt(BuyingController): debit=0.0, credit=discrepancy_caused_by_exchange_rate_difference, remarks=remarks, - against_type="Supplier", against_account=self.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, @@ -533,7 +532,6 @@ class PurchaseReceipt(BuyingController): debit=discrepancy_caused_by_exchange_rate_difference, credit=0.0, remarks=remarks, - against_type="Supplier", against_account=self.supplier, debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference, account_currency=account_currency, From 0f9734ae37261dd9cbf86023ff66fd93e2bbed82 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:19:46 +0530 Subject: [PATCH 18/39] Revert "fix: split expected jv entries for scrap asset" This reverts commit 291a4991246b5a53491066eb46efda0de2a8002f. --- erpnext/accounts/general_ledger.py | 4 ++-- erpnext/assets/doctype/asset/test_asset.py | 11 +---------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index b48a8e6115..1dfcac83be 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -357,7 +357,7 @@ def save_entries(gl_map, adv_adj, update_outstanding, from_repost=False): process_debit_credit_difference(gl_map) if gl_map: - check_freezing_date(gl_map[0]["posting_date"], adv_adj) + # check_freezing_date(gl_map[0]["posting_date"], adv_adj) is_opening = any(d.get("is_opening") == "Yes" for d in gl_map) if gl_map[0]["voucher_type"] != "Period Closing Voucher": validate_against_pcv(is_opening, gl_map[0]["posting_date"], gl_map[0]["company"]) @@ -594,7 +594,7 @@ def make_reverse_gl_entries( partial_cancel=partial_cancel, ) validate_accounting_period(gl_entries) - check_freezing_date(gl_entries[0]["posting_date"], adv_adj) + # check_freezing_date(gl_entries[0]["posting_date"], adv_adj) is_opening = any(d.get("is_opening") == "Yes" for d in gl_entries) validate_against_pcv(is_opening, gl_entries[0]["posting_date"], gl_entries[0]["company"]) diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 0773698420..dc80aa5c5c 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -251,16 +251,7 @@ class TestAsset(AssetSetup): flt(18000.0 + pro_rata_amount, asset.precision("gross_purchase_amount")), 0.0, ), - ( - "_Test Fixed Asset - _TC", - 0.0, - flt(18000.0 + pro_rata_amount, asset.precision("gross_purchase_amount")), - ), - ( - "_Test Fixed Asset - _TC", - 0.0, - flt(82000.0 - pro_rata_amount, asset.precision("gross_purchase_amount")), - ), + ("_Test Fixed Asset - _TC", 0.0, 100000.0), ( "_Test Gain/Loss on Asset Disposal - _TC", flt(82000.0 - pro_rata_amount, asset.precision("gross_purchase_amount")), From 4dad4b50fbb8207c422da03be2a923c48911d300 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:21:19 +0530 Subject: [PATCH 19/39] Revert "refactor: keep old against fields intact" This reverts commit f9c88ea7bc96837ece6c477e4dc9a324985d98ac. --- erpnext/accounts/doctype/gl_entry/gl_entry.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.json b/erpnext/accounts/doctype/gl_entry/gl_entry.json index 7f41fb62b0..c071193739 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.json +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.json @@ -18,7 +18,6 @@ "debit_in_account_currency", "credit_in_account_currency", "against", - "against_link", "against_voucher_type", "against_voucher", "voucher_type", @@ -291,7 +290,7 @@ "idx": 1, "in_create": 1, "links": [], - "modified": "2023-08-16 21:38:44.072267", + "modified": "2023-09-26 12:03:23.031733", "modified_by": "Administrator", "module": "Accounts", "name": "GL Entry", From 1a67d7d95feeb630cd2b34aa4b21fc55293d723b Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:22:50 +0530 Subject: [PATCH 20/39] Revert "refactor: use both fields to store against values" This reverts commit 09439334cae6a7306dad8e54a9f81f9ffa483f8b. --- erpnext/accounts/deferred_revenue.py | 2 -- .../invoice_discounting.py | 2 -- .../doctype/payment_entry/payment_entry.py | 6 ------ .../purchase_invoice/purchase_invoice.py | 21 ------------------- .../doctype/sales_invoice/sales_invoice.py | 13 ------------ erpnext/assets/doctype/asset/asset.py | 2 -- .../asset_capitalization.py | 3 --- .../doctype/asset_repair/asset_repair.py | 4 ---- erpnext/controllers/accounts_controller.py | 4 ---- erpnext/controllers/stock_controller.py | 5 ----- .../regional/united_arab_emirates/utils.py | 1 - .../stock/doctype/stock_entry/stock_entry.py | 2 -- 12 files changed, 65 deletions(-) diff --git a/erpnext/accounts/deferred_revenue.py b/erpnext/accounts/deferred_revenue.py index a63032566e..367b017969 100644 --- a/erpnext/accounts/deferred_revenue.py +++ b/erpnext/accounts/deferred_revenue.py @@ -516,7 +516,6 @@ def make_gl_entries( { "account": credit_account, "against": against, - "against_link": against, "credit": base_amount, "credit_in_account_currency": amount, "cost_center": cost_center, @@ -536,7 +535,6 @@ def make_gl_entries( { "account": debit_account, "against": against, - "against_link": against, "debit": base_amount, "debit_in_account_currency": amount, "cost_center": cost_center, diff --git a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py index d677f2247f..76f4dadf87 100644 --- a/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py +++ b/erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py @@ -154,7 +154,6 @@ class InvoiceDiscounting(AccountsController): "party_type": "Customer", "party": d.customer, "against": self.accounts_receivable_credit, - "against_link": self.accounts_receivable_credit, "credit": outstanding_in_company_currency, "credit_in_account_currency": outstanding_in_company_currency if inv.party_account_currency == company_currency @@ -175,7 +174,6 @@ class InvoiceDiscounting(AccountsController): "party_type": "Customer", "party": d.customer, "against": inv.debit_to, - "against_link": inv.debit_to, "debit": outstanding_in_company_currency, "debit_in_account_currency": outstanding_in_company_currency if ar_credit_account_currency == company_currency diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index cc75d8c1f0..dbebbb00fa 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -1145,7 +1145,6 @@ class PaymentEntry(AccountsController): "party_type": self.party_type, "party": self.party, "against": against_account, - "against_link": against_account, "account_currency": self.party_account_currency, "cost_center": self.cost_center, }, @@ -1311,7 +1310,6 @@ class PaymentEntry(AccountsController): "account": self.paid_from, "account_currency": self.paid_from_account_currency, "against": self.party if self.payment_type == "Pay" else self.paid_to, - "against_link": self.party if self.payment_type == "Pay" else self.paid_to, "credit_in_account_currency": self.paid_amount, "credit": self.base_paid_amount, "cost_center": self.cost_center, @@ -1327,7 +1325,6 @@ class PaymentEntry(AccountsController): "account": self.paid_to, "account_currency": self.paid_to_account_currency, "against": self.party if self.payment_type == "Receive" else self.paid_from, - "against_link": self.party if self.payment_type == "Receive" else self.paid_from, "debit_in_account_currency": self.received_amount, "debit": self.base_received_amount, "cost_center": self.cost_center, @@ -1360,7 +1357,6 @@ class PaymentEntry(AccountsController): { "account": d.account_head, "against": against, - "against_link": against, dr_or_cr: tax_amount, dr_or_cr + "_in_account_currency": base_tax_amount if account_currency == self.company_currency @@ -1386,7 +1382,6 @@ class PaymentEntry(AccountsController): { "account": payment_account, "against": against, - "against_link": against, rev_dr_or_cr: tax_amount, rev_dr_or_cr + "_in_account_currency": base_tax_amount if account_currency == self.company_currency @@ -1412,7 +1407,6 @@ class PaymentEntry(AccountsController): "account": d.account, "account_currency": account_currency, "against": self.party or self.paid_from, - "against_link": self.party or self.paid_from, "debit_in_account_currency": d.amount, "debit": d.amount, "cost_center": d.cost_center, diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index fa365fcc7c..c4e09b47f1 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -828,7 +828,6 @@ class PurchaseInvoice(BuyingController): "party": self.supplier, "due_date": self.due_date, "against": self.against_expense_account, - "against_link": self.against_expense_account, "credit": base_grand_total, "credit_in_account_currency": base_grand_total if self.party_account_currency == self.company_currency @@ -902,7 +901,6 @@ class PurchaseInvoice(BuyingController): { "account": warehouse_account[item.warehouse]["account"], "against": warehouse_account[item.from_warehouse]["account"], - "against_link": warehouse_account[item.from_warehouse]["account"], "cost_center": item.cost_center, "project": item.project or self.project, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), @@ -923,7 +921,6 @@ class PurchaseInvoice(BuyingController): { "account": warehouse_account[item.from_warehouse]["account"], "against": warehouse_account[item.warehouse]["account"], - "against_link": warehouse_account[item.warehouse]["account"], "cost_center": item.cost_center, "project": item.project or self.project, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), @@ -941,7 +938,6 @@ class PurchaseInvoice(BuyingController): { "account": item.expense_account, "against": self.supplier, - "against_link": self.supplier, "debit": flt(item.base_net_amount, item.precision("base_net_amount")), "remarks": self.get("remarks") or _("Accounting Entry for Stock"), "cost_center": item.cost_center, @@ -959,7 +955,6 @@ class PurchaseInvoice(BuyingController): { "account": item.expense_account, "against": self.supplier, - "against_link": self.supplier, "debit": warehouse_debit_amount, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), "cost_center": item.cost_center, @@ -979,7 +974,6 @@ class PurchaseInvoice(BuyingController): { "account": account, "against": item.expense_account, - "against_link": item.expense_account, "cost_center": item.cost_center, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), "credit": flt(amount["base_amount"]), @@ -1000,7 +994,6 @@ class PurchaseInvoice(BuyingController): { "account": supplier_warehouse_account, "against": item.expense_account, - "against_link": item.expense_account, "cost_center": item.cost_center, "project": item.project or self.project, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), @@ -1056,7 +1049,6 @@ class PurchaseInvoice(BuyingController): { "account": expense_account, "against": self.supplier, - "against_link": self.supplier, "debit": amount, "cost_center": item.cost_center, "project": item.project or self.project, @@ -1083,7 +1075,6 @@ class PurchaseInvoice(BuyingController): { "account": expense_account, "against": self.supplier, - "against_link": self.supplier, "debit": discrepancy_caused_by_exchange_rate_difference, "cost_center": item.cost_center, "project": item.project or self.project, @@ -1097,7 +1088,6 @@ class PurchaseInvoice(BuyingController): { "account": self.get_company_default("exchange_gain_loss_account"), "against": self.supplier, - "against_link": self.supplier, "credit": discrepancy_caused_by_exchange_rate_difference, "cost_center": item.cost_center, "project": item.project or self.project, @@ -1132,7 +1122,6 @@ class PurchaseInvoice(BuyingController): { "account": self.stock_received_but_not_billed, "against": self.supplier, - "against_link": self.supplier, "debit": flt(item.item_tax_amount, item.precision("item_tax_amount")), "remarks": self.remarks or _("Accounting Entry for Stock"), "cost_center": self.cost_center, @@ -1194,7 +1183,6 @@ class PurchaseInvoice(BuyingController): { "account": cost_of_goods_sold_account, "against": item.expense_account, - "against_link": item.expense_account, "debit": stock_adjustment_amt, "remarks": self.get("remarks") or _("Stock Adjustment"), "cost_center": item.cost_center, @@ -1225,7 +1213,6 @@ class PurchaseInvoice(BuyingController): { "account": tax.account_head, "against": self.supplier, - "against_link": self.supplier, dr_or_cr: base_amount, dr_or_cr + "_in_account_currency": base_amount if account_currency == self.company_currency @@ -1275,7 +1262,6 @@ class PurchaseInvoice(BuyingController): "account": tax.account_head, "cost_center": tax.cost_center, "against": self.supplier, - "against_link": self.supplier, "credit": applicable_amount, "remarks": self.remarks or _("Accounting Entry for Stock"), }, @@ -1294,7 +1280,6 @@ class PurchaseInvoice(BuyingController): "account": tax.account_head, "cost_center": tax.cost_center, "against": self.supplier, - "against_link": self.supplier, "credit": valuation_tax[tax.name], "remarks": self.remarks or _("Accounting Entry for Stock"), }, @@ -1310,7 +1295,6 @@ class PurchaseInvoice(BuyingController): { "account": self.unrealized_profit_loss_account, "against": self.supplier, - "against_link": self.supplier, "credit": flt(self.total_taxes_and_charges), "credit_in_account_currency": flt(self.base_total_taxes_and_charges), "cost_center": self.cost_center, @@ -1332,7 +1316,6 @@ class PurchaseInvoice(BuyingController): "party_type": "Supplier", "party": self.supplier, "against": self.cash_bank_account, - "against_link": self.cash_bank_account, "debit": self.base_paid_amount, "debit_in_account_currency": self.base_paid_amount if self.party_account_currency == self.company_currency @@ -1354,7 +1337,6 @@ class PurchaseInvoice(BuyingController): { "account": self.cash_bank_account, "against": self.supplier, - "against_link": self.supplier, "credit": self.base_paid_amount, "credit_in_account_currency": self.base_paid_amount if bank_account_currency == self.company_currency @@ -1379,7 +1361,6 @@ class PurchaseInvoice(BuyingController): "party_type": "Supplier", "party": self.supplier, "against": self.write_off_account, - "against_link": self.write_off_account, "debit": self.base_write_off_amount, "debit_in_account_currency": self.base_write_off_amount if self.party_account_currency == self.company_currency @@ -1400,7 +1381,6 @@ class PurchaseInvoice(BuyingController): { "account": self.write_off_account, "against": self.supplier, - "against_link": self.supplier, "credit": flt(self.base_write_off_amount), "credit_in_account_currency": self.base_write_off_amount if write_off_account_currency == self.company_currency @@ -1428,7 +1408,6 @@ class PurchaseInvoice(BuyingController): { "account": round_off_account, "against": self.supplier, - "against_link": self.supplier, "debit_in_account_currency": self.rounding_adjustment, "debit": self.base_rounding_adjustment, "cost_center": round_off_cost_center diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 7f00f0fd4f..cc19650c38 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1234,7 +1234,6 @@ class SalesInvoice(SellingController): "party": self.customer, "due_date": self.due_date, "against": self.against_income_account, - "against_link": self.against_income_account, "debit": base_grand_total, "debit_in_account_currency": base_grand_total if self.party_account_currency == self.company_currency @@ -1264,7 +1263,6 @@ class SalesInvoice(SellingController): { "account": tax.account_head, "against": self.customer, - "against_link": self.customer, "credit": flt(base_amount, tax.precision("tax_amount_after_discount_amount")), "credit_in_account_currency": ( flt(base_amount, tax.precision("base_tax_amount_after_discount_amount")) @@ -1286,7 +1284,6 @@ class SalesInvoice(SellingController): { "account": self.unrealized_profit_loss_account, "against": self.customer, - "against_link": self.customer, "debit": flt(self.total_taxes_and_charges), "debit_in_account_currency": flt(self.base_total_taxes_and_charges), "cost_center": self.cost_center, @@ -1355,7 +1352,6 @@ class SalesInvoice(SellingController): for gle in fixed_asset_gl_entries: gle["against"] = self.customer - gle["against_link"] = self.customer gl_entries.append(self.get_gl_dict(gle, item=item)) self.set_asset_status(asset) @@ -1377,7 +1373,6 @@ class SalesInvoice(SellingController): { "account": income_account, "against": self.customer, - "against_link": self.customer, "credit": flt(base_amount, item.precision("base_net_amount")), "credit_in_account_currency": ( flt(base_amount, item.precision("base_net_amount")) @@ -1448,7 +1443,6 @@ class SalesInvoice(SellingController): "account": self.loyalty_redemption_account, "cost_center": self.cost_center or self.loyalty_redemption_cost_center, "against": self.customer, - "against_link": self.customer, "debit": self.loyalty_amount, "remark": "Loyalty Points redeemed by the customer", }, @@ -1476,7 +1470,6 @@ class SalesInvoice(SellingController): "party_type": "Customer", "party": self.customer, "against": payment_mode.account, - "against_link": payment_mode.account, "credit": payment_mode.base_amount, "credit_in_account_currency": payment_mode.base_amount if self.party_account_currency == self.company_currency @@ -1498,7 +1491,6 @@ class SalesInvoice(SellingController): { "account": payment_mode.account, "against": self.customer, - "against_link": self.customer, "debit": payment_mode.base_amount, "debit_in_account_currency": payment_mode.base_amount if payment_mode_account_currency == self.company_currency @@ -1523,7 +1515,6 @@ class SalesInvoice(SellingController): "party_type": "Customer", "party": self.customer, "against": self.account_for_change_amount, - "against_link": self.account_for_change_amount, "debit": flt(self.base_change_amount), "debit_in_account_currency": flt(self.base_change_amount) if self.party_account_currency == self.company_currency @@ -1545,7 +1536,6 @@ class SalesInvoice(SellingController): { "account": self.account_for_change_amount, "against": self.customer, - "against_link": self.customer, "credit": self.base_change_amount, "cost_center": self.cost_center, }, @@ -1572,7 +1562,6 @@ class SalesInvoice(SellingController): "party_type": "Customer", "party": self.customer, "against": self.write_off_account, - "against_link": self.write_off_account, "credit": flt(self.base_write_off_amount, self.precision("base_write_off_amount")), "credit_in_account_currency": ( flt(self.base_write_off_amount, self.precision("base_write_off_amount")) @@ -1593,7 +1582,6 @@ class SalesInvoice(SellingController): { "account": self.write_off_account, "against": self.customer, - "against_link": self.customer, "debit": flt(self.base_write_off_amount, self.precision("base_write_off_amount")), "debit_in_account_currency": ( flt(self.base_write_off_amount, self.precision("base_write_off_amount")) @@ -1622,7 +1610,6 @@ class SalesInvoice(SellingController): { "account": round_off_account, "against": self.customer, - "against_link": self.customer, "credit_in_account_currency": flt( self.rounding_adjustment, self.precision("rounding_adjustment") ), diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 604ff6b961..a7e6ae9afb 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -698,7 +698,6 @@ class Asset(AccountsController): { "account": cwip_account, "against": fixed_asset_account, - "against_link": fixed_asset_account, "remarks": self.get("remarks") or _("Accounting Entry for Asset"), "posting_date": self.available_for_use_date, "credit": self.purchase_receipt_amount, @@ -714,7 +713,6 @@ class Asset(AccountsController): { "account": fixed_asset_account, "against": cwip_account, - "against_link": cwip_account, "remarks": self.get("remarks") or _("Accounting Entry for Asset"), "posting_date": self.available_for_use_date, "debit": self.purchase_receipt_amount, diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index 4a3c04e4ed..66997ca59c 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -486,7 +486,6 @@ class AssetCapitalization(StockController): { "account": account, "against": target_account, - "against_link": target_account, "cost_center": item_row.cost_center, "project": item_row.get("project") or self.get("project"), "remarks": self.get("remarks") or "Accounting Entry for Stock", @@ -528,7 +527,6 @@ class AssetCapitalization(StockController): for gle in fixed_asset_gl_entries: gle["against"] = target_account - gle["against_link"] = target_account gl_entries.append(self.get_gl_dict(gle, item=item)) target_against.add(gle["account"]) @@ -545,7 +543,6 @@ class AssetCapitalization(StockController): { "account": item_row.expense_account, "against": target_account, - "against_link": target_account, "cost_center": item_row.cost_center, "project": item_row.get("project") or self.get("project"), "remarks": self.get("remarks") or "Accounting Entry for Stock", diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.py b/erpnext/assets/doctype/asset_repair/asset_repair.py index fb088ebdf2..10d36e6d48 100644 --- a/erpnext/assets/doctype/asset_repair/asset_repair.py +++ b/erpnext/assets/doctype/asset_repair/asset_repair.py @@ -286,7 +286,6 @@ class AssetRepair(AccountsController): "debit": self.repair_cost, "debit_in_account_currency": self.repair_cost, "against": pi_expense_account, - "against_link": pi_expense_account, "voucher_type": self.doctype, "voucher_no": self.name, "cost_center": self.cost_center, @@ -306,7 +305,6 @@ class AssetRepair(AccountsController): "credit": self.repair_cost, "credit_in_account_currency": self.repair_cost, "against": fixed_asset_account, - "against_link": fixed_asset_account, "voucher_type": self.doctype, "voucher_no": self.name, "cost_center": self.cost_center, @@ -341,7 +339,6 @@ class AssetRepair(AccountsController): "credit": item.amount, "credit_in_account_currency": item.amount, "against": fixed_asset_account, - "against_link": fixed_asset_account, "voucher_type": self.doctype, "voucher_no": self.name, "cost_center": self.cost_center, @@ -359,7 +356,6 @@ class AssetRepair(AccountsController): "debit": item.amount, "debit_in_account_currency": item.amount, "against": item.expense_account or default_expense_account, - "against_link": item.expense_account or default_expense_account, "voucher_type": self.doctype, "voucher_no": self.name, "cost_center": self.cost_center, diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index be92a69a40..0c554f2374 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -1169,7 +1169,6 @@ class AccountsController(TransactionBase): { "account": round_off_account, "against": against, - "against_link": against, credit_or_debit: precision_loss, "cost_center": round_off_cost_center if self.use_company_roundoff_cost_center @@ -1553,7 +1552,6 @@ class AccountsController(TransactionBase): { "account": item.discount_account, "against": supplier_or_customer, - "against_link": supplier_or_customer, dr_or_cr: flt( discount_amount * self.get("conversion_rate"), item.precision("discount_amount") ), @@ -1572,7 +1570,6 @@ class AccountsController(TransactionBase): { "account": income_or_expense_account, "against": supplier_or_customer, - "against_link": supplier_or_customer, rev_dr_cr: flt( discount_amount * self.get("conversion_rate"), item.precision("discount_amount") ), @@ -1596,7 +1593,6 @@ class AccountsController(TransactionBase): { "account": self.additional_discount_account, "against": supplier_or_customer, - "against_link": supplier_or_customer, dr_or_cr: self.base_discount_amount, "cost_center": self.cost_center or erpnext.get_default_cost_center(self.company), }, diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 4eef7cf4f0..7c63518553 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -163,7 +163,6 @@ class StockController(AccountsController): { "account": warehouse_account[sle.warehouse]["account"], "against": expense_account, - "against_link": expense_account, "cost_center": item_row.cost_center, "project": item_row.project or self.get("project"), "remarks": self.get("remarks") or _("Accounting Entry for Stock"), @@ -180,7 +179,6 @@ class StockController(AccountsController): { "account": expense_account, "against": warehouse_account[sle.warehouse]["account"], - "against_link": warehouse_account[sle.warehouse]["account"], "cost_center": item_row.cost_center, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), "debit": -1 * flt(sle.stock_value_difference, precision), @@ -213,7 +211,6 @@ class StockController(AccountsController): { "account": expense_account, "against": warehouse_asset_account, - "against_link": warehouse_asset_account, "cost_center": item_row.cost_center, "project": item_row.project or self.get("project"), "remarks": _("Rounding gain/loss Entry for Stock Transfer"), @@ -230,7 +227,6 @@ class StockController(AccountsController): { "account": warehouse_asset_account, "against": expense_account, - "against_link": expense_account, "cost_center": item_row.cost_center, "remarks": _("Rounding gain/loss Entry for Stock Transfer"), "credit": sle_rounding_diff, @@ -847,7 +843,6 @@ class StockController(AccountsController): "debit": debit, "credit": credit, "against": against_account, - "against_link": against_account, "remarks": remarks, } diff --git a/erpnext/regional/united_arab_emirates/utils.py b/erpnext/regional/united_arab_emirates/utils.py index 6530ab8676..634a152147 100644 --- a/erpnext/regional/united_arab_emirates/utils.py +++ b/erpnext/regional/united_arab_emirates/utils.py @@ -154,7 +154,6 @@ def make_gl_entry(tax, gl_entries, doc, tax_accounts): "cost_center": tax.cost_center, "posting_date": doc.posting_date, "against": doc.supplier, - "against_link": doc.supplier, dr_or_cr: tax.base_tax_amount_after_discount_amount, dr_or_cr + "_in_account_currency": tax.base_tax_amount_after_discount_amount if account_currency == doc.company_currency diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 0f866cbdc5..96c249fee4 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -1460,7 +1460,6 @@ class StockEntry(StockController): { "account": account, "against": d.expense_account, - "against_link": d.expense_account, "cost_center": d.cost_center, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), "credit_in_account_currency": flt(amount["amount"]), @@ -1475,7 +1474,6 @@ class StockEntry(StockController): { "account": d.expense_account, "against": account, - "against_link": account, "cost_center": d.cost_center, "remarks": self.get("remarks") or _("Accounting Entry for Stock"), "credit": -1 From 8bc1efcf8b932f71538aab0cecbf2f90608aaec9 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:23:34 +0530 Subject: [PATCH 21/39] Revert "refactor: set against account link for jv" This reverts commit 450c2470e959f4d705afc3212546249ad406bee3. --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 1 - erpnext/accounts/utils.py | 1 - 2 files changed, 2 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 619912b46b..40d552bc88 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -304,7 +304,6 @@ class JournalEntry(AccountsController): "account": tax_withholding_details.get("account_head"), rev_debit_or_credit: tax_withholding_details.get("tax_amount"), "against_account": parties[0], - "against_account_link": parties[0], }, ) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index f933209364..19095bc46e 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -642,7 +642,6 @@ def update_reference_in_journal_entry(d, journal_entry, do_not_save=False): new_row.set("reference_name", d["against_voucher"]) new_row.against_account = cstr(jv_detail.against_account) - new_row.against_account_link = cstr(jv_detail.against_account) new_row.is_advance = cstr(jv_detail.is_advance) new_row.docstatus = 1 From 0b1cc7fad1b0fefc753e49ee8c0a35acfdb28886 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:24:00 +0530 Subject: [PATCH 22/39] Revert "fix: fetch against link value in gl report" This reverts commit 9aeb3932d0f7dbf3daf5f8ba2e6e9f02082a0f54. --- erpnext/accounts/general_ledger.py | 1 - erpnext/accounts/report/general_ledger/general_ledger.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index 1dfcac83be..3c853e8deb 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -280,7 +280,6 @@ def check_if_in_list(gle, gl_map, dimensions=None): "project", "finance_book", "voucher_no", - "against_link", ] if dimensions: diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 6636b8e042..ff6cd9f4b2 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -203,7 +203,7 @@ def get_gl_entries(filters, accounting_dimensions): voucher_type, voucher_subtype, voucher_no, {dimension_fields} cost_center, project, {transaction_currency_fields} against_voucher_type, against_voucher, account_currency, - against_link, against, is_opening, creation {select_fields} + against, is_opening, creation {select_fields} from `tabGL Entry` where company=%(company)s {conditions} {order_by_statement} @@ -398,7 +398,6 @@ def initialize_gle_map(gl_entries, filters): group_by = group_by_field(filters.get("group_by")) for gle in gl_entries: - gle.against = gle.get("against_link") or gle.get("against") gle_map.setdefault(gle.get(group_by), _dict(totals=get_totals_dict(), entries=[])) return gle_map From 39c8507dc2d28ee5372745bc0f31ac73117e84c8 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Sun, 3 Dec 2023 22:36:54 +0530 Subject: [PATCH 23/39] fix: query for against types --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 40d552bc88..b8c79f9e33 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1625,3 +1625,10 @@ def make_reverse_journal_entry(source_name, target_doc=None): ) return doclist + + +@frappe.whitelist() +def get_against_type(doctype, txt, searchfield, start, page_len, filters): + against_types = frappe.db.get_list("Party Type", pluck="name") + ["Account"] + doctype = frappe.qb.DocType("DocType") + return frappe.qb.from_(doctype).select(doctype.name).where(doctype.name.isin(against_types)).run() From 13b4ddec63a2a38f7184ab32565228039429a540 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:25:09 +0530 Subject: [PATCH 24/39] Revert "fix: query for against types" This reverts commit 262cafc430cc55ac08ac5dc5bd297e94b06ad126. --- .../doctype/journal_entry/journal_entry.js | 25 ------------------- .../doctype/journal_entry/journal_entry.py | 7 ------ 2 files changed, 32 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js index abf8781d8f..07fb5e857c 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.js +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js @@ -220,16 +220,6 @@ erpnext.accounts.JournalEntry = class JournalEntry extends frappe.ui.form.Contro return erpnext.journal_entry.account_query(me.frm); }); - me.frm.set_query("against_account_link", "accounts", function(doc, cdt, cdn) { - return erpnext.journal_entry.against_account_query(me.frm); - }); - - me.frm.set_query("against_type", "accounts", function(){ - return { - query: "erpnext.accounts.doctype.journal_entry.journal_entry.get_against_type", - } - }) - me.frm.set_query("party_type", "accounts", function(doc, cdt, cdn) { const row = locals[cdt][cdn]; @@ -601,21 +591,6 @@ $.extend(erpnext.journal_entry, { return { filters: filters }; }, - against_account_query: function(frm) { - if (frm.doc.against_type != "Account"){ - return { filters: {} }; - } - else { - let filters = { company: frm.doc.company, is_group: 0 }; - if(!frm.doc.multi_currency) { - $.extend(filters, { - account_currency: ['in', [frappe.get_doc(":Company", frm.doc.company).default_currency, null]] - }); - } - return { filters: filters }; - } - }, - reverse_journal_entry: function() { frappe.model.open_mapped_doc({ method: "erpnext.accounts.doctype.journal_entry.journal_entry.make_reverse_journal_entry", diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index b8c79f9e33..40d552bc88 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1625,10 +1625,3 @@ def make_reverse_journal_entry(source_name, target_doc=None): ) return doclist - - -@frappe.whitelist() -def get_against_type(doctype, txt, searchfield, start, page_len, filters): - against_types = frappe.db.get_list("Party Type", pluck="name") + ["Account"] - doctype = frappe.qb.DocType("DocType") - return frappe.qb.from_(doctype).select(doctype.name).where(doctype.name.isin(against_types)).run() From 9a138427513da4c3dfb13fed05c36da1c451a2b1 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:25:30 +0530 Subject: [PATCH 25/39] Revert "fix: check for split entries in stock entry test" This reverts commit a56b79cc72241f6a4540cb93b1b0f39926137cdc. --- erpnext/stock/doctype/stock_entry/test_stock_entry.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index 085d215e75..23dacc8343 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -517,14 +517,7 @@ class TestStockEntry(FrappeTestCase): self.check_gl_entries( "Stock Entry", repack.name, - sorted( - [ - ["Cost of Goods Sold - TCP1", 0.0, 1200.0], - ["Stock Adjustment - TCP1", 0.0, 1200.0], - ["Stock Adjustment - TCP1", 1200.0, 0.0], - [stock_in_hand_account, 1200.0, 0.0], - ] - ), + sorted([[stock_in_hand_account, 1200, 0.0], ["Cost of Goods Sold - TCP1", 0.0, 1200.0]]), ) def check_stock_ledger_entries(self, voucher_type, voucher_no, expected_sle): From 24137ff54f0020f4dee9df4edf3c43aab3737e5a Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:25:39 +0530 Subject: [PATCH 26/39] Revert "fix: subcontracting receipt gle test" This reverts commit 24ccb3eb78f2bf88efed26e268039c38e6baf536. --- .../test_subcontracting_receipt.py | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py index 9d7be36adb..5523c318a5 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py @@ -365,17 +365,24 @@ class TestSubcontractingReceipt(FrappeTestCase): fg_warehouse_ac = get_inventory_account(scr.company, scr.items[0].warehouse) supplier_warehouse_ac = get_inventory_account(scr.company, scr.supplier_warehouse) expense_account = scr.items[0].expense_account - expected_values = [ - [fg_warehouse_ac, 2100.0, 0.0], # FG Amount (D) - [supplier_warehouse_ac, 0.0, 1000.0], # RM Cost (C) - [additional_costs_expense_account, 0.0, 100.0], # Additional Cost (C) - [expense_account, 0.0, 1000.0], # Service Cost (C) - ] - for i in range(len(expected_values)): - self.assertEqual(expected_values[i][0], gl_entries[i]["account"]) - self.assertEqual(expected_values[i][1], gl_entries[i]["debit"]) - self.assertEqual(expected_values[i][2], gl_entries[i]["credit"]) + if fg_warehouse_ac == supplier_warehouse_ac: + expected_values = { + fg_warehouse_ac: [2100.0, 1000.0], # FG Amount (D), RM Cost (C) + expense_account: [0.0, 1000.0], # Service Cost (C) + additional_costs_expense_account: [0.0, 100.0], # Additional Cost (C) + } + else: + expected_values = { + fg_warehouse_ac: [2100.0, 0.0], # FG Amount (D) + supplier_warehouse_ac: [0.0, 1000.0], # RM Cost (C) + expense_account: [0.0, 1000.0], # Service Cost (C) + additional_costs_expense_account: [0.0, 100.0], # Additional Cost (C) + } + + for gle in gl_entries: + self.assertEqual(expected_values[gle.account][0], gle.debit) + self.assertEqual(expected_values[gle.account][1], gle.credit) scr.reload() scr.cancel() From 13e5578bc6321c3b46514883d6cca44181db5961 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:25:50 +0530 Subject: [PATCH 27/39] Revert "fix: check for unmerged gle in purchase receipt test" This reverts commit 47c78a5a7324cdea5fde7f4e269c933572ccaf56. --- erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index 497530f0dc..ce88dd9e44 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -1009,7 +1009,7 @@ class TestPurchaseReceipt(FrappeTestCase): gl_entries = get_gl_entries("Purchase Receipt", pr.name) sl_entries = get_sl_entries("Purchase Receipt", pr.name) - self.assertEqual(len(gl_entries), 2) + self.assertFalse(gl_entries) expected_sle = {"Work In Progress - TCP1": -5, "Stores - TCP1": 5} From 950025486135b0ecb1c95244376bf00a953d735f Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 11:25:58 +0530 Subject: [PATCH 28/39] Revert "chore: orderby in gle" This reverts commit 005c5a587ff7322a6f3fb1099aa0c94e6873c7fe. --- .../purchase_receipt/test_purchase_receipt.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py index ce88dd9e44..57ba5bb0a5 100644 --- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py @@ -4,7 +4,6 @@ import frappe from frappe.tests.utils import FrappeTestCase, change_settings from frappe.utils import add_days, cint, cstr, flt, nowtime, today -from pypika import Order from pypika import functions as fn import erpnext @@ -2254,13 +2253,13 @@ def get_sl_entries(voucher_type, voucher_no): def get_gl_entries(voucher_type, voucher_no): - gle = frappe.qb.DocType("GL Entry") - return ( - frappe.qb.from_(gle) - .select(gle.account, gle.debit, gle.credit, gle.cost_center, gle.is_cancelled) - .where((gle.voucher_type == voucher_type) & (gle.voucher_no == voucher_no)) - .orderby(gle.account, gle.debit, order=Order.desc) - ).run(as_dict=True) + return frappe.db.sql( + """select account, debit, credit, cost_center, is_cancelled + from `tabGL Entry` where voucher_type=%s and voucher_no=%s + order by account desc""", + (voucher_type, voucher_no), + as_dict=1, + ) def get_taxes(**args): From 02fde73545fee7ffd265d6e655c406c71d5d44f3 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Sun, 14 Jan 2024 18:01:44 +0530 Subject: [PATCH 29/39] fix: Against account variable --- erpnext/stock/doctype/purchase_receipt/purchase_receipt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index d2c1bff08a..fcb7a6d510 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -524,7 +524,7 @@ class PurchaseReceipt(BuyingController): account_currency=account_currency, item=item, ) - + self.add_gl_entry( gl_entries=gl_entries, account=self.get_company_default("exchange_gain_loss_account"), @@ -798,7 +798,7 @@ class PurchaseReceipt(BuyingController): # Backward compatibility: # and charges added via Landed Cost Voucher, # post valuation related charges on "Stock Received But Not Billed" - against_account = ", ".join([d.account for d in gl_entries if flt(d.debit) > 0]) + against_accounts = ", ".join([d.account for d in gl_entries if flt(d.debit) > 0]) total_valuation_amount = sum(valuation_tax.values()) amount_including_divisional_loss = negative_expense_to_be_booked stock_rbnb = ( From 4f3aeaefc1b6678fba9c91d50710238523f03805 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Wed, 17 Jan 2024 12:42:22 +0530 Subject: [PATCH 30/39] chore: Remove unwanted changes --- .../exchange_rate_revaluation.py | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py index f02b43e799..8be09db2cf 100644 --- a/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py +++ b/erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py @@ -489,16 +489,6 @@ class ExchangeRateRevaluation(Document): else "credit_in_account_currency" ) - balance_in_account_currency = flt( - abs(d.get("balance_in_account_currency")), d.precision("balance_in_account_currency") - ) - difference_amount = ( - flt(d.get("new_exchange_rate"), d.precision("new_exchange_rate")) * balance_in_account_currency - ) - difference_amount -= ( - flt(d.get("current_exchange_rate"), d.precision("current_exchange_rate")) - * balance_in_account_currency - ) journal_entry_accounts.append( { "account": d.get("account"), @@ -535,26 +525,28 @@ class ExchangeRateRevaluation(Document): "reference_name": self.name, } ) - journal_entry_accounts.append( - { - "party_type": d.get("party_type"), - "party": d.get("party"), - "account": unrealized_exchange_gain_loss_account, - "balance": get_balance_on(unrealized_exchange_gain_loss_account), - "debit_in_account_currency": abs(difference_amount) if difference_amount < 0 else 0, - "credit_in_account_currency": difference_amount if difference_amount > 0 else 0, - "cost_center": erpnext.get_default_cost_center(self.company), - "exchange_rate": 1, - "reference_type": "Exchange Rate Revaluation", - "reference_name": self.name, - } - ) journal_entry.set("accounts", journal_entry_accounts) journal_entry.set_amounts_in_company_currency() journal_entry.set_total_debit_credit() self.gain_loss_unbooked += journal_entry.difference - self.gain_loss_unbooked + journal_entry.append( + "accounts", + { + "account": unrealized_exchange_gain_loss_account, + "balance": get_balance_on(unrealized_exchange_gain_loss_account), + "debit_in_account_currency": abs(self.gain_loss_unbooked) + if self.gain_loss_unbooked < 0 + else 0, + "credit_in_account_currency": self.gain_loss_unbooked if self.gain_loss_unbooked > 0 else 0, + "cost_center": erpnext.get_default_cost_center(self.company), + "exchange_rate": 1, + "reference_type": "Exchange Rate Revaluation", + "reference_name": self.name, + }, + ) + journal_entry.set_amounts_in_company_currency() journal_entry.set_total_debit_credit() journal_entry.save() From 3aa17fa0d6ad07f19eb9836e1f3265dcff5be669 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Wed, 17 Jan 2024 12:47:27 +0530 Subject: [PATCH 31/39] chore: freezing date check --- erpnext/accounts/general_ledger.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index 3c853e8deb..1c8ac2f164 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -356,7 +356,7 @@ def save_entries(gl_map, adv_adj, update_outstanding, from_repost=False): process_debit_credit_difference(gl_map) if gl_map: - # check_freezing_date(gl_map[0]["posting_date"], adv_adj) + check_freezing_date(gl_map[0]["posting_date"], adv_adj) is_opening = any(d.get("is_opening") == "Yes" for d in gl_map) if gl_map[0]["voucher_type"] != "Period Closing Voucher": validate_against_pcv(is_opening, gl_map[0]["posting_date"], gl_map[0]["company"]) @@ -593,7 +593,7 @@ def make_reverse_gl_entries( partial_cancel=partial_cancel, ) validate_accounting_period(gl_entries) - # check_freezing_date(gl_entries[0]["posting_date"], adv_adj) + check_freezing_date(gl_entries[0]["posting_date"], adv_adj) is_opening = any(d.get("is_opening") == "Yes" for d in gl_entries) validate_against_pcv(is_opening, gl_entries[0]["posting_date"], gl_entries[0]["company"]) From 5df40661d2d857eeb987e51ea6f4b465aa3d502e Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 17 Jan 2024 16:17:53 +0530 Subject: [PATCH 32/39] fix: composite asset capitalization using asset components --- erpnext/assets/doctype/asset/asset.py | 2 ++ .../asset_capitalization.js | 27 ++++++++++++------- .../asset_capitalization.py | 22 ++++++++++++--- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py index 652c75fba7..9bd6e3cd6c 100644 --- a/erpnext/assets/doctype/asset/asset.py +++ b/erpnext/assets/doctype/asset/asset.py @@ -1042,6 +1042,8 @@ def is_cwip_accounting_enabled(asset_category): @frappe.whitelist() def get_asset_value_after_depreciation(asset_name, finance_book=None): asset = frappe.get_doc("Asset", asset_name) + if not asset.calculate_depreciation: + return flt(asset.value_after_depreciation) return asset.get_value_after_depreciation(finance_book) diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js index be78d9ebdc..2f0de97939 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.js @@ -21,10 +21,10 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s this.show_stock_ledger(); } - if (this.frm.doc.stock_items && !this.frm.doc.stock_items.length && this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") { - this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset); - this.get_target_asset_details(); - } + // if (this.frm.doc.stock_items && !this.frm.doc.stock_items.length && this.frm.doc.target_asset && this.frm.doc.capitalization_method === "Choose a WIP composite asset") { + // this.set_consumed_stock_items_tagged_to_wip_composite_asset(this.frm.doc.target_asset); + // this.get_target_asset_details(); + // } } setup_queries() { @@ -143,13 +143,20 @@ erpnext.assets.AssetCapitalization = class AssetCapitalization extends erpnext.s }, callback: function (r) { if (!r.exc && r.message) { - me.frm.clear_table("stock_items"); - - for (let item of r.message) { - me.frm.add_child("stock_items", item); + if(r.message[0] && r.message[0].length) { + me.frm.clear_table("stock_items"); + for (let item of r.message[0]) { + me.frm.add_child("stock_items", item); + } + refresh_field("stock_items"); + } + if (r.message[1] && r.message[1].length) { + me.frm.clear_table("asset_items"); + for (let item of r.message[1]) { + me.frm.add_child("asset_items", item); + } + me.frm.refresh_field("asset_items"); } - - refresh_field("stock_items"); me.calculate_totals(); } diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index 5e5b62870b..63afda70a0 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -900,7 +900,6 @@ def get_consumed_asset_details(args): out.cost_center = get_default_cost_center( args, item_defaults, item_group_defaults, brand_defaults ) - return out @@ -948,10 +947,27 @@ def get_items_tagged_to_wip_composite_asset(asset): "qty", "valuation_rate", "amount", + "is_fixed_asset", + "parent", ] pr_items = frappe.get_all( - "Purchase Receipt Item", filters={"wip_composite_asset": asset}, fields=fields + "Purchase Receipt Item", filters={"wip_composite_asset": asset, "docstatus": 1}, fields=fields ) - return pr_items + stock_items = [] + asset_items = [] + for d in pr_items: + if not d.is_fixed_asset: + stock_items.append(frappe._dict(d)) + else: + asset_details = frappe.db.get_value( + "Asset", + {"item_code": d.item_code, "purchase_receipt": d.parent}, + ["name as asset", "asset_name"], + as_dict=1, + ) + d.update(asset_details) + asset_items.append(frappe._dict(d)) + + return stock_items, asset_items From 97f69986ff3c56c032fe32d554b9f162df3f8b33 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 17 Jan 2024 14:20:43 +0530 Subject: [PATCH 33/39] fix: Asset module tests --- .../doctype/fiscal_year/test_fiscal_year.py | 2 +- erpnext/assets/doctype/asset/test_asset.py | 4 ++-- .../asset_depreciation_schedule.py | 19 ++++++++----------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py b/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py index 181406bad7..8d43716401 100644 --- a/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py +++ b/erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py @@ -39,7 +39,7 @@ def test_record_generator(): ] start = 2012 - end = now_datetime().year + 5 + end = now_datetime().year + 25 for year in range(start, end): test_records.append( { diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 0773698420..1ca69a5d4d 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -900,7 +900,7 @@ class TestDepreciationMethods(AssetSetup): ["2030-12-31", 28630.14, 28630.14], ["2031-12-31", 35684.93, 64315.07], ["2032-12-31", 17842.46, 82157.53], - ["2033-06-06", 5342.47, 87500.0], + ["2033-06-06", 5342.46, 87499.99], ] schedules = [ @@ -1012,7 +1012,7 @@ class TestDepreciationBasics(AssetSetup): asset_depr_schedule_doc = get_asset_depr_schedule_doc(asset.name, "Active") depreciation_amount = get_depreciation_amount( - asset_depr_schedule_doc, asset, 100000, asset.finance_books[0] + asset_depr_schedule_doc, asset, 100000, 100000, asset.finance_books[0] ) self.assertEqual(depreciation_amount, 30000) diff --git a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py index ffb50ebe45..146c03e8c3 100644 --- a/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py +++ b/erpnext/assets/doctype/asset_depreciation_schedule/asset_depreciation_schedule.py @@ -764,17 +764,14 @@ def get_wdv_or_dd_depr_amount( has_wdv_or_dd_non_yearly_pro_rata, asset_depr_schedule, ): - return ( - get_default_wdv_or_dd_depr_amount( - asset, - fb_row, - depreciable_value, - schedule_idx, - prev_depreciation_amount, - has_wdv_or_dd_non_yearly_pro_rata, - asset_depr_schedule, - ), - None, + return get_default_wdv_or_dd_depr_amount( + asset, + fb_row, + depreciable_value, + schedule_idx, + prev_depreciation_amount, + has_wdv_or_dd_non_yearly_pro_rata, + asset_depr_schedule, ) From 0f881bc90a7a02dd66e167159266aa4386b8dcec Mon Sep 17 00:00:00 2001 From: Florian HENRY Date: Wed, 17 Jan 2024 13:37:22 +0100 Subject: [PATCH 34/39] refactor: BOM creator item selector with short description --- .../doctype/bom_creator/bom_creator.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/bom_creator/bom_creator.js b/erpnext/manufacturing/doctype/bom_creator/bom_creator.js index 243e52df5b..3bd2021e0c 100644 --- a/erpnext/manufacturing/doctype/bom_creator/bom_creator.js +++ b/erpnext/manufacturing/doctype/bom_creator/bom_creator.js @@ -101,6 +101,7 @@ frappe.ui.form.on("BOM Creator", { } }) + dialog.fields_dict.item_code.get_query = "erpnext.controllers.queries.item_query"; dialog.show(); }, @@ -113,6 +114,16 @@ frappe.ui.form.on("BOM Creator", { } } }); + frm.set_query("item_code", "items", function() { + return { + query: "erpnext.controllers.queries.item_query", + } + }); + frm.set_query("fg_item", "items", function() { + return { + query: "erpnext.controllers.queries.item_query", + } + }); }, refresh(frm) { @@ -211,4 +222,4 @@ erpnext.bom.BomConfigurator = class BomConfigurator extends erpnext.TransactionC } }; -extend_cscript(cur_frm.cscript, new erpnext.bom.BomConfigurator({frm: cur_frm})); \ No newline at end of file +extend_cscript(cur_frm.cscript, new erpnext.bom.BomConfigurator({frm: cur_frm})); From d7e6b83e6432a6c46ce6e374252d25c0438c2205 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 17 Jan 2024 20:52:16 +0530 Subject: [PATCH 35/39] fix: duplicate name error while making variant --- erpnext/controllers/item_variant.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/erpnext/controllers/item_variant.py b/erpnext/controllers/item_variant.py index ea7fb23cb6..1eee9eaa9d 100644 --- a/erpnext/controllers/item_variant.py +++ b/erpnext/controllers/item_variant.py @@ -56,7 +56,11 @@ def make_variant_based_on_manufacturer(template, manufacturer, manufacturer_part copy_attributes_to_variant(template, variant) - variant.item_code = append_number_if_name_exists("Item", template.name) + variant_name = f"{template.name} - {manufacturer}" + if manufacturer_part_no: + variant_name += f" - {manufacturer_part_no}" + + variant.item_code = append_number_if_name_exists("Item", variant_name) variant.flags.ignore_mandatory = True variant.save() From ef7aefeb456156f1f9dc362f26ba33ab226e56b4 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Thu, 18 Jan 2024 11:29:53 +0530 Subject: [PATCH 36/39] ci: split pre-commit and semgrep jobs (#39445) --- .github/workflows/linters.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 94b76b12ce..c7caa4cbab 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -20,6 +20,18 @@ jobs: - name: Install and Run Pre-commit uses: pre-commit/action@v3.0.0 + semgrep: + name: semgrep + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: '3.10' + cache: pip + - name: Download Semgrep rules run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules From e9bc63aacf20dd83cb7e15494bb8f2f025491991 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Thu, 18 Jan 2024 14:33:10 +0530 Subject: [PATCH 37/39] fix: set unallocated amount after base tax --- erpnext/accounts/doctype/payment_entry/payment_entry.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index 9402e3da09..2954d2fc3f 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -933,7 +933,7 @@ frappe.ui.form.on('Payment Entry', { if(frm.doc.payment_type == "Receive" && frm.doc.base_total_allocated_amount < frm.doc.base_received_amount + total_deductions && frm.doc.total_allocated_amount < frm.doc.paid_amount + (total_deductions / frm.doc.source_exchange_rate)) { - unallocated_amount = (frm.doc.base_received_amount + total_deductions + flt(frm.doc.base_total_taxes_and_charges) + unallocated_amount = (frm.doc.base_received_amount + total_deductions - flt(frm.doc.base_total_taxes_and_charges) - frm.doc.base_total_allocated_amount) / frm.doc.source_exchange_rate; } else if (frm.doc.payment_type == "Pay" && frm.doc.base_total_allocated_amount < frm.doc.base_paid_amount - total_deductions From 99b94af49ffd34bccb76b73c2f06187540444a44 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Thu, 18 Jan 2024 15:05:19 +0530 Subject: [PATCH 38/39] fix: linting issue --- .../gross_and_net_profit_report/gross_and_net_profit_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py index 604bc01fd6..a52aaff6fa 100644 --- a/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py +++ b/erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py @@ -134,7 +134,7 @@ def get_revenue(data, period_list, include_in_gross=1): def remove_parent_with_no_child(data): data_to_be_removed = False - for parent in data: + for parent in list(data): if "is_group" in parent and parent.get("is_group") == 1: have_child = False for child in data: From 35067282cfeaf88a1e4251e3725f7557d3b2d356 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Fri, 19 Jan 2024 11:13:09 +0530 Subject: [PATCH 39/39] refactor(UX): Accounts workspace cleanup (#39232) * refactor(UX): Accounts workspace cleanup * chore: move asset workspace outside accounting * fix: remove redundant links from parent workspace * chore: change icons for payable & receivable workspaces * chore: remove redundant links from subworkspaces --- .../workspace/accounting/accounting.json | 901 ++++-------------- .../financial_reports/financial_reports.json | 277 ++++++ .../accounts/workspace/payables/payables.json | 204 ++++ .../workspace/receivables/receivables.json | 254 +++++ erpnext/assets/workspace/assets/assets.json | 6 +- 5 files changed, 918 insertions(+), 724 deletions(-) create mode 100644 erpnext/accounts/workspace/financial_reports/financial_reports.json create mode 100644 erpnext/accounts/workspace/payables/payables.json create mode 100644 erpnext/accounts/workspace/receivables/receivables.json diff --git a/erpnext/accounts/workspace/accounting/accounting.json b/erpnext/accounts/workspace/accounting/accounting.json index f4aced2f9d..45ab92e2c5 100644 --- a/erpnext/accounts/workspace/accounting/accounting.json +++ b/erpnext/accounts/workspace/accounting/accounting.json @@ -5,7 +5,7 @@ "label": "Profit and Loss" } ], - "content": "[{\"id\":\"MmUf9abwxg\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Accounts\",\"col\":12}},{\"id\":\"VVvJ1lUcfc\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Outgoing Bills\",\"col\":3}},{\"id\":\"Vlj2FZtlHV\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Incoming Bills\",\"col\":3}},{\"id\":\"VVVjQVAhPf\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Incoming Payment\",\"col\":3}},{\"id\":\"DySNdlysIW\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Outgoing Payment\",\"col\":3}},{\"id\":\"i0EtSjDAXq\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Profit and Loss\",\"col\":12}},{\"id\":\"X78jcbq1u3\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"vikWSkNm6_\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"pMywM0nhlj\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Chart of Accounts\",\"col\":3}},{\"id\":\"_pRdD6kqUG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"id\":\"G984SgVRJN\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Invoice\",\"col\":3}},{\"id\":\"1ArNvt9qhz\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Journal Entry\",\"col\":3}},{\"id\":\"F9f4I1viNr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Payment Entry\",\"col\":3}},{\"id\":\"4IBBOIxfqW\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Receivable\",\"col\":3}},{\"id\":\"El2anpPaFY\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"General Ledger\",\"col\":3}},{\"id\":\"1nwcM9upJo\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Trial Balance\",\"col\":3}},{\"id\":\"OF9WOi1Ppc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"iAwpe-Chra\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Learn Accounting\",\"col\":3}},{\"id\":\"B7-uxs8tkU\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"tHb3yxthkR\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"DnNtsmxpty\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting Masters\",\"col\":4}},{\"id\":\"nKKr6fjgjb\",\"type\":\"card\",\"data\":{\"card_name\":\"General Ledger\",\"col\":4}},{\"id\":\"xOHTyD8b5l\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounts Receivable\",\"col\":4}},{\"id\":\"_Cb7C8XdJJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounts Payable\",\"col\":4}},{\"id\":\"p7NY6MHe2Y\",\"type\":\"card\",\"data\":{\"card_name\":\"Financial Statements\",\"col\":4}},{\"id\":\"KlqilF5R_V\",\"type\":\"card\",\"data\":{\"card_name\":\"Taxes\",\"col\":4}},{\"id\":\"jTUy8LB0uw\",\"type\":\"card\",\"data\":{\"card_name\":\"Cost Center and Budgeting\",\"col\":4}},{\"id\":\"Wn2lhs7WLn\",\"type\":\"card\",\"data\":{\"card_name\":\"Multi Currency\",\"col\":4}},{\"id\":\"PAQMqqNkBM\",\"type\":\"card\",\"data\":{\"card_name\":\"Banking\",\"col\":4}},{\"id\":\"Q_hBCnSeJY\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"id\":\"3AK1Zf0oew\",\"type\":\"card\",\"data\":{\"card_name\":\"Profitability\",\"col\":4}},{\"id\":\"kxhoaiqdLq\",\"type\":\"card\",\"data\":{\"card_name\":\"Opening and Closing\",\"col\":4}},{\"id\":\"q0MAlU2j_Z\",\"type\":\"card\",\"data\":{\"card_name\":\"Subscription Management\",\"col\":4}},{\"id\":\"ptm7T6Hwu-\",\"type\":\"card\",\"data\":{\"card_name\":\"Share Management\",\"col\":4}},{\"id\":\"OX7lZHbiTr\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", + "content": "[{\"id\":\"MmUf9abwxg\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Accounts\",\"col\":12}},{\"id\":\"nDhfcJYbKH\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Profit and Loss\",\"col\":12}},{\"id\":\"VVvJ1lUcfc\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Outgoing Bills\",\"col\":3}},{\"id\":\"Vlj2FZtlHV\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Incoming Bills\",\"col\":3}},{\"id\":\"VVVjQVAhPf\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Incoming Payment\",\"col\":3}},{\"id\":\"DySNdlysIW\",\"type\":\"number_card\",\"data\":{\"number_card_name\":\"Total Outgoing Payment\",\"col\":3}},{\"id\":\"9k1rDm2C0l\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"vikWSkNm6_\",\"type\":\"header\",\"data\":{\"text\":\"Shortcuts\",\"col\":12}},{\"id\":\"pMywM0nhlj\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Chart of Accounts\",\"col\":3}},{\"id\":\"_pRdD6kqUG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"id\":\"G984SgVRJN\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Invoice\",\"col\":3}},{\"id\":\"1ArNvt9qhz\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Journal Entry\",\"col\":3}},{\"id\":\"F9f4I1viNr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Payment Entry\",\"col\":3}},{\"id\":\"4IBBOIxfqW\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Receivable\",\"col\":3}},{\"id\":\"El2anpPaFY\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"General Ledger\",\"col\":3}},{\"id\":\"1nwcM9upJo\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Trial Balance\",\"col\":3}},{\"id\":\"OF9WOi1Ppc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"iAwpe-Chra\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Learn Accounting\",\"col\":3}},{\"id\":\"B7-uxs8tkU\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"tHb3yxthkR\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"DnNtsmxpty\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting Masters\",\"col\":4}},{\"id\":\"nKKr6fjgjb\",\"type\":\"card\",\"data\":{\"card_name\":\"Payments\",\"col\":4}},{\"id\":\"KlqilF5R_V\",\"type\":\"card\",\"data\":{\"card_name\":\"Tax Masters\",\"col\":4}},{\"id\":\"jTUy8LB0uw\",\"type\":\"card\",\"data\":{\"card_name\":\"Cost Center and Budgeting\",\"col\":4}},{\"id\":\"Wn2lhs7WLn\",\"type\":\"card\",\"data\":{\"card_name\":\"Multi Currency\",\"col\":4}},{\"id\":\"PAQMqqNkBM\",\"type\":\"card\",\"data\":{\"card_name\":\"Banking\",\"col\":4}},{\"id\":\"kxhoaiqdLq\",\"type\":\"card\",\"data\":{\"card_name\":\"Opening and Closing\",\"col\":4}},{\"id\":\"q0MAlU2j_Z\",\"type\":\"card\",\"data\":{\"card_name\":\"Subscription Management\",\"col\":4}},{\"id\":\"ptm7T6Hwu-\",\"type\":\"card\",\"data\":{\"card_name\":\"Share Management\",\"col\":4}}]", "creation": "2020-03-02 15:41:59.515192", "custom_blocks": [], "docstatus": 0, @@ -14,562 +14,10 @@ "hide_custom": 0, "icon": "accounting", "idx": 0, + "indicator_color": "", "is_hidden": 0, "label": "Accounting", "links": [ - { - "hidden": 0, - "is_query_report": 0, - "label": "Accounting Masters", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Company", - "link_count": 0, - "link_to": "Company", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Chart of Accounts", - "link_count": 0, - "link_to": "Account", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Accounts Settings", - "link_count": 0, - "link_to": "Accounts Settings", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Fiscal Year", - "link_count": 0, - "link_to": "Fiscal Year", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Accounting Dimension", - "link_count": 0, - "link_to": "Accounting Dimension", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Finance Book", - "link_count": 0, - "link_to": "Finance Book", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Accounting Period", - "link_count": 0, - "link_to": "Accounting Period", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Payment Term", - "link_count": 0, - "link_to": "Payment Term", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "General Ledger", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Journal Entry", - "link_count": 0, - "link_to": "Journal Entry", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Journal Entry Template", - "link_count": 0, - "link_to": "Journal Entry Template", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "General Ledger", - "link_count": 0, - "link_to": "General Ledger", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Customer Ledger Summary", - "link_count": 0, - "link_to": "Customer Ledger Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Supplier Ledger Summary", - "link_count": 0, - "link_to": "Supplier Ledger Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Accounts Receivable", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Sales Invoice", - "link_count": 0, - "link_to": "Sales Invoice", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Customer", - "link_count": 0, - "link_to": "Customer", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Payment Entry", - "link_count": 0, - "link_to": "Payment Entry", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Payment Request", - "link_count": 0, - "link_to": "Payment Request", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Payment Reconciliation", - "link_count": 0, - "link_to": "Payment Reconciliation", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Accounts Receivable", - "link_count": 0, - "link_to": "Accounts Receivable", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Accounts Receivable Summary", - "link_count": 0, - "link_to": "Accounts Receivable Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Register", - "link_count": 0, - "link_to": "Sales Register", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Item-wise Sales Register", - "link_count": 0, - "link_to": "Item-wise Sales Register", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Order Analysis", - "link_count": 0, - "link_to": "Sales Order Analysis", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Delivered Items To Be Billed", - "link_count": 0, - "link_to": "Delivered Items To Be Billed", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Accounts Payable", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Purchase Invoice", - "link_count": 0, - "link_to": "Purchase Invoice", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Supplier", - "link_count": 0, - "link_to": "Supplier", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Payment Entry", - "link_count": 0, - "link_to": "Payment Entry", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Payment Reconciliation", - "link_count": 0, - "link_to": "Payment Reconciliation", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Accounts Payable", - "link_count": 0, - "link_to": "Accounts Payable", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Accounts Payable Summary", - "link_count": 0, - "link_to": "Accounts Payable Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Purchase Register", - "link_count": 0, - "link_to": "Purchase Register", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Item-wise Purchase Register", - "link_count": 0, - "link_to": "Item-wise Purchase Register", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Order", - "hidden": 0, - "is_query_report": 1, - "label": "Purchase Order Analysis", - "link_count": 0, - "link_to": "Purchase Order Analysis", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Received Items To Be Billed", - "link_count": 0, - "link_to": "Received Items To Be Billed", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Reports", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Trial Balance for Party", - "link_count": 0, - "link_to": "Trial Balance for Party", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Journal Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Payment Period Based On Invoice Date", - "link_count": 0, - "link_to": "Payment Period Based On Invoice Date", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Partners Commission", - "link_count": 0, - "link_to": "Sales Partners Commission", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Customer", - "hidden": 0, - "is_query_report": 1, - "label": "Customer Credit Balance", - "link_count": 0, - "link_to": "Customer Credit Balance", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Payment Summary", - "link_count": 0, - "link_to": "Sales Payment Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Address", - "hidden": 0, - "is_query_report": 1, - "label": "Address And Contacts", - "link_count": 0, - "link_to": "Address And Contacts", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "UAE VAT 201", - "link_count": 0, - "link_to": "UAE VAT 201", - "link_type": "Report", - "onboard": 0, - "only_for": "United Arab Emirates", - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Financial Statements", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Trial Balance", - "link_count": 0, - "link_to": "Trial Balance", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Profit and Loss Statement", - "link_count": 0, - "link_to": "Profit and Loss Statement", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Balance Sheet", - "link_count": 0, - "link_to": "Balance Sheet", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Cash Flow", - "link_count": 0, - "link_to": "Cash Flow", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Consolidated Financial Statement", - "link_count": 0, - "link_to": "Consolidated Financial Statement", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, { "hidden": 0, "is_query_report": 0, @@ -611,102 +59,6 @@ "onboard": 0, "type": "Link" }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Settings", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Payment Gateway Account", - "link_count": 0, - "link_to": "Payment Gateway Account", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Terms and Conditions Template", - "link_count": 0, - "link_to": "Terms and Conditions", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Mode of Payment", - "link_count": 0, - "link_to": "Mode of Payment", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Bank", - "link_count": 0, - "link_to": "Bank", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Bank Account", - "link_count": 0, - "link_to": "Bank Account", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Bank Clearance", - "link_count": 0, - "link_to": "Bank Clearance", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Bank Reconciliation Tool", - "link_count": 0, - "link_to": "Bank Reconciliation Tool", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Bank Reconciliation Statement", - "link_count": 0, - "link_to": "Bank Reconciliation Statement", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, { "hidden": 0, "is_query_report": 0, @@ -918,8 +270,83 @@ { "hidden": 0, "is_query_report": 0, - "label": "Taxes", + "label": "Banking", + "link_count": 6, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Bank", "link_count": 0, + "link_to": "Bank", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Bank Account", + "link_count": 0, + "link_to": "Bank Account", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Bank Clearance", + "link_count": 0, + "link_to": "Bank Clearance", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Bank Reconciliation Tool", + "link_count": 0, + "link_to": "Bank Reconciliation Tool", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Bank Reconciliation Statement", + "link_count": 0, + "link_to": "Bank Reconciliation Statement", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Plaid Settings", + "link_count": 0, + "link_to": "Plaid Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Tax Masters", + "link_count": 7, + "link_type": "DocType", "onboard": 0, "type": "Card Break" }, @@ -1003,60 +430,8 @@ { "hidden": 0, "is_query_report": 0, - "label": "Profitability", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Gross Profit", - "link_count": 0, - "link_to": "Gross Profit", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "GL Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Profitability Analysis", - "link_count": 0, - "link_to": "Profitability Analysis", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Invoice Trends", - "link_count": 0, - "link_to": "Sales Invoice Trends", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Purchase Invoice", - "hidden": 0, - "is_query_report": 1, - "label": "Purchase Invoice Trends", - "link_count": 0, - "link_to": "Purchase Invoice Trends", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Banking", - "link_count": 6, + "label": "Accounting Masters", + "link_count": 8, "link_type": "DocType", "onboard": 0, "type": "Card Break" @@ -1065,9 +440,31 @@ "dependencies": "", "hidden": 0, "is_query_report": 0, - "label": "Bank", + "label": "Company", "link_count": 0, - "link_to": "Bank", + "link_to": "Company", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Chart of Accounts", + "link_count": 0, + "link_to": "Account", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Accounts Settings", + "link_count": 0, + "link_to": "Accounts Settings", "link_type": "DocType", "onboard": 0, "type": "Link" @@ -1076,9 +473,9 @@ "dependencies": "", "hidden": 0, "is_query_report": 0, - "label": "Bank Account", + "label": "Fiscal Year", "link_count": 0, - "link_to": "Bank Account", + "link_to": "Fiscal Year", "link_type": "DocType", "onboard": 0, "type": "Link" @@ -1087,9 +484,9 @@ "dependencies": "", "hidden": 0, "is_query_report": 0, - "label": "Bank Clearance", + "label": "Accounting Dimension", "link_count": 0, - "link_to": "Bank Clearance", + "link_to": "Accounting Dimension", "link_type": "DocType", "onboard": 0, "type": "Link" @@ -1098,36 +495,98 @@ "dependencies": "", "hidden": 0, "is_query_report": 0, - "label": "Bank Reconciliation Tool", + "label": "Finance Book", "link_count": 0, - "link_to": "Bank Reconciliation Tool", + "link_to": "Finance Book", "link_type": "DocType", "onboard": 0, "type": "Link" }, { - "dependencies": "GL Entry", + "dependencies": "", "hidden": 0, - "is_query_report": 1, - "label": "Bank Reconciliation Statement", + "is_query_report": 0, + "label": "Accounting Period", "link_count": 0, - "link_to": "Bank Reconciliation Statement", - "link_type": "Report", + "link_to": "Accounting Period", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Payment Term", + "link_count": 0, + "link_to": "Payment Term", + "link_type": "DocType", "onboard": 0, "type": "Link" }, { "hidden": 0, "is_query_report": 0, - "label": "Plaid Settings", + "label": "Payments", + "link_count": 5, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Entry", "link_count": 0, - "link_to": "Plaid Settings", + "link_to": "Payment Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Journal Entry", + "link_count": 0, + "link_to": "Journal Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Journal Entry Template", + "link_count": 0, + "link_to": "Journal Entry Template", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Terms and Conditions", + "link_count": 0, + "link_to": "Terms and Conditions", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Mode of Payment", + "link_count": 0, + "link_to": "Mode of Payment", "link_type": "DocType", "onboard": 0, "type": "Link" } ], - "modified": "2024-01-02 15:21:09.895531", + "modified": "2024-01-18 22:15:40.941711", "modified_by": "Administrator", "module": "Accounts", "name": "Accounting", diff --git a/erpnext/accounts/workspace/financial_reports/financial_reports.json b/erpnext/accounts/workspace/financial_reports/financial_reports.json new file mode 100644 index 0000000000..3ab4a3e22d --- /dev/null +++ b/erpnext/accounts/workspace/financial_reports/financial_reports.json @@ -0,0 +1,277 @@ +{ + "charts": [], + "content": "[{\"id\":\"nKKr6fjgjb\",\"type\":\"card\",\"data\":{\"card_name\":\"Ledgers\",\"col\":4}},{\"id\":\"p7NY6MHe2Y\",\"type\":\"card\",\"data\":{\"card_name\":\"Financial Statements\",\"col\":4}},{\"id\":\"3AK1Zf0oew\",\"type\":\"card\",\"data\":{\"card_name\":\"Profitability\",\"col\":4}},{\"id\":\"Q_hBCnSeJY\",\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}}]", + "creation": "2024-01-05 16:09:16.766939", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "file", + "idx": 0, + "indicator_color": "", + "is_hidden": 0, + "label": "Financial Reports", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Profitability", + "link_count": 0, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Gross Profit", + "link_count": 0, + "link_to": "Gross Profit", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Profitability Analysis", + "link_count": 0, + "link_to": "Profitability Analysis", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Sales Invoice Trends", + "link_count": 0, + "link_to": "Sales Invoice Trends", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Purchase Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Purchase Invoice Trends", + "link_count": 0, + "link_to": "Purchase Invoice Trends", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Financial Statements", + "link_count": 5, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Trial Balance", + "link_count": 0, + "link_to": "Trial Balance", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Profit and Loss Statement", + "link_count": 0, + "link_to": "Profit and Loss Statement", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Balance Sheet", + "link_count": 0, + "link_to": "Balance Sheet", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Cash Flow", + "link_count": 0, + "link_to": "Cash Flow", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Consolidated Financial Statement", + "link_count": 0, + "link_to": "Consolidated Financial Statement", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Ledgers", + "link_count": 3, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "General Ledger", + "link_count": 0, + "link_to": "General Ledger", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Customer Ledger Summary", + "link_count": 0, + "link_to": "Customer Ledger Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Supplier Ledger Summary", + "link_count": 0, + "link_to": "Supplier Ledger Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Other Reports", + "link_count": 7, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Trial Balance for Party", + "link_count": 0, + "link_to": "Trial Balance for Party", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Journal Entry", + "hidden": 0, + "is_query_report": 1, + "label": "Payment Period Based On Invoice Date", + "link_count": 0, + "link_to": "Payment Period Based On Invoice Date", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Sales Partners Commission", + "link_count": 0, + "link_to": "Sales Partners Commission", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Customer", + "hidden": 0, + "is_query_report": 1, + "label": "Customer Credit Balance", + "link_count": 0, + "link_to": "Customer Credit Balance", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Sales Payment Summary", + "link_count": 0, + "link_to": "Sales Payment Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Address", + "hidden": 0, + "is_query_report": 1, + "label": "Address And Contacts", + "link_count": 0, + "link_to": "Address And Contacts", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "GL Entry", + "hidden": 0, + "is_query_report": 1, + "label": "UAE VAT 201", + "link_count": 0, + "link_to": "UAE VAT 201", + "link_type": "Report", + "onboard": 0, + "only_for": "United Arab Emirates", + "type": "Link" + } + ], + "modified": "2024-01-18 22:13:07.596844", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Financial Reports", + "number_cards": [], + "owner": "Administrator", + "parent_page": "Accounting", + "public": 1, + "quick_lists": [], + "restrict_to_domain": "", + "roles": [], + "sequence_id": 5.0, + "shortcuts": [], + "title": "Financial Reports" +} \ No newline at end of file diff --git a/erpnext/accounts/workspace/payables/payables.json b/erpnext/accounts/workspace/payables/payables.json new file mode 100644 index 0000000000..f8c8564875 --- /dev/null +++ b/erpnext/accounts/workspace/payables/payables.json @@ -0,0 +1,204 @@ +{ + "charts": [], + "content": "[{\"id\":\"rMMsfn2eB4\",\"type\":\"header\",\"data\":{\"text\":\"Shortcuts\",\"col\":12}},{\"id\":\"G984SgVRJN\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Invoice\",\"col\":3}},{\"id\":\"F9f4I1viNr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Payment Entry\",\"col\":3}},{\"id\":\"1ArNvt9qhz\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Journal Entry\",\"col\":3}},{\"id\":\"4IBBOIxfqW\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Payable\",\"col\":3}},{\"id\":\"B7-uxs8tkU\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"jAcOH-cC-Q\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"7dj93PEUjW\",\"type\":\"card\",\"data\":{\"card_name\":\"Invoicing\",\"col\":4}},{\"id\":\"_Cb7C8XdJJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Payments\",\"col\":4}},{\"id\":\"9yseIkdG50\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2024-01-05 15:29:11.144373", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "arrow-left", + "idx": 0, + "indicator_color": "", + "is_hidden": 0, + "label": "Payables", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Invoicing", + "link_count": 2, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Purchase Invoice", + "link_count": 0, + "link_to": "Purchase Invoice", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Supplier", + "link_count": 0, + "link_to": "Supplier", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payments", + "link_count": 3, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Payment Entry", + "link_count": 0, + "link_to": "Payment Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Journal Entry", + "link_count": 0, + "link_to": "Journal Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Reconciliation", + "link_count": 0, + "link_to": "Payment Reconciliation", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 7, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounts Payable", + "link_count": 0, + "link_to": "Accounts Payable", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounts Payable Summary", + "link_count": 0, + "link_to": "Accounts Payable Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Purchase Register", + "link_count": 0, + "link_to": "Purchase Register", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Item-wise Purchase Register", + "link_count": 0, + "link_to": "Item-wise Purchase Register", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Purchase Order Analysis", + "link_count": 0, + "link_to": "Purchase Order Analysis", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Received Items To Be Billed", + "link_count": 0, + "link_to": "Received Items To Be Billed", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Supplier Ledger Summary", + "link_count": 0, + "link_to": "Supplier Ledger Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2024-01-18 22:09:46.221549", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Payables", + "number_cards": [], + "owner": "Administrator", + "parent_page": "Accounting", + "public": 1, + "quick_lists": [], + "restrict_to_domain": "", + "roles": [], + "sequence_id": 3.0, + "shortcuts": [ + { + "doc_view": "", + "label": "Accounts Payable", + "link_to": "Accounts Payable", + "type": "Report" + }, + { + "doc_view": "", + "label": "Purchase Invoice", + "link_to": "Purchase Invoice", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Journal Entry", + "link_to": "Journal Entry", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Payment Entry", + "link_to": "Payment Entry", + "type": "DocType" + } + ], + "title": "Payables" +} \ No newline at end of file diff --git a/erpnext/accounts/workspace/receivables/receivables.json b/erpnext/accounts/workspace/receivables/receivables.json new file mode 100644 index 0000000000..6fa8c099a4 --- /dev/null +++ b/erpnext/accounts/workspace/receivables/receivables.json @@ -0,0 +1,254 @@ +{ + "charts": [], + "content": "[{\"id\":\"vikWSkNm6_\",\"type\":\"header\",\"data\":{\"text\":\"Shortcuts\",\"col\":12}},{\"id\":\"G984SgVRJN\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"id\":\"5yHldR0JNk\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"POS Invoice\",\"col\":3}},{\"id\":\"F9f4I1viNr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Payment Entry\",\"col\":3}},{\"id\":\"1ArNvt9qhz\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Journal Entry\",\"col\":3}},{\"id\":\"4IBBOIxfqW\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Receivable\",\"col\":3}},{\"id\":\"ILlIxJuexy\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Cost Center\",\"col\":3}},{\"id\":\"B7-uxs8tkU\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"tHb3yxthkR\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"jLgv00c6ek\",\"type\":\"card\",\"data\":{\"card_name\":\"Invoicing\",\"col\":4}},{\"id\":\"npwfXlz0u1\",\"type\":\"card\",\"data\":{\"card_name\":\"Payments\",\"col\":4}},{\"id\":\"am70C27Jrb\",\"type\":\"card\",\"data\":{\"card_name\":\"Dunning\",\"col\":4}},{\"id\":\"xOHTyD8b5l\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "creation": "2024-01-05 15:29:21.084241", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "arrow-right", + "idx": 0, + "indicator_color": "", + "is_hidden": 0, + "label": "Receivables", + "links": [ + { + "hidden": 0, + "is_query_report": 0, + "label": "Invoicing", + "link_count": 2, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Sales Invoice", + "link_count": 0, + "link_to": "Sales Invoice", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Customer", + "link_count": 0, + "link_to": "Customer", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payments", + "link_count": 4, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Entry", + "link_count": 0, + "link_to": "Payment Entry", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Request", + "link_count": 0, + "link_to": "Payment Request", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Reconciliation", + "link_count": 0, + "link_to": "Payment Reconciliation", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Payment Gateway Account", + "link_count": 0, + "link_to": "Payment Gateway Account", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Dunning", + "link_count": 2, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Dunning", + "link_count": 0, + "link_to": "Dunning", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Dunning Type", + "link_count": 0, + "link_to": "Dunning Type", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Reports", + "link_count": 6, + "link_type": "DocType", + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Accounts Receivable", + "link_count": 0, + "link_to": "Accounts Receivable", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Accounts Receivable Summary", + "link_count": 0, + "link_to": "Accounts Receivable Summary", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Sales Register", + "link_count": 0, + "link_to": "Sales Register", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Item-wise Sales Register", + "link_count": 0, + "link_to": "Item-wise Sales Register", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Sales Order Analysis", + "link_count": 0, + "link_to": "Sales Order Analysis", + "link_type": "Report", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "Sales Invoice", + "hidden": 0, + "is_query_report": 1, + "label": "Delivered Items To Be Billed", + "link_count": 0, + "link_to": "Delivered Items To Be Billed", + "link_type": "Report", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2024-01-18 22:11:51.474477", + "modified_by": "Administrator", + "module": "Accounts", + "name": "Receivables", + "number_cards": [], + "owner": "Administrator", + "parent_page": "Accounting", + "public": 1, + "quick_lists": [], + "restrict_to_domain": "", + "roles": [], + "sequence_id": 4.0, + "shortcuts": [ + { + "color": "Grey", + "doc_view": "List", + "label": "POS Invoice", + "link_to": "POS Invoice", + "stats_filter": "[]", + "type": "DocType" + }, + { + "color": "Grey", + "doc_view": "List", + "label": "Cost Center", + "link_to": "Cost Center", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Sales Invoice", + "link_to": "Sales Invoice", + "stats_filter": "[]", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Journal Entry", + "link_to": "Journal Entry", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Payment Entry", + "link_to": "Payment Entry", + "type": "DocType" + }, + { + "doc_view": "", + "label": "Accounts Receivable", + "link_to": "Accounts Receivable", + "type": "Report" + } + ], + "title": "Receivables" +} \ No newline at end of file diff --git a/erpnext/assets/workspace/assets/assets.json b/erpnext/assets/workspace/assets/assets.json index c6b321e9c1..26e8d8a2a4 100644 --- a/erpnext/assets/workspace/assets/assets.json +++ b/erpnext/assets/workspace/assets/assets.json @@ -196,18 +196,18 @@ "type": "Link" } ], - "modified": "2023-05-24 14:47:20.243146", + "modified": "2024-01-05 17:40:34.570041", "modified_by": "Administrator", "module": "Assets", "name": "Assets", "number_cards": [], "owner": "Administrator", - "parent_page": "Accounting", + "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 4.0, + "sequence_id": 7.0, "shortcuts": [ { "label": "Asset",