From 8230ce095f8159266a97ca97c3d22501ce96d628 Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Fri, 21 Apr 2017 16:13:17 +0530 Subject: [PATCH 01/17] [Fix] fixed routing to the assessment result --- .../schools/doctype/assessment_plan/assessment_plan.js | 2 +- .../assessment_result_tool/assessment_result_tool.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/schools/doctype/assessment_plan/assessment_plan.js b/erpnext/schools/doctype/assessment_plan/assessment_plan.js index 9685e0ef83..cafe3a10e8 100644 --- a/erpnext/schools/doctype/assessment_plan/assessment_plan.js +++ b/erpnext/schools/doctype/assessment_plan/assessment_plan.js @@ -8,7 +8,7 @@ cur_frm.add_fetch("supervisor", "instructor_name", "supervisor_name"); frappe.ui.form.on("Assessment Plan", { refresh: function(frm) { - if (!frm.doc.__islocal) { + if (frm.doc.docstatus == 1) { frm.add_custom_button(__("Assessment Result"), function() { frappe.route_options = { assessment_plan: frm.doc.name diff --git a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js b/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js index 8fd670eca4..6967a7d293 100644 --- a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js +++ b/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js @@ -5,6 +5,14 @@ cur_frm.add_fetch("assessment_plan", "student_group", "student_group"); cur_frm.add_fetch("assessment_plan", "student_batch", "student_batch"); frappe.ui.form.on('Assessment Result Tool', { + + onload: function(frm) { + if (frappe.route_options) { + frm.doc.assessment_plan = frappe.route_options.assessment_plan; + frappe.route_options = null; + } + }, + refresh: function(frm) { frm.disable_save(); frm.page.clear_indicator(); From c3d642e5d19031f9d97fb93d6fd885085839eb10 Mon Sep 17 00:00:00 2001 From: mbauskar Date: Fri, 21 Apr 2017 17:17:07 +0530 Subject: [PATCH 02/17] [minor] allow bulk edit for doctype --- .../bank_reconciliation.js | 1 - .../bank_reconciliation.json | 57 +++++++++++++++++-- .../stock_reconciliation.js | 1 - .../stock_reconciliation.json | 18 +++++- 4 files changed, 70 insertions(+), 7 deletions(-) diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js index 956f15a814..942699f57a 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js @@ -3,7 +3,6 @@ frappe.ui.form.on("Bank Reconciliation", { setup: function(frm) { - frm.get_docfield("payment_entries").allow_bulk_edit = 1; frm.add_fetch("bank_account", "account_currency", "account_currency"); }, diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json index b83dc7c2be..029421990b 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.json @@ -1,5 +1,6 @@ { "allow_copy": 1, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "beta": 0, @@ -7,11 +8,15 @@ "custom": 0, "docstatus": 0, "doctype": "DocType", + "document_type": "Document", + "editable_grid": 0, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "description": "Select account head of the bank where cheque was deposited.", "fieldname": "bank_account", "fieldtype": "Link", @@ -19,7 +24,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Bank Account", "length": 0, "no_copy": 0, @@ -28,6 +35,7 @@ "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, @@ -35,16 +43,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "account_currency", "fieldtype": "Link", "hidden": 1, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Account Currency", "length": 0, "no_copy": 0, @@ -53,6 +65,7 @@ "print_hide": 1, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -60,16 +73,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "from_date", "fieldtype": "Date", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "From Date", "length": 0, "no_copy": 0, @@ -77,6 +94,7 @@ "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, @@ -84,16 +102,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "to_date", "fieldtype": "Date", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "To Date", "length": 0, "no_copy": 0, @@ -101,6 +123,7 @@ "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, @@ -108,16 +131,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "include_reconciled_entries", "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Include Reconciled Entries", "length": 0, "no_copy": 0, @@ -125,6 +152,7 @@ "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, @@ -132,16 +160,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "get_payment_entries", "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": "Get Payment Entries", "length": 0, "no_copy": 0, @@ -150,6 +182,7 @@ "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, @@ -157,16 +190,20 @@ "unique": 0 }, { + "allow_bulk_edit": 1, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "payment_entries", "fieldtype": "Table", "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": "Payment Entries", "length": 0, "no_copy": 0, @@ -175,6 +212,7 @@ "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, @@ -182,16 +220,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "update_clearance_date", "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": "Update Clearance Date", "length": 0, "no_copy": 0, @@ -200,6 +242,7 @@ "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, @@ -207,16 +250,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "total_amount", "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 Amount", "length": 0, "no_copy": 0, @@ -225,6 +272,7 @@ "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, @@ -232,19 +280,19 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 1, "hide_toolbar": 1, "icon": "fa fa-check", "idx": 1, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 1, "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2016-06-28 13:11:09.396353", + "modified": "2017-04-21 16:58:26.902732", "modified_by": "Administrator", "module": "Accounts", "name": "Bank Reconciliation", @@ -274,7 +322,8 @@ "quick_entry": 1, "read_only": 1, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_order": "ASC", - "track_seen": 0, - "version": 0 + "track_changes": 0, + "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js index 7ed4ede8aa..636b2afe6c 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js @@ -152,7 +152,6 @@ erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({ setup: function() { var me = this; - this.frm.get_docfield("items").allow_bulk_edit = 1; this.setup_posting_date_time_check(); diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json index b830a6c5eb..84ab7c3a14 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json @@ -10,9 +10,11 @@ "description": "This tool helps you to update or fix the quantity and valuation of stock in the system. It is typically used to synchronise the system values and what actually exists in your warehouses.", "docstatus": 0, "doctype": "DocType", + "document_type": "Document", "editable_grid": 0, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -43,6 +45,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -72,6 +75,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -101,6 +105,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -128,6 +133,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -159,6 +165,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -189,6 +196,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -218,6 +226,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -246,6 +255,7 @@ "unique": 0 }, { + "allow_bulk_edit": 1, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -276,6 +286,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -304,6 +315,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -334,6 +346,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -364,6 +377,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -392,6 +406,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -420,6 +435,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -461,7 +477,7 @@ "istable": 0, "max_attachments": 1, "menu_index": 0, - "modified": "2017-03-15 15:03:08.579943", + "modified": "2017-04-21 16:58:53.475787", "modified_by": "Administrator", "module": "Stock", "name": "Stock Reconciliation", From 83c1c3a171c3846726e0006a113fefa255b8d6b9 Mon Sep 17 00:00:00 2001 From: ibi Date: Thu, 20 Apr 2017 17:30:41 +0000 Subject: [PATCH 03/17] fleet_management: replace references to fleet_management by hr in vehicle_log doctype --- erpnext/hr/doctype/vehicle_log/vehicle_log.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/hr/doctype/vehicle_log/vehicle_log.js b/erpnext/hr/doctype/vehicle_log/vehicle_log.js index 1ccf3479f2..56c30fffc4 100644 --- a/erpnext/hr/doctype/vehicle_log/vehicle_log.js +++ b/erpnext/hr/doctype/vehicle_log/vehicle_log.js @@ -6,7 +6,7 @@ frappe.ui.form.on("Vehicle Log", { vehicle_log=frappe.model.get_doc(cdt,cdn); if (vehicle_log.license_plate) { frappe.call({ - method: "erpnext.fleet_management.doctype.vehicle_log.vehicle_log.get_make_model", + method: "erpnext.hr.doctype.vehicle_log.vehicle_log.get_make_model", args: { license_plate: vehicle_log.license_plate }, @@ -19,7 +19,7 @@ frappe.ui.form.on("Vehicle Log", { }, expense_claim: function(frm){ frappe.call({ - method: "erpnext.fleet_management.doctype.vehicle_log.vehicle_log.make_expense_claim", + method: "erpnext.hr.doctype.vehicle_log.vehicle_log.make_expense_claim", args:{ docname: frm.doc.name }, From 0b293133bed2cac2564466eaa84fc0d484d8beaf Mon Sep 17 00:00:00 2001 From: mbauskar Date: Fri, 21 Apr 2017 20:05:33 +0530 Subject: [PATCH 04/17] [minor] fixes for unsupported operand type(s) for +=: 'int' and 'NoneType' --- erpnext/schools/doctype/course/course.py | 2 +- .../course_assessment_criteria.json | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/erpnext/schools/doctype/course/course.py b/erpnext/schools/doctype/course/course.py index 0ac11ec1c9..69d2fca63e 100644 --- a/erpnext/schools/doctype/course/course.py +++ b/erpnext/schools/doctype/course/course.py @@ -15,6 +15,6 @@ class Course(Document): if self.assessment_criteria: total_weightage = 0 for criteria in self.assessment_criteria: - total_weightage += criteria.weightage + total_weightage += criteria.weightage or 0 if total_weightage != 100: frappe.throw(_("Total Weightage of all Assessment Criteria must be 100%")) diff --git a/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json b/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json index 6646d205b5..652aa0d230 100644 --- a/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json +++ b/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "autoname": "", @@ -23,6 +24,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Assessment Criteria", @@ -52,6 +54,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "", @@ -80,6 +83,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, "in_standard_filter": 0, "label": "Weightage", @@ -92,23 +96,23 @@ "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 0, + "reqd": 1, "search_index": 0, "set_only_once": 0, "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 0, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2017-02-01 18:01:40.682674", + "modified": "2017-04-21 20:04:26.621419", "modified_by": "Administrator", "module": "Schools", "name": "Course Assessment Criteria", @@ -118,6 +122,7 @@ "quick_entry": 1, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_field": "modified", "sort_order": "DESC", "track_changes": 0, From bb2670d57aebec12ac7e22c77e8c96ecdb1385ff Mon Sep 17 00:00:00 2001 From: mbauskar Date: Sat, 22 Apr 2017 21:22:15 +0530 Subject: [PATCH 05/17] [fixes] minor fixes in bank reconciliation form and report --- .../doctype/bank_reconciliation/bank_reconciliation.js | 3 ++- .../report/bank_clearance_summary/bank_clearance_summary.js | 3 ++- .../bank_reconciliation_statement.js | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js index 942699f57a..7c94455b9b 100644 --- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js +++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.js @@ -7,8 +7,9 @@ frappe.ui.form.on("Bank Reconciliation", { }, onload: function(frm) { - var default_bank_account = locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"]; + let default_bank_account = frappe.defaults.get_user_default("Company")? + locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"]: ""; frm.set_value("bank_account", default_bank_account); frm.set_query("bank_account", function() { diff --git a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.js b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.js index ac3366c506..e4f0384dcd 100644 --- a/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.js +++ b/erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.js @@ -22,7 +22,8 @@ frappe.query_reports["Bank Clearance Summary"] = { "fieldtype": "Link", "options": "Account", "reqd": 1, - "default": locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"], + "default": frappe.defaults.get_user_default("Company")? + locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"]: "", "get_query": function() { return { "query": "erpnext.controllers.queries.get_account_list", diff --git a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js index ca8e50bc05..e420fb9dd1 100644 --- a/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js +++ b/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.js @@ -8,7 +8,8 @@ frappe.query_reports["Bank Reconciliation Statement"] = { "label": __("Bank Account"), "fieldtype": "Link", "options": "Account", - "default": locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"], + "default": frappe.defaults.get_user_default("Company")? + locals[":Company"][frappe.defaults.get_user_default("Company")]["default_bank_account"]: "", "reqd": 1, "get_query": function() { return { From e385b5b97b7490ef165ecd090450569bb75c4563 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 20 Apr 2017 15:21:01 +0530 Subject: [PATCH 06/17] [enhance] automatic batch creation, move and split --- erpnext/controllers/stock_controller.py | 12 + erpnext/docs/assets/img/stock/batch.png | Bin 50773 -> 0 bytes erpnext/docs/assets/img/stock/batch_view.png | Bin 0 -> 170696 bytes .../assets/img/stock/item_setup_for_batch.png | Bin 0 -> 97942 bytes erpnext/docs/user/manual/en/stock/batch.md | 44 +- .../doctype/sales_order/sales_order.js | 3 +- erpnext/stock/doctype/batch/batch.js | 139 +- erpnext/stock/doctype/batch/batch.json | 230 +- erpnext/stock/doctype/batch/batch.py | 62 + erpnext/stock/doctype/batch/test_batch.py | 67 +- erpnext/stock/doctype/item/item.json | 290 +- .../purchase_receipt/purchase_receipt.py | 6 +- .../purchase_receipt_item.json | 3722 ++++++++--------- .../stock/doctype/stock_entry/stock_entry.py | 3 + .../doctype/stock_entry/stock_entry_utils.py | 15 + .../stock_ledger_entry/stock_ledger_entry.py | 6 +- .../stock_reconciliation.py | 6 +- erpnext/stock/get_item_details.py | 21 +- .../stock/report/stock_ledger/stock_ledger.js | 6 + .../stock/report/stock_ledger/stock_ledger.py | 14 +- erpnext/utilities/transaction_base.py | 7 +- 21 files changed, 2631 insertions(+), 2022 deletions(-) delete mode 100644 erpnext/docs/assets/img/stock/batch.png create mode 100644 erpnext/docs/assets/img/stock/batch_view.png create mode 100644 erpnext/docs/assets/img/stock/item_setup_for_batch.png diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 54c181ac1d..703fe06db2 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -177,6 +177,18 @@ class StockController(AccountsController): stock_ledger.setdefault(sle.voucher_detail_no, []).append(sle) return stock_ledger + def make_batches(self): + '''Create batches if required. Called before submit''' + for d in self.items: + has_batch_no, create_new_batch = frappe.db.get_value('Item', d.item_code, ['has_batch_no', 'create_new_batch']) + if has_batch_no and not d.batch_no and create_new_batch: + d.batch_no = frappe.get_doc(dict( + doctype='Batch', + item=d.item_code, + supplier=getattr(self, 'supplier', None), + reference_doctype=self.doctype, + reference_name=self.name)).insert().name + def make_adjustment_entry(self, expected_gle, voucher_obj): from erpnext.accounts.utils import get_stock_and_account_difference account_list = [d.account for d in expected_gle] diff --git a/erpnext/docs/assets/img/stock/batch.png b/erpnext/docs/assets/img/stock/batch.png deleted file mode 100644 index 406acbd63a6800d83210fb3f4ecd590d284f7ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50773 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 diff --git a/erpnext/docs/assets/img/stock/batch_view.png b/erpnext/docs/assets/img/stock/batch_view.png new file mode 100644 index 0000000000000000000000000000000000000000..d670fc92b02ab90d98c691df74247337a8e2511e GIT binary patch literal 170696 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 {=T5g$(nUs z!uJr2!$bhSm#C?55vy6(1gU(&gdq_YKWxnQG+1_ezX_}oakWxdRU@xmIis`55IyFJ z_hLn>($+#^7|txSXkJE$&t7!9t?0twalj~^DLWzBCN;f2EL)%PI{wYn9#yAd(Y-(W z$?lFEdxKS`5A% z@AuGJpnYqq`rfw+ITnQTaXlq}8%(FmlsYO(xk>`}?Bfh0lY zD!Zy%Q?qY1%=rEP5sZoNCVsHw1;4Z&*gr$uUB1ys3JuqW<}@k%LaraT?JKjGtjO^J zc4^oK;7KIUX;e(TFg$54`qZK$ej&vSwt$wKp59G`nv!rOQq4aS#*fcnM<3)+jO#@< zm3(VEtV%B~9~-)K+32$S$z~p?^%@VKrGoM1MSZmC^Np-a_two$&b;}z`scSlT}?yE z(nLSLKk!fV;Ks`>K}EtDSJzjIAOI7lC5v?{G|(qa)#>U@+>M22j>?SajtUCK`KRG# zT|c5*;t`{)*BVEpEY2e9E?FEoXZwYWn+#7bXyx702F5nCEZ(+6fpios6}(3q%tB_7vXqMLnp4e) zcD8X0&h44NG~#APIzB-C_#LccN$qB@z;bJ1zj3~IDk+k<)2G9xIj`ExS)Qjx8H2F7h zml98?>*&p^+{#=wRO72(mmJd@rzg5qYfyT)ezL&(Y6rUr9OxODSN;f^On>6YU|lbWIumPUn^=!Yi6Kmr$WPCh!4qi z_Gv|>iy1%l7OPnFRc3(mW2FO^T%I#3LUrHcXP6=>F%$#|SA1KKNyY0d3>8c(%cFGR zKbFqT+SQ8eo{Q%GkQ%kG9vZhk5hB=HB06iJ;`Y+yt>I_Wa?!QM<|pbT{(aW7dvWcn z7I4?4g^y>l`zykg(u1*njHoiav{YkFZ8xgqc7Gu#S3DDLGt*@^HOPn_KsN`f9D~pO zvH+0axF1v86-dXV`Qa2CI={kgMBdajIzsjZ>HoDz{ClQRIgVY);y~OntFyl3Oem!s z(NnS=7=kHzMQt$gXXPyG+?gwYGfoJ^3#dxSEck5Rpuy#h;XuWF&cU!eP@#AKu!|3Q@6%JzxPFYm>ltc=$U!{2j6Xwt4-p@BrUQ z6#qYwD2${O>VEivZ{_B-D< z4AF*G?}*vrZ#-WOwvq>(0(dOtrq9`h40$$dq%3F}X;iX+Dq99HrEo1;u0`xl!R~^* zcX&m-{h$*4*yxdUw%;?)QrZR*#fNyXxV}Maq}q%>a~Hck)>}7GoA+IMA z&Ri=Jf^7g3F67DXI2z9wHahCUHtN}td~@jO#|YGmqCT@ahBTX3I?Y#b$gV!AzE zXHfX-N8U2m^;>7m-GnYpCv7VO$F~*0I7{9JG(RTgpL9uaG%TFVv9uEp_^OOLTDz1y{chi(L_M{o9pZ2qzUS`bMm3rqb$_ZvO z^ZB7$tZ4XjXKT#tkm2e-m^_@TMpQc}=y}lBP6n_n5fVrpxv5MYQg-nx3~DN_mYs=5 z*LM4WAmYt}le&0dDp@*KeZ8${s4(E*JkaSbxVkZ`b6A;JRdJYO8vzz|U(BfwtPM&0XQEXWe;6S?!T6TXF7eFNmsm!O<@*afv-PaF7qX0Op=NH=T}4@aT#Zj^G+_c~a~y6%}@E3+!bZHv~r z1=NN%EynaW+b2RqZm%&&(OmL3Q1~s31em;EY_2fpYX^F%ny;-xeTDZUz^H%X*o)fK z!IUuSX~Wi_QpSvD+4!fW3lrU7Ut%xo%9DD6?YP}c;P^m?hWpz4r|Lg?kjMLEeNt%s znj>{)e7%p<@p{pzV69ag!osF7b>zVCw}q?mrg(PO?QwwW`bVv{c?U430FvoX_uOiT zhwT^C;5U*xcX_Eg_P)w3BR=UTI_6Cc^)4yP-U-FhYf!KDI>vdp)EB%t8N@9Iu66U8 zm3alUXvYBF5Ge#sG)_s4!D85Du1{-Mo1kTPzaF5LOKzkU{& zT)HpeJ*)UVMTi_I9>DzagrJhXjhS zLc5Bwne+&z$2hJQqYt5yd8xyz>+dcg+knNon6ZKR zmoVr^v@(k^H0CYUGE|>)Km2umvbFayRhgPM--3ditE7JZ?)^>;H_1VoLTW zfrgLlJxK$_=-o&@Gq-BcPt4aApC6D8EL=A4d^;o4Ip+xYkKbUzy+JBIQ%tgGCY|dx z-_Fgzj;s*&ZIO*D>mZ!awmx$W7F^KqJfNHc+V;oYQA$qwJ_WFK; zNHMYmkwtcH=JQ19kuIyvC?uoZ-<3$;gF@A4LV@<`BM2>;$(ZZ-T*_Cb@JjcAeK=|O zrprE<{U)qWnnnqCJh~pun;(M{*)hkzebI3{X$d>brVqj)6VyVs%6NU)-XgRuaivWBV5XC|)c9xz!&Sc@mfWSU)|_CVxN9r&F%d zLOYwJps=R$>B)qtu(2^5GQ=M0?eOUs7*s*;iuwUf-djKFOr+IL>~EUD7+{yeIxgh+ z`lt*P^Ar1u54tG{Ap-je;kw}T>{?5^%?r1+lt0*Nw}Kj6(4|;aU=8#|6I8Q(U?u1c ziAh&(BX;e5Ejr}0>hHh8v#9*DUG#2<@)uS=G7tKR?CUIe2Tt6w{Gg~RXgORwyX&3D zB-Imb5o_agV3$FO8#1#@hG zaqF1qQi9A!=r@r0kTU75K>wB_{%_&N{k%X(Kz|e8RB0%)#U@9q9msrYd%!&*us1+r zLPX!!(Y(c~JPT|r5GiquMuIgdM;rqehDuU$^?Kb%AF<4CLC%#&q>ErG*6~_xSTWeo z?IepapHS%7Xd@h14DtvM?cftqytTeOZA6p9er5T()kg%ajhG<$y-mtZ1t@;Ia%j2_8% zLJ8Sl{u}w}V~6~CCr)<5;O_SA$AZ2Y-!-qV>hcPH?t;sK9I@Wvn){GPd$J|Y(%lw; z1%A|Ym5pwQd&0=<%m`j3N?VK-5EM|O(!J8rRp%7#1gY=tFeZV@ckymnh{h@x6{g%< z7p8{yj^7FeO9f)qWs9ex1FCz+6v2Hr^i?KWE>nAaEoWF6-W^%X4U?1h(`}|@ z(?^8u8yJjkGMyuS(0*|Z2Uh=4(Esg=z?sv@_3j=|>D5e6l{~^oK15{X!7N#_*awO9 zC0i~}#zq61o=L5Q^$7dnMuTBSQ%22d0@e?o^&!~u{Km7{srEB+k4Y(zp#eJEY)skw z4mCs0Ii1jhMQKt$C3L2?M&Th+(+<OFn4YT4s zeaAD)>bzM>Tp}_aP@H%*EUGPjKD`oDp8%rx-xw-Ba}c-b7J83A`dyaSild&x+-K2i z+i5+r;F)6qv!UJgWxHYK2uquLv0(JV*>K@fKig_Ky}E?j$d2ud(E%|sHi^&-FJ=h` zeoLj~&Z5LQ6Lle}*FEp1RvnAStFDv#MT|$p_PZA(%P8 z%L{j8)3JE;IB+)#w{_mPd36a~3(NOKw7P@RgK zIE(Twwj)Kwjv~m3gN-4&A$5$~7Pa;k3%k7djC?)@nrdBxbEXdkxGqMZuuP`1AHiDQ z8n@3vTcId?2>RhRj}EKTN+8GvV>BkNmwwM6s7G)=LAK{b8r4y&r{+_#nD$@|jiTs$ zIEAc%2HQV&u&KZnnIYdXD#x5d&`?ef_1W0E)mqGv6qeq}a}0&5=x;%m8g&{4v%A)h zl0^0=A<>_Y0~))pQlmg*&iZbhUNpk@qpPLU40nil@|lrN?-@4_pHtd2Y3tf+Zt%Mm zd_q2NDx&VgXFe&_(;5hsR{4^Edi7>!p-|Mt*qyhqfj(mkpG(4`-Ja9hv~Ga757wuM ziDn#wkVYX$8+)8Es&$a0s}QH!s7odrcxB?>?(x$+xwJi6Rn*w21NEMoe068boQDj) zcaRzAlj4olBh?$iJ}J&l^mdQVFG=F-%)6zgd)SO(*Ya8#vX)j?yFA2$>PX-9Sh47=D2i7av5Qv!?)g~9w*W)Z8(@S*-4TN_jQx8|xP z4u=?Z@9$$KH(b^W^91zpglveBdQWxlCvYb%&OjDts&7T`%{tM?{i3zOniSZt+pb2` z?WV{a?a9>(6)tQX$7LSCmN`#l22m6&YQ2+PvC~J&Vyln%JPi0~EeU;9ZH7Y4^K9Q6 z;|sQYs@N`Bsn#5s@G__{!}6KlvcdtTKT z4J66UuEvim48<5ktG{HC5$`92bmpo>u}5oif)>X?}b?kgG+4Rom)YlWv0rWQicARPjBXc`~hVQb+h(ERszU zS8j&r8=6c=K+2EPTVc$eD>wMH5Pj+3Okf``7?~THGDy0i&RVweO`UpcC8f*z6M64U zGdo&MDp1u0Z4Zclo!cy~)y$Hkkl_w$xB-}s%rgt2M2 z&J0@^q>aOcEtroy&N*wG2{Fj$uwqn95cjixxzwhLpYICDGUWm zLCK?5@;?miZ;(mpVdQkzRge_!^4fS|3>)66AZ*LE5K0q178U`BjB{E^(elPw2IobS zeSozeF+onz>ABiy{cPMo25@6m`f*$2d`bHeVSKBH_OZKEft5xP2ZS^$b$)12Ut5uM zV=CXy|7sqv*Rtlc{DHBjMG6W>NBFB?<4PRXyV|AE8pIiT%7pqw=1an41;>jv9~Q`7 zIpSDR)jBSD&ISL@Ce^w+>O%$uVUwx2$4Y5cJBwAmXDz47r-q34PE_?J+NLDU_LQ1$ zrzH~oyNTwEsp21687Wa3>OIyhIr^wu`YSt9U)_*1 znUoqUM)<-s8GjJSb*sdZBxCa#)%&{cYRyn~xk8XogmSO~3{~OQtDBOB z>xr|!8oP4Dzl?p`UhkhDG}lX0;j&qM8F+9rS$D41_$is-O%7g4CbaO|Da`5GDq)h8 zEA-Q&thVd%2}`EFf_0|Is$c@A3kO?grd0QGBLjqX9Dg|XHfIHxgE(|2)oyhR>ldF6 zWpv2MM_X4}O58z|8i#N>rL9(;Tuz^P!hLXg;Y;+~Q1d0IS6{XG~-Q{5Q)}GQ=X2Oa;BmU#B~#Z zc9F>l<*@!Sca^Ej%7W32k{Q<~qVF5jY2oq_hzfj^Sc^I_^_Ch~Wvfm2jY{=19^iiM zVr&Zu82)W6RT+>A39|^Km#tooqcp>+;(i^G3Wyz4YRQnN#r2I%DfaB(ZE{W%_S``+Jz9hpL&a~{daue|hzggg`JJaK%AQvF zCvcB0R?pFDqAyovR)EK3tJ~C$Gx}1ODdCw`;aQ>4rSCo58-L~?I-5r%sgKTMv{-1XF}6_i$psNR3>g%<)<3i;LpF^451&LbY?l9 zP+v$+EE&5E-1l>QT(=#8Ct;jygZiW9^eISD3`0Jri?$=G;(ERf90=0BZ=jw+U_3>I z(U#gaHr|94@JaDktv*pb*Lqa>!D9|$u9eFvQ~tbPi8n6474|B+e?i}^`N21m7eK^o zbnce@A7B8c{u}W9i~ghSHo#S1Kvq7}VdtmkWz&ywSgD;yt)Qc3W1wo!7LT z1ZvI!Av-T+zIkl^N4=v;uP8RkM`~2?-yYNZflD)LU+}?wN#Vay{jv{!))27y+ev3x zU;uj;Fo6C2iSM%dw!&{YmhW2f-9EnC$9Mbq&m7~sXZZi%8Qgg=QRGoAobTUkFZqE> z$owv|_!50L)3qNqsdn4G66mK7-IEvCnp*PkL{0}&v8e7kjS%{VtOZVA%Kru+QWB6W?X^jXLBv zzY+3XOTOF3cl-EmAO8`nzI%rM8zW~4wQP56UR&Ba?=%T{ePN(LDqY1@S{PqxQGex& zt%XH(TzvfLTPq?%1y8;oiSSNs>-bUu0 zg%!}kn7uTsGO_~*cdNfC^3^BP;M$Ya!JgQ|tPF|O+QSPaAEEEFPs>geIp5F3ZyX0M zLAw#?O+E#*u!{}jC5Mw>lNpUfvp#wuCpFGoiT^*5Fu)JIJ-N;E$@x=%YR>_eac>s9 zfRk-3K$=Zc*%OwVp{$$XohzYUeAbX!(33bG`d89h2d;Oq(d;^4@RV@GK>q#MFXGLt z)TuEX8NJwdd+!*$drwx;W*UoJ8L^0IR19D-`2h$pmK3IXpNsA3Y_GW{7j{g_#|1}M zYOR5{!=hWWKk4M^AZ>ci?Im| zx9i7?B&h`|5VT!TI0V+A+a{1F^D1wmwB1QyQ$cn|lB!Zw=UzPhWoUgl)ZOOYQyJ{n zj9PkExbMn8z{y)z)##=Bcp{zat>DueDQlV$m zE(t|0MA@jI(bPe)>rYk~Kf;Y1Q(}cH>h)DQyS&OY`#*aLtkiO%EHgJ%W`^dW@U^5_ zhqhG%b`_|pQ)$xu(z|wVk-1eWr(Q{ zN3X5u5zn_8`nv{R|8Pn3r`U$ei@$Ci+?T!uv^8N@^J-ZWvjOb9_iw@+-Fh|L+&8!9 zK475`HxiI{&L|O8Wq&H0Rh0Gf9*+e!jEq*e+>208y=ZY9&O8l|{R|tUR!p++F#~Sf zH!m^pUQQ#G-6%KHr&fGL3KhQXC;EehFJz(!LDZbG;TOY*f(8QjGiH!arv$4!?8lb? zY;Niw2-8y%)K>j^f~*jEK5O=4Yro`T>bW_4rqfak&*=zzcb}IQL@GamH%k_`G zQHXXAEtr03c3*5}@buo-K&<8#ka2m1{!8l@Fsb<855VN=JPk?3fw-rQ$rM3^x@X zKB}$!Du|Je>W*v*W{*W*)Aj}3Ezv<{SdH%QroUHGZ>ncT)vgo8>9?T|0*6DOIuV^I zBh9gST`vJ>>6OZrFYe`TfO)aUfJ>(UFur=TH{T2IV#OPoO}9f+-rzIc2j2G)p~$MX zWzCUTy}O)F-EG0bObl(u9vJ`7h5jfRTZ}I8Le6r&ZYH^~V7YZ42WskcdAL@uoe;mn zu`^vpCdopO@a(jeTkn;fLGVq27qE&ehw78wMQ~^C)}CfwsAm5NqXzfqA9aDt-YcuU z$FxjeW#r`w##4tPk|W16w`q>^GJ}T>YAkvs_fpyXBT5YDTQP%3xD*4L=ffxL?T^@9 z2Xd%)a)#x^19qiqp*3zE?4Jph?f12zO5;mUZi-DWbj)=XSMx5)RmxF$k9?z-60!*n zG3wgChjuO`;H2=-R*QT8?zrU;ePlR$cvt`oq2XcL2S3sad%XNqWwjhr@7@T-$aPlC zxSc8#DSVn|f-vk=;+B3gzzo}~c3FUcA+t*jknL=MW6~PgLC-8Ve3^Kxv&aWD=TE=6 z-55DY{(y}$hdSjvB*8QUx zeE~i=HF)YKRQ*sD{&4(8kHz*12s@V=g>S8!IrXCFOT8PKs9znNovd81&ly;E&MLOk z9)&Iy708h*rrZuOH4eJ?$xZlP&~c!emaL@UMNr~FhXTjfsLqVqQ3GXCNXCuZ9m^vh z&p0}U36QDx<`_-L#!9Ppfd66={P2Uj->Z=Nv2=dblK}6v;(GHjx{V69R&B|Kmz^<> z0)$T@un=XjyS)LfYD@i1MASJqg>#t-)YJxoF3aFy##80)kpH9-1VOoS(?ky$0V~kn zG%5oJbK>U^BefowD?)YSN%hWm($1n0vohAMp*>-I3p$x(R9ECLCAZ$r)C*fD<%isx z!?a__LYwU2DB>V^W1bKJ(^pC{-|mMEt_rI@YPrxtAfx9gO5%RwPoYmAcN3bf6FjbD z*B8`f^vJI`8<(j=w8H9Xoh?hMz9Y8uk&wq46|yd*e@P)BA8ZqvkzwQqdBgM5m}sZn?1p>$Cba@z2$3Wwu;Yp;A(QtNsS)cW? z1`>p%cHd8E8~uX2us9)Z-&Olm(V78=Z-7_p)Fm6#V62woDiDa$S61H3BDb_5B@9Bj z-dJcE@=DF=NQ6j2%`8a!Aw{C<8=j0K&VB2Ww!}czj+v+4ceZw?Upr;k#-pr$zP}f% zeQdx0HJ22e4ym_d8%lw_k@eUbJKd$(ynRTwyA-bbO1Z2^zvxn&_t1PD+?gJx-aI4du`4TWu5+$4-#3qD^ft zM!d)fZ0GLnJSpc@<-c4kp|rKxv=p#?YLm@i6JJjIruf0q6rYd6H;o@NR>q zdsR-T&-s}y#4$wR7h1bKU(1QT2%wlk4?OP*d>u_gm3@Nfj6M^y3=dml1_L*ediufB zTq&zM_VbbdtgY6@4@yiQ%QA!S z!5|kbMd6_YyzO21G_#9)6cZ`E@LHUIb#C+~NnNJgb3Ff9!o17TV^=APyq)-m-$n4>8Ava3yj=9qILN@7_fK zR9sR`PO)uy-iH;CuxgE8Ydi$-K-ISt`_eV8K?f} zeAIiSfaHN9{59^J1?uuJNLUdf%9HB+24CTlfhO_~E}NY??k$gdsK#jt^~??4Rs8^2 zl3TqSWV5T8cXKtm|3UVi`L<4_N#2jmI%yaGbJJL9){6c<yWKLvi z*am>c;>fLILMbEMzGQ6VTm{wC2DszU_`SL;^Ahy2#;Ak~TpgDfEJQmM@qWA(Vx1|b z9Ui`L15^(kFMwq^x3Sq{YQYwBoGWbRtxQ|1r)JZS-E0El1TT#@rdelG8%be&=>9Sm zQtr-srKbp~cf~b(HXpy?7j@9lw(BuK$6Acd@60RLZZODj^cg%yG+S z-#5qhpw;%<=u=k})YE+M#Wt+UbjzB}_iXFiwvUn|ekE`I zYZg{)yqd3O=M2>N%}Z#DVC>vz=jD9pX#u>t8sjEFX#N>#JJ#|PDs=k%rlUzk)U9Cu z)pC@cn>-!3B=|J>=nO*d)6N;urWc9NV)MDTd%=wOezt=%M0-JjB%h|(h^Uup>q*qv zr-`lLSJ7jY{R%C#e5p(~t+a6`tqfAOXa{X{it}nHk;24dN_c~mo;K9h3GTK*>kA9{ zlE{0!_?BfMT2Cv^jEMLz3MMN*KncU(GcUJQGt%KBAr%(u@5kB?2Oqg5Z`6E5#=&}&7U+;kRS zMY9euCr~nudl;s`T|4@GoGzZs5e?j6O+Q_A`Vs7TW)r@8o}+AuLA@Jts7yAp%WuY= zmVd5XBE$A17l~xb8fL)O!RvG7GLlcqIH;Q{tdB%~_$_+Bu7*{I{3->Ta#^s!RK<&a znHB6+E_cjp*pEE0?1rt&->Pe|P1OlLB*J^5QY_yvsX)f2?t>e~U|g-Nx$CJmg9Se0 zd&?L8u^yKFGkmJrY`G@gS2k2F9ts)wNHw{zDRy{$xv;`Q;v5ccfJuettiBPjsmK)9 zPmUouF?Kwe(SL09pDE{wV4(bV7dh}p_Jes<`|+c+;@xIWqpvNlx?+baqyw@nPt@uc z4f1m~_P25><^ww?vqH~CaUmBk`K+R%z93wCUo!zRV+X!itWmY(qSTF5WN-16;;8Ik zN<5nUmSaCh%DaOjpA~vqoRuDB^8c{+o>5I_UHIq>7F0xZET{-LGKz?Rih$IpD5x|A zm7#>72uMj#AfYA^8!Amj=@1bCkrJgv5|XHhfb<$jRa$@$0)!-xdc(Z`nR(xtx%cC} zYuz4-yi(G?h7{Wd{^xyCDX}44s+<0<*eu+SWS<_ zM+H=XD+(UcoL?I-OtiOL|4^RbILRpT4U6K87#QzAL}bTZsPz6mybk)Fe-|PV1d@-= zC~ebg0mjgX#`pojcns=6@-OIMo$-?8dfaH9vvX{E&C2Iz13{QdNT)K)`KkFF>`Jr7jrYzKz%L`sY=WIV+-g}YD;@u%$TVp!kGI!*o zy=sNs5sQJ!lbw?(l4heb>wzPANq^-V&YEucvfxEP7b3^<&HHKE8Ymgcik}^&40XH&|54uS0)?|AR$4 z{wIXm{=Xqq$GxXJSLS-(Hd5Z4+WJ17{xkw0Zo40HN2qz-`ULHZN zXl&nO2U{~zxrZ$xcK$GbpnnA5f5ek-%iUlRj5L?jP&#Q-tS(YP>y!BDAZvR}$Gw)LA_H(L8C(Rc*=zlvMqUB186?RE>Ky(j%lG{Kdy$h zlyD`Rx>}BtE?qaz3Rd3=q&5-KWIY7|s(UmEi(>tOXF=MvI*B~nvnS;N%F z`*LWox22NQJv~J>0?|IOn!pp`(eo(=Q=Yf|$fumxmkEw)(gMw0&jm4~wK#^S4 zpk7}J9oJ>4VTkl?(I{7DM4+|QVV+WxFR+e_QVn|;zioVe&AqgHc4=9yfVK{b{K(Lh zJO98Q9e?&)cr|rMfqT-dY+0+k=coN+D{=w68ZT~)AU9^Y-lA6P9yEM*kwky)q#f%U zV`w@*sM5cz6s)CSvz0wlf#{DB@{^Lo8lSI1Li#Fa9=+;!)$+$XsS7AI@MWoS(aIe3XIU$Pas9yz%h`D_?FZ}%U zFufEjA$%#5Q+u$lV7Ojsq9h*W&<0dE-YVW5L$wRZ+U#J3(aw66oA{E46#(-E2~{}y0f?~V{a#MK3U$^vU!GFeOAkqeOK!=y1m@)FxlqzBd5!WK3R#YZ9gLu?`0?B}j$IHp#QJcng<+YR#A;=!30eanWK`6&6b)yQWased4# z#^{<}^)Dd1d@%R+=hW4MI^R>}1y6PTiLVVz3QC}Jpj09|)$bfs*0L(l}kkz6>0DyJ7&(nVt~g29nB1hlC58lPfux^Ok6W zB(7dOj?G;Cv`S-oPbLgRe7zZeR@Y!XAJ|Jzt>`$(;a)`)SLcnc zRqdCUwA7UB3o$xMLh6!h11}T?GTT7ci?Jc3BH!nHpMO$T#yPmW=nK1B?e+7Y^xmx% zxy?#wnJYb-v)No3Rw-JD{uT`%fp~;BdldEtGa?0N%z=^gN1s;w90^KrPfe2 zpRhRNPOdX48GIC1UI+3sMKBGC=-o8XNf2MY7ce3*qrsImmYcjQ-$?1v>1c1h2E1=+ zu`lFkC52AZ>+?gJ<2g3lg9ZWNvztodN&qkUFA(rB(i6vlVm4xGiFCTy$w}Yr_OEx^ z)!Wvvs!!W)PSFsYn>CtZkvmor6tgchL!RAqw{)*47znA4xqHxqP}!qHg?gx;MQh8W zK2bwR5yXkrI?A1rnmM~U`JG9=%V(XLDNZq3WW2OCUrK%#(EBFpdg^UoIby1P;$CCS zo53*kEAM4iQ1ql1SyJ98En0TDVUjX~q)IiGw6`o$Cg3JyFVU2oPHy#U&-%q=t(AUw z<>?5+N>LYQMn_q#uaiQGaLAsbv%mS>U4!pTSjz2*maC98hl*@fT?_H$9mKOyTW9~S z?~$i1;&yJ4Yeaqi2PI($twkLfdP=H#PtXoe?#D$tgds;Kg?e=Y@LK!BB-=dVjVEir zk&+ZhFPw|h4Pb8A*n9SwR=Or|MCzBMX&xQAMXyy>^x;i^=~!!v;dJ;s)E+=8^&qVj zvtN1PvDsp!amFhLLc;ake_xmK6BtL=e245ir1GD07Eft^h||aZKOSauO@5%yM)`q0 z|Ni3NvHHgZ&u@Lu{;VpF8sLlC@=CF8e_CdHZ~Q$BgEC zvQ2{a0L^PlpI~3F{4@O<=e%Wq|E~N>!oEXj`v<(`d;GF|4^jU_&HR_XspLy%IaDo7 z>0ah^>mhD<{vt`PQz8={MDwQ3mb?2!|M;guC2r^DMIj44mijQ&*FpK-SjCm{_A^|^ zY|KrSI@;$|ejRyQAp4A8DE#T4!R{FHi-ENC^aLr0h>$41iO>C=GLLiK_S*wlY5(^F zMZVAl>4uI1$6gk+1w~JG*^d%FLSH#5`;LPgGWV5UE`KUNF7j&{5VL=KS4XZ1Xgni8 z*QkNrjnD2g6a^nhh*8hKI)qgFjYZkw)vCH#yX9fAtj&1rzOGE)oc&g^ z+9as)(eon#^A|mwFcrCl7aH!DK&MpU6cp7@2dWx?2q%Rq8VBss^-_x* zvYKDV&pf`byz^qI6&y&k6zqwbdu}rN`NWD*fBy~T3n3ebL~>^8LHC-2VrdwXwS{Zq zQRB7J{12tc=IX$Rda+iF1#^RRLcNLSF( zwc#ypc)z5H`s0>Z*wZh{rK?`+7rtZ_Qw5< zD`*Oa&DXxs#wz_*C~&{ySO+Ks+h?_Ns6~c&)@Dr-J zB6HKxTbz|3$~i;Ihr`w#8!dNyYjcTjF0o#%h$;A^LED2%-k(M%E8E&W6tt%0Qtaf7 zd`u<^?Q@P;r)6zwWlb4seat>eej%iGNd4b`b$msA258XptR74rho!6ckcvM>wrjGdJUrz6+oJ$Xl9Q#>PB#3!KdCllFZ}P;0G$lpjME*?Q%F*2YC0J{P>)fA7@p^N$p<%F1nO8JQiL z79Z_#kozU;jkWsID{!xB*lf8XO_e+5xIV7#J}H6``#d8g`&66i6*G6=4r)|r>s!%i zcehXZ_X=~~lTriX>u)VTHi`pHQ?kUvZw`PGxAof4zMx$+S^Kl%XX;Oc3!6rVkx{nZ zd41mx|DPRRY_MigE*wc_zly3_DCtOu!Xw~7d$^wQTPs11d}uOOa77v#Ix_6IpQ!Ta zc4@dl@w@6d?!j*sR1~wOE#bmdwPlf+LY%Wj7x;`^o-u!!vEDw@wl3;*p;v6IsuhL>*P5wwbH{uo zo;v=HCqjlySoJUAeh&EX2j9NiF3!1a)1$e)hYV~Uf|se?H7n1}9e1UDu-K6nB#`=2 z-J__G2|e1QXop(g;$X9NY#@E=&KJO$;!vyKK09Ca;<*rw;TM^^XUxcdoN z`m*2?Qj)6K@f1kim3S&Tw#_iK8z2P}kEum*%A-yoE|F#PK_Oq!(#U+qC{@yx zeyuYZ>DD1*Z5?*9E-}A;T~f@DdM>nDV-`V)Qb{NBSvm-5XmW%O?hQc`LO*IE_GTOD zLe9k!9hE8motZ(U!uHON$0t?@ae-{GuY9%eF$~EIYIu`nlxXsfPl}Z%LRg^b&RD0b z^GCUf@uoOur8ZvG{A^Rx;01b1XMsF3?5uB`&YB#6Ce+ir;dwE0Tk94zUB?_UE7T_a z2LaOY;+KZzm*lw*Qy?ILD47w}V%Zp$j(n&8S}H8LIl_j1;;w67ArUVnR5`XQ)f=4$ zASP0L-HP`)W`NJc!%*_sCgz)pH?Hr{hXpIglVzD6 zpwiVs>~xhss7^c_#+9x-6*ny6#f zZ;9LNhhBrOZ*>TDsq`{ooH+ zYFKN3k56kw9av((d8*Y0z1IEM5CI{^wy__-FX){6mP=B!?bJ3N`}y~fWww0H=j|Dc z$g#r8kqvlfe2*M}FfUl1;LRxBFP(1@8nBc=+9~`HJk2;xm2STZv1(r{`PzL4&LmKs2L#t4+q>x_ZqPgC`5n z>zVqXY*~1C3lFotHR)g-AC*4XMZNSLQ<%YLEhN>nrw3!GQ7CFONg`L~z`>9JY9uXI z7$Os_P;(5b%K}DC-s|xff!WW}3Yx5RW%WWET!Q8|+zm>9At)^uPCg3@{LDRR;~O_FqW<4RWC(91FG029uWl&^uo{xY5U3$|1_!U<_z+ zeHYo^!|&wqW=F|G<%g2a8>z*PsUwb7tq?4@v%HOoVKi^^gBA3bk{%#nA`!9T9m`Su z$l&TGp?CkAe&ZVhonw?>8c-T7)tp}AtK8OPDSMg|blVSzh#cN6GVQn8KRdFPTPNs5 ziu@r;>it&X&ATV@wA%5zLj$V-h6FBMF?7H{c3r?8%+D3G(5h!h`nhcTOQg(B!3<|T zQ6go!(Jr8zY_nJwr_CH@gj1Dp0*qWFM@Ad}E z_Bwg*zbIpc;B^5aT2w7eQig2bs!Aa`gp(yt3Q$L?)={sKCeM}^XkZ(p_~+Nxsr-TP z9Bf`}3A=lBcJ2S}&wE#dwZA}#uc!wsw)@r@9hH4tF?OVXee~;dzgE!j^4`sF>YvMx zP8Mmx_h`cB>-rAo3vWr|$uB7V#ab3}cpq3Cxb($UWI5`>Dk;gv=gG&yhFZtBIjcO;v+*Z)k;_EFeoZv8SL6FljW2+%4g} zXP&6zkDGHH*WdVFTR|!z8Q>Nz)H+x`K)?1pU0V%6AKl4OGe9m@@XRG|u>3LKH(}h* zou_z;c&+a=@vQ}`FLfF&Yc(el7nFK`)Rs0oa$jq^Qe%0(QIazFEV2l|v%3gf5I$=u zv1G49{6PybDvu||MO|usiuz7vPFc4#Ly&L6Bw~J0Smw{U6;#a~<#9{94L3jQIJ1xr zkX$B2d_&X~li=YO`QlYdg#oEwLI(vK+C*hplrCI>$WzD(@?G>{Ilkmw9!fozV%Yme z^Sa~vKI270yGiC`6=E)CiKD2Q%?#Y5#lbbwu@VWNC2Z2H2ktZq&M=AgFo1`nmOQ5% zH}C|?tHyPh1&Ra4Nh{XwYUv zmFqk&qKx51M-QEV#q+Z%25W%t%PIS8KLusV8Z$U0te$PI#mJX;2EuM<+8}#IOJF7@ z4h6EYToAF;+GOC#d<>sf_^Ee^^4>stAo$cD{XA#&l%6?zd+p%CRZ^-+#sa4wc*RFU zLi{#kN5u>~gD~LD+$#arX>zRFrxwD+oxQ}Rp&duAAD6Ae zO_p6O&f)2*9b|-Yk<)9lrOY8Ba8}XOn+QKJ&6G*LA;-(#UU|8Dbd0oBh}(VP9()4R zEu&6%PP|Gl>dD0QObOuP&E66w7gc-!-HW~>`h8G7g$Gil6Sa^Q9^ow6;f3vnje!?3p*UAl(C7GDKRH5`&MS%4h0a+$N@pml=kI zW**a1_WW#yBBaj|XlR5}5=w-$@RSxaF_Tx!2?xzCvFiTlXBoUs;qdD5=(PpvF@mR+ zm6hx6njMH)dbD-E6yW*mmCM?gxp-9UK7)F3)&!Gi8pdp?9BXY~U?i~H9I;873scPY zR#}+!OcojICEIrFn|Vz3j>qz7u5IsqF)NoPd~;B)*Gqi}LhME3dC3#uZ1O(L#Mo^O zysVa5m_=Q0YgQgzRpdbRtMkCGeCk2(87X=g97 zDLd7j_tY6njcOnkGB4A@3{96LqcZ$=M?{Tz6hKUxL~Z#F{sjD8ljohfX@BFc{Oz%S zSxW(Nbud@=>t6Q1R)|8%K2Q;HS1TmI>!ZyhK6y_Pq;s5gadnQQMQg)KpN}UEn_}Y{ zRlK29=py@8+&&DkbahpHN-K zcUQ9i)KugWbgz0ZnT>=v)^@{TBsg#7?F%Y29aX6WbOc6Stlz8_i@K&h6IBDAsXW_Q z+s%Imv~F8gI2XE%Jzh?@jXss9YbXv>T)o5zzM@vIJsv zfFZ4xx@S4{xV#53(w4WMiLiVQ6S;v4XrSHXSckG5A_g6x(Yz`rfEzZryCwNsZ9!eT zQ3aX^{ncwDi&R>5$iY~FVl5==rHgtw!&X)&w8XaO$)0A_kQ&np<>R2*@^6d>ITG$tJ0z#{^fx$ z@ivK1TPv`1LiJ`v<;U_P;~#mYP|*y5&Ny`D{{%8F{#(M5|K~N9NxEPEGFznw50M~Y z`AdzR70j>)LEizb){U& zXGO;Ib^Lao0_=i;jLSXi&Mm`qb#+ibANQf&j_DZ6DVHnR{b#l@#=dc8bme3c&O((2 zY5e;9$Yd#$w2>o+U+O1@KY@Xo^0|_o?2sL~h;j1p%+3GcDVQS$b6K;j2!_xSU|IOMa;YL^EE#wBPWf*6j-Uw@+#n^#-ZYe2tGI6PM`SZ({+C&9?3u^ca_;g zJaT=fDs|CSDzuhNVI8Uc?kkj!HOc_`W+}d%5Z0C`FEgU7;;-!c`sq6SX_tSXj2m;Q zUW|>k6_8J28mlkJ_L=cV4a2HJ0xacon9|W^H2p=luqh45&70xlG#|4dJN#O6g6OL) z{$wnE{tc0Rm)BZ%oOA767X~i4S^NyNw}z=ZoyK zf0pw)m(72&A<^WxCir!Qpm&=LdRHh!Xauq|B}J*7Dn^DUunYu?gm~Mp#EQBht3Dk|11s4swfRmI@wk5d z0?5x@@(>0juTgbX!Tb)GK45gdDUJipYE!qhX9b@RBV<@O$Sd%DSrdU%L4-J7-It5} zx-M`r2Jr)HnH<2`>B~|k{3C(k&-gc2Bp<5U)BnVTfpF4aqyWOMlxcnzqOKSnBu>8! zEA&Y3;BzHP=z4u7D73De^FktOInB)7Y;mC<;*FR%`@C4T5HbI~2}OQc9uuqs0I)7j z*02ZoLS_}SEmfo$Wv{VanjzP3FV5mZj-*Ef`f4I)yNg4~PRMMJh{nCl7Cwcy#c~oV zZbi2g%CG|!TnfkIu9XvOgOs77HYLY#m=IeN#Ao%#?C5i#<-u%PDN)Xbf%(IaCC$^V!Uvlm*|1Xw=8EAWJH9HfU ziK`zse{HAq1gF^l#NFt8jogfEa(^MluDztWt_^AqIJSY!{7Ox~ARLtK=_q%i2hIv9 zDAc7Z2e_j!DeFvylI4KGCRjniP~Ppsl&eZkI|>;*UOPoDA(y*fb-bH% z6r85)9Ym_wOM!8oMhyGa=o*`2J8!t#y3ewv1O|$u$opK|NF3N2BV{NEqqutv)%sp* zqt=20TaV`S?}*1{vGQGO7kevRYsobfBL8F zSO4+VEC1V9zfr_;QC_+u`?ev$^H*`96Z$oy)wFdWkGF%^1*HsKX;^{9vEiFKM^C>j z?M%9H{hH0~lzPEsbLWrcy+K-Dvn1W=XS51?+s9(wZ3d-VImLp1S3KR8|5EE6?T9=# zv>Zuao31i=zb6J4MKPYIpmKE>L;fk}h+!(VT{qF*zW3dN!2=L{lNx5fiV4RgUUU)lL+Q z%_MYJ2WazZum+<~^D5}0<)UG9KOk0@YldZ;L+3&%Rc`Cpis&l)dZ@iu3ggpZ~05IL+J%pD`Q9(v)}hp+gM` zUbxGbGltTrJ+Du!7{Ypt{a8sMRC)+@IAU;fU+sLG)T0Y$UTPa}&=C5FGLM?_Y7qo+ z>5c%Y)D|_$Cv|4+bYw9{!wiJB_lT>g{sg2K+=b4JDL?KMs2*rjio5Ww?wk^}d((Fe z9ZIA|ajZX<^M|U?Vyd`YUPQU=BTty=;Y9U(d*cES#acK#Xq7JrVfWbnQhn z#;ckAh0-?m|Bi+AQa`Vc=x2TT?cnKh?c= zN+u@+T0w1zPBS4t`R7{!mb!I%Do=;Ge*OaszinCfEHL@JTl~fh*L|O(mvbyX#W`Dc zJx2pg^h5^@En^(?C^hAKNt%}^u_dl9Mgzf?Lf`IBrxOa}mJ}+=>f7%2wLgkhkSKsB zD}7-elFG_K$)h**>(nk`B*HDFq_Xa#LymT6Ey&3P#K&Tg-@p+PBt%|-0h!`=)n-Qz zxpP;|$?1;MPI+C@pzc`1qDX3=c@qEsBsz~fe$e#I)1}@rhqfs$v!v(Ewzo)L2xe@P%Rof1_?^#wi82OI% zSJ>b2$Q^*UcCa&ji^-3sAN(m#xOGN{x#pe_^`ZXp2G(+h<-u~pvp%<@TYpck|FO6K zeuKEgQS%X zQuCpH`sFkE1^d@dOuPv?vUT5I-tYG}w%+_$>zO=`@l`F9U+}f#aa&hlYRRF09FsL0 zw`bkjm2aky7ZRDgV}ipE6#n(-<=j0l7;4g(5%w_g~zjGN0)Wd3PU; z>RuJ$;JW9ZUR&v^kO(;De-iV z7uvY3Ud8EBBeI^?Ihjtx>R3ujf?hqp?0IDZin5G>WtoQgWm!apx?g+ZxATr-En`rS?3`l6kN%tf>fAMo6gC^#ZbzH08Xs9Zc)z%~k zc8(*SDBDudrnsib2l^WQu!7N?sO4Ylu@*F8w|bca5FzHPzw2Hxfy z2Pw0SZW3k}<2ZHNmRB= z|H)||&p}{Dn@*h-(8lIMz5JeJLb(E`y z$_>xRfwd}=7rGk==n<=|BfQu0L6xC>9~sw=S8|0rm8-xwST+L%%vG%GNTvkm4S#>M zMB8R#J{}ikA)X^7kx-04Gt^(P-R#><84pZ9?M~7@qQ98pdC zF5U?}aV_ysC*=ibNlXB7ma4MfMil75&fGNk%+IhzXE~Y)-(Dz~^NG5(=B|(N?Lj(s zrlzNZ0`4Xt_DfBsMP|fKvy`L(4|8@kTZ9GKN_JhQBuDoyiT9$pV@wp;u@ewB-Ub^_ zz|9b};le7=nWmgb8vXxyPX5klBnubNWLcbuE&ZbQ&a7Zi&mt(*q`zNXSCGa7{F_pOx&D&AUQF)2E~xj!IYA+nBtU_R39XhT;o(7)0WtU z%Q^mDJUIZs2padaOE$AG>11@Nk2tZDme*UK3aHGZ@0tftjb{KQfx+cNgW(2CXNt|WRcTX9Ns)nW3#TKJfz`4S>58?ha4L**u!`1`J*PwL84Q4 za_d2SxI4K2xvi8A4SB3MP9cP(Rxf>FB~d+YswDD&?27N&f89I3eLrw$Q`p@TWM^-y z2Ty(E;mY~A52vOlG=jb9YH7Ay#B5kquS{B*nJtL}Us*LCHM{KuMV}J##CRy0$p<=_ z^B*kKGcBr0KQ(u*@gp&UMd1QV!7G;($@yq$Se{X(f!F6X!+H^ehLQG9!#x;+XZn-a=Ry8T2@h#sg+i??`-q~uJ?Zq#g?(9r(!5Bxbtc`aZ z(p85otS#t(e?HRsitA)vyQ2^rEByAPsiOu0>$}MT)@JK|Nai)Cn9eOMJVzsg`b3Qe zhliu?MBuBG{Tt>MT{<0AJwqEkn@*p=z;5osG)d!Mv550YPb$TCiL@wJ+(5WVKMZ4_ z&`hHfFS#>wLvnT3OUWk0)a2lSV#1OD6CRHNG)z6XBRGqW9ZIl$E>PNIH%9UjEXj|Z z)P#@-gyGwUJ#R|e)Q`e?m(s~M`_xQ`pP3B79otu(@VQoY#axk8)}~tFBr`a z7pW4z)v=9=)RBSM=@HT^WfHIo{`i}CG9A;j;K zkBMtYP5|cZ@VTanuPPy+CU~V??@UVUs1}*QX=08~2WZ1rye&6hav}y1@tj*MmtExFoBaPZqK%vP=lpXXd`{y)i|TD@#zfUp4&o%H($$ zC-_L(DR03jTErQS7$tM$KyI_wfEaTFCWR9I;LVCnsl@uZqU!E6^IFZKEg4PC45%^v zjrtRs!wG7+vIXXNmab>3bx+USg<8r6k76Dvs;PMfa$xMq?N147v|Qby8tZP4&2-U! zm`wxFvj(C&2YYX!apSUAmN0TH{xcuP&L&9kny_>=p5cJrh6IZn)4|vkTIW59Yh}?5 zcnDIQ2qhFd(2&0zl@0Si4l(LCt|OW~(JFx16_Y$Py#GuTad+iKjgQ`f9~ys*;XM7c zpKG*&GnS2~zTM~twfhUz^QWnCewZyhrrnhgJ#w7E$A$h_M;3x@XT4)6=JK-=%>Vk>eCiB0hqu29sVYq$l*J5#=V zR4MW*M#Wq)8=)qUpOBZZlS_Aw++@%E7$2!l@h3*Y$%1cM<3d8`khwr6naa_OA`hv) zGVDart@hvOZ)7Igw`ib($`pSc-gy)48BN!je3#+{{sv3r5*EhLg_gzkN$GG5ErM!R zj^XDJoua(yg1dgUVmNlX-X%e$FcF#u|7)xpm$ho&)#O8GV%D}PUI<;k91U#Dc%Tl{ zIfNWZRXwYSM>rc!MR#mrVW>Rx7qz1YQw+CV_Li1(#{R4xIoMtBDQgWc*>b7P_%3$- zWz~4reKVC}ySONgjnMoX_WiqD_8+-3JDoH`Y_eb; zi4OpgL|X5g_UbliP&DGSn%|e#T=)j*dEq7Q zx8ph7xqYLF0W_a=oYVXCp3-sc`fM`gFmHZaHe}EdsQKN~{z9%|ZmvULX#|k7W*9>b zE-?Nf@j|uYQScUys)vc0$)~9rW9rpwU*|`XE#B{_5iJZ%#Q?-NeV{kg2=e9cbk;xb z82Fcr8P!v1Ukkj{jDHL*+v~ONJ#xMZRMcK8XOc!@yd!NaBh$5vo(r7AA>4 zFO{!W&xU1pHwwfO4*NQ7O_fuS%|p51Z-IYg(?SSwtcYzkIOhg~%zRw48Zu%Ov~RQ%53Wc6Hp zvgzRsLFo<;!W6+x;vWl+0W^+8x2l0iRyQ^oT26~TYEd|zVoR13HZF+G*~~`v{Vc-t zHUS3tDXhWY`M^KSRYmbPnAQVP;GTH4%UT}fty>QANOF8?rc>w?QhVJ!^qr~lw)~|S z{mkbOsmD3)PiajsoPx|fS3;YGi-P1 zT#U}Gc3TUk)+eqR@4o-i{)vn?!YRAX0NVo*oS~%c?W`?7f)c}tl4SFqueuc(QkD^V zdP4|uTq_~$jz#lyxoys12r|*00U?>Pq9Y0hxFr?b7y7rU85^u@tdYZH78%tUOLk#q z4Vx8hNhv{%gpKw3Fi%{guaw0Wh$-esX0_QDCtV!@VSUdg z=c0!5lhm>TWQx!>Wh{0SW$HO!d!UAWr`*-vO|$Ae716}7S;fUysed+`Q$@j@&3^*O zHjEdb%_%*d6&;1}sG-#ycSE*Ns>glF|M{sClApky-Y%nA+^Fh#q?+@^W_*toS~p(|nGw2n$!0X&8RAm?ZI7htUBtc?F;D*s~)9~#`e z_l&Q(Q(gQacH`bAIZgFKA@1Q|H*fWLw|%Fl@00K;_f+x);+&{#NQW)U912Kxbv#$v z;kMfJkxRf%KCEelOfT_+g^B^-Jws!%JtPt=f=F&JR9HnF%Z+cONiB9yeX56mA|M)$ z5u!cKQ$^(D3;F&=1uuQB!3bj~u4w3wk=pNkI%WdUwt+W2pvK}#c6?Oty^%ikOf#LB z{DDW~&}x;H!|sUj(SVp7MhH@M1AleyQp}eJ6WbdJ%?52c@k}cL+^Y}B<+ri zvI;$hO0!fs!R`JWr5+7p_AW(ejm4zw;0UOPH1r?TG{<0O5D(_Lj*>IcWS4;n%U>Lb z;;%3`D`TBxvnncgnV_gkZc!SB4-HX8nT>I2o_U~<3+1IMmlOAz08 zG^Lc4=Ms@pGm~c4PX#$XtK$c~7VG^n1x#(D@5qvN&0zd69>)n_YWl`IniJrt#bh9q z?N9EE>2}jD(iS)QxDXIgu>_;M>S&LqcT(1r#Q=V*^Z6fs*t6^GsS_6uzcY~9OxLu+ z0^0pdABulYeb>PvTbVo>X$ou-hXJHFQ^1;i`z7#4JN9Q8L`TPR>l&nJL=6b8|5o+ag5VTl-bGSCJ7A zonPDT2$ak9vI@ERZWxA z!LDkHsd_oUKFXO(y3ku05f|IXsdq^MpPbZAa_xtaXQ0{LE$;}6RyaJMoX5u`#yE0* ztotqx>*c@$#WqOXWT|Q8(u;XP9M|I!ulx1$F4+_Wy`B+K~4Z!f6^q$ zM52Gs-=b_bodOAAsWTVoC?A?NGGHdN#)SOFQlJxLar0U(`@JKkas3Kf8p8?b#_6Q) zM%z7$a6vVh=H4u6XBK3VJwCeV7`uEW$cH>SIAax%V*kmh!-Ko_sU;#`S{6}ZK) zdf9^1zoX%;|3Sk#e?!C9D-iihyRSs$5MQj|#)jYUM3$9DTntt{&}dqCBc$xsYjccA zSyE8rGZJvZ`10=ldv;M>rUOvXy@a{EcRX_w6(Dn$n-pNOor6CoDkxK{voO%IAE{T; zuiK-JoEjQ?WO<$(lq*s`^2tI!tbs(xgn^5cQ-Yvci@3)`#&wEw;hu>^@p z?Q&$=vMAezfT>@IvDgyouz6UYNUa1PBDfj$nA_Y*so~L4l9~MXHdb)iucT={lvNNx zOh+X9Ze$c>NOmWVQ~^V0S|)7)OHpRux&pu=DA)?Xo3cr4k{=Gg|0Ii8teoYxbIPpsjKeG8rO|II_x2j%vywWSDBWx3oc1b`booLF4A+O$=nqbjnZtmhr=q&vwzbo>A%8`=iyz6(n^V`orv5eHe^W0RwSN$op)u>9ltxaV|l)6vnhz6=p9#*@LyfYj?dC7xm@Bq>4 zU8Vx^;ctwub+SdR@)d4vf{&fx{IjMshMfzayw_4z*J*F)_l)&Z6S}@@VXU`Th&{P z>~1r#_*T1n1$PYs8<4GazW!U{2zmE0dC$cJCr1)|#%^*}1vR*h$vPg9?>xP~+}d*B zOxp}Kk^y-YDj-}yL%^f-$5wzMwWQp5yCo=YQ}vRmOOeL&3Xxd0_0D2X-O>al7A}~{ zS`u>Pk+HtTbjL%K-F^G%GAtn8ke4&AIH0W^1GF5(_VeX6EWj+8Sn=S`y*>sK2#W>9~Xe7H- zsPRXj#Fj!vp@0VQ9$>bOTZ9*ZxL`&MVerRIs$F84L04_RX#_oKYG%vJgXkhNgcbNQjWhCxjmqu}!8;yf=Y&faT6^!aDu(nGH@fgq3*W6N0iu!b>B`y1 zB@qrU2rLoCzBp&8dy5MV)P0ciRt~&IFHMQC4EX=m&b3A*nXb{Xrfh6XJ2{#f*ksvV zWtCciU^=ClY36Cl%v%>tEy*h)2$_{O7-UwOMoy(tnYT176!BDwlNVAH1O!r3G!z0A zN)+d_Su>}p=Fj;Nuv^EeL#R3wodXrVy52jCEt(WJ$HmGs5m}io8~G z>)(3wt8;{$hn*lMAf2M$=jsv)zOm(4!(;hTBgZG^5y~r!s9pfniEX|ZS}AF88@Lx( zTYrcp7@>Lj8L^@AayE6Xa|>+nkYO?!MNhbUcM*>Px-ICmbS@8LlCJ=-CdfSHjSLc< z*PdF6YHthM=fj9>dQR)Ma;EN~ik>!9ijL;?!e{mh!%}h5|qJK!_zuDsPGD$;{;*JDSWg3iiGw($)FR3eXTcJe4 zTDliP+c@@+f`}_&AGxZ;P`hr^y+&!OP0coj>I9G7V4ou9a}$6Jhn2hkgAe?`hLU*{CgFmc8E0F|fwAdH+h=Ji<>iVD7CE zpezWBQIty2m~Yqs>_SgU!QM$i3$0O@re1K!#!-GX<8}E$n$oGP=tV-$k)iIITZ_BM zr#m`A+$GF>sJsSBj#jw}+SI~v%-m5I3P^mR-J1zWVi5Y9^Q_$v@)Qsc=AzD_JIc-J zX533dbtrLEt`Yn4G@$vr>4LO9@yB9@r8_l}yQP8S%B*~0eAk00>`xQI7W@gmx-6p) zvxl}k`js+))#WY~ksO?{tv6z(#l?8h$VJSWLNsZl)+%j!GAq)}Vry7y$`bGEUPwd$ zra@62$L?lIDUSWST3qH=Q+v?qh77=v#kYHWRLsdeb(Pu`o1*$LB{FIJM0JXqw~;=) z%H{<4`|OO84`Nn9rYFK-5wZ$RFCATF_-ty>g_0lY2uvt}=I4+!bfL7slDPFgJra3F zQzvK{Ke{(%vgh0rH)Jl$i>_QN?BkE5fPEv*|4rx z*knFC#NKBdKW;AmC?Yo=r=_Bv6>1hWw64Lc`AB4K3ZW2*(`bh32C9t=FfTY#GG4wL z&^%Mm_f9@h(IV)@NkJ>$E)lc4l>IBxZIQbsUH^_Q78tJ414f#+7qt1Tv6bs6)&u)0 z9DsZv;jmScujH)nkPSZYU9swY|2|p}eFvM-unzG=oo0LAe1A^r>!}h|fen7+$kyZG z)tYPrP{;hIirsKNRs7UjWWJ%{9v6kA?SU$vLTwDP?mR@j2}d2)#=O;H3LWTLJIfvD zL1FRH?vZ6Shc^J=gciqLH`P3Mv}%u8E|TisWiEin|_BF_kzh!bZP&{0vPe|xlWaW{U&*A4++Bq*XUIGTn$L^ z;2#oHP{>XUGeuXJrrA=J7mT}fFcedjgvhQ{waDMp-wj}*UIPTMv*ZI9YRpLj#SybP^op;cH_2Hn_9^r8X_Q4b8xOzMN_Sa|`J7c)vjH%l>jn4SVlF2SVeVa-11m1+H!MDYh2AF^Wli4V&iqK~T`c{Fu> zsNNJyMt^T7&X&1k$kYOsxlg@B02NIXR`z2YJQO!{dA%|9IZ8+|7P(i5!7URw2E7st2+Iwq z0Yc?M1xQ8?ha)N5!L37Y+oy)r@0=@zzpUSocjUJ;E@R-@kbg_k`?C^wHT2Y*P;99| zL#um$e&8&VdYl$2xXB&1zBcK^n@L(%++4t zA7V+UK3hL0F`=noXfCCt;ygmbDr*QC-_N^5y5xbn(G0~SqQmRe!L49&IT`dya zvM-wtN3~=|39!1X{#(uN`U%oEm5}8cnr$pFB1Zl9*urwQu?s{17m5ZUAx?pBXug z=HawW=4>lJIqVTq_*is3UK}j-mcmKHV`o4A(;pG(Ts^?by7vn!tCRO~&Ka%p03*Z7 zAp&2j$nRul{*1>eww(V$^#!8Dv;NsnaQ>`+_N!ZN)<64c>HOKpXZ^FY z{@Gb${@*KOHVg4Nmz(Jpv+ Note: To set item as a batch item, "Has Batch No" field should be updated as Yes in the Item master. +### Item Setup -On every stock transaction (Purchase Receipt, Delivery Note, POS Invoice) made for batch item, -you should provide item's Batch No. +To set item as a batch item, "Has Batch No" field should be checked in the Item master. + +If you want automatic batch creation at the time of Purchase Receipt, you must check "Create New Batches Automatically" + +Item Setup for Batches + +### Creating Batches + +If you have not selected "Create New Batches Automatically", you will have to make Batches Manually as you go along. To create new Batch No. master for an item, go to: > Stock > Setup > Batch > New -Batch master is created before creation of Purchase Receipt. -Hence eveytime there is Purchase Receipt or Production entry being made for a batch item, -you will first create its Batch No, and then select it in Purcase order or Production Entry. +### Splitting and Moving Batches -batch +When you open a batch, you will see all the quantities relating this that batch on the page. -> Note: In stock transactions, Batch IDs will be filtered based on Item Code, Warehouse, -Batch Expiry Date (compared with Posting date of a transaction) and Actual Qty in Warehouse. +Batch View + +To move the batch from one warehouse to another, you can click on the move button. + +You can also split the batch into smaller one by clicking on "Split". This will create a new Batch based on this Batch and the quantities will be split between the batches. + +### Transacting Items with Batches + +Batch master is created before creation of Purchase Receipt. +Hence eveytime there is Purchase Receipt or Production Order being made for a batch item, +you will first create its Batch No, and then select it in Purchase order or Production Entry. + +On every stock transaction (Purchase Receipt, Delivery Note, POS Invoice) made for batch item, +you should provide item's Batch No. + +> Note: In stock transactions, Batch IDs will be filtered based on Item Code, Warehouse, +Batch Expiry Date (compared with Posting date of a transaction) and Actual Qty in Warehouse. While searching for Batch ID without value in Warehouse field, then Actual Qty filter won't be applied. {next} diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index dc7d73d45d..0175976fde 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -3,8 +3,6 @@ {% include 'erpnext/selling/sales_common.js' %} -cur_frm.add_fetch('customer', 'tax_id', 'tax_id'); - frappe.ui.form.on("Sales Order", { setup: function(frm) { $.extend(frm.cscript, new erpnext.selling.SalesOrderController({frm: frm})); @@ -14,6 +12,7 @@ frappe.ui.form.on("Sales Order", { 'Material Request': 'Material Request', 'Purchase Order': 'Purchase Order' } + frm.add_fetch('customer', 'tax_id', 'tax_id'); }, onload: function(frm) { erpnext.queries.setup_queries(frm, "Warehouse", function() { diff --git a/erpnext/stock/doctype/batch/batch.js b/erpnext/stock/doctype/batch/batch.js index 2cfdb6386d..8a3906ef9d 100644 --- a/erpnext/stock/doctype/batch/batch.js +++ b/erpnext/stock/doctype/batch/batch.js @@ -1,12 +1,137 @@ // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // License: GNU General Public License v3. See license.txt -cur_frm.fields_dict['item'].get_query = function(doc, cdt, cdn) { - return { - query: "erpnext.controllers.queries.item_query", - filters:{ - 'is_stock_item': 1, - 'has_batch_no': 1 +frappe.ui.form.on('Batch', { + setup: (frm) => { + frm.fields_dict['item'].get_query = function(doc, cdt, cdn) { + return { + query: "erpnext.controllers.queries.item_query", + filters:{ + 'is_stock_item': 1, + 'has_batch_no': 1 + } + } + } + }, + refresh: (frm) => { + if(!frm.is_new()) { + frm.add_custom_button(__("View Ledger"), () => { + frappe.route_options = { + batch_no: frm.doc.name + }; + frappe.set_route("query-report", "Stock Ledger"); + }); + frm.trigger('make_dashboard'); + } + }, + make_dashboard: (frm) => { + if(!frm.is_new()) { + frappe.call({ + method: 'erpnext.stock.doctype.batch.batch.get_batch_qty', + args: {batch_no: frm.doc.name}, + callback: (r) => { + if(!r.message) { + return; + } + + var section = frm.dashboard.add_section(`
+ ${ __("Stock Levels") }
`); + + // sort by qty + r.message.sort(function(a, b) { a.qty > b.qty ? 1 : -1 }); + + var rows = $('
').appendTo(section); + + // show + (r.message || []).forEach(function(d) { + if(d.qty > 0) { + $(`
+
${d.warehouse}
+
${d.qty}
+
+ + +
+
`).appendTo(rows); + } + }); + + // move - ask for target warehouse and make stock entry + rows.find('.btn-move').on('click', function() { + var $btn = $(this); + frappe.prompt({ + fieldname: 'to_warehouse', + label: __('To Warehouse'), + fieldtype: 'Link', + options: 'Warehouse' + }, + (data) => { + frappe.call({ + method: 'erpnext.stock.doctype.stock_entry.stock_entry_utils.make_stock_entry', + args: { + item_code: frm.doc.item, + batch_no: frm.doc.name, + qty: $btn.attr('data-qty'), + from_warehouse: $btn.attr('data-warehouse'), + to_warehouse: data.to_warehouse + }, + callback: (r) => { + frappe.show_alert(__('Stock Entry {0} created', + ['' + r.message.name+ ''])); + frm.refresh(); + }, + }); + }, + __('Select Target Warehouse'), + __('Move') + ) + }); + + // split - ask for new qty and batch ID (optional) + // and make stock entry via batch.batch_split + rows.find('.btn-split').on('click', function() { + var $btn = $(this); + frappe.prompt([{ + fieldname: 'qty', + label: __('New Batch Qty'), + fieldtype: 'Float', + 'default': $btn.attr('data-qty') + }, + { + fieldname: 'new_batch_id', + label: __('New Batch ID (Optional)'), + fieldtype: 'Data', + }], + (data) => { + frappe.call({ + method: 'erpnext.stock.doctype.batch.batch.split_batch', + args: { + item_code: frm.doc.item, + batch_no: frm.doc.name, + qty: data.qty, + warehouse: $btn.attr('data-warehouse'), + new_batch_id: data.new_batch_id + }, + callback: (r) => { + frm.refresh(); + }, + }); + }, + __('Split Batch'), + __('Split') + ) + }) + + frm.dashboard.show(); + } + }); } } -} +}) + diff --git a/erpnext/stock/doctype/batch/batch.json b/erpnext/stock/doctype/batch/batch.json index ef31cfd4a4..b4a1405650 100644 --- a/erpnext/stock/doctype/batch/batch.json +++ b/erpnext/stock/doctype/batch/batch.json @@ -1,8 +1,9 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 1, "allow_rename": 0, - "autoname": "field:batch_id", + "autoname": "", "beta": 0, "creation": "2013-03-05 14:50:38", "custom": 0, @@ -17,12 +18,14 @@ "bold": 0, "collapsible": 0, "columns": 0, + "depends_on": "eval:doc.__islocal", "fieldname": "batch_id", "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": "Batch ID", @@ -36,7 +39,7 @@ "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 1, + "reqd": 0, "search_index": 0, "set_only_once": 0, "unique": 0 @@ -52,6 +55,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 1, "label": "Item", @@ -71,6 +75,66 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image", + "fieldtype": "Attach Image", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "image", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:doc.parent_batch", + "fieldname": "parent_batch", + "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": "Parent Batch", + "length": 0, + "no_copy": 0, + "options": "Batch", + "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_on_submit": 0, "bold": 0, @@ -82,6 +146,7 @@ "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, @@ -109,6 +174,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Expiry Date", @@ -127,6 +193,153 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "source", + "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": "Source", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "supplier", + "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": "Supplier", + "length": 0, + "no_copy": 0, + "options": "Supplier", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_9", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "reference_doctype", + "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": "Source Document Type", + "length": 0, + "no_copy": 0, + "options": "DocType", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "reference_name", + "fieldtype": "Dynamic 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": "Source Document Name", + "length": 0, + "no_copy": 0, + "options": "reference_doctype", + "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_on_submit": 0, "bold": 0, @@ -138,6 +351,7 @@ "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, @@ -165,6 +379,7 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, "label": "Batch Description", @@ -185,18 +400,19 @@ "width": "300px" } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "icon": "fa fa-archive", "idx": 1, + "image_field": "image", "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 0, "max_attachments": 5, - "modified": "2016-11-07 05:50:33.973883", + "modified": "2017-04-20 03:22:19.888058", "modified_by": "Administrator", "module": "Stock", "name": "Batch", @@ -212,7 +428,6 @@ "export": 0, "if_owner": 0, "import": 0, - "is_custom": 0, "permlevel": 0, "print": 1, "read": 1, @@ -224,9 +439,12 @@ "write": 1 } ], - "quick_entry": 0, + "quick_entry": 1, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_order": "DESC", "title_field": "item", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py index 157b0944fc..193acebfeb 100644 --- a/erpnext/stock/doctype/batch/batch.py +++ b/erpnext/stock/doctype/batch/batch.py @@ -7,6 +7,24 @@ from frappe import _ from frappe.model.document import Document class Batch(Document): + def autoname(self): + '''Generate random ID for batch if not specified''' + if not self.batch_id: + if frappe.db.get_value('Item', self.item, 'create_new_batch'): + temp = None + while not temp: + temp = frappe.generate_hash()[:7].upper() + if frappe.db.exists('Batch', temp): + temp = None + + self.batch_id = temp + else: + frappe.throw(_('Batch ID is mandatory'), frappe.MandatoryError) + + self.name = self.batch_id + + def onload(self): + self.image = frappe.db.get_value('Item', self.item, 'image') def validate(self): self.item_has_batch_enabled() @@ -14,3 +32,47 @@ class Batch(Document): def item_has_batch_enabled(self): if frappe.db.get_value("Item",self.item,"has_batch_no") == 0: frappe.throw(_("The selected item cannot have Batch")) + +@frappe.whitelist() +def get_batch_qty(batch_no, warehouse=None): + '''Returns batch actual qty if warehouse is passed, or returns dict of qty by warehouse if warehouse is None''' + frappe.has_permission('Batch', throw=True) + out = 0 + if batch_no and warehouse: + out = float(frappe.db.sql("""select sum(actual_qty) + from `tabStock Ledger Entry` + where warehouse=%s and batch_no=%s""", + (warehouse, batch_no))[0][0] or 0) + if batch_no and not warehouse: + out = frappe.db.sql('''select warehouse, sum(actual_qty) as qty + from `tabStock Ledger Entry` + where batch_no=%s + group by warehouse''', batch_no, as_dict=1) + return out + +@frappe.whitelist() +def split_batch(batch_no, item_code, warehouse, qty, new_batch_id = None): + '''Split the batch into a new batch''' + batch = frappe.get_doc(dict(doctype='Batch', item=item_code, batch_id=new_batch_id)).insert() + stock_entry = frappe.get_doc(dict( + doctype='Stock Entry', + purpose='Repack', + items=[ + dict( + item_code = item_code, + qty = float(qty or 0), + s_warehouse = warehouse, + batch_no = batch_no + ), + dict( + item_code = item_code, + qty = float(qty or 0), + t_warehouse = warehouse, + batch_no = batch.name + ), + ] + )) + stock_entry.insert() + stock_entry.submit() + + return batch.name diff --git a/erpnext/stock/doctype/batch/test_batch.py b/erpnext/stock/doctype/batch/test_batch.py index e519f5f69c..29023bb2a9 100644 --- a/erpnext/stock/doctype/batch/test_batch.py +++ b/erpnext/stock/doctype/batch/test_batch.py @@ -6,10 +6,75 @@ import frappe from frappe.exceptions import ValidationError import unittest +from erpnext.stock.doctype.batch.batch import get_batch_qty + class TestBatch(unittest.TestCase): def test_item_has_batch_enabled(self): self.assertRaises(ValidationError, frappe.get_doc({ "doctype": "Batch", "name": "_test Batch", "item": "_Test Item" - }).save) \ No newline at end of file + }).save) + + def make_batch_item(self): + from erpnext.stock.doctype.item.test_item import make_item + if not frappe.db.exists('ITEM-BATCH-1'): + make_item('ITEM-BATCH-1', dict(has_batch_no = 1, create_new_batch = 1)) + + def test_purchase_receipt(self): + '''Test automated batch creation from Purchase Receipt''' + self.make_batch_item() + + receipt = frappe.get_doc(dict( + doctype = 'Purchase Receipt', + supplier = '_Test Supplier', + items = [ + dict( + item_code = 'ITEM-BATCH-1', + qty = 100, + rate = 10 + ) + ] + )).insert() + receipt.submit() + + self.assertTrue(receipt.items[0].batch_no) + self.assertEquals(get_batch_qty(receipt.items[0].batch_no, receipt.items[0].warehouse), 100) + + return receipt + + def test_stock_entry(self): + '''Test batch creation via Stock Entry (Production Order)''' + + self.make_batch_item() + + stock_entry = frappe.get_doc(dict( + doctype = 'Stock Entry', + purpose = 'Material Receipt', + company = '_Test Company', + items = [ + dict( + item_code = 'ITEM-BATCH-1', + qty = 90, + t_warehouse = '_Test Warehouse - _TC', + cost_center = 'Main - _TC', + rate = 10 + ) + ] + )).insert() + stock_entry.submit() + + self.assertTrue(stock_entry.items[0].batch_no) + self.assertEquals(get_batch_qty(stock_entry.items[0].batch_no, stock_entry.items[0].t_warehouse), 90) + + def test_batch_split(self): + '''Test batch splitting''' + receipt = self.test_purchase_receipt() + from erpnext.stock.doctype.batch.batch import split_batch + + new_batch = split_batch(receipt.items[0].batch_no, 'ITEM-BATCH-1', receipt.items[0].warehouse, 22) + + self.assertEquals(get_batch_qty(receipt.items[0].batch_no, receipt.items[0].warehouse), 78) + self.assertEquals(get_batch_qty(new_batch, receipt.items[0].warehouse), 22) + + diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json index 2273621560..d2031ae58a 100644 --- a/erpnext/stock/doctype/item/item.json +++ b/erpnext/stock/doctype/item/item.json @@ -7,7 +7,7 @@ "beta": 0, "creation": "2013-05-03 10:45:46", "custom": 0, - "default_print_format": "Standard", + "default_print_format": "", "description": "A Product or a Service that is bought, sold or kept in stock.", "docstatus": 0, "doctype": "DocType", @@ -714,103 +714,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "", - "depends_on": "eval:doc.is_stock_item", - "fieldname": "has_batch_no", - "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": "Has Batch No", - "length": 0, - "no_copy": 0, - "oldfieldname": "has_batch_no", - "oldfieldtype": "Select", - "options": "", - "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": "", - "depends_on": "eval:doc.is_stock_item", - "description": "Selecting \"Yes\" will give a unique identity to each entity of this item which can be viewed in the Serial No master.", - "fieldname": "has_serial_no", - "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": "Has Serial No", - "length": 0, - "no_copy": 0, - "oldfieldname": "has_serial_no", - "oldfieldtype": "Select", - "options": "", - "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "has_serial_no", - "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.", - "fieldname": "serial_no_series", - "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": "Serial Number Series", - "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_on_submit": 0, "bold": 0, @@ -1150,6 +1053,193 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "collapsible_depends_on": "eval:doc.has_batch_no || doc.has_serial_no", + "columns": 0, + "depends_on": "is_stock_item", + "fieldname": "serial_nos_and_batches", + "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": "Serial Nos and Batches", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "", + "depends_on": "eval:doc.is_stock_item", + "fieldname": "has_batch_no", + "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": "Has Batch No", + "length": 0, + "no_copy": 0, + "oldfieldname": "has_batch_no", + "oldfieldtype": "Select", + "options": "", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "has_batch_no", + "description": "", + "fieldname": "create_new_batch", + "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": "Automatically Create New Batch", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_37", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "", + "depends_on": "eval:doc.is_stock_item", + "description": "", + "fieldname": "has_serial_no", + "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": "Has Serial No", + "length": 0, + "no_copy": 0, + "oldfieldname": "has_serial_no", + "oldfieldtype": "Select", + "options": "", + "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "has_serial_no", + "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions, then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.", + "fieldname": "serial_no_series", + "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": "Serial Number Series", + "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_on_submit": 0, "bold": 0, @@ -2954,8 +3044,8 @@ "issingle": 0, "istable": 0, "max_attachments": 1, - "modified": "2017-03-24 15:46:18.569291", - "modified_by": "d.ottenbreit@eso-electronic.de", + "modified": "2017-04-19 08:14:26.785497", + "modified_by": "Administrator", "module": "Stock", "name": "Item", "owner": "Administrator", diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 1f8fd8d9cf..5d90338566 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -50,8 +50,11 @@ class PurchaseReceipt(BuyingController): self.validate_posting_time() super(PurchaseReceipt, self).validate() - if not self._action=="submit": + if self._action=="submit": + self.make_batches() + else: self.set_status() + self.po_required() self.validate_with_previous_doc() self.validate_uom_is_integer("uom", ["qty", "received_qty"]) @@ -62,7 +65,6 @@ class PurchaseReceipt(BuyingController): if getdate(self.posting_date) > getdate(nowdate()): throw(_("Posting Date cannot be future date")) - def validate_with_previous_doc(self): super(PurchaseReceipt, self).validate_with_previous_doc({ "Purchase Order": { diff --git a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json index fdc7f60d9b..e18e532941 100755 --- a/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json +++ b/erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json @@ -1,1996 +1,1996 @@ { - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "hash", - "beta": 0, - "creation": "2013-05-24 19:29:10", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Document", - "editable_grid": 1, + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "hash", + "beta": 0, + "creation": "2013-05-24 19:29:10", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "Document", + "editable_grid": 1, "fields": [ { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "barcode", - "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": "Barcode", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "barcode", + "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": "Barcode", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_2", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_2", + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 3, - "fieldname": "item_code", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Item Code", - "length": 0, - "no_copy": 0, - "oldfieldname": "item_code", - "oldfieldtype": "Link", - "options": "Item", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 1, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 3, + "fieldname": "item_code", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Item Code", + "length": 0, + "no_copy": 0, + "oldfieldname": "item_code", + "oldfieldtype": "Link", + "options": "Item", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 1, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_2", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_2", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "item_name", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Item Name", - "length": 0, - "no_copy": 0, - "oldfieldname": "item_name", - "oldfieldtype": "Data", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Item Name", + "length": 0, + "no_copy": 0, + "oldfieldname": "item_name", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 1, - "columns": 0, - "fieldname": "section_break_4", - "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": "Description", - "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_on_submit": 0, + "bold": 0, + "collapsible": 1, + "columns": 0, + "fieldname": "section_break_4", + "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": "Description", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "description", - "fieldtype": "Text Editor", - "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": "Description", - "length": 0, - "no_copy": 0, - "oldfieldname": "description", - "oldfieldtype": "Text", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": "300px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "description", + "fieldtype": "Text Editor", + "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": "Description", + "length": 0, + "no_copy": 0, + "oldfieldname": "description", + "oldfieldtype": "Text", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "300px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "300px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_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, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_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, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "image", - "fieldtype": "Attach", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Image", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image", + "fieldtype": "Attach", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Image", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "image_view", - "fieldtype": "Image", - "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": "Image View", - "length": 0, - "no_copy": 0, - "options": "image", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image_view", + "fieldtype": "Image", + "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": "Image View", + "length": 0, + "no_copy": 0, + "options": "image", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "received_and_accepted", - "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": "Received and Accepted", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "received_and_accepted", + "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": "Received and Accepted", + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 0, - "fieldname": "received_qty", - "fieldtype": "Float", - "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": "Recd Quantity", - "length": 0, - "no_copy": 0, - "oldfieldname": "received_qty", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 0, + "fieldname": "received_qty", + "fieldtype": "Float", + "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": "Recd Quantity", + "length": 0, + "no_copy": 0, + "oldfieldname": "received_qty", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 2, - "fieldname": "qty", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Accepted Quantity", - "length": 0, - "no_copy": 0, - "oldfieldname": "qty", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 2, + "fieldname": "qty", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Accepted Quantity", + "length": 0, + "no_copy": 0, + "oldfieldname": "qty", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "rejected_qty", - "fieldtype": "Float", - "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": "Rejected Quantity", - "length": 0, - "no_copy": 0, - "oldfieldname": "rejected_qty", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "rejected_qty", + "fieldtype": "Float", + "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": "Rejected Quantity", + "length": 0, + "no_copy": 0, + "oldfieldname": "rejected_qty", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break2", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break2", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "uom", - "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": "UOM", - "length": 0, - "no_copy": 0, - "oldfieldname": "uom", - "oldfieldtype": "Link", - "options": "UOM", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "uom", + "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": "UOM", + "length": 0, + "no_copy": 0, + "oldfieldname": "uom", + "oldfieldtype": "Link", + "options": "UOM", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "stock_uom", - "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": "Stock UOM", - "length": 0, - "no_copy": 0, - "oldfieldname": "stock_uom", - "oldfieldtype": "Data", - "options": "UOM", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "stock_uom", + "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": "Stock UOM", + "length": 0, + "no_copy": 0, + "oldfieldname": "stock_uom", + "oldfieldtype": "Data", + "options": "UOM", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "conversion_factor", - "fieldtype": "Float", - "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": "Conversion Factor", - "length": 0, - "no_copy": 0, - "oldfieldname": "conversion_factor", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "conversion_factor", + "fieldtype": "Float", + "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": "Conversion Factor", + "length": 0, + "no_copy": 0, + "oldfieldname": "conversion_factor", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "rate_and_amount", - "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": "Rate and Amount", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "rate_and_amount", + "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": "Rate and Amount", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "price_list_rate", - "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": "Price List Rate", - "length": 0, - "no_copy": 0, - "options": "currency", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "price_list_rate", + "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": "Price List Rate", + "length": 0, + "no_copy": 0, + "options": "currency", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "price_list_rate", - "fieldname": "discount_percentage", - "fieldtype": "Percent", - "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": "Discount on Price List Rate (%)", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "price_list_rate", + "fieldname": "discount_percentage", + "fieldtype": "Percent", + "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": "Discount on Price List Rate (%)", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break3", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break3", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "base_price_list_rate", - "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": "Price List Rate (Company Currency)", - "length": 0, - "no_copy": 0, - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "base_price_list_rate", + "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": "Price List Rate (Company Currency)", + "length": 0, + "no_copy": 0, + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "sec_break1", - "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, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "sec_break1", + "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, + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 3, - "fieldname": "rate", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Rate", - "length": 0, - "no_copy": 0, - "oldfieldname": "import_rate", - "oldfieldtype": "Currency", - "options": "currency", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 3, + "fieldname": "rate", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Rate", + "length": 0, + "no_copy": 0, + "oldfieldname": "import_rate", + "oldfieldtype": "Currency", + "options": "currency", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "amount", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Amount", - "length": 0, - "no_copy": 0, - "oldfieldname": "import_amount", - "oldfieldtype": "Currency", - "options": "currency", - "permlevel": 0, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "amount", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Amount", + "length": 0, + "no_copy": 0, + "oldfieldname": "import_amount", + "oldfieldtype": "Currency", + "options": "currency", + "permlevel": 0, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break4", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break4", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "base_rate", - "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": "Rate (Company Currency)", - "length": 0, - "no_copy": 0, - "oldfieldname": "purchase_rate", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "base_rate", + "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": "Rate (Company Currency)", + "length": 0, + "no_copy": 0, + "oldfieldname": "purchase_rate", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "base_amount", - "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": "Amount (Company Currency)", - "length": 0, - "no_copy": 0, - "oldfieldname": "amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "base_amount", + "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": "Amount (Company Currency)", + "length": 0, + "no_copy": 0, + "oldfieldname": "amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "pricing_rule", - "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": "Pricing Rule", - "length": 0, - "no_copy": 0, - "options": "Pricing Rule", - "permlevel": 0, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "pricing_rule", + "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": "Pricing Rule", + "length": 0, + "no_copy": 0, + "options": "Pricing Rule", + "permlevel": 0, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_29", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_29", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "net_rate", - "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": "Net Rate", - "length": 0, - "no_copy": 0, - "options": "currency", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "net_rate", + "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": "Net Rate", + "length": 0, + "no_copy": 0, + "options": "currency", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 2, - "fieldname": "net_amount", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Net Amount", - "length": 0, - "no_copy": 0, - "options": "currency", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 2, + "fieldname": "net_amount", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Net Amount", + "length": 0, + "no_copy": 0, + "options": "currency", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_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_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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "base_net_rate", - "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": "Net Rate (Company Currency)", - "length": 0, - "no_copy": 0, - "options": "Company:company:default_currency", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "base_net_rate", + "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": "Net Rate (Company Currency)", + "length": 0, + "no_copy": 0, + "options": "Company:company:default_currency", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "base_net_amount", - "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": "Net Amount (Company Currency)", - "length": 0, - "no_copy": 0, - "options": "Company:company:default_currency", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "base_net_amount", + "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": "Net Amount (Company Currency)", + "length": 0, + "no_copy": 0, + "options": "Company:company:default_currency", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "warehouse_and_reference", - "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": "Warehouse and Reference", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "warehouse_and_reference", + "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": "Warehouse and Reference", + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 0, - "fieldname": "warehouse", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Accepted Warehouse", - "length": 0, - "no_copy": 0, - "oldfieldname": "warehouse", - "oldfieldtype": "Link", - "options": "Warehouse", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 0, + "fieldname": "warehouse", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Accepted Warehouse", + "length": 0, + "no_copy": 0, + "oldfieldname": "warehouse", + "oldfieldtype": "Link", + "options": "Warehouse", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "rejected_warehouse", - "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": "Rejected Warehouse", - "length": 0, - "no_copy": 1, - "oldfieldname": "rejected_warehouse", - "oldfieldtype": "Link", - "options": "Warehouse", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "rejected_warehouse", + "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": "Rejected Warehouse", + "length": 0, + "no_copy": 1, + "oldfieldname": "rejected_warehouse", + "oldfieldtype": "Link", + "options": "Warehouse", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:!doc.__islocal", - "fieldname": "quality_inspection", - "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": "Quality Inspection", - "length": 0, - "no_copy": 1, - "oldfieldname": "qa_no", - "oldfieldtype": "Link", - "options": "Quality Inspection", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:!doc.__islocal", + "fieldname": "quality_inspection", + "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": "Quality Inspection", + "length": 0, + "no_copy": 1, + "oldfieldname": "qa_no", + "oldfieldtype": "Link", + "options": "Quality Inspection", + "permlevel": 0, + "print_hide": 1, + "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_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_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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "purchase_order", - "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": "Purchase Order", - "length": 0, - "no_copy": 1, - "oldfieldname": "prevdoc_docname", - "oldfieldtype": "Link", - "options": "Purchase Order", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "150px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 1, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "purchase_order", + "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": "Purchase Order", + "length": 0, + "no_copy": 1, + "oldfieldname": "prevdoc_docname", + "oldfieldtype": "Link", + "options": "Purchase Order", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "150px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 1, + "set_only_once": 0, + "unique": 0, "width": "150px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "schedule_date", - "fieldtype": "Date", - "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": "Required By", - "length": 0, - "no_copy": 0, - "oldfieldname": "schedule_date", - "oldfieldtype": "Date", - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "schedule_date", + "fieldtype": "Date", + "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": "Required By", + "length": 0, + "no_copy": 0, + "oldfieldname": "schedule_date", + "oldfieldtype": "Date", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "stock_qty", - "fieldtype": "Float", - "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": "Qty as per Stock UOM", - "length": 0, - "no_copy": 0, - "oldfieldname": "stock_qty", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "100px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "stock_qty", + "fieldtype": "Float", + "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": "Qty as per Stock UOM", + "length": 0, + "no_copy": 0, + "oldfieldname": "stock_qty", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "100px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "100px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_45", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_45", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "serial_no", - "fieldtype": "Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Serial No", - "length": 0, - "no_copy": 1, - "oldfieldname": "serial_no", - "oldfieldtype": "Text", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "serial_no", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Serial No", + "length": 0, + "no_copy": 1, + "oldfieldname": "serial_no", + "oldfieldtype": "Text", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "batch_no", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Batch No", - "length": 0, - "no_copy": 0, - "oldfieldname": "batch_no", - "oldfieldtype": "Link", - "options": "Batch", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "batch_no", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Batch No", + "length": 0, + "no_copy": 0, + "oldfieldname": "batch_no", + "oldfieldtype": "Link", + "options": "Batch", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_48", - "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, - "label": "", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_48", + "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, + "label": "", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "rejected_serial_no", - "fieldtype": "Text", - "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": "Rejected Serial No", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "rejected_serial_no", + "fieldtype": "Small Text", + "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": "Rejected Serial No", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_50", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_50", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "project", - "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": "Project", - "length": 0, - "no_copy": 0, - "options": "Project", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "project", + "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": "Project", + "length": 0, + "no_copy": 0, + "options": "Project", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": ":Company", - "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", - "fieldname": "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": "Cost Center", - "length": 0, - "no_copy": 0, - "options": "Cost Center", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": ":Company", + "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", + "fieldname": "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": "Cost Center", + "length": 0, + "no_copy": 0, + "options": "Cost Center", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "purchase_order_item", - "fieldtype": "Data", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Purchase Order Item", - "length": 0, - "no_copy": 1, - "oldfieldname": "prevdoc_detail_docname", - "oldfieldtype": "Data", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "150px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 1, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "purchase_order_item", + "fieldtype": "Data", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Purchase Order Item", + "length": 0, + "no_copy": 1, + "oldfieldname": "prevdoc_detail_docname", + "oldfieldtype": "Data", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "150px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 1, + "set_only_once": 0, + "unique": 0, "width": "150px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break5", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break5", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "allow_zero_valuation_rate", - "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": "Allow Zero Valuation Rate", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "allow_zero_valuation_rate", + "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": "Allow Zero Valuation Rate", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "bom", - "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": "BOM", - "length": 0, - "no_copy": 1, - "options": "BOM", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "bom", + "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": "BOM", + "length": 0, + "no_copy": 1, + "options": "BOM", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "billed_amt", - "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": "Billed Amt", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "billed_amt", + "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": "Billed Amt", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 1, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "landed_cost_voucher_amount", - "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": "Landed Cost Voucher Amount", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "landed_cost_voucher_amount", + "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": "Landed Cost Voucher Amount", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "brand", - "fieldtype": "Link", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Brand", - "length": 0, - "no_copy": 0, - "oldfieldname": "brand", - "oldfieldtype": "Link", - "options": "Brand", - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "brand", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Brand", + "length": 0, + "no_copy": 0, + "oldfieldname": "brand", + "oldfieldtype": "Link", + "options": "Brand", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "", - "fieldname": "item_group", - "fieldtype": "Link", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Item Group", - "length": 0, - "no_copy": 0, - "oldfieldname": "item_group", - "oldfieldtype": "Link", - "options": "Item Group", - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "", + "fieldname": "item_group", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Item Group", + "length": 0, + "no_copy": 0, + "oldfieldname": "item_group", + "oldfieldtype": "Link", + "options": "Item Group", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "rm_supp_cost", - "fieldtype": "Currency", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Raw Materials Supplied Cost", - "length": 0, - "no_copy": 1, - "oldfieldname": "rm_supp_cost", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "150px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "rm_supp_cost", + "fieldtype": "Currency", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Raw Materials Supplied Cost", + "length": 0, + "no_copy": 1, + "oldfieldname": "rm_supp_cost", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "150px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "150px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "item_tax_amount", - "fieldtype": "Currency", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Item Tax Amount", - "length": 0, - "no_copy": 1, - "oldfieldname": "item_tax_amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "150px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_tax_amount", + "fieldtype": "Currency", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Item Tax Amount", + "length": 0, + "no_copy": 1, + "oldfieldname": "item_tax_amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "150px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "150px" - }, + }, { - "allow_on_submit": 1, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "valuation_rate", - "fieldtype": "Currency", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Valuation Rate", - "length": 0, - "no_copy": 1, - "oldfieldname": "valuation_rate", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "print_width": "80px", - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "valuation_rate", + "fieldtype": "Currency", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Valuation Rate", + "length": 0, + "no_copy": 1, + "oldfieldname": "valuation_rate", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "print_width": "80px", + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "80px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges", - "fieldname": "item_tax_rate", - "fieldtype": "Code", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Item Tax Rate", - "length": 0, - "no_copy": 0, - "oldfieldname": "item_tax_rate", - "oldfieldtype": "Small Text", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 1, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "Tax detail table fetched from item master as a string and stored in this field.\nUsed for Taxes and Charges", + "fieldname": "item_tax_rate", + "fieldtype": "Code", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Item Tax Rate", + "length": 0, + "no_copy": 0, + "oldfieldname": "item_tax_rate", + "oldfieldtype": "Small Text", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 1, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "page_break", - "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": "Page Break", - "length": 0, - "no_copy": 0, - "oldfieldname": "page_break", - "oldfieldtype": "Check", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 1, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "page_break", + "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": "Page Break", + "length": 0, + "no_copy": 0, + "oldfieldname": "page_break", + "oldfieldtype": "Check", + "permlevel": 0, + "print_hide": 1, + "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 } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 1, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2017-04-19 11:54:00.260885", - "modified_by": "Administrator", - "module": "Stock", - "name": "Purchase Receipt Item", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 0, + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 1, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2017-04-19 11:54:00.260886", + "modified_by": "Administrator", + "module": "Stock", + "name": "Purchase Receipt Item", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 0, "track_seen": 0 } diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 107c85ca10..dcdd50d22e 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -48,6 +48,9 @@ class StockEntry(StockController): self.validate_with_material_request() self.validate_batch() + if self._action == 'submit': + self.make_batches() + self.set_actual_qty() self.calculate_rate_and_amount(update_finished_item_rate=False) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry_utils.py b/erpnext/stock/doctype/stock_entry/stock_entry_utils.py index e58042d75c..e1ec3ee9f3 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry_utils.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry_utils.py @@ -6,6 +6,20 @@ from frappe.utils import cint, flt @frappe.whitelist() def make_stock_entry(**args): + '''Helper function to make a Stock Entry + + :item_code: Item to be moved + :qty: Qty to be moved + :from_warehouse: Optional + :to_warehouse: Optional + :rate: Optional + :serial_no: Optional + :batch_no: Optional + :posting_date: Optional + :posting_time: Optional + :do_not_save: Optional flag + :do_not_submit: Optional flag + ''' s = frappe.new_doc("Stock Entry") args = frappe._dict(args) @@ -71,6 +85,7 @@ def make_stock_entry(**args): "basic_rate": args.rate or args.basic_rate, "conversion_factor": 1.0, "serial_no": args.serial_no, + 'batch_no': args.batch_no, 'cost_center': args.cost_center, 'expense_account': args.expense_account }) diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py index 00e3abec71..55a307cd3e 100644 --- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py +++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py @@ -58,7 +58,7 @@ class StockLedgerEntry(Document): def validate_item(self): item_det = frappe.db.sql("""select name, has_batch_no, docstatus, - is_stock_item, has_variants, stock_uom + is_stock_item, has_variants, stock_uom, create_new_batch from tabItem where name=%s""", self.item_code, as_dict=True) if not item_det: @@ -75,7 +75,7 @@ class StockLedgerEntry(Document): if not self.batch_no: frappe.throw(_("Batch number is mandatory for Item {0}").format(self.item_code)) elif not frappe.db.get_value("Batch",{"item": self.item_code, "name": self.batch_no}): - frappe.throw(_("{0} is not a valid Batch Number for Item {1}").format(self.batch_no, self.item_code)) + frappe.throw(_("{0} is not a valid Batch Number for Item {1}").format(self.batch_no, self.item_code)) elif item_det.has_batch_no ==0 and self.batch_no: frappe.throw(_("The Item {0} cannot have Batch").format(self.item_code)) @@ -116,7 +116,7 @@ class StockLedgerEntry(Document): self.fiscal_year = get_fiscal_year(self.posting_date, company=self.company)[0] else: from erpnext.accounts.utils import validate_fiscal_year - validate_fiscal_year(self.posting_date, self.fiscal_year, self.company, + validate_fiscal_year(self.posting_date, self.fiscal_year, self.company, self.meta.get_label("posting_date"), self) def block_transactions_against_group_warehouse(self): diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index a7480e8bf6..d710949317 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -143,13 +143,11 @@ class StockReconciliation(StockController): # item should not be serialized if item.has_serial_no == 1: - raise frappe.ValidationError, _("Serialized Item {0} cannot be updated \ - using Stock Reconciliation").format(item_code) + raise frappe.ValidationError, _("Serialized Item {0} cannot be updated using Stock Reconciliation, please use Stock Entry").format(item_code) # item managed batch-wise not allowed if item.has_batch_no == 1: - raise frappe.ValidationError, _("Item: {0} managed batch-wise, can not be reconciled using \ - Stock Reconciliation, instead use Stock Entry").format(item_code) + raise frappe.ValidationError, _("Batched Item {0} cannot be updated using Stock Reconciliation, instead use Stock Entry").format(item_code) # docstatus should be < 2 validate_cancelled_item(item_code, item.docstatus, verbose=0) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 998a65a22a..787e4b580e 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -187,9 +187,11 @@ def get_basic_details(args, item): out.stock_qty = out.qty * out.conversion_factor # if default specified in item is for another company, fetch from company - for d in [["Account", "income_account", "default_income_account"], + for d in [ + ["Account", "income_account", "default_income_account"], ["Account", "expense_account", "default_expense_account"], - ["Cost Center", "cost_center", "cost_center"], ["Warehouse", "warehouse", ""]]: + ["Cost Center", "cost_center", "cost_center"], + ["Warehouse", "warehouse", ""]]: company = frappe.db.get_value(d[0], out.get(d[1]), "company") if not out[d[1]] or (company and args.company != company): out[d[1]] = frappe.db.get_value("Company", args.company, d[2]) if d[2] else None @@ -359,15 +361,6 @@ def get_serial_nos_by_fifo(args): "qty": abs(cint(args.stock_qty)) })) -def get_actual_batch_qty(batch_no,warehouse,item_code): - actual_batch_qty = 0 - if batch_no: - actual_batch_qty = flt(frappe.db.sql("""select sum(actual_qty) - from `tabStock Ledger Entry` - where warehouse=%s and item_code=%s and batch_no=%s""", - (warehouse, item_code, batch_no))[0][0]) - return actual_batch_qty - @frappe.whitelist() def get_conversion_factor(item_code, uom): variant_of = frappe.db.get_value("Item", item_code, "variant_of") @@ -403,10 +396,10 @@ def get_bin_details_and_serial_nos(item_code, warehouse, stock_qty=None, serial_ return bin_details_and_serial_nos @frappe.whitelist() -def get_batch_qty(batch_no,warehouse,item_code): - actual_batch_qty = get_actual_batch_qty(batch_no,warehouse,item_code) +def get_batch_qty(batch_no, warehouse, item_code): + from frappe.stock.doctype.batch import batch if batch_no: - return {'actual_batch_qty': actual_batch_qty} + return {'actual_batch_qty': batch.get_batch_qty(batch_no, warehouse)} @frappe.whitelist() def apply_price_list(args, as_doc=False): diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.js b/erpnext/stock/report/stock_ledger/stock_ledger.js index fb60157b54..ce357db3f8 100644 --- a/erpnext/stock/report/stock_ledger/stock_ledger.js +++ b/erpnext/stock/report/stock_ledger/stock_ledger.js @@ -37,6 +37,12 @@ frappe.query_reports["Stock Ledger"] = { "fieldtype": "Link", "options": "Item" }, + { + "fieldname":"batch_no", + "label": __("Batch No"), + "fieldtype": "Link", + "options": "Batch" + }, { "fieldname":"brand", "label": __("Brand"), diff --git a/erpnext/stock/report/stock_ledger/stock_ledger.py b/erpnext/stock/report/stock_ledger/stock_ledger.py index 69fb4900e5..ec55cec3fb 100644 --- a/erpnext/stock/report/stock_ledger/stock_ledger.py +++ b/erpnext/stock/report/stock_ledger/stock_ledger.py @@ -10,9 +10,9 @@ def execute(filters=None): sl_entries = get_stock_ledger_entries(filters) item_details = get_item_details(filters) opening_row = get_opening_balance(filters, columns) - + data = [] - + if opening_row: data.append(opening_row) @@ -25,7 +25,7 @@ def execute(filters=None): (sle.incoming_rate if sle.actual_qty > 0 else 0.0), sle.valuation_rate, sle.stock_value, sle.voucher_type, sle.voucher_no, sle.batch_no, sle.serial_no, sle.company]) - + return columns, data def get_columns(): @@ -76,6 +76,8 @@ def get_sle_conditions(filters): conditions.append(get_warehouse_condition(filters.get("warehouse"))) if filters.get("voucher_no"): conditions.append("voucher_no=%(voucher_no)s") + if filters.get("batch_no"): + conditions.append("batch_no=%(batch_no)s") return "and {}".format(" and ".join(conditions)) if conditions else "" @@ -90,14 +92,14 @@ def get_opening_balance(filters, columns): "posting_date": filters.from_date, "posting_time": "00:00:00" }) - + row = [""]*len(columns) row[1] = _("'Opening'") for i, v in ((9, 'qty_after_transaction'), (11, 'valuation_rate'), (12, 'stock_value')): row[i] = last_entry.get(v, 0) - + return row - + def get_warehouse_condition(warehouse): warehouse_details = frappe.db.get_value("Warehouse", warehouse, ["lft", "rgt"], as_dict=1) if warehouse_details: diff --git a/erpnext/utilities/transaction_base.py b/erpnext/utilities/transaction_base.py index 688d6c4ec0..9a25b76cbe 100644 --- a/erpnext/utilities/transaction_base.py +++ b/erpnext/utilities/transaction_base.py @@ -143,6 +143,7 @@ def validate_uom_is_integer(doc, uom_field, qty_fields, child_dt=None): for d in doc.get_all_children(parenttype=child_dt): if d.get(uom_field) in integer_uoms: for f in qty_fields: - if d.get(f): - if cint(d.get(f))!=d.get(f): - frappe.throw(_("Quantity cannot be a fraction in row {0}").format(d.idx), UOMMustBeIntegerError) + qty = d.get(f) + if qty: + if abs(int(qty) - float(qty)) > 0.0000001: + frappe.throw(_("Quantity ({0}) cannot be a fraction in row {1}").format(qty, d.idx), UOMMustBeIntegerError) From 551406ab11c5ce2e48e2d33ca6e187d6173b79bc Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 21 Apr 2017 12:40:19 +0530 Subject: [PATCH 07/17] [enhance] automatic batch selection in Delivery Note and Stock Entry --- erpnext/controllers/stock_controller.py | 19 +++-- erpnext/stock/doctype/batch/batch.py | 45 +++++++++- erpnext/stock/doctype/batch/test_batch.py | 83 +++++++++++++++++-- .../doctype/delivery_note/delivery_note.py | 5 +- .../purchase_receipt/purchase_receipt.py | 2 +- .../stock/doctype/stock_entry/stock_entry.py | 28 +++++-- .../stock_entry_detail.json | 10 +-- erpnext/stock/get_item_details.py | 10 ++- 8 files changed, 171 insertions(+), 31 deletions(-) diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 703fe06db2..3649cc119d 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -177,17 +177,18 @@ class StockController(AccountsController): stock_ledger.setdefault(sle.voucher_detail_no, []).append(sle) return stock_ledger - def make_batches(self): + def make_batches(self, warehouse_field): '''Create batches if required. Called before submit''' for d in self.items: - has_batch_no, create_new_batch = frappe.db.get_value('Item', d.item_code, ['has_batch_no', 'create_new_batch']) - if has_batch_no and not d.batch_no and create_new_batch: - d.batch_no = frappe.get_doc(dict( - doctype='Batch', - item=d.item_code, - supplier=getattr(self, 'supplier', None), - reference_doctype=self.doctype, - reference_name=self.name)).insert().name + if d.get(warehouse_field) and not d.batch_no: + has_batch_no, create_new_batch = frappe.db.get_value('Item', d.item_code, ['has_batch_no', 'create_new_batch']) + if has_batch_no and create_new_batch: + d.batch_no = frappe.get_doc(dict( + doctype='Batch', + item=d.item_code, + supplier=getattr(self, 'supplier', None), + reference_doctype=self.doctype, + reference_name=self.name)).insert().name def make_adjustment_entry(self, expected_gle, voucher_obj): from erpnext.accounts.utils import get_stock_and_account_difference diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py index 193acebfeb..8ef8e915ee 100644 --- a/erpnext/stock/doctype/batch/batch.py +++ b/erpnext/stock/doctype/batch/batch.py @@ -6,6 +6,8 @@ import frappe from frappe import _ from frappe.model.document import Document +class UnableToSelectBatchError(frappe.ValidationError): pass + class Batch(Document): def autoname(self): '''Generate random ID for batch if not specified''' @@ -34,8 +36,15 @@ class Batch(Document): frappe.throw(_("The selected item cannot have Batch")) @frappe.whitelist() -def get_batch_qty(batch_no, warehouse=None): - '''Returns batch actual qty if warehouse is passed, or returns dict of qty by warehouse if warehouse is None''' +def get_batch_qty(batch_no=None, warehouse=None, item_code=None): + '''Returns batch actual qty if warehouse is passed, + or returns dict of qty by warehouse if warehouse is None + + The user must pass either batch_no or batch_no + warehouse or item_code + warehouse + + :param batch_no: Optional - give qty for this batch no + :param warehouse: Optional - give qty for this warehouse + :param item_code: Optional - give qty for this item''' frappe.has_permission('Batch', throw=True) out = 0 if batch_no and warehouse: @@ -48,6 +57,11 @@ def get_batch_qty(batch_no, warehouse=None): from `tabStock Ledger Entry` where batch_no=%s group by warehouse''', batch_no, as_dict=1) + if not batch_no and item_code and warehouse: + out = frappe.db.sql('''select batch_no, sum(actual_qty) as qty + from `tabStock Ledger Entry` + where item_code = %s and warehouse=%s + group by batch_no''', (item_code, warehouse), as_dict=1) return out @frappe.whitelist() @@ -76,3 +90,30 @@ def split_batch(batch_no, item_code, warehouse, qty, new_batch_id = None): stock_entry.submit() return batch.name + +def set_batch_nos(doc, warehouse_field, throw = False): + '''Automatically select `batch_no` for outgoing items in item table''' + for d in doc.items: + has_batch_no = frappe.db.get_value('Item', d.item_code, 'has_batch_no') + warehouse = d.get(warehouse_field, None) + if has_batch_no and not d.batch_no and warehouse: + d.batch_no = get_batch_no(d.item_code, warehouse, d.qty, throw) + +def get_batch_no(item_code, warehouse, qty, throw=False): + '''get the smallest batch with for the given item_code, warehouse and qty''' + batches = sorted( + get_batch_qty(item_code = item_code, warehouse = warehouse), + lambda a, b: 1 if a.qty > b.qty else -1) + + batch_no = None + for b in batches: + if b.qty >= qty: + batch_no = b.batch_no + # found! + break + + if not batch_no: + frappe.msgprint(_('Please select a Batch for Item {0}. Unable to find a single batch that fulfills this requirement').format(frappe.bold(item_code))) + if throw: raise UnableToSelectBatchError + + return batch_no \ No newline at end of file diff --git a/erpnext/stock/doctype/batch/test_batch.py b/erpnext/stock/doctype/batch/test_batch.py index 29023bb2a9..e63e949bde 100644 --- a/erpnext/stock/doctype/batch/test_batch.py +++ b/erpnext/stock/doctype/batch/test_batch.py @@ -6,7 +6,7 @@ import frappe from frappe.exceptions import ValidationError import unittest -from erpnext.stock.doctype.batch.batch import get_batch_qty +from erpnext.stock.doctype.batch.batch import get_batch_qty, UnableToSelectBatchError class TestBatch(unittest.TestCase): def test_item_has_batch_enabled(self): @@ -21,7 +21,7 @@ class TestBatch(unittest.TestCase): if not frappe.db.exists('ITEM-BATCH-1'): make_item('ITEM-BATCH-1', dict(has_batch_no = 1, create_new_batch = 1)) - def test_purchase_receipt(self): + def test_purchase_receipt(self, batch_qty = 100): '''Test automated batch creation from Purchase Receipt''' self.make_batch_item() @@ -31,7 +31,7 @@ class TestBatch(unittest.TestCase): items = [ dict( item_code = 'ITEM-BATCH-1', - qty = 100, + qty = batch_qty, rate = 10 ) ] @@ -39,11 +39,12 @@ class TestBatch(unittest.TestCase): receipt.submit() self.assertTrue(receipt.items[0].batch_no) - self.assertEquals(get_batch_qty(receipt.items[0].batch_no, receipt.items[0].warehouse), 100) + self.assertEquals(get_batch_qty(receipt.items[0].batch_no, + receipt.items[0].warehouse), batch_qty) return receipt - def test_stock_entry(self): + def test_stock_entry_incoming(self): '''Test batch creation via Stock Entry (Production Order)''' self.make_batch_item() @@ -67,6 +68,78 @@ class TestBatch(unittest.TestCase): self.assertTrue(stock_entry.items[0].batch_no) self.assertEquals(get_batch_qty(stock_entry.items[0].batch_no, stock_entry.items[0].t_warehouse), 90) + def test_delivery_note(self): + '''Test automatic batch selection for outgoing items''' + batch_qty = 15 + receipt = self.test_purchase_receipt(batch_qty) + + delivery_note = frappe.get_doc(dict( + doctype = 'Delivery Note', + customer = '_Test Customer', + company = receipt.company, + items = [ + dict( + item_code = 'ITEM-BATCH-1', + qty = batch_qty, + rate = 10, + warehouse = receipt.items[0].warehouse + ) + ] + )).insert() + delivery_note.submit() + + # shipped with same batch + self.assertEquals(delivery_note.items[0].batch_no, receipt.items[0].batch_no) + + # balance is 0 + self.assertEquals(get_batch_qty(receipt.items[0].batch_no, + receipt.items[0].warehouse), 0) + + def test_delivery_note_fail(self): + '''Test automatic batch selection for outgoing items''' + receipt = self.test_purchase_receipt(100) + delivery_note = frappe.get_doc(dict( + doctype = 'Delivery Note', + customer = '_Test Customer', + company = receipt.company, + items = [ + dict( + item_code = 'ITEM-BATCH-1', + qty = 5000, + rate = 10, + warehouse = receipt.items[0].warehouse + ) + ] + )) + self.assertRaises(UnableToSelectBatchError, delivery_note.insert) + + def test_stock_entry_outgoing(self): + '''Test automatic batch selection for outgoing stock entry''' + + batch_qty = 16 + receipt = self.test_purchase_receipt(batch_qty) + + stock_entry = frappe.get_doc(dict( + doctype = 'Stock Entry', + purpose = 'Material Issue', + company = receipt.company, + items = [ + dict( + item_code = 'ITEM-BATCH-1', + qty = batch_qty, + s_warehouse = receipt.items[0].warehouse, + ) + ] + )).insert() + stock_entry.submit() + + # assert same batch is selected + self.assertEqual(stock_entry.items[0].batch_no, receipt.items[0].batch_no) + + # balance is 0 + self.assertEquals(get_batch_qty(receipt.items[0].batch_no, + receipt.items[0].warehouse), 0) + def test_batch_split(self): '''Test batch splitting''' receipt = self.test_purchase_receipt() diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index 5e8f5c9b46..a2a0115c1b 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -11,7 +11,7 @@ import frappe.defaults from frappe.model.mapper import get_mapped_doc from erpnext.controllers.selling_controller import SellingController from frappe.desk.notifications import clear_doctype_notifications - +from erpnext.stock.doctype.batch.batch import set_batch_nos form_grid_templates = { "items": "templates/form_grid/item_grid.html" @@ -106,6 +106,9 @@ class DeliveryNote(SellingController): self.validate_uom_is_integer("uom", "qty") self.validate_with_previous_doc() + if self._action != 'submit': + set_batch_nos(self, 'warehouse', True) + from erpnext.stock.doctype.packed_item.packed_item import make_packing_list make_packing_list(self) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 5d90338566..055b9c47f9 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -51,7 +51,7 @@ class PurchaseReceipt(BuyingController): super(PurchaseReceipt, self).validate() if self._action=="submit": - self.make_batches() + self.make_batches('warehouse') else: self.set_status() diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index dcdd50d22e..169bfd9121 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -9,6 +9,7 @@ from frappe.utils import cstr, cint, flt, comma_or, getdate, nowdate, formatdate from erpnext.stock.utils import get_incoming_rate from erpnext.stock.stock_ledger import get_previous_sle, NegativeStockError from erpnext.stock.get_item_details import get_bin_details, get_default_cost_center, get_conversion_factor +from erpnext.stock.doctype.batch.batch import get_batch_no, set_batch_nos from erpnext.manufacturing.doctype.bom.bom import validate_bom_no import json @@ -49,7 +50,9 @@ class StockEntry(StockController): self.validate_batch() if self._action == 'submit': - self.make_batches() + self.make_batches('t_warehouse') + else: + set_batch_nos(self, 's_warehouse', True) self.set_actual_qty() self.calculate_rate_and_amount(update_finished_item_rate=False) @@ -89,8 +92,10 @@ class StockEntry(StockController): if item.item_code not in stock_items: frappe.throw(_("{0} is not a stock Item").format(item.item_code)) - item_details = self.get_item_details(frappe._dict({"item_code": item.item_code, - "company": self.company, "project": self.project, "uom": item.uom}), for_update=True) + item_details = self.get_item_details(frappe._dict( + {"item_code": item.item_code, "company": self.company, + "project": self.project, "uom": item.uom, 's_warehouse': item.s_warehouse}), + for_update=True) for f in ("uom", "stock_uom", "description", "item_name", "expense_account", "cost_center", "conversion_factor"): @@ -465,7 +470,9 @@ class StockEntry(StockController): def get_item_details(self, args=None, for_update=False): item = frappe.db.sql("""select stock_uom, description, image, item_name, - expense_account, buying_cost_center, item_group from `tabItem` + expense_account, buying_cost_center, item_group, has_serial_no, + has_batch_no + from `tabItem` where name = %s and disabled=0 and (end_of_life is null or end_of_life='0000-00-00' or end_of_life > %s)""", @@ -475,7 +482,7 @@ class StockEntry(StockController): item = item[0] - ret = { + ret = frappe._dict({ 'uom' : item.stock_uom, 'stock_uom' : item.stock_uom, 'description' : item.description, @@ -489,8 +496,10 @@ class StockEntry(StockController): 'batch_no' : '', 'actual_qty' : 0, 'basic_rate' : 0, - 'serial_no' : '' - } + 'serial_no' : '', + 'has_serial_no' : item.has_serial_no, + 'has_batch_no' : item.has_batch_no + }) for d in [["Account", "expense_account", "default_expense_account"], ["Cost Center", "cost_center", "cost_center"]]: company = frappe.db.get_value(d[0], ret.get(d[1]), "company") @@ -510,6 +519,11 @@ class StockEntry(StockController): stock_and_rate = args.get('warehouse') and get_warehouse_details(args) or {} ret.update(stock_and_rate) + # automatically select batch for outgoing item + if (args.get('s_warehouse', None) and args.get('qty') and + ret.get('has_batch_no') and not args.get('batch_no')): + args.batch_no = get_batch_no(args['item_code'], args['s_warehouse'], args['qty']) + return ret def get_items(self): diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json index 2f7779c132..43209e82e3 100644 --- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json +++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json @@ -813,7 +813,7 @@ "collapsible": 0, "columns": 0, "fieldname": "serial_no", - "fieldtype": "Text", + "fieldtype": "Small Text", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, @@ -1040,11 +1040,11 @@ "unique": 0 }, { - "allow_on_submit": 0, + "allow_on_submit": 1, "bold": 0, "collapsible": 0, "columns": 0, - "fieldname": "allow_zero_valuation_rate", + "fieldname": "is_sample_item", "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, @@ -1053,7 +1053,7 @@ "in_global_search": 0, "in_list_view": 0, "in_standard_filter": 0, - "label": "Allow Zero Valuation Rate", + "label": "Is Sample Item", "length": 0, "no_copy": 1, "permlevel": 0, @@ -1225,7 +1225,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2017-04-19 11:54:31.645381", + "modified": "2017-04-21 02:56:48.306626", "modified_by": "Administrator", "module": "Stock", "name": "Stock Entry Detail", diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 787e4b580e..a6459c53ec 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -9,6 +9,7 @@ import json from erpnext.accounts.doctype.pricing_rule.pricing_rule import get_pricing_rule_for_item, set_transaction_type from erpnext.setup.utils import get_exchange_rate from frappe.model.meta import get_field_precision +from erpnext.stock.doctype.batch.batch import get_batch_no @frappe.whitelist() def get_item_details(args): @@ -74,7 +75,12 @@ def get_item_details(args): out.update(get_pricing_rule_for_item(args)) if args.get("doctype") in ("Sales Invoice", "Delivery Note") and out.stock_qty > 0: - out.serial_no = get_serial_no(out) + if out.has_serial_no: + out.serial_no = get_serial_no(out) + + if out.has_batch_no: + out.batch_no = get_batch_no(out.item_code, out.warehouse, out.qty) + if args.transaction_date and item.lead_time_days: out.schedule_date = out.lead_time_date = add_days(args.transaction_date, @@ -154,6 +160,8 @@ def get_basic_details(args, item): "income_account": get_default_income_account(args, item), "expense_account": get_default_expense_account(args, item), "cost_center": get_default_cost_center(args, item), + 'has_serial_no': item.has_serial_no, + 'has_batch_no': item.has_batch_no, "batch_no": None, "item_tax_rate": json.dumps(dict(([d.tax_type, d.tax_rate] for d in item.get("taxes")))), From c44910370bf6ab27045dd16ade0272659b1220b7 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Sat, 22 Apr 2017 16:45:25 +0530 Subject: [PATCH 08/17] [fix] is_sample_item --- .../stock_entry_detail.json | 2308 ++++++++--------- 1 file changed, 1154 insertions(+), 1154 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json index 43209e82e3..4d96c4212a 100644 --- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json +++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json @@ -1,1241 +1,1241 @@ { - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "hash", - "beta": 0, - "creation": "2013-03-29 18:22:12", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Other", - "editable_grid": 1, - "engine": "InnoDB", + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "autoname": "hash", + "beta": 0, + "creation": "2013-03-29 18:22:12", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "Other", + "editable_grid": 1, + "engine": "InnoDB", "fields": [ { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "barcode", - "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": "Barcode", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "barcode", + "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": "Barcode", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_2", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_2", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 2, - "fieldname": "s_warehouse", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Source Warehouse", - "length": 0, - "no_copy": 0, - "oldfieldname": "s_warehouse", - "oldfieldtype": "Link", - "options": "Warehouse", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 2, + "fieldname": "s_warehouse", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Source Warehouse", + "length": 0, + "no_copy": 0, + "oldfieldname": "s_warehouse", + "oldfieldtype": "Link", + "options": "Warehouse", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_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, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_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, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 2, - "fieldname": "t_warehouse", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Target Warehouse", - "length": 0, - "no_copy": 0, - "oldfieldname": "t_warehouse", - "oldfieldtype": "Link", - "options": "Warehouse", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 2, + "fieldname": "t_warehouse", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Target Warehouse", + "length": 0, + "no_copy": 0, + "oldfieldname": "t_warehouse", + "oldfieldtype": "Link", + "options": "Warehouse", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "sec_break1", - "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, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "sec_break1", + "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, + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 3, - "fieldname": "item_code", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Item Code", - "length": 0, - "no_copy": 0, - "oldfieldname": "item_code", - "oldfieldtype": "Link", - "options": "Item", - "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": 1, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 3, + "fieldname": "item_code", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Item Code", + "length": 0, + "no_copy": 0, + "oldfieldname": "item_code", + "oldfieldtype": "Link", + "options": "Item", + "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": 1, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break2", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break2", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "item_name", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Item Name", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Item Name", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 1, - "columns": 0, - "fieldname": "section_break_8", - "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": "Description", - "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_on_submit": 0, + "bold": 0, + "collapsible": 1, + "columns": 0, + "fieldname": "section_break_8", + "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": "Description", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "description", - "fieldtype": "Text Editor", - "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": "Description", - "length": 0, - "no_copy": 0, - "oldfieldname": "description", - "oldfieldtype": "Text", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "print_width": "300px", - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "description", + "fieldtype": "Text Editor", + "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": "Description", + "length": 0, + "no_copy": 0, + "oldfieldname": "description", + "oldfieldtype": "Text", + "permlevel": 0, + "print_hide": 0, + "print_hide_if_no_value": 0, + "print_width": "300px", + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "300px" - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_10", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_10", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "image", - "fieldtype": "Attach", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Image", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image", + "fieldtype": "Attach", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Image", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "image_view", - "fieldtype": "Image", - "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": "Image View", - "length": 0, - "no_copy": 0, - "options": "image", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image_view", + "fieldtype": "Image", + "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": "Image View", + "length": 0, + "no_copy": 0, + "options": "image", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "quantity_and_rate", - "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": "Quantity and Rate", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "quantity_and_rate", + "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": "Quantity and Rate", + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 3, - "fieldname": "qty", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Qty", - "length": 0, - "no_copy": 0, - "oldfieldname": "qty", - "oldfieldtype": "Currency", - "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_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 3, + "fieldname": "qty", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Qty", + "length": 0, + "no_copy": 0, + "oldfieldname": "qty", + "oldfieldtype": "Currency", + "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_on_submit": 0, - "bold": 1, - "collapsible": 0, - "columns": 0, - "fieldname": "basic_rate", - "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": "Basic Rate (as per Stock UOM)", - "length": 0, - "no_copy": 0, - "oldfieldname": "incoming_rate", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 1, + "collapsible": 0, + "columns": 0, + "fieldname": "basic_rate", + "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": "Basic Rate (as per Stock UOM)", + "length": 0, + "no_copy": 0, + "oldfieldname": "incoming_rate", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "basic_amount", - "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": "Basic Amount", - "length": 0, - "no_copy": 0, - "options": "Company:company:default_currency", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "basic_amount", + "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": "Basic Amount", + "length": 0, + "no_copy": 0, + "options": "Company:company:default_currency", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "additional_cost", - "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": "Additional Cost", - "length": 0, - "no_copy": 0, - "options": "Company:company:default_currency", - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "additional_cost", + "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": "Additional Cost", + "length": 0, + "no_copy": 0, + "options": "Company:company:default_currency", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "amount", - "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": "Amount", - "length": 0, - "no_copy": 0, - "oldfieldname": "amount", - "oldfieldtype": "Currency", - "options": "Company:company:default_currency", - "permlevel": 0, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "amount", + "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": "Amount", + "length": 0, + "no_copy": 0, + "oldfieldname": "amount", + "oldfieldtype": "Currency", + "options": "Company:company:default_currency", + "permlevel": 0, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "valuation_rate", - "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": "Valuation Rate", - "length": 0, - "no_copy": 0, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "valuation_rate", + "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": "Valuation Rate", + "length": 0, + "no_copy": 0, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break3", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break3", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "uom", - "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": "UOM", - "length": 0, - "no_copy": 0, - "oldfieldname": "uom", - "oldfieldtype": "Link", - "options": "UOM", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "uom", + "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": "UOM", + "length": 0, + "no_copy": 0, + "oldfieldname": "uom", + "oldfieldtype": "Link", + "options": "UOM", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "conversion_factor", - "fieldtype": "Float", - "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": "Conversion Factor", - "length": 0, - "no_copy": 0, - "oldfieldname": "conversion_factor", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "conversion_factor", + "fieldtype": "Float", + "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": "Conversion Factor", + "length": 0, + "no_copy": 0, + "oldfieldname": "conversion_factor", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "stock_uom", - "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": "Stock UOM", - "length": 0, - "no_copy": 0, - "oldfieldname": "stock_uom", - "oldfieldtype": "Link", - "options": "UOM", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "stock_uom", + "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": "Stock UOM", + "length": 0, + "no_copy": 0, + "oldfieldname": "stock_uom", + "oldfieldtype": "Link", + "options": "UOM", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "transfer_qty", - "fieldtype": "Float", - "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": "Qty as per Stock UOM", - "length": 0, - "no_copy": 0, - "oldfieldname": "transfer_qty", - "oldfieldtype": "Currency", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "transfer_qty", + "fieldtype": "Float", + "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": "Qty as per Stock UOM", + "length": 0, + "no_copy": 0, + "oldfieldname": "transfer_qty", + "oldfieldtype": "Currency", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "serial_no_batch", - "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": "Serial No / Batch", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "serial_no_batch", + "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": "Serial No / Batch", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "serial_no", - "fieldtype": "Small Text", - "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": "Serial No", - "length": 0, - "no_copy": 1, - "oldfieldname": "serial_no", - "oldfieldtype": "Text", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "serial_no", + "fieldtype": "Small Text", + "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": "Serial No", + "length": 0, + "no_copy": 1, + "oldfieldname": "serial_no", + "oldfieldtype": "Text", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break4", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break4", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "batch_no", - "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": "Batch No", - "length": 0, - "no_copy": 0, - "oldfieldname": "batch_no", - "oldfieldtype": "Link", - "options": "Batch", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "batch_no", + "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": "Batch No", + "length": 0, + "no_copy": 0, + "oldfieldname": "batch_no", + "oldfieldtype": "Link", + "options": "Batch", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "accounting", - "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": "Accounting", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "accounting", + "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": "Accounting", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", - "fieldname": "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": "Difference Account", - "length": 0, - "no_copy": 0, - "options": "Account", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", + "fieldname": "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": "Difference Account", + "length": 0, + "no_copy": 0, + "options": "Account", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break5", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break5", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "default": ":Company", - "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", - "fieldname": "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": "Cost Center", - "length": 0, - "no_copy": 0, - "options": "Cost Center", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": ":Company", + "depends_on": "eval:cint(sys_defaults.auto_accounting_for_stock)", + "fieldname": "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": "Cost Center", + "length": 0, + "no_copy": 0, + "options": "Cost Center", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "more_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": "More Information", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "more_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": "More Information", + "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_on_submit": 1, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "is_sample_item", - "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": "Is Sample Item", - "length": 0, - "no_copy": 1, - "permlevel": 0, - "precision": "", - "print_hide": 1, - "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_on_submit": 1, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "allow_zero_valuation_rate", + "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": "Allow Zero Valuation Rate", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_on_submit": 1, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "actual_qty", - "fieldtype": "Float", - "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": "Actual Qty (at source/target)", - "length": 0, - "no_copy": 1, - "oldfieldname": "actual_qty", - "oldfieldtype": "Read Only", - "permlevel": 0, - "print_hide": 1, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 1, - "set_only_once": 0, + "allow_on_submit": 1, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "actual_qty", + "fieldtype": "Float", + "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": "Actual Qty (at source/target)", + "length": 0, + "no_copy": 1, + "oldfieldname": "actual_qty", + "oldfieldtype": "Read Only", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 1, + "set_only_once": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "BOM No. for a Finished Good Item", - "fieldname": "bom_no", - "fieldtype": "Link", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "BOM No", - "length": 0, - "no_copy": 0, - "options": "BOM", - "permlevel": 0, - "print_hide": 1, - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "BOM No. for a Finished Good Item", + "fieldname": "bom_no", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "BOM No", + "length": 0, + "no_copy": 0, + "options": "BOM", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "col_break6", - "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_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "col_break6", + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "description": "Material Request used to make this Stock Entry", - "fieldname": "material_request", - "fieldtype": "Link", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Material Request", - "length": 0, - "no_copy": 1, - "options": "Material Request", - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "Material Request used to make this Stock Entry", + "fieldname": "material_request", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Material Request", + "length": 0, + "no_copy": 1, + "options": "Material Request", + "permlevel": 0, + "print_hide": 1, + "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_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "material_request_item", - "fieldtype": "Link", - "hidden": 1, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Material Request Item", - "length": 0, - "no_copy": 1, - "options": "Material Request Item", - "permlevel": 0, - "print_hide": 1, - "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, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "material_request_item", + "fieldtype": "Link", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Material Request Item", + "length": 0, + "no_copy": 1, + "options": "Material Request Item", + "permlevel": 0, + "print_hide": 1, + "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 } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 1, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2017-04-21 02:56:48.306626", - "modified_by": "Administrator", - "module": "Stock", - "name": "Stock Entry Detail", - "owner": "Administrator", - "permissions": [], - "quick_entry": 0, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_order": "ASC", - "track_changes": 0, + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 1, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2017-04-21 02:56:48.306627", + "modified_by": "Administrator", + "module": "Stock", + "name": "Stock Entry Detail", + "owner": "Administrator", + "permissions": [], + "quick_entry": 0, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_order": "ASC", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file From 7544904857b08246d5933fe3b89cbc9e4fa729c4 Mon Sep 17 00:00:00 2001 From: Ishan Loya Date: Thu, 20 Apr 2017 21:46:27 +0530 Subject: [PATCH 09/17] Add option to skip material transfer for production orders --- .../production_order/production_order.js | 59 ++++++++++++------- .../production_order/production_order.json | 30 ++++++++++ .../production_order/production_order.py | 2 +- 3 files changed, 70 insertions(+), 21 deletions(-) diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js index 60373972b9..3ce87aad2f 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.js +++ b/erpnext/manufacturing/doctype/production_order/production_order.js @@ -72,15 +72,17 @@ frappe.ui.form.on("Production Order", { message = title; // pending qty - var pending_complete = frm.doc.material_transferred_for_manufacturing - frm.doc.produced_qty; - if(pending_complete) { - var title = __('{0} items in progress', [pending_complete]); - bars.push({ - 'title': title, - 'width': ((pending_complete / frm.doc.qty * 100) - added_min) + '%', - 'progress_class': 'progress-bar-warning' - }) - message = message + '. ' + title; + if(!frm.doc.skip_transfer){ + var pending_complete = frm.doc.material_transferred_for_manufacturing - frm.doc.produced_qty; + if(pending_complete) { + var title = __('{0} items in progress', [pending_complete]); + bars.push({ + 'title': title, + 'width': ((pending_complete / frm.doc.qty * 100) - added_min) + '%', + 'progress_class': 'progress-bar-warning' + }) + message = message + '. ' + title; + } } frm.dashboard.add_progress(__('Status'), bars, message); } @@ -122,21 +124,32 @@ erpnext.production_order = { frm.add_custom_button(__('Re-open'), cur_frm.cscript['Unstop Production Order'], __("Status")); } - if ((flt(doc.material_transferred_for_manufacturing) < flt(doc.qty)) && frm.doc.status != 'Stopped') { + if(!frm.doc.skip_transfer){ + if ((flt(doc.material_transferred_for_manufacturing) < flt(doc.qty)) && frm.doc.status != 'Stopped') { frm.has_start_btn = true; var btn = frm.add_custom_button(__('Start'), cur_frm.cscript['Transfer Raw Materials']); btn.addClass('btn-primary'); + } } - if ((flt(doc.produced_qty) < flt(doc.material_transferred_for_manufacturing)) && frm.doc.status != 'Stopped') { - frm.has_finish_btn = true; - var btn = frm.add_custom_button(__('Finish'), - cur_frm.cscript['Update Finished Goods']); + if(!frm.doc.skip_transfer){ + if ((flt(doc.produced_qty) < flt(doc.material_transferred_for_manufacturing)) && frm.doc.status != 'Stopped') { + frm.has_finish_btn = true; + var btn = frm.add_custom_button(__('Finish'), + cur_frm.cscript['Update Finished Goods']); - if(doc.material_transferred_for_manufacturing==doc.qty) { - // all materials transferred for manufacturing, - // make this primary + if(doc.material_transferred_for_manufacturing==doc.qty) { + // all materials transferred for manufacturing, + // make this primary + btn.addClass('btn-primary'); + } + } + } else if(frm.doc.skip_transfer){ + if ((flt(doc.produced_qty) < flt(doc.qty)) && frm.doc.status != 'Stopped') { + frm.has_finish_btn = true; + var btn = frm.add_custom_button(__('Finish'), + cur_frm.cscript['Update Finished Goods']); btn.addClass('btn-primary'); } } @@ -235,9 +248,15 @@ $.extend(cur_frm.cscript, { make_se: function(purpose) { var me = this; - var max = (purpose === "Manufacture") ? - flt(this.frm.doc.material_transferred_for_manufacturing) - flt(this.frm.doc.produced_qty) : - flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_manufacturing); + if(!this.frm.doc.skip_transfer){ + var max = (purpose === "Manufacture") ? + flt(this.frm.doc.material_transferred_for_manufacturing) - flt(this.frm.doc.produced_qty) : + flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_manufacturing); + } else if(this.frm.doc.skip_transfer){ + var max = (purpose === "Manufacture") ? + flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty) : + flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty); + } frappe.prompt({fieldtype:"Float", label: __("Qty for {0}", [purpose]), fieldname:"qty", description: __("Max: {0}", [max]), 'default': max }, diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json index 882833fe7d..1507089ad9 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.json +++ b/erpnext/manufacturing/doctype/production_order/production_order.json @@ -318,6 +318,36 @@ "search_index": 0, "set_only_once": 0, "unique": 0 + }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "Check if material transfer entry is not required", + "fieldname": "skip_transfer", + "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": "Skip Material Transfer", + "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_on_submit": 0, diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py index b9b10c159a..ff1082d0b8 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.py +++ b/erpnext/manufacturing/doctype/production_order/production_order.py @@ -535,7 +535,7 @@ def make_stock_entry(production_order_id, purpose, qty=None): stock_entry.from_warehouse = production_order.wip_warehouse stock_entry.to_warehouse = production_order.fg_warehouse additional_costs = get_additional_costs(production_order, fg_qty=stock_entry.fg_completed_qty) - stock_entry.project = frappe.db.get_value("Stock Entry",{"production_order": production_order_id,"purpose": "Material Transfer for Manufacture"}, "project") + stock_entry.project = production_order.project stock_entry.set("additional_costs", additional_costs) stock_entry.get_items() From f04ef8dfe0fb7c3c7598465522ebf45ccf0d95f4 Mon Sep 17 00:00:00 2001 From: Ishan Loya Date: Fri, 21 Apr 2017 16:14:34 +0530 Subject: [PATCH 10/17] Update documentation for Production Order skipping material transfer entry option --- .../docs/user/manual/en/manufacturing/production-order.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/erpnext/docs/user/manual/en/manufacturing/production-order.md b/erpnext/docs/user/manual/en/manufacturing/production-order.md index 3abf80f6cc..a05a3878aa 100644 --- a/erpnext/docs/user/manual/en/manufacturing/production-order.md +++ b/erpnext/docs/user/manual/en/manufacturing/production-order.md @@ -62,6 +62,13 @@ by: Stock Entry for PO +#### Transfer through Stock Entry +Use cases for this option are: +* If material transfer is done in bulk and/or is not required to be tracked against a particular Production Order +* If the responsibility for Material Transfer and Production Entry lies with two separate users + +If this is the case, you can select the Skip Material Transfer check box, which will allow you to make the “Manufacture” Stock Entry directly by clicking on the ‘Finish’ button. + ### Making Time Logs * Progress in the Production Order can be tracked using [Timesheet]({{docs_base_url}}/user/manual/en/projects/timesheet/timesheet-against-production-order.html) From 04c69fb46dd15a06dda540f1273b23e48b714ffa Mon Sep 17 00:00:00 2001 From: Ishan Loya Date: Fri, 21 Apr 2017 16:16:49 +0530 Subject: [PATCH 11/17] Minor fix --- erpnext/docs/user/manual/en/manufacturing/production-order.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/docs/user/manual/en/manufacturing/production-order.md b/erpnext/docs/user/manual/en/manufacturing/production-order.md index a05a3878aa..685a2ca50f 100644 --- a/erpnext/docs/user/manual/en/manufacturing/production-order.md +++ b/erpnext/docs/user/manual/en/manufacturing/production-order.md @@ -62,7 +62,7 @@ by: Stock Entry for PO -#### Transfer through Stock Entry +#### Material Transfer through Stock Entry Use cases for this option are: * If material transfer is done in bulk and/or is not required to be tracked against a particular Production Order * If the responsibility for Material Transfer and Production Entry lies with two separate users From e5fdd47fd851852124f40a032b6f8294fe784d62 Mon Sep 17 00:00:00 2001 From: Ishan Loya Date: Fri, 21 Apr 2017 16:34:18 +0530 Subject: [PATCH 12/17] Hide 'Qty Transferred for Manufacturing' field if skip material transfer --- .../doctype/production_order/production_order.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json index 1507089ad9..a3b2102ddd 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.json +++ b/erpnext/manufacturing/doctype/production_order/production_order.json @@ -318,7 +318,7 @@ "search_index": 0, "set_only_once": 0, "unique": 0 - }, + }, { "allow_on_submit": 0, "bold": 0, @@ -355,7 +355,7 @@ "collapsible": 0, "columns": 0, "default": "0", - "depends_on": "eval:doc.docstatus==1", + "depends_on": "eval:doc.docstatus==1 && doc.skip_transfer==0", "description": "", "fieldname": "material_transferred_for_manufacturing", "fieldtype": "Float", @@ -1346,8 +1346,8 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-04-10 12:13:09.312186", - "modified_by": "Administrator", + "modified": "2017-04-21 16:31:19.509721", + "modified_by": "ishan@loyapeb.com", "module": "Manufacturing", "name": "Production Order", "owner": "Administrator", From b12e15dcc4d33a62ddc9f6b7fe826f69bca0a7eb Mon Sep 17 00:00:00 2001 From: Ishan Loya Date: Fri, 21 Apr 2017 16:58:27 +0530 Subject: [PATCH 13/17] Change modified by --- .../doctype/production_order/production_order.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json index a3b2102ddd..8d28907263 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.json +++ b/erpnext/manufacturing/doctype/production_order/production_order.json @@ -1347,7 +1347,7 @@ "istable": 0, "max_attachments": 0, "modified": "2017-04-21 16:31:19.509721", - "modified_by": "ishan@loyapeb.com", + "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Order", "owner": "Administrator", From 56c1b2a625484939749f0d4f2b7b6eff2cdae22f Mon Sep 17 00:00:00 2001 From: Ishan Loya Date: Fri, 21 Apr 2017 18:18:39 +0530 Subject: [PATCH 14/17] Make proposed corrections --- .../doctype/production_order/production_order.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js index 3ce87aad2f..d2540de02f 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.js +++ b/erpnext/manufacturing/doctype/production_order/production_order.js @@ -145,7 +145,7 @@ erpnext.production_order = { btn.addClass('btn-primary'); } } - } else if(frm.doc.skip_transfer){ + } else { if ((flt(doc.produced_qty) < flt(doc.qty)) && frm.doc.status != 'Stopped') { frm.has_finish_btn = true; var btn = frm.add_custom_button(__('Finish'), @@ -252,10 +252,8 @@ $.extend(cur_frm.cscript, { var max = (purpose === "Manufacture") ? flt(this.frm.doc.material_transferred_for_manufacturing) - flt(this.frm.doc.produced_qty) : flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_manufacturing); - } else if(this.frm.doc.skip_transfer){ - var max = (purpose === "Manufacture") ? - flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty) : - flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty); + } else { + var max = flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty); } frappe.prompt({fieldtype:"Float", label: __("Qty for {0}", [purpose]), fieldname:"qty", @@ -334,4 +332,4 @@ cur_frm.fields_dict['project'].get_query = function(doc, dt, dn) { ['Project', 'status', 'not in', 'Completed, Cancelled'] ] } -} +} \ No newline at end of file From 6eaf281b2b4b73a8bed7af7b05b23ddbba4edcda Mon Sep 17 00:00:00 2001 From: Manas Solanki Date: Mon, 24 Apr 2017 18:26:13 +0530 Subject: [PATCH 15/17] Export and import program enrollments --- .../program_enrollment.json | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.json b/erpnext/schools/doctype/program_enrollment/program_enrollment.json index 988af05091..a07b3eec05 100644 --- a/erpnext/schools/doctype/program_enrollment/program_enrollment.json +++ b/erpnext/schools/doctype/program_enrollment/program_enrollment.json @@ -1,7 +1,7 @@ { "allow_copy": 0, "allow_guest_to_view": 0, - "allow_import": 0, + "allow_import": 1, "allow_rename": 0, "autoname": "PE.#####", "beta": 0, @@ -14,6 +14,7 @@ "engine": "InnoDB", "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -44,6 +45,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -74,6 +76,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -104,6 +107,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 1, "bold": 0, "collapsible": 0, @@ -134,6 +138,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -164,6 +169,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -192,6 +198,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -222,6 +229,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 1, "bold": 0, "collapsible": 0, @@ -252,6 +260,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -282,6 +291,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 1, "bold": 0, "collapsible": 0, @@ -312,6 +322,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -341,6 +352,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -370,6 +382,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 1, "bold": 0, "collapsible": 0, @@ -400,6 +413,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -429,6 +443,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -460,6 +475,7 @@ "width": "" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -489,6 +505,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -530,7 +547,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2017-04-12 12:12:10.148274", + "modified": "2017-04-24 18:22:43.567607", "modified_by": "Administrator", "module": "Schools", "name": "Program Enrollment", From dd70fbfdae636146c68fea41d9b5dd61c3a06c17 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 24 Apr 2017 16:31:51 +0530 Subject: [PATCH 16/17] [fix] Letter head not showing in the report --- .../accounts_receivable/accounts_receivable.html | 5 ++++- erpnext/accounts/report/financial_statements.html | 12 ++++++++---- .../report/general_ledger/general_ledger.html | 5 ++++- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.html b/erpnext/accounts/report/accounts_receivable/accounts_receivable.html index f463c07579..ba847c0061 100644 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.html +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.html @@ -1,6 +1,9 @@ +{% var letterhead= filters.letter_head || frappe.get_doc(":Company", filters.company).default_letter_head || frappe.defaults.get_default("letter_head"); %} +{% if(letterhead) { %}
- {%= frappe.boot.letter_heads[frappe.get_doc(":Company", filters.company).default_letter_head || frappe.defaults.get_default("letter_head")] %} + {%= frappe.boot.letter_heads[letterhead].header %}
+{% } %}

{%= __(report.report_name) %}

{%= filters.customer || filters.supplier %}

diff --git a/erpnext/accounts/report/financial_statements.html b/erpnext/accounts/report/financial_statements.html index 6959e5d3ed..cd92139ce0 100644 --- a/erpnext/accounts/report/financial_statements.html +++ b/erpnext/accounts/report/financial_statements.html @@ -13,12 +13,16 @@ height: 37px; } +{% var letterhead= filters.letter_head || frappe.get_doc(":Company", filters.company).default_letter_head || frappe.defaults.get_default("letter_head"); %} +{% if(letterhead) { %}
- {%= frappe.boot.letter_heads[frappe.get_doc(":Company", filters.company).default_letter_head || frappe.defaults.get_default("letter_head")] %} + {%= frappe.boot.letter_heads[letterhead].header %}
+{% } %}

{%= __(report.report_name) %}

-

{%= filters.company %}

-

{%= filters.fiscal_year %}

+

{%= filters.company %}

+

{%= filters.fiscal_year %}

+
{%= __("Currency") %} : {%= erpnext.get_currency(filters.company) %}
{% if (filters.from_date) { %}

{%= dateutil.str_to_user(filters.from_date) %} - {%= dateutil.str_to_user(filters.to_date) %}

{% } %} @@ -47,7 +51,7 @@ {% var fieldname = report.columns[i].field; %} {% if (!is_null(row[fieldname])) { %} - {%= format_currency(row[fieldname], row.currency) %} + {%= format_number(row[fieldname], null)%} {% } %} {% } %} diff --git a/erpnext/accounts/report/general_ledger/general_ledger.html b/erpnext/accounts/report/general_ledger/general_ledger.html index 7552eed1ac..95918117c7 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.html +++ b/erpnext/accounts/report/general_ledger/general_ledger.html @@ -1,6 +1,9 @@ +{% var letterhead= filters.letter_head || frappe.get_doc(":Company", filters.company).default_letter_head || frappe.defaults.get_default("letter_head"); %} +{% if(letterhead) { %}
- {%= frappe.boot.letter_heads[filters.letter_head || frappe.get_doc(":Company", filters.company).default_letter_head || frappe.defaults.get_default("letter_head")] %} + {%= frappe.boot.letter_heads[letterhead].header %}
+{% } %}

{%= __("Statement of Account") %}

{%= (filters.party || filters.account) && ((filters.party || filters.account) + ", ") || "" %} {%= filters.company %}

From e2741e85fdcfef418f3854784e1b4adc61b33d4f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 24 Apr 2017 19:29:01 +0600 Subject: [PATCH 17/17] bumped to version 8.0.16 --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index e955c09b25..1065d6bee1 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals import frappe -__version__ = '8.0.15' +__version__ = '8.0.16' def get_default_company(user=None): '''Get default company for user'''