feat: Accounting entries for service item in Purchase receipt

This commit is contained in:
Deepesh Garg 2020-06-12 18:33:42 +05:30
parent d5b97d6996
commit c258ac82c5
6 changed files with 490 additions and 142 deletions

View File

@ -34,11 +34,15 @@
{
"fieldname": "properties",
"fieldtype": "Section Break",
"oldfieldtype": "Section Break"
"oldfieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
@ -49,7 +53,9 @@
"no_copy": 1,
"oldfieldname": "account_name",
"oldfieldtype": "Data",
"reqd": 1
"reqd": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "account_number",
@ -57,13 +63,17 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Account Number",
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "is_group",
"fieldtype": "Check",
"label": "Is Group"
"label": "Is Group",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "company",
@ -75,7 +85,9 @@
"options": "Company",
"read_only": 1,
"remember_last_selected_value": 1,
"reqd": 1
"reqd": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "root_type",
@ -83,7 +95,9 @@
"in_standard_filter": 1,
"label": "Root Type",
"options": "\nAsset\nLiability\nIncome\nExpense\nEquity",
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "report_type",
@ -91,24 +105,32 @@
"in_standard_filter": 1,
"label": "Report Type",
"options": "\nBalance Sheet\nProfit and Loss",
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:doc.is_group==0",
"fieldname": "account_currency",
"fieldtype": "Link",
"label": "Currency",
"options": "Currency"
"options": "Currency",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "inter_company_account",
"fieldtype": "Check",
"label": "Inter Company Account"
"label": "Inter Company Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
@ -120,7 +142,9 @@
"oldfieldtype": "Link",
"options": "Account",
"reqd": 1,
"search_index": 1
"search_index": 1,
"show_days": 1,
"show_seconds": 1
},
{
"description": "Setting Account Type helps in selecting this Account in transactions.",
@ -130,7 +154,9 @@
"label": "Account Type",
"oldfieldname": "account_type",
"oldfieldtype": "Select",
"options": "\nAccumulated Depreciation\nAsset Received But Not Billed\nBank\nCash\nChargeable\nCapital Work in Progress\nCost of Goods Sold\nDepreciation\nEquity\nExpense Account\nExpenses Included In Asset Valuation\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nPayable\nReceivable\nRound Off\nStock\nStock Adjustment\nStock Received But Not Billed\nTax\nTemporary"
"options": "\nAccumulated Depreciation\nAsset Received But Not Billed\nBank\nCash\nChargeable\nCapital Work in Progress\nCost of Goods Sold\nDepreciation\nEquity\nExpense Account\nExpenses Included In Asset Valuation\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nPayable\nReceivable\nRound Off\nStock\nStock Adjustment\nStock Received But Not Billed\nService Received But Not Billed\nTax\nTemporary",
"show_days": 1,
"show_seconds": 1
},
{
"description": "Rate at which this tax is applied",
@ -138,7 +164,9 @@
"fieldtype": "Float",
"label": "Rate",
"oldfieldname": "tax_rate",
"oldfieldtype": "Currency"
"oldfieldtype": "Currency",
"show_days": 1,
"show_seconds": 1
},
{
"description": "If the account is frozen, entries are allowed to restricted users.",
@ -147,13 +175,17 @@
"label": "Frozen",
"oldfieldname": "freeze_account",
"oldfieldtype": "Select",
"options": "No\nYes"
"options": "No\nYes",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "balance_must_be",
"fieldtype": "Select",
"label": "Balance must be",
"options": "\nDebit\nCredit"
"options": "\nDebit\nCredit",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "lft",
@ -162,7 +194,9 @@
"label": "Lft",
"print_hide": 1,
"read_only": 1,
"search_index": 1
"search_index": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "rgt",
@ -171,7 +205,9 @@
"label": "Rgt",
"print_hide": 1,
"read_only": 1,
"search_index": 1
"search_index": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "old_parent",
@ -179,27 +215,33 @@
"hidden": 1,
"label": "Old Parent",
"print_hide": 1,
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"depends_on": "eval:(doc.report_type == 'Profit and Loss' && !doc.is_group)",
"fieldname": "include_in_gross",
"fieldtype": "Check",
"label": "Include in gross"
"label": "Include in gross",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disable"
"label": "Disable",
"show_days": 1,
"show_seconds": 1
}
],
"icon": "fa fa-money",
"idx": 1,
"is_tree": 1,
"links": [],
"modified": "2020-03-18 17:57:52.063233",
"modified": "2020-06-11 15:15:54.338622",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",

