From 3b615528362aca030888006853660650dba61d17 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 25 Sep 2017 11:27:39 +0530 Subject: [PATCH] Revert "Advance against expense claim (#10632)" (#10877) This reverts commit cdd6ded790cb31a44acb70c219cde0d30da09bde. --- .../doctype/journal_entry/journal_entry.py | 19 +- .../doctype/payment_entry/payment_entry.py | 25 +- .../payment_entry/test_payment_entry.py | 3 +- .../advance_payment_required.png | Bin 27729 -> 0 bytes .../company_advance_account.png | Bin 21688 -> 0 bytes .../human-resources/make_advance_payment.png | Bin 29998 -> 0 bytes .../en/human-resources/expense-claim.md | 24 - erpnext/hr/doctype/employee/employee.json | 6 +- .../hr/doctype/expense_claim/expense_claim.js | 126 +- .../doctype/expense_claim/expense_claim.json | 101 +- .../hr/doctype/expense_claim/expense_claim.py | 119 +- .../expense_claim/test_expense_claim.py | 92 +- erpnext/setup/doctype/company/company.js | 1 - erpnext/setup/doctype/company/company.json | 3146 ++++++++--------- 14 files changed, 1676 insertions(+), 1986 deletions(-) delete mode 100644 erpnext/docs/assets/img/human-resources/advance_payment_required.png delete mode 100644 erpnext/docs/assets/img/human-resources/company_advance_account.png delete mode 100644 erpnext/docs/assets/img/human-resources/make_advance_payment.png diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 88d10f4871..375d85d1b7 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -8,7 +8,7 @@ from frappe import msgprint, _, scrub from erpnext.controllers.accounts_controller import AccountsController from erpnext.accounts.utils import get_balance_on, get_account_currency from erpnext.accounts.party import get_party_account -from erpnext.hr.doctype.expense_claim.expense_claim import update_paid_amount +from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount from erpnext.hr.doctype.employee_loan.employee_loan import update_disbursement_status class JournalEntry(AccountsController): @@ -215,8 +215,8 @@ class JournalEntry(AccountsController): if d.reference_type in ("Sales Invoice", "Purchase Invoice"): if (against_voucher[0] != d.party or against_voucher[1] != d.account): frappe.throw(_("Row {0}: Party / Account does not match with {1} / {2} in {3} {4}") - .format(d.idx, field_dict.get(d.reference_type)[0], - field_dict.get(d.reference_type)[1], d.reference_type, d.reference_name)) + .format(d.idx, field_dict.get(d.reference_type)[0], field_dict.get(d.reference_type)[1], + d.reference_type, d.reference_name)) # check if party matches for Sales / Purchase Order if d.reference_type in ("Sales Order", "Purchase Order"): @@ -225,17 +225,6 @@ class JournalEntry(AccountsController): frappe.throw(_("Row {0}: {1} {2} does not match with {3}") \ .format(d.idx, d.party_type, d.party, d.reference_type)) - if d.reference_type == "Expense Claim": - ref_doc = frappe.get_doc("Expense Claim", d.reference_name) - if ref_doc.employee != d.party: - frappe.throw(_("Row {0}# Party must be {1}, same as Expense Claim {2}") - .format(d.idx, ref_doc.employee, d.reference_name)) - - account_field = "advance_account" if ref_doc.docstatus==0 else "payable_account" - if ref_doc.get(account_field) != d.account: - frappe.throw(_("Row {0}# Account must be {1}, same as Expense Claim {2}") - .format(d.idx, ref_doc.get(account_field), d.reference_name)) - self.validate_orders() self.validate_invoices() @@ -527,7 +516,7 @@ class JournalEntry(AccountsController): for d in self.accounts: if d.reference_type=="Expense Claim" and d.reference_name: doc = frappe.get_doc("Expense Claim", d.reference_name) - update_paid_amount(doc, d.account) + update_reimbursed_amount(doc) def update_employee_loan(self): for d in self.accounts: diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 626e81282d..31869fb99c 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -12,7 +12,7 @@ from erpnext.accounts.doctype.journal_entry.journal_entry \ import get_average_exchange_rate, get_default_bank_cash_account from erpnext.setup.utils import get_exchange_rate from erpnext.accounts.general_ledger import make_gl_entries -from erpnext.hr.doctype.expense_claim.expense_claim import update_paid_amount +from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount from erpnext.controllers.accounts_controller import AccountsController class InvalidPaymentEntry(ValidationError): pass @@ -219,20 +219,15 @@ class PaymentEntry(AccountsController): elif self.party_type=="Supplier": ref_party_account = ref_doc.credit_to elif self.party_type=="Employee": - ref_party_account = ref_doc.payable_account \ - if ref_doc.docstatus==1 else ref_doc.advance_account + ref_party_account = ref_doc.payable_account if ref_party_account != self.party_account: frappe.throw(_("{0} {1} is associated with {2}, but Party Account is {3}") .format(d.reference_doctype, d.reference_name, ref_party_account, self.party_account)) if ref_doc.docstatus != 1: - if d.reference_doctype!="Expense Claim": - frappe.throw(_("{0} {1} must be submitted") - .format(d.reference_doctype, d.reference_name)) - elif not ref_doc.advance_required: - frappe.throw(_("Advance Payment Required should be checked in Expense Claim {0}") - .format(d.reference_name)) + frappe.throw(_("{0} {1} must be submitted") + .format(d.reference_doctype, d.reference_name)) def validate_journal_entry(self): for d in self.get("references"): @@ -486,11 +481,11 @@ class PaymentEntry(AccountsController): frappe.get_doc(d.reference_doctype, d.reference_name).set_total_advance_paid() def update_expense_claim(self): - if self.payment_type =="Pay" and self.party: + if self.payment_type in ("Pay") and self.party: for d in self.get("references"): if d.reference_doctype=="Expense Claim" and d.reference_name: doc = frappe.get_doc("Expense Claim", d.reference_name) - update_paid_amount(doc, self.paid_to) + update_reimbursed_amount(doc) def on_recurring(self, reference_doc, subscription_doc): self.reference_no = reference_doc.name @@ -702,8 +697,6 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= party_account = doc.debit_to elif dt == "Purchase Invoice": party_account = doc.credit_to - elif dt == "Expense Claim": - party_account = doc.payable_account if doc.docstatus==1 else doc.advance_account elif dt == "Fees": party_account = doc.receivable_account else: @@ -723,13 +716,11 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= if party_amount: grand_total = outstanding_amount = party_amount elif dt in ("Sales Invoice", "Purchase Invoice"): - grand_total = doc.base_grand_total \ - if party_account_currency == doc.company_currency else doc.grand_total + grand_total = doc.base_grand_total if party_account_currency == doc.company_currency else doc.grand_total outstanding_amount = doc.outstanding_amount elif dt in ("Expense Claim"): grand_total = doc.total_sanctioned_amount - outstanding_amount = flt(doc.total_sanctioned_amount) - flt(doc.total_amount_reimbursed) \ - - flt(doc.total_advance_paid) + outstanding_amount = doc.total_sanctioned_amount - doc.total_amount_reimbursed elif dt == "Fees": grand_total = doc.grand_total outstanding_amount = doc.outstanding_amount diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py index 442b399a91..60be20dd89 100644 --- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py @@ -86,8 +86,9 @@ class TestPaymentEntry(unittest.TestCase): self.assertEqual(outstanding_amount, 0) def test_payment_entry_against_ec(self): + payable = frappe.db.get_value('Company', "_Test Company", 'default_payable_account') - ec = make_expense_claim(300, 300, "Travel Expenses - _TC", "_Test Company", payable) + ec = make_expense_claim(payable, 300, 300, "_Test Company","Travel Expenses - _TC") pe = get_payment_entry("Expense Claim", ec.name, bank_account="_Test Bank USD - _TC", bank_amount=300) pe.reference_no = "1" pe.reference_date = "2016-01-01" diff --git a/erpnext/docs/assets/img/human-resources/advance_payment_required.png b/erpnext/docs/assets/img/human-resources/advance_payment_required.png deleted file mode 100644 index 587aabac0285db1063381bd2074ac458829b69d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27729 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

2$CCqYjfiR`l3-rPoj@W%as7Sdy( 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%0AXvKp+*o&A_Lk$>ypzRh8&>)#8^DEq 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 -### Managing Advance Payments - -Sometimes an employee requires some advance payment before making expenses on behalf of the organisation. This can be managed from the Expense Claim - -First make sure that the Default Advance Account has been set in the Company Master: - -> Erpnext > Setup > Company - -Expense Claim - -When creating the Expense Claim, check the 'Advance Payment Required' option - -Expense Claim - -After the Expense Claim is Saved and Approved by the Expense Approver, Journal Entry for Advance Payment can be raised by the accountant or user with appropriate permissions. To do that, just click on: - -> Make > Advance Payment - -Expense Claim - -Note: Once the Expense Claim is Submitted, the button for making Advance Payment is no longer available. This is because expenses get booked on Submission of the Expense Claim and as such, the next logical step is settlement/reimbursement - -Advance Payments are expected to be made 'before' the actual expenditure gets booked and settlement/reimbursement should be done against the Employee's Advance Account after submission of the Expense Claim - ### Linking with Task & Project * To Link Expense Claim with Task or Project specify the Task or the Project while making an Expense Claim diff --git a/erpnext/hr/doctype/employee/employee.json b/erpnext/hr/doctype/employee/employee.json index 1de011f062..87f05377cd 100644 --- a/erpnext/hr/doctype/employee/employee.json +++ b/erpnext/hr/doctype/employee/employee.json @@ -442,7 +442,7 @@ "search_index": 0, "set_only_once": 0, "unique": 0 - }, + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -2432,7 +2432,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-07-11 14:30:13.694009", + "modified": "2017-06-13 14:29:13.694009", "modified_by": "Administrator", "module": "HR", "name": "Employee", @@ -2511,4 +2511,4 @@ "title_field": "employee_name", "track_changes": 1, "track_seen": 0 -} +} \ No newline at end of file diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js index e9b53b931f..0bd89112a6 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.js +++ b/erpnext/hr/doctype/expense_claim/expense_claim.js @@ -34,6 +34,9 @@ erpnext.hr.ExpenseClaimController = frappe.ui.form.Controller.extend({ $.extend(cur_frm.cscript, new erpnext.hr.ExpenseClaimController({frm: cur_frm})); +cur_frm.add_fetch('employee', 'company', 'company'); +cur_frm.add_fetch('employee','employee_name','employee_name'); + cur_frm.cscript.onload = function(doc) { if(!doc.approval_status) cur_frm.set_value("approval_status", "Draft"); @@ -68,6 +71,34 @@ cur_frm.cscript.clear_sanctioned = function(doc) { refresh_many(['sanctioned_amount', 'total_sanctioned_amount']); }; +cur_frm.cscript.refresh = function(doc) { + cur_frm.cscript.set_help(doc); + + if(!doc.__islocal) { + cur_frm.toggle_enable("exp_approver", doc.approval_status=="Draft"); + cur_frm.toggle_enable("approval_status", (doc.exp_approver==frappe.session.user && doc.docstatus==0)); + + if (doc.docstatus==0 && doc.exp_approver==frappe.session.user && doc.approval_status=="Approved") + cur_frm.savesubmit(); + + if (doc.docstatus===1 && doc.approval_status=="Approved") { + /* eslint-disable */ + // no idea how `me` works here + if (cint(doc.total_amount_reimbursed) > 0 && frappe.model.can_read("Journal Entry")) { + cur_frm.add_custom_button(__('Bank Entries'), function() { + frappe.route_options = { + "Journal Entry Account.reference_type": me.frm.doc.doctype, + "Journal Entry Account.reference_name": me.frm.doc.name, + company: me.frm.doc.company + }; + frappe.set_route("List", "Journal Entry"); + }, __("View")); + } + /* eslint-enable */ + } + } +}; + cur_frm.cscript.set_help = function(doc) { cur_frm.set_intro(""); if(doc.__islocal && !in_list(frappe.user_roles, "HR User")) { @@ -123,75 +154,30 @@ erpnext.expense_claim = { frappe.ui.form.on("Expense Claim", { setup: function(frm) { frm.trigger("set_query_for_cost_center"); - frm.trigger("set_query_for_advance_account"); frm.trigger("set_query_for_payable_account"); frm.add_fetch("company", "cost_center", "cost_center"); - frm.add_fetch("company", "default_advance_account", "advance_account"); frm.add_fetch("company", "default_payable_account", "payable_account"); - frm.add_fetch('employee', 'company', 'company'); - frm.add_fetch('employee','employee_name','employee_name'); }, refresh: function(frm) { - cur_frm.cscript.set_help(frm.doc); + frm.trigger("toggle_fields"); - if(!frm.doc.__islocal) { - frm.trigger("toggle_fields"); - frm.toggle_enable("exp_approver", frm.doc.approval_status=="Draft"); - frm.toggle_enable("approval_status", - (frm.doc.exp_approver==frappe.session.user && frm.doc.docstatus==0)); - frm.toggle_enable("employee", !(frm.doc.status=="Approved" || frm.doc.total_advance_paid)); - frm.toggle_enable("advance_account", !frm.doc.total_advance_paid); - frm.toggle_enable("company", !(frm.doc.status=="Approved" || frm.doc.total_advance_paid)); + if(frm.doc.docstatus == 1 && frm.doc.approval_status == 'Approved') { + frm.add_custom_button(__('Accounting Ledger'), function() { + frappe.route_options = { + voucher_no: frm.doc.name, + company: frm.doc.company, + group_by_voucher: false + }; + frappe.set_route("query-report", "General Ledger"); + }, __("View")); + } - if (frm.doc.docstatus==0 && frm.doc.exp_approver==frappe.session.user - && frm.doc.approval_status=="Approved" && frm.doc.advance_required==0) { - frm.savesubmit(); - } - - if (frm.doc.docstatus==0 && frm.doc.approval_status=="Approved" - && frm.doc.advance_required - && cint(frm.doc.total_advance_paid) < cint(frm.doc.total_sanctioned_amount) - && frappe.model.can_create("Payment Entry")) { - - frm.add_custom_button(__('Advance Payment'), - function() { frm.events.make_payment_entry(frm); }, __("Make")); - frm.page.set_inner_btn_group_as_primary(__("Make")); - } - - if (frm.doc.docstatus===1 && frm.doc.approval_status=="Approved" - && (cint(frm.doc.total_amount_reimbursed) < cint(frm.doc.total_sanctioned_amount)) - && frappe.model.can_create("Payment Entry")) { - frm.add_custom_button(__('Payment'), - function() { frm.events.make_payment_entry(frm); }, __("Make")); - } - - if(frm.doc.docstatus == 1 && frm.doc.approval_status == 'Approved') { - frm.add_custom_button(__('Accounting Ledger'), function() { - frappe.route_options = { - voucher_no: frm.doc.name, - company: frm.doc.company, - group_by_voucher: false - }; - frappe.set_route("query-report", "General Ledger"); - }, __("View")); - } - - if (frm.doc.docstatus===1 && frm.doc.approval_status=="Approved") { - /* eslint-disable */ - // no idea how `me` works here - if (cint(frm.doc.total_amount_reimbursed) > 0 && frappe.model.can_read("Journal Entry")) { - frm.add_custom_button(__('Bank Entries'), function() { - frappe.route_options = { - "Journal Entry Account.reference_type": frm.doc.doctype, - "Journal Entry Account.reference_name": frm.doc.name, - company: frm.doc.company - }; - frappe.set_route("List", "Journal Entry"); - }, __("View")); - } - /* eslint-enable */ - } + if (frm.doc.docstatus===1 && frm.doc.approval_status=="Approved" + && (cint(frm.doc.total_amount_reimbursed) < cint(frm.doc.total_sanctioned_amount)) + && frappe.model.can_create("Payment Entry")) { + frm.add_custom_button(__('Payment'), + function() { frm.events.make_payment_entry(frm); }, __("Make")); } }, @@ -212,11 +198,7 @@ frappe.ui.form.on("Expense Claim", { } }); }, - - advance_required: function(frm) { - frm.refresh(); - }, - + set_query_for_cost_center: function(frm) { frm.fields_dict["cost_center"].get_query = function() { return { @@ -227,18 +209,6 @@ frappe.ui.form.on("Expense Claim", { }; }, - set_query_for_advance_account: function(frm) { - frm.fields_dict["advance_account"].get_query = function() { - return { - filters: { - "report_type": "Balance Sheet", - "account_type": "Receivable", - "company": frm.doc.company - } - }; - }; - }, - set_query_for_payable_account: function(frm) { frm.fields_dict["payable_account"].get_query = function() { return { diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.json b/erpnext/hr/doctype/expense_claim/expense_claim.json index 40c3780fa9..5708c047f1 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.json +++ b/erpnext/hr/doctype/expense_claim/expense_claim.json @@ -171,37 +171,7 @@ "set_only_once": 0, "unique": 0, "width": "50%" - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "advance_required", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Advance Payment Required", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -575,38 +545,7 @@ "search_index": 0, "set_only_once": 0, "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "total_advance_paid", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Total Advance Paid", - "length": 0, - "no_copy": 1, - "options": "Company:company:default_currency", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -854,38 +793,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "", - "fieldname": "advance_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Advance Account", - "length": 0, - "no_copy": 0, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -1057,7 +964,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2017-07-17 15:48:23.255142", + "modified": "2017-07-17 15:47:23.255142", "modified_by": "Administrator", "module": "HR", "name": "Expense Claim", @@ -1159,4 +1066,4 @@ "title_field": "title", "track_changes": 0, "track_seen": 0 -} +} \ No newline at end of file diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py index 3e3b534eea..507d6a9752 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.py +++ b/erpnext/hr/doctype/expense_claim/expense_claim.py @@ -33,7 +33,6 @@ class ExpenseClaim(AccountsController): self.set_payable_account() self.set_cost_center() self.set_status() - self.validate_advance_payment() if self.task and not self.project: self.project = frappe.db.get_value("Task", self.task, "project") @@ -44,8 +43,7 @@ class ExpenseClaim(AccountsController): "2": "Cancelled" }[cstr(self.docstatus or 0)] - total_paid_amount = flt(self.total_amount_reimbursed) + flt(self.total_advance_paid) - if self.total_sanctioned_amount > 0 and self.total_sanctioned_amount == total_paid_amount \ + if self.total_sanctioned_amount > 0 and self.total_sanctioned_amount == self.total_amount_reimbursed \ and self.docstatus == 1 and self.approval_status == 'Approved': self.status = "Paid" elif self.total_sanctioned_amount > 0 and self.docstatus == 1 and self.approval_status == 'Approved': @@ -69,7 +67,7 @@ class ExpenseClaim(AccountsController): self.make_gl_entries() if self.is_paid: - update_paid_amount(self, self.payable_account) + update_reimbursed_amount(self) self.set_status() @@ -79,7 +77,7 @@ class ExpenseClaim(AccountsController): self.make_gl_entries(cancel=True) if self.is_paid: - update_paid_amount(self, self.payable_account) + update_reimbursed_amount(self) self.set_status() @@ -98,36 +96,19 @@ class ExpenseClaim(AccountsController): gl_entry = [] self.validate_account_details() - outstanding_amount = flt(self.total_sanctioned_amount) - flt(self.total_advance_paid) - # payable entry - if outstanding_amount: - gl_entry.append( - self.get_gl_dict({ - "account": self.payable_account, - "credit": outstanding_amount, - "credit_in_account_currency": outstanding_amount, - "against": ",".join([d.default_account for d in self.expenses]), - "party_type": "Employee", - "party": self.employee, - "against_voucher_type": self.doctype, - "against_voucher": self.name - }) - ) - - if self.total_advance_paid: - gl_entry.append( - self.get_gl_dict({ - "account": self.advance_account, - "credit": self.total_advance_paid, - "credit_in_account_currency": self.total_advance_paid, - "against": ",".join([d.default_account for d in self.expenses]), - "party_type": "Employee", - "party": self.employee, - "against_voucher_type": self.doctype, - "against_voucher": self.name - }) - ) + gl_entry.append( + self.get_gl_dict({ + "account": self.payable_account, + "credit": self.total_sanctioned_amount, + "credit_in_account_currency": self.total_sanctioned_amount, + "against": ",".join([d.default_account for d in self.expenses]), + "party_type": "Employee", + "party": self.employee, + "against_voucher_type": self.doctype, + "against_voucher": self.name + }) + ) # expense entries for data in self.expenses: @@ -141,15 +122,14 @@ class ExpenseClaim(AccountsController): }) ) - if self.is_paid and outstanding_amount: + if self.is_paid: # payment entry payment_account = get_bank_cash_account(self.mode_of_payment, self.company).get("account") - gl_entry.append( self.get_gl_dict({ "account": payment_account, - "credit": outstanding_amount, - "credit_in_account_currency": outstanding_amount, + "credit": self.total_sanctioned_amount, + "credit_in_account_currency": self.total_sanctioned_amount, "against": self.employee }) ) @@ -160,8 +140,8 @@ class ExpenseClaim(AccountsController): "party_type": "Employee", "party": self.employee, "against": payment_account, - "debit": outstanding_amount, - "debit_in_account_currency": outstanding_amount, + "debit": self.total_sanctioned_amount, + "debit_in_account_currency": self.total_sanctioned_amount, "against_voucher": self.name, "against_voucher_type": self.doctype, }) @@ -208,37 +188,18 @@ class ExpenseClaim(AccountsController): def set_expense_account(self): for expense in self.expenses: if not expense.default_account: - expense.default_account = get_expense_claim_account(expense.expense_type, - self.company)["account"] + expense.default_account = get_expense_claim_account(expense.expense_type, self.company)["account"] - def validate_advance_payment(self): - if self.advance_required: - if self.docstatus == 1 and not self.total_advance_paid: - frappe.throw(_("Advance payment required before submission of the Expense Claim")) - elif self.total_advance_paid: - frappe.throw(_("As advance payment already done, cannot unset 'Advance Payment Required'")) +def update_reimbursed_amount(doc): + amt = frappe.db.sql("""select ifnull(sum(debit_in_account_currency), 0) as amt + from `tabGL Entry` where against_voucher_type = 'Expense Claim' and against_voucher = %s + and party = %s """, (doc.name, doc.employee) ,as_dict=1)[0].amt -def update_paid_amount(doc, party_account): - paid_amount = frappe.db.sql(""" - select ifnull(sum(debit_in_account_currency), 0) as amount - from `tabGL Entry` - where - against_voucher_type = 'Expense Claim' and against_voucher = %s - and party = %s and account = %s - """, (doc.name, doc.employee, party_account) ,as_dict=1)[0].amount + doc.total_amount_reimbursed = amt + frappe.db.set_value("Expense Claim", doc.name , "total_amount_reimbursed", amt) - paid_amount_field = None - if party_account == doc.payable_account: - paid_amount_field = "total_amount_reimbursed" - elif party_account == doc.advance_account: - paid_amount_field = "total_advance_paid" - - if paid_amount_field: - doc.set(paid_amount_field, paid_amount) - frappe.db.set_value("Expense Claim", doc.name , paid_amount_field, paid_amount) - - doc.set_status() - frappe.db.set_value("Expense Claim", doc.name , "status", doc.status) + doc.set_status() + frappe.db.set_value("Expense Claim", doc.name , "status", doc.status) @frappe.whitelist() def get_expense_approver(doctype, txt, searchfield, start, page_len, filters): @@ -258,31 +219,25 @@ def make_bank_entry(dt, dn): if not default_bank_cash_account: default_bank_cash_account = get_default_bank_cash_account(expense_claim.company, "Cash") - if expense_claim.docstatus == 0: - party_account = expense_claim.advance_account - else: - party_account = expense_claim.payable_account - - payment_amount = flt(expense_claim.total_sanctioned_amount) \ - - flt(expense_claim.total_amount_reimbursed) - flt(expense_claim.total_advance_paid) - je = frappe.new_doc("Journal Entry") je.voucher_type = 'Bank Entry' je.company = expense_claim.company - je.remark = 'Advance ' if expense_claim.docstatus==0 else '' + 'Payment against Expense Claim: ' + dn; + je.remark = 'Payment against Expense Claim: ' + dn; je.append("accounts", { - "account": party_account, - "debit_in_account_currency": payment_amount, + "account": expense_claim.payable_account, + "debit_in_account_currency": flt(expense_claim.total_sanctioned_amount - expense_claim.total_amount_reimbursed), "reference_type": "Expense Claim", - "reference_name": expense_claim.name, "party_type": "Employee", - "party": expense_claim.employee + "party": expense_claim.employee, + "reference_name": expense_claim.name }) je.append("accounts", { "account": default_bank_cash_account.account, - "credit_in_account_currency": payment_amount, + "credit_in_account_currency": flt(expense_claim.total_sanctioned_amount - expense_claim.total_amount_reimbursed), + "reference_type": "Expense Claim", + "reference_name": expense_claim.name, "balance": default_bank_cash_account.balance, "account_currency": default_bank_cash_account.account_currency, "account_type": default_bank_cash_account.account_type diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.py b/erpnext/hr/doctype/expense_claim/test_expense_claim.py index c5e87073ed..b813537441 100644 --- a/erpnext/hr/doctype/expense_claim/test_expense_claim.py +++ b/erpnext/hr/doctype/expense_claim/test_expense_claim.py @@ -6,7 +6,6 @@ import frappe import unittest from frappe.utils import random_string, nowdate from erpnext.hr.doctype.expense_claim.expense_claim import make_bank_entry -from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry test_records = frappe.get_test_records('Expense Claim') @@ -23,35 +22,28 @@ class TestExpenseClaim(unittest.TestCase): [{ "title": "_Test Project Task 1", "status": "Open" }] }).save() - existing_claimed_amount = frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim") task_name = frappe.db.get_value("Task", {"project": "_Test Project 1"}) payable_account = get_payable_account("Wind Power LLC") - make_expense_claim(300, 200,"Travel Expenses - WP", "Wind Power LLC", - payable_account, "_Test Project 1", task_name) + make_expense_claim(payable_account, 300, 200, "Wind Power LLC","Travel Expenses - WP", "_Test Project 1", task_name) self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200) - self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), - existing_claimed_amount + 200) + self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200) - expense_claim2 = make_expense_claim(600, 500, "Travel Expenses - WP", "Wind Power LLC", - payable_account, "_Test Project 1", task_name) + expense_claim2 = make_expense_claim(payable_account, 600, 500, "Wind Power LLC", "Travel Expenses - WP","_Test Project 1", task_name) self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 700) - self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), - existing_claimed_amount + 700) + self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 700) expense_claim2.cancel() frappe.delete_doc("Expense Claim", expense_claim2.name) self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200) - self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), - existing_claimed_amount+200) + self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200) def test_expense_claim_status(self): payable_account = get_payable_account("Wind Power LLC") - expense_claim = make_expense_claim(300, 200, "Travel Expenses - WP", - "Wind Power LLC", payable_account) + expense_claim = make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP") je_dict = make_bank_entry("Expense Claim", expense_claim.name) je = frappe.get_doc(je_dict) @@ -69,8 +61,7 @@ class TestExpenseClaim(unittest.TestCase): def test_expense_claim_gl_entry(self): payable_account = get_payable_account("Wind Power LLC") - expense_claim = make_expense_claim(300, 200, "Travel Expenses - WP", - "Wind Power LLC", payable_account) + expense_claim = make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP") expense_claim.submit() gl_entries = frappe.db.sql("""select account, debit, credit @@ -107,82 +98,25 @@ class TestExpenseClaim(unittest.TestCase): gl_entry = frappe.get_all('GL Entry', {'voucher_type': 'Expense Claim', 'voucher_no': expense_claim.name}) self.assertEquals(len(gl_entry), 0) - def test_advance_payment(self): - expense_claim = make_expense_claim(150, 150, "Travel Expenses - _TC", - advance_required=1, submit=False) - - payment_entry = get_payment_entry("Expense Claim", expense_claim.name, bank_amount=50) - payment_entry.received_amount = payment_entry.paid_amount = 50 - payment_entry.get("references")[0].allocated_amount = 50 - payment_entry.reference_no = "1" - payment_entry.reference_date = "2016-01-01" - payment_entry.save() - payment_entry.submit() - - expense_claim.load_from_db() - self.assertEqual(expense_claim.total_advance_paid, 50) - - expense_claim.submit() - payment_entry = get_payment_entry("Expense Claim", expense_claim.name) - payment_entry.reference_no = "1" - payment_entry.reference_date = "2016-01-01" - payment_entry.save() - payment_entry.submit() - - expense_claim.load_from_db() - self.assertEqual(expense_claim.total_advance_paid, 50) - self.assertEqual(expense_claim.total_amount_reimbursed, 100) - - gl_entries = frappe.db.sql("""select account, debit, credit - from `tabGL Entry` where voucher_type='Expense Claim' and voucher_no=%s - order by account asc""", expense_claim.name, as_dict=1) - - self.assertTrue(gl_entries) - - expected_values = dict((d[0], d) for d in [ - [get_advance_account("_Test Company"), 0.0, 50.0], - [get_payable_account("_Test Company"), 0.0, 100.0], - ["Travel Expenses - _TC", 150.0, 0.0] - ]) - - for gle in gl_entries: - self.assertEquals(expected_values[gle.account][0], gle.account) - self.assertEquals(expected_values[gle.account][1], gle.debit) - self.assertEquals(expected_values[gle.account][2], gle.credit) - def get_payable_account(company): return frappe.db.get_value('Company', company, 'default_payable_account') -def get_advance_account(company): - return frappe.db.get_value('Company', company, 'default_advance_account') \ - or frappe.db.get_value('Company', company, 'default_receivable_account') - -def make_expense_claim(claim_amount, sanctioned_amount, expense_account, company="_Test Company", - payable_account=None, project=None, task_name=None, - advance_required=0, advance_account=None, submit=True): +def make_expense_claim(payable_account,claim_amount, sanctioned_amount, company, account, project=None, task_name=None): expense_claim = frappe.get_doc({ "doctype": "Expense Claim", "employee": "_T-Employee-0001", - "payable_account": payable_account or get_payable_account(company), - "advance_account": advance_account or get_advance_account(company), - "advance_required": advance_required, + "payable_account": payable_account, "approval_status": "Approved", "company": company, - "expenses": [{ - "expense_type": "Travel", - "default_account": expense_account, - "claim_amount": claim_amount, - "sanctioned_amount": sanctioned_amount - }] - }) + "expenses": + [{ "expense_type": "Travel", "default_account": account, "claim_amount": claim_amount, "sanctioned_amount": sanctioned_amount }] + }) if project: expense_claim.project = project if task_name: expense_claim.task = task_name - expense_claim.save() - if submit: - expense_claim.submit() + expense_claim.submit() return expense_claim diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js index 7c4c24f67b..c15d737a31 100644 --- a/erpnext/setup/doctype/company/company.js +++ b/erpnext/setup/doctype/company/company.js @@ -149,7 +149,6 @@ erpnext.company.setup_queries = function(frm) { ["default_bank_account", {"account_type": "Bank"}], ["default_cash_account", {"account_type": "Cash"}], ["default_receivable_account", {"account_type": "Receivable"}], - ["default_advance_account", {"account_type": "Receivable"}], ["default_payable_account", {"account_type": "Payable"}], ["default_expense_account", {"root_type": "Expense"}], ["default_income_account", {"root_type": "Income"}], diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json index 2e0f5170b7..ec83705a43 100644 --- a/erpnext/setup/doctype/company/company.json +++ b/erpnext/setup/doctype/company/company.json @@ -1,198 +1,198 @@ { - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 1, - "allow_rename": 1, - "autoname": "field:company_name", - "beta": 0, - "creation": "2013-04-10 08:35:39", - "custom": 0, - "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.", - "docstatus": 0, - "doctype": "DocType", - "document_type": "Setup", - "editable_grid": 0, - "engine": "InnoDB", + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 1, + "allow_rename": 1, + "autoname": "field:company_name", + "beta": 0, + "creation": "2013-04-10 08:35:39", + "custom": 0, + "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.", + "docstatus": 0, + "doctype": "DocType", + "document_type": "Setup", + "editable_grid": 0, + "engine": "InnoDB", "fields": [ { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "details", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "", - "length": 0, - "no_copy": 0, - "oldfieldtype": "Section Break", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "details", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "", + "length": 0, + "no_copy": 0, + "oldfieldtype": "Section Break", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "company_name", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Company", - "length": 0, - "no_copy": 0, - "oldfieldname": "company_name", - "oldfieldtype": "Data", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "company_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Company", + "length": 0, + "no_copy": 0, + "oldfieldname": "company_name", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "", - "fieldname": "abbr", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Abbr", - "length": 0, - "no_copy": 0, - "oldfieldname": "abbr", - "oldfieldtype": "Data", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "", + "fieldname": "abbr", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Abbr", + "length": 0, + "no_copy": 0, + "oldfieldname": "abbr", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")", - "fieldname": "change_abbr", - "fieldtype": "Button", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Change Abbreviation", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")", + "fieldname": "change_abbr", + "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Change Abbreviation", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "cb0", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "cb0", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "domain", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Domain", - "length": 0, - "no_copy": 0, - "options": "Distribution\nManufacturing\nRetail\nServices\nEducation\nHealthcare\nOther", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "domain", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Domain", + "length": 0, + "no_copy": 0, + "options": "Distribution\nManufacturing\nRetail\nServices\nEducation\nHealthcare\nOther", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 }, { @@ -650,1364 +650,1332 @@ "search_index": 0, "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "default_settings", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Accounts Settings", - "length": 0, - "no_copy": 0, - "oldfieldtype": "Section Break", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "default_settings", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Accounts Settings", + "length": 0, + "no_copy": 0, + "oldfieldtype": "Section Break", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_bank_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Bank Account", - "length": 0, - "no_copy": 1, - "oldfieldname": "default_bank_account", - "oldfieldtype": "Link", - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_bank_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Bank Account", + "length": 0, + "no_copy": 1, + "oldfieldname": "default_bank_account", + "oldfieldtype": "Link", + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_cash_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Cash Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_cash_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Cash Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_receivable_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Receivable Account", - "length": 0, - "no_copy": 1, - "oldfieldname": "receivables_group", - "oldfieldtype": "Link", - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_receivable_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Receivable Account", + "length": 0, + "no_copy": 1, + "oldfieldname": "receivables_group", + "oldfieldtype": "Link", + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "round_off_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Round Off Account", - "length": 0, - "no_copy": 0, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "round_off_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Round Off Account", + "length": 0, + "no_copy": 0, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "write_off_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Write Off Account", - "length": 0, - "no_copy": 0, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "write_off_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Write Off Account", + "length": 0, + "no_copy": 0, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "exchange_gain_loss_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Exchange Gain / Loss Account", - "length": 0, - "no_copy": 0, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "exchange_gain_loss_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Exchange Gain / Loss Account", + "length": 0, + "no_copy": 0, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break0", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "oldfieldtype": "Column Break", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break0", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "oldfieldtype": "Column Break", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_advance_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Advance Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_payable_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Payable Account", + "length": 0, + "no_copy": 1, + "oldfieldname": "payables_group", + "oldfieldtype": "Link", + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_payable_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Payable Account", - "length": 0, - "no_copy": 1, - "oldfieldname": "payables_group", - "oldfieldtype": "Link", - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_expense_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Cost of Goods Sold Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_expense_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Cost of Goods Sold Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_income_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Income Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_income_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Income Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "default_payroll_payable_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Payroll Payable Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "default_payroll_payable_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Payroll Payable Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "round_off_cost_center", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Round Off Cost Center", + "length": 0, + "no_copy": 0, + "options": "Cost Center", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "round_off_cost_center", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Round Off Cost Center", - "length": 0, - "no_copy": 0, - "options": "Cost Center", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_22", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_22", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "cost_center", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Cost Center", + "length": 0, + "no_copy": 1, + "options": "Cost Center", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "cost_center", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Cost Center", - "length": 0, - "no_copy": 1, - "options": "Cost Center", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "credit_limit", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Credit Limit", + "length": 0, + "no_copy": 0, + "oldfieldname": "credit_limit", + "oldfieldtype": "Currency", + "options": "default_currency", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "credit_limit", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Credit Limit", - "length": 0, - "no_copy": 0, - "oldfieldname": "credit_limit", - "oldfieldtype": "Currency", - "options": "default_currency", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_26", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_26", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "credit_days_based_on", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Credit Days Based On", + "length": 0, + "no_copy": 0, + "options": "\nFixed Days\nLast Day of the Next Month", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "credit_days_based_on", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Credit Days Based On", - "length": 0, - "no_copy": 0, - "options": "\nFixed Days\nLast Day of the Next Month", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:(!doc.__islocal && doc.credit_days_based_on=='Fixed Days')", + "fieldname": "credit_days", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Credit Days", + "length": 0, + "no_copy": 0, + "oldfieldname": "credit_days", + "oldfieldtype": "Int", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:(!doc.__islocal && doc.credit_days_based_on=='Fixed Days')", - "fieldname": "credit_days", - "fieldtype": "Int", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Credit Days", - "length": 0, - "no_copy": 0, - "oldfieldname": "credit_days", - "oldfieldtype": "Int", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "auto_accounting_for_stock_settings", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Stock Settings", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "auto_accounting_for_stock_settings", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Stock Settings", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "1", + "fieldname": "enable_perpetual_inventory", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Enable Perpetual Inventory", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "1", - "fieldname": "enable_perpetual_inventory", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Enable Perpetual Inventory", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "default_inventory_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Default Inventory Account", + "length": 0, + "no_copy": 0, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "default_inventory_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Default Inventory Account", - "length": 0, - "no_copy": 0, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "stock_adjustment_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Stock Adjustment Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "stock_adjustment_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Stock Adjustment Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_32", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_32", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "stock_received_but_not_billed", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Stock Received But Not Billed", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "stock_received_but_not_billed", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Stock Received But Not Billed", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "expenses_included_in_valuation", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 1, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Expenses Included In Valuation", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "expenses_included_in_valuation", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 1, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Expenses Included In Valuation", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "fixed_asset_depreciation_settings", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Fixed Asset Depreciation Settings", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "fixed_asset_depreciation_settings", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Fixed Asset Depreciation Settings", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "accumulated_depreciation_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Accumulated Depreciation Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "accumulated_depreciation_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Accumulated Depreciation Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "depreciation_expense_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Depreciation Expense Account", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "depreciation_expense_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Depreciation Expense Account", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "series_for_depreciation_entry", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Series for Asset Depreciation Entry (Journal Entry)", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "series_for_depreciation_entry", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Series for Asset Depreciation Entry (Journal Entry)", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_40", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_40", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "disposal_account", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Gain/Loss Account on Asset Disposal", + "length": 0, + "no_copy": 1, + "options": "Account", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "disposal_account", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Gain/Loss Account on Asset Disposal", - "length": 0, - "no_copy": 1, - "options": "Account", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "depreciation_cost_center", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Asset Depreciation Cost Center", + "length": 0, + "no_copy": 1, + "options": "Cost Center", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "depreciation_cost_center", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Asset Depreciation Cost Center", - "length": 0, - "no_copy": 1, - "options": "Cost Center", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "For reference only.", + "fieldname": "company_info", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Company Info", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "For reference only.", - "fieldname": "company_info", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Company Info", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "address_html", + "fieldtype": "HTML", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "address_html", - "fieldtype": "HTML", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break1", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "oldfieldtype": "Column Break", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break1", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "oldfieldtype": "Column Break", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "phone_no", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Phone No", - "length": 0, - "no_copy": 0, - "oldfieldname": "phone_no", - "oldfieldtype": "Data", - "options": "Phone", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "phone_no", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Phone No", + "length": 0, + "no_copy": 0, + "oldfieldname": "phone_no", + "oldfieldtype": "Data", + "options": "Phone", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "fax", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Fax", - "length": 0, - "no_copy": 0, - "oldfieldname": "fax", - "oldfieldtype": "Data", - "options": "Phone", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "fax", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Fax", + "length": 0, + "no_copy": 0, + "oldfieldname": "fax", + "oldfieldtype": "Data", + "options": "Phone", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "email", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Email", - "length": 0, - "no_copy": 0, - "oldfieldname": "email", - "oldfieldtype": "Data", - "options": "Email", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "email", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Email", + "length": 0, + "no_copy": 0, + "oldfieldname": "email", + "oldfieldtype": "Data", + "options": "Email", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "website", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Website", - "length": 0, - "no_copy": 0, - "oldfieldname": "website", - "oldfieldtype": "Data", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "website", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Website", + "length": 0, + "no_copy": 0, + "oldfieldname": "website", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "", - "fieldname": "registration_info", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "", - "length": 0, - "no_copy": 0, - "oldfieldtype": "Section Break", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "", + "fieldname": "registration_info", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "", + "length": 0, + "no_copy": 0, + "oldfieldtype": "Section Break", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "Company registration numbers for your reference. Tax numbers etc.", - "fieldname": "registration_details", - "fieldtype": "Code", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Registration Details", - "length": 0, - "no_copy": 0, - "oldfieldname": "registration_details", - "oldfieldtype": "Code", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "Company registration numbers for your reference. Tax numbers etc.", + "fieldname": "registration_details", + "fieldtype": "Code", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Registration Details", + "length": 0, + "no_copy": 0, + "oldfieldname": "registration_details", + "oldfieldtype": "Code", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "delete_company_transactions", - "fieldtype": "Button", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Delete Company Transactions", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "delete_company_transactions", + "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Delete Company Transactions", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 } ], @@ -2023,158 +1991,158 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2017-09-14 18:12:10.008743", + "modified": "2017-08-31 11:48:56.278568", "modified_by": "Administrator", "module": "Setup", "name": "Company", "owner": "Administrator", "permissions": [ { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, "write": 1 - }, + }, { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "email": 1, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 0, - "role": "Accounts User", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 0, + "role": "Accounts User", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 - }, + }, { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "email": 0, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 0, - "role": "Employee", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Employee", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 - }, + }, { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "email": 0, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 0, - "role": "Sales User", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Sales User", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 - }, + }, { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "email": 0, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 0, - "role": "Purchase User", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Purchase User", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 - }, + }, { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "email": 0, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 0, - "role": "Stock User", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Stock User", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 - }, + }, { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 0, - "delete": 0, - "email": 0, - "export": 0, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 0, - "role": "Projects User", - "set_user_permissions": 0, - "share": 0, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Projects User", + "set_user_permissions": 0, + "share": 0, + "submit": 0, "write": 0 } - ], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 1, - "sort_order": "ASC", - "track_changes": 1, + ], + "quick_entry": 0, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 1, + "sort_order": "ASC", + "track_changes": 1, "track_seen": 0 -} \ No newline at end of file +}