From e459cb4d096b0894f28d03414db738df2826979a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 18 Aug 2015 16:12:01 +0530 Subject: [PATCH] Journal Entry: validate and post gle in multi currency --- .../accounts/doctype/gl_entry/gl_entry.json | 4 +- .../doctype/journal_entry/journal_entry.json | 543 ++++++++++++++++-- .../doctype/journal_entry/journal_entry.py | 46 +- .../journal_entry_account.json | 6 +- 4 files changed, 544 insertions(+), 55 deletions(-) diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.json b/erpnext/accounts/doctype/gl_entry/gl_entry.json index 08c5d87a0f..dfe9fc3e5c 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.json +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.json @@ -186,7 +186,7 @@ "ignore_user_permissions": 0, "in_filter": 0, "in_list_view": 0, - "label": "Currency", + "label": "Account Currency", "no_copy": 0, "options": "Currency", "permlevel": 0, @@ -469,7 +469,7 @@ "is_submittable": 0, "issingle": 0, "istable": 0, - "modified": "2015-08-13 16:46:11.515538", + "modified": "2015-08-18 14:25:44.430671", "modified_by": "Administrator", "module": "Accounts", "name": "GL Entry", diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.json b/erpnext/accounts/doctype/journal_entry/journal_entry.json index 4847a71ac2..c652ae4991 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.json +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.json @@ -1,36 +1,64 @@ { + "allow_copy": 0, "allow_import": 1, + "allow_rename": 0, "autoname": "naming_series:", "creation": "2013-03-25 10:53:52", + "custom": 0, "docstatus": 0, "doctype": "DocType", "fields": [ { + "allow_on_submit": 0, "fieldname": "entry_type_and_date", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "options": "icon-flag", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "Journal Entry", "fieldname": "voucher_type", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 0, "label": "Voucher Type", + "no_copy": 0, "oldfieldname": "voucher_type", "oldfieldtype": "Select", "options": "Journal Entry\nBank Entry\nCash Entry\nCredit Card Entry\nDebit Note\nCredit Note\nContra Entry\nExcise Entry\nWrite Off Entry\nOpening Entry", "permlevel": 0, "print_hide": 0, "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "naming_series", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Series", "no_copy": 1, "oldfieldname": "naming_series", @@ -39,19 +67,38 @@ "permlevel": 0, "print_hide": 1, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break1", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "oldfieldtype": "Column Break", "permlevel": 0, + "print_hide": 0, "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" }, { + "allow_on_submit": 0, "fieldname": "posting_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 0, "label": "Posting Date", @@ -59,49 +106,123 @@ "oldfieldname": "posting_date", "oldfieldtype": "Date", "permlevel": 0, + "print_hide": 0, "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, + "fieldname": "exchange_rate", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Exchange Rate", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, "fieldname": "2_add_edit_gl_entries", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "oldfieldtype": "Section Break", "options": "icon-table", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 1, "fieldname": "accounts", "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Accounting Entries", + "no_copy": 0, "oldfieldname": "entries", "oldfieldtype": "Table", "options": "Journal Entry Account", "permlevel": 0, "print_hide": 0, - "read_only": 0 + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break99", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "eval:inList([\"Credit Note\", \"Debit Note\"], doc.voucher_type)", "fieldname": "stock_entry", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Stock Entry", + "no_copy": 0, "options": "Stock Entry", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_debit", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 1, "label": "Total Debit", @@ -110,23 +231,44 @@ "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_credit", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Total Credit", "no_copy": 1, "oldfieldname": "total_credit", "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "difference", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Difference (Dr - Cr)", "no_copy": 1, "oldfieldname": "difference", @@ -134,26 +276,58 @@ "options": "Company:company:default_currency", "permlevel": 0, "print_hide": 1, - "read_only": 1 + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "get_balance", "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Make Difference Entry", + "no_copy": 0, "oldfieldtype": "Button", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break99", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "eg. Cheque Number", "fieldname": "cheque_no", "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 1, "label": "Reference Number", @@ -161,48 +335,103 @@ "oldfieldname": "cheque_no", "oldfieldtype": "Data", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "search_index": 1 + "report_hide": 0, + "reqd": 0, + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "cheque_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Reference Date", "no_copy": 1, "oldfieldname": "cheque_date", "oldfieldtype": "Date", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "user_remark", "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "User Remark", "no_copy": 1, "oldfieldname": "user_remark", "oldfieldtype": "Small Text", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "view_details", "fieldtype": "Fold", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "View Details", - "permlevel": 0 + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "reference", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Reference", + "no_copy": 0, "options": "icon-pushpin", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "clearance_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Clearance Date", "no_copy": 1, "oldfieldname": "clearance_date", @@ -210,135 +439,272 @@ "permlevel": 0, "print_hide": 0, "read_only": 1, - "search_index": 1 + "report_hide": 0, + "reqd": 0, + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "User Remark will be added to Auto Remark", "fieldname": "remark", "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Remark", "no_copy": 1, "oldfieldname": "remark", "oldfieldtype": "Small Text", "permlevel": 0, + "print_hide": 0, "read_only": 1, - "reqd": 0 + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break98", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "bill_no", "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Bill No", + "no_copy": 0, "oldfieldname": "bill_no", "oldfieldtype": "Data", "permlevel": 0, "print_hide": 1, - "read_only": 0 + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "bill_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Bill Date", + "no_copy": 0, "oldfieldname": "bill_date", "oldfieldtype": "Date", "permlevel": 0, "print_hide": 1, - "read_only": 0 + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "due_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Due Date", + "no_copy": 0, "oldfieldname": "due_date", "oldfieldtype": "Date", "permlevel": 0, "print_hide": 0, - "read_only": 0 + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "addtional_info", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "oldfieldtype": "Section Break", "options": "icon-file-text", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break2", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "oldfieldtype": "Column Break", "permlevel": 0, + "print_hide": 0, "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" }, { + "allow_on_submit": 0, "default": "No", "description": "", "fieldname": "is_opening", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Is Opening", + "no_copy": 0, "oldfieldname": "is_opening", "oldfieldtype": "Select", "options": "No\nYes", "permlevel": 0, "print_hide": 1, "read_only": 0, - "search_index": 1 + "report_hide": 0, + "reqd": 0, + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "Accounts Receivable", "depends_on": "eval:doc.voucher_type == 'Write Off Entry'", "fieldname": "write_off_based_on", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Write Off Based On", + "no_copy": 0, "options": "Accounts Receivable\nAccounts Payable", "permlevel": 0, "print_hide": 1, "read_only": 0, - "report_hide": 1 + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "eval:doc.voucher_type == 'Write Off Entry'", "fieldname": "write_off_amount", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Write Off Amount", + "no_copy": 0, "options": "Company:company:default_currency", "permlevel": 0, "print_hide": 1, "read_only": 0, - "report_hide": 1 + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "eval:doc.voucher_type == 'Write Off Entry'", "fieldname": "get_outstanding_invoices", "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Get Outstanding Invoices", + "no_copy": 0, "options": "get_outstanding_invoices", "permlevel": 0, "print_hide": 1, - "read_only": 0 + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 1, "fieldname": "letter_head", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Letter Head", + "no_copy": 0, "options": "Letter Head", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 1, "fieldname": "select_print_heading", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Print Heading", "no_copy": 1, "oldfieldname": "select_print_heading", @@ -347,12 +713,20 @@ "permlevel": 0, "print_hide": 1, "read_only": 0, - "report_hide": 1 + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "amended_from", "fieldtype": "Link", + "hidden": 0, "ignore_user_permissions": 1, + "in_filter": 0, + "in_list_view": 0, "label": "Amended From", "no_copy": 1, "oldfieldname": "amended_from", @@ -360,31 +734,59 @@ "options": "Journal Entry", "permlevel": 0, "print_hide": 1, - "read_only": 1 + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break3", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "oldfieldtype": "Column Break", "permlevel": 0, + "print_hide": 0, "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" }, { + "allow_on_submit": 0, "fieldname": "pay_to_recd_from", "fieldtype": "Data", "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Pay To / Recd From", "no_copy": 1, "permlevel": 0, "print_hide": 0, "read_only": 0, - "report_hide": 1 + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_amount", "fieldtype": "Currency", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Total Amount", "no_copy": 1, @@ -392,60 +794,106 @@ "permlevel": 0, "print_hide": 1, "read_only": 1, - "report_hide": 1 + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_amount_in_words", "fieldtype": "Data", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Total Amount in Words", "no_copy": 1, "permlevel": 0, "print_hide": 1, "read_only": 1, - "report_hide": 1 + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "company", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Company", + "no_copy": 0, "oldfieldname": "company", "oldfieldtype": "Link", "options": "Company", "permlevel": 0, "print_hide": 1, "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "fiscal_year", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Fiscal Year", + "no_copy": 0, "oldfieldname": "fiscal_year", "oldfieldtype": "Select", "options": "Fiscal Year", "permlevel": 0, "print_hide": 1, "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "title", "fieldtype": "Data", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Title", + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "icon": "icon-file-text", "idx": 1, + "in_create": 0, + "in_dialog": 0, "is_submittable": 1, - "modified": "2015-06-29 15:28:12.529019", + "issingle": 0, + "istable": 0, + "modified": "2015-08-18 14:26:37.496638", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry", @@ -458,26 +906,35 @@ "create": 1, "delete": 1, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Accounts User", + "set_user_permissions": 0, "share": 1, "submit": 1, "write": 1 }, { "amend": 1, + "apply_user_permissions": 0, "cancel": 1, "create": 1, "delete": 1, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Accounts Manager", + "set_user_permissions": 0, "share": 1, "submit": 1, "write": 1 @@ -489,18 +946,24 @@ "create": 0, "delete": 0, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Auditor", + "set_user_permissions": 0, + "share": 0, "submit": 0, "write": 0 } ], + "read_only": 0, "read_only_onload": 1, "search_fields": "voucher_type,posting_date, due_date, cheque_no", "sort_field": "modified", "sort_order": "DESC", "title_field": "title" -} +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 4b25a88112..8ea1e58e17 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -13,6 +13,7 @@ from erpnext.accounts.utils import get_balance_on class JournalEntry(AccountsController): def __init__(self, arg1, arg2=None): super(JournalEntry, self).__init__(arg1, arg2) + self.company_currency = get_company_currency(self.company) def get_feed(self): return self.voucher_type @@ -27,6 +28,7 @@ class JournalEntry(AccountsController): self.validate_cheque_info() self.validate_entries_for_advance() self.validate_debit_and_credit() + self.validate_multi_currency() self.validate_against_jv() self.validate_reference_doc() self.set_against_account() @@ -266,6 +268,30 @@ class JournalEntry(AccountsController): if self.difference: frappe.throw(_("Total Debit must be equal to Total Credit. The difference is {0}") .format(self.difference)) + + def validate_multi_currency(self): + alternate_currency = [d.currency for d in self.get("accounts") if d.currency!=self.company_currency] + + if alternate_currency: + if not self.exchange_rate: + frappe.throw(_("Exchange Rate is mandatory in multi-currency Journal Entry")) + + if len(alternate_currency) > 1: + frappe.throw(_("Only one alternate currency can be used in a single Journal Entry")) + else: + self.exchange_rate = 1.0 + + for d in self.get("accounts"): + if not d.currency: + d.currency = frappe.db.get_value("Account", d.account, "currency") or self.company_currency + + exchange_rate = self.exchange_rate + if d.currency != self.company_currency: + exchange_rate = 1 + + d.debit_in_account_currency = flt(flt(d.debit)*exchange_rate, d.precision("debit_in_account_currency")) + d.credit_in_account_currency = flt(flt(d.credit)*exchange_rate, d.precision("credit_in_account_currency")) + def create_remarks(self): r = [] @@ -275,15 +301,13 @@ class JournalEntry(AccountsController): else: msgprint(_("Please enter Reference date"), raise_exception=frappe.MandatoryError) - company_currency = get_company_currency(self.company) - for d in self.get('accounts'): if d.reference_type=="Sales Invoice" and d.credit: - r.append(_("{0} against Sales Invoice {1}").format(fmt_money(flt(d.credit), currency = company_currency), \ + r.append(_("{0} against Sales Invoice {1}").format(fmt_money(flt(d.credit), currency = self.company_currency), \ d.reference_name)) if d.reference_type=="Sales Order" and d.credit: - r.append(_("{0} against Sales Order {1}").format(fmt_money(flt(d.credit), currency = company_currency), \ + r.append(_("{0} against Sales Order {1}").format(fmt_money(flt(d.credit), currency = self.company_currency), \ d.reference_name)) if d.reference_type == "Purchase Invoice" and d.debit: @@ -291,11 +315,11 @@ class JournalEntry(AccountsController): from `tabPurchase Invoice` where name=%s""", d.reference_name) if bill_no and bill_no[0][0] and bill_no[0][0].lower().strip() \ not in ['na', 'not applicable', 'none']: - r.append(_('{0} against Bill {1} dated {2}').format(fmt_money(flt(d.debit), currency=company_currency), bill_no[0][0], + r.append(_('{0} against Bill {1} dated {2}').format(fmt_money(flt(d.debit), currency=self.company_currency), bill_no[0][0], bill_no[0][1] and formatdate(bill_no[0][1].strftime('%Y-%m-%d')))) if d.reference_type == "Purchase Order" and d.debit: - r.append(_("{0} against Purchase Order {1}").format(fmt_money(flt(d.credit), currency = company_currency), \ + r.append(_("{0} against Purchase Order {1}").format(fmt_money(flt(d.credit), currency = self.company_currency), \ d.reference_name)) if self.user_remark: @@ -316,10 +340,9 @@ class JournalEntry(AccountsController): self.set_total_amount(d.debit or d.credit) def set_total_amount(self, amt): - company_currency = get_company_currency(self.company) self.total_amount = amt from frappe.utils import money_in_words - self.total_amount_in_words = money_in_words(amt, company_currency) + self.total_amount_in_words = money_in_words(amt, self.company_currency) def make_gl_entries(self, cancel=0, adv_adj=0): from erpnext.accounts.general_ledger import make_gl_entries @@ -333,8 +356,11 @@ class JournalEntry(AccountsController): "party_type": d.party_type, "party": d.party, "against": d.against_account, - "debit": flt(d.debit, self.precision("debit", "accounts")), - "credit": flt(d.credit, self.precision("credit", "accounts")), + "debit": flt(d.debit, d.precision("debit")), + "credit": flt(d.credit, d.precision("credit")), + "currency": d.currency, + "debit_in_account_currency": flt(d.debit_in_account_currency, d.precision("debit_in_account_currency")), + "credit_in_account_currency": flt(d.credit_in_account_currency, d.precision("credit_in_account_currency")), "against_voucher_type": d.reference_type, "against_voucher": d.reference_name, "remarks": self.remark, diff --git a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json index 506dfd962d..5cd7216989 100644 --- a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json +++ b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json @@ -277,7 +277,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, - "read_only": 0, + "read_only": 1, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -338,7 +338,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, - "read_only": 0, + "read_only": 1, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -476,7 +476,7 @@ "is_submittable": 0, "issingle": 0, "istable": 1, - "modified": "2015-08-17 19:20:19.153237", + "modified": "2015-08-18 15:17:42.583090", "modified_by": "Administrator", "module": "Accounts", "name": "Journal Entry Account",