mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-25 13:03:02 +00:00
Merge pull request #17769 from deepeshgarg007/dimensions
feat: Configurable Accounting Dimensions
This commit is contained in:
@@ -16,6 +16,7 @@ from erpnext.accounts.party import get_party_account_currency, validate_party_fr
|
||||
from erpnext.accounts.doctype.pricing_rule.utils import validate_pricing_rules
|
||||
from erpnext.exceptions import InvalidCurrency
|
||||
from six import text_type
|
||||
from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import get_accounting_dimensions
|
||||
|
||||
force_item_fields = ("item_group", "brand", "stock_uom", "is_fixed_asset", "item_tax_rate", "pricing_rules")
|
||||
|
||||
@@ -338,7 +339,7 @@ class AccountsController(TransactionBase):
|
||||
frappe.throw(_("Row #{0}: Account {1} does not belong to company {2}")
|
||||
.format(d.idx, d.account_head, self.company))
|
||||
|
||||
def get_gl_dict(self, args, account_currency=None):
|
||||
def get_gl_dict(self, args, account_currency=None, item=None):
|
||||
"""this method populates the common properties of a gl entry record"""
|
||||
|
||||
posting_date = args.get('posting_date') or self.get('posting_date')
|
||||
@@ -365,6 +366,16 @@ class AccountsController(TransactionBase):
|
||||
'party': None,
|
||||
'project': self.get("project")
|
||||
})
|
||||
|
||||
accounting_dimensions = get_accounting_dimensions()
|
||||
dimension_dict = frappe._dict()
|
||||
|
||||
for dimension in accounting_dimensions:
|
||||
dimension_dict[dimension] = self.get(dimension)
|
||||
if item and item.get(dimension):
|
||||
dimension_dict[dimension] = item.get(dimension)
|
||||
|
||||
gl_dict.update(dimension_dict)
|
||||
gl_dict.update(args)
|
||||
|
||||
if not account_currency:
|
||||
|
||||
@@ -81,7 +81,7 @@ class StockController(AccountsController):
|
||||
"remarks": self.get("remarks") or "Accounting Entry for Stock",
|
||||
"debit": flt(sle.stock_value_difference, 2),
|
||||
"is_opening": item_row.get("is_opening") or self.get("is_opening") or "No",
|
||||
}, warehouse_account[sle.warehouse]["account_currency"]))
|
||||
}, warehouse_account[sle.warehouse]["account_currency"], item=item_row))
|
||||
|
||||
# to target warehouse / expense account
|
||||
gl_list.append(self.get_gl_dict({
|
||||
@@ -92,7 +92,7 @@ class StockController(AccountsController):
|
||||
"credit": flt(sle.stock_value_difference, 2),
|
||||
"project": item_row.get("project") or self.get("project"),
|
||||
"is_opening": item_row.get("is_opening") or self.get("is_opening") or "No"
|
||||
}))
|
||||
}, item=item_row))
|
||||
elif sle.warehouse not in warehouse_with_no_account:
|
||||
warehouse_with_no_account.append(sle.warehouse)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user