View File

@ -570,6 +570,18 @@ class PurchaseInvoice(BuyingController):
else:
amount = flt(item.base_net_amount + item.item_tax_amount, item.precision("base_net_amount"))
auto_accounting_for_non_stock_items = cint(frappe.db.get_single_value('Stock Settings', 'enable_perpetual_inventory_for_non_stock_items'))
service_received_but_not_billed_account = self.get_company_default("service_received_but_not_billed")
if item.purchase_receipt and auto_accounting_for_non_stock_items:
# Post reverse entry for Stock-Received-But-Not-Billed if it is booked in Purchase Receipt
expense_booked_in_pr = frappe.db.get_value('GL Entry', {'is_cancelled': 0,
'voucher_type': 'Purchase Receipt', 'voucher_no': item.purchase_receipt, 'voucher_detail_no': item.pr_detail,
'account':service_received_but_not_billed_account}, ['name'])
if expense_booked_in_pr:
expense_account = service_received_but_not_billed_account
gl_entries.append(self.get_gl_dict({
"account": expense_account,
"against": self.supplier,
@ -1020,7 +1032,7 @@ class PurchaseInvoice(BuyingController):
# calculate totals again after applying TDS
self.calculate_taxes_and_totals()
def set_status(self, update=False, status=None, update_modified=True):
if self.is_new():
if self.get('amended_from'):

View File

@ -264,7 +264,10 @@ erpnext.company.setup_queries = function(frm) {
["expenses_included_in_valuation",
{"root_type": "Expense", "account_type": "Expenses Included in Valuation"}],
["stock_received_but_not_billed",
{"root_type": "Liability", "account_type": "Stock Received But Not Billed"}]
{"root_type": "Liability", "account_type": "Stock Received But Not Billed"}],
["service_received_but_not_billed",
{"root_type": "Liability", "account_type": "Service Received But Not Billed"}],
], function(i, v) {
erpnext.company.set_custom_query(frm, v);
});

View File

@ -71,6 +71,7 @@
"stock_adjustment_account",
"column_break_32",
"stock_received_but_not_billed",
"service_received_but_not_billed",
"expenses_included_in_valuation",
"fixed_asset_depreciation_settings",
"accumulated_depreciation_account",
@ -106,7 +107,9 @@
{
"fieldname": "details",
"fieldtype": "Section Break",
"oldfieldtype": "Section Break"
"oldfieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "company_name",
@ -115,6 +118,8 @@
"oldfieldname": "company_name",
"oldfieldtype": "Data",
"reqd": 1,
"show_days": 1,
"show_seconds": 1,
"unique": 1
},
{
@ -123,36 +128,48 @@
"label": "Abbr",
"oldfieldname": "abbr",
"oldfieldtype": "Data",
"reqd": 1
"reqd": 1,
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")",
"fieldname": "change_abbr",
"fieldtype": "Button",
"label": "Change Abbreviation"
"label": "Change Abbreviation",
"show_days": 1,
"show_seconds": 1
},
{
"bold": 1,
"default": "0",
"fieldname": "is_group",
"fieldtype": "Check",
"label": "Is Group"
"label": "Is Group",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_finance_book",
"fieldtype": "Link",
"label": "Default Finance Book",
"options": "Finance Book"
"options": "Finance Book",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "cb0",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "domain",
"fieldtype": "Link",
"label": "Domain",
"options": "Domain"
"options": "Domain",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "parent_company",
@ -160,24 +177,32 @@
"ignore_user_permissions": 1,
"in_list_view": 1,
"label": "Parent Company",
"options": "Company"
"options": "Company",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "company_logo",
"fieldtype": "Attach Image",
"hidden": 1,
"label": "Company Logo"
"label": "Company Logo",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "company_description",
"fieldtype": "Text Editor",
"label": "Company Description"
"label": "Company Description",
"show_days": 1,
"show_seconds": 1
},
{
"collapsible": 1,
"fieldname": "sales_settings",
"fieldtype": "Section Break",
"label": "Sales Settings"
"label": "Sales Settings",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "sales_monthly_history",
@ -185,7 +210,9 @@
"hidden": 1,
"label": "Sales Monthly History",
"no_copy": 1,
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "transactions_annual_history",
@ -193,17 +220,23 @@
"hidden": 1,
"label": "Transactions Annual History",
"no_copy": 1,
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "monthly_sales_target",
"fieldtype": "Currency",
"label": "Monthly Sales Target",
"options": "default_currency"
"options": "default_currency",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_goals",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "total_monthly_sales",
@ -211,12 +244,16 @@
"label": "Total Monthly Sales",
"no_copy": 1,
"options": "default_currency",
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "charts_section",
"fieldtype": "Section Break",
"label": "Default Values"
"label": "Default Values",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_currency",
@ -224,34 +261,46 @@
"ignore_user_permissions": 1,
"label": "Default Currency",
"options": "Currency",
"reqd": 1
"reqd": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_letter_head",
"fieldtype": "Link",
"label": "Default Letter Head",
"options": "Letter Head"
"options": "Letter Head",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_holiday_list",
"fieldtype": "Link",
"label": "Default Holiday List",
"options": "Holiday List"
"options": "Holiday List",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "standard_working_hours",
"fieldtype": "Float",
"label": "Standard Working Hours"
"label": "Standard Working Hours",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_warehouse_for_sales_return",
"fieldtype": "Link",
"label": "Default warehouse for Sales Return",
"options": "Warehouse"
"options": "Warehouse",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_10",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "country",
@ -259,20 +308,26 @@
"in_list_view": 1,
"label": "Country",
"options": "Country",
"reqd": 1
"reqd": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "create_chart_of_accounts_based_on",
"fieldtype": "Select",
"label": "Create Chart Of Accounts Based On",
"options": "\nStandard Template\nExisting Company"
"options": "\nStandard Template\nExisting Company",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:doc.create_chart_of_accounts_based_on===\"Standard Template\"",
"fieldname": "chart_of_accounts",
"fieldtype": "Select",
"label": "Chart Of Accounts Template",
"no_copy": 1
"no_copy": 1,
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:doc.create_chart_of_accounts_based_on===\"Existing Company\"",
@ -281,23 +336,31 @@
"ignore_user_permissions": 1,
"label": "Existing Company ",
"no_copy": 1,
"options": "Company"
"options": "Company",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "tax_id",
"fieldtype": "Data",
"label": "Tax ID"
"label": "Tax ID",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "date_of_establishment",
"fieldtype": "Date",
"label": "Date of Establishment"
"label": "Date of Establishment",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_settings",
"fieldtype": "Section Break",
"label": "Accounts Settings",
"oldfieldtype": "Section Break"
"oldfieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -308,7 +371,9 @@
"no_copy": 1,
"oldfieldname": "default_bank_account",
"oldfieldtype": "Link",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -317,7 +382,9 @@
"ignore_user_permissions": 1,
"label": "Default Cash Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -328,54 +395,72 @@
"no_copy": 1,
"oldfieldname": "receivables_group",
"oldfieldtype": "Link",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "round_off_account",
"fieldtype": "Link",
"label": "Round Off Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "round_off_cost_center",
"fieldtype": "Link",
"label": "Round Off Cost Center",
"options": "Cost Center"
"options": "Cost Center",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "write_off_account",
"fieldtype": "Link",
"label": "Write Off Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "discount_allowed_account",
"fieldtype": "Link",
"label": "Discount Allowed Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "discount_received_account",
"fieldtype": "Link",
"label": "Discount Received Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "exchange_gain_loss_account",
"fieldtype": "Link",
"label": "Exchange Gain / Loss Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "unrealized_exchange_gain_loss_account",
"fieldtype": "Link",
"label": "Unrealized Exchange Gain/Loss Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
@ -383,7 +468,9 @@
"depends_on": "eval:doc.parent_company",
"fieldname": "allow_account_creation_against_child_company",
"fieldtype": "Check",
"label": "Allow Account Creation Against Child Company"
"label": "Allow Account Creation Against Child Company",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -394,14 +481,18 @@
"no_copy": 1,
"oldfieldname": "payables_group",
"oldfieldtype": "Link",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_employee_advance_account",
"fieldtype": "Link",
"label": "Default Employee Advance Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -410,7 +501,9 @@
"ignore_user_permissions": 1,
"label": "Default Cost of Goods Sold Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -419,7 +512,9 @@
"ignore_user_permissions": 1,
"label": "Default Income Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -428,7 +523,9 @@
"ignore_user_permissions": 1,
"label": "Default Deferred Revenue Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -437,7 +534,9 @@
"ignore_user_permissions": 1,
"label": "Default Deferred Expense Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -446,7 +545,9 @@
"ignore_user_permissions": 1,
"label": "Default Payroll Payable Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -455,11 +556,15 @@
"ignore_user_permissions": 1,
"label": "Default Expense Claim Payable Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "section_break_22",
"fieldtype": "Section Break"
"fieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -468,11 +573,15 @@
"ignore_user_permissions": 1,
"label": "Default Cost Center",
"no_copy": 1,
"options": "Cost Center"
"options": "Cost Center",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_26",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
@ -481,31 +590,41 @@
"label": "Credit Limit",
"oldfieldname": "credit_limit",
"oldfieldtype": "Currency",
"options": "default_currency"
"options": "default_currency",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "payment_terms",
"fieldtype": "Link",
"label": "Default Payment Terms Template",
"options": "Payment Terms Template"
"options": "Payment Terms Template",
"show_days": 1,
"show_seconds": 1
},
{
"depends_on": "eval:!doc.__islocal",
"fieldname": "auto_accounting_for_stock_settings",
"fieldtype": "Section Break",
"label": "Stock Settings"
"label": "Stock Settings",
"show_days": 1,
"show_seconds": 1
},
{
"default": "1",
"fieldname": "enable_perpetual_inventory",
"fieldtype": "Check",
"label": "Enable Perpetual Inventory"
"label": "Enable Perpetual Inventory",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_inventory_account",
"fieldtype": "Link",
"label": "Default Inventory Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "stock_adjustment_account",
@ -513,11 +632,15 @@
"ignore_user_permissions": 1,
"label": "Stock Adjustment Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_32",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "stock_received_but_not_billed",
@ -525,7 +648,9 @@
"ignore_user_permissions": 1,
"label": "Stock Received But Not Billed",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "expenses_included_in_valuation",
@ -533,108 +658,144 @@
"ignore_user_permissions": 1,
"label": "Expenses Included In Valuation",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"collapsible": 1,
"fieldname": "fixed_asset_depreciation_settings",
"fieldtype": "Section Break",
"label": "Fixed Asset Depreciation Settings"
"label": "Fixed Asset Depreciation Settings",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "accumulated_depreciation_account",
"fieldtype": "Link",
"label": "Accumulated Depreciation Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "depreciation_expense_account",
"fieldtype": "Link",
"label": "Depreciation Expense Account",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "series_for_depreciation_entry",
"fieldtype": "Data",
"label": "Series for Asset Depreciation Entry (Journal Entry)"
"label": "Series for Asset Depreciation Entry (Journal Entry)",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "expenses_included_in_asset_valuation",
"fieldtype": "Link",
"label": "Expenses Included In Asset Valuation",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_40",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "disposal_account",
"fieldtype": "Link",
"label": "Gain/Loss Account on Asset Disposal",
"no_copy": 1,
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "depreciation_cost_center",
"fieldtype": "Link",
"label": "Asset Depreciation Cost Center",
"no_copy": 1,
"options": "Cost Center"
"options": "Cost Center",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "capital_work_in_progress_account",
"fieldtype": "Link",
"label": "Capital Work In Progress Account",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "asset_received_but_not_billed",
"fieldtype": "Link",
"label": "Asset Received But Not Billed",
"options": "Account"
"options": "Account",
"show_days": 1,
"show_seconds": 1
},
{
"collapsible": 1,
"fieldname": "budget_detail",
"fieldtype": "Section Break",
"label": "Budget Detail"
"label": "Budget Detail",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "exception_budget_approver_role",
"fieldtype": "Link",
"label": "Exception Budget Approver Role",
"options": "Role"
"options": "Role",
"show_days": 1,
"show_seconds": 1
},
{
"collapsible": 1,
"description": "For reference only.",
"fieldname": "company_info",
"fieldtype": "Section Break",
"label": "Company Info"
"label": "Company Info",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "date_of_incorporation",
"fieldtype": "Date",
"label": "Date of Incorporation"
"label": "Date of Incorporation",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "address_html",
"fieldtype": "HTML"
"fieldtype": "HTML",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
"depends_on": "eval:doc.date_of_incorporation",
"fieldname": "date_of_commencement",
"fieldtype": "Date",
"label": "Date of Commencement"
"label": "Date of Commencement",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "phone_no",
@ -642,7 +803,9 @@
"label": "Phone No",
"oldfieldname": "phone_no",
"oldfieldtype": "Data",
"options": "Phone"
"options": "Phone",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "fax",
@ -650,7 +813,9 @@
"label": "Fax",
"oldfieldname": "fax",
"oldfieldtype": "Data",
"options": "Phone"
"options": "Phone",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "email",
@ -658,19 +823,25 @@
"label": "Email",
"oldfieldname": "email",
"oldfieldtype": "Data",
"options": "Email"
"options": "Email",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "website",
"fieldtype": "Data",
"label": "Website",
"oldfieldname": "website",
"oldfieldtype": "Data"
"oldfieldtype": "Data",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "registration_info",
"fieldtype": "Section Break",
"oldfieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
@ -679,12 +850,16 @@
"fieldtype": "Code",
"label": "Registration Details",
"oldfieldname": "registration_details",
"oldfieldtype": "Code"
"oldfieldtype": "Code",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "delete_company_transactions",
"fieldtype": "Button",
"label": "Delete Company Transactions"
"label": "Delete Company Transactions",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "lft",
@ -693,7 +868,9 @@
"label": "Lft",
"print_hide": 1,
"read_only": 1,
"search_index": 1
"search_index": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "rgt",
@ -702,7 +879,9 @@
"label": "Rgt",
"print_hide": 1,
"read_only": 1,
"search_index": 1
"search_index": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "old_parent",
@ -710,19 +889,35 @@
"hidden": 1,
"label": "old_parent",
"print_hide": 1,
"read_only": 1
"read_only": 1,
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_selling_terms",
"fieldtype": "Link",
"label": "Default Selling Terms",
"options": "Terms and Conditions"
"options": "Terms and Conditions",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_buying_terms",
"fieldtype": "Link",
"label": "Default Buying Terms",
"options": "Terms and Conditions"
"options": "Terms and Conditions",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "service_received_but_not_billed",
"fieldtype": "Link",
"ignore_user_permissions": 1,
"label": "Service Received But Not Billed",
"no_copy": 1,
"options": "Account",
"show_days": 1,
"show_seconds": 1
}
],
"icon": "fa fa-building",
@ -730,7 +925,7 @@
"image_field": "company_logo",
"is_tree": 1,
"links": [],
"modified": "2020-03-21 18:09:53.534211",
"modified": "2020-06-11 15:32:59.147735",
"modified_by": "Administrator",
"module": "Setup",
"name": "Company",

