mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-29 09:54:47 +00:00
Commonify get_asset_category_account and get_fixed_asset_account method
This commit is contained in:
@@ -205,9 +205,10 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
|
|||||||
var row = locals[cdt][cdn];
|
var row = locals[cdt][cdn];
|
||||||
if(row.asset) {
|
if(row.asset) {
|
||||||
frappe.call({
|
frappe.call({
|
||||||
method: "erpnext.accounts.doctype.purchase_invoice.purchase_invoice.get_fixed_asset_account",
|
method: "erpnext.assets.doctype.asset_category.asset_category.get_asset_category_account",
|
||||||
args: {
|
args: {
|
||||||
"asset": row.asset,
|
"asset": row.asset,
|
||||||
|
"fieldname": "fixed_asset_account",
|
||||||
"account": row.expense_account
|
"account": row.expense_account
|
||||||
},
|
},
|
||||||
callback: function(r, rt) {
|
callback: function(r, rt) {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from erpnext.accounts.general_ledger import get_round_off_account_and_cost_cente
|
|||||||
from frappe.model.mapper import get_mapped_doc
|
from frappe.model.mapper import get_mapped_doc
|
||||||
from erpnext.accounts.doctype.sales_invoice.sales_invoice import validate_inter_company_party, update_linked_invoice,\
|
from erpnext.accounts.doctype.sales_invoice.sales_invoice import validate_inter_company_party, update_linked_invoice,\
|
||||||
unlink_inter_company_invoice
|
unlink_inter_company_invoice
|
||||||
from erpnext.assets.doctype.asset_category.asset_category import get_cwip_account
|
from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account
|
||||||
|
|
||||||
form_grid_templates = {
|
form_grid_templates = {
|
||||||
"items": "templates/form_grid/item_grid.html"
|
"items": "templates/form_grid/item_grid.html"
|
||||||
@@ -442,7 +442,9 @@ class PurchaseInvoice(BuyingController):
|
|||||||
if asset_rbnb_currency == self.company_currency else asset_amount)
|
if asset_rbnb_currency == self.company_currency else asset_amount)
|
||||||
}))
|
}))
|
||||||
else:
|
else:
|
||||||
cwip_account = get_cwip_account(item.item_code, self.company) or asset_accounts[2]
|
cwip_account = get_asset_category_account(item.asset,
|
||||||
|
'capital_work_in_progress_account') or asset_accounts[2]
|
||||||
|
|
||||||
cwip_account_currency = get_account_currency(cwip_account)
|
cwip_account_currency = get_account_currency(cwip_account)
|
||||||
gl_entries.append(self.get_gl_dict({
|
gl_entries.append(self.get_gl_dict({
|
||||||
"account": cwip_account,
|
"account": cwip_account,
|
||||||
@@ -734,20 +736,6 @@ def make_debit_note(source_name, target_doc=None):
|
|||||||
from erpnext.controllers.sales_and_purchase_return import make_return_doc
|
from erpnext.controllers.sales_and_purchase_return import make_return_doc
|
||||||
return make_return_doc("Purchase Invoice", source_name, target_doc)
|
return make_return_doc("Purchase Invoice", source_name, target_doc)
|
||||||
|
|
||||||
@frappe.whitelist()
|
|
||||||
def get_fixed_asset_account(asset, account=None):
|
|
||||||
if account:
|
|
||||||
if frappe.db.get_value("Account", account, "account_type") != "Fixed Asset":
|
|
||||||
account=None
|
|
||||||
|
|
||||||
if not account:
|
|
||||||
asset_category, company = frappe.db.get_value("Asset", asset, ["asset_category", "company"])
|
|
||||||
|
|
||||||
account = frappe.db.get_value("Asset Category Account",
|
|
||||||
filters={"parent": asset_category, "company_name": company}, fieldname="fixed_asset_account")
|
|
||||||
|
|
||||||
return account
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_stock_entry(source_name, target_doc=None):
|
def make_stock_entry(source_name, target_doc=None):
|
||||||
doc = get_mapped_doc("Purchase Invoice", source_name, {
|
doc = get_mapped_doc("Purchase Invoice", source_name, {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import frappe
|
|||||||
from frappe import _
|
from frappe import _
|
||||||
from frappe.utils import flt, add_months, cint, nowdate, getdate, today, date_diff
|
from frappe.utils import flt, add_months, cint, nowdate, getdate, today, date_diff
|
||||||
from frappe.model.document import Document
|
from frappe.model.document import Document
|
||||||
from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import get_fixed_asset_account
|
from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account
|
||||||
from erpnext.assets.doctype.asset.depreciation \
|
from erpnext.assets.doctype.asset.depreciation \
|
||||||
import get_disposal_account_and_cost_center, get_depreciation_accounts
|
import get_disposal_account_and_cost_center, get_depreciation_accounts
|
||||||
|
|
||||||
@@ -287,7 +287,7 @@ def make_purchase_invoice(asset, item_code, gross_purchase_amount, company, post
|
|||||||
"item_code": item_code,
|
"item_code": item_code,
|
||||||
"is_fixed_asset": 1,
|
"is_fixed_asset": 1,
|
||||||
"asset": asset,
|
"asset": asset,
|
||||||
"expense_account": get_fixed_asset_account(asset),
|
"expense_account": get_asset_category_account(asset, 'fixed_asset_account'),
|
||||||
"qty": 1,
|
"qty": 1,
|
||||||
"price_list_rate": gross_purchase_amount,
|
"price_list_rate": gross_purchase_amount,
|
||||||
"rate": gross_purchase_amount
|
"rate": gross_purchase_amount
|
||||||
|
|||||||
@@ -14,9 +14,16 @@ class AssetCategory(Document):
|
|||||||
if cint(self.get(field))<1:
|
if cint(self.get(field))<1:
|
||||||
frappe.throw(_("{0} must be greater than 0").format(self.meta.get_label(field)), frappe.MandatoryError)
|
frappe.throw(_("{0} must be greater than 0").format(self.meta.get_label(field)), frappe.MandatoryError)
|
||||||
|
|
||||||
def get_cwip_account(item_code, company):
|
@frappe.whitelist()
|
||||||
asset_category = frappe.db.get_value('Item', item_code, 'asset_category')
|
def get_asset_category_account(asset, fieldname, account=None):
|
||||||
cwip_account = frappe.db.get_value('Asset Category Account',
|
if account:
|
||||||
{'parent': asset_category, 'company_name': company}, 'capital_work_in_progress_account')
|
if frappe.db.get_value("Account", account, "account_type") != "Fixed Asset":
|
||||||
|
account=None
|
||||||
|
|
||||||
return cwip_account or None
|
if not account:
|
||||||
|
asset_category, company = frappe.db.get_value("Asset", asset, ["asset_category", "company"])
|
||||||
|
|
||||||
|
account = frappe.db.get_value("Asset Category Account",
|
||||||
|
filters={"parent": asset_category, "company_name": company}, fieldname=fieldname)
|
||||||
|
|
||||||
|
return account
|
||||||
@@ -505,11 +505,15 @@ class BuyingController(StockController):
|
|||||||
self.make_asset_movement(d)
|
self.make_asset_movement(d)
|
||||||
|
|
||||||
def make_asset(self, row):
|
def make_asset(self, row):
|
||||||
|
item_data = frappe.db.get_value('Item',
|
||||||
|
row.item_code, ['asset_naming_series', 'asset_category'], as_dict=1)
|
||||||
|
|
||||||
asset = frappe.get_doc({
|
asset = frappe.get_doc({
|
||||||
'doctype': 'Asset',
|
'doctype': 'Asset',
|
||||||
'item_code': row.item_code,
|
'item_code': row.item_code,
|
||||||
'asset_name': row.item_name,
|
'asset_name': row.item_name,
|
||||||
'naming_series': frappe.db.get_value('Item', row.item_code, 'asset_naming_series') or 'AST',
|
'naming_series': item_data.get('asset_naming_series') or 'AST',
|
||||||
|
'asset_category': item_data.get('asset_category'),
|
||||||
'warehouse': row.warehouse,
|
'warehouse': row.warehouse,
|
||||||
'company': self.company,
|
'company': self.company,
|
||||||
'purchase_date': self.posting_date,
|
'purchase_date': self.posting_date,
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from erpnext.controllers.buying_controller import BuyingController
|
|||||||
from erpnext.accounts.utils import get_account_currency
|
from erpnext.accounts.utils import get_account_currency
|
||||||
from frappe.desk.notifications import clear_doctype_notifications
|
from frappe.desk.notifications import clear_doctype_notifications
|
||||||
from erpnext.buying.utils import check_for_closed_status
|
from erpnext.buying.utils import check_for_closed_status
|
||||||
from erpnext.assets.doctype.asset_category.asset_category import get_cwip_account
|
from erpnext.assets.doctype.asset_category.asset_category import get_asset_category_account
|
||||||
|
|
||||||
form_grid_templates = {
|
form_grid_templates = {
|
||||||
"items": "templates/form_grid/item_grid.html"
|
"items": "templates/form_grid/item_grid.html"
|
||||||
@@ -259,7 +259,8 @@ class PurchaseReceipt(BuyingController):
|
|||||||
"asset_received_but_not_billed"])
|
"asset_received_but_not_billed"])
|
||||||
|
|
||||||
# CWIP entry
|
# CWIP entry
|
||||||
cwip_account = get_cwip_account(d.item_code, self.company) or asset_accounts[0]
|
cwip_account = get_asset_category_account(d.asset,
|
||||||
|
'capital_work_in_progress_account') or asset_accounts[0]
|
||||||
|
|
||||||
asset_amount = flt(d.net_amount) + flt(d.item_tax_amount/self.conversion_rate)
|
asset_amount = flt(d.net_amount) + flt(d.item_tax_amount/self.conversion_rate)
|
||||||
base_asset_amount = flt(d.base_net_amount + d.item_tax_amount)
|
base_asset_amount = flt(d.base_net_amount + d.item_tax_amount)
|
||||||
|
|||||||
Reference in New Issue
Block a user