From df2a75ad1d2c9f9fb3db07bc593bf396500750f8 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 20 Jul 2016 11:25:15 +0530 Subject: [PATCH 1/4] Updated standard chart of accounts --- .../in_standard_chart_of_accounts.json | 87 +++++++------------ .../verified/standard_chart_of_accounts.py | 17 +++- 2 files changed, 44 insertions(+), 60 deletions(-) diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json index 375828c572..c7a8045504 100644 --- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json +++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json @@ -37,19 +37,24 @@ "Capital Equipments": { "account_type": "Fixed Asset" }, - "Computers": { + "Electronic Equipments": { "account_type": "Fixed Asset" }, - "Furniture and Fixture": { + "Furnitures and Fixtures": { "account_type": "Fixed Asset" }, "Office Equipments": { "account_type": "Fixed Asset" }, - "Plant and Machinery": { + "Plants and Machineries": { "account_type": "Fixed Asset" }, - "Accumulated Depreciations": {} + "Buildings": { + "account_type": "Fixed Asset" + }, + "Accumulated Depreciations": { + "account_type": "Accumulated Depreciation" + } }, "Investments": { "is_group": 1 @@ -72,67 +77,37 @@ }, "Stock Adjustment": { "account_type": "Stock Adjustment" - }, - "account_type": "Expense Account" - }, - "account_type": "Expense Account" + } + } }, "Indirect Expenses": { - "Administrative Expenses": { - "account_type": "Expense Account" - }, - "Commission on Sales": { - "account_type": "Expense Account" - }, + "Administrative Expenses": {}, + "Commission on Sales": {}, "Depreciation": { - "account_type": "Expense Account" - }, - "Entertainment Expenses": { - "account_type": "Expense Account" + "account_type": "Depreciation" }, + "Entertainment Expenses": {}, "Freight and Forwarding Charges": { "account_type": "Chargeable" }, - "Legal Expenses": { - "account_type": "Expense Account" - }, - "Marketing Expenses": { - "account_type": "Chargeable" - }, - "Miscellaneous Expenses": { - "account_type": "Chargeable" - }, - "Office Maintenance Expenses": { - "account_type": "Expense Account" - }, - "Office Rent": { - "account_type": "Expense Account" - }, - "Postal Expenses": { - "account_type": "Expense Account" - }, - "Print and Stationary": { - "account_type": "Expense Account" - }, + "Legal Expenses": {}, + "Marketing Expenses": {}, + "Miscellaneous Expenses": {}, + "Office Maintenance Expenses": {}, + "Office Rent": {}, + "Postal Expenses": {}, + "Print and Stationary": {}, "Rounded Off": { - "account_type": "Expense Account" + "account_type": "Round Off" }, - "Salary": { - "account_type": "Expense Account" - }, - "Sales Expenses": { - "account_type": "Expense Account" - }, - "Telephone Expenses": { - "account_type": "Expense Account" - }, - "Travel Expenses": { - "account_type": "Expense Account" - }, - "Utility Expenses": { - "account_type": "Expense Account" - }, - "account_type": "Expense Account" + "Salary": {}, + "Sales Expenses": {}, + "Telephone Expenses": {}, + "Travel Expenses": {}, + "Utility Expenses": {}, + "Write Off": {}, + "Exchange Gain/Loss": {}, + "Gain/Loss on Asset Disposal": {} }, "root_type": "Expense" }, diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py b/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py index 386b229e69..5824704fb3 100644 --- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py @@ -41,18 +41,24 @@ def get(): _("Capital Equipments"): { "account_type": "Fixed Asset" }, - _("Computers"): { + _("Electronic Equipments"): { "account_type": "Fixed Asset" }, - _("Furniture and Fixture"): { + _("Furnitures and Fixtures"): { "account_type": "Fixed Asset" }, _("Office Equipments"): { "account_type": "Fixed Asset" }, - _("Plant and Machinery"): { + _("Plants and Machineries"): { "account_type": "Fixed Asset" }, + _("Buildings"): { + "account_type": "Fixed Asset" + }, + _("Softwares"): { + "account_type": "Fixed Asset" + }, _("Accumulated Depreciation"): { "account_type": "Accumulated Depreciation" } @@ -109,7 +115,10 @@ def get(): _("Sales Expenses"): {}, _("Telephone Expenses"): {}, _("Travel Expenses"): {}, - _("Utility Expenses"): {} + _("Utility Expenses"): {}, + _("Write Off"): {}, + _("Exchange Gain/Loss"): {}, + _("Gain/Loss on Asset Disposal"): {} }, "root_type": "Expense" }, From b1234fa5e8a2a08f13cbc018815f8fcfdfd0b953 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 20 Jul 2016 11:26:05 +0530 Subject: [PATCH 2/4] Set missing values in asset --- erpnext/accounts/doctype/asset/asset.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/doctype/asset/asset.py b/erpnext/accounts/doctype/asset/asset.py index 1118766b1a..b28aaa9eed 100644 --- a/erpnext/accounts/doctype/asset/asset.py +++ b/erpnext/accounts/doctype/asset/asset.py @@ -15,8 +15,8 @@ class Asset(Document): def validate(self): self.status = self.get_status() self.validate_item() + self.set_missing_values() self.validate_asset_values() - self.set_depreciation_settings() self.make_depreciation_schedule() self.validate_expected_value_after_useful_life() # Validate depreciation related accounts @@ -41,10 +41,18 @@ class Asset(Document): frappe.throw(_("Item {0} must be a Fixed Asset Item").format(self.item_code)) elif item.is_stock_item: frappe.throw(_("Item {0} must be a non-stock item").format(self.item_code)) + + def set_missing_values(self): + if self.item_code: + item_details = get_item_details(self.item_code) + for field, value in item_details.items(): + if not self.get(field): + self.set(field, value) + + self.value_after_depreciation = (flt(self.gross_purchase_amount) - + flt(self.opening_accumulated_depreciation)) def validate_asset_values(self): - self.value_after_depreciation = flt(self.gross_purchase_amount) - flt(self.opening_accumulated_depreciation) - if flt(self.expected_value_after_useful_life) >= flt(self.gross_purchase_amount): frappe.throw(_("Expected Value After Useful Life must be less than Gross Purchase Amount")) @@ -77,15 +85,6 @@ class Asset(Document): if (flt(self.value_after_depreciation) > flt(self.expected_value_after_useful_life) and not self.next_depreciation_date): frappe.throw(_("Please set Next Depreciation Date")) - - - - def set_depreciation_settings(self): - asset_category = frappe.get_doc("Asset Category", self.asset_category) - - for field in ("depreciation_method", "total_number_of_depreciations", "frequency_of_depreciation"): - if not self.get(field): - self.set(field, asset_category.get(field)) def make_depreciation_schedule(self): self.schedules = [] From 85648d9bd683218e3f389278dc27758e04f16b4a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 20 Jul 2016 11:26:45 +0530 Subject: [PATCH 3/4] payment entry fixes --- .../accounts/doctype/journal_entry/journal_entry.py | 5 +++-- .../accounts/doctype/payment_entry/payment_entry.py | 11 ++++++----- erpnext/accounts/utils.py | 5 ++++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 96b95f98c0..6f25220ec5 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -519,7 +519,7 @@ class JournalEntry(AccountsController): if (d.party_type, d.party) not in party_balance: party_balance[(d.party_type, d.party)] = get_balance_on(party_type=d.party_type, - party=d.party, date=self.posting_date) + party=d.party, date=self.posting_date, company=self.company) d.account_balance = account_balance[d.account] d.party_balance = party_balance[(d.party_type, d.party)] @@ -553,6 +553,7 @@ def get_default_bank_cash_account(company, account_type=None, mode_of_payment=No "account_currency": account_details.account_currency, "account_type": account_details.account_type }) + else: return frappe._dict() @frappe.whitelist() def get_payment_entry_against_order(dt, dn, amount=None, debit_in_account_currency=None, journal_entry=False, bank_account=None): @@ -754,7 +755,7 @@ def get_party_account_and_balance(company, party_type, party): account = get_party_account(party_type, party, company) account_balance = get_balance_on(account=account) - party_balance = get_balance_on(party_type=party_type, party=party) + party_balance = get_balance_on(party_type=party_type, party=party, company=company) return { "account": account, diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 5ed14d5566..28978cdbaf 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -77,7 +77,7 @@ class PaymentEntry(AccountsController): if self.party: if not self.party_balance: self.party_balance = get_balance_on(party_type=self.party_type, - party=self.party, date=self.posting_date) + party=self.party, date=self.posting_date, company=self.company) if not self.party_account: party_account = get_party_account(self.party_type, self.party, self.company) @@ -251,7 +251,7 @@ class PaymentEntry(AccountsController): self.unallocated_amount = party_amount - self.total_allocated_amount def set_difference_amount(self): - base_unallocated_amount = self.unallocated_amount * \ + base_unallocated_amount = flt(self.unallocated_amount) * \ (self.source_exchange_rate if self.payment_type=="Receive" else self.target_exchange_rate) base_party_amount = flt(self.base_total_allocated_amount) + flt(base_unallocated_amount) @@ -669,9 +669,10 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= "outstanding_amount": outstanding_amount, "allocated_amount": outstanding_amount }) - + pe.setup_party_account_field() pe.set_missing_values() - pe.set_exchange_rate() - pe.set_amounts() + if bank: + pe.set_exchange_rate() + pe.set_amounts() return pe \ No newline at end of file diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 2d1b2db705..635197ff81 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -53,7 +53,7 @@ def validate_fiscal_year(date, fiscal_year, label=_("Date"), doc=None): throw(_("{0} '{1}' not in Fiscal Year {2}").format(label, formatdate(date), fiscal_year)) @frappe.whitelist() -def get_balance_on(account=None, date=None, party_type=None, party=None, in_account_currency=True): +def get_balance_on(account=None, date=None, party_type=None, party=None, company=None, in_account_currency=True): if not account and frappe.form_dict.get("account"): account = frappe.form_dict.get("account") if not date and frappe.form_dict.get("date"): @@ -110,6 +110,9 @@ def get_balance_on(account=None, date=None, party_type=None, party=None, in_acco if party_type and party: cond.append("""gle.party_type = "%s" and gle.party = "%s" """ % (frappe.db.escape(party_type), frappe.db.escape(party, percent=False))) + + if company: + cond.append("""gle.company = "%s" """ % (frappe.db.escape(company, percent=False))) if account or (party_type and party): if in_account_currency: From 9d93ad92bc74efe121804efa92cbe33153759ab5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 20 Jul 2016 11:27:15 +0530 Subject: [PATCH 4/4] minor fixes --- .../doctype/production_order/production_order.js | 1 + .../landed_cost_purchase_receipt.json | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js index c3ec2b146e..d42f7359da 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.js +++ b/erpnext/manufacturing/doctype/production_order/production_order.js @@ -179,6 +179,7 @@ erpnext.production_order = { } } + frm.fields_dict.source_warehouse.get_query = company_filter; frm.fields_dict.fg_warehouse.get_query = company_filter; frm.fields_dict.wip_warehouse.get_query = company_filter; }, diff --git a/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json b/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json index bc8eaef4de..d65da882de 100644 --- a/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json +++ b/erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json @@ -20,7 +20,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 0, + "in_list_view": 1, "label": "Receipt Document Type", "length": 0, "no_copy": 0, @@ -124,7 +124,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 1, + "in_list_view": 0, "label": "Posting Date", "length": 0, "no_copy": 0, @@ -173,7 +173,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-11 03:28:01.870042", + "modified": "2016-07-20 10:49:34.228751", "modified_by": "Administrator", "module": "Stock", "name": "Landed Cost Purchase Receipt", @@ -182,5 +182,6 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, + "sort_order": "ASC", "track_seen": 0 } \ No newline at end of file