View File

@ -211,6 +211,8 @@ class PurchaseReceipt(BuyingController):
stock_rbnb = self.get_company_default("stock_received_but_not_billed")
landed_cost_entries = get_item_account_wise_additional_cost(self.name)
expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
service_received_but_not_billed_account = self.get_company_default("service_received_but_not_billed")
auto_accounting_for_non_stock_items = cint(frappe.db.get_single_value('Stock Settings', 'enable_perpetual_inventory_for_non_stock_items'))
gl_entries = []
warehouse_with_no_account = []
@ -301,6 +303,31 @@ class PurchaseReceipt(BuyingController):
elif d.warehouse not in warehouse_with_no_account or \
d.rejected_warehouse not in warehouse_with_no_account:
warehouse_with_no_account.append(d.warehouse)
elif d.item_code not in stock_items and flt(d.qty) and auto_accounting_for_non_stock_items:
credit_currency = get_account_currency(service_received_but_not_billed_account)
gl_entries.append(self.get_gl_dict({
"account": service_received_but_not_billed_account,
"against": d.expense_account,
"cost_center": d.cost_center,
"remarks": self.get("remarks") or _("Accounting Entry for Service"),
"project": d.project,
"credit": d.amount,
"voucher_detail_no": d.name
}, credit_currency, item=d))
debit_currency = get_account_currency(d.expense_account)
gl_entries.append(self.get_gl_dict({
"account": d.expense_account,
"against": service_received_but_not_billed_account,
"cost_center": d.cost_center,
"remarks": self.get("remarks") or _("Accounting Entry for Service"),
"project": d.project,
"debit": d.amount,
"voucher_detail_no": d.name
}, debit_currency, item=d))
self.get_asset_gl_entry(gl_entries)
# Cost center-wise amount breakup for other charges included for valuation

