Merge pull request #12930 from achillesrasquinha/py3-fixes
Py3 fixes
diff --git a/.gitignore b/.gitignore
index 0d39ab2..d641ced 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,6 @@
*.egg-info
dist/
erpnext/docs/current
+*.swp
+*.swo
+*~
diff --git a/.swp b/.swp
deleted file mode 100644
index 5a492bd..0000000
--- a/.swp
+++ /dev/null
Binary files differ
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 32f1e01..6c8d7c8 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -5,7 +5,7 @@
from erpnext.hooks import regional_overrides
from frappe.utils import getdate
-__version__ = '10.0.21'
+__version__ = '10.0.22'
def get_default_company(user=None):
'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
index 0aaed8f..e8b60ac 100644
--- a/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
+++ b/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py
@@ -14,7 +14,7 @@
class BankReconciliation(Document):
def get_payment_entries(self):
if not (self.bank_account and self.from_date and self.to_date):
- msgprint("Bank Account, From Date and To Date are Mandatory")
+ msgprint(_("Bank Account, From Date and To Date are Mandatory"))
return
condition = ""
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index de0b6f5..26cc598 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -8,6 +8,10 @@
setup: function(doc) {
this.setup_posting_date_time_check();
this._super(doc);
+
+ // formatter for material request item
+ this.frm.set_indicator_formatter('item_code',
+ function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
},
onload: function() {
this._super();
@@ -20,10 +24,6 @@
} else {
this.frm.set_value("disable_rounded_total", cint(frappe.sys_defaults.disable_rounded_total));
}
-
- // formatter for material request item
- this.frm.set_indicator_formatter('item_code',
- function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
},
refresh: function(doc) {
diff --git a/erpnext/accounts/doctype/share_transfer/share_transfer.py b/erpnext/accounts/doctype/share_transfer/share_transfer.py
index c2eaa03..2a2d9ff 100644
--- a/erpnext/accounts/doctype/share_transfer/share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/share_transfer.py
@@ -4,8 +4,12 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
from frappe.model.naming import make_autoname
+from frappe.exceptions import ValidationError
+
+class ShareDontExists(ValidationError): pass
class ShareTransfer(Document):
def before_save(self):
@@ -66,44 +70,45 @@
# validate share doesnt exist in company
ret_val = self.share_exists(self.get_shareholder_doc(self.company).name)
if ret_val != False:
- frappe.throw('The shares already exist')
+ frappe.throw(_('The shares already exist'), frappe.DuplicateEntryError)
else:
# validate share exists with from_shareholder
ret_val = self.share_exists(self.from_shareholder)
if ret_val != True:
- frappe.throw('The shares don\'t exist with the {0}'.format(self.from_shareholder))
+ frappe.throw(_("The shares don't exist with the {0}")
+ .format(self.from_shareholder), ShareDontExists)
def basic_validations(self):
if self.transfer_type == 'Purchase':
self.to_shareholder = ''
if self.from_shareholder is None or self.from_shareholder is '':
- frappe.throw('The field \'From Shareholder\' cannot be blank')
+ frappe.throw(_('The field From Shareholder cannot be blank'))
if self.from_folio_no is None or self.from_folio_no is '':
self.to_folio_no = self.autoname_folio(self.to_shareholder)
elif (self.transfer_type == 'Issue'):
self.from_shareholder = ''
if self.to_shareholder is None or self.to_shareholder == '':
- frappe.throw('The field \'To Shareholder\' cannot be blank')
+ frappe.throw(_('The field To Shareholder cannot be blank'))
if self.to_folio_no is None or self.to_folio_no is '':
self.to_folio_no = self.autoname_folio(self.to_shareholder)
else:
if self.from_shareholder is None or self.to_shareholder is None:
- frappe.throw('The fields \'From Shareholder\' and \'To Shareholder\' cannot be blank')
+ frappe.throw(_('The fields From Shareholder and To Shareholder cannot be blank'))
if self.to_folio_no is None or self.to_folio_no is '':
self.to_folio_no = self.autoname_folio(self.to_shareholder)
if self.from_shareholder == self.to_shareholder:
- frappe.throw('The seller and the buyer cannot be the same')
+ frappe.throw(_('The seller and the buyer cannot be the same'))
if self.no_of_shares != self.to_no - self.from_no + 1:
- frappe.throw('The number of shares and the share numbers are inconsistent!')
+ frappe.throw(_('The number of shares and the share numbers are inconsistent'))
if self.amount is None:
self.amount = self.rate * self.no_of_shares
if self.amount != self.rate * self.no_of_shares:
- frappe.throw('There\'s inconsistency between the rate, no of shares and the amount calculated')
+ frappe.throw(_('There are inconsistencies between the rate, no of shares and the amount calculated'))
def share_exists(self, shareholder):
- # return True if exits,
- # False if completely doesn't exist,
- # 'partially exists' if partailly doesn't exist
+ # return True if exits,
+ # False if completely doesn't exist,
+ # 'partially exists' if partailly doesn't exist
ret_val = self.recursive_share_check(shareholder, self.share_type,
query = {
'from_no': self.from_no,
@@ -177,13 +182,14 @@
for shareholder in shareholders:
doc = frappe.get_doc('Shareholder', self.get(shareholder))
if doc.company != self.company:
- frappe.throw('The shareholder doesn\'t belong to this company')
+ frappe.throw(_('The shareholder does not belong to this company'))
if doc.folio_no is '' or doc.folio_no is None:
- doc.folio_no = self.from_folio_no if (shareholder == 'from_shareholder') else self.to_folio_no;
+ doc.folio_no = self.from_folio_no \
+ if (shareholder == 'from_shareholder') else self.to_folio_no;
doc.save()
else:
if doc.folio_no != (self.from_folio_no if (shareholder == 'from_shareholder') else self.to_folio_no):
- frappe.throw('The folio numbers are not matching')
+ frappe.throw(_('The folio numbers are not matching'))
def autoname_folio(self, shareholder, is_company=False):
if is_company:
@@ -200,8 +206,8 @@
'from_no': self.from_no,
'to_no' : self.to_no
},
- rate = self.rate,
- amount = self.amount
+ rate = self.rate,
+ amount = self.amount
)
def iterative_share_removal(self, shareholder, share_type, query, rate, amount):
diff --git a/erpnext/accounts/doctype/share_transfer/test_records.json b/erpnext/accounts/doctype/share_transfer/test_records.json
deleted file mode 100644
index 13b37b4..0000000
--- a/erpnext/accounts/doctype/share_transfer/test_records.json
+++ /dev/null
@@ -1,76 +0,0 @@
-
-[
- {
- "doctype" : "Company",
- "company_name" : "Stark Tower",
- "abbr" : "ST",
- "default_currency" : "INR"
- },
- {
- "doctype" : "Share Type",
- "title" : "Class A"
- },
- {
- "doctype" : "Share Transfer",
- "transfer_type" : "Issue",
- "date" : "2018-01-01",
- "to_shareholder" : "SH-00001",
- "share_type" : "Equity",
- "from_no" : 1,
- "to_no" : 500,
- "no_of_shares" : 500,
- "rate" : 10,
- "company" : "Stark Tower"
- },
- {
- "doctype" : "Share Transfer",
- "transfer_type" : "Transfer",
- "date" : "2018-01-02",
- "from_shareholder" : "SH-00001",
- "to_shareholder" : "SH-00002",
- "share_type" : "Equity",
- "from_no" : 101,
- "to_no" : 200,
- "no_of_shares" : 100,
- "rate" : 15,
- "company" : "Stark Tower"
- },
- {
- "doctype" : "Share Transfer",
- "transfer_type" : "Transfer",
- "date" : "2018-01-03",
- "from_shareholder" : "SH-00001",
- "to_shareholder" : "SH-00003",
- "share_type" : "Equity",
- "from_no" : 201,
- "to_no" : 500,
- "no_of_shares" : 300,
- "rate" : 20,
- "company" : "Stark Tower"
- },
- {
- "doctype" : "Share Transfer",
- "transfer_type" : "Transfer",
- "date" : "2018-01-04",
- "from_shareholder" : "SH-00001",
- "to_shareholder" : "SH-00002",
- "share_type" : "Equity",
- "from_no" : 201,
- "to_no" : 400,
- "no_of_shares" : 200,
- "rate" : 15,
- "company" : "Stark Tower"
- },
- {
- "doctype" : "Share Transfer",
- "transfer_type" : "Purchase",
- "date" : "2018-01-05",
- "from_shareholder" : "SH-00003",
- "share_type" : "Equity",
- "from_no" : 401,
- "to_no" : 500,
- "no_of_shares" : 100,
- "rate" : 25,
- "company" : "Stark Tower"
- }
-]
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/share_transfer/test_share_transfer.py b/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
index 8dee358..b74d6d6 100644
--- a/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
+++ b/erpnext/accounts/doctype/share_transfer/test_share_transfer.py
@@ -5,11 +5,82 @@
import frappe
import unittest
-from frappe import ValidationError
+from erpnext.accounts.doctype.share_transfer.share_transfer import ShareDontExists
test_dependencies = ["Share Type", "Shareholder"]
class TestShareTransfer(unittest.TestCase):
+ def setUp(self):
+ frappe.db.sql("delete from `tabShare Transfer`")
+ frappe.db.sql("delete from `tabShare Balance`")
+ share_transfers = [
+ {
+ "doctype" : "Share Transfer",
+ "transfer_type" : "Issue",
+ "date" : "2018-01-01",
+ "to_shareholder" : "SH-00001",
+ "share_type" : "Equity",
+ "from_no" : 1,
+ "to_no" : 500,
+ "no_of_shares" : 500,
+ "rate" : 10,
+ "company" : "_Test Company"
+ },
+ {
+ "doctype" : "Share Transfer",
+ "transfer_type" : "Transfer",
+ "date" : "2018-01-02",
+ "from_shareholder" : "SH-00001",
+ "to_shareholder" : "SH-00002",
+ "share_type" : "Equity",
+ "from_no" : 101,
+ "to_no" : 200,
+ "no_of_shares" : 100,
+ "rate" : 15,
+ "company" : "_Test Company"
+ },
+ {
+ "doctype" : "Share Transfer",
+ "transfer_type" : "Transfer",
+ "date" : "2018-01-03",
+ "from_shareholder" : "SH-00001",
+ "to_shareholder" : "SH-00003",
+ "share_type" : "Equity",
+ "from_no" : 201,
+ "to_no" : 500,
+ "no_of_shares" : 300,
+ "rate" : 20,
+ "company" : "_Test Company"
+ },
+ {
+ "doctype" : "Share Transfer",
+ "transfer_type" : "Transfer",
+ "date" : "2018-01-04",
+ "from_shareholder" : "SH-00003",
+ "to_shareholder" : "SH-00002",
+ "share_type" : "Equity",
+ "from_no" : 201,
+ "to_no" : 400,
+ "no_of_shares" : 200,
+ "rate" : 15,
+ "company" : "_Test Company"
+ },
+ {
+ "doctype" : "Share Transfer",
+ "transfer_type" : "Purchase",
+ "date" : "2018-01-05",
+ "from_shareholder" : "SH-00003",
+ "share_type" : "Equity",
+ "from_no" : 401,
+ "to_no" : 500,
+ "no_of_shares" : 100,
+ "rate" : 25,
+ "company" : "_Test Company"
+ }
+ ]
+ for d in share_transfers:
+ frappe.get_doc(d).insert()
+
def test_invalid_share_transfer(self):
doc = frappe.get_doc({
"doctype" : "Share Transfer",
@@ -22,11 +93,10 @@
"to_no" : 100,
"no_of_shares" : 100,
"rate" : 15,
- "company" : "Stark Tower"
+ "company" : "_Test Company"
})
- self.assertRaises(ValidationError, doc.insert)
+ self.assertRaises(ShareDontExists, doc.insert)
- def test_invalid_share_purchase(self):
doc = frappe.get_doc({
"doctype" : "Share Transfer",
"transfer_type" : "Purchase",
@@ -37,6 +107,6 @@
"to_no" : 200,
"no_of_shares" : 200,
"rate" : 15,
- "company" : "Stark Tower"
+ "company" : "_Test Company"
})
- self.assertRaises(ValidationError, doc.insert)
+ self.assertRaises(ShareDontExists, doc.insert)
diff --git a/erpnext/accounts/doctype/shareholder/shareholder.json b/erpnext/accounts/doctype/shareholder/shareholder.json
index be35e7b..22a3061 100644
--- a/erpnext/accounts/doctype/shareholder/shareholder.json
+++ b/erpnext/accounts/doctype/shareholder/shareholder.json
@@ -42,7 +42,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "unique": 1
+ "unique": 0
},
{
"allow_bulk_edit": 0,
@@ -79,6 +79,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "default": "SH-",
"fieldname": "naming_series",
"fieldtype": "Select",
"hidden": 0,
@@ -477,7 +478,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2018-01-23 17:49:02.941363",
+ "modified": "2018-02-13 06:43:36.319549",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Shareholder",
diff --git a/erpnext/accounts/doctype/shareholder/test_records.json b/erpnext/accounts/doctype/shareholder/test_records.json
index ca289cb..39b72d4 100644
--- a/erpnext/accounts/doctype/shareholder/test_records.json
+++ b/erpnext/accounts/doctype/shareholder/test_records.json
@@ -1,17 +1,20 @@
[
{
"doctype": "Shareholder",
- "series": "SH-",
- "title": "Iron Man"
+ "naming_series": "SH-",
+ "title": "Iron Man",
+ "company": "_Test Company"
},
{
"doctype": "Shareholder",
- "series": "SH-",
- "title": "Thor"
+ "naming_series": "SH-",
+ "title": "Thor",
+ "company": "_Test Company"
},
{
"doctype": "Shareholder",
- "series": "SH-",
- "title": "Hulk"
+ "naming_series": "SH-",
+ "title": "Hulk",
+ "company": "_Test Company"
}
]
\ No newline at end of file
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index 65bd07e..29beda0 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -410,6 +410,21 @@
group by pref.reference_name""", party_type, as_dict=1):
pdc_details.setdefault(pdc.invoice_no, pdc)
+ for pdc in frappe.db.sql("""
+ select
+ jea.reference_name as invoice_no, jea.party, jea.party_type,
+ max(je.cheque_date) as pdc_date, sum(ifnull(je.total_amount,0)) as pdc_amount,
+ GROUP_CONCAT(je.cheque_no SEPARATOR ', ') as pdc_ref
+ from
+ `tabJournal Entry` as je inner join `tabJournal Entry Account` as jea
+ on
+ (jea.parent = je.name)
+ where
+ je.docstatus = 0 and je.cheque_date > je.posting_date
+ and jea.party_type = %s
+ group by jea.reference_name""", party_type, as_dict=1):
+ pdc_details.setdefault(pdc.invoice_no, pdc)
+
return pdc_details
def get_dn_details(party_type):
diff --git a/erpnext/agriculture/doctype/crop/crop.py b/erpnext/agriculture/doctype/crop/crop.py
index 7eeb8af..9121b54 100644
--- a/erpnext/agriculture/doctype/crop/crop.py
+++ b/erpnext/agriculture/doctype/crop/crop.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
class Crop(Document):
@@ -12,7 +13,7 @@
for task in self.agriculture_task:
# validate start_day is not > end_day
if task.start_day > task.end_day:
- frappe.throw("Start day is greater than end day in task '{0}'".format(task.subject))
+ frappe.throw(_("Start day is greater than end day in task '{0}'").format(task.subject))
# to calculate the period of the Crop Cycle
if task.end_day > max_period: max_period = task.end_day
if max_period > self.period: self.period = max_period
diff --git a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py
index 21dfe31..1d9f324 100644
--- a/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py
+++ b/erpnext/agriculture/doctype/crop_cycle/crop_cycle.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
import ast
@@ -31,7 +32,7 @@
old_disease.append(detected_disease.name)
if list(set(new_disease)-set(old_disease)) != []:
self.update_disease(list(set(new_disease)-set(old_disease)))
- frappe.msgprint("All tasks for the detected diseases were imported")
+ frappe.msgprint(_("All tasks for the detected diseases were imported"))
def update_disease(self, disease_hashes):
new_disease = []
diff --git a/erpnext/agriculture/doctype/disease/disease.py b/erpnext/agriculture/doctype/disease/disease.py
index 42005d6..8a0e6f3 100644
--- a/erpnext/agriculture/doctype/disease/disease.py
+++ b/erpnext/agriculture/doctype/disease/disease.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
class Disease(Document):
@@ -12,7 +13,7 @@
for task in self.treatment_task:
# validate start_day is not > end_day
if task.start_day > task.end_day:
- frappe.throw("Start day is greater than end day in task '{0}'".format(task.task_name))
+ frappe.throw(_("Start day is greater than end day in task '{0}'").format(task.task_name))
# to calculate the period of the Crop Cycle
if task.end_day > max_period: max_period = task.end_day
self.treatment_period = max_period
\ No newline at end of file
diff --git a/erpnext/agriculture/doctype/soil_texture/soil_texture.py b/erpnext/agriculture/doctype/soil_texture/soil_texture.py
index 7345e86..b66d00c 100644
--- a/erpnext/agriculture/doctype/soil_texture/soil_texture.py
+++ b/erpnext/agriculture/doctype/soil_texture/soil_texture.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
from frappe.utils import flt, cint
@@ -20,9 +21,9 @@
self.update_soil_edit('sand_composition')
for soil_type in self.soil_types:
if self.get(soil_type) > 100 or self.get(soil_type) < 0:
- frappe.throw("{0} should be a value between 0 and 100".format(soil_type))
+ frappe.throw(_("{0} should be a value between 0 and 100").format(soil_type))
if sum(self.get(soil_type) for soil_type in self.soil_types) != 100:
- frappe.throw('Soil compositions do not add up to 100')
+ frappe.throw(_('Soil compositions do not add up to 100'))
def update_soil_edit(self, soil_type):
self.soil_edit_order[self.soil_types.index(soil_type)] = max(self.soil_edit_order)+1
diff --git a/erpnext/agriculture/doctype/water_analysis/water_analysis.py b/erpnext/agriculture/doctype/water_analysis/water_analysis.py
index 81fdf14..bd2cd11 100644
--- a/erpnext/agriculture/doctype/water_analysis/water_analysis.py
+++ b/erpnext/agriculture/doctype/water_analysis/water_analysis.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
class WaterAnalysis(Document):
@@ -18,6 +19,6 @@
def validate(self):
if self.collection_datetime > self.laboratory_testing_datetime:
- frappe.throw('Lab testing datetime cannot be before collection datetime')
+ frappe.throw(_('Lab testing datetime cannot be before collection datetime'))
if self.laboratory_testing_datetime > self.result_datetime:
- frappe.throw('Lab result datetime cannot be before testing datetime')
\ No newline at end of file
+ frappe.throw(_('Lab result datetime cannot be before testing datetime'))
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 51cec69..d500081 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -12,7 +12,7 @@
'Purchase Invoice': 'Invoice',
'Stock Entry': 'Material to Supplier'
}
-
+
frm.set_query("reserve_warehouse", "supplied_items", function() {
return {
filters: {
@@ -21,6 +21,9 @@
}
}
});
+
+ frm.set_indicator_formatter('item_code',
+ function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
},
onload: function(frm) {
@@ -34,9 +37,6 @@
frm.toggle_display('get_last_purchase_rate',
frm.doc.__onload.disable_fetch_last_purchase_rate);
}
-
- frm.set_indicator_formatter('item_code',
- function(doc) { return (doc.qty<=doc.received_qty) ? "green" : "orange" })
},
});
diff --git a/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js b/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
index a3a1414..e7a704a 100644
--- a/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
+++ b/erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
@@ -4,14 +4,14 @@
/* global frappe, refresh_field */
frappe.ui.form.on("Supplier Scorecard", {
-
- onload: function(frm) {
-
+ setup: function(frm) {
if (frm.doc.indicator_color !== "") {
frm.set_indicator_formatter("status", function(doc) {
return doc.indicator_color.toLowerCase();
});
}
+ },
+ onload: function(frm) {
if (frm.doc.__unsaved == 1) {
loadAllCriteria(frm);
loadAllStandings(frm);
diff --git a/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.js b/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.js
index 0dc0ee6..41d9ef3 100644
--- a/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.js
+++ b/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.js
@@ -94,7 +94,7 @@
},
freeze: true,
callback: (r) => {
- frappe.msgprint("Successfully Set Supplier");
+ frappe.msgprint(__("Successfully Set Supplier"));
dialog.hide();
}
});
diff --git a/erpnext/config/education.py b/erpnext/config/education.py
index 08846a2..e4e77f3 100644
--- a/erpnext/config/education.py
+++ b/erpnext/config/education.py
@@ -21,18 +21,7 @@
{
"type": "doctype",
"name": "Student Group"
- },
- {
- "type": "doctype",
- "name": "Student Group Creation Tool"
- },
- {
- "type": "report",
- "is_query_report": True,
- "name": "Student and Guardian Contact Details",
- "doctype": "Program Enrollment"
}
-
]
},
{
@@ -50,10 +39,6 @@
{
"type": "doctype",
"name": "Program Enrollment"
- },
- {
- "type": "doctype",
- "name": "Program Enrollment Tool"
}
]
},
@@ -69,10 +54,6 @@
"name": "Student Leave Application"
},
{
- "type": "doctype",
- "name": "Student Attendance Tool"
- },
- {
"type": "report",
"is_query_report": True,
"name": "Absent Student Report",
@@ -84,21 +65,26 @@
"name": "Student Batch-Wise Attendance",
"doctype": "Student Attendance"
},
- {
- "type": "report",
- "is_query_report": True,
- "name": "Student Monthly Attendance Sheet",
- "doctype": "Student Attendance"
- }
]
},
{
- "label": _("Schedule"),
+ "label": _("Tools"),
"items": [
{
"type": "doctype",
- "name": "Course Schedule",
- "route": "List/Course Schedule/Calendar"
+ "name": "Student Attendance Tool"
+ },
+ {
+ "type": "doctype",
+ "name": "Assessment Result Tool"
+ },
+ {
+ "type": "doctype",
+ "name": "Student Group Creation Tool"
+ },
+ {
+ "type": "doctype",
+ "name": "Program Enrollment Tool"
},
{
"type": "doctype",
@@ -125,15 +111,12 @@
{
"type": "doctype",
"name": "Assessment Criteria"
- },
- {
- "type": "doctype",
- "name": "Assessment Criteria Group"
- },
- {
- "type": "doctype",
- "name": "Assessment Result Tool"
- },
+ }
+ ]
+ },
+ {
+ "label": _("Assessment Reports"),
+ "items": [
{
"type": "report",
"is_query_report": True,
@@ -143,10 +126,15 @@
{
"type": "report",
"is_query_report": True,
+ "name": "Final Assessment Grades",
+ "doctype": "Assessment Result"
+ },
+ {
+ "type": "report",
+ "is_query_report": True,
"name": "Assessment Plan Status",
"doctype": "Assessment Plan"
},
-
]
},
{
@@ -167,17 +155,25 @@
{
"type": "doctype",
"name": "Fee Category"
- },
- {
- "type": "report",
- "name": "Student Fee Collection",
- "doctype": "Fees",
- "is_query_report": True
}
]
},
{
- "label": _("Setup"),
+ "label": _("Schedule"),
+ "items": [
+ {
+ "type": "doctype",
+ "name": "Course Schedule",
+ "route": "List/Course Schedule/Calendar"
+ },
+ {
+ "type": "doctype",
+ "name": "Course Scheduling Tool"
+ }
+ ]
+ },
+ {
+ "label": _("Masters"),
"items": [
{
"type": "doctype",
@@ -194,7 +190,12 @@
{
"type": "doctype",
"name": "Room"
- },
+ }
+ ]
+ },
+ {
+ "label": _("Setup"),
+ "items": [
{
"type": "doctype",
"name": "Student Category"
@@ -221,4 +222,27 @@
}
]
},
+ {
+ "label": _("Other Reports"),
+ "items": [
+ {
+ "type": "report",
+ "is_query_report": True,
+ "name": "Student and Guardian Contact Details",
+ "doctype": "Program Enrollment"
+ },
+ {
+ "type": "report",
+ "is_query_report": True,
+ "name": "Student Monthly Attendance Sheet",
+ "doctype": "Student Attendance"
+ },
+ {
+ "type": "report",
+ "name": "Student Fee Collection",
+ "doctype": "Fees",
+ "is_query_report": True
+ }
+ ]
+ }
]
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index a64e76f..6b18b82 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -150,13 +150,16 @@
if not frappe.db.get_single_value("Selling Settings", "validate_selling_price"):
return
+ if hasattr(self, "is_return") and self.is_return:
+ return
+
for it in self.get("items"):
if not it.item_code:
continue
last_purchase_rate, is_stock_item = frappe.db.get_value("Item", it.item_code, ["last_purchase_rate", "is_stock_item"])
last_purchase_rate_in_sales_uom = last_purchase_rate / (it.conversion_factor or 1)
- if flt(it.base_rate) < flt(last_purchase_rate_in_sales_uom) and not self.is_return:
+ if flt(it.base_rate) < flt(last_purchase_rate_in_sales_uom):
throw_message(it.item_name, last_purchase_rate_in_sales_uom, "last purchase rate")
last_valuation_rate = frappe.db.sql("""
@@ -166,7 +169,7 @@
""", (it.item_code, it.warehouse))
if last_valuation_rate:
last_valuation_rate_in_sales_uom = last_valuation_rate[0][0] / (it.conversion_factor or 1)
- if is_stock_item and flt(it.base_rate) < flt(last_valuation_rate_in_sales_uom) and not self.is_return:
+ if is_stock_item and flt(it.base_rate) < flt(last_valuation_rate_in_sales_uom):
throw_message(it.name, last_valuation_rate_in_sales_uom, "valuation rate")
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index 75f9dea..fc886ac 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -194,7 +194,7 @@
self.customer = None
elif self.enquiry_from == 'Customer':
if not self.customer:
- msgprint("Customer is mandatory if 'Opportunity From' is selected as Customer", raise_exception=1)
+ msgprint(_("Customer is mandatory if 'Opportunity From' is selected as Customer"), raise_exception=1)
else:
self.lead = None
diff --git a/erpnext/demo/data/drug_list.json b/erpnext/demo/data/drug_list.json
index 51b029c..f34ca57 100644
--- a/erpnext/demo/data/drug_list.json
+++ b/erpnext/demo/data/drug_list.json
@@ -65,7 +65,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -151,7 +150,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -237,7 +235,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -323,7 +320,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -409,7 +405,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -495,7 +490,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -581,7 +575,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -667,7 +660,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -753,7 +745,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -839,7 +830,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -925,7 +915,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1011,7 +1000,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1097,7 +1085,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1183,7 +1170,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1269,7 +1255,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1355,7 +1340,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1441,7 +1425,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1527,7 +1510,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1613,7 +1595,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1699,7 +1680,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1785,7 +1765,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1871,7 +1850,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -1957,7 +1935,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2043,7 +2020,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2129,7 +2105,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2215,7 +2190,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2301,7 +2275,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2387,7 +2360,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2473,7 +2445,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2559,7 +2530,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2645,7 +2615,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2731,7 +2700,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2817,7 +2785,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2903,7 +2870,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -2989,7 +2955,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3075,7 +3040,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3161,7 +3125,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3247,7 +3210,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3333,7 +3295,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3419,7 +3380,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3505,7 +3465,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3591,7 +3550,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3677,7 +3635,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3763,7 +3720,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3849,7 +3805,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -3935,7 +3890,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4021,7 +3975,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4107,7 +4060,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4193,7 +4145,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4279,7 +4230,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4365,7 +4315,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4451,7 +4400,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4537,7 +4485,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4623,7 +4570,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4709,7 +4655,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4795,7 +4740,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4881,7 +4825,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -4967,7 +4910,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -5053,7 +4995,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -5139,7 +5080,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -5225,7 +5165,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -5311,7 +5250,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
@@ -5397,7 +5335,6 @@
"taxes": [],
"thumbnail": null,
"tolerance": 0.0,
- "total_projected_qty": 0.0,
"uoms": [
{
"conversion_factor": 1.0,
diff --git a/erpnext/docs/user/manual/en/accounts/journal-entry.md b/erpnext/docs/user/manual/en/accounts/journal-entry.md
index 8c9ee4a..c967b34 100644
--- a/erpnext/docs/user/manual/en/accounts/journal-entry.md
+++ b/erpnext/docs/user/manual/en/accounts/journal-entry.md
@@ -7,7 +7,7 @@
To create a Journal Entry go to:
-> Accounts > Documents > Journal Entry > New
+> Accounts > Company and Accounts > Journal Entry > New
<img class="screenshot" alt="Journal Entry" src="{{docs_base_url}}/assets/img/accounts/journal-entry.png">
diff --git a/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md b/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md
index c309903..3f9a8c9 100644
--- a/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md
+++ b/erpnext/docs/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.md
@@ -13,7 +13,7 @@
Non Serialized items are generally fast moving and low value item, hence doesn't need tracking for each unit. Items like screw, cotton waste, other consumables, stationary products can be categorized as non-serialized.
-> Stock Reconciliation option is available for the non serialized Items only. For serialized and batch items, you should create Material Receipt entry in Stock Entry form.
+> Stock Reconciliation option is available for the non serialized Items only. For serialized and batch items, you should create Material Receipt (to increase stock) or Material Issue (to decrease stock) via Stock Entry.
### Opening Stocks
diff --git a/erpnext/education/api.py b/erpnext/education/api.py
index 99fb36e..5edc037 100644
--- a/erpnext/education/api.py
+++ b/erpnext/education/api.py
@@ -335,7 +335,7 @@
if doc.docstatus == 0:
return doc
elif doc.docstatus == 1:
- frappe.msgprint("Result already Submitted")
+ frappe.msgprint(_("Result already Submitted"))
return None
else:
return frappe.new_doc("Assessment Result")
diff --git a/erpnext/education/doctype/assessment_criteria/assessment_criteria.py b/erpnext/education/doctype/assessment_criteria/assessment_criteria.py
index eadc0de..1ea3702 100644
--- a/erpnext/education/doctype/assessment_criteria/assessment_criteria.py
+++ b/erpnext/education/doctype/assessment_criteria/assessment_criteria.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
STD_CRITERIA = ["total", "total score", "total grade", "maximum score", "score", "grade"]
@@ -11,4 +12,4 @@
class AssessmentCriteria(Document):
def validate(self):
if self.assessment_criteria.lower() in STD_CRITERIA:
- frappe.throw("Can't create standard criteria. Please rename the criteria")
\ No newline at end of file
+ frappe.throw(_("Can't create standard criteria. Please rename the criteria"))
\ No newline at end of file
diff --git a/erpnext/education/doctype/fees/fees.json b/erpnext/education/doctype/fees/fees.json
index c4e1f82..971197c 100644
--- a/erpnext/education/doctype/fees/fees.json
+++ b/erpnext/education/doctype/fees/fees.json
@@ -4,7 +4,7 @@
"allow_import": 1,
"allow_rename": 0,
"autoname": "naming_series:",
- "beta": 1,
+ "beta": 0,
"creation": "2015-09-22 16:57:22.143710",
"custom": 0,
"docstatus": 0,
@@ -1276,7 +1276,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-12-06 05:55:10.502567",
+ "modified": "2018-02-08 02:12:34.185245",
"modified_by": "Administrator",
"module": "Education",
"name": "Fees",
diff --git a/erpnext/education/doctype/instructor/instructor.py b/erpnext/education/doctype/instructor/instructor.py
index 44a4e4c..78e4261 100644
--- a/erpnext/education/doctype/instructor/instructor.py
+++ b/erpnext/education/doctype/instructor/instructor.py
@@ -18,7 +18,7 @@
self.name = make_autoname(self.naming_series + '.####')
elif naming_method == 'Employee Number':
if not self.employee:
- frappe.throw("Please select Employee")
+ frappe.throw(_("Please select Employee"))
self.name = self.employee
elif naming_method == 'Full Name':
self.name = self.instructor_name
diff --git a/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py
index bc60218..e15be50 100644
--- a/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py
+++ b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py
@@ -63,4 +63,4 @@
prog_enrollment.academic_term = self.academic_term
prog_enrollment.student_batch_name = stud.student_batch_name if stud.student_batch_name else self.new_student_batch
prog_enrollment.save()
- frappe.msgprint("{0} Students have been enrolled.".format(total))
+ frappe.msgprint(_("{0} Students have been enrolled").format(total))
diff --git a/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
index e153f8c..61976b4 100644
--- a/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
+++ b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
@@ -7,7 +7,7 @@
"doctype": "Report",
"idx": 0,
"is_standard": "Yes",
- "modified": "2017-11-10 19:41:46.641227",
+ "modified": "2018-02-08 15:11:24.904628",
"modified_by": "Administrator",
"module": "Education",
"name": "Course wise Assessment Report",
@@ -17,7 +17,10 @@
"report_type": "Script Report",
"roles": [
{
- "role": "Academics User"
+ "role": "Instructor"
+ },
+ {
+ "role": "Education Manager"
}
]
}
\ No newline at end of file
diff --git a/erpnext/education/report/final_assessment_grades/final_assessment_grades.json b/erpnext/education/report/final_assessment_grades/final_assessment_grades.json
index 1efbb6e..e748efa 100644
--- a/erpnext/education/report/final_assessment_grades/final_assessment_grades.json
+++ b/erpnext/education/report/final_assessment_grades/final_assessment_grades.json
@@ -8,7 +8,7 @@
"idx": 0,
"is_standard": "Yes",
"letter_head": "Shishuvan Secondary School",
- "modified": "2018-01-22 17:04:43.412054",
+ "modified": "2018-02-08 15:11:35.339434",
"modified_by": "Administrator",
"module": "Education",
"name": "Final Assessment Grades",
@@ -16,5 +16,12 @@
"ref_doctype": "Assessment Result",
"report_name": "Final Assessment Grades",
"report_type": "Script Report",
- "roles": []
+ "roles": [
+ {
+ "role": "Instructor"
+ },
+ {
+ "role": "Education Manager"
+ }
+ ]
}
\ No newline at end of file
diff --git a/erpnext/healthcare/doctype/consultation/consultation.js b/erpnext/healthcare/doctype/consultation/consultation.js
index 89b8861..b0dbff5 100644
--- a/erpnext/healthcare/doctype/consultation/consultation.js
+++ b/erpnext/healthcare/doctype/consultation/consultation.js
@@ -41,7 +41,7 @@
frappe.route_options = {"patient": frm.doc.patient};
frappe.set_route("medical_record");
} else {
- frappe.msgprint("Please select Patient");
+ frappe.msgprint(__("Please select Patient"));
}
},"View");
frm.add_custom_button(__('Vital Signs'), function() {
@@ -121,7 +121,7 @@
var create_medical_record = function (frm) {
if(!frm.doc.patient){
- frappe.throw("Please select patient");
+ frappe.throw(__("Please select patient"));
}
frappe.route_options = {
"patient": frm.doc.patient,
@@ -134,7 +134,7 @@
var btn_create_vital_signs = function (frm) {
if(!frm.doc.patient){
- frappe.throw("Please select patient");
+ frappe.throw(__("Please select patient"));
}
frappe.route_options = {
"patient": frm.doc.patient,
diff --git a/erpnext/healthcare/doctype/consultation/consultation.py b/erpnext/healthcare/doctype/consultation/consultation.py
index 809074e..7d41afe 100755
--- a/erpnext/healthcare/doctype/consultation/consultation.py
+++ b/erpnext/healthcare/doctype/consultation/consultation.py
@@ -21,7 +21,7 @@
def on_submit(self):
if not self.diagnosis or not self.symptoms:
- frappe.throw("Diagnosis and Complaints cannot be left blank")
+ frappe.throw(_("Diagnosis and Complaints cannot be left blank"))
def on_cancel(self):
if(self.appointment):
diff --git a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
index 0d3d6e7..ae7c4c5 100644
--- a/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
+++ b/erpnext/healthcare/doctype/healthcare_settings/healthcare_settings.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe
+from frappe import _
from frappe.model.document import Document
from frappe.core.doctype.sms_settings.sms_settings import send_sms
import json
@@ -15,7 +16,7 @@
frappe.db.set_default(key, self.get(key, ""))
if(self.collect_registration_fee):
if self.registration_fee <= 0 :
- frappe.throw("Registration fee can not be Zero")
+ frappe.throw(_("Registration fee can not be Zero"))
@frappe.whitelist()
def get_sms_text(doc):
diff --git a/erpnext/healthcare/doctype/lab_test/lab_test.js b/erpnext/healthcare/doctype/lab_test/lab_test.js
index 2a453cd..02aa001 100644
--- a/erpnext/healthcare/doctype/lab_test/lab_test.js
+++ b/erpnext/healthcare/doctype/lab_test/lab_test.js
@@ -101,14 +101,14 @@
frappe.ui.form.on('Normal Test Items', {
normal_test_items_remove: function() {
- frappe.msgprint("Not permitted, configure Lab Test Template as required");
+ frappe.msgprint(__("Not permitted, configure Lab Test Template as required"));
cur_frm.reload_doc();
}
});
frappe.ui.form.on('Special Test Items', {
special_test_items_remove: function() {
- frappe.msgprint("Not permitted, configure Lab Test Template as required");
+ frappe.msgprint(__("Not permitted, configure Lab Test Template as required"));
cur_frm.reload_doc();
}
});
@@ -142,7 +142,7 @@
});
}
else{
- frappe.msgprint("Please select Patient to get Lab Tests");
+ frappe.msgprint(__("Please select Patient to get Lab Tests"));
}
};
@@ -217,7 +217,7 @@
if(doc.normal_test_items){
for(let result in doc.normal_test_items){
if(!doc.normal_test_items[result].result_value && doc.normal_test_items[result].require_result_value == 1){
- frappe.msgprint("Please input all required Result Value(s)");
+ frappe.msgprint(__("Please input all required Result Value(s)"));
throw("Error");
}
}
@@ -225,7 +225,7 @@
if(doc.special_test_items){
for(let result in doc.special_test_items){
if(!doc.special_test_items[result].result_value && doc.special_test_items[result].require_result_value == 1){
- frappe.msgprint("Please input all required Result Value(s)");
+ frappe.msgprint(__("Please input all required Result Value(s)"));
throw("Error");
}
}
diff --git a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py
index bb0ead6..d178b0b 100644
--- a/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py
+++ b/erpnext/healthcare/doctype/lab_test_template/lab_test_template.py
@@ -36,7 +36,7 @@
try:
frappe.delete_doc("Item",self.item)
except Exception:
- frappe.throw("""Not permitted. Please disable the Test Template""")
+ frappe.throw(_("""Not permitted. Please disable the Test Template"""))
def item_price_exist(doc):
item_price = frappe.db.exists({
diff --git a/erpnext/healthcare/doctype/patient/patient.js b/erpnext/healthcare/doctype/patient/patient.js
index 57e5eef..b1150ab 100644
--- a/erpnext/healthcare/doctype/patient/patient.js
+++ b/erpnext/healthcare/doctype/patient/patient.js
@@ -53,7 +53,7 @@
var today = new Date();
var birthDate = new Date(frm.doc.dob);
if(today < birthDate){
- frappe.msgprint("Please select a valid Date");
+ frappe.msgprint(__("Please select a valid Date"));
frappe.model.set_value(frm.doctype,frm.docname, "dob", "");
}
else{
@@ -83,7 +83,7 @@
var btn_create_vital_signs = function (frm) {
if (!frm.doc.name) {
- frappe.throw("Please save the patient first");
+ frappe.throw(__("Please save the patient first"));
}
frappe.route_options = {
"patient": frm.doc.name,
@@ -93,7 +93,7 @@
var btn_create_consultation = function (frm) {
if (!frm.doc.name) {
- frappe.throw("Please save the patient first");
+ frappe.throw(__("Please save the patient first"));
}
frappe.route_options = {
"patient": frm.doc.name,
diff --git a/erpnext/healthcare/doctype/patient/patient.py b/erpnext/healthcare/doctype/patient/patient.py
index e73482d..b01f56a 100644
--- a/erpnext/healthcare/doctype/patient/patient.py
+++ b/erpnext/healthcare/doctype/patient/patient.py
@@ -116,8 +116,9 @@
def get_patient_detail(patient):
patient_dict = frappe.db.sql("""select * from tabPatient where name=%s""", (patient), as_dict=1)
if not patient_dict:
- frappe.throw("Patient not found")
- vital_sign = frappe.db.sql("""select * from `tabVital Signs` where patient=%s order by signs_date desc limit 1""", (patient), as_dict=1)
+ frappe.throw(_("Patient not found"))
+ vital_sign = frappe.db.sql("""select * from `tabVital Signs` where patient=%s
+ order by signs_date desc limit 1""", (patient), as_dict=1)
details = patient_dict[0]
if vital_sign:
diff --git a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
index a58516c..8912157 100644
--- a/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
+++ b/erpnext/healthcare/doctype/patient_appointment/patient_appointment.js
@@ -181,7 +181,7 @@
var btn_create_vital_signs = function (frm) {
if(!frm.doc.patient){
- frappe.throw("Please select patient");
+ frappe.throw(__("Please select patient"));
}
frappe.route_options = {
"patient": frm.doc.patient,
diff --git a/erpnext/hotels/doctype/hotel_room/test_hotel_room.py b/erpnext/hotels/doctype/hotel_room/test_hotel_room.py
index ab2f829..e307b5a 100644
--- a/erpnext/hotels/doctype/hotel_room/test_hotel_room.py
+++ b/erpnext/hotels/doctype/hotel_room/test_hotel_room.py
@@ -5,7 +5,7 @@
import frappe
import unittest
-test_dependents = ["Hotel Room Package"]
+test_dependencies = ["Hotel Room Package"]
test_records = [
dict(doctype="Hotel Room", name="1001",
hotel_room_type="Basic Room"),
diff --git a/erpnext/hotels/doctype/hotel_room_pricing/test_hotel_room_pricing.py b/erpnext/hotels/doctype/hotel_room_pricing/test_hotel_room_pricing.py
index 2b7848b..b73fd44 100644
--- a/erpnext/hotels/doctype/hotel_room_pricing/test_hotel_room_pricing.py
+++ b/erpnext/hotels/doctype/hotel_room_pricing/test_hotel_room_pricing.py
@@ -5,7 +5,7 @@
import frappe
import unittest
-
+test_dependencies = ["Hotel Room Package"]
test_records = [
dict(doctype="Hotel Room Pricing", enabled=1,
name="Winter 2017",
diff --git a/erpnext/hotels/doctype/hotel_room_reservation/test_hotel_room_reservation.py b/erpnext/hotels/doctype/hotel_room_reservation/test_hotel_room_reservation.py
index 55c6311..d497996 100644
--- a/erpnext/hotels/doctype/hotel_room_reservation/test_hotel_room_reservation.py
+++ b/erpnext/hotels/doctype/hotel_room_reservation/test_hotel_room_reservation.py
@@ -6,7 +6,7 @@
import frappe
import unittest
from erpnext.hotels.doctype.hotel_room_reservation.hotel_room_reservation import HotelRoomPricingNotSetError, HotelRoomUnavailableError
-test_dependencies = ["Hotel Room Pricing", "Hotel Room"]
+test_dependencies = ["Hotel Room Package", "Hotel Room Pricing", "Hotel Room"]
class TestHotelRoomReservation(unittest.TestCase):
def setUp(self):
diff --git a/erpnext/hr/doctype/employee_loan/employee_loan.py b/erpnext/hr/doctype/employee_loan/employee_loan.py
index dadd769..1751835 100644
--- a/erpnext/hr/doctype/employee_loan/employee_loan.py
+++ b/erpnext/hr/doctype/employee_loan/employee_loan.py
@@ -135,7 +135,7 @@
return employee_loan.as_dict()
@frappe.whitelist()
-def make_jv_entry(employee_loan, company, employee_loan_account, employee, loan_amount, payment_account):
+def make_jv_entry(employee_loan, company, employee_loan_account, employee, loan_amount, payment_account=None):
journal_entry = frappe.new_doc('Journal Entry')
journal_entry.voucher_type = 'Bank Entry'
journal_entry.user_remark = _('Against Employee Loan: {0}').format(employee_loan)
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.js b/erpnext/hr/doctype/expense_claim/expense_claim.js
index f40e77c..a99311d 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.js
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.js
@@ -311,7 +311,7 @@
employee_advance: function(frm, cdt, cdn) {
var child = locals[cdt][cdn];
if(!frm.doc.employee){
- frappe.msgprint('Select an employee to get the employee advance.');
+ frappe.msgprint(__('Select an employee to get the employee advance.'));
frm.doc.advances = [];
refresh_field("advances");
}
diff --git a/erpnext/hr/doctype/leave_application/test_leave_application.py b/erpnext/hr/doctype/leave_application/test_leave_application.py
index 520d7c9..4a9a001 100644
--- a/erpnext/hr/doctype/leave_application/test_leave_application.py
+++ b/erpnext/hr/doctype/leave_application/test_leave_application.py
@@ -245,10 +245,6 @@
application.insert()
frappe.set_user("test@example.com")
-
- # clear permlevel access cache on change user
- del application._has_access_to
-
self.assertRaises(LeaveDayBlockedError, application.submit)
frappe.db.set_value("Leave Block List", "_Test Leave Block List",
diff --git a/erpnext/hr/doctype/payroll_entry/payroll_entry.py b/erpnext/hr/doctype/payroll_entry/payroll_entry.py
index 77cece3..a023cc3 100644
--- a/erpnext/hr/doctype/payroll_entry/payroll_entry.py
+++ b/erpnext/hr/doctype/payroll_entry/payroll_entry.py
@@ -252,7 +252,7 @@
journal_entry.user_remark = _('Accural Journal Entry for salaries from {0} to {1}')\
.format(self.start_date, self.end_date)
journal_entry.company = self.company
- journal_entry.posting_date = nowdate()
+ journal_entry.posting_date = self.posting_date
accounts = []
payable_amount = 0
@@ -455,13 +455,13 @@
def create_submit_log(submitted_ss, not_submitted_ss, jv_name):
if not submitted_ss and not not_submitted_ss:
- frappe.msgprint("No salary slip found to submit for the above selected criteria OR salary slip already submitted")
+ frappe.msgprint(_("No salary slip found to submit for the above selected criteria OR salary slip already submitted"))
if not_submitted_ss:
- frappe.msgprint("Could not submit any Salary Slip <br>\
+ frappe.msgprint(_("Could not submit any Salary Slip <br>\
Possible reasons: <br>\
1. Net pay is less than 0. <br>\
- 2. Company Email Address specified in employee master is not valid. <br>")
+ 2. Company Email Address specified in employee master is not valid. <br>"))
def get_salary_slip_list(name, docstatus, as_dict=0):
diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index ea1693d..b2a98b4 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -31,25 +31,29 @@
return meta
@frappe.whitelist()
-def get_categories():
+def get_categories(parent='All Categories'):
# get categories info with parent category and stuff
connection = get_client_connection()
- response = connection.get_list('Hub Category')
+ categories = connection.get_list('Hub Category', filters={'parent_hub_category': parent})
+
+ response = [{'value': c.get('name'), 'expandable': c.get('is_group')} for c in categories]
return response
@frappe.whitelist()
-def get_item_details(hub_sync_id=None):
+def update_category(item_name, category):
+ connection = get_hub_connection()
+ response = connection.update('Hub Item', dict(
+ hub_category = category
+ ), item_name)
+ return response.ok
+
+@frappe.whitelist()
+def get_details(hub_sync_id=None, doctype='Hub Item'):
if not hub_sync_id:
return
connection = get_client_connection()
- item_details = connection.get_doc('Hub Item', hub_sync_id)
- print(item_details)
- return item_details
-
-@frappe.whitelist()
-def get_company_details(hub_sync_id):
- connection = get_client_connection()
- return connection.get_doc('Hub Company', hub_sync_id)
+ details = connection.get_doc(doctype, hub_sync_id)
+ return details
def get_client_connection():
# frappeclient connection
diff --git a/erpnext/hub_node/data_migration_mapping/company_to_hub_company/company_to_hub_company.json b/erpnext/hub_node/data_migration_mapping/company_to_hub_company/company_to_hub_company.json
index 0a916da..ae0d492 100644
--- a/erpnext/hub_node/data_migration_mapping/company_to_hub_company/company_to_hub_company.json
+++ b/erpnext/hub_node/data_migration_mapping/company_to_hub_company/company_to_hub_company.json
@@ -1,45 +1,50 @@
{
- "condition": "{'name': ('=', frappe.db.get_single_value('Hub Settings', 'company'))}",
- "creation": "2017-09-07 11:38:43.169065",
- "docstatus": 0,
- "doctype": "Data Migration Mapping",
+ "condition": "{'name': ('=', frappe.db.get_single_value('Hub Settings', 'company'))}",
+ "creation": "2017-09-07 11:38:43.169065",
+ "docstatus": 0,
+ "doctype": "Data Migration Mapping",
"fields": [
{
- "is_child_table": 0,
- "local_fieldname": "name",
+ "is_child_table": 0,
+ "local_fieldname": "name",
"remote_fieldname": "company_name"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "country",
+ "is_child_table": 0,
+ "local_fieldname": "country",
"remote_fieldname": "country"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "\"city\"",
+ "is_child_table": 0,
+ "local_fieldname": "\"city\"",
"remote_fieldname": "seller_city"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "eval:frappe.local.site",
+ "is_child_table": 0,
+ "local_fieldname": "eval:frappe.local.site",
"remote_fieldname": "site_name"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "eval:frappe.session.user",
+ "is_child_table": 0,
+ "local_fieldname": "eval:frappe.session.user",
"remote_fieldname": "user"
+ },
+ {
+ "is_child_table": 0,
+ "local_fieldname": "company_logo",
+ "remote_fieldname": "company_logo"
}
- ],
- "idx": 2,
- "local_doctype": "Company",
- "mapping_name": "Company to Hub Company",
- "mapping_type": "Push",
- "migration_id_field": "hub_sync_id",
- "modified": "2017-10-09 17:30:17.853929",
- "modified_by": "Administrator",
- "name": "Company to Hub Company",
- "owner": "Administrator",
- "page_length": 10,
- "remote_objectname": "Hub Company",
+ ],
+ "idx": 2,
+ "local_doctype": "Company",
+ "mapping_name": "Company to Hub Company",
+ "mapping_type": "Push",
+ "migration_id_field": "hub_sync_id",
+ "modified": "2018-02-14 15:57:05.571142",
+ "modified_by": "achilles@erpnext.com",
+ "name": "Company to Hub Company",
+ "owner": "Administrator",
+ "page_length": 10,
+ "remote_objectname": "Hub Company",
"remote_primary_key": "name"
}
\ No newline at end of file
diff --git a/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/hub_message_to_lead.json b/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/hub_message_to_lead.json
index cd9fb69..d2af755 100644
--- a/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/hub_message_to_lead.json
+++ b/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/hub_message_to_lead.json
@@ -1,31 +1,31 @@
{
- "condition": "{'reference_doctype': 'Lead', 'user': frappe.db.get_single_value('Hub Settings', 'user'), 'status': 'Pending'}",
- "creation": "2017-09-20 15:06:40.279930",
- "docstatus": 0,
- "doctype": "Data Migration Mapping",
+ "condition": "{'reference_doctype': 'Lead', 'user': frappe.db.get_single_value('Hub Settings', 'user'), 'status': 'Pending'}",
+ "creation": "2017-09-20 15:06:40.279930",
+ "docstatus": 0,
+ "doctype": "Data Migration Mapping",
"fields": [
{
- "is_child_table": 0,
- "local_fieldname": "email_id",
+ "is_child_table": 0,
+ "local_fieldname": "email_id",
"remote_fieldname": "email_id"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "lead_name",
+ "is_child_table": 0,
+ "local_fieldname": "lead_name",
"remote_fieldname": "lead_name"
}
- ],
- "idx": 0,
- "local_doctype": "Lead",
- "local_primary_key": "email_id",
- "mapping_name": "Hub Message to Lead",
- "mapping_type": "Pull",
- "migration_id_field": "hub_sync_id",
- "modified": "2017-10-09 17:30:17.908830",
- "modified_by": "Administrator",
- "name": "Hub Message to Lead",
- "owner": "frappetest@gmail.com",
- "page_length": 10,
- "remote_objectname": "Hub Message",
+ ],
+ "idx": 0,
+ "local_doctype": "Lead",
+ "local_primary_key": "email_id",
+ "mapping_name": "Hub Message to Lead",
+ "mapping_type": "Pull",
+ "migration_id_field": "hub_sync_id",
+ "modified": "2018-02-14 15:57:05.606597",
+ "modified_by": "achilles@erpnext.com",
+ "name": "Hub Message to Lead",
+ "owner": "frappetest@gmail.com",
+ "page_length": 10,
+ "remote_objectname": "Hub Message",
"remote_primary_key": "name"
}
\ No newline at end of file
diff --git a/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json b/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json
index e4168c7..7423f2e 100644
--- a/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json
+++ b/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json
@@ -1,55 +1,55 @@
{
- "condition": "{\"publish_in_hub\": 1}",
- "creation": "2017-09-07 13:27:52.726350",
- "docstatus": 0,
- "doctype": "Data Migration Mapping",
+ "condition": "{\"publish_in_hub\": 1}",
+ "creation": "2017-09-07 13:27:52.726350",
+ "docstatus": 0,
+ "doctype": "Data Migration Mapping",
"fields": [
{
- "is_child_table": 0,
- "local_fieldname": "item_code",
+ "is_child_table": 0,
+ "local_fieldname": "item_code",
"remote_fieldname": "item_code"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "item_name",
+ "is_child_table": 0,
+ "local_fieldname": "item_name",
"remote_fieldname": "item_name"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "eval:frappe.db.get_default(\"company\")",
+ "is_child_table": 0,
+ "local_fieldname": "eval:frappe.db.get_default(\"company\")",
"remote_fieldname": "company_name"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "image",
+ "is_child_table": 0,
+ "local_fieldname": "image",
"remote_fieldname": "image"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "item_group",
+ "is_child_table": 0,
+ "local_fieldname": "item_group",
"remote_fieldname": "item_group"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "eval:frappe.session.user",
+ "is_child_table": 0,
+ "local_fieldname": "eval:frappe.session.user",
"remote_fieldname": "seller"
- },
+ },
{
- "is_child_table": 0,
- "local_fieldname": "eval:frappe.db.get_default(\"country\")",
+ "is_child_table": 0,
+ "local_fieldname": "eval:frappe.db.get_default(\"country\")",
"remote_fieldname": "country"
}
- ],
- "idx": 1,
- "local_doctype": "Item",
- "mapping_name": "Item to Hub Item",
- "mapping_type": "Push",
- "migration_id_field": "hub_sync_id",
- "modified": "2017-10-09 17:30:17.890337",
- "modified_by": "Administrator",
- "name": "Item to Hub Item",
- "owner": "Administrator",
- "page_length": 10,
- "remote_objectname": "Hub Item",
+ ],
+ "idx": 1,
+ "local_doctype": "Item",
+ "mapping_name": "Item to Hub Item",
+ "mapping_type": "Push",
+ "migration_id_field": "hub_sync_id",
+ "modified": "2018-02-14 15:57:05.595712",
+ "modified_by": "achilles@erpnext.com",
+ "name": "Item to Hub Item",
+ "owner": "Administrator",
+ "page_length": 10,
+ "remote_objectname": "Hub Item",
"remote_primary_key": "item_code"
}
\ No newline at end of file
diff --git a/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json b/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json
index 40513cd2..f6d96da 100644
--- a/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json
+++ b/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json
@@ -1,26 +1,26 @@
{
- "creation": "2017-09-07 11:39:38.445902",
- "docstatus": 0,
- "doctype": "Data Migration Plan",
- "idx": 1,
+ "creation": "2017-09-07 11:39:38.445902",
+ "docstatus": 0,
+ "doctype": "Data Migration Plan",
+ "idx": 1,
"mappings": [
{
- "enabled": 1,
+ "enabled": 1,
"mapping": "Company to Hub Company"
- },
+ },
{
- "enabled": 1,
+ "enabled": 1,
"mapping": "Item to Hub Item"
- },
+ },
{
- "enabled": 1,
+ "enabled": 1,
"mapping": "Hub Message to Lead"
}
- ],
- "modified": "2017-10-09 17:30:17.680059",
- "modified_by": "Administrator",
- "module": "Hub Node",
- "name": "Hub Sync",
- "owner": "Administrator",
+ ],
+ "modified": "2018-02-14 15:57:05.519715",
+ "modified_by": "achilles@erpnext.com",
+ "module": "Hub Node",
+ "name": "Hub Sync",
+ "owner": "Administrator",
"plan_name": "Hub Sync"
}
\ No newline at end of file
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.js b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
index ce0f8bc..bc78927 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.js
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
@@ -46,7 +46,7 @@
set_enable_hub_primary_button: (frm) => {
frm.page.set_primary_action(__("Enable Hub"), () => {
if(frappe.session.user === "Administrator") {
- frappe.msgprint("Please login as another user.")
+ frappe.msgprint(__("Please login as another user."))
} else {
frappe.verify_password(() => {
this.frm.call({
diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js
index 8a86668..bba3e1e 100644
--- a/erpnext/manufacturing/doctype/production_order/production_order.js
+++ b/erpnext/manufacturing/doctype/production_order/production_order.js
@@ -79,6 +79,10 @@
]
}
});
+
+ // formatter for production order operation
+ frm.set_indicator_formatter('operation',
+ function(doc) { return (frm.doc.qty==doc.completed_qty) ? "green" : "orange" });
},
onload: function(frm) {
@@ -94,10 +98,6 @@
});
erpnext.production_order.set_default_warehouse(frm);
}
-
- // formatter for production order operation
- frm.set_indicator_formatter('operation',
- function(doc) { return (frm.doc.qty==doc.completed_qty) ? "green" : "orange" });
},
refresh: function(frm) {
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.py b/erpnext/manufacturing/doctype/production_order/test_production_order.py
index 002f03b..7612461 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.py
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.py
@@ -10,7 +10,6 @@
from erpnext.manufacturing.doctype.production_order.production_order \
import make_stock_entry, ItemHasVariantError, stop_unstop
from erpnext.stock.doctype.stock_entry import test_stock_entry
-from erpnext.stock.doctype.item.test_item import get_total_projected_qty
from erpnext.stock.utils import get_bin
from erpnext.selling.doctype.sales_order.test_sales_order import make_sales_order
@@ -81,7 +80,7 @@
prod_order.set_production_order_operations()
prod_order.insert()
prod_order.submit()
-
+
d = prod_order.operations[0]
d.completed_qty = flt(d.completed_qty)
@@ -89,7 +88,7 @@
time_sheet_doc = frappe.get_doc('Timesheet', name)
self.assertEqual(prod_order.company, time_sheet_doc.company)
time_sheet_doc.submit()
-
+
self.assertEqual(prod_order.name, time_sheet_doc.production_order)
self.assertEqual((prod_order.qty - d.completed_qty),
@@ -108,7 +107,7 @@
self.assertEqual(prod_order.operations[0].actual_operation_time, 60)
self.assertEqual(prod_order.operations[0].actual_operating_cost, 6000)
-
+
time_sheet_doc1 = make_timesheet(prod_order.name, prod_order.company)
self.assertEqual(len(time_sheet_doc1.get('time_logs')), 0)
@@ -176,28 +175,6 @@
self.assertEqual(self.bin1_at_start.projected_qty,
cint(bin1_on_cancel.projected_qty))
- def test_projected_qty_for_production_and_sales_order(self):
- before_production_order = get_bin(self.item, self.warehouse)
- before_production_order.update_reserved_qty_for_production()
-
- self.pro_order = make_prod_order_test_record(item="_Test FG Item", qty=2,
- source_warehouse=self.warehouse)
-
- after_production_order = get_bin(self.item, self.warehouse)
-
- sales_order = make_sales_order(item = self.item, qty = 2)
- after_sales_order = get_bin(self.item, self.warehouse)
-
- self.assertEqual(cint(before_production_order.reserved_qty_for_production) + 2,
- cint(after_sales_order.reserved_qty_for_production))
- self.assertEqual(cint(before_production_order.projected_qty),
- cint(after_sales_order.projected_qty) + 2)
-
- total_projected_qty = get_total_projected_qty(self.item)
-
- item_doc = frappe.get_doc('Item', self.item)
- self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
-
def test_reserved_qty_for_production_on_stock_entry(self):
test_stock_entry.make_stock_entry(item_code="_Test Item",
target= self.warehouse, qty=100, basic_rate=100)
@@ -230,7 +207,7 @@
cint(bin1_on_start_production.reserved_qty_for_production))
self.assertEqual(cint(bin1_on_end_production.projected_qty),
cint(bin1_on_end_production.projected_qty))
-
+
def test_reserved_qty_for_stopped_production(self):
test_stock_entry.make_stock_entry(item_code="_Test Item",
target= self.warehouse, qty=100, basic_rate=100)
@@ -238,18 +215,18 @@
target= self.warehouse, qty=100, basic_rate=100)
# 0 0 0
-
+
self.test_reserved_qty_for_production_submit()
-
+
#2 0 -2
s = frappe.get_doc(make_stock_entry(self.pro_order.name,
"Material Transfer for Manufacture", 1))
s.submit()
-
+
#1 -1 0
-
+
bin1_on_start_production = get_bin(self.item, self.warehouse)
# reserved_qty_for_producion updated
@@ -259,10 +236,10 @@
# projected qty will now be 2 less (becuase of item movement)
self.assertEqual(cint(self.bin1_at_start.projected_qty),
cint(bin1_on_start_production.projected_qty) + 2)
-
+
# STOP
stop_unstop(self.pro_order.name, "Stopped")
-
+
bin1_on_stop_production = get_bin(self.item, self.warehouse)
# no change in reserved / projected
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 69d8a47..762a046 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -492,5 +492,5 @@
erpnext.patches.v10_0.workflow_leave_application #2018-01-24 #2018-02-02 #2018-02-08
erpnext.patches.v10_0.set_default_payment_terms_based_on_company
erpnext.patches.v10_0.update_sales_order_link_to_purchase_order
-erpnext.patches.v10_0.added_extra_gst_custom_field_in_gstr2
+erpnext.patches.v10_0.added_extra_gst_custom_field_in_gstr2 #2018-02-13
erpnext.patches.v10_0.item_barcode_childtable_migrate
diff --git a/erpnext/patches/v10_0/added_extra_gst_custom_field_in_gstr2.py b/erpnext/patches/v10_0/added_extra_gst_custom_field_in_gstr2.py
index a1512ed..185e20d 100644
--- a/erpnext/patches/v10_0/added_extra_gst_custom_field_in_gstr2.py
+++ b/erpnext/patches/v10_0/added_extra_gst_custom_field_in_gstr2.py
@@ -6,4 +6,13 @@
if not company:
return
- make_custom_fields()
\ No newline at end of file
+ make_custom_fields()
+
+ frappe.db.sql("""
+ update `tabCustom Field`
+ set reqd = 0, `default` = ''
+ where fieldname = 'reason_for_issuing_document'
+ """)
+
+ frappe.db.sql("""delete from `tabCustom Field` where dt = 'Purchase Invoice'
+ and fieldname in ('port_code', 'shipping_bill_number', 'shipping_bill_date')""")
\ No newline at end of file
diff --git a/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py b/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py
index 97af20a..5d76304 100644
--- a/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py
+++ b/erpnext/patches/v7_0/repost_bin_qty_and_item_projected_qty.py
@@ -3,26 +3,13 @@
from __future__ import unicode_literals
import frappe
-from erpnext.stock.doctype.bin.bin import update_item_projected_qty
def execute():
repost_bin_qty()
- repost_item_projected_qty()
def repost_bin_qty():
- for bin in frappe.db.sql(""" select name from `tabBin`
+ for bin in frappe.db.sql(""" select name from `tabBin`
where (actual_qty + ordered_qty + indented_qty + planned_qty- reserved_qty - reserved_qty_for_production) != projected_qty """, as_dict=1):
bin_doc = frappe.get_doc('Bin', bin.name)
bin_doc.set_projected_qty()
bin_doc.db_set("projected_qty", bin_doc.projected_qty, update_modified = False)
-
-def repost_item_projected_qty():
- for data in frappe.db.sql(""" select
- `tabBin`.item_code as item_code,
- sum(`tabBin`.projected_qty) as projected_qty,
- `tabItem`.total_projected_qty as total_projected_qty
- from
- `tabBin`, `tabItem`
- where `tabBin`.item_code = `tabItem`.name
- group by `tabBin`.item_code having projected_qty <> total_projected_qty """, as_dict=1):
- update_item_projected_qty(data.item_code)
diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py
index 8d339b9..3d94b5c 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.py
+++ b/erpnext/projects/doctype/timesheet/timesheet.py
@@ -156,14 +156,18 @@
(self.production_order, operation_id), as_dict=1)[0]
def update_task_and_project(self):
+ tasks, projects = [], []
+
for data in self.time_logs:
- if data.task:
+ if data.task and data.task not in tasks:
task = frappe.get_doc("Task", data.task)
task.update_time_and_costing()
task.save()
+ tasks.append(data.task)
- elif data.project:
+ elif data.project and data.project not in projects:
frappe.get_doc("Project", data.project).update_project()
+ projects.append(data.project)
def validate_dates(self):
for data in self.time_logs:
diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js
index 860c8c1..5baf848 100644
--- a/erpnext/public/js/controllers/accounts.js
+++ b/erpnext/public/js/controllers/accounts.js
@@ -133,7 +133,7 @@
cur_frm.cscript.account_head = function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
if(!d.charge_type && d.account_head){
- frappe.msgprint("Please select Charge Type first");
+ frappe.msgprint(__("Please select Charge Type first"));
frappe.model.set_value(cdt, cdn, "account_head", "");
} else if(d.account_head && d.charge_type!=="Actual") {
frappe.call({
diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js
index a9e3ad4..68bb2b8 100644
--- a/erpnext/public/js/controllers/buying.js
+++ b/erpnext/public/js/controllers/buying.js
@@ -252,10 +252,12 @@
d.qty = d.qty - my_qty;
cur_frm.doc.items[i].stock_qty = my_qty*cur_frm.doc.items[i].conversion_factor;
cur_frm.doc.items[i].qty = my_qty;
-
- frappe.msgprint("Assigning " + d.mr_name + " to " + d.item_code + " (row " + cur_frm.doc.items[i].idx + ")");
+
+ frappe.msgprint(__("Assigning {0} to {1} (row {2})",
+ [d.mr_name, d.item_code, cur_frm.doc.items[i].idx]));
+
if (qty > 0) {
- frappe.msgprint("Splitting " + qty + " units of " + d.item_code);
+ frappe.msgprint(__("Splitting {0} units of {1}", [qty, d.item_code]));
var newrow = frappe.model.add_child(cur_frm.doc, cur_frm.doc.items[i].doctype, "items");
item_length++;
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 8ae91a4..e8c3262 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -704,7 +704,7 @@
}
if(!this.in_apply_price_list) {
- this.apply_price_list();
+ this.apply_price_list(null, true);
}
},
@@ -776,7 +776,8 @@
this.frm.toggle_reqd("plc_conversion_rate",
!!(this.frm.doc.price_list_name && this.frm.doc.price_list_currency));
- if(this.frm.doc_currency!==this.frm.doc.currency) {
+ if(this.frm.doc_currency!==this.frm.doc.currency
+ || this.frm.doc_currency!==this.frm.doc.price_list_currency) {
// reset names only when the currency is different
var company_currency = this.get_company_currency();
@@ -1056,7 +1057,13 @@
if(!price_list_rate_changed) me.calculate_taxes_and_totals();
},
- apply_price_list: function(item) {
+ apply_price_list: function(item, reset_plc_conversion) {
+ // We need to reset plc_conversion_rate sometimes because the call to
+ // `erpnext.stock.get_item_details.apply_price_list` is sensitive to its value
+ if (!reset_plc_conversion) {
+ this.frm.set_value("plc_conversion_rate", "");
+ }
+
var me = this;
var args = this._get_args(item);
if (!((args.items && args.items.length) || args.price_list)) {
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index 6789b80..1578e4d 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -15,37 +15,33 @@
'/assets/erpnext/css/hub.css',
]
};
+ frappe.model.with_doc('Hub Settings', 'Hub Settings', () => {
+ this.hub_settings = frappe.get_doc('Hub Settings');
- if (!erpnext.hub.pages[page_name]) {
- if (page === 'Item' && !route[2]) {
- frappe.require(assets['List'], () => {
- erpnext.hub.pages[page_name] = new erpnext.hub.ItemListing({
- doctype: 'Hub Settings',
- parent: this.make_page(true, page_name)
+ if (!erpnext.hub.pages[page_name]) {
+ if (!route[2]) {
+ frappe.require(assets['List'], () => {
+ erpnext.hub.pages[page_name] = new erpnext.hub[page+'Listing']({
+ parent: this.make_page(true, page_name),
+ hub_settings: this.hub_settings
+ });
+ window.hub_page = erpnext.hub.pages[page_name];
});
- window.hub_page = erpnext.hub.pages[page_name];
- });
- } if (page === 'Company' && !route[2]) {
- frappe.require(assets['List'], () => {
- erpnext.hub.pages[page_name] = new erpnext.hub.CompanyListing({
- doctype: 'Hub Settings',
- parent: this.make_page(true, page_name)
+ } else {
+ frappe.require(assets['Form'], () => {
+ erpnext.hub.pages[page_name] = new erpnext.hub[page+'Page']({
+ unique_id: route[2],
+ doctype: route[2],
+ parent: this.make_page(true, page_name),
+ hub_settings: this.hub_settings
+ });
+ window.hub_page = erpnext.hub.pages[page_name];
});
- window.hub_page = erpnext.hub.pages[page_name];
- });
- } else if(route[2]) {
- frappe.require(assets['Form'], () => {
- erpnext.hub.pages[page_name] = new erpnext.hub.HubForm({
- hub_item_code: route[2],
- doctype: 'Hub Settings',
- parent: this.make_page(true, page_name)
- });
- window.hub_page = erpnext.hub.pages[page_name];
- });
+ }
+ } else {
+ frappe.container.change_to(page_name);
+ window.hub_page = erpnext.hub.pages[page_name];
}
- } else {
- frappe.container.change_to(page_name);
- window.hub_page = erpnext.hub.pages[page_name];
- }
+ });
}
});
diff --git a/erpnext/public/js/hub/hub_form.js b/erpnext/public/js/hub/hub_form.js
index 208af41..130a0db 100644
--- a/erpnext/public/js/hub/hub_form.js
+++ b/erpnext/public/js/hub/hub_form.js
@@ -3,18 +3,15 @@
erpnext.hub.HubForm = class HubForm extends frappe.views.BaseList {
setup_defaults() {
super.setup_defaults();
- this.page_title = this.data.item_name || this.hub_item_code || __('Hub Item');
- this.method = 'erpnext.hub_node.get_item_details';
- }
-
- setup_fields() {
- this.fields = ['hub_item_code', 'item_name', 'item_code', 'description', 'seller', 'company_name', 'country'];
+ this.method = 'erpnext.hub_node.get_details';
+ const route = frappe.get_route();
+ this.page_name = route[2];
}
set_breadcrumbs() {
frappe.breadcrumbs.add({
label: __('Hub'),
- route: '#Hub/Item',
+ route: '#Hub/' + this.doctype,
type: 'Custom'
});
}
@@ -26,17 +23,14 @@
});
}
- setup_filter_area() {
+ setup_filter_area() { }
- }
-
- setup_sort_selector() {
-
- }
+ setup_sort_selector() { }
get_args() {
return {
- hub_sync_id: this.hub_item_code
+ hub_sync_id: this.unique_id,
+ doctype: 'Hub ' + this.doctype
};
}
@@ -49,19 +43,16 @@
}
render() {
+ const image_html = this.data[this.image_field_name] ?
+ `<img src="${this.data[this.image_field_name]}">
+ <span class="helper"></span>` :
+ `<div class="standard-image">${frappe.get_abbr(this.page_title)}</div>`;
+
this.sidebar.add_item({
- label: `<img src="${this.data.image}" />`
+ label: image_html
});
- let fields = [];
- this.fields.map(fieldname => {
- fields.push({
- label: toTitle(frappe.model.unscrub(fieldname)),
- fieldname,
- fieldtype: 'Data',
- read_only: 1
- });
- });
+ let fields = this.get_field_configs();
this.form = new frappe.ui.FieldGroup({
parent: this.$result,
@@ -73,7 +64,7 @@
}
toggle_result_area() {
- this.$result.toggle(this.data.hub_item_code);
+ this.$result.toggle(this.unique_id);
this.$paging_area.toggle(this.data.length > 0);
this.$no_result.toggle(this.data.length == 0);
@@ -82,3 +73,83 @@
.toggle(show_more);
}
};
+
+erpnext.hub.ItemPage = class ItemPage extends erpnext.hub.HubForm{
+ setup_defaults() {
+ super.setup_defaults();
+ this.doctype = 'Item';
+ this.image_field_name = 'image';
+ }
+
+ get_field_configs() {
+ let fields = [];
+ this.fields.map(fieldname => {
+ fields.push({
+ label: toTitle(frappe.model.unscrub(fieldname)),
+ fieldname,
+ fieldtype: 'Data',
+ read_only: 1
+ });
+ });
+
+ let category_field = {
+ label: 'Hub Category',
+ fieldname: 'hub_category',
+ fieldtype: 'Data'
+ }
+
+ if(this.data.company_name === this.hub_settings.company) {
+ this.page.set_primary_action(__('Update'), () => {
+ this.update_on_hub();
+ }, 'octicon octicon-plus');
+ } else {
+ category_field.read_only = 1;
+ }
+
+ fields.unshift(category_field);
+
+ return fields;
+ }
+
+ update_on_hub() {
+ return new Promise((resolve, reject) => {
+ frappe.call({
+ method: 'erpnext.hub_node.update_category',
+ args: { item: this.unique_id, category: this.form.get_value('hub_category') },
+ callback: resolve,
+ freeze: true
+ }).fail(reject);
+ });
+ }
+
+ setup_fields() {
+ this.fields = ['hub_item_code', 'item_name', 'item_code', 'description',
+ 'seller', 'company_name', 'country'];
+ }
+}
+
+erpnext.hub.CompanyPage = class CompanyPage extends erpnext.hub.HubForm{
+ setup_defaults() {
+ super.setup_defaults();
+ this.doctype = 'Company';
+ this.image_field_name = 'company_logo';
+ }
+
+ get_field_configs() {
+ let fields = [];
+ this.fields.map(fieldname => {
+ fields.push({
+ label: toTitle(frappe.model.unscrub(fieldname)),
+ fieldname,
+ fieldtype: 'Data',
+ read_only: 1
+ });
+ });
+
+ return fields;
+ }
+
+ setup_fields() {
+ this.fields = ['company_name', 'description', 'route', 'country', 'seller', 'site_name'];
+ }
+}
diff --git a/erpnext/public/js/hub/hub_page.js b/erpnext/public/js/hub/hub_page.js
index 6e5ab98..27986de 100644
--- a/erpnext/public/js/hub/hub_page.js
+++ b/erpnext/public/js/hub/hub_page.js
@@ -13,21 +13,24 @@
setup_fields() {
return this.get_meta()
.then(r => {
- console.log('fields then', this.doctype);
this.meta = r.message || this.meta;
frappe.model.sync(this.meta);
});
}
get_meta() {
- console.log('get_meta', this.doctype);
return new Promise(resolve =>
frappe.call('erpnext.hub_node.get_meta', {doctype: this.doctype}, resolve));
}
set_breadcrumbs() { }
- setup_side_bar() { }
+ setup_side_bar() {
+ this.sidebar = new frappe.ui.Sidebar({
+ wrapper: this.page.wrapper.find('.layout-side-section'),
+ css_class: 'hub-sidebar'
+ });
+ }
setup_sort_selector() { }
@@ -46,7 +49,6 @@
update_data(r) {
const data = r.message;
- console.log('update data', data);
if (this.start === 0) {
this.data = data;
@@ -74,7 +76,6 @@
render_image_view() {
let data = this.data;
- // console.log('this.data render', this.data);
if (this.start === 0) {
this.$result.html('<div class="image-view-container small padding-top">');
data = this.data.slice(this.start);
@@ -108,6 +109,41 @@
];
}
+ setup_side_bar() {
+ super.setup_side_bar();
+ this.category_tree = new frappe.ui.Tree({
+ parent: this.sidebar.$sidebar,
+ label: 'All Categories',
+ expandable: true,
+
+ args: {parent: this.current_category},
+ method: 'erpnext.hub_node.get_categories',
+ on_click: (node) => {
+ this.update_category(node.label);
+ }
+ });
+
+ this.sidebar.add_item({
+ label: __('Companies'),
+ on_click: () => frappe.set_route('Hub', 'Company')
+ });
+
+ this.sidebar.add_item({
+ label: this.hub_settings.company,
+ on_click: () => frappe.set_route('Form', 'Company', this.hub_settings.company)
+ }, __("Account"));
+
+ this.sidebar.add_item({
+ label: __("My Orders"),
+ on_click: () => frappe.set_route('List', 'Request for Quotation')
+ }, __("Account"));
+ }
+
+ update_category(label) {
+ this.current_category = (label=='All Categories') ? undefined : label;
+ this.refresh();
+ }
+
get_filters_for_args() {
let filters = {};
this.filter_area.get().forEach(f => {
@@ -124,7 +160,6 @@
item._name = encodeURI(item.name);
const encoded_name = item._name;
const title = strip_html(item['item_name' || 'item_code']);
- // console.log(item);
const company_name = item['company_name'];
const route = `#Hub/Item/${item.hub_item_code}`;
@@ -139,16 +174,17 @@
<a href="${route}">
<div class="hub-item-image">
<div class="img-wrapper" style="height: 200px; width: 200px">
- ${image_html}
+ ${ image_html }
</div>
</div>
<div class="hub-item-title">
<h5 class="bold">
${ title }
</h5>
- <p>${ company_name }</p>
+
</div>
</a>
+ <a href="${'#Hub/Company/'+company_name}"><p>${ company_name }</p></a>
</div>
`;
}
@@ -158,16 +194,10 @@
setup_defaults() {
super.setup_defaults();
this.doctype = 'Hub Company';
- this.fields = ['name', 'site_name', 'seller_city', 'seller_description', 'seller', 'country', 'company_name'];
+ this.fields = ['company_logo', 'name', 'site_name', 'seller_city', 'seller_description', 'seller', 'country', 'company_name'];
this.filters = [];
this.custom_filter_configs = [
{
- fieldtype: 'Data',
- label: 'Company',
- condition: 'like',
- fieldname: 'company_name',
- },
- {
fieldtype: 'Link',
label: 'Country',
options: 'Country',
@@ -186,33 +216,26 @@
return filters;
}
- card_html(item) {
- item._name = encodeURI(item.name);
- const encoded_name = item._name;
- const title = strip_html(item['item_name' || 'item_code']);
- // console.log(item);
- const company_name = item['company_name'];
+ card_html(company) {
+ company._name = encodeURI(company.name);
+ const route = `#Hub/Company/${company.company_name}`;
- const route = `#Hub/Item/${item.hub_item_code}`;
-
- const image_html = item.image ?
- `<img src="${item.image}">
- <span class="helper"></span>` :
- `<div class="standard-image">${frappe.get_abbr(title)}</div>`;
+ let image_html = company.company_logo ?
+ `<img src="${company.company_logo}"><span class="helper"></span>` :
+ `<div class="standard-image">${frappe.get_abbr(company.company_name)}</div>`;
return `
<div class="hub-item-wrapper margin-bottom" style="width: 200px;">
<a href="${route}">
<div class="hub-item-image">
<div class="img-wrapper" style="height: 200px; width: 200px">
- ${image_html}
+ ${ image_html }
</div>
</div>
<div class="hub-item-title">
<h5 class="bold">
- ${ title }
+ ${ company.company_name }
</h5>
- <p>${ company_name }</p>
</div>
</a>
</div>
diff --git a/erpnext/public/js/setup_wizard.js b/erpnext/public/js/setup_wizard.js
index 6fa710d..2652f95 100644
--- a/erpnext/public/js/setup_wizard.js
+++ b/erpnext/public/js/setup_wizard.js
@@ -84,7 +84,7 @@
slide.get_input("company_abbr").on("change", function () {
if (slide.get_input("company_abbr").val().length > 5) {
- frappe.msgprint("Company Abbreviation cannot have more than 5 characters");
+ frappe.msgprint(__("Company Abbreviation cannot have more than 5 characters"));
slide.get_field("company_abbr").set_value("");
}
});
diff --git a/erpnext/regional/doctype/gst_settings/gst_settings.py b/erpnext/regional/doctype/gst_settings/gst_settings.py
index 45c565d..bc956e9 100644
--- a/erpnext/regional/doctype/gst_settings/gst_settings.py
+++ b/erpnext/regional/doctype/gst_settings/gst_settings.py
@@ -4,6 +4,7 @@
from __future__ import unicode_literals
import frappe, os
+from frappe import _
from frappe.utils import get_url, nowdate, date_diff
from frappe.model.document import Document
from frappe.contacts.doctype.contact.contact import get_default_contact
@@ -24,13 +25,13 @@
last_sent = frappe.db.get_single_value('GST Settings', 'gstin_email_sent_on')
if last_sent and date_diff(nowdate(), last_sent) < 3:
- frappe.throw("Please wait 3 days before resending the reminder.")
+ frappe.throw(_("Please wait 3 days before resending the reminder."))
frappe.db.set_value('GST Settings', 'GST Settings', 'gstin_email_sent_on', nowdate())
# enqueue if large number of customers, suppliser
frappe.enqueue('erpnext.regional.doctype.gst_settings.gst_settings.send_gstin_reminder_to_all_parties')
- frappe.msgprint('Email Reminders will be sent to all parties with email contacts')
+ frappe.msgprint(_('Email Reminders will be sent to all parties with email contacts'))
def send_gstin_reminder_to_all_parties():
parties = []
@@ -60,7 +61,7 @@
frappe.has_permission(party_type, throw=True)
email = _send_gstin_reminder(party_type ,party)
if email:
- frappe.msgprint('Reminder to update GSTIN Sent', title='Reminder sent', indicator='green')
+ frappe.msgprint(_('Reminder to update GSTIN Sent'), title='Reminder sent', indicator='green')
def _send_gstin_reminder(party_type, party, default_email_id=None, sent_to=None):
'''Send GST Reminder email'''
@@ -70,7 +71,7 @@
email_id = default_email_id
if not email_id:
- frappe.throw('Email not found in default contact', exc=EmailMissing)
+ frappe.throw(_('Email not found in default contact'), exc=EmailMissing)
if sent_to and email_id in sent_to:
return
diff --git a/erpnext/regional/india/setup.py b/erpnext/regional/india/setup.py
index c11337a..ac68a92 100644
--- a/erpnext/regional/india/setup.py
+++ b/erpnext/regional/india/setup.py
@@ -95,7 +95,7 @@
fieldtype='Select', insert_after='invoice_copy', print_hide=1,
options='Y\nN', default='N'),
dict(fieldname='invoice_type', label='Invoice Type',
- fieldtype='Select', insert_after='gst_col_break', print_hide=1,
+ fieldtype='Select', insert_after='invoice_copy', print_hide=1,
options='Regular\nSEZ\nExport\nDeemed Export', default='Regular'),
dict(fieldname='export_type', label='Export Type',
fieldtype='Select', insert_after='invoice_type', print_hide=1,
@@ -103,10 +103,10 @@
options='\nWith Payment of Tax\nWithout Payment of Tax'),
dict(fieldname='ecommerce_gstin', label='E-commerce GSTIN',
fieldtype='Data', insert_after='export_type', print_hide=1),
- dict(fieldname='gst_col_break', fieldtype='Column Break', insert_after='reason_for_issuing_document'),
+ dict(fieldname='gst_col_break', fieldtype='Column Break', insert_after='ecommerce_gstin'),
dict(fieldname='reason_for_issuing_document', label='Reason For Issuing document',
fieldtype='Select', insert_after='gst_col_break', print_hide=1,
- depends_on='eval:doc.is_return==1', reqd=1,
+ depends_on='eval:doc.is_return==1',
options='\n01-Sales Return\n02-Post Sale Discount\n03-Deficiency in services\n04-Correction in Invoice\n05-Change in POS\n06-Finalization of Provisional assessment\n07-Others')
]
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index a6133c8..a9eb7db 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -13,6 +13,10 @@
'Project': 'Project'
}
frm.add_fetch('customer', 'tax_id', 'tax_id');
+
+ // formatter for material request item
+ frm.set_indicator_formatter('item_code',
+ function(doc) { return (doc.stock_qty<=doc.delivered_qty) ? "green" : "orange" })
},
onload: function(frm) {
erpnext.queries.setup_queries(frm, "Warehouse", function() {
@@ -28,10 +32,6 @@
}
});
- // formatter for material request item
- frm.set_indicator_formatter('item_code',
- function(doc) { return (doc.stock_qty<=doc.delivered_qty) ? "green" : "orange" })
-
erpnext.queries.setup_warehouse_query(frm);
},
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index f829961..5e5c50d 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -5,7 +5,6 @@
from frappe.utils import flt, add_days
import frappe.permissions
import unittest
-from erpnext.stock.doctype.item.test_item import get_total_projected_qty
from erpnext.selling.doctype.sales_order.sales_order \
import make_material_request, make_delivery_note, make_sales_invoice, WarehouseRequired
from erpnext.stock.doctype.stock_entry.stock_entry_utils import make_stock_entry
@@ -155,17 +154,9 @@
dn = create_dn_against_so(so.name, 15)
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
- total_projected_qty = get_total_projected_qty('_Test Item')
- item_doc_before_cancel = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc_before_cancel.total_projected_qty)
-
dn.cancel()
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
- total_projected_qty = get_total_projected_qty('_Test Item')
- item_doc_after_cancel = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc_after_cancel.total_projected_qty)
-
def test_reserved_qty_for_over_delivery_via_sales_invoice(self):
make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
@@ -183,10 +174,6 @@
si.insert()
si.submit()
- total_projected_qty = get_total_projected_qty('_Test Item')
- item_doc = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
-
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
so.load_from_db()
@@ -195,9 +182,6 @@
si.cancel()
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
- total_projected_qty = get_total_projected_qty('_Test Item')
- item_doc = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
so.load_from_db()
self.assertEqual(so.get("items")[0].delivered_qty, 0)
@@ -229,10 +213,6 @@
self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"), existing_reserved_qty_item2)
- total_projected_qty = get_total_projected_qty('_Test Item')
- item_doc = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
-
# unclose so
so.load_from_db()
so.update_status('Draft')
@@ -269,10 +249,6 @@
dn = create_dn_against_so(so.name, 15)
- total_projected_qty = get_total_projected_qty('_Test Item')
- item_doc = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
-
self.assertEqual(get_reserved_qty("_Test Item"), existing_reserved_qty_item1)
self.assertEqual(get_reserved_qty("_Test Item Home Desktop 100"),
existing_reserved_qty_item2)
@@ -495,13 +471,6 @@
self.assertEquals(abs(flt(reserved_qty)), existing_reserved_qty_for_dn_item)
- def test_total_projected_qty_against_sales_order(self):
- so = make_sales_order(item = '_Test Item')
- total_projected_qty = get_total_projected_qty('_Test Item')
-
- item_doc = frappe.get_doc('Item', '_Test Item')
- self.assertEqual(total_projected_qty, item_doc.total_projected_qty)
-
def test_reserved_qty_for_closing_so(self):
bin = frappe.get_all("Bin", filters={"item_code": "_Test Item", "warehouse": "_Test Warehouse - _TC"},
fields=["reserved_qty"])
@@ -567,12 +536,12 @@
"item_list": [{
"item_code": "_Test FG Item",
"qty": 10,
- "rate":100
+ "rate":100
},
{
"item_code": "_Test FG Item",
"qty": 20,
- "rate":200
+ "rate":200
}]
})
@@ -589,7 +558,7 @@
})
so_item_name[item.get("sales_order_item")]= item.get("pending_qty")
make_production_orders(json.dumps({"items":po_items}), so.name, so.company)
-
+
# Check if Production Orders were raised
for item in so_item_name:
po_qty = frappe.db.sql("select sum(qty) from `tabProduction Order` where sales_order=%s and sales_order_item=%s", (so.name, item))
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 5ca2618..aa5b3ba 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -118,6 +118,7 @@
selling_price_list: function() {
this.apply_price_list();
+ this.set_dynamic_labels();
},
price_list_rate: function(doc, cdt, cdn) {
diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js
index 44757ab..84e0a20 100644
--- a/erpnext/setup/doctype/company/company.js
+++ b/erpnext/setup/doctype/company/company.js
@@ -92,7 +92,7 @@
},
function(data) {
if(data.company_name !== frm.doc.name) {
- frappe.msgprint("Company name not same");
+ frappe.msgprint(__("Company name not same"));
return;
}
frappe.call({
diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json
index d444417..31e1859 100644
--- a/erpnext/setup/doctype/company/company.json
+++ b/erpnext/setup/doctype/company/company.json
@@ -1,2178 +1,2209 @@
{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 1,
- "allow_rename": 1,
- "autoname": "field:company_name",
- "beta": 0,
- "creation": "2013-04-10 08:35:39",
- "custom": 0,
- "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.",
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Setup",
- "editable_grid": 0,
- "engine": "InnoDB",
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 1,
+ "autoname": "field:company_name",
+ "beta": 0,
+ "creation": "2013-04-10 08:35:39",
+ "custom": 0,
+ "description": "Legal Entity / Subsidiary with a separate Chart of Accounts belonging to the Organization.",
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Setup",
+ "editable_grid": 0,
+ "engine": "InnoDB",
"fields": [
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "details",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "details",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "company_name",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Company",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "company_name",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "company_name",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Company",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "company_name",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "abbr",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Abbr",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "abbr",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "abbr",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Abbr",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "abbr",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")",
- "fieldname": "change_abbr",
- "fieldtype": "Button",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Change Abbreviation",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal && in_list(frappe.user_roles, \"System Manager\")",
+ "fieldname": "change_abbr",
+ "fieldtype": "Button",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Change Abbreviation",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "cb0",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "cb0",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "domain",
- "fieldtype": "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": "Domain",
- "length": 0,
- "no_copy": 0,
- "options": "Domain",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "domain",
+ "fieldtype": "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": "Domain",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Domain",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "sales_settings",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Sales",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "sales_settings",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Sales",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "sales_monthly_history",
- "fieldtype": "Small Text",
- "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": "Sales Monthly History",
- "length": 0,
- "no_copy": 1,
- "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_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "sales_monthly_history",
+ "fieldtype": "Small Text",
+ "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": "Sales Monthly History",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "monthly_sales_target",
- "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": "Monthly Sales Target",
- "length": 0,
- "no_copy": 0,
- "options": "default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "monthly_sales_target",
+ "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": "Monthly Sales Target",
+ "length": 0,
+ "no_copy": 0,
+ "options": "default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_goals",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_goals",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "total_monthly_sales",
- "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 Monthly Sales",
- "length": 0,
- "no_copy": 1,
- "options": "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_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "total_monthly_sales",
+ "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 Monthly Sales",
+ "length": 0,
+ "no_copy": 1,
+ "options": "default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "charts_section",
- "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": "Default Values",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "charts_section",
+ "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": "Default Values",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_letter_head",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Letter Head",
- "length": 0,
- "no_copy": 0,
- "options": "Letter Head",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_letter_head",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Letter Head",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Letter Head",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_holiday_list",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Holiday List",
- "length": 0,
- "no_copy": 0,
- "options": "Holiday List",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_holiday_list",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Holiday List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Holiday List",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_terms",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Terms",
- "length": 0,
- "no_copy": 0,
- "options": "Terms and Conditions",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_terms",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Terms",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Terms and Conditions",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_currency",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Currency",
- "length": 0,
- "no_copy": 0,
- "options": "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_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_currency",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Currency",
+ "length": 0,
+ "no_copy": 0,
+ "options": "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_bulk_edit": 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,
+ "allow_bulk_edit": 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_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "country",
- "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": "Country",
- "length": 0,
- "no_copy": 0,
- "options": "Country",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "country",
+ "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": "Country",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Country",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "create_chart_of_accounts_based_on",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Create Chart Of Accounts Based On",
- "length": 0,
- "no_copy": 0,
- "options": "\nStandard Template\nExisting Company",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "create_chart_of_accounts_based_on",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Create Chart Of Accounts Based On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nStandard Template\nExisting Company",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.create_chart_of_accounts_based_on===\"Standard Template\"",
- "fieldname": "chart_of_accounts",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Chart Of Accounts Template",
- "length": 0,
- "no_copy": 1,
- "options": "",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.create_chart_of_accounts_based_on===\"Standard Template\"",
+ "fieldname": "chart_of_accounts",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Chart Of Accounts Template",
+ "length": 0,
+ "no_copy": 1,
+ "options": "",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.create_chart_of_accounts_based_on===\"Existing Company\"",
- "fieldname": "existing_company",
- "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": "Existing Company ",
- "length": 0,
- "no_copy": 1,
- "options": "Company",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "tax_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": "Tax ID",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_settings",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Accounts Settings",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.create_chart_of_accounts_based_on===\"Existing Company\"",
+ "fieldname": "existing_company",
+ "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": "Existing Company ",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_bank_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Bank Account",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "default_bank_account",
- "oldfieldtype": "Link",
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "tax_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": "Tax ID",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_cash_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Cash Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_settings",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Accounts Settings",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_receivable_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Receivable Account",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "receivables_group",
- "oldfieldtype": "Link",
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_bank_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Bank Account",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "default_bank_account",
+ "oldfieldtype": "Link",
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "round_off_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Round Off Account",
- "length": 0,
- "no_copy": 0,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_cash_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Cash Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "write_off_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Write Off Account",
- "length": 0,
- "no_copy": 0,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_receivable_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Receivable Account",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "receivables_group",
+ "oldfieldtype": "Link",
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "exchange_gain_loss_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Exchange Gain / Loss Account",
- "length": 0,
- "no_copy": 0,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "round_off_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Round Off Account",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break0",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "write_off_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Write Off Account",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "exchange_gain_loss_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Exchange Gain / Loss Account",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break0",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Column Break",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "50%"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_payable_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Payable Account",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "payables_group",
- "oldfieldtype": "Link",
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_payable_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Payable Account",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "payables_group",
+ "oldfieldtype": "Link",
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_employee_advance_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Employee Advance Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_employee_advance_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Employee Advance Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_expense_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Cost of Goods Sold Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_expense_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Cost of Goods Sold Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_income_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Income Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_income_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Income Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "default_payroll_payable_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Payroll Payable Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "default_payroll_payable_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Payroll Payable Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "round_off_cost_center",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Round Off Cost Center",
- "length": 0,
- "no_copy": 0,
- "options": "Cost Center",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "round_off_cost_center",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Round Off Cost Center",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Cost Center",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_22",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_22",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "cost_center",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Cost Center",
- "length": 0,
- "no_copy": 1,
- "options": "Cost Center",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "cost_center",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Cost Center",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Cost Center",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_26",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_26",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "credit_limit",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Credit Limit",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "credit_limit",
- "oldfieldtype": "Currency",
- "options": "default_currency",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "credit_limit",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Credit Limit",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "credit_limit",
+ "oldfieldtype": "Currency",
+ "options": "default_currency",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "fieldname": "payment_terms",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Payment Terms Template",
- "length": 0,
- "no_copy": 0,
- "options": "Payment Terms Template",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "payment_terms",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Payment Terms Template",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Payment Terms Template",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "auto_accounting_for_stock_settings",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Stock Settings",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "auto_accounting_for_stock_settings",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Stock Settings",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "1",
- "fieldname": "enable_perpetual_inventory",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Enable Perpetual Inventory",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "1",
+ "fieldname": "enable_perpetual_inventory",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Enable Perpetual Inventory",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "default_inventory_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Default Inventory Account",
- "length": 0,
- "no_copy": 0,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "default_inventory_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Default Inventory Account",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "stock_adjustment_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Stock Adjustment Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "stock_adjustment_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Stock Adjustment Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_32",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_32",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "stock_received_but_not_billed",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Stock Received But Not Billed",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "stock_received_but_not_billed",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Stock Received But Not Billed",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "expenses_included_in_valuation",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Expenses Included In Valuation",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "expenses_included_in_valuation",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Expenses Included In Valuation",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "fixed_asset_depreciation_settings",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Fixed Asset Depreciation Settings",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "fixed_asset_depreciation_settings",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Fixed Asset Depreciation Settings",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "accumulated_depreciation_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Accumulated Depreciation Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "accumulated_depreciation_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Accumulated Depreciation Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "depreciation_expense_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Depreciation Expense Account",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "depreciation_expense_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Depreciation Expense Account",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "series_for_depreciation_entry",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Series for Asset Depreciation Entry (Journal Entry)",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "series_for_depreciation_entry",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Series for Asset Depreciation Entry (Journal Entry)",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_40",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_40",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "disposal_account",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Gain/Loss Account on Asset Disposal",
- "length": 0,
- "no_copy": 1,
- "options": "Account",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "disposal_account",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Gain/Loss Account on Asset Disposal",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Account",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "depreciation_cost_center",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Asset Depreciation Cost Center",
- "length": 0,
- "no_copy": 1,
- "options": "Cost Center",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "depreciation_cost_center",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Asset Depreciation Cost Center",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Cost Center",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "For reference only.",
- "fieldname": "company_info",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Company Info",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "For reference only.",
+ "fieldname": "company_info",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Company Info",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "address_html",
- "fieldtype": "HTML",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "address_html",
+ "fieldtype": "HTML",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break1",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break1",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Column Break",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "50%"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "phone_no",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Phone No",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "phone_no",
- "oldfieldtype": "Data",
- "options": "Phone",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "phone_no",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Phone No",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "phone_no",
+ "oldfieldtype": "Data",
+ "options": "Phone",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "fax",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Fax",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "fax",
- "oldfieldtype": "Data",
- "options": "Phone",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "fax",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Fax",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "fax",
+ "oldfieldtype": "Data",
+ "options": "Phone",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "email",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Email",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "email",
- "oldfieldtype": "Data",
- "options": "Email",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "email",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Email",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "email",
+ "oldfieldtype": "Data",
+ "options": "Email",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "website",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Website",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "website",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "website",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Website",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "website",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "registration_info",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "registration_info",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "50%"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "Company registration numbers for your reference. Tax numbers etc.",
- "fieldname": "registration_details",
- "fieldtype": "Code",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Registration Details",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "registration_details",
- "oldfieldtype": "Code",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "Company registration numbers for your reference. Tax numbers etc.",
+ "fieldname": "registration_details",
+ "fieldtype": "Code",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Registration Details",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "registration_details",
+ "oldfieldtype": "Code",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "delete_company_transactions",
- "fieldtype": "Button",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Delete Company Transactions",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "delete_company_transactions",
+ "fieldtype": "Button",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Delete Company Transactions",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "company_logo",
+ "fieldtype": "Attach 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": "Company Logo",
+ "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
}
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "icon": "fa fa-building",
- "idx": 1,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "menu_index": 0,
- "modified": "2018-01-29 12:40:24.646920",
- "modified_by": "Administrator",
- "module": "Setup",
- "name": "Company",
- "owner": "Administrator",
+ ],
+ "has_web_view": 0,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "fa fa-building",
+ "idx": 1,
+ "image_field": "company_logo",
+ "image_view": 0,
+ "in_create": 0,
+ "is_submittable": 0,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "menu_index": 0,
+ "modified": "2018-02-14 15:54:26.776363",
+ "modified_by": "achilles@erpnext.com",
+ "module": "Setup",
+ "name": "Company",
+ "owner": "Administrator",
"permissions": [
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "System Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "System Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
"write": 1
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 0,
- "role": "Accounts User",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 0,
+ "role": "Accounts User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 0,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Employee",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 0,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Employee",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 0,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Sales User",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 0,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Sales User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 0,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Purchase User",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 0,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Purchase User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 0,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Stock User",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 0,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Stock User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 0,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Projects User",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 0,
+ "delete": 0,
+ "email": 0,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Projects User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
}
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 0,
- "show_name_in_global_search": 1,
- "sort_order": "ASC",
- "track_changes": 1,
+ ],
+ "quick_entry": 0,
+ "read_only": 0,
+ "read_only_onload": 0,
+ "show_name_in_global_search": 1,
+ "sort_order": "ASC",
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py
index 4534584..6455be0 100644
--- a/erpnext/setup/doctype/naming_series/naming_series.py
+++ b/erpnext/setup/doctype/naming_series/naming_series.py
@@ -27,7 +27,7 @@
try:
options = self.get_options(d)
except frappe.DoesNotExistError:
- frappe.msgprint('Unable to find DocType {0}'.format(d))
+ frappe.msgprint(_('Unable to find DocType {0}').format(d))
#frappe.pass_does_not_exist_error()
continue
diff --git a/erpnext/startup/notifications.py b/erpnext/startup/notifications.py
index b8fce6e..690ccf0 100644
--- a/erpnext/startup/notifications.py
+++ b/erpnext/startup/notifications.py
@@ -11,7 +11,6 @@
"Warranty Claim": {"status": "Open"},
"Task": {"status": ("in", ("Open", "Overdue"))},
"Project": {"status": "Open"},
- "Item": {"total_projected_qty": ("<", 0)},
"Lead": {"status": "Open"},
"Contact": {"status": "Open"},
"Opportunity": {"status": "Open"},
diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py
index 645ab1b..5b4f4b5 100644
--- a/erpnext/stock/doctype/batch/batch.py
+++ b/erpnext/stock/doctype/batch/batch.py
@@ -115,8 +115,8 @@
self.expiry_date = add_days(self.manufacturing_date, shelf_life_in_days)
if has_expiry_date and not self.expiry_date:
- frappe.throw('Expiry date is mandatory for selected item')
- frappe.msgprint('Set items shelf life in days, to set expiry based on manufacturing_date plus self life ')
+ frappe.throw(_('Expiry date is mandatory for selected item'))
+ frappe.msgprint(_('Set items shelf life in days, to set expiry based on manufacturing_date plus self life'))
def get_name_from_naming_series(self):
"""
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index fd34423..430d9fb 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -15,9 +15,6 @@
self.validate_mandatory()
self.set_projected_qty()
- def on_update(self):
- update_item_projected_qty(self.item_code)
-
def validate_mandatory(self):
qf = ['actual_qty', 'reserved_qty', 'ordered_qty', 'indented_qty']
for f in qf:
@@ -130,11 +127,5 @@
self.set_projected_qty()
self.db_set('projected_qty', self.projected_qty)
-def update_item_projected_qty(item_code):
- '''Set total_projected_qty in Item as sum of projected qty in all warehouses'''
- frappe.db.sql('''update tabItem set
- total_projected_qty = ifnull((select sum(projected_qty) from tabBin where item_code=%s), 0)
- where name=%s''', (item_code, item_code))
-
def on_doctype_update():
frappe.db.add_index("Bin", ["item_code", "warehouse"])
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 104eeb8..ea705cb 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -110,7 +110,7 @@
const stock_exists = (frm.doc.__onload
&& frm.doc.__onload.stock_exists) ? 1 : 0;
- ['has_serial_no', 'has_batch_no'].forEach((fieldname) => {
+ ['is_stock_item', 'has_serial_no', 'has_batch_no'].forEach((fieldname) => {
frm.set_df_property(fieldname, 'read_only', stock_exists);
});
},
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index f334973..04f9df3 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -178,6 +178,35 @@
"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": 1,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
"description": "",
"fieldname": "item_group",
"fieldtype": "Link",
@@ -357,7 +386,7 @@
"report_hide": 0,
"reqd": 0,
"search_index": 0,
- "set_only_once": 1,
+ "set_only_once": 0,
"unique": 0
},
{
diff --git a/erpnext/stock/doctype/item/item_list.js b/erpnext/stock/doctype/item/item_list.js
index db53ae9..534b341 100644
--- a/erpnext/stock/doctype/item/item_list.js
+++ b/erpnext/stock/doctype/item/item_list.js
@@ -1,6 +1,6 @@
frappe.listview_settings['Item'] = {
add_fields: ["item_name", "stock_uom", "item_group", "image", "variant_of",
- "has_variants", "end_of_life", "disabled", "total_projected_qty"],
+ "has_variants", "end_of_life", "disabled"],
filters: [["disabled", "=", "0"]],
get_indicator: function(doc) {
@@ -8,8 +8,6 @@
return [__("Disabled"), "grey", "disabled,=,Yes"];
} else if (doc.end_of_life && doc.end_of_life < frappe.datetime.get_today()) {
return [__("Expired"), "grey", "end_of_life,<,Today"];
- } else if(doc.total_projected_qty < 0) {
- return [__("Shortage"), "red", "total_projected_qty,<,0"];
} else if (doc.has_variants) {
return [__("Template"), "orange", "has_variants,=,Yes"];
} else if (doc.variant_of) {
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index fb3182e..7241be3 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -128,7 +128,7 @@
def test_copy_fields_from_template_to_variants(self):
frappe.delete_doc_if_exists("Item", "_Test Variant Item-XL", force=1)
-
+
fields = [{'field_name': 'item_group'}, {'field_name': 'is_stock_item'}]
allow_fields = [d.get('field_name') for d in fields]
set_item_variant_settings(fields)
@@ -292,12 +292,6 @@
variant.item_name = "_Test Variant Item-S"
variant.save()
-def get_total_projected_qty(item):
- total_qty = frappe.db.sql(""" select sum(projected_qty) as projected_qty from tabBin
- where item_code = %(item)s""", {'item': item}, as_dict=1)
-
- return total_qty[0].projected_qty if total_qty else 0.0
-
test_records = frappe.get_test_records('Item')
def create_item(item_code, is_stock_item=None):
diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index ed0597c..709c2c7 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -12,6 +12,10 @@
'Supplier Quotation': 'Supplier Quotation',
'Production Order': 'Production Order'
}
+
+ // formatter for material request item
+ frm.set_indicator_formatter('item_code',
+ function(doc) { return (doc.qty<=doc.ordered_qty) ? "green" : "orange" })
},
onload: function(frm) {
// add item, if previous view was item
@@ -19,11 +23,6 @@
//set schedule_date
set_schedule_date(frm);
-
- // formatter for material request item
- frm.set_indicator_formatter('item_code',
- function(doc) { return (doc.qty<=doc.ordered_qty) ? "green" : "orange" }),
-
frm.fields_dict["items"].grid.get_field("warehouse").get_query = function(doc, cdt, cdn){
return{
filters: {'company': doc.company}
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 3b5b4d3..5a884ad 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -10,6 +10,7 @@
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
+from erpnext import get_company_currency
from six import string_types
@@ -473,8 +474,8 @@
@frappe.whitelist()
def get_bin_details(item_code, warehouse):
return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
- ["projected_qty", "actual_qty", "ordered_qty"], as_dict=True) \
- or {"projected_qty": 0, "actual_qty": 0, "ordered_qty": 0}
+ ["projected_qty", "actual_qty"], as_dict=True) \
+ or {"projected_qty": 0, "actual_qty": 0}
@frappe.whitelist()
def get_serial_no_details(item_code, warehouse, stock_qty, serial_no):
@@ -591,11 +592,12 @@
price_list_currency = get_price_list_currency(args.price_list)
price_list_uom_dependant = get_price_list_uom_dependant(args.price_list)
plc_conversion_rate = args.plc_conversion_rate
+ company_currency = get_company_currency(args.company)
if (not plc_conversion_rate) or (price_list_currency and args.price_list_currency \
and price_list_currency != args.price_list_currency):
# cksgb 19/09/2016: added args.transaction_date as posting_date argument for get_exchange_rate
- plc_conversion_rate = get_exchange_rate(price_list_currency, args.currency,
+ plc_conversion_rate = get_exchange_rate(price_list_currency, company_currency,
args.transaction_date) or plc_conversion_rate
return frappe._dict({
diff --git a/erpnext/stock/report/item_variant_details/item_variant_details.py b/erpnext/stock/report/item_variant_details/item_variant_details.py
index 67b6b5f..f1488f8 100644
--- a/erpnext/stock/report/item_variant_details/item_variant_details.py
+++ b/erpnext/stock/report/item_variant_details/item_variant_details.py
@@ -17,7 +17,7 @@
variant_results = frappe.db.sql("""select name from `tabItem`
where variant_of = %s""", item, as_dict=1)
- variants = ",".join(['"' + variant['name'] + '"' for variant in variant_results])
+ variants = ",".join(['"' + frappe.db.escape(variant['name']) + '"' for variant in variant_results])
order_count_map = get_open_sales_orders_map(variants)
stock_details_map = get_stock_details_map(variants)