View File

@ -16,6 +16,7 @@
"action_if_quality_inspection_is_not_submitted",
"show_barcode_field",
"clean_description_html",
"enable_perpetual_inventory_for_non_stock_items",
"section_break_7",
"auto_insert_price_list_rate_if_missing",
"allow_negative_stock",
@ -43,180 +44,248 @@
"fieldtype": "Select",
"in_list_view": 1,
"label": "Item Naming By",
"options": "Item Code\nNaming Series"
"options": "Item Code\nNaming Series",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "item_group",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Default Item Group",
"options": "Item Group"
"options": "Item Group",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "stock_uom",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Default Stock UOM",
"options": "UOM"
"options": "UOM",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "default_warehouse",
"fieldtype": "Link",
"label": "Default Warehouse",
"options": "Warehouse"
"options": "Warehouse",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "sample_retention_warehouse",
"fieldtype": "Link",
"label": "Sample Retention Warehouse",
"options": "Warehouse"
"options": "Warehouse",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_4",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "valuation_method",
"fieldtype": "Select",
"label": "Default Valuation Method",
"options": "FIFO\nMoving Average"
"options": "FIFO\nMoving Average",
"show_days": 1,
"show_seconds": 1
},
{
"description": "Percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to receive 110 units.",
"fieldname": "over_delivery_receipt_allowance",
"fieldtype": "Float",
"label": "Over Delivery/Receipt Allowance (%)"
"label": "Over Delivery/Receipt Allowance (%)",
"show_days": 1,
"show_seconds": 1
},
{
"default": "Stop",
"fieldname": "action_if_quality_inspection_is_not_submitted",
"fieldtype": "Select",
"label": "Action if Quality inspection is not submitted",
"options": "Stop\nWarn"
"options": "Stop\nWarn",
"show_days": 1,
"show_seconds": 1
},
{
"default": "1",
"fieldname": "show_barcode_field",
"fieldtype": "Check",
"label": "Show Barcode Field"
"label": "Show Barcode Field",
"show_days": 1,
"show_seconds": 1
},
{
"default": "1",
"fieldname": "clean_description_html",
"fieldtype": "Check",
"label": "Convert Item Description to Clean HTML"
"label": "Convert Item Description to Clean HTML",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "section_break_7",
"fieldtype": "Section Break"
"fieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "auto_insert_price_list_rate_if_missing",
"fieldtype": "Check",
"label": "Auto insert Price List rate if missing"
"label": "Auto insert Price List rate if missing",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "allow_negative_stock",
"fieldtype": "Check",
"label": "Allow Negative Stock"
"label": "Allow Negative Stock",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "column_break_10",
"fieldtype": "Column Break"
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
},
{
"default": "1",
"fieldname": "automatically_set_serial_nos_based_on_fifo",
"fieldtype": "Check",
"label": "Automatically Set Serial Nos based on FIFO"
"label": "Automatically Set Serial Nos based on FIFO",
"show_days": 1,
"show_seconds": 1
},
{
"default": "1",
"fieldname": "set_qty_in_transactions_based_on_serial_no_input",
"fieldtype": "Check",
"label": "Set Qty in Transactions based on Serial No Input"
"label": "Set Qty in Transactions based on Serial No Input",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "auto_material_request",
"fieldtype": "Section Break",
"label": "Auto Material Request"
"label": "Auto Material Request",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "auto_indent",
"fieldtype": "Check",
"label": "Raise Material Request when stock reaches re-order level"
"label": "Raise Material Request when stock reaches re-order level",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "reorder_email_notify",
"fieldtype": "Check",
"label": "Notify by Email on creation of automatic Material Request"
"label": "Notify by Email on creation of automatic Material Request",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "freeze_stock_entries",
"fieldtype": "Section Break",
"label": "Freeze Stock Entries"
"label": "Freeze Stock Entries",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "stock_frozen_upto",
"fieldtype": "Date",
"label": "Stock Frozen Upto"
"label": "Stock Frozen Upto",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "stock_frozen_upto_days",
"fieldtype": "Int",
"label": "Freeze Stocks Older Than [Days]"
"label": "Freeze Stocks Older Than [Days]",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "stock_auth_role",
"fieldtype": "Link",
"label": "Role Allowed to edit frozen stock",
"options": "Role"
"options": "Role",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "batch_id_sb",
"fieldtype": "Section Break",
"label": "Batch Identification"
"label": "Batch Identification",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "use_naming_series",
"fieldtype": "Check",
"label": "Use Naming Series"
"label": "Use Naming Series",
"show_days": 1,
"show_seconds": 1
},
{
"default": "BATCH-",
"depends_on": "eval:doc.use_naming_series==1",
"fieldname": "naming_series_prefix",
"fieldtype": "Data",
"label": "Naming Series Prefix"
"label": "Naming Series Prefix",
"show_days": 1,
"show_seconds": 1
},
{
"fieldname": "inter_warehouse_transfer_settings_section",
"fieldtype": "Section Break",
"label": "Inter Warehouse Transfer Settings"
"label": "Inter Warehouse Transfer Settings",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "allow_from_dn",
"fieldtype": "Check",
"label": "Allow Material Transfer From Delivery Note and Sales Invoice"
"label": "Allow Material Transfer From Delivery Note and Sales Invoice",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "allow_from_pr",
"fieldtype": "Check",
"label": "Allow Material Transfer From Purchase Receipt and Purchase Invoice"
"label": "Allow Material Transfer From Purchase Receipt and Purchase Invoice",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "enable_perpetual_inventory_for_non_stock_items",
"fieldtype": "Check",
"label": "Enable Perpetual Inventory For Non Stock Items",
"show_days": 1,
"show_seconds": 1
}
],
"icon": "icon-cog",
"idx": 1,
"issingle": 1,
"links": [],
"modified": "2020-04-01 18:11:25.417678",
"modified": "2020-06-11 15:10:41.211638",
"modified_by": "Administrator",
"module": "Stock",
"name": "Stock Settings",