Merge branch 'develop' into feature_10861
diff --git a/.eslintrc b/.eslintrc
index 4dd1216..c9a1b03 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -52,6 +52,7 @@
"frappe": true,
"erpnext": true,
"schools": true,
+ "education": true,
"$": true,
"jQuery": true,
diff --git a/.travis.yml b/.travis.yml
index 8681c03..d57b2d8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,7 +29,7 @@
- cp -r $TRAVIS_BUILD_DIR/test_sites/test_site ~/frappe-bench/sites/
before_script:
- - wget http://chromedriver.storage.googleapis.com/2.27/chromedriver_linux64.zip
+ - wget http://chromedriver.storage.googleapis.com/2.32/chromedriver_linux64.zip
- unzip chromedriver_linux64.zip
- sudo apt-get install libnss3
- sudo apt-get --only-upgrade install google-chrome-stable
@@ -64,4 +64,10 @@
- bench execute erpnext.setup.utils.enable_all_roles_and_domains
- bench run-ui-tests --app erpnext
env: Client Side Test
+ - # stage
+ script:
+ - wget http://build.erpnext.com/20171108_190013_955977f8_database.sql.gz
+ - bench --force restore ~/frappe-bench/20171108_190013_955977f8_database.sql.gz --mariadb-root-password travis
+ - bench migrate
+ env: Patch Testing
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index a55d0e7..b16e299 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -4,7 +4,7 @@
import frappe
from erpnext.hooks import regional_overrides
-__version__ = '9.2.13'
+__version__ = '9.2.16'
def get_default_company(user=None):
'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/account/account.js b/erpnext/accounts/doctype/account/account.js
index ca46d6b0..3a86fbc 100644
--- a/erpnext/accounts/doctype/account/account.js
+++ b/erpnext/accounts/doctype/account/account.js
@@ -47,6 +47,12 @@
// show / hide convert buttons
frm.trigger('add_toolbar_buttons');
}
+
+ if(!frm.doc.__islocal) {
+ frm.add_custom_button(__('Update Account Number'), function () {
+ frm.trigger("update_account_number");
+ });
+ }
},
account_type: function (frm) {
if (frm.doc.is_group == 0) {
@@ -90,6 +96,46 @@
});
});
}
+ },
+ update_account_number: function(frm) {
+ var d = new frappe.ui.Dialog({
+ title: __('Update Account Number'),
+ fields: [
+ {
+ "label": "Account Number",
+ "fieldname": "account_number",
+ "fieldtype": "Data",
+ "reqd": 1
+ }
+ ],
+ primary_action: function() {
+ var data = d.get_values();
+ if(data.account_number === frm.doc.account_number) {
+ d.hide();
+ return;
+ }
+
+ frappe.call({
+ method: "erpnext.accounts.doctype.account.account.update_account_number",
+ args: {
+ account_number: data.account_number,
+ name: frm.doc.name
+ },
+ callback: function(r) {
+ if(!r.exc) {
+ if(r.message) {
+ frappe.set_route("Form", "Account", r.message);
+ } else {
+ frm.set_value("account_number", data.account_number);
+ }
+ d.hide();
+ }
+ }
+ });
+ },
+ primary_action_label: __('Update')
+ });
+ d.show();
}
});
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/account.json b/erpnext/accounts/doctype/account/account.json
index 8de923f..8731c51 100644
--- a/erpnext/accounts/doctype/account/account.json
+++ b/erpnext/accounts/doctype/account/account.json
@@ -108,6 +108,36 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fieldname": "account_number",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 1,
+ "label": "Account Number",
+ "length": 0,
+ "no_copy": 0,
+ "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,
"default": "0",
"fieldname": "is_group",
"fieldtype": "Check",
@@ -545,7 +575,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-11 15:28:35.855809",
+ "modified": "2017-08-22 17:39:10.711343",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
@@ -655,7 +685,7 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
- "search_fields": "",
+ "search_fields": "account_number",
"show_name_in_global_search": 1,
"sort_order": "ASC",
"track_changes": 1,
diff --git a/erpnext/accounts/doctype/account/account.py b/erpnext/accounts/doctype/account/account.py
index b31c5d6..36f8ce2 100644
--- a/erpnext/accounts/doctype/account/account.py
+++ b/erpnext/accounts/doctype/account/account.py
@@ -3,14 +3,14 @@
from __future__ import unicode_literals
import frappe
-from frappe.utils import cint, fmt_money
+from frappe.utils import cint, cstr
from frappe import throw, _
-from frappe.model.document import Document
+from frappe.utils.nestedset import NestedSet
class RootNotEditable(frappe.ValidationError): pass
class BalanceMismatchError(frappe.ValidationError): pass
-class Account(Document):
+class Account(NestedSet):
nsm_parent_field = 'parent_account'
def onload(self):
@@ -20,18 +20,14 @@
self.set_onload("can_freeze_account", True)
def autoname(self):
- # first validate if company exists
- company = frappe.db.get_value("Company", self.company, ["abbr", "name"], as_dict=True)
- if not company:
- frappe.throw(_('Company {0} does not exist').format(self.company))
-
- self.name = self.account_name.strip() + ' - ' + company.abbr
+ self.name = get_account_autoname(self.account_number, self.account_name, self.company)
def validate(self):
if frappe.local.flags.allow_unverified_charts:
return
self.validate_parent()
self.validate_root_details()
+ validate_account_number(self.name, self.account_number, self.company)
self.validate_group_or_ledger()
self.set_root_and_report_type()
self.validate_mandatory()
@@ -56,12 +52,15 @@
def set_root_and_report_type(self):
if self.parent_account:
- par = frappe.db.get_value("Account", self.parent_account, ["report_type", "root_type"], as_dict=1)
+ par = frappe.db.get_value("Account", self.parent_account,
+ ["report_type", "root_type", "account_type"], as_dict=1)
if par.report_type:
self.report_type = par.report_type
if par.root_type:
self.root_type = par.root_type
+ if par.account_type and not self.account_type:
+ self.account_type = par.account_type
if self.is_group:
db_value = frappe.db.get_value("Account", self.name, ["report_type", "root_type"], as_dict=1)
@@ -161,31 +160,18 @@
if not self.report_type:
throw(_("Report Type is mandatory"))
-
- def update_nsm_model(self):
- """update lft, rgt indices for nested set model"""
- import frappe
- import frappe.utils.nestedset
- frappe.utils.nestedset.update_nsm(self)
-
- def on_update(self):
- self.update_nsm_model()
-
- def validate_trash(self):
- """checks gl entries and if child exists"""
+ def on_trash(self):
+ # checks gl entries and if child exists
if self.check_gle_exists():
throw(_("Account with existing transaction can not be deleted"))
- if self.check_if_child_exists():
- throw(_("Child account exists for this account. You can not delete this account."))
- def on_trash(self):
- self.validate_trash()
- self.update_nsm_model()
+ super(Account, self).on_trash()
def before_rename(self, old, new, merge=False):
# Add company abbr if not provided
from erpnext.setup.doctype.company.company import get_name_with_abbr
new_account = get_name_with_abbr(new, self.company)
+ new_account = get_name_with_number(new_account, self.account_number)
# Validate properties before merging
if merge:
@@ -208,7 +194,25 @@
super(Account, self).after_rename(old, new, merge)
if not merge:
- frappe.db.set_value("Account", new, "account_name", " - ".join(new.split(" - ")[:-1]))
+ new_acc = frappe.db.get_value("Account", new, ["account_name", "account_number"], as_dict=1)
+
+ # exclude company abbr
+ new_parts = new.split(" - ")[:-1]
+ # update account number and remove from parts
+ if new_parts[0][0].isdigit():
+ # if account number is separate by space, split using space
+ if len(new_parts) == 1:
+ new_parts = new.split(" ")
+ if new_acc.account_number != new_parts[0]:
+ self.account_number = new_parts[0]
+ self.db_set("account_number", new_parts[0])
+ new_parts = new_parts[1:]
+
+ # update account name
+ account_name = " - ".join(new_parts)
+ if new_acc.account_name != account_name:
+ self.account_name = account_name
+ self.db_set("account_name", account_name)
def get_parent_account(doctype, txt, searchfield, start, page_len, filters):
return frappe.db.sql("""select name from tabAccount
@@ -229,3 +233,46 @@
return account_currency
return frappe.local_cache("account_currency", account, generator)
+
+def get_account_autoname(account_number, account_name, company):
+ # first validate if company exists
+ company = frappe.db.get_value("Company", company, ["abbr", "name"], as_dict=True)
+ if not company:
+ frappe.throw(_('Company {0} does not exist').format(company))
+
+ parts = [account_name.strip(), company.abbr]
+ if cstr(account_number).strip():
+ parts.insert(0, cstr(account_number).strip())
+ return ' - '.join(parts)
+
+def validate_account_number(name, account_number, company):
+ if account_number:
+ account_with_same_number = frappe.db.get_value("Account",
+ {"account_number": account_number, "company": company, "name": ["!=", name]})
+ if account_with_same_number:
+ frappe.throw(_("Account Number {0} already used in account {1}")
+ .format(account_number, account_with_same_number))
+
+@frappe.whitelist()
+def update_account_number(name, account_number):
+ account = frappe.db.get_value("Account", name, ["account_name", "company"], as_dict=True)
+
+ validate_account_number(name, account_number, account.company)
+
+ frappe.db.set_value("Account", name, "account_number", account_number)
+
+ account_name = account.account_name
+ if account_name[0].isdigit():
+ separator = " - " if " - " in account_name else " "
+ account_name = account_name.split(separator, 1)[1]
+ frappe.db.set_value("Account", name, "account_name", account_name)
+
+ new_name = get_account_autoname(account_number, account_name, account.company)
+ if name != new_name:
+ frappe.rename_doc("Account", name, new_name)
+ return new_name
+
+def get_name_with_number(new_account, account_number):
+ if account_number and not new_account[0].isdigit():
+ new_account = account_number + " - " + new_account
+ return new_account
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/account_tree.js b/erpnext/accounts/doctype/account/account_tree.js
index 20d7606..2f4e09b 100644
--- a/erpnext/accounts/doctype/account/account_tree.js
+++ b/erpnext/accounts/doctype/account/account_tree.js
@@ -24,6 +24,8 @@
fields: [
{fieldtype:'Data', fieldname:'account_name', label:__('New Account Name'), reqd:true,
description: __("Name of new Account. Note: Please don't create accounts for Customers and Suppliers")},
+ {fieldtype:'Data', fieldname:'account_number', label:__('Account Number'),
+ description: __("Number of new Account, it will be included in the account name as a prefix")},
{fieldtype:'Check', fieldname:'is_group', label:__('Is Group'),
description: __('Further accounts can be made under Groups, but entries can be made against non-Groups')},
{fieldtype:'Select', fieldname:'root_type', label:__('Root Type'),
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
index 1e694e7..dc98db1 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
@@ -16,12 +16,12 @@
if root_account:
root_type = child.get("root_type")
- if account_name not in ["account_type", "root_type", "is_group", "tax_rate"]:
+ if account_name not in ["account_number", "account_type",
+ "root_type", "is_group", "tax_rate"]:
- account_name_in_db = unidecode(account_name.strip().lower())
- if account_name_in_db in accounts:
- count = accounts.count(account_name_in_db)
- account_name = account_name + " " + cstr(count)
+ account_number = cstr(child.get("account_number")).strip()
+ account_name, account_name_in_db = add_suffix_if_duplicate(account_name,
+ account_number, accounts)
is_group = identify_is_group(child)
report_type = "Balance Sheet" if root_type in ["Asset", "Liability", "Equity"] \
@@ -35,6 +35,7 @@
"is_group": is_group,
"root_type": root_type,
"report_type": report_type,
+ "account_number": account_number,
"account_type": child.get("account_type"),
"account_currency": frappe.db.get_value("Company", company, "default_currency"),
"tax_rate": child.get("tax_rate")
@@ -53,10 +54,23 @@
_import_accounts(chart, None, None, root_account=True)
+def add_suffix_if_duplicate(account_name, account_number, accounts):
+ if account_number:
+ account_name_in_db = unidecode(" - ".join([account_number,
+ account_name.strip().lower()]))
+ else:
+ account_name_in_db = unidecode(account_name.strip().lower())
+
+ if account_name_in_db in accounts:
+ count = accounts.count(account_name_in_db)
+ account_name = account_name + " " + cstr(count)
+
+ return account_name, account_name_in_db
+
def identify_is_group(child):
if child.get("is_group"):
is_group = child.get("is_group")
- elif len(set(child.keys()) - set(["account_type", "root_type", "is_group", "tax_rate"])):
+ elif len(set(child.keys()) - set(["account_type", "root_type", "is_group", "tax_rate", "account_number"])):
is_group = 1
else:
is_group = 0
@@ -71,6 +85,10 @@
elif chart_template == "Standard":
from erpnext.accounts.doctype.account.chart_of_accounts.verified import standard_chart_of_accounts
return standard_chart_of_accounts.get()
+ elif chart_template == "Standard with Numbers":
+ from erpnext.accounts.doctype.account.chart_of_accounts.verified \
+ import standard_chart_of_accounts_with_account_number
+ return standard_chart_of_accounts_with_account_number.get()
else:
folders = ("verified",)
if frappe.local.flags.allow_unverified_charts:
@@ -86,7 +104,7 @@
return json.loads(chart).get("tree")
@frappe.whitelist()
-def get_charts_for_country(country):
+def get_charts_for_country(country, with_standard=False):
charts = []
def _get_chart_name(content):
@@ -111,26 +129,26 @@
with open(os.path.join(path, fname), "r") as f:
_get_chart_name(f.read())
- if len(charts) != 1:
- charts.append("Standard")
+ if len(charts) != 1 or with_standard:
+ charts += ["Standard", "Standard with Numbers"]
return charts
def get_account_tree_from_existing_company(existing_company):
- all_accounts = frappe.get_all('Account',
- filters={'company': existing_company},
- fields = ["name", "account_name", "parent_account", "account_type",
- "is_group", "root_type", "tax_rate"],
+ all_accounts = frappe.get_all('Account',
+ filters={'company': existing_company},
+ fields = ["name", "account_name", "parent_account", "account_type",
+ "is_group", "root_type", "tax_rate", "account_number"],
order_by="lft, rgt")
-
+
account_tree = {}
# fill in tree starting with root accounts (those with no parent)
if all_accounts:
build_account_tree(account_tree, None, all_accounts)
return account_tree
-
+
def build_account_tree(tree, parent, all_accounts):
# find children
parent_account = parent.name if parent else ""
@@ -139,18 +157,17 @@
# if no children, but a group account
if not children and parent.is_group:
tree["is_group"] = 1
+ tree["account_number"] = parent.account_number
# build a subtree for each child
for child in children:
- if child.account_type == "Stock" and not child.is_group:
- tree["is_group"] = 1
- continue
-
# start new subtree
tree[child.account_name] = {}
# assign account_type and root_type
if child.account_type:
+ tree[child.account_name]["account_number"] = child.account_number
+ if child.account_type:
tree[child.account_name]["account_type"] = child.account_type
if child.tax_rate:
tree[child.account_name]["tax_rate"] = child.tax_rate
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/ar_ar_chart_template.json b/erpnext/accounts/doctype/account/chart_of_accounts/unverified/ar_ar_chart_template.json
deleted file mode 100644
index 0dfd1bd..0000000
--- a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/ar_ar_chart_template.json
+++ /dev/null
@@ -1,209 +0,0 @@
-{
- "country_code": "ar",
- "name": "Argentina - Plan de Cuentas",
- "tree": {
- "Cuentas Patrimoniales": {
- "ACTIVO": {
- "Bienes Inmateriales": {
- "Bienes Inmateriales / (-) Amortizaci\u00f3n Acumulada": {},
- "Bienes Inmateriales / Concesiones y Franquicias": {},
- "Bienes Inmateriales / Marcas de F\u00e1brica": {},
- "Bienes Inmateriales / Patentes de Invenci\u00f3n": {}
- },
- "Bienes de Cambio": {
- "(-) Previsi\u00f3n para Desvalorizaci\u00f3n de Bienes de Cambio": {},
- "Bienes de Cambio - Mercader\u00edas": {
- "Bienes de Cambio - Mercader\u00edas / Categoria de productos 01": {}
- },
- "Bienes de Cambio - Mercader\u00edas en Tr\u00e1nsito": {},
- "Materiales Varios ": {},
- "Materias primas": {},
- "Productos Elaborados": {},
- "Productos en Curso de Elaboraci\u00f3n": {}
- },
- "Bienes de Uso": {
- "Bienes de Uso / (-) Depreciaci\u00f3n Acumulada": {},
- "Bienes de Uso / Equipos": {},
- "Bienes de Uso / Inmuebles": {},
- "Bienes de Uso / Maquinaria": {},
- "Bienes de Uso / Rodados": {}
- },
- "Caja y Bancos": {
- "Caja y Bancos - Caja": {
- "Caja y bancos - Caja / efectivo ARS": {}
- },
- "Caja y Bancos - Cuentas Corrientes": {
- "Caja y Bancos.../ BCO. CTA CTE ARS": {}
- },
- "Caja y Bancos - Fondos fijos": {
- "Caja y ...- Fondos fijos / caja chica 01 ARS": {}
- },
- "Caja y Bancos - Moneda Extranjera": {
- "Caja y bancos - Caja / efectivo USD": {}
- },
- "Caja y bancos - Recaudaciones a Depositar ": {},
- "Caja y bancos - Valores a Depositar ": {}
- },
- "Inversiones": {
- "Inversiones / (-) Previsi\u00f3n para Devalorizaci\u00f3n de Acciones": {},
- "Inversiones / Acciones Permanentes": {},
- "Inversiones / Acciones Transitorias": {},
- "Inversiones / T\u00edtulos P\u00fablicos": {}
- }
- },
- "Cr\u00e9ditos por Ventas": {
- "Cr\u00e9ditos por Ventas / (-) Previsi\u00f3n para Ds. Incobrables": {},
- "Cr\u00e9ditos por Ventas / Deudores Morosos": {},
- "Cr\u00e9ditos por Ventas / Deudores Varios": {},
- "Cr\u00e9ditos por Ventas / Deudores en Gesti\u00f3n Judicial": {},
- "Cr\u00e9ditos por Ventas / Deudores por Ventas": {}
- },
- "Otros Cr\u00e9ditos": {
- "Otros Cr\u00e9ditos / (-) Intereses (+) a Devengar": {},
- "Otros Cr\u00e9ditos / (-) Previsi\u00f3n para Descuentos": {},
- "Otros Cr\u00e9ditos / Accionistas": {},
- "Otros Cr\u00e9ditos / Alquileres Pagados por Adelantado": {},
- "Otros Cr\u00e9ditos / Anticipo al Personal": {},
- "Otros Cr\u00e9ditos / Anticipo de Impuestos": {},
- "Otros Cr\u00e9ditos / Anticipos a Proveedores": {},
- "Otros Cr\u00e9ditos / Intereses Pagados por Adelantado": {},
- "Otros Cr\u00e9ditos / Pr\u00e9stamos otorgados": {}
- },
- "PASIVO": {
- "Deudas Bancarias y Financieras": {
- "Deudas Bancarias y Financieras / Adelantos en Cuenta Corriente": {},
- "Deudas Bancarias y Financieras / Debentures Emitidos": {},
- "Deudas Bancarias y Financieras / Intereses a Pagar": {},
- "Deudas Bancarias y Financieras / Obligaciones a Pagar": {},
- "Deudas Bancarias y Financieras / Prestamos": {}
- },
- "Deudas Comerciales": {
- "Deudas Comerciales / (-) Intereses a Devengar por Compras al Cr\u00e9dito": {},
- "Deudas Comerciales / Anticipos de Clientes": {},
- "Deudas Comerciales / Proveedores": {}
- },
- "Deudas Fiscales": {
- "Deudas Fiscales / IVA a Pagar": {},
- "Deudas Fiscales / Impuesto a la Ganancia M\u00ednima Presunta a Pagar": {},
- "Deudas Fiscales / Impuesto a las Ganancias a Pagar": {},
- "Deudas Fiscales / Impuesto a los D\u00e9bitos y Cr\u00e9ditos Bancarios a Pagar": {},
- "Deudas Fiscales / Impuesto sobre los Bienes Personales a Pagar": {},
- "Deudas Fiscales / Monotributo a Pagar": {}
- },
- "Deudas Sociales": {
- "Deudas Sociales / Cargas Sociales a Pagar": {},
- "Deudas Sociales / Provisi\u00f3n para Sueldo Anual Complementario": {},
- "Deudas Sociales / Retenciones a Depositar": {},
- "Deudas Sociales / Sueldos a Pagar": {}
- },
- "Otras Deudas": {
- "Otras Deudas / Acreedores Varios": {},
- "Otras Deudas / Cobros por Adelantado": {},
- "Otras Deudas / Dividendos a Pagar": {},
- "Otras Deudas / Honorarios Directores y S\u00edndicos a Pagar": {}
- },
- "Previsiones": {
- "Previsiones / Previsi\u00f3n Indemnizaci\u00f3n por Despidos": {},
- "Previsiones / Previsi\u00f3n para Garant\u00edas por Service": {},
- "Previsiones / Previsi\u00f3n para juicios Pendientes": {}
- }
- },
- "PATRIMONIO NETO": {
- "Ajustes al Patrimonio": {
- "Ajustes al Patrimonio / Revaluo T\u00e9cnico de Bienes de Uso": {}
- },
- "Aportes No Capitalizados": {
- "Aportes No Capitalizados / Aportes Irrevocables Futura Suscripci\u00f3n de Acciones": {},
- "Aportes No Capitalizados / Primas de Emsi\u00f3n": {}
- },
- "Capital Social": {
- "Capital social / (-) Descuento de Emisi\u00f3n de Acciones": {},
- "Capital social / Acciones en Circulaci\u00f3n": {},
- "Capital social / Capital Suscripto": {},
- "Capital social / Dividendos a Distribuir en Acciones": {}
- },
- "Ganancias Reservadas": {
- "Reserva Estatutaria": {},
- "Reserva Facultativa": {},
- "Reserva Legal": {},
- "Reserva para Renovaci\u00f3n de Bienes de Uso": {}
- },
- "Resultados No Asignados": {
- "Ganancias y P\u00e9rdidas del Ejercicio": {},
- "Resultado del Ejercicio": {},
- "Resultados Acumulados": {},
- "Resultados Acumulados del Ejercicio Anterior": {}
- }
- },
- "root_type": ""
- },
- "Cuentas de Movimiento": {
- "Compras": {
- "Compras - Categoria de productos 01": {}
- },
- "Costos de Producci\u00f3n": {},
- "Gastos de Administraci\u00f3n": {},
- "Gastos de Comercializaci\u00f3n": {},
- "root_type": ""
- },
- "Cuentas de Orden": {
- "CUENTAS DE ORDEN ACREEDORAS": {
- "Acreedor por Documentos Descontados": {},
- "Acreedor por Garant\u00edas Otorgadas": {},
- "Comitente por Mercaderias Recibidas en Consignaci\u00f3n": {}
- },
- "CUENTAS DE ORDEN DEUDORAS": {
- "Dep\u00f3sito de Valores Recibos en Garant\u00eda": {},
- "Documentos Descontados": {},
- "Documentos Endosados": {},
- "Garantias Otorgadas": {},
- "Mercaderias Recibidas en Consignaci\u00f3n": {}
- },
- "root_type": ""
- },
- "Cuentas de Resultado": {
- "RESULTADOS NEGATIVOS": {
- "Resultados Negativos Extraordinarios": {
- "Donaciones Cedidas, Otorgadas": {},
- "Gastos en Siniestros": {},
- "P\u00e9rdida Venta Bienes de Uso": {}
- },
- "Resultados Negativos Ordinarios": {
- "Costo de Mercader\u00edas Vendidas": {
- "Costo de Mercader\u00edas Vendidas - Categoria de productos 01": {}
- },
- "Gastos Bancarios": {},
- "Gastos de Publicidad y Propaganda": {},
- "Gastos en Amortizaci\u00f3n": {},
- "Gastos en Cargas Sociales": {},
- "Gastos en Depreciaci\u00f3n de Bienes de Uso": {},
- "Gastos en Impuestos": {},
- "Gastos en Servicios P\u00fablicos": {},
- "Gastos en Sueldos y Jormales": {}
- }
- },
- "RESULTADOS POSITIVOS": {
- "Resultados Positivos Extraordinarios": {
- "Donaciones obtenidas, ganandas, percibidas": {},
- "Ganancia Venta Inversiones Permanentes": {},
- "Ganancia Venta de Bienes de Uso": {},
- "Recupero de Deudores Incobrables": {},
- "Recupero de Rezagos": {}
- },
- "Resultados Positivos Ordinarios": {
- "Alquileres gananados, obtenidos, percibidos": {},
- "Comisiones gananados, obtenidos, percibidos": {},
- "Descuentos gananados, obtenidos, percibidos": {},
- "Ganancia Venta de Acciones": {},
- "Honorarios gananados, obtenidos, percibidos": {},
- "Intereses gananados, obtenidos, percibidos": {},
- "Renta de T\u00edtulos P\u00fablicos": {},
- "Resultados Positivos Ordinarios": {
- "Ventas - Categoria de productos 01": {}
- }
- }
- },
- "root_type": ""
- }
- }
-}
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/ca_ca_en_chart_template_en.json b/erpnext/accounts/doctype/account/chart_of_accounts/unverified/ca_ca_en_chart_template_en.json
deleted file mode 100644
index 02c4609..0000000
--- a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/ca_ca_en_chart_template_en.json
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "country_code": "ca",
- "name": "Canada - Chart of Accounts for english-speaking provinces",
- "tree": {
- "ASSETS": {
- "CURRENT ASSETS": {
- "ACCOUNTS RECEIVABLES": {
- "ALLOWANCE FOR DOUBTFUL ACCOUNTS": {},
- "Customers Account": {
- "account_type": "Receivable"
- }
- },
- "CASH": {},
- "CERTIFICATES OF DEPOSITS": {},
- "INVESTMENTS HELD FOR TRADING": {},
- "PREPAID EXPENSES": {},
- "STOCKS": {
- "Stock Delivered But Not Billed": {},
- "Stock In Hand": {}
- },
- "TAXES RECEIVABLES": {
- "GST receivable": {
- "account_type": "Receivable"
- },
- "HST receivable": {
- "HST receivable - 13%": {
- "account_type": "Receivable"
- },
- "HST receivable - 14%": {
- "account_type": "Receivable"
- },
- "HST receivable - 15%": {
- "account_type": "Receivable"
- }
- },
- "PST/QST receivable": {
- "account_type": "Receivable"
- }
- },
- "TREASURY OR TREASURY EQUIVALENTS": {}
- },
- "NON-CURRENT ASSETS": {
- "INTANGIBLE ASSETS": {
- "PATENTS, TRADEMARKS AND COPYRIGHTS": {}
- },
- "INVESTMENTS AVAILABLE FOR SALE": {},
- "TANGIBLE ASSETS": {
- "ACCUMULATED DEPRECIATIONS": {}
- }
- },
- "root_type": "Asset"
- },
- "EQUITY": {
- "CONTRIBUTED SURPLUS": {},
- "DIVIDENDS": {},
- "PREMIUMS": {},
- "RETAINED EARNINGS": {},
- "SHARE CAPITAL": {},
- "TRANSLATION ADJUSTMENTS": {},
- "root_type": "Equity"
- },
- "EXPENSES": {
- "NON-OPERATING EXPENSES": {
- "INTERESTS EXPENSES": {},
- "OTHER NON-OPERATING EXPENSES": {}
- },
- "OPERATING EXPENSES": {
- "COST OF GOODS SOLD": {
- "Inside Purchases": {},
- "International Purchases": {},
- "Purchases in harmonized provinces": {},
- "Purchases in non-harmonized provinces": {}
- },
- "GENERAL EXPENSES": {},
- "LABOUR EXPENSES": {
- "Annuities": {},
- "Employment Insurance": {},
- "Federal Income Tax": {},
- "Health Services Fund": {},
- "Holidays": {},
- "Labour Health and Safety": {},
- "Labour Standards": {},
- "Parental Insurance": {},
- "Provincial Income Tax": {},
- "Salaries, wages and commissions": {}
- },
- "OTHER OPERATING EXPENSES": {},
- "RESEARCH AND DEVELOPMENT EXPENSES": {},
- "SALES EXPENSES": {}
- },
- "root_type": "Expense"
- },
- "INCOMES": {
- "NON-OPERATING INCOMES": {
- "INTERESTS": {},
- "OTHER NON-OPERATING INCOMES": {}
- },
- "OPERATING INCOMES": {
- "Harmonized Provinces Sales": {},
- "Inside Sales": {},
- "International Sales": {},
- "Non-Harmonized Provinces Sales": {},
- "OTHER OPERATING INCOMES": {}
- },
- "root_type": "Income"
- },
- "LIABILITIES": {
- "CURRENT LIABILITIES": {
- "ACCOUNTS PAYABLES": {
- "Suppliers Account": {
- "account_type": "Payable"
- }
- },
- "CURRENT FINANCIAL DEBTS": {},
- "LABOUR TAXES TO PAY": {
- "CANADIAN REVENU AGENCY": {
- "EMPLOYMENT INSURANCE TO PAY": {
- "EI - Employees Contribution": {},
- "EI - Employer Contribution": {}
- },
- "Federal Income Tax": {}
- },
- "PROVINCIAL REVENU AGENCY": {
- "ANNUITIES TO PAY": {
- "Annuities - Employees Contribution": {},
- "Annuities - Employer Contribution": {}
- },
- "Health Services Fund to pay": {},
- "Labour Health and Safety to pay": {},
- "Labour Standards to pay": {},
- "PARENTAL INSURANCE PLAN TO PAY": {
- "PAP - Employee Contribution": {},
- "PAP - Employer Contribution": {}
- },
- "Provincial Income Tax": {}
- }
- },
- "LIABILITIES ASSETS HELD FOR TRANSFER": {
- "Stock Received But Not Billed": {}
- },
- "OTHER ACCOUNTS PAYABLES": {},
- "STOCK LIABILITIES": {},
- "TAXES PAYABLES": {
- "GST to pay": {
- "account_type": "Payable"
- },
- "HST to pay": {
- "HST to pay - 13%": {
- "account_type": "Payable"
- },
- "HST to pay - 14%": {
- "account_type": "Payable"
- },
- "HST to pay - 15%": {
- "account_type": "Payable"
- }
- },
- "PST/QST to pay": {
- "account_type": "Payable"
- }
- }
- },
- "NON-CURRENT LIABILITIES": {
- "DEFERRED TAXES": {},
- "NON-CURRENT FINANCIAL DEBTS": {},
- "OTHER NON-CURRENT LIABILITIES": {},
- "PROVISIONS FOR PENSIONS AND OTHER POST-EMPLOYMENT ADVANTAGES": {}
- },
- "root_type": "Liability"
- }
- }
-}
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/hu_hungarian_chart_template.json b/erpnext/accounts/doctype/account/chart_of_accounts/unverified/hu_hungarian_chart_template.json
deleted file mode 100644
index 85a49c5..0000000
--- a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/hu_hungarian_chart_template.json
+++ /dev/null
@@ -1,355 +0,0 @@
-{
- "country_code": "hu",
- "name": "Hungary - Magyar f\u0151k\u00f6nyvi kivonat",
- "tree": {
- "Eredm\u00e9ny sz\u00e1ml\u00e1k": {
- "AZ \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE, BEV\u00c9TELEK": {
- "BELF\u00d6LDI \u00c9RK\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE": {
- "Belf\u00f6ldi \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev\u00e9tele": {}
- },
- "BELF\u00d6LDI \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE": {
- "Belf\u00f6ldi \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev\u00e9tele": {}
- },
- "EGY\u00c9B BEV\u00c9TELEK": {
- "Az \u00fczleti \u00e9vhez kapcs. egy\u00e9b bev\u00e9telek": {},
- "Biztos\u00edt\u00f3 \u00e1ltal visszaig. k\u00e1rt\u00e9r\u00edt\u00e9s \u00f6.": {},
- "C\u00e9ltartal\u00e9k felhaszn\u00e1l\u00e1sa": {},
- "K\u00fcl\u00f6nf\u00e9le egy\u00e9b bev\u00e9telek": {},
- "Ut\u00f3lag kapott p\u00fc. rendezett engedm\u00e9ny": {},
- "Visszafiz. k\u00f6t. n\u00e9lk\u00fcl kapott t\u00e1mogat\u00e1s": {},
- "\u00c9rt,\u00e1truh\u00e1zott k\u00f6vetel\u00e9sek elism.m\u00e9rt\u00e9ke": {},
- "\u00c9rt.immat. javak, t\u00e1rgyi eszk.bev\u00e9tele": {},
- "\u00c9rt\u00e9kveszt\u00e9sek vissza\u00edr\u00e1sa, tervenf.\u00e9cs.": {}
- },
- "EXPORT \u00c9RT\u00c9KES\u00cdT\u00c9S \u00c1RBEV\u00c9TELE": {
- "Export \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev. EU tagorsz\u00e1gba": {},
- "Export \u00e9rt\u00e9kes\u00edt\u00e9s \u00e1rbev.nem EU tagorsz.": {}
- },
- "P\u00c9NZ\u00dcGYI M\u00dcVELETEK BEV\u00c9TELEI": {
- "Befekt. p\u00fci.eszk. kamatai, \u00e1rf.nyeres.": {},
- "Egy\u00e9b kapott kamatok,kamatjell.bev\u00e9telek": {},
- "Egy\u00e9b p\u00e9nz\u00fcgyi m\u00fbveletek bev\u00e9telei": {},
- "Egy\u00e9b \u00e1rfolyamnyeres\u00e9gek, opci\u00f3s bev.": {},
- "Forg\u00f3eszk. \u00e9rt\u00e9kpap\u00edr \u00e1rfolyamnyeres\u00e9ge": {},
- "Kapott (j\u00e1r\u00f3) osztal\u00e9k, r\u00e9szesed\u00e9s": {},
- "R\u00e9szesed\u00e9sek \u00e9rt. \u00e1rfolyamnyeres\u00e9ge": {},
- "V\u00e1s. k\u00f6vetel\u00e9sekkel kapcs. bev\u00e9telek": {},
- "\u00c1tv\u00e1lt\u00e1si, \u00e1t\u00e9rt\u00e9kel\u00e9skori \u00e1rf.nyeres\u00e9g": {}
- },
- "RENDKIV\u00dcLI BEV\u00c9TELEK": {
- "Rendk\u00edv\u00fcli bev\u00e9telek": {}
- }
- },
- "AZ \u00c9RT\u00c9KES\u00cdT\u00c9S \u00d6NK\u00d6LTS. \u00c9S R\u00c1FORD\u00cdT\u00c1SOK": {
- "ANYAGJELLEG\u00db R\u00c1FORD\u00cdT\u00c1SOK": {
- "Anyagk\u00f6lts\u00e9g": {},
- "Egy\u00e9b szolg\u00e1ltat\u00e1sok \u00e9rt\u00e9ke": {},
- "Eladott (k\u00f6zvet\u00edtett) szolg. \u00e9rt\u00e9ke": {},
- "Eladott \u00e1ruk beszerz\u00e9si \u00e9rt\u00e9ke": {},
- "Ig\u00e9nybevett szolg\u00e1ltat\u00e1sok \u00e9rt\u00e9ke": {}
- },
- "EGY\u00c9B R\u00c1FORD\u00cdT\u00c1SOK": {
- "Ad\u00f3k, illet\u00e9kek, hozz\u00e1j\u00e1rul\u00e1sok": {},
- "Az \u00fczleti \u00e9vhez kapcs. r\u00e1ford\u00edt\u00e1sok": {},
- "C\u00e9ltartal\u00e9k k\u00e9pz\u00e9se": {},
- "Elsz\u00e1molt \u00e9rt\u00e9kveszt\u00e9s, tervenf. \u00e9rt\u00e9kcs": {},
- "K\u00fcl\u00f6nf\u00e9le egy\u00e9b r\u00e1ford\u00edt\u00e1sok": {},
- "Ut\u00f3lag adott p\u00fc. rendezett engedm\u00e9ny": {},
- "\u00c9rt.\u00e1truh\u00e1zott k\u00f6vetel\u00e9sek k\u00f6nyvsz. \u00e9rt.": {},
- "\u00c9rt\u00e9kes\u00edtett eszk.imm.javak nytsz \u00e9rt\u00e9ke": {}
- },
- "NYERES\u00c9GET TERHEL\u00d6 AD\u00d3K": {
- "Egyszer\u00fcs\u00edtett v\u00e1llalkoz\u00f3i ad\u00f3": {},
- "T\u00e1rsas v\u00e1llalkoz\u00e1s k\u00fcl\u00f6nad\u00f3ja": {},
- "T\u00e1rsas\u00e1gi ad\u00f3": {}
- },
- "P\u00c9NZ\u00dcGYI M\u00dcVELETEK R\u00c1FORD\u00cdT\u00c1SAI": {
- "Befektetett p\u00fci. eszk. \u00e1rf.vesztes\u00e9ge": {},
- "Egy\u00e9b p\u00e9nz\u00fcgyi r\u00e1ford\u00edt\u00e1sok": {},
- "Egy\u00e9b \u00e1rfolyamvesztes\u00e9gek, opci\u00f3s d\u00edjak": {},
- "Fizetend\u00f5 kamatok, kamatjell. r\u00e1ford.": {},
- "Forg\u00f3eszk. \u00e9rt\u00e9kpap\u00edr \u00e1rf.vesztes\u00e9ge": {},
- "R\u00e9szesed\u00e9sek,\u00e9.pap\u00edrok,bankb. \u00e9rt\u00e9kveszt": {},
- "V\u00e1s\u00e1rolt k\u00f6v. kapcs. r\u00e1ford\u00edt\u00e1sok": {},
- "\u00c1tv\u00e1lt\u00e1si, \u00e9rt\u00e9kel\u00e9si \u00e1rfolyamvesztes\u00e9g": {}
- },
- "RENDKIV\u00dcLI R\u00c1FORD\u00cdT\u00c1SOK": {
- "Egy\u00e9b vagyoncs\u00f6kk. rendk\u00edv\u00fcli r\u00e1ford\u00edt\u00e1s": {},
- "Saj\u00e1t \u00fczletr\u00e9sz nyilv\u00e1ntart\u00e1si \u00e9rt\u00e9ke": {},
- "Tartoz\u00e1s\u00e1tv. szerz. szerinti \u00f6sszege": {},
- "T\u00e1rsas\u00e1gban bevitt eszk. nytsz. \u00e9rt\u00e9ke": {}
- },
- "SZEM\u00c9LYI JELLEG\u00fb R\u00c1FORD\u00cdT\u00c1SOK": {
- "B\u00e9rj\u00e1rul\u00e9kok": {},
- "B\u00e9rk\u00f6lts\u00e9g": {},
- "Szem\u00e9lyi jelleg\u00fc egy\u00e9b kifizet\u00e9sek": {}
- },
- "\u00c9RT\u00c9KCS\u00d6KKEN\u00c9SI LE\u00cdR\u00c1S": {}
- },
- "K\u00d6LTS\u00c9GNEMEK": {
- "AKT\u00cdV\u00c1LT SAJ\u00c1T TELJES\u00cdTM\u00c9NYEK \u00c9RT\u00c9KE": {
- "Saj\u00e1t el\u00f5\u00e1ll\u00edt\u00e1si eszk\u00f6z\u00f6k aktiv\u00e1lt \u00e9rt.": {},
- "Saj\u00e1t term. k\u00e9szletek \u00e1llom\u00e1nyv\u00e1ltoz\u00e1sa": {}
- },
- "ANYAGK\u00d6LTS\u00c9G": {
- "Anyagk\u00f6lts\u00e9g megt\u00e9r\u00fcl\u00e9s": {},
- "Egy \u00e9ven bel\u00fcl elhaszn. anyagi eszk\u00f6z\u00f6k": {},
- "Egy\u00e9b anyagk\u00f6lts\u00e9g": {},
- "V\u00e1s\u00e1rolt anyagok k\u00f6lts\u00e9gei": {}
- },
- "B\u00c9RJ\u00c1RUL\u00c9KOK": {
- "Egyszer\u00fbs\u00edtett fogl. k\u00f6zteher": {},
- "Egyszer\u00fbs\u00edtett k\u00f6ztehervisel\u00e9si hj\u00e1r": {},
- "Eg\u00e9szs\u00e9g\u00fcgyi hozz\u00e1j\u00e1rul\u00e1s": {},
- "K\u00f6zteherjegy": {},
- "Munkaad\u00f3i j\u00e1rul\u00e9k": {},
- "Rehabilit\u00e1ci\u00f3s hozz\u00e1j\u00e1rul\u00e1s": {},
- "Szakk\u00e9pz\u00e9si hozz\u00e1j\u00e1rul\u00e1s": {},
- "T\u00e1rsadalombiztos\u00edt\u00e1si j\u00e1rul\u00e9k": {}
- },
- "B\u00c9RK\u00d6LTS\u00c9G": {
- "Egyszer\u00fbs\u00edtett fogl. b\u00e9rk\u00f6lts\u00e9ge": {},
- "Megb\u00edz\u00e1si d\u00edjak b\u00e9rk\u00f6lts\u00e9g terh\u00e9re": {},
- "Munkav\u00e1llal\u00f3k munkab\u00e9r k\u00f6lts\u00e9ge": {},
- "Tagok szem\u00e9lyes k\u00f6zr. ellen\u00e9rt\u00e9ke": {}
- },
- "EGY\u00c9B SZOLG\u00c1LTAT\u00c1SOK K\u00d6LTS\u00c9GEI": {
- "Biztos\u00edt\u00e1si d\u00edjak": {},
- "Hat\u00f3s\u00e1gi igazgat\u00e1si d\u00edjak (illet\u00e9kek)": {},
- "P\u00e9nz\u00fcgyi szolg-i d\u00edjak, bankk\u00f6lts\u00e9gek": {}
- },
- "IG\u00c9NYBE VETT SZOLG\u00c1LTAT\u00c1SOK K\u00d6LTS\u00c9GEI": {
- "B\u00e9rleti d\u00edjak": {},
- "Egy\u00e9b ig\u00e9nybevett szolg\u00e1ltat\u00e1sok ktg-ei": {},
- "Hirdet\u00e9s, rekl\u00e1m-propaganda k\u00f6lts\u00e9g": {},
- "Jav\u00edt\u00e1si, karbantart\u00e1si k\u00f6lts\u00e9gek": {},
- "Oktat\u00e1si, tov\u00e1bbk\u00e9pz\u00e9si k\u00f6lts\u00e9gek": {},
- "Postai, t\u00e1vk\u00f6zl\u00e9si k\u00f6lts\u00e9gek": {},
- "Szakk\u00f6nyv, foly\u00f3irat, napilap beszerz\u00e9s": {},
- "Sz\u00e1ll\u00edt\u00e1si, rakod\u00e1si k\u00f6lts\u00e9g": {},
- "Utaz\u00e1si- \u00e9s kik\u00fcldet\u00e9si k\u00f6lts\u00e9gek": {}
- },
- "K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA": {
- "Anyagk\u00f6lts\u00e9g \u00e1tvezet\u00e9si szla": {},
- "B\u00e9rj\u00e1rul\u00e9kok \u00e1tvezet\u00e9si szla": {},
- "B\u00e9rk\u00f6lts\u00e9g \u00e1tvezet\u00e9si szla": {},
- "Egy\u00e9b szolg\u00e1ltat\u00e1sok \u00e1tvezet\u00e9si szla": {},
- "Ig\u00e9nybevett szolg. \u00e1tvezet\u00e9si szla": {},
- "Szem\u00e9lyi jell. kif. \u00e1tvezet\u00e9si szla": {},
- "\u00c9rt\u00e9kcs\u00f6kken\u00e9si le\u00edr\u00e1s \u00e1tvez. szla": {}
- },
- "SZEM\u00c9LYI JELLEG\u00fb EGY\u00c9B KIFIZET\u00c9SEK": {
- "Egy\u00e9b szem\u00e9lyi jelleg\u00fb kifizet\u00e9sek": {},
- "Foglalkoztat\u00f3t terhel\u00f5 t\u00e1pp\u00e9nz hj\u00e1rul\u00e1s": {},
- "J\u00f3l\u00e9ti \u00e9s kultur\u00e1lis k\u00f6lts\u00e9gek": {},
- "Kifizet\u00f5t terhel\u00f5 szem\u00e9lyi j\u00f6vedelemad\u00f3": {},
- "Mag\u00e1nnyugd\u00edjp\u00e9nzt\u00e1ri tagd\u00edjak, hozz\u00e1j\u00e1r.": {},
- "Szem\u00e9lyi jelleg\u00fb kifizet\u00e9sek": {},
- "Term\u00e9szetbeni juttat\u00e1sok": {}
- },
- "\u00c9RT\u00c9KCS\u00d6KKEN\u00c9SI LE\u00cdR\u00c1S": {
- "Terv szerinti egy\u00f6sszeg\u00fb (kis\u00e9rt\u00e9k\u00fbek)": {},
- "Terv szerinti \u00e9rt\u00e9kcs\u00f6kken\u00e9s line\u00e1ris": {}
- }
- },
- "root_type": ""
- },
- "M\u00e9rleg sz\u00e1ml\u00e1k": {
- "BEFEKTETETT ESZK\u00d6Z\u00d6K": {
- "BEFEKTETETT P\u00fc.I ESZK\u00d6Z\u00d6K R\u00c9SZESED\u00c9SEK": {
- "Egy\u00e9b tart\u00f3s r\u00e9szesed\u00e9s": {},
- "R\u00e9szesed\u00e9sek \u00e9rt\u00e9khelyesb\u00edt\u00e9se": {},
- "R\u00e9szesed\u00e9sek \u00e9rt\u00e9kveszt\u00e9se, vissza\u00edr\u00e1sa": {},
- "Tart\u00f3s r\u00e9szesed\u00e9s kapcs. v\u00e1llalkoz\u00e1sban": {}
- },
- "BERUH\u00c1Z\u00c1SOK, FEL\u00faJ\u00cdT\u00c1SOK": {
- "Befejezetlen beruh\u00e1z\u00e1sok": {},
- "Beruh\u00e1z\u00e1sok terven fel\u00fcli \u00e9rt\u00e9kcs\u00f6kk.": {},
- "Fel\u00faj\u00edt\u00e1sok": {}
- },
- "EGY\u00c9B BERENDEZ\u00c9SEK, FELSZ., J\u00c1RM\u00dcVEK": {
- "Egy\u00e9b g\u00e9pek,felsz,j\u00e1rm. \u00e9rt\u00e9khelyesb\u00edt\u00e9s": {},
- "Egy\u00e9b j\u00e1rm\u00fbvek": {},
- "Irodai, igazgat\u00e1si berendez\u00e9sek": {},
- "\u00dczemi berendez\u00e9sek, g\u00e9pek,felszerel\u00e9sek": {},
- "\u00dczemk\u00f6r\u00f6n kiv\u00fcli berendez\u00e9sek, felsz.": {}
- },
- "HITELVISZONYT MEGTESTES\u00cdT\u00d6 \u00c9RT\u00c9KPAP\u00cdROK": {
- "Egy\u00e9b v\u00e1llalkoz\u00e1sok \u00e9rt\u00e9kpap\u00edrjai": {},
- "Kapcsolt v\u00e1llalkoz\u00e1sok \u00e9rt\u00e9kpap\u00edrjai": {},
- "Tart\u00f3s diszkont \u00e9rt\u00e9kpap\u00edrok": {},
- "\u00c1llamk\u00f6tv\u00e9nyek": {},
- "\u00c9rt\u00e9kpap\u00edrok \u00e9rt\u00e9kveszt\u00e9se, vissza\u00edr\u00e1sa": {}
- },
- "IMMATERI\u00c1LIS JAVAK": {
- "Alap\u00edt\u00e1s-\u00e1tszervez\u00e9s akt\u00edv\u00e1lt \u00e9rt\u00e9ke": {},
- "Immateri\u00e1lis javak \u00e9rt\u00e9khelyesb\u00edt\u00e9se": {},
- "K\u00eds\u00e9rleti fejleszt\u00e9s akt\u00edv\u00e1lt \u00e9rt\u00e9ke": {},
- "Szellemi term\u00e9kek": {},
- "Vagyoni \u00e9rt\u00e9k\u00fb jogok": {},
- "\u00dczleti vagy c\u00e9g\u00e9rt\u00e9k": {}
- },
- "INGATLANOK, KAPCS. VAGYONI \u00c9RT. JOGOK": {
- "Egy\u00e9b \u00e9p\u00edtm\u00e9nyek": {},
- "F\u00f6ldter\u00fclet": {},
- "Ingatlanhoz kapcs. vagyoni \u00e9rt. jogok": {},
- "Ingatlanok \u00e9rt\u00e9khelyesb\u00edt\u00e9se": {},
- "Telek, telkes\u00edt\u00e9s": {},
- "\u00c9p\u00fcletek,\u00e9p\u00fcletr\u00e9szek,tulajdoni h\u00e1nyadok": {},
- "\u00dczemk\u00f6r\u00f6n kiv\u00fcli ingatlanok, \u00e9p\u00fcletek": {}
- },
- "M\u00dcSZAKI BERENDEZ\u00c9SEK, G\u00c9PEK, J\u00c1RM\u00dcVEK": {
- "M\u00fcszaki g\u00e9pek,felsz,j\u00e1rm. \u00e9rt\u00e9khelyesb.": {},
- "Termel\u00e9sben r\u00e9sztvev\u00f5 j\u00e1rm\u00fbvek": {},
- "Termel\u00f5 g\u00e9pek, berendez\u00e9sek, gy\u00e1rt\u00f3eszk.": {}
- },
- "TART\u00d3SAN ADOTT K\u00d6LCS\u00d6N\u00d6K": {
- "Egy\u00e9b tart\u00f3s bankbet\u00e9tek": {},
- "Egy\u00e9b tart\u00f3san adott k\u00f6lcs\u00f6n\u00f6k": {},
- "P\u00e9nz\u00fcgyi l\u00edzing miatti tart\u00f3s k\u00f6vetel\u00e9s": {},
- "Tart\u00f3s bankbet\u00e9tek egy\u00e9b r\u00e9sz. v\u00e1ll.-ban": {},
- "Tart\u00f3s bankbet\u00e9tek kapcs. v\u00e1ll.-ban": {},
- "Tart\u00f3san adott k\u00f6lcs\u00f6n egy\u00e9b r\u00e9sz.v\u00e1ll.": {},
- "Tart\u00f3san adott k\u00f6lcs\u00f6n\u00f6k kapcs. v\u00e1ll.": {},
- "Tart\u00f3san adott k\u00f6lcs\u00f6n\u00f6k \u00e9rt\u00e9kveszt\u00e9se": {}
- },
- "TENY\u00c9SZ\u00c1LLATOK": {
- "Teny\u00e9sz\u00e1llatok": {}
- }
- },
- "FORR\u00c1SOK (PASSZ\u00cdV\u00c1K)": {
- "C\u00c9LTARTAL\u00c9KOK": {
- "C\u00e9ltartal\u00e9k v\u00e1rhat\u00f3 k\u00f6telezetts\u00e9gre": {}
- },
- "EGY\u00c9B R\u00d6VID LEJ\u00c1RAT\u00fa K\u00d6TELEZETTS\u00c9GEK": {
- "El\u00f5zetesen felsz\u00e1m\u00edtott \u00e1lt.forgalmi ad\u00f3": {},
- "Fizetend\u00f5 \u00e1ltal\u00e1nos forgalmi ad\u00f3": {},
- "K\u00f6lts\u00e9gvet\u00e9si befizet\u00e9si k\u00f6t.teljes\u00edt\u00e9se": {},
- "K\u00f6lts\u00e9gvet\u00e9si befizet\u00e9si k\u00f6telezetts\u00e9gek": {},
- "Szem\u00e9lyi j\u00f6vedelemad\u00f3 elsz\u00e1mol\u00e1sa": {},
- "T\u00e1rsas\u00e1gi ad\u00f3 \u00e9s osztal\u00e9kad\u00f3 elsz\u00e1mol\u00e1s": {},
- "V\u00e1m- \u00e9s P\u00e9nz\u00fcgy\u00f5rs\u00e9g elsz\u00e1mol\u00e1si sz\u00e1mla": {},
- "\u00c1fa p\u00e9nz\u00fcgyi elsz\u00e1mol\u00e1si sz\u00e1mla": {},
- "\u00d6nkorm\u00e1nyzati ad\u00f3k elsz\u00e1mol\u00e1si sz\u00e1mla": {}
- },
- "HOSSZ\u00da LEJ\u00c1RAT\u00da K\u00d6TELEZETTS\u00c9GEK": {
- "Beruh\u00e1z\u00e1si \u00e9s fejleszt\u00e9si hitelek": {},
- "Egy\u00e9b hossz\u00fa lej. k\u00f6telezetts\u00e9gek": {},
- "Egy\u00e9b hossz\u00fa lej\u00e1rat\u00fa hitelek": {},
- "Hossz\u00fa lej\u00e1ratra kapott k\u00f6lcs\u00f6n\u00f6k": {},
- "P\u00e9nz\u00fcgyi l\u00edzinggel kapcsolatos k\u00f6telez.": {},
- "Tartoz\u00e1sok k\u00f6tv\u00e9nykibocs\u00e1t\u00e1sb\u00f3l": {},
- "Tart\u00f3s k\u00f6t. egy\u00e9b r\u00e9sz. v\u00e1ll. szemben": {},
- "Tart\u00f3s k\u00f6t. kapcs. v\u00e1llalkoz\u00e1ssal sz.": {},
- "\u00c1tv\u00e1ltoztathat\u00f3 k\u00f6tv\u00e9nyek": {}
- },
- "H\u00c1TRASOROLT K\u00d6TELEZETTS\u00c9GEK": {
- "H\u00e1trasorolt k\u00f6telezetts\u00e9g": {}
- },
- "PASSZ\u00cdV ID\u00d6BELI ELHAT\u00c1ROL\u00c1S": {
- "Bev\u00e9telek passz\u00edv id\u00f5beli elhat\u00e1rol\u00e1sa": {},
- "Halasztott bev\u00e9telek": {},
- "K\u00f6lts\u00e9gek,r\u00e1ford. passz\u00edv id\u00f5beli elhat.": {}
- },
- "R\u00d6VID LEJ\u00c1RAT\u00fa K\u00d6TELEZETTS\u00c9GEK": {
- "R\u00f6vid lej\u00e1rat\u00fa hitelek": {},
- "R\u00f6vid lej\u00e1rat\u00fa k\u00f6lcs\u00f6n\u00f6k": {},
- "Sz\u00e1ll\u00edt\u00f3k": {
- "Belf\u00f6ldi sz\u00e1ll\u00edt\u00f3k": {
- "account_type": "Payable"
- },
- "K\u00fclf\u00f6ldi sz\u00e1ll\u00edt\u00f3k": {
- "account_type": "Payable"
- }
- },
- "Vev\u00f5kt\u00f5l kapott el\u00f5legek": {}
- },
- "SAJ\u00c1T T\u00d6KE": {
- "Eredm\u00e9nytartal\u00e9k": {},
- "Jegyzett t\u00f5ke": {},
- "Lek\u00f6t\u00f6tt tartal\u00e9k": {},
- "M\u00e9rleg szerinti eredm\u00e9ny": {},
- "T\u00f5ketartal\u00e9k": {},
- "\u00c9rt\u00e9kel\u00e9si tartal\u00e9k": {}
- },
- "\u00c9VI M\u00c9RLEG SZ\u00c1ML\u00c1K": {
- "Nyit\u00f3m\u00e9rleg sz\u00e1mla": {}
- }
- },
- "K\u00c9SZLETEK": {
- "ANYAGOK": {
- "Seg\u00e9danyagok": {}
- },
- "BEFEJEZETLEN TERMEL\u00c9S \u00c9S F\u00c9LK\u00c9SZTERM\u00c9KEK": {
- "Befejezetlen termel\u00e9s": {}
- },
- "BET\u00c9TD\u00cdJAS G\u00d6NGY\u00d6LEGEK": {
- "Bet\u00e9td\u00edjas g\u00f6ngy\u00f6legek": {}
- },
- "K\u00c9SZTERM\u00c9KEK": {
- "K\u00e9szterm\u00e9kek": {}
- },
- "K\u00d6ZVET\u00cdTETT SZOLG\u00c1LTAT\u00c1SOK": {
- "K\u00f6zvet\u00edtett szolg\u00e1ltat\u00e1sok": {}
- },
- "\u00c1RUK": {
- "\u00c1ruk beszerz\u00e9si \u00e1ron": {}
- }
- },
- "K\u00d6VETEL\u00c9SEK,P\u00c9NZ\u00dcGYI ESZK,AKT\u00cdV ID\u00d6B.ELH": {
- "ADOTT EL\u00d6LEGEK": {
- "Adott el\u00f5legek": {}
- },
- "AKT\u00cdV ID\u00d6BELI ELHAT\u00c1ROL\u00c1S": {
- "Akt\u00edv id\u00f5beli elhat\u00e1rol\u00e1sa": {}
- },
- "EGY\u00c9B K\u00d6VETEL\u00c9SEK": {
- "K\u00fcl\u00f6nf\u00e9le egy\u00e9b k\u00f6vetel\u00e9sek": {},
- "Munkav\u00e1llal\u00f3kkal szembeni k\u00f6vetel\u00e9s": {}
- },
- "K\u00d6VETEL\u00c9SEK \u00c1RUSZ\u00c1LL.- SZOLG\u00c1LTAT\u00c1SB\u00d3L": {
- "Belf\u00f6ldi k\u00f6vetel\u00e9sek": {
- "account_type": "Receivable"
- },
- "K\u00fclf\u00f6ldi k\u00f6vetel\u00e9sek": {
- "account_type": "Receivable"
- }
- },
- "P\u00c9NZESZK\u00d6Z\u00d6K": {
- "Deviza bet\u00e9tsz\u00e1mla": {
- "account_type": "Bank"
- },
- "Elk\u00fcl\u00f6n\u00edtett bet\u00e9tsz\u00e1ml\u00e1k": {
- "account_type": "Bank"
- },
- "Elsz\u00e1mol\u00e1si bet\u00e9tsz\u00e1mla": {
- "Banksz\u00e1mla": {
- "account_type": "Bank"
- }
- },
- "P\u00e9nzhelyettes\u00edt\u00f5 eszk. (utalv\u00e1ny, jegy)": {
- "account_type": "Bank"
- },
- "P\u00e9nzt\u00e1rak": {
- "P\u00e9nzt\u00e1r": {
- "account_type": "Cash"
- }
- },
- "Valuta p\u00e9nzt\u00e1r": {
- "account_type": "Cash"
- },
- "\u00c1tvezet\u00e9si sz\u00e1mla": {
- "account_type": "Bank"
- }
- },
- "\u00c9RT\u00c9KPAP\u00cdROK": {
- "Egy\u00e9b r\u00e9szesed\u00e9s": {},
- "Forgat\u00e1si c\u00e9l\u00fa hitelv. m. \u00e9rt\u00e9kpap\u00edrok": {},
- "R\u00e9szesed\u00e9s kapcsolt v\u00e1llalkoz\u00e1sban": {},
- "Saj\u00e1t r\u00e9szv\u00e9nyek, saj\u00e1t \u00fczletr\u00e9szek": {}
- }
- },
- "root_type": ""
- }
- }
-}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/nl_l10nnl_chart_template.json b/erpnext/accounts/doctype/account/chart_of_accounts/unverified/nl_l10nnl_chart_template.json
deleted file mode 100644
index 8009a10..0000000
--- a/erpnext/accounts/doctype/account/chart_of_accounts/unverified/nl_l10nnl_chart_template.json
+++ /dev/null
@@ -1,716 +0,0 @@
-{
- "country_code": "nl",
- "name": "Nederlands - Grootboekschema",
- "tree": {
- "FABRIKAGEREKENINGEN": {
- "root_type": ""
- },
- "FINANCIELE REKENINGEN, KORTLOPENDE VORDERINGEN EN SCHULDEN": {
- "KORTLOPENDE SCHULDEN": {
- "Accountantskosten": {},
- "Af te dragen Btw-verlegd": {
- "account_type": "Tax"
- },
- "Afdracht loonheffing": {},
- "Btw af te dragen hoog": {
- "account_type": "Tax"
- },
- "Btw af te dragen laag": {
- "account_type": "Tax"
- },
- "Btw af te dragen overig": {
- "account_type": "Tax"
- },
- "Btw oude jaren": {
- "account_type": "Tax"
- },
- "Btw te vorderen hoog": {
- "account_type": "Tax"
- },
- "Btw te vorderen laag": {
- "account_type": "Tax"
- },
- "Btw te vorderen overig": {
- "account_type": "Tax"
- },
- "Btw-afdracht": {
- "account_type": "Tax"
- },
- "Crediteuren": {
- "account_type": "Payable"
- },
- "Dividend": {},
- "Dividendbelasting": {},
- "Energiekosten": {},
- "Investeringsaftrek": {},
- "Loonheffing": {},
- "Overige te betalen posten": {},
- "Pensioenpremies": {},
- "Premie WIR": {},
- "Rekening-courant inkoopvereniging": {},
- "Rente": {},
- "Sociale lasten": {},
- "Tanti\u00e8mes": {},
- "Te vorderen Btw-verlegd": {
- "account_type": "Tax"
- },
- "Telefoon/telefax": {},
- "Termijnen onderh. werk": {},
- "Vakantiedagen": {},
- "Vakantiegeld": {},
- "Vakantiezegels": {},
- "Vennootschapsbelasting": {},
- "Vooruit ontvangen bedr.": {}
- },
- "LIQUIDE MIDDELEN": {
- "ABN-AMRO bank": {
- "account_type": "Cash"
- },
- "BIZNER bank": {
- "account_type": "Cash"
- },
- "Bankbetaalkaarten": {},
- "Effecten": {},
- "Girobetaalkaarten": {},
- "Kas": {
- "account_type": "Cash"
- },
- "Kas valuta": {
- "account_type": "Cash"
- },
- "Kleine kas": {
- "account_type": "Cash"
- },
- "Kruisposten": {},
- "Postbank": {
- "account_type": "Cash"
- },
- "RABO bank": {
- "account_type": "Cash"
- }
- },
- "VORDERINGEN": {
- "Debiteuren": {
- "account_type": "Receivable"
- },
- "Dubieuze debiteuren": {},
- "Overige vorderingen": {},
- "Rekening-courant directie": {},
- "Te ontvangen ziekengeld": {},
- "Voorschotten personeel": {},
- "Vooruitbetaalde kosten": {},
- "Voorziening dubieuze debiteuren": {}
- },
- "root_type": ""
- },
- "INDIRECTE KOSTEN": {
- "root_type": ""
- },
- "KOSTENREKENINGEN": {
- "AFSCHRIJVINGEN": {
- "Aanhangwagens": {},
- "Aankoopkosten": {},
- "Aanloopkosten": {},
- "Auteursrechten": {},
- "Bedrijfsgebouwen": {},
- "Bedrijfsinventaris": {},
- "Drankvergunningen": {},
- "Fabrieksinventaris": {},
- "Gebouwen": {},
- "Gereedschappen": {},
- "Goodwill": {},
- "Grondverbetering": {},
- "Heftrucks": {},
- "Kantine-inventaris": {},
- "Kantoorinventaris": {},
- "Kantoormachines": {},
- "Licenties": {},
- "Machines": {},
- "Magazijninventaris": {},
- "Octrooien": {},
- "Ontwikkelingskosten": {},
- "Pachtersinvestering": {},
- "Parkeerplaats": {},
- "Personenauto's": {},
- "Rijwielen en bromfietsen": {},
- "Tonnagevergunningen": {},
- "Verbouwingen": {},
- "Vergunningen": {},
- "Voorraadverschillen": {},
- "Vrachtauto's": {},
- "Winkels": {},
- "Woon-winkelhuis": {}
- },
- "ALGEMENE KOSTEN": {
- "Accountantskosten": {},
- "Advieskosten": {},
- "Assuranties": {},
- "Bankkosten": {},
- "Juridische kosten": {},
- "Overige algemene kosten": {},
- "Toev. Ass. eigen risico": {}
- },
- "BEDRIJFSKOSTEN": {
- "Assuranties": {},
- "Energie (krachtstroom)": {},
- "Gereedschappen": {},
- "Hulpmaterialen": {},
- "Huur inventaris": {},
- "Huur machines": {},
- "Leasing invent.operational": {},
- "Leasing mach. operational": {},
- "Onderhoud inventaris": {},
- "Onderhoud machines": {},
- "Ophalen/vervoer afval": {},
- "Overige bedrijfskosten": {}
- },
- "FINANCIERINGSKOSTEN": {
- "Overige rentebaten": {},
- "Overige rentelasten": {},
- "Rente bankkrediet": {},
- "Rente huurkoopcontracten": {},
- "Rente hypotheek": {},
- "Rente leasecontracten": {},
- "Rente lening o/g": {},
- "Rente lening u/g": {}
- },
- "HUISVESTINGSKOSTEN": {
- "Assurantie onroerend goed": {},
- "Belastingen onr. Goed": {},
- "Energiekosten": {},
- "Groot onderhoud onr. Goed": {},
- "Huur": {},
- "Huurwaarde woongedeelte": {},
- "Onderhoud onroerend goed": {},
- "Ontvangen huren": {},
- "Overige huisvestingskosten": {},
- "Pacht": {},
- "Schoonmaakkosten": {},
- "Toevoeging egalisatieres. Groot onderhoud": {}
- },
- "KANTOORKOSTEN": {
- "Administratiekosten": {},
- "Contributies/abonnementen": {},
- "Huur kantoorapparatuur": {},
- "Internetaansluiting": {},
- "Kantoorbenodigdh./drukw.": {},
- "Onderhoud kantoorinvent.": {},
- "Overige kantoorkosten": {},
- "Porti": {},
- "Telefoon/telefax": {}
- },
- "OVERIGE BATEN EN LASTEN": {
- "Betaalde schadevergoed.": {},
- "Boekverlies vaste activa": {},
- "Boekwinst van vaste activa": {},
- "K.O. regeling OB": {},
- "Kasverschillen": {},
- "Kosten loonbelasting": {},
- "Kosten omzetbelasting": {},
- "Nadelige koersverschillen": {},
- "Naheffing bedrijfsver.": {},
- "Ontvangen schadevergoed.": {},
- "Overige baten": {},
- "Overige lasten": {},
- "Voordelige koersverschil.": {}
- },
- "PERSONEELSKOSTEN": {
- "Autokostenvergoeding": {},
- "Bedrijfskleding": {},
- "Belastingvrije uitkeringen": {},
- "Bijzondere beloningen": {},
- "Congressen, seminars en symposia": {},
- "Gereedschapsgeld": {},
- "Geschenken personeel": {},
- "Gratificaties": {},
- "Inhouding pensioenpremies": {},
- "Inhouding sociale lasten": {},
- "Kantinekosten": {},
- "Lonen en salarissen": {},
- "Loonwerk": {},
- "Managementvergoedingen": {},
- "Opleidingskosten": {},
- "Oprenting stamrechtverpl.": {},
- "Overhevelingstoeslag": {},
- "Overige kostenverg.": {},
- "Overige personeelskosten": {},
- "Overige uitkeringen": {},
- "Pensioenpremies": {},
- "Provisie": {},
- "Reiskosten": {},
- "Rijwielvergoeding": {},
- "Sociale lasten": {},
- "Tanti\u00e8mes": {},
- "Thuiswerkers": {},
- "Toev. Backservice pens.verpl.": {},
- "Toevoeging pensioenverpl.": {},
- "Uitkering ziekengeld": {},
- "Uitzendkrachten": {},
- "Vakantiebonnen": {},
- "Vakantiegeld": {},
- "Vergoeding studiekosten": {},
- "Wervingskosten personeel": {}
- },
- "VERKOOPKOSTEN": {
- "Advertenties": {},
- "Afschrijving dubieuze deb.": {},
- "Beurskosten": {},
- "Etalagekosten": {},
- "Exportkosten": {},
- "Kascorrecties": {},
- "Overige verkoopkosten": {},
- "Provisie": {},
- "Reclame": {},
- "Reis en verblijfkosten": {},
- "Relatiegeschenken": {},
- "Representatiekosten": {},
- "Uitgaande vrachten": {},
- "Veilingkosten": {},
- "Verpakkingsmateriaal": {},
- "Websitekosten": {}
- },
- "VERVOERSKOSTEN": {
- "Assuranties auto's": {},
- "Brandstoffen": {},
- "Leasing auto's": {},
- "Onderhoud personenauto's": {},
- "Onderhoud vrachtauto's": {},
- "Overige vervoerskosten": {},
- "Priv\u00e9-gebruik auto's": {},
- "Wegenbelasting": {}
- },
- "root_type": ""
- },
- "OVERIGE RESULTATEN": {
- "Memoriaal": {
- "account_type": "Cash"
- },
- "Opbrengsten deelnemingen": {},
- "Reorganisatiekosten": {},
- "Verlies verkoop deelnem.": {},
- "Voorz. Verlies deelnem.": {},
- "Vpb bijzonder resultaat": {},
- "Vpb normaal resultaat": {},
- "Winst": {},
- "Winst bij verkoop deelnem.": {},
- "root_type": ""
- },
- "TUSSENREKENINGEN": {
- "Betaalwijze cadeaubonnen": {
- "account_type": "Cash"
- },
- "Betaalwijze chipknip": {
- "account_type": "Cash"
- },
- "Betaalwijze contant": {
- "account_type": "Cash"
- },
- "Betaalwijze pin": {
- "account_type": "Cash"
- },
- "Inkopen Nederland hoog": {
- "account_type": "Cash"
- },
- "Inkopen Nederland laag": {
- "account_type": "Cash"
- },
- "Inkopen Nederland onbelast": {
- "account_type": "Cash"
- },
- "Inkopen Nederland overig": {
- "account_type": "Cash"
- },
- "Inkopen Nederland verlegd": {
- "account_type": "Cash"
- },
- "Inkopen binnen EU hoog": {
- "account_type": "Cash"
- },
- "Inkopen binnen EU laag": {
- "account_type": "Cash"
- },
- "Inkopen binnen EU overig": {
- "account_type": "Cash"
- },
- "Inkopen buiten EU hoog": {
- "account_type": "Cash"
- },
- "Inkopen buiten EU laag": {
- "account_type": "Cash"
- },
- "Inkopen buiten EU overig": {
- "account_type": "Cash"
- },
- "Kassa 1": {
- "account_type": "Cash"
- },
- "Kassa 2": {
- "account_type": "Cash"
- },
- "Netto lonen": {
- "account_type": "Cash"
- },
- "Tegenrekening Inkopen": {
- "account_type": "Cash"
- },
- "Tussenrek. autom. betalingen": {
- "account_type": "Cash"
- },
- "Tussenrek. autom. loonbetalingen": {
- "account_type": "Cash"
- },
- "Tussenrek. cadeaubonbetalingen": {
- "account_type": "Cash"
- },
- "Tussenrekening balans": {
- "account_type": "Cash"
- },
- "Tussenrekening chipknip": {
- "account_type": "Cash"
- },
- "Tussenrekening correcties": {
- "account_type": "Cash"
- },
- "Tussenrekening pin": {
- "account_type": "Cash"
- },
- "Vraagposten": {
- "account_type": "Cash"
- },
- "root_type": ""
- },
- "VASTE ACTIVA, EIGEN VERMOGEN, LANGLOPEND VREEMD VERMOGEN EN VOORZIENINGEN": {
- "EIGEN VERMOGEN": {
- "Aandelenkapitaal": {
- "account_type": "Equity"
- },
- "Assuranties": {
- "account_type": "Equity"
- },
- "Buitengewone lasten": {
- "account_type": "Equity"
- },
- "Giften": {
- "account_type": "Equity"
- },
- "Huishoudgeld": {
- "account_type": "Equity"
- },
- "Inkomstenbelasting": {
- "account_type": "Equity"
- },
- "Kapitaal": {
- "account_type": "Equity"
- },
- "Overige persoonlijke verplichtingen": {
- "account_type": "Equity"
- },
- "Overige priv\u00e9-uitgaven": {
- "account_type": "Equity"
- },
- "Overige reserves": {
- "account_type": "Equity"
- },
- "Premie lijfrenteverzekeringen": {
- "account_type": "Equity"
- },
- "Premie volksverzekeringen": {
- "account_type": "Equity"
- },
- "Priv\u00e9-gebruik": {
- "account_type": "Equity"
- },
- "Priv\u00e9-opnamen/stortingen": {
- "account_type": "Equity"
- },
- "Vermogensbelasting": {
- "account_type": "Equity"
- },
- "WAO en ziekengeldverzekeringen": {
- "account_type": "Equity"
- },
- "Wettelijke reserves": {
- "account_type": "Equity"
- }
- },
- "FINANCIELE VASTE ACTIVA EN LANGLOPENDE VORDERINGEN": {
- "FINANCIELE VASTE ACTIVA": {
- "Aandeel inkoopcombinatie": {},
- "Meerderheidsdeelnemingen": {},
- "Minderheidsdeelnemingen": {}
- },
- "LANGLOPENDE VORDERINGEN": {
- "Financieringskosten": {},
- "Financieringskosten huurkoop": {},
- "Hypotheken u/g 1": {},
- "Hypotheken u/g 2": {},
- "Hypotheken u/g 3": {},
- "Leningen u/g 1": {},
- "Leningen u/g 2": {},
- "Leningen u/g 3": {},
- "Leningen u/g 4": {},
- "Leningen u/g 5": {},
- "Vorderingen op deelnemingen": {},
- "Waarborgsommen": {}
- }
- },
- "IMMATERIELE ACTIVA": {
- "Aanschafwaarde Aanloopkosten": {},
- "Aanschafwaarde Auteursrechten": {},
- "Aanschafwaarde Drankvergunningen": {},
- "Aanschafwaarde Goodwill": {},
- "Aanschafwaarde Octrooien": {},
- "Aanschafwaarde Ontwikkelingskosten": {},
- "Aanschafwaarde Tonnagevergunningen": {},
- "Aanschafwaarde Vergunningen": {},
- "Afschrijving Aanloopkosten": {},
- "Afschrijving Auteursrechten": {},
- "Afschrijving Drankvergunningen": {},
- "Afschrijving Goodwill": {},
- "Afschrijving Licenties": {},
- "Afschrijving Octrooien": {},
- "Afschrijving Ontwikkelingskosten": {},
- "Afschrijving Tonnagevergunningen": {},
- "Afschrijving Vergunningen": {}
- },
- "LANGLOPENDE SCHULDEN EN AFLOSSINGEN": {
- "AFLOSSINGEN": {
- "Huurkoopverplichtingen": {},
- "Hypotheek o/g 1": {},
- "Hypotheek o/g 2": {},
- "Hypotheek o/g 3": {},
- "Hypotheek o/g 4": {},
- "Hypotheek o/g 5": {},
- "Lease-verplichtingen": {}
- },
- "LANGLOPENDE SCHULDEN": {
- "Huurkoopverplichtingen": {},
- "Hypotheken o/g 1": {},
- "Hypotheken o/g 2": {},
- "Hypotheken o/g 3": {},
- "Hypotheken o/g 4": {},
- "Hypotheken o/g 5": {},
- "Lease-verplichtingen": {},
- "Leningen o/g 1": {},
- "Leningen o/g 2": {},
- "Leningen o/g 3": {},
- "Leningen o/g 4": {},
- "Leningen o/g 5": {},
- "Rekening-courant directie": {}
- }
- },
- "MACHINES EN INVENTARIS": {
- "INVENTARIS": {
- "Aanschafwaarde Bedrijfsinventaris": {},
- "Aanschafwaarde Fabrieksinventaris": {},
- "Aanschafwaarde Gereedschappen": {},
- "Aanschafwaarde Kantine-inventaris": {},
- "Aanschafwaarde Kantoorinventaris": {},
- "Aanschafwaarde Kantoormachines": {},
- "Aanschafwaarde Magazijninventaris": {},
- "Afschrijving Bedrijfsinventaris": {},
- "Afschrijving Fabrieksinventaris": {},
- "Afschrijving Gereedschappen": {},
- "Afschrijving Kantine-inventaris": {},
- "Afschrijving Kantoorinventaris": {},
- "Afschrijving Kantoormachines": {},
- "Afschrijving Magazijninventaris": {}
- },
- "MACHINES": {
- "Aanschafwaarde Machines 1": {},
- "Aanschafwaarde Machines 2": {},
- "Aanschafwaarde Machines 3": {},
- "Aanschafwaarde Machines 4": {},
- "Aanschafwaarde Machines 5": {},
- "Afschrijving Machines 1": {},
- "Afschrijving Machines 2": {},
- "Afschrijving Machines 3": {},
- "Afschrijving Machines 4": {},
- "Afschrijving Machines 5": {}
- }
- },
- "ONROERENDE GOEDEREN": {
- "Aanschafwaarde Aanloopkosten": {},
- "Aanschafwaarde Bedrijfsgebouwen": {},
- "Aanschafwaarde Gebouwen": {},
- "Aanschafwaarde Grondverbetering": {},
- "Aanschafwaarde Landerijen": {},
- "Aanschafwaarde Ondergrond gebouwen": {},
- "Aanschafwaarde Pachtersinvesteringen": {},
- "Aanschafwaarde Parkeerplaats": {},
- "Aanschafwaarde Verbouwingen": {},
- "Aanschafwaarde Winkels": {},
- "Aanschafwaarde Woon-winkelhuis": {},
- "Afschrijving Aanloopkosten": {},
- "Afschrijving Bedrijfsgebouwen": {},
- "Afschrijving Gebouwen": {},
- "Afschrijving Grondverbetering": {},
- "Afschrijving Pachtersinvesteringen": {},
- "Afschrijving Parkeerplaats": {},
- "Afschrijving Verbouwingen": {},
- "Afschrijving Winkels": {},
- "Afschrijving Woon-winkelhuis": {}
- },
- "VERVOERMIDDELEN": {
- "Aanschafwaarde Aanhangwagens": {},
- "Aanschafwaarde Heftrucks": {},
- "Aanschafwaarde Personenauto's": {},
- "Aanschafwaarde Rijwielen en bromfietsen": {},
- "Aanschafwaarde Vrachtauto's": {},
- "Afschrijving Aanhangwagens": {},
- "Afschrijving Heftrucks": {},
- "Afschrijving Personenauto's": {},
- "Afschrijving Rijwielen en bromfietsen": {},
- "Afschrijving Vrachtauto's": {}
- },
- "VOORZIENINGEN": {
- "Assurantie eigen risico": {
- "account_type": "Equity"
- },
- "Backservice pensioenverpl.": {
- "account_type": "Equity"
- },
- "Egalisatierekening WIR": {
- "account_type": "Equity"
- },
- "Egalisatieres. grootonderh.": {
- "account_type": "Equity"
- },
- "Garantieverplichtingen": {
- "account_type": "Equity"
- },
- "Latente belastingverpl.": {
- "account_type": "Equity"
- },
- "Pens.voorz. eigen beheer": {
- "account_type": "Equity"
- },
- "Pensioenverplichtingen": {
- "account_type": "Equity"
- },
- "Stamrechtverplichtingen": {
- "account_type": "Equity"
- },
- "Vervangingsreserve": {
- "account_type": "Equity"
- },
- "Voorziening deelnemingen": {
- "account_type": "Equity"
- }
- },
- "root_type": ""
- },
- "VERKOOPRESULTATEN": {
- "Diensten fabric. 0% niet-EU": {},
- "Diensten fabricage 0% EU": {},
- "Diensten fabricage hoog": {},
- "Diensten fabricage laag": {},
- "Diensten fabricage overig": {},
- "Diensten handel 0% EU": {},
- "Diensten handel 0% niet-EU": {},
- "Diensten handel hoog tarief": {},
- "Diensten handel laag tarief": {},
- "Verkopen Fabric. 0% niet-EU": {},
- "Verkopen Handel 0% niet-EU": {},
- "Verkopen fabric. 0 % EU": {},
- "Verkopen fabricage hoog": {},
- "Verkopen fabricage laag": {},
- "Verkopen fabricage overig": {},
- "Verkopen handel 0% EU": {},
- "Verkopen handel hoog": {},
- "Verkopen handel laag": {},
- "Verkopen handel overig": {},
- "Verleende Kredietbep. fabricage": {},
- "Verleende Kredietbep. handel": {},
- "root_type": ""
- },
- "VOORRAAD GEREED PRODUCT EN ONDERHANDEN WERK": {
- "Betalingskort. crediteuren": {},
- "Garantiekosten": {},
- "Hulpmaterialen": {},
- "Inkomende vrachten": {},
- "Inkoop import buiten EU hoog": {},
- "Inkoop import buiten EU laag": {},
- "Inkoop import buiten EU overig": {},
- "Inkoopbonussen": {},
- "Inkoopkosten": {},
- "Inkoopprovisie": {},
- "Inkopen BTW verlegd": {},
- "Inkopen EU hoog tarief": {},
- "Inkopen EU laag tarief": {},
- "Inkopen EU overig": {},
- "Inkopen hoog": {},
- "Inkopen laag": {},
- "Inkopen nul": {},
- "Inkopen overig": {},
- "Invoerkosten": {},
- "Kosten inkoopvereniging": {},
- "Kostprijs omzet grondstoffen": {},
- "Kostprijs omzet handelsgoederen": {},
- "Onttrekking uitgev.garantie": {},
- "Priv\u00e9-gebruik goederen": {},
- "Tegenrekening inkoop": {},
- "Toev. Voorz. incour. grondst.": {},
- "Toevoeging garantieverpl.": {},
- "Toevoeging voorz. incour. handelsgoed.": {},
- "Uitbesteed werk": {},
- "Voorz. Incourourant grondst.": {},
- "Voorz.incour. handelsgoed.": {},
- "root_type": ""
- },
- "VOORRAAD GRONDSTOFFEN, HULPMATERIALEN EN HANDELSGOEDEREN": {
- "Emballage": {
- "account_type": "Cash"
- },
- "Gereed product 1": {
- "account_type": "Cash"
- },
- "Gereed product 2": {
- "account_type": "Cash"
- },
- "Goederen 1": {
- "account_type": "Cash"
- },
- "Goederen 2": {
- "account_type": "Cash"
- },
- "Goederen in consignatie": {
- "account_type": "Cash"
- },
- "Goederen onderweg": {
- "account_type": "Cash"
- },
- "Grondstoffen 1": {
- "account_type": "Cash"
- },
- "Grondstoffen 2": {
- "account_type": "Cash"
- },
- "Halffabrikaten 1": {
- "account_type": "Cash"
- },
- "Halffabrikaten 2": {
- "account_type": "Cash"
- },
- "Hulpstoffen 1": {
- "account_type": "Cash"
- },
- "Hulpstoffen 2": {
- "account_type": "Cash"
- },
- "Kantoorbenodigdheden": {
- "account_type": "Cash"
- },
- "Onderhanden werk": {
- "account_type": "Cash"
- },
- "Verpakkingsmateriaal": {
- "account_type": "Cash"
- },
- "Zegels": {
- "account_type": "Cash"
- },
- "root_type": ""
- }
- }
-}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/ar_chart_of_accounts.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/ar_chart_of_accounts.json
index 367ea60..057d437 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/ar_chart_of_accounts.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/ar_chart_of_accounts.json
@@ -2,418 +2,839 @@
"country_code": "ar",
"name": "Argentina - Chart of Accounts",
"tree": {
- "1.0.0.00.00 - ACTIVO": {
- "1.1.0.00.00 - ACTIVO CORRIENTE": {
- "1.1.1.00.00 - CAJA Y BANCOS": {
- "1.1.1.01.00 - CAJAS": {
- "1.1.1.01.01 - Caja": {},
- "1.1.1.01.02 - Caja chica": {},
- "1.1.1.01.03 - Caja en Moneda Extranjera": {},
- "1.1.1.01.04 - Valores a depositar": {},
- "1.1.1.01.05 - Tarjetas - Cupones": {},
+ "ACTIVO": {
+ "ACTIVO CORRIENTE": {
+ "CAJA Y BANCOS": {
+ "BANCOS": {
+ "Banco de la Nacio\u0301n Argentina(ejemplo) c/c en": {
+ "account_number": "1.1.1.02.01"
+ },
+ "Banco del exterior": {
+ "account_number": "1.1.1.02.03"
+ },
+ "account_number": "1.1.1.02.00",
+ "account_type": "Bank"
+ },
+ "CAJAS": {
+ "Caja": {
+ "account_number": "1.1.1.01.01"
+ },
+ "Caja chica": {
+ "account_number": "1.1.1.01.02"
+ },
+ "Caja en Moneda Extranjera": {
+ "account_number": "1.1.1.01.03"
+ },
+ "Tarjetas - Cupones": {
+ "account_number": "1.1.1.01.05"
+ },
+ "Valores a depositar": {
+ "account_number": "1.1.1.01.04"
+ },
+ "account_number": "1.1.1.01.00",
"account_type": "Cash"
},
- "1.1.1.02.00 - BANCOS": {
- "1.1.1.02.01 - Banco de la Nacio\u0301n Argentina(ejemplo) c/c en": {},
- "1.1.1.02.03 - Banco del exterior": {},
- "account_type": "Bank"
- }
+ "account_number": "1.1.1.00.00"
},
- "1.1.2.00.00 - INVERSIONES TEMPORARIAS": {
- "1.1.2.01.00 - INVERSIONES EN ACCIONES": {
- "1.1.2.01.01 - Acciones": {
- "account_type": "Receivable"
- }
- },
- "1.1.2.02.00 - DEPO\u0301SITOS A PLAZO FIJO": {
- "1.1.2.02.01 - Depo\u0301sitos a Plazo Fijo en pesos": {
- "account_type": "Receivable"
- },
- "1.1.2.02.02 - Depo\u0301sitos a Plazo Fijo en moneda": {
- "account_type": "Receivable"
- }
- }
- },
- "1.1.3.00.00 - CRE\u0301DITOS POR VENTAS DE SERVICIOS": {
- "1.1.3.01.00 - DEUDORES EN CTA. CTE": {
- "1.1.3.01.01 - Deudores locales": {
- "account_type": "Receivable"
- },
- "1.1.3.01.02 - Deudores del exterior": {
- "account_type": "Receivable"
- },
- "1.1.3.01.03 - Deudores Morosos": {
+ "CRE\u0301DITOS POR VENTAS DE SERVICIOS": {
+ "DEUDORES EN CTA. CTE": {
+ "Deudores Morosos": {
+ "account_number": "1.1.3.01.03",
"account_type": "Chargeable"
},
- "1.1.3.01.04 - Deudores en Gestio\u0301n Judicial": {}
- },
- "1.1.3.02.00 - Documentos a cobrar por Vas. de Servicios": {
- "account_type": "Receivable"
- },
- "1.1.3.03.00 - Previsio\u0301n para deudores incobrables": {}
- },
- "1.1.4.00.00 - OTROS CRE\u0301DITOS CORRIENTES": {
- "1.1.4.01.00 - CRE\u0301DITOS IMPOSITIVOS CORRIENTES": {
- "1.1.4.01.01 - Anticipos Impuesto a las Ganancias": {},
- "1.1.4.01.02 - Anticipos Impuesto a los Ingresos Brutos": {},
- "1.1.4.01.03 - Percepciones y Retenciones Impto. a las Ganancias": {},
- "1.1.4.01.04 - Percepciones y Retenciones Impto. a los": {},
- "1.1.4.01.05 - IVA Cre\u0301dito Fiscal": {},
- "1.1.4.01.06 - IVA Cre\u0301dito Fiscal Exportacio\u0301n": {},
- "1.1.4.01.07 - IVA Saldo a Favor Te\u0301cnico": {},
- "1.1.4.01.08 - IVA Saldo a Favor Te\u0301cnico": {},
- "1.1.4.01.09 - IVA Saldo a Favor de Libre": {},
- "1.1.4.01.10 - Percepciones y Retenciones de IVA": {},
- "1.1.4.01.11 - Cre\u0301ditos por quebrantos impositivos no": {},
- "1.1.4.01.12 - Activos por Impuesto Diferido (Ctes.)": {}
- },
- "1.1.4.02.00 - CRE\u0301DITOS DIVERSOS CORRIENTES": {
- "1.1.4.02.01 - Cuentas Particulares Directores": {},
- "1.1.4.02.02 - Cuentas Particulares Socios/Accionistas": {},
- "1.1.4.02.03 - Anticipos a Proveedores (No cong.": {
+ "Deudores del exterior": {
+ "account_number": "1.1.3.01.02",
"account_type": "Receivable"
},
- "1.1.4.02.04 - Anticipos de Sueldos": {},
- "1.1.4.02.05 - Pre\u0301stamos al personal": {},
- "1.1.4.02.06 - Depo\u0301sitos pendientes de acreditacio\u0301n": {},
- "1.1.4.02.07 - Arrendamiento pagado por adelantado": {}
- }
+ "Deudores en Gestio\u0301n Judicial": {
+ "account_number": "1.1.3.01.04"
+ },
+ "Deudores locales": {
+ "account_number": "1.1.3.01.01",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.1.3.01.00"
+ },
+ "Documentos a cobrar por Vas. de Servicios": {
+ "account_number": "1.1.3.02.00",
+ "account_type": "Receivable"
+ },
+ "Previsio\u0301n para deudores incobrables": {
+ "account_number": "1.1.3.03.00"
+ },
+ "account_number": "1.1.3.00.00"
},
- "1.1.5.00.00 - OTROS ACTIVOS CORRIENTES": {
- "is_group": 1
- },
- "1.1.6.00.00 - INVENTARIOS": {
+ "INVENTARIOS": {
+ "account_number": "1.1.6.00.00",
"account_type": "Stock",
"is_group": 1
- }
+ },
+ "INVERSIONES TEMPORARIAS": {
+ "DEPO\u0301SITOS A PLAZO FIJO": {
+ "Depo\u0301sitos a Plazo Fijo en moneda": {
+ "account_number": "1.1.2.02.02",
+ "account_type": "Receivable"
+ },
+ "Depo\u0301sitos a Plazo Fijo en pesos": {
+ "account_number": "1.1.2.02.01",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.1.2.02.00"
+ },
+ "INVERSIONES EN ACCIONES": {
+ "Acciones": {
+ "account_number": "1.1.2.01.01",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.1.2.01.00"
+ },
+ "account_number": "1.1.2.00.00"
+ },
+ "OTROS ACTIVOS CORRIENTES": {
+ "account_number": "1.1.5.00.00",
+ "is_group": 1
+ },
+ "OTROS CRE\u0301DITOS CORRIENTES": {
+ "CRE\u0301DITOS DIVERSOS CORRIENTES": {
+ "Anticipos a Proveedores (No cong.": {
+ "account_number": "1.1.4.02.03",
+ "account_type": "Receivable"
+ },
+ "Anticipos de Sueldos": {
+ "account_number": "1.1.4.02.04"
+ },
+ "Arrendamiento pagado por adelantado": {
+ "account_number": "1.1.4.02.07"
+ },
+ "Cuentas Particulares Directores": {
+ "account_number": "1.1.4.02.01"
+ },
+ "Cuentas Particulares Socios/Accionistas": {
+ "account_number": "1.1.4.02.02"
+ },
+ "Depo\u0301sitos pendientes de acreditacio\u0301n": {
+ "account_number": "1.1.4.02.06"
+ },
+ "Pre\u0301stamos al personal": {
+ "account_number": "1.1.4.02.05"
+ },
+ "account_number": "1.1.4.02.00"
+ },
+ "CRE\u0301DITOS IMPOSITIVOS CORRIENTES": {
+ "Activos por Impuesto Diferido (Ctes.)": {
+ "account_number": "1.1.4.01.12"
+ },
+ "Anticipos Impuesto a las Ganancias": {
+ "account_number": "1.1.4.01.01"
+ },
+ "Anticipos Impuesto a los Ingresos Brutos": {
+ "account_number": "1.1.4.01.02"
+ },
+ "Cre\u0301ditos por quebrantos impositivos no": {
+ "account_number": "1.1.4.01.11"
+ },
+ "IVA Cre\u0301dito Fiscal": {
+ "account_number": "1.1.4.01.05"
+ },
+ "IVA Cre\u0301dito Fiscal Exportacio\u0301n": {
+ "account_number": "1.1.4.01.06"
+ },
+ "IVA Saldo a Favor Te\u0301cnico": {
+ "account_number": "1.1.4.01.07"
+ },
+ "IVA Saldo a Favor de Libre": {
+ "account_number": "1.1.4.01.09"
+ },
+ "Percepciones y Retenciones Impto. a las Ganancias": {
+ "account_number": "1.1.4.01.03"
+ },
+ "Percepciones y Retenciones Impto. a los": {
+ "account_number": "1.1.4.01.04"
+ },
+ "Percepciones y Retenciones de IVA": {
+ "account_number": "1.1.4.01.10"
+ },
+ "account_number": "1.1.4.01.00"
+ },
+ "account_number": "1.1.4.00.00"
+ },
+ "account_number": "1.1.0.00.00"
},
- "1.2.0.00.00 - ACTIVO NO CORRIENTE": {
- "1.2.1.00.00 - INVERSIONES PERMANENTES": {
- "1.2.1.01.00 - BONOS DE DEUDA": {
- "1.2.1.01.01 - Ti\u0301tulos Deuda Pu\u0301blica (Pesos)": {
+ "ACTIVO NO CORRIENTE": {
+ "ACTIVOS INTANGIBLES": {
+ "MARCAS Y PATENTES": {
+ "Amortizaciones Acumuladas Marcas y": {
+ "account_number": "1.2.3.01.03"
+ },
+ "Marcas y Patentes Actualizaciones": {
+ "account_number": "1.2.3.01.02"
+ },
+ "Marcas y Patentes Valores Originales": {
+ "account_number": "1.2.3.01.01"
+ },
+ "account_number": "1.2.3.01.00"
+ },
+ "account_number": "1.2.3.00.00"
+ },
+ "BIENES DE USO": {
+ "HERRAMIENTAS": {
+ "Amortizaciones Acumuladas": {
+ "account_number": "1.2.2.09.03",
+ "account_type": "Depreciation"
+ },
+ "Herramientas Ajuste": {
+ "account_number": "1.2.2.09.02"
+ },
+ "Herramientas Valores Originales": {
+ "account_number": "1.2.2.09.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.09.00"
+ },
+ "INMUEBLES": {
+ "Amortizaciones Acumuladas Inmuebles": {
+ "account_number": "1.2.2.01.03",
+ "account_type": "Depreciation"
+ },
+ "Inmuebles Actualizaciones": {
+ "account_number": "1.2.2.01.02"
+ },
+ "Inmuebles Valores originales": {
+ "account_number": "1.2.2.01.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.01.00"
+ },
+ "INSTALACIONES": {
+ "Amortizaciones Acumuladas": {
+ "account_number": "1.2.2.08.03",
+ "account_type": "Depreciation"
+ },
+ "Instalaciones Ajuste": {
+ "account_number": "1.2.2.08.02"
+ },
+ "Instalaciones Valores Originales": {
+ "account_number": "1.2.2.08.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.08.00"
+ },
+ "MAQUINARIAS Y EQUIPOS": {
+ "Amortizaciones Acumuladas Maquinarias": {
+ "account_number": "1.2.2.02.03",
+ "account_type": "Depreciation"
+ },
+ "Maquinarias y Equipos Actualizaciones": {
+ "account_number": "1.2.2.02.02"
+ },
+ "Maquinarias y Equipos Valores de origen": {
+ "account_number": "1.2.2.02.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.02.00"
+ },
+ "MUEBLES Y U\u0301TILES": {
+ "Amortizaciones Acumuladas Muebles y": {
+ "account_number": "1.2.2.03.03",
+ "account_type": "Depreciation"
+ },
+ "Muebles y U\u0301tiles Actualizaciones": {
+ "account_number": "1.2.2.03.02"
+ },
+ "Muebles y U\u0301tiles Valores de Origen": {
+ "account_number": "1.2.2.03.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.03.00"
+ },
+ "RODADOS": {
+ "Amortizaciones Acumuladas Rodados": {
+ "account_number": "1.2.2.04.03",
+ "account_type": "Depreciation"
+ },
+ "Rodados Actualizaciones": {
+ "account_number": "1.2.2.04.02"
+ },
+ "Rodados Valores Originales": {
+ "account_number": "1.2.2.04.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.04.00"
+ },
+ "TERRENOS": {
+ "Terrenos Actualizaciones": {
+ "account_number": "1.2.2.07.02"
+ },
+ "Terrenos Valores Originales": {
+ "account_number": "1.2.2.07.01",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1.2.2.07.00"
+ },
+ "account_number": "1.2.2.00.00"
+ },
+ "CRE\u0301DITOS POR VENTA DE SERVICIOS": {
+ "DEUDORES NO CORRIENTES": {
+ "Deudores Locales (No Ctes.)": {
+ "account_number": "1.2.4.01.01"
+ },
+ "account_number": "1.2.4.01.00"
+ },
+ "Documentos a cobrar por Vtas. de Servicios": {
+ "account_number": "1.2.4.02.00"
+ },
+ "account_number": "1.2.4.00.00"
+ },
+ "INVERSIONES PERMANENTES": {
+ "BONOS DE DEUDA": {
+ "Bonex": {
+ "account_number": "1.2.1.01.02"
+ },
+ "Ti\u0301tulos Deuda Pu\u0301blica (Pesos)": {
+ "account_number": "1.2.1.01.01",
"is_group": 1
},
- "1.2.1.01.02 - Bonex": {}
+ "account_number": "1.2.1.01.00"
},
- "1.2.1.02.00 - DEPO\u0301SITOS A PLAZO FIJO NO": {
- "1.2.1.02.01 - Depo\u0301sitos a plazo fijo en pesos (no cte.)": {},
- "1.2.1.02.02 - Depo\u0301sitos a plazo fijo en moneda": {}
+ "DEPO\u0301SITOS A PLAZO FIJO NO": {
+ "Depo\u0301sitos a plazo fijo en moneda": {
+ "account_number": "1.2.1.02.02"
+ },
+ "Depo\u0301sitos a plazo fijo en pesos (no cte.)": {
+ "account_number": "1.2.1.02.01"
+ },
+ "account_number": "1.2.1.02.00"
},
- "1.2.1.03.00 - INVERSIONES EN BIENES DEPRECIABLES": {
- "1.2.1.03.01 - Inversiones en Inmuebles Valores": {},
- "1.2.1.03.02 - Inversiones en Inmuebles": {},
- "1.2.1.03.03 - Amortizaciones Acumuladas Inversiones": {}
- }
+ "INVERSIONES EN BIENES DEPRECIABLES": {
+ "Amortizaciones Acumuladas Inversiones": {
+ "account_number": "1.2.1.03.03"
+ },
+ "Inversiones en Inmuebles": {
+ "account_number": "1.2.1.03.02"
+ },
+ "Inversiones en Inmuebles Valores": {
+ "account_number": "1.2.1.03.01"
+ },
+ "account_number": "1.2.1.03.00"
+ },
+ "account_number": "1.2.1.00.00"
},
- "1.2.2.00.00 - BIENES DE USO": {
- "1.2.2.01.00 - INMUEBLES": {
- "1.2.2.01.01 - Inmuebles Valores originales": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.01.02 - Inmuebles Actualizaciones": {},
- "1.2.2.01.03 - Amortizaciones Acumuladas Inmuebles": {
- "account_type": "Depreciation"
- }
+ "OTROS ACTIVOS NO CORRIENTES": {
+ "Llave de Negocio": {
+ "account_number": "1.2.6.01.00"
},
- "1.2.2.02.00 - MAQUINARIAS Y EQUIPOS": {
- "1.2.2.02.01 - Maquinarias y Equipos Valores de origen": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.02.02 - Maquinarias y Equipos Actualizaciones": {},
- "1.2.2.02.03 - Amortizaciones Acumuladas Maquinarias": {
- "account_type": "Depreciation"
- }
- },
- "1.2.2.03.00 - MUEBLES Y U\u0301TILES": {
- "1.2.2.03.01 - Muebles y U\u0301tiles Valores de Origen": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.03.02 - Muebles y U\u0301tiles Actualizaciones": {},
- "1.2.2.03.03 - Amortizaciones Acumuladas Muebles y": {
- "account_type": "Depreciation"
- }
- },
- "1.2.2.04.00 - RODADOS": {
- "1.2.2.04.01 - Rodados Valores Originales": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.04.02 - Rodados Actualizaciones": {},
- "1.2.2.04.03 - Amortizaciones Acumuladas Rodados": {
- "account_type": "Depreciation"
- }
- },
- "1.2.2.07.00 - TERRENOS": {
- "1.2.2.07.01 - Terrenos Valores Originales": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.07.02 - Terrenos Actualizaciones": {}
- },
- "1.2.2.08.00 - INSTALACIONES": {
- "1.2.2.08.01 - Instalaciones Valores Originales": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.08.02 - Instalaciones Ajuste": {},
- "1.2.2.08.03 - Amortizaciones Acumuladas": {
- "account_type": "Depreciation"
- }
- },
- "1.2.2.09.00 - HERRAMIENTAS": {
- "1.2.2.09.01 - Herramientas Valores Originales": {
- "account_type": "Fixed Asset"
- },
- "1.2.2.09.02 - Herramientas Ajuste": {},
- "1.2.2.09.03 - Amortizaciones Acumuladas": {
- "account_type": "Depreciation"
- }
- }
+ "account_number": "1.2.6.00.00"
},
- "1.2.3.00.00 - ACTIVOS INTANGIBLES": {
- "1.2.3.01.00 - MARCAS Y PATENTES": {
- "1.2.3.01.01 - Marcas y Patentes Valores Originales": {},
- "1.2.3.01.02 - Marcas y Patentes Actualizaciones": {},
- "1.2.3.01.03 - Amortizaciones Acumuladas Marcas y": {}
- }
- },
- "1.2.4.00.00 - CRE\u0301DITOS POR VENTA DE SERVICIOS": {
- "1.2.4.01.00 - DEUDORES NO CORRIENTES": {
- "1.2.4.01.01 - Deudores Locales (No Ctes.)": {}
+ "OTROS CRE\u0301DITOS NO CORRIENTES": {
+ "CRE\u0301DITOS DIVERSOS NO CORRIENTES": {
+ "Cuentas Particulares Directores (No": {
+ "account_number": "1.2.5.02.01"
+ },
+ "Cuentas Particulares Socios/Accionistas": {
+ "account_number": "1.2.5.02.02"
+ },
+ "account_number": "1.2.5.02.00"
},
- "1.2.4.02.00 - Documentos a cobrar por Vtas. de Servicios": {}
- },
- "1.2.5.00.00 - OTROS CRE\u0301DITOS NO CORRIENTES": {
- "1.2.5.01.00 - CRE\u0301DITOS IMPOSITIVOS NO CORRIENTES": {
- "1.2.5.01.01 - Activos por Impto. Diferido (No Ctes.)": {},
- "1.2.5.01.02 - Cre\u0301ditos por Quebrantos Impositivos no": {}
+ "CRE\u0301DITOS IMPOSITIVOS NO CORRIENTES": {
+ "Activos por Impto. Diferido (No Ctes.)": {
+ "account_number": "1.2.5.01.01"
+ },
+ "Cre\u0301ditos por Quebrantos Impositivos no": {
+ "account_number": "1.2.5.01.02"
+ },
+ "account_number": "1.2.5.01.00"
},
- "1.2.5.02.00 - CRE\u0301DITOS DIVERSOS NO CORRIENTES": {
- "1.2.5.02.01 - Cuentas Particulares Directores (No": {},
- "1.2.5.02.02 - Cuentas Particulares Socios/Accionistas": {}
- }
+ "account_number": "1.2.5.00.00"
},
- "1.2.6.00.00 - OTROS ACTIVOS NO CORRIENTES": {
- "1.2.6.01.00 - Llave de Negocio": {}
- }
+ "account_number": "1.2.0.00.00"
},
+ "account_number": "1.0.0.00.00",
"root_type": "Asset"
},
- "2.0.0.00.00 - PASIVO": {
- "2.1.0.00.00 - PASIVO CORRIENTE": {
- "2.1.1.00.00 - DEUDAS COMERCIALES CORRIENTES": {
- "2.1.1.02.00 - ACREEDORES": {
- "2.1.1.02.01 - Acreedores Locales (Ctes.)": {
- "account_type": "Payable"
- }
- }
+ "EGRESOS": {
+ "EGRESOS EXTRAORDINARIOS": {
+ "Ajuste de Amortizaciones acumuladas de": {
+ "account_number": "5.2.4.00.00"
},
- "2.1.2.00.00 - REMUNERACIONES Y CAGAS SOCIALES": {
- "2.1.2.02.00 - DEUDAS PREVISIONALES": {
- "2.1.2.02.01 - Jubilaciones a pagar": {},
- "2.1.2.02.02 - ART a pagar": {},
- "2.1.2.02.03 - Obra Social a pagar": {},
- "2.1.2.02.04 - SAC a pagar": {},
- "2.1.2.02.05 - Vacaciones a pagar": {}
- },
- "2.1.2.03.00 - Sueldos y Jornales a pagar": {
- "account_type": "Chargeable"
- }
+ "Ajuste del valor de los bienes": {
+ "account_number": "5.2.3.00.00"
},
- "2.1.3.00.00 - CARGAS FISCALES": {
- "2.1.3.01.00 - IMPUESTO AL VALOR AGREGADO": {
- "2.1.3.01.01 - IVA De\u0301bito Fiscal": {},
- "2.1.3.01.02 - IVA De\u0301bito Fiscal Sobretasa": {},
- "2.1.3.01.03 - Percepciones y Retenciones efectuadas": {},
- "2.1.3.01.04 - IVA a Pagar": {}
- },
- "2.1.3.02.00 - INGRESOS BRUTOS": {
- "2.1.3.02.01 - Impuesto a los Ingresos Brutos a Pagar": {},
- "2.1.3.02.02 - Percepciones efectuadas Ingresos": {}
- },
- "2.1.3.03.00 - IMPUESTO A LAS GANANCIAS": {
- "2.1.3.03.01 - Impuesto Ganancia Mi\u0301nima Presunta a": {},
- "2.1.3.03.02 - Impuesto a las Ganancias a Pagar": {},
- "2.1.3.03.03 - Pasivo por Impuesto Diferido": {},
- "2.1.3.03.04 - Percepciones y Retenciones efectuadas": {}
- }
+ "Amortizaciones extraordinarias": {
+ "account_number": "5.2.2.00.00"
},
- "2.1.4.00.00 - DEUDAS FINANCIERAS": {
- "2.1.4.01.00 - Pre\u0301stamo Banco de la Nacio\u0301n Argentina (Cte.)": {},
- "2.1.4.02.00 - Pre\u0301stamo Banco de la Provincia de Bs. As.": {}
+ "Pe\u0301rdida por venta bienes de uso": {
+ "account_number": "5.2.1.00.00"
},
- "2.1.5.00.00 - OTRAS DEUDAS CORRIENTES": {
- "2.1.5.01.00 - Dividendos a pagar (Ctes.)": {},
- "2.1.5.02.00 - Honorarios Directores a Pagar (Ctes.)": {}
- },
- "2.1.6.00.00 - PROVISIONES": {
- "2.1.6.01.00 - Provisio\u0301n para despidos": {},
- "2.1.6.02.00 - Provisio\u0301n para SAC": {}
- },
- "2.1.7.00.00 - INVENTARIOS POR PAGAR": {
- "2.1.7.01.00 - Inventario entrante no facturado": {
- "account_type": "Stock Received But Not Billed"
- }
- }
+ "account_number": "5.2.0.00.00"
},
- "2.2.0.00.00 - PASIVO NO CORRIENTE": {
- "2.2.1.00.00 - DEUDAS FINANCIERAS NO CORRIENTES": {
- "2.2.1.01.00 - Pre\u0301stamo Banco de la Nacio\u0301n Argentina(ejemplo) (No": {}
+ "EGRESOS ORDINARIOS": {
+ "GASTOS DE ADMINISTRACIO\u0301N": {
+ "Amortizaciones - Administracio\u0301n": {
+ "account_number": "5.1.3.04.00"
+ },
+ "Cargas Sociales - Administracio\u0301n": {
+ "account_number": "5.1.3.02.00"
+ },
+ "Certificaciones y Sellados": {
+ "account_number": "5.1.3.07.00"
+ },
+ "Correspondencia - Administracio\u0301n": {
+ "account_number": "5.1.3.11.00"
+ },
+ "Costo sobre ventas": {
+ "account_number": "5.1.3.15.00",
+ "account_type": "Cost of Goods Sold"
+ },
+ "Energi\u0301a - Administracio\u0301n": {
+ "account_number": "5.1.3.13.00"
+ },
+ "Gastos Bancarios - Administracio\u0301n": {
+ "account_number": "5.1.3.08.00"
+ },
+ "Gastos Varios - Administracio\u0301n": {
+ "account_number": "5.1.3.09.00"
+ },
+ "Gastos de Valoracion": {
+ "account_number": "5.1.3.16.00",
+ "account_type": "Expenses Included In Valuation"
+ },
+ "Honorarios - Administracio\u0301n": {
+ "account_number": "5.1.3.03.00"
+ },
+ "Insumos Computacio\u0301n - Administracio\u0301n": {
+ "account_number": "5.1.3.10.00"
+ },
+ "Libreri\u0301a y Papeleri\u0301a - Administracio\u0301n": {
+ "account_number": "5.1.3.06.00"
+ },
+ "Mantenimiento - Administracio\u0301n": {
+ "account_number": "5.1.3.12.00"
+ },
+ "Seguros - Administracio\u0301n": {
+ "account_number": "5.1.3.14.00"
+ },
+ "Sueldos - Administracio\u0301n": {
+ "account_number": "5.1.3.01.00"
+ },
+ "Via\u0301ticos - Administracio\u0301n": {
+ "account_number": "5.1.3.05.00"
+ },
+ "account_number": "5.1.3.00.00"
},
- "2.2.2.00.00 - CARGAS FISCALES NO CORRIENTES": {
- "2.2.2.01.00 - Moratoria": {}
+ "GASTOS DE COMERCIALIZACIO\u0301N": {
+ "Amortizaciones - Comercializacio\u0301n": {
+ "account_number": "5.1.4.04.00"
+ },
+ "Cargas Sociales - Comercializacio\u0301n": {
+ "account_number": "5.1.4.02.00"
+ },
+ "Comisiones de terceros": {
+ "account_number": "5.1.4.11.00"
+ },
+ "Descuentos otorgados a clientes": {
+ "account_number": "5.1.4.10.00"
+ },
+ "Fletes - Comercializacio\u0301n": {
+ "account_number": "5.1.4.08.00"
+ },
+ "Gastos Varios - Comercializacio\u0301n": {
+ "account_number": "5.1.4.07.00"
+ },
+ "Honorarios - Comercializacio\u0301n": {
+ "account_number": "5.1.4.06.00"
+ },
+ "IVA no computable - Comercializacio\u0301n": {
+ "account_number": "5.1.4.09.00"
+ },
+ "Publicidad - Comercializacio\u0301n": {
+ "account_number": "5.1.4.03.00"
+ },
+ "Quebrantos por deudores": {
+ "account_number": "5.1.4.12.00"
+ },
+ "Seguros - Comercializacio\u0301n": {
+ "account_number": "5.1.4.05.00"
+ },
+ "Sueldos - Comercializacio\u0301n": {
+ "account_number": "5.1.4.01.00"
+ },
+ "Via\u0301ticos - Comercializacio\u0301n": {
+ "account_number": "5.1.4.13.00"
+ },
+ "account_number": "5.1.4.00.00"
},
- "2.2.3.00.00 - DEUDAS COMERCIALES": {
- "2.2.3.01.00 - ACREEDORES": {
- "2.2.3.01.01 - Acreedores Locales (No Ctes.)": {}
- }
+ "GASTOS DE EXPLOTACIO\u0301N": {
+ "Amortizaciones - Explotacio\u0301n": {
+ "account_number": "5.1.2.10.00"
+ },
+ "Cargas Sociales - Explotacio\u0301n": {
+ "account_number": "5.1.2.02.00"
+ },
+ "Combustibles y Lubricantes - Explotacio\u0301n": {
+ "account_number": "5.1.2.14.00"
+ },
+ "Comida del personal - Explotacio\u0301n": {
+ "account_number": "5.1.2.08.00"
+ },
+ "Cuota me\u0301dica a cargo del empleador": {
+ "account_number": "5.1.2.09.00"
+ },
+ "Despidos - Explotacio\u0301n": {
+ "account_number": "5.1.2.07.00"
+ },
+ "Energi\u0301a - Explotacio\u0301n": {
+ "account_number": "5.1.2.03.00"
+ },
+ "Fletes - Explotacio\u0301n": {
+ "account_number": "5.1.2.16.00"
+ },
+ "Gastos de limpieza - Explotacio\u0301n": {
+ "account_number": "5.1.2.12.00"
+ },
+ "Honorarios Profesionales - Explotacio\u0301n": {
+ "account_number": "5.1.2.04.00"
+ },
+ "Insumos diversos - Explotacio\u0301n": {
+ "account_number": "5.1.2.15.00"
+ },
+ "Mantenimiento - Explotacio\u0301n": {
+ "account_number": "5.1.2.13.00"
+ },
+ "Repuestos y Reparaciones - Explotacio\u0301n": {
+ "account_number": "5.1.2.11.00"
+ },
+ "Ropa de trabajo - Explotacio\u0301n": {
+ "account_number": "5.1.2.05.00"
+ },
+ "Seguros - Explotacio\u0301n": {
+ "account_number": "5.1.2.06.00"
+ },
+ "Sueldos y Jornales - Explotacio\u0301n": {
+ "account_number": "5.1.2.01.00"
+ },
+ "account_number": "5.1.2.00.00"
},
- "2.2.4.00.00 - OTRAS DEUDAS NO CORRIENTES": {
- "is_group": 1
- }
+ "GASTOS FINANCIEROS": {
+ "Amortizaciones Inversiones en bienes": {
+ "account_number": "5.1.5.08.00"
+ },
+ "Diferencia de Cambio": {
+ "account_number": "5.1.5.04.00"
+ },
+ "Diferencia de Cambio Balance en": {
+ "account_number": "5.1.5.05.00"
+ },
+ "Intereses a Proveedores": {
+ "account_number": "5.1.5.02.00"
+ },
+ "Intereses y Gastos bancarios": {
+ "account_number": "5.1.5.01.00"
+ },
+ "Intereses y recargos impositivos": {
+ "account_number": "5.1.5.03.00"
+ },
+ "R.E.C.P.A.M": {
+ "account_number": "5.1.5.09.00"
+ },
+ "Resultado por tenencia (negativo)": {
+ "account_number": "5.1.5.06.00"
+ },
+ "Resultado por tenencia negativo de": {
+ "account_number": "5.1.5.10.00"
+ },
+ "account_number": "5.1.5.00.00"
+ },
+ "GASTOS SOBRE EXISTENCIAS": {
+ "Ajuste de Existencia": {
+ "account_number": "5.1.8.03.00",
+ "account_type": "Stock Adjustment"
+ },
+ "Costo sobre ventas": {
+ "account_number": "5.1.8.01.00",
+ "account_type": "Cost of Goods Sold"
+ },
+ "Gastos de Valoracion": {
+ "account_number": "5.1.8.02.00",
+ "account_type": "Expenses Included In Valuation"
+ },
+ "account_number": "5.1.8.00.00"
+ },
+ "IMPUESTOS": {
+ "Impuesto a las Ganancia Mi\u0301nima": {
+ "account_number": "5.1.7.02.00"
+ },
+ "Impuesto a las Ganancias": {
+ "account_number": "5.1.7.01.00"
+ },
+ "Impuesto a los Ingresos Brutos": {
+ "account_number": "5.1.7.03.00"
+ },
+ "Impuesto s/ los De\u0301bitos y Cre\u0301ditos": {
+ "account_number": "5.1.7.06.00"
+ },
+ "Impuestos Territoriales": {
+ "account_number": "5.1.7.05.00"
+ },
+ "Impuestos internos y varios": {
+ "account_number": "5.1.7.07.00"
+ },
+ "Tasa municipal": {
+ "account_number": "5.1.7.04.00"
+ },
+ "account_number": "5.1.7.00.00"
+ },
+ "account_number": "5.1.0.00.00"
},
- "root_type": "Liability"
+ "account_number": "5.0.0.00.00",
+ "root_type": "Expense"
},
- "3.0.0.00.00 - PATRIMONIO NETO": {
- "3.1.0.00.00 - APORTE DE LOS PROPIETARIOS": {
- "3.1.1.00.00 - CAPITAL SOCIAL": {
- "3.1.1.01.00 - Acciones en Circulacio\u0301n": {},
- "3.1.1.02.00 - Aportes Irrevocables": {},
- "3.1.1.03.00 - Acciones a distribuir": {},
- "3.1.1.04.00 - Capital": {},
- "3.1.1.05.00 - Ajuste del Capital": {}
- }
- },
- "3.3.0.00.00 - RESERVAS": {
- "3.3.1.00.00 - Reserva Legal": {},
- "3.3.2.00.00 - Reserva Facultativa": {},
- "3.3.3.00.00 - Reserva Estatutaria": {},
- "3.3.4.00.00 - Ajuste Reserva Legal": {}
- },
- "3.4.0.00.00 - RESULTADOS ACUMULADOS": {
- "3.4.1.00.00 - Resultado del Ejercicio": {},
- "3.4.2.00.00 - Resultado Ejercicios Anteriores": {},
- "3.4.3.00.00 - A.R.E.A (P)": {},
- "3.4.4.00.00 - A.R.E.A (G)": {}
- },
- "root_type": "Equity"
- },
- "4.1.0.00.00 - INGRESOS": {
- "4.1.0.00.00 - INGRESOS ORDINARIOS": {
- "4.1.1.00.00 - INGRESOS POR SERVICIOS PRESTADOS": {
- "4.1.1.01.00 - Ventas de Servicios": {},
- "4.1.1.02.00 - Ingresos de fuente extranjera": {}
+ "INGRESOS": {
+ "INGRESOS EXTRAORDINARIOS": {
+ "Otros ingresos extraordinarios": {
+ "account_number": "4.2.3.00.00"
},
- "4.1.3.00.00 - RESULTADOS FINANCIEROS Y POR": {
- "4.1.3.01.00 - Intereses Ganados": {},
- "4.1.3.02.00 - Resultado por Tenencia de acciones": {},
- "4.1.3.03.00 - Diferencia tipo de cambio": {},
- "4.1.3.04.00 - Resultado por tenencia (positivo)": {}
+ "Reintegro de Seguros": {
+ "account_number": "4.2.2.00.00"
},
- "4.1.4.00.00 - OTROS INGRESOS ORDINARIOS": {
+ "Utilidad Venta Bienes de Uso": {
+ "account_number": "4.2.1.00.00"
+ },
+ "account_number": "4.2.0.00.00"
+ },
+ "INGRESOS ORDINARIOS": {
+ "INGRESOS POR SERVICIOS PRESTADOS": {
+ "Ingresos de fuente extranjera": {
+ "account_number": "4.1.1.02.00"
+ },
+ "Ventas de Servicios": {
+ "account_number": "4.1.1.01.00"
+ },
+ "account_number": "4.1.1.00.00"
+ },
+ "OTROS INGRESOS ORDINARIOS": {
+ "account_number": "4.1.4.00.00",
"is_group": 1
- }
+ },
+ "RESULTADOS FINANCIEROS Y POR": {
+ "Diferencia tipo de cambio": {
+ "account_number": "4.1.3.03.00"
+ },
+ "Intereses Ganados": {
+ "account_number": "4.1.3.01.00"
+ },
+ "Resultado por Tenencia de acciones": {
+ "account_number": "4.1.3.02.00"
+ },
+ "Resultado por tenencia (positivo)": {
+ "account_number": "4.1.3.04.00"
+ },
+ "account_number": "4.1.3.00.00"
+ },
+ "account_number": "4.1.0.00.00"
},
- "4.2.0.00.00 - INGRESOS EXTRAORDINARIOS": {
- "4.2.1.00.00 - Utilidad Venta Bienes de Uso": {},
- "4.2.2.00.00 - Reintegro de Seguros": {},
- "4.2.3.00.00 - Otros ingresos extraordinarios": {}
- },
+ "account_number": "4.0.0.00.00",
"root_type": "Income"
},
- "5.0.0.00.00 - EGRESOS": {
- "5.1.0.00.00 - EGRESOS ORDINARIOS": {
- "5.1.2.00.00 - GASTOS DE EXPLOTACIO\u0301N": {
- "5.1.2.01.00 - Sueldos y Jornales - Explotacio\u0301n": {},
- "5.1.2.02.00 - Cargas Sociales - Explotacio\u0301n": {},
- "5.1.2.03.00 - Energi\u0301a - Explotacio\u0301n": {},
- "5.1.2.04.00 - Honorarios Profesionales - Explotacio\u0301n": {},
- "5.1.2.05.00 - Ropa de trabajo - Explotacio\u0301n": {},
- "5.1.2.06.00 - Seguros - Explotacio\u0301n": {},
- "5.1.2.07.00 - Despidos - Explotacio\u0301n": {},
- "5.1.2.08.00 - Comida del personal - Explotacio\u0301n": {},
- "5.1.2.09.00 - Cuota me\u0301dica a cargo del empleador": {},
- "5.1.2.10.00 - Amortizaciones - Explotacio\u0301n": {},
- "5.1.2.11.00 - Repuestos y Reparaciones - Explotacio\u0301n": {},
- "5.1.2.12.00 - Gastos de limpieza - Explotacio\u0301n": {},
- "5.1.2.13.00 - Mantenimiento - Explotacio\u0301n": {},
- "5.1.2.14.00 - Combustibles y Lubricantes - Explotacio\u0301n": {},
- "5.1.2.15.00 - Insumos diversos - Explotacio\u0301n": {},
- "5.1.2.16.00 - Fletes - Explotacio\u0301n": {}
- },
- "5.1.3.00.00 - GASTOS DE ADMINISTRACIO\u0301N": {
- "5.1.3.01.00 - Sueldos - Administracio\u0301n": {},
- "5.1.3.02.00 - Cargas Sociales - Administracio\u0301n": {},
- "5.1.3.03.00 - Honorarios - Administracio\u0301n": {},
- "5.1.3.04.00 - Amortizaciones - Administracio\u0301n": {},
- "5.1.3.05.00 - Via\u0301ticos - Administracio\u0301n": {},
- "5.1.3.06.00 - Libreri\u0301a y Papeleri\u0301a - Administracio\u0301n": {},
- "5.1.3.07.00 - Certificaciones y Sellados": {},
- "5.1.3.08.00 - Gastos Bancarios - Administracio\u0301n": {},
- "5.1.3.09.00 - Gastos Varios - Administracio\u0301n": {},
- "5.1.3.10.00 - Insumos Computacio\u0301n - Administracio\u0301n": {},
- "5.1.3.11.00 - Correspondencia - Administracio\u0301n": {},
- "5.1.3.12.00 - Mantenimiento - Administracio\u0301n": {},
- "5.1.3.13.00 - Energi\u0301a - Administracio\u0301n": {},
- "5.1.3.14.00 - Seguros - Administracio\u0301n": {},
- "5.1.3.15.00 - Costo sobre ventas": {
- "account_type": "Cost of Goods Sold"
+ "PASIVO": {
+ "PASIVO CORRIENTE": {
+ "CARGAS FISCALES": {
+ "IMPUESTO A LAS GANANCIAS": {
+ "Impuesto Ganancia Mi\u0301nima Presunta a": {
+ "account_number": "2.1.3.03.01"
+ },
+ "Impuesto a las Ganancias a Pagar": {
+ "account_number": "2.1.3.03.02"
+ },
+ "Pasivo por Impuesto Diferido": {
+ "account_number": "2.1.3.03.03"
+ },
+ "Percepciones y Retenciones efectuadas": {
+ "account_number": "2.1.3.03.04"
+ },
+ "account_number": "2.1.3.03.00"
},
- "5.1.3.16.00 - Gastos de Valoracion": {
- "account_type": "Expenses Included In Valuation"
- }
- },
- "5.1.4.00.00 - GASTOS DE COMERCIALIZACIO\u0301N": {
- "5.1.4.01.00 - Sueldos - Comercializacio\u0301n": {},
- "5.1.4.02.00 - Cargas Sociales - Comercializacio\u0301n": {},
- "5.1.4.03.00 - Publicidad - Comercializacio\u0301n": {},
- "5.1.4.04.00 - Amortizaciones - Comercializacio\u0301n": {},
- "5.1.4.05.00 - Seguros - Comercializacio\u0301n": {},
- "5.1.4.06.00 - Honorarios - Comercializacio\u0301n": {},
- "5.1.4.07.00 - Gastos Varios - Comercializacio\u0301n": {},
- "5.1.4.08.00 - Fletes - Comercializacio\u0301n": {},
- "5.1.4.09.00 - IVA no computable - Comercializacio\u0301n": {},
- "5.1.4.10.00 - Descuentos otorgados a clientes": {},
- "5.1.4.11.00 - Comisiones de terceros": {},
- "5.1.4.12.00 - Quebrantos por deudores": {},
- "5.1.4.13.00 - Via\u0301ticos - Comercializacio\u0301n": {}
- },
- "5.1.5.00.00 - GASTOS FINANCIEROS": {
- "5.1.5.01.00 - Intereses y Gastos bancarios": {},
- "5.1.5.02.00 - Intereses a Proveedores": {},
- "5.1.5.03.00 - Intereses y recargos impositivos": {},
- "5.1.5.04.00 - Diferencia de Cambio": {},
- "5.1.5.05.00 - Diferencia de Cambio Balance en": {},
- "5.1.5.06.00 - Resultado por tenencia (negativo)": {},
- "5.1.5.08.00 - Amortizaciones Inversiones en bienes": {},
- "5.1.5.09.00 - R.E.C.P.A.M": {},
- "5.1.5.10.00 - Resultado por tenencia negativo de": {}
- },
- "5.1.7.00.00 - IMPUESTOS": {
- "5.1.7.01.00 - Impuesto a las Ganancias": {},
- "5.1.7.02.00 - Impuesto a las Ganancia Mi\u0301nima": {},
- "5.1.7.03.00 - Impuesto a los Ingresos Brutos": {},
- "5.1.7.04.00 - Tasa municipal": {},
- "5.1.7.05.00 - Impuestos Territoriales": {},
- "5.1.7.06.00 - Impuesto s/ los De\u0301bitos y Cre\u0301ditos": {},
- "5.1.7.07.00 - Impuestos internos y varios": {}
- },
- "5.1.8.00.00 - GASTOS SOBRE EXISTENCIAS": {
- "5.1.8.01.00 - Costo sobre ventas": {
- "account_type": "Cost of Goods Sold"
+ "IMPUESTO AL VALOR AGREGADO": {
+ "IVA De\u0301bito Fiscal": {
+ "account_number": "2.1.3.01.01"
+ },
+ "IVA De\u0301bito Fiscal Sobretasa": {
+ "account_number": "2.1.3.01.02"
+ },
+ "IVA a Pagar": {
+ "account_number": "2.1.3.01.04"
+ },
+ "Percepciones y Retenciones efectuadas": {
+ "account_number": "2.1.3.01.03"
+ },
+ "account_number": "2.1.3.01.00"
},
- "5.1.8.02.00 - Gastos de Valoracion": {
- "account_type": "Expenses Included In Valuation"
+ "INGRESOS BRUTOS": {
+ "Impuesto a los Ingresos Brutos a Pagar": {
+ "account_number": "2.1.3.02.01"
+ },
+ "Percepciones efectuadas Ingresos": {
+ "account_number": "2.1.3.02.02"
+ },
+ "account_number": "2.1.3.02.00"
},
- "5.1.8.03.00 - Ajuste de Existencia": {
- "account_type": "Stock Adjustment"
- }
- }
+ "account_number": "2.1.3.00.00"
+ },
+ "DEUDAS COMERCIALES CORRIENTES": {
+ "ACREEDORES": {
+ "Acreedores Locales (Ctes.)": {
+ "account_number": "2.1.1.02.01",
+ "account_type": "Payable"
+ },
+ "account_number": "2.1.1.02.00"
+ },
+ "account_number": "2.1.1.00.00"
+ },
+ "DEUDAS FINANCIERAS": {
+ "Pre\u0301stamo Banco de la Nacio\u0301n Argentina (Cte.)": {
+ "account_number": "2.1.4.01.00"
+ },
+ "Pre\u0301stamo Banco de la Provincia de Bs. As.": {
+ "account_number": "2.1.4.02.00"
+ },
+ "account_number": "2.1.4.00.00"
+ },
+ "INVENTARIOS POR PAGAR": {
+ "Inventario entrante no facturado": {
+ "account_number": "2.1.7.01.00",
+ "account_type": "Stock Received But Not Billed"
+ },
+ "account_number": "2.1.7.00.00"
+ },
+ "OTRAS DEUDAS CORRIENTES": {
+ "Dividendos a pagar (Ctes.)": {
+ "account_number": "2.1.5.01.00"
+ },
+ "Honorarios Directores a Pagar (Ctes.)": {
+ "account_number": "2.1.5.02.00"
+ },
+ "account_number": "2.1.5.00.00"
+ },
+ "PROVISIONES": {
+ "Provisio\u0301n para SAC": {
+ "account_number": "2.1.6.02.00"
+ },
+ "Provisio\u0301n para despidos": {
+ "account_number": "2.1.6.01.00"
+ },
+ "account_number": "2.1.6.00.00"
+ },
+ "REMUNERACIONES Y CAGAS SOCIALES": {
+ "DEUDAS PREVISIONALES": {
+ "ART a pagar": {
+ "account_number": "2.1.2.02.02"
+ },
+ "Jubilaciones a pagar": {
+ "account_number": "2.1.2.02.01"
+ },
+ "Obra Social a pagar": {
+ "account_number": "2.1.2.02.03"
+ },
+ "SAC a pagar": {
+ "account_number": "2.1.2.02.04"
+ },
+ "Vacaciones a pagar": {
+ "account_number": "2.1.2.02.05"
+ },
+ "account_number": "2.1.2.02.00"
+ },
+ "Sueldos y Jornales a pagar": {
+ "account_number": "2.1.2.03.00",
+ "account_type": "Chargeable"
+ },
+ "account_number": "2.1.2.00.00"
+ },
+ "account_number": "2.1.0.00.00"
},
- "5.2.0.00.00 - EGRESOS EXTRAORDINARIOS": {
- "5.2.1.00.00 - Pe\u0301rdida por venta bienes de uso": {},
- "5.2.2.00.00 - Amortizaciones extraordinarias": {},
- "5.2.3.00.00 - Ajuste del valor de los bienes": {},
- "5.2.4.00.00 - Ajuste de Amortizaciones acumuladas de": {}
+ "PASIVO NO CORRIENTE": {
+ "CARGAS FISCALES NO CORRIENTES": {
+ "Moratoria": {
+ "account_number": "2.2.2.01.00"
+ },
+ "account_number": "2.2.2.00.00"
+ },
+ "DEUDAS COMERCIALES": {
+ "ACREEDORES": {
+ "Acreedores Locales (No Ctes.)": {
+ "account_number": "2.2.3.01.01"
+ },
+ "account_number": "2.2.3.01.00"
+ },
+ "account_number": "2.2.3.00.00"
+ },
+ "DEUDAS FINANCIERAS NO CORRIENTES": {
+ "Pre\u0301stamo Banco de la Nacio\u0301n Argentina(ejemplo) (No": {
+ "account_number": "2.2.1.01.00"
+ },
+ "account_number": "2.2.1.00.00"
+ },
+ "OTRAS DEUDAS NO CORRIENTES": {
+ "account_number": "2.2.4.00.00",
+ "is_group": 1
+ },
+ "account_number": "2.2.0.00.00"
},
- "root_type": "Expense"
+ "account_number": "2.0.0.00.00",
+ "root_type": "Liability"
+ },
+ "PATRIMONIO NETO": {
+ "APORTE DE LOS PROPIETARIOS": {
+ "CAPITAL SOCIAL": {
+ "Acciones a distribuir": {
+ "account_number": "3.1.1.03.00"
+ },
+ "Acciones en Circulacio\u0301n": {
+ "account_number": "3.1.1.01.00"
+ },
+ "Ajuste del Capital": {
+ "account_number": "3.1.1.05.00"
+ },
+ "Aportes Irrevocables": {
+ "account_number": "3.1.1.02.00"
+ },
+ "Capital": {
+ "account_number": "3.1.1.04.00"
+ },
+ "account_number": "3.1.1.00.00"
+ },
+ "account_number": "3.1.0.00.00"
+ },
+ "RESERVAS": {
+ "Ajuste Reserva Legal": {
+ "account_number": "3.3.4.00.00"
+ },
+ "Reserva Estatutaria": {
+ "account_number": "3.3.3.00.00"
+ },
+ "Reserva Facultativa": {
+ "account_number": "3.3.2.00.00"
+ },
+ "Reserva Legal": {
+ "account_number": "3.3.1.00.00"
+ },
+ "account_number": "3.3.0.00.00"
+ },
+ "RESULTADOS ACUMULADOS": {
+ "A.R.E.A (G)": {
+ "account_number": "3.4.4.00.00"
+ },
+ "A.R.E.A (P)": {
+ "account_number": "3.4.3.00.00"
+ },
+ "Resultado Ejercicios Anteriores": {
+ "account_number": "3.4.2.00.00"
+ },
+ "Resultado del Ejercicio": {
+ "account_number": "3.4.1.00.00"
+ },
+ "account_number": "3.4.0.00.00"
+ },
+ "account_number": "3.0.0.00.00",
+ "root_type": "Equity"
}
}
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json
index 018d368..da1d10d 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json
@@ -1,6 +1,6 @@
{
"country_code": "fr",
- "name": "France - Plan Comptable G\u00e9n\u00e9ral",
+ "name": "France - Plan Comptable General",
"tree": {
"1-Comptes de Capitaux": {
"10-Capital et R\u00e9serves": {
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/gt_cuentas_plantilla.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/gt_cuentas_plantilla.json
index f7cf9a0..0434938 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/gt_cuentas_plantilla.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/gt_cuentas_plantilla.json
@@ -2,7 +2,394 @@
"country_code": "gt",
"name": "Guatemala - Cuentas",
"tree": {
- "02 - Pasivos": {
+ "Activos": {
+ "Activo Corriente": {
+ "Activos Biol\u00f3gicos": {
+ "Activos Biol\u00f3gicos a Valor Razonable": {
+ "Animales": {
+ "account_number": "1.5.2.1",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Plantas": {
+ "account_number": "1.5.2.2",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "account_number": "1.5.2",
+ "account_type": "Stock"
+ },
+ "Activos Biol\u00f3gicos al Costo": {
+ "account_number": "1.5.1",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "account_number": "1.5",
+ "account_type": "Stock"
+ },
+ "Activos Corrientes Adicionales": {
+ "Activos Diferidos o Restringidos": {
+ "Cr\u00e9dito Fiscal (IVA Por Cobrar)": {
+ "account_number": "1.1.2.1",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "account_number": "1.1.2",
+ "account_type": "Chargeable"
+ },
+ "Inversiones Corrientes no Clasificados como Equivalentes de Caja y Bancos": {
+ "account_number": "1.1.1"
+ },
+ "account_number": "1.1",
+ "account_type": "Chargeable"
+ },
+ "Activos Devengables y Otros Activos": {
+ "Activos Adicionales y Otros": {
+ "account_number": "1.6.6",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Cobrables Relacionados con Impuestos": {
+ "account_number": "1.6.2",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Contratos de Construccion": {
+ "account_number": "1.6.4",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Costos de Montaje": {
+ "account_number": "1.6.5",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Pagos Anticipados y Otros Activos Circulantes": {
+ "Seguro Pagado Anticipadamente": {
+ "account_number": "1.6.1.0",
+ "account_type": "Chargeable"
+ },
+ "account_number": "1.6.1",
+ "account_type": "Chargeable"
+ },
+ "Proveedores de Servicio": {
+ "account_number": "1.6.3",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "account_number": "1.6",
+ "account_type": "Chargeable"
+ },
+ "Activos Financieros": {
+ "Activos Financieros Clasificados por Designaci\u00f3n": {
+ "account_number": "1.4.6",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Activos Financieros Derivados": {
+ "account_number": "1.4.3",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Inversion o Participaci\u00f3n Accionaria en Empresas Afiliadas": {
+ "account_number": "1.4.1",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Inversiones Burs\u00e1tiles e Instrumentos Financieros": {
+ "account_number": "1.4.2",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Otros Activos Financieros": {
+ "account_number": "1.4.4",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Provisi\u00f3n por Riesgo de Cr\u00e9dito (agregado) (Contra-activo)": {
+ "account_number": "1.4.5",
+ "account_type": "Round Off",
+ "is_group": 1
+ },
+ "account_number": "1.4",
+ "account_type": "Chargeable"
+ },
+ "Activos Intangibles": {
+ "account_number": "1.3",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Caja y Equivalentes": {
+ "Caja": {
+ "account_number": "1.9.1",
+ "account_type": "Cash",
+ "is_group": 1
+ },
+ "Equivalentes de Efectivo (Bancos)": {
+ "Bancos Internacionales": {
+ "HSBC": {
+ "account_number": "1.9.2.2.1",
+ "account_type": "Bank"
+ },
+ "account_number": "1.9.2.2",
+ "account_type": "Bank"
+ },
+ "Bancos Nacionales": {
+ "Banco Agromercantil de Guatemala": {
+ "account_number": "1.9.2.1.2",
+ "account_type": "Bank"
+ },
+ "Banco G&T Continental": {
+ "account_number": "1.9.2.1.5",
+ "account_type": "Bank"
+ },
+ "Banco Industrial": {
+ "account_number": "1.9.2.1.1",
+ "account_type": "Bank",
+ "is_group": 1
+ },
+ "Banco Internacional": {
+ "account_number": "1.9.2.1.6",
+ "account_type": "Bank"
+ },
+ "Banco Prom\u00e9rica": {
+ "account_number": "1.9.2.1.3",
+ "account_type": "Bank"
+ },
+ "Banco de Am\u00e9rica Central": {
+ "account_number": "1.9.2.1.4",
+ "account_type": "Bank"
+ },
+ "Banco de Desarrollo Rural": {
+ "account_number": "1.9.2.1.7",
+ "account_type": "Bank"
+ },
+ "Banco de los Trabajadores": {
+ "account_number": "1.9.2.1.8",
+ "account_type": "Bank"
+ },
+ "Vivibanco": {
+ "account_number": "1.9.2.1.9",
+ "account_type": "Bank"
+ },
+ "account_number": "1.9.2.1",
+ "account_type": "Bank"
+ },
+ "Cadena de Bloques (Blockchain)": {
+ "Billetera Bitcoin 1234567890abcdefg": {
+ "account_number": "1.9.2.3.1",
+ "account_type": "Cash"
+ },
+ "account_number": "1.9.2.3",
+ "account_type": "Cash"
+ },
+ "account_number": "1.9.2",
+ "account_type": "Bank"
+ },
+ "Inversiones a Corto Plazo": {
+ "account_number": "1.9.3",
+ "account_type": "Bank",
+ "is_group": 1
+ },
+ "Otros Equivalentes de Caja y Bancos": {
+ "account_number": "1.9.4",
+ "account_type": "Cash",
+ "is_group": 1
+ },
+ "account_number": "1.9",
+ "account_type": "Bank"
+ },
+ "Cobrables": {
+ "Activos bajo Contrato": {
+ "account_number": "1.8.2",
+ "account_type": "Receivable",
+ "is_group": 1
+ },
+ "Ajustes": {
+ "account_number": "1.8.4",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "Otras Cuentas por Cobrar": {
+ "Cuentas Por Cobrar Compa\u00f1\u00edas Afiliadas": {
+ "Compa\u00f1\u00eda subsidiaria (EJEMPLO)": {
+ "account_number": "1.8.3.2.1",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.8.3.2",
+ "account_type": "Receivable"
+ },
+ "Cuentas por Cobrar a Empleados": {
+ "Prestamo EJEMPLO": {
+ "account_number": "1.8.3.3.1",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.8.3.3",
+ "account_type": "Receivable"
+ },
+ "Cuentas por Cobrar a Otras Entidades no Afiliadas": {
+ "Compa\u00f1\u00eda No Afiliada (EJEMPLO)": {
+ "account_number": "1.8.3.1.1",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.8.3.1",
+ "account_type": "Receivable"
+ },
+ "account_number": "1.8.3",
+ "account_type": "Receivable"
+ },
+ "Ventas al Cr\u00e9dito": {
+ "account_number": "1.8.1",
+ "account_type": "Receivable",
+ "is_group": 1
+ },
+ "account_number": "1.8",
+ "account_type": "Receivable"
+ },
+ "Impuestos por Cobrar": {
+ "Retenciones de IVA recibidas": {}
+ },
+ "Inventario": {
+ "Art\u00edculos de Inventario Adicionales": {
+ "account_number": "1.7.8",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Combustibles": {
+ "account_number": "1.7.5",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Inventarios Pignorados Como Garant\u00eda de Pasivo": {
+ "account_number": "1.7.10",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Inventarios a Valor Razonable Menos Costos de Venta": {
+ "account_number": "1.7.11",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Materia Prima": {
+ "account_number": "1.7.1",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Mercader\u00eda (Mercanc\u00edas)": {
+ "account_number": "1.7.2",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Otros Inventarios": {
+ "Merma o Ajuste de Inventario": {
+ "account_number": "1.7.9.1",
+ "account_type": "Stock Adjustment",
+ "is_group": 1
+ },
+ "account_number": "1.7.9",
+ "account_type": "Stock"
+ },
+ "Producto Terminado": {
+ "account_number": "1.7.7",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Repuestos": {
+ "Respuestos en Transito": {
+ "account_number": "1.7.4.0",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "account_number": "1.7.4",
+ "account_type": "Stock"
+ },
+ "Suministros de Producci\u00f3n y Consumibles": {
+ "account_number": "1.7.3",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "Trabajo en Progeso": {
+ "account_number": "1.7.6",
+ "account_type": "Stock",
+ "is_group": 1
+ },
+ "account_number": "1.7",
+ "account_type": "Stock"
+ },
+ "Inversion en Propiedades": {
+ "Inversion Inmobiliaria Bajo Construccion": {
+ "account_number": "1.2.1",
+ "account_type": "Chargeable"
+ },
+ "Inversion Inmobiliaria Construida": {
+ "account_number": "1.2.2",
+ "account_type": "Chargeable",
+ "is_group": 1
+ },
+ "account_number": "1.2",
+ "account_type": "Chargeable"
+ },
+ "account_number": "1.0"
+ },
+ "No Corriente": {
+ "Activos Fijos": {
+ "account_type": "Fixed Asset"
+ },
+ "Cargos Diferidos": {}
+ },
+ "account_number": "1",
+ "root_type": "Asset"
+ },
+ "Costos": {
+ "Costo de Ventas": {
+ "account_type": "Cost of Goods Sold"
+ },
+ "Costos Incluidos en la Valuaci\u00f3n": {
+ "account_type": "Expenses Included In Valuation"
+ },
+ "Merma o Ajuste de Inventario": {
+ "account_type": "Stock Adjustment"
+ },
+ "account_number": "5",
+ "root_type": "Expense"
+ },
+ "Gastos": {
+ "Alquileres": {},
+ "Depreciaciones": {
+ "account_type": "Depreciation"
+ },
+ "Gastos Diversos": {},
+ "Gastos de Personal": {},
+ "Honorarios Profesionales": {},
+ "Mantenimiento": {},
+ "Seguros": {},
+ "Servicios B\u00e1sicos": {},
+ "account_number": "6",
+ "root_type": "Expense"
+ },
+ "Ingresos": {
+ "Productos": {},
+ "Servicios": {},
+ "account_number": "4",
+ "root_type": "Income"
+ },
+ "Otros Gastos y Productos Financieros": {
+ "Otros Gastos": {
+ "Otros Gastos y Productos Financieros 2": {
+ "Intereses 1": {},
+ "Otros Gastos Financieros 1": {}
+ }
+ },
+ "Otros Ingresos": {
+ "Otros Gastos y Productos Financieros 1": {
+ "Intereses": {},
+ "Otros Gastos Financieros": {}
+ }
+ },
+ "account_number": "7",
+ "root_type": "Expense"
+ },
+ "Pasivos": {
"Pasivo Corriente": {
"Acreedores 1": {
"account_type": "Payable"
@@ -22,329 +409,14 @@
"Acreedores": {},
"Provisi\u00f3n para Indemnizaciones": {}
},
+ "account_number": "2",
"root_type": "Liability"
},
- "03 - Patrimonio": {
+ "Patrimonio": {
"Capital": {},
"Resultados del Ejercicio": {},
"Utilidades Retenidas": {},
- "root_type": "Asset"
- },
- "04 - Ingresos": {
- "Productos": {},
- "Servicios": {},
- "root_type": "Income"
- },
- "05 - Costos": {
- "Costo de Ventas": {
- "account_type": "Cost of Goods Sold"
- },
- "Costos Incluidos en la Valuaci\u00f3n": {
- "account_type": "Expenses Included In Valuation"
- },
- "Merma o Ajuste de Inventario": {
- "account_type": "Stock Adjustment"
- },
- "root_type": "Expense"
- },
- "06 - Gastos": {
- "Alquileres": {},
- "Depreciaciones": {
- "account_type": "Depreciation"
- },
- "Gastos Diversos": {},
- "Gastos de Personal": {},
- "Honorarios Profesionales": {},
- "Mantenimiento": {},
- "Seguros": {},
- "Servicios B\u00e1sicos": {},
- "root_type": "Expense"
- },
- "07 - Otros Gastos y Productos Financieros": {
- "Otros Gastos": {
- "Otros Gastos y Productos Financieros 2": {
- "Intereses 1": {},
- "Otros Gastos Financieros 1": {}
- }
- },
- "Otros Ingresos": {
- "Otros Gastos y Productos Financieros 1": {
- "Intereses": {},
- "Otros Gastos Financieros": {}
- }
- },
- "root_type": "Expense"
- },
- "1 - Activos": {
- "1. Activo Corriente": {
- "1.10 Activos Corrientes Adicionales": {
- "1.10.1 Inversiones Corrientes no Clasificados como Equivalentes de Caja y Bancos": {},
- "1.10.2 Activos Diferidos o Restringidos": {
- "1.10.2.1 Cr\u00e9dito Fiscal (IVA Por Cobrar)": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "account_type": "Chargeable"
- },
- "account_type": "Chargeable"
- },
- "1.2 Inversion en Propiedades": {
- "1.2.1 Inversion Inmobiliaria Bajo Construccion": {
- "account_type": "Chargeable"
- },
- "1.2.2 Inversion Inmobiliaria Construida": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "account_type": "Chargeable"
- },
- "1.3 Activos Intangibles": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.4 Activos Financieros": {
- "1.4.1 Inversion o Participaci\u00f3n Accionaria en Empresas Afiliadas": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.4.2 Inversiones Burs\u00e1tiles e Instrumentos Financieros": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.4.3 Activos Financieros Derivados": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.4.4 Otros Activos Financieros": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.4.5 Provisi\u00f3n por Riesgo de Cr\u00e9dito (agregado) (Contra-activo)": {
- "account_type": "Round Off",
- "is_group": 1
- },
- "1.4.6 Activos Financieros Clasificados por Designaci\u00f3n": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "account_type": "Chargeable"
- },
- "1.5 Activos Biol\u00f3gicos": {
- "1.5.1 Activos Biol\u00f3gicos al Costo": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.5.2 Activos Biol\u00f3gicos a Valor Razonable": {
- "1.5.2.1 Animales": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.5.2.2 Plantas": {
- "1.5.2.2.1 Division productiva 1er nivel EJEMPLO": {
- "1.5.2.2.1.1 Division Productiva 2do nivel EJEMPLO": {
- "1.5.2.2.1.1.1 Division Productiva 3er Nivel EJEMPLO": {
- "1.5.2.2.1.1.1.1 Divisi\u00f3n Productiva 4\u00ba Nivel EJEMPLO": {},
- "account_type": "Stock"
- },
- "account_type": "Stock"
- },
- "account_type": "Stock"
- },
- "account_type": "Stock"
- },
- "account_type": "Stock"
- },
- "account_type": "Stock"
- },
- "1.6 Activos Devengables y Otros Activos": {
- "1.6.1 Pagos Anticipados y Otros Activos Circulantes": {
- "1.6.1.0 Seguro Pagado Anticipadamente": {
- "account_type": "Chargeable"
- },
- "account_type": "Chargeable"
- },
- "1.6.2 Cobrables Relacionados con Impuestos": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.6.3 Proveedores de Servicio": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.6.4 Contratos de Construccion": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.6.5 Costos de Montaje": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "1.6.6 Activos Adicionales y Otros": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "account_type": "Chargeable"
- },
- "1.7 Inventario": {
- "1.7.1 Materia Prima": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.10 Inventarios Pignorados Como Garant\u00eda de Pasivo": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.11 Inventarios a Valor Razonable Menos Costos de Venta": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.2 Mercader\u00eda (Mercanc\u00edas)": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.3 Suministros de Producci\u00f3n y Consumibles": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.4 Repuestos": {
- "1.7.4.0 Respuestos en Transito": {
- "account_type": "Stock",
- "is_group": 1
- },
- "account_type": "Stock"
- },
- "1.7.5 Combustibles": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.6 Trabajo en Progeso": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.7 Producto Terminado": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.8 Art\u00edculos de Inventario Adicionales": {
- "account_type": "Stock",
- "is_group": 1
- },
- "1.7.9 Otros Inventarios": {
- "1.7.9.1 Merma o Ajuste de Inventario": {
- "account_type": "Stock Adjustment",
- "is_group": 1
- },
- "account_type": "Stock"
- },
- "account_type": "Stock"
- },
- "1.8 Cobrables": {
- "1.8.1 Ventas al Cr\u00e9dito": {
- "account_type": "Receivable",
- "is_group": 1
- },
- "1.8.2 Activos bajo Contrato": {
- "account_type": "Receivable",
- "is_group": 1
- },
- "1.8.3 Otras Cuentas por Cobrar": {
- "1.8.3.1 Cuentas por Cobrar a Otras Entidades no Afiliadas": {
- "1.8.3.1.1 Compa\u00f1\u00eda No Afiliada (EJEMPLO)": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "1.8.3.2 Cuentas Por Cobrar Compa\u00f1\u00edas Afiliadas": {
- "1.8.3.2.1 Compa\u00f1\u00eda subsidiaria (EJEMPLO)": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "1.8.3.3 Cuentas por Cobrar a Empleados": {
- "1.8.3.3.1 Prestamo EJEMPLO": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "1.8.4 Ajustes": {
- "account_type": "Chargeable",
- "is_group": 1
- },
- "account_type": "Receivable"
- },
- "1.9 Caja y Equivalentes": {
- "1.9.1 Caja": {
- "account_type": "Cash",
- "is_group": 1
- },
- "1.9.2 Equivalentes de Efectivo (Bancos)": {
- "1.9.2.1 Bancos Nacionales": {
- "1.9.2.1.1 Banco Industrial": {
- "account_type": "Bank",
- "is_group": 1
- },
- "1.9.2.1.2 Banco Agromercantil de Guatemala": {
- "account_type": "Bank"
- },
- "1.9.2.1.3 Banco Prom\u00e9rica": {
- "account_type": "Bank"
- },
- "1.9.2.1.4 Banco de Am\u00e9rica Central": {
- "account_type": "Bank"
- },
- "1.9.2.1.5 Banco G&T Continental": {
- "account_type": "Bank"
- },
- "1.9.2.1.6 Banco Internacional": {
- "account_type": "Bank"
- },
- "1.9.2.1.7 Banco de Desarrollo Rural": {
- "account_type": "Bank"
- },
- "1.9.2.1.8 Banco de los Trabajadores": {
- "account_type": "Bank"
- },
- "1.9.2.1.9 Vivibanco": {
- "account_type": "Bank"
- },
- "account_type": "Bank"
- },
- "1.9.2.2 Bancos Internacionales": {
- "1.9.2.2.1 HSBC": {
- "account_type": "Bank"
- },
- "account_type": "Bank"
- },
- "1.9.2.3 Cadena de Bloques (Blockchain)": {
- "1.9.2.3.1 Billetera Bitcoin 1234567890abcdefg": {
- "account_type": "Cash"
- },
- "account_type": "Cash"
- },
- "account_type": "Bank"
- },
- "1.9.3 Inversiones a Corto Plazo": {
- "account_type": "Bank",
- "is_group": 1
- },
- "1.9.4 Otros Equivalentes de Caja y Bancos": {
- "account_type": "Cash",
- "is_group": 1
- },
- "account_type": "Bank"
- },
- "Impuestos por Cobrar": {
- "Retenciones de IVA recibidas": {}
- }
- },
- "No Corriente": {
- "Activos Fijos": {
- "account_type": "Fixed Asset"
- },
- "Cargos Diferidos": {}
- },
+ "account_number": "3",
"root_type": "Asset"
}
}
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/hu_chart_of_accounts.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/hu_chart_of_accounts.json
index fe4c484..3ed6b1d 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/hu_chart_of_accounts.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/hu_chart_of_accounts.json
@@ -527,7 +527,7 @@
"root_type": "Liability"
},
"5. SZ\u00c1MLAOSZT\u00c1LY K\u00d6LTS\u00c9GNEMEK": {
- "51 - 53 ANYAGJELLEG\u00db R\u00c1FORD\u00cdT\u00c1SOK ": {
+ "51 - 53. ANYAGJELLEG\u00db R\u00c1FORD\u00cdT\u00c1SOK ": {
"51. ANYAGK\u00d6LTS\u00c9G": {
"511. V\u00e1s\u00e1rolt anyagok k\u00f6lts\u00e9gei ": {
"5111. Alapanyag k\u00f6lts\u00e9gek": {},
@@ -618,23 +618,8 @@
"581. Saj\u00e1t termel\u00e9s\u0171 k\u00e9szletek \u00e1llom\u00e1nyv\u00e1ltoz\u00e1sa ": {},
"582. Saj\u00e1t el\u0151\u00e1ll\u00edt\u00e1s\u00fa eszk\u00f6z\u00f6k aktiv\u00e1lt \u00e9rt\u00e9ke": {},
"589. Aktiv\u00e1lt saj\u00e1t teljes\u00edtm\u00e9nyek \u00e1tvezet\u00e9si sz\u00e1mla": {}
- },
- "59. K\u00d6LTS\u00c9GNEM ELLENSZ\u00c1MLA (els\u0151dleges k\u00f6lts\u00e9ghely-k\u00f6lts\u00e9gvisel\u0151 elsz\u00e1mol\u00f3s eset\u00e9n) ": {
- "is_group": 1
- },
- "59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA (els\u0151dleges k\u00f6lts\u00e9gnem-elsz\u00e1mol\u00e1s eset\u00e9n)": {
- "is_group": 1
- },
- "59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA (els\u0151dleges k\u00f6lts\u00e9gnem-elsz\u00e1mol\u00e1s eset\u00e9n, kiz\u00e1r\u00f3lag \u00f6sszk\u00f6lts\u00e9g elj\u00e1r\u00e1ssal)": {
- "59/51. Anyagk\u00f6lts\u00e9g \u00e1tvezet\u00e9si sz\u00e1mla": {},
- "59/52. Ig\u00e9nybe vett szolg\u00e1ltat\u00e1sok k\u00f6lts\u00e9gei \u00e1tvezet\u00e9si sz\u00e1mla ": {},
- "59/53. Egy\u00e9b szolg\u00e1ltat\u00e1sok k\u00f6lts\u00e9gei \u00e1tvezet\u00e9si sz\u00e1mla ": {},
- "59/54. B\u00e9rk\u00f6lts\u00e9g \u00e1tvezet\u00e9si sz\u00e1mla": {},
- "59/55. Szem\u00e9lyi jelleg\u0171 egy\u00e9b kifizet\u00e9sek \u00e1tvezet\u00e9si sz\u00e1mla ": {},
- "59/56. B\u00e9rj\u00e1rul\u00e9kok \u00e1tvezet\u00e9si sz\u00e1mla": {},
- "59/57. \u00c9rt\u00e9kcs\u00f6kken\u00e9si le\u00edr\u00e1s \u00e1tvezet\u00e9si sz\u00e1mla ": {}
- },
- "59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA (kiz\u00e1r\u00f3lag k\u00f6lts\u00e9gnem-elsz\u00e1mol\u00e1s \u00e9s forgalmi k\u00f6lts\u00e9g elj\u00e1r\u00e1ssal)": {
+ },
+ "59. K\u00d6LTS\u00c9GNEM \u00c1TVEZET\u00c9SI SZ\u00c1MLA": {
"is_group": 1
},
"root_type": "Expense"
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/id_chart_of_accounts.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/id_chart_of_accounts.json
index b37e171..37f57ec 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/id_chart_of_accounts.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/id_chart_of_accounts.json
@@ -2,358 +2,686 @@
"country_code": "id",
"name": "Indonesia - Chart of Accounts",
"tree": {
- "1000.0000 Aktiva": {
- "1100.0000 Aktiva Lancar": {
- "1110.0000 Kas": {
- "1111.000 Kas Rupiah": {
- "1111.0010 Kas Kecil": {
- "account_type": "Cash"
- },
- "1111.0020 Kas Besar": {
- "account_type": "Cash"
- },
- "account_type": "Cash"
+ "Aktiva": {
+ "Aktiva Lancar": {
+ "Akun sementara": {
+ "Pembukaan sementara": {
+ "account_number": "1171.000",
+ "account_type": "Temporary"
},
- "1112.000 Kas Mata Uang Lain": {
- "1112.0010 Kas USD": {
- "account_type": "Cash"
- }
- }
+ "account_number": "1170.000"
},
- "1120.000 Bank ": {
- "1121.000 Bank Rupiah": {
- "is_group": 1
+ "Bank ": {
+ "Bank Other Currency": {
+ "account_number": "1122.000",
+ "is_group": 1
},
- "1122.000 Bank Other Currency": {
- "is_group": 1
+ "Bank Rupiah": {
+ "account_number": "1121.000",
+ "is_group": 1
},
+ "account_number": "1120.000",
"account_type": "Bank"
},
- "1130.000 Piutang": {
- "1131.000 Piutang Dagang": {
- "1131.0010 Piutang Dagang": {
- "account_type": "Receivable"
- }
+ "Biaya di Bayar di Muka": {
+ "Biaya di Bayar di Muka": {
+ "Biaya di Bayar di Muka": {
+ "Biaya d Bayar di Muka": {
+ "account_number": "1151.00111"
+ },
+ "account_number": "1151.001"
+ },
+ "account_number": "1151.000"
},
- "1132.000 Piutang Lain lain": {
- "1132.001 Piutang Lain-lain 1": {
- "account_type": "Receivable"
- }
- }
+ "account_number": "1150.000"
},
- "1140.000 Persediaan Barang": {
- "1141.000 Persediaan Barang": {
+ "Kas": {
+ "Kas Mata Uang Lain": {
+ "Kas USD": {
+ "account_number": "1112.0010",
+ "account_type": "Cash"
+ },
+ "account_number": "1112.000"
+ },
+ "Kas Rupiah": {
+ "Kas Besar": {
+ "account_number": "1111.0020",
+ "account_type": "Cash"
+ },
+ "Kas Kecil": {
+ "account_number": "1111.0010",
+ "account_type": "Cash"
+ },
+ "account_number": "1111.000",
+ "account_type": "Cash"
+ },
+ "account_number": "1110.0000"
+ },
+ "Pendapatan Yang Akan di Terima": {
+ "Pendapatan Yang di Terima": {
+ "Pendapatan Yang Akan di Terima": {
+ "account_number": "1161.001"
+ },
+ "account_number": "1161.000"
+ },
+ "account_number": "1160.000"
+ },
+ "Persediaan Barang": {
+ "Persediaan Barang": {
+ "account_number": "1141.000",
"account_type": "Stock",
"is_group": 1
},
- "1142.000 Uang Muka Pembelian": {
- "1142.001 Uang Muka Pembelian": {
+ "Uang Muka Pembelian": {
+ "Uang Muka Pembelian": {
+ "account_number": "1142.001",
"account_type": "Bank"
- }
- }
- },
- "1150.000 Biaya di Bayar di Muka": {
- "1151.000 Biaya di Bayar di Muka": {
- "1151.001 Biaya di Bayar di Muka": {
- "1151.00111 Biaya d Bayar di Muka": {}
- }
- }
- },
- "1160.000 Pendapatan Yang Akan di Terima": {
- "1161.000 Pendapatan Yang di Terima": {
- "1161.001 Pendapatan Yang Akan di Terima": {}
- }
- },
- "1170.000 Akun sementara": {
- "1171.000 Pembukaan sementara": {
- "account_type": "Temporary"
- }
- }
- },
- "1200.000 Aktiva Tetap": {
- "1210.000 Aktiva": {
- "1211.000 Aktiva": {
- "1211.001 Aktiva": {
- "account_type": "Fixed Asset"
- }
+ },
+ "account_number": "1142.000"
},
- "1212.000 Akumulasi Penyusutan Aktiva": {
- "1212.001 Akumulasi Penyusutan Aktiva": {
- "account_type": "Accumulated Depreciation"
- }
- }
+ "account_number": "1140.000"
},
- "1230.000 Investasi": {
- "1231.000 Investasi": {
- "1231.001 Investai Saham": {
- "1231.0011 Investasi Saham": {}
+ "Piutang": {
+ "Piutang Dagang": {
+ "Piutang Dagang": {
+ "account_number": "1131.0010",
+ "account_type": "Receivable"
},
- "1231.002 Investasi Perumahan": {
- "1231.0021 Investasi Perumahan": {}
+ "account_number": "1131.000"
+ },
+ "Piutang Lain lain": {
+ "Piutang Lain-lain 1": {
+ "account_number": "1132.001",
+ "account_type": "Receivable"
},
- "1231.003 Deposito": {
- "is_group": 1
- }
- }
- }
+ "account_number": "1132.000"
+ },
+ "account_number": "1130.000"
+ },
+ "account_number": "1100.0000"
},
+ "Aktiva Tetap": {
+ "Aktiva": {
+ "Aktiva": {
+ "Aktiva": {
+ "account_number": "1211.001",
+ "account_type": "Fixed Asset"
+ },
+ "account_number": "1211.000"
+ },
+ "Akumulasi Penyusutan Aktiva": {
+ "Akumulasi Penyusutan Aktiva": {
+ "account_number": "1212.001",
+ "account_type": "Accumulated Depreciation"
+ },
+ "account_number": "1212.000"
+ },
+ "account_number": "1210.000"
+ },
+ "Investasi": {
+ "Investasi": {
+ "Deposito": {
+ "account_number": "1231.003",
+ "is_group": 1
+ },
+ "Investai Saham": {
+ "Investasi Saham": {
+ "account_number": "1231.0011"
+ },
+ "account_number": "1231.001"
+ },
+ "Investasi Perumahan": {
+ "Investasi Perumahan": {
+ "account_number": "1231.0021"
+ },
+ "account_number": "1231.002"
+ },
+ "account_number": "1231.000"
+ },
+ "account_number": "1230.000"
+ },
+ "account_number": "1200.000"
+ },
+ "account_number": "1000.0000",
"root_type": "Asset"
},
- "2000.000 Passiva": {
- "2100.000 Pasiva Lancar": {
- "2110.000 Hutang Dagang": {
- "2111.000 Hutang Dagang Rupiah": {
- "2111.001 Hutang Dagang Dalam Negeri": {
- "account_type": "Payable"
- },
- "2111.002 Hutang Dagang Luar Negeri": {
- "account_type": "Payable"
- },
- "2111.003 Hutang Dagang Biaya Kirim Dalam Negeri": {
- "account_type": "Payable"
- },
- "2111.004 HUtang Dagang Biaya Kirim Luar Negeri": {
- "account_type": "Payable"
- }
+ "Beban": {
+ "Beban Lain lain": {
+ "Beban Lain lain": {
+ "Beban Adm Bank": {
+ "account_number": "5510.001"
},
- "2112.000 Hutang Dagang Other Currency": {
- "2112.001 Hutang Dagang Luar Negeri (USD)": {
- "account_type": "Payable"
- },
- "2112.002 Hutang Dagang Luar Negeri (SGD)": {
- "account_type": "Payable"
- },
- "2112.003 Hutang Dagang Biaya Kirim Luar Negeri (USD)": {
- "account_type": "Payable"
- },
- "2112.004 Hutang Dagang Biaya Kirim Luar Negeri (SGD)": {
- "account_type": "Payable"
- },
- "2112.005 Hutang Dagang Biaya Kirim Dalam Negeri": {
- "account_type": "Payable"
- }
+ "Beban Bunga Kredit Rekening Koran Bank": {
+ "account_number": "5510.004"
},
- "2115.000 Stock Diterima Tapi Tidak Ditagih": {
- "account_type": "Stock Received But Not Billed"
- }
- },
- "2120.000 Pendapatan di Terima di Muka": {
- "2121.000 Pendapatan di Terima di Muka": {
- "2121.001 Dp Penjualan": {
- "account_type": "Bank"
- }
- }
- },
- "2130.000 Biaya Yang Akan di Bayar": {
- "2131.000 Biaya Yang Akan di Bayar": {
- "2131.001 Biaya Yang Akan di Bayar": {}
+ "Beban Bunga Pinjaman Pada Pihak Ke 3": {
+ "account_number": "5510.005"
},
- "2132.000 Biaya Yang Akan di Bayar - Freight": {
- "2132.001 Biaya Yang Akan di Bayar - Freight": {
- "account_type": "Expenses Included In Valuation"
- }
- }
- },
- "2140.000 Hutang Pajak": {
- "2141.000 Hutang Pajak": {
- "account_type": "Payable"
- }
- }
- },
- "2200.000 Passiva Tetap": {
- "2210.000 Hutang Pada Pihak ke 3": {
- "2211.000 Pinjaman Pihak ke 3 Rutin": {
- "2211.001 Hutang": {}
+ "Beban Notaris Dan ADM Kredit Bank": {
+ "account_number": "5510.003"
},
- "2212.000 Pinjaman Pihak ke 3 Tidak Rutin": {
- "2212.001 Hutang": {}
+ "Beban Pajak Bumi & Bangunan": {
+ "account_number": "5510.006"
},
- "2213.000 Hutang Bunga Pinjaman Pihak Ke 3 Tidak Rutin": {
- "2213.001 Hutang Bunga": {}
- }
+ "Beban Pajak PPN": {
+ "account_number": "5510.008"
+ },
+ "Beban Pajak Penghasilan ": {
+ "account_number": "5510.007"
+ },
+ "Beban Provisi Pinjaman Bank": {
+ "account_number": "5510.002"
+ },
+ "Selisih Kurs": {
+ "account_number": "5510.010",
+ "account_type": "Round Off"
+ },
+ "Selisih Pembayaran Customer": {
+ "account_number": "5510.009",
+ "account_type": "Round Off"
+ },
+ "account_number": "5510.000"
},
- "2220.000 Hutang Pada Bank": {
- "2221.000 Hutang Bank": {
- "2221.001 Hutang": {}
- }
- },
- "2230.000 Hutang Leasing Kendaraan": {
- "2231.000 Hutang Leasing Kendaraan": {
- "2231.001 Hutang Leasing Kendaraan": {}
- }
- },
- "2240.000 Hutang Lain Lain": {
- "2241.000 Hutang Lain Lain": {
- "2241.001 Hutang": {}
- }
- }
+ "account_number": "5500.000"
},
- "root_type": "Liability"
- },
- "3000.000 Modal": {
- "3100.000 Modal": {
- "3110.000 Modal di Setor": {},
- "3120.000 Prive P.Saham": {},
- "3130.000 Saldo pembukaan Equity": {}
- },
- "3200.000 Laba": {
- "3210.000 Laba di Tahan": {},
- "3220.000 Laba Tahun Berjalan": {},
- "3230.000 Laba Periode Berjalan": {}
- },
- "root_type": "Equity"
- },
- "4000.000 Penjualan": {
- "4100.000 Penjualan Barang Dagangan": {
- "4110.000 Penjualan": {},
- "4120.000 Retur Penjualan": {},
- "4130.000 Potongan Penjualan": {}
- },
- "4200.000 Harga Pokok Pembelian": {
- "4210.000 HPP Pembelian": {
- "account_type": "Cost of Goods Sold"
- }
- },
- "4300.000 Pendapatan Service/Jasa": {
- "4310.000 Pendapatan Service": {}
- },
- "4400.000 Pendapatan Lain lain": {
- "4410.000 Pendapatan Bunga Bank": {},
- "4420.000 Pendapatan Bunga Dari Pihak Ke 3": {},
- "4430.000 Pendapatan Keuntungan Penjualan Aktiva": {},
- "4440.000 Pendapatan Komisi": {},
- "4450.000 Pendapatan Sewa Gudang": {},
- "4460.000 Pendapatan Sewa Lain lain": {},
- "4470.000 Pendapatan Penjualan Barang BS": {},
- "4480.000 Pendapatan Lain lain": {}
- },
- "root_type": "Income"
- },
- "5000.000 Beban": {
- "5100.000 Beban Langsung": {
- "5110.000 Beban Penjualan": {
- "5110.001 Biaya BBM": {},
- "5110.002 Biaya Tol": {},
- "5110.003 Biaya Parkir": {},
- "5110.004 Biaya Upah Angkat/Turun Barang": {},
- "5110.005 Biaya Kuli": {},
- "5110.006 Biaya Perjalanan Dinas": {},
- "5110.007 Biaya Barang Rusak": {},
- "5110.008 Biaya Perbaikan Kendaraan Operasional": {},
- "5110.009 Biaya Asuransi Kendaraan Operasional": {},
- "5110.010 Biaya Leasing Kendaraan Operasional": {},
- "5110.011 Biaya Kebutuhan Penjualan": {},
- "5110.012 Biaya Sample": {},
- "5110.013 Biaya Bonus, Hadiah, dan Sampel": {},
- "5110.014 Biaya Entertainment dan Pergaulan": {},
- "5110.015 Biaya Sewa Gudang": {},
- "5110.016 Biaya Sewa Peralatan Gudang": {},
- "5110.017 Biaya Piutang Tak Tertagih": {},
- "5110.018 Potongan Supplier": {},
- "5110.019 Biaya Penjualan Lain Lain": {},
- "5110.020 Penyesuaian Stock": {
+ "Beban Langsung": {
+ "Beban Penjualan": {
+ "Biaya Asuransi Kendaraan Operasional": {
+ "account_number": "5110.009"
+ },
+ "Biaya BBM": {
+ "account_number": "5110.001"
+ },
+ "Biaya Barang Rusak": {
+ "account_number": "5110.007"
+ },
+ "Biaya Bonus, Hadiah, dan Sampel": {
+ "account_number": "5110.013"
+ },
+ "Biaya Entertainment dan Pergaulan": {
+ "account_number": "5110.014"
+ },
+ "Biaya Kebutuhan Penjualan": {
+ "account_number": "5110.011"
+ },
+ "Biaya Kuli": {
+ "account_number": "5110.005"
+ },
+ "Biaya Leasing Kendaraan Operasional": {
+ "account_number": "5110.010"
+ },
+ "Biaya Parkir": {
+ "account_number": "5110.003"
+ },
+ "Biaya Penjualan Lain Lain": {
+ "account_number": "5110.019"
+ },
+ "Biaya Perbaikan Kendaraan Operasional": {
+ "account_number": "5110.008"
+ },
+ "Biaya Perjalanan Dinas": {
+ "account_number": "5110.006"
+ },
+ "Biaya Piutang Tak Tertagih": {
+ "account_number": "5110.017"
+ },
+ "Biaya Sample": {
+ "account_number": "5110.012"
+ },
+ "Biaya Sewa Gudang": {
+ "account_number": "5110.015"
+ },
+ "Biaya Sewa Peralatan Gudang": {
+ "account_number": "5110.016"
+ },
+ "Biaya Susut Barang": {
+ "account_number": "5110.021"
+ },
+ "Biaya Tol": {
+ "account_number": "5110.002"
+ },
+ "Biaya Upah Angkat/Turun Barang": {
+ "account_number": "5110.004"
+ },
+ "Penyesuaian Stock": {
+ "account_number": "5110.020",
"account_type": "Stock Adjustment"
},
- "5110.021 Biaya Susut Barang": {}
- },
- "5120.000 Biaya Gaji & Kesejahteraan Pegawai": {
- "5120.001 Biaya Gaji Staff & Karyawan Tetap": {},
- "5120.002 Biaya Gaji Karyawan Harian": {},
- "5120.003 Biaya Pengobatan": {},
- "5120.004 Biaya Asuransi Kesehatan Pegawai": {},
- "5120.005 Biaya THR, Bonus, dan Komisi": {},
- "5120.006 Biaya Konsumsi": {},
- "5120.007 Biaya Gaji & Kesejahteraan Lainnya": {}
- },
- "5130.000 Biaya Kantor & Gudang": {
- "5130.001 Biaya PLN Gudang & Kantor": {},
- "5130.002 Biaya PAM Gudang & Kantor": {},
- "5130.003 Biaya TLP Gudang & Kantor": {},
- "5130.004 Biaya Fotocopy, Photo, Print Out": {},
- "5130.005 Biaya Alat Tulis Kantor": {},
- "5130.006 Biaya Stamp Duty & Pos": {},
- "5130.007 Biaya Servis Peralatan Gudang": {},
- "5130.008 Biaya Pemeliharaan Bgn Gudang": {},
- "5130.009 Biaya Humas & Pergaulan": {},
- "5130.010 Biaya Perlengkapan Gudang": {},
- "5130.011 Iuran Bulanan": {},
- "5130.012 Biaya Serba Serbi": {},
- "5130.013 Biaya Sewa Kantor": {},
- "5130.014 Biaya Asuransi Bangunan": {},
- "5130.015 Biaya Sumbangan": {},
- "5130.016 Biaya Perizinan Usaha dan Bangunan": {},
- "5130.017 Biaya Perizinan Kendaraan Operasional": {},
- "5130.018 Biaya KTR & GDG Lain Lain": {}
- }
- },
- "5200.000 Beban Tidak Langsung": {
- "5210.000 Biaya Gaji & Kesejahteraan Pegawai Indirect": {
- "5210.001 Biaya Gaji Staff": {},
- "5210.002 Biaya THR dan Bonus Staff": {},
- "5210.003 Biaya Pengobatan & Kesehatan": {},
- "5210.004 Biaya Konsumsi": {},
- "5210.005 Biaya Gaji Lain Lain": {}
- },
- "5220.000 Biaya Operational Indirect": {
- "5220.001 Biaya BBM": {},
- "5220.002 Biaya Tol & Parkir": {},
- "5220.003 Biaya TLP & HP": {},
- "5220.004 Biaya Perjalanan Dinas": {},
- "5220.005 Biaya Perbaikan Kendaraan Dinas": {},
- "5220.006 Biaya Asuransi Kendaraan Dinas": {},
- "5220.007 Biaya Leasing Kendaraan Dinas": {},
- "5220.008 Biaya Entertainment dan Pergaulan": {},
- "5220.009 Biaya Hadiah dan Bonus": {}
- },
- "5230.000 Biaya Kantor Indirect": {
- "5230.001 Biaya PLN Kantor": {},
- "5230.002 Biaya PAM Kantor": {},
- "5230.003 Biaya TLP Kantor": {},
- "5230.004 Biaya Sewa Kantor": {},
- "5230.005 Biaya Asuransi Bangunan": {},
- "5230.006 Biaya Alat Tulis Kantor": {},
- "5230.007 Biaya Fotocopy, Photo, Print Out": {},
- "5230.008 Biaya Kirim Dokumen": {},
- "5230.009 Biaya Perlengkapan & Peralatan Kantor": {},
- "5230.010 Service Peralatan Kantor": {},
- "5230.011 Biaya Pemeliharaan Bangunan Kantor": {},
- "5230.012 Biaya Iuran Bulanan": {},
- "5230.013 Biaya Sumbangan": {},
- "5230.014 Biaya Perizinan Bangunan": {},
- "5230.015 Biaya Perizinan Kendaraan Dinas": {},
- "5230.016 Biaya KTR Lain Lain": {},
- "5230.017 Biaya Stamp Duty & Pos": {}
- }
- },
- "5300.000 Biaya Penyusutan": {
- "5310.000 Biaya Penyusutan": {
- "5310.001 By Peny Aktiva ": {
- "account_type": "Depreciation"
- }
- }
- },
- "5400.000 Biaya Amortisasi": {
- "5410.000 Biaya Amortisasi": {}
- },
- "5500.000 Beban Lain lain": {
- "5510.000 Beban Lain lain": {
- "5510.001 Beban Adm Bank": {},
- "5510.002 Beban Provisi Pinjaman Bank": {},
- "5510.003 Beban Notaris Dan ADM Kredit Bank": {},
- "5510.004 Beban Bunga Kredit Rekening Koran Bank": {},
- "5510.005 Beban Bunga Pinjaman Pada Pihak Ke 3": {},
- "5510.006 Beban Pajak Bumi & Bangunan": {},
- "5510.007 Beban Pajak Penghasilan ": {},
- "5510.008 Beban Pajak PPN": {},
- "5510.009 Selisih Pembayaran Customer": {
- "account_type": "Round Off"
+ "Potongan Supplier": {
+ "account_number": "5110.018"
},
- "5510.010 Selisih Kurs": {
- "account_type": "Round Off"
- }
- }
+ "account_number": "5110.000"
+ },
+ "Biaya Gaji & Kesejahteraan Pegawai": {
+ "Biaya Asuransi Kesehatan Pegawai": {
+ "account_number": "5120.004"
+ },
+ "Biaya Gaji & Kesejahteraan Lainnya": {
+ "account_number": "5120.007"
+ },
+ "Biaya Gaji Karyawan Harian": {
+ "account_number": "5120.002"
+ },
+ "Biaya Gaji Staff & Karyawan Tetap": {
+ "account_number": "5120.001"
+ },
+ "Biaya Konsumsi": {
+ "account_number": "5120.006"
+ },
+ "Biaya Pengobatan": {
+ "account_number": "5120.003"
+ },
+ "Biaya THR, Bonus, dan Komisi": {
+ "account_number": "5120.005"
+ },
+ "account_number": "5120.000"
+ },
+ "Biaya Kantor & Gudang": {
+ "Biaya Alat Tulis Kantor": {
+ "account_number": "5130.005"
+ },
+ "Biaya Asuransi Bangunan": {
+ "account_number": "5130.014"
+ },
+ "Biaya Fotocopy, Photo, Print Out": {
+ "account_number": "5130.004"
+ },
+ "Biaya Humas & Pergaulan": {
+ "account_number": "5130.009"
+ },
+ "Biaya KTR & GDG Lain Lain": {
+ "account_number": "5130.018"
+ },
+ "Biaya PAM Gudang & Kantor": {
+ "account_number": "5130.002"
+ },
+ "Biaya PLN Gudang & Kantor": {
+ "account_number": "5130.001"
+ },
+ "Biaya Pemeliharaan Bgn Gudang": {
+ "account_number": "5130.008"
+ },
+ "Biaya Perizinan Kendaraan Operasional": {
+ "account_number": "5130.017"
+ },
+ "Biaya Perizinan Usaha dan Bangunan": {
+ "account_number": "5130.016"
+ },
+ "Biaya Perlengkapan Gudang": {
+ "account_number": "5130.010"
+ },
+ "Biaya Serba Serbi": {
+ "account_number": "5130.012"
+ },
+ "Biaya Servis Peralatan Gudang": {
+ "account_number": "5130.007"
+ },
+ "Biaya Sewa Kantor": {
+ "account_number": "5130.013"
+ },
+ "Biaya Stamp Duty & Pos": {
+ "account_number": "5130.006"
+ },
+ "Biaya Sumbangan": {
+ "account_number": "5130.015"
+ },
+ "Biaya TLP Gudang & Kantor": {
+ "account_number": "5130.003"
+ },
+ "Iuran Bulanan": {
+ "account_number": "5130.011"
+ },
+ "account_number": "5130.000"
+ },
+ "account_number": "5100.000"
},
+ "Beban Tidak Langsung": {
+ "Biaya Gaji & Kesejahteraan Pegawai Indirect": {
+ "Biaya Gaji Lain Lain": {
+ "account_number": "5210.005"
+ },
+ "Biaya Gaji Staff": {
+ "account_number": "5210.001"
+ },
+ "Biaya Konsumsi": {
+ "account_number": "5210.004"
+ },
+ "Biaya Pengobatan & Kesehatan": {
+ "account_number": "5210.003"
+ },
+ "Biaya THR dan Bonus Staff": {
+ "account_number": "5210.002"
+ },
+ "account_number": "5210.000"
+ },
+ "Biaya Kantor Indirect": {
+ "Biaya Alat Tulis Kantor": {
+ "account_number": "5230.006"
+ },
+ "Biaya Asuransi Bangunan": {
+ "account_number": "5230.005"
+ },
+ "Biaya Fotocopy, Photo, Print Out": {
+ "account_number": "5230.007"
+ },
+ "Biaya Iuran Bulanan": {
+ "account_number": "5230.012"
+ },
+ "Biaya KTR Lain Lain": {
+ "account_number": "5230.016"
+ },
+ "Biaya Kirim Dokumen": {
+ "account_number": "5230.008"
+ },
+ "Biaya PAM Kantor": {
+ "account_number": "5230.002"
+ },
+ "Biaya PLN Kantor": {
+ "account_number": "5230.001"
+ },
+ "Biaya Pemeliharaan Bangunan Kantor": {
+ "account_number": "5230.011"
+ },
+ "Biaya Perizinan Bangunan": {
+ "account_number": "5230.014"
+ },
+ "Biaya Perizinan Kendaraan Dinas": {
+ "account_number": "5230.015"
+ },
+ "Biaya Perlengkapan & Peralatan Kantor": {
+ "account_number": "5230.009"
+ },
+ "Biaya Sewa Kantor": {
+ "account_number": "5230.004"
+ },
+ "Biaya Stamp Duty & Pos": {
+ "account_number": "5230.017"
+ },
+ "Biaya Sumbangan": {
+ "account_number": "5230.013"
+ },
+ "Biaya TLP Kantor": {
+ "account_number": "5230.003"
+ },
+ "Service Peralatan Kantor": {
+ "account_number": "5230.010"
+ },
+ "account_number": "5230.000"
+ },
+ "Biaya Operational Indirect": {
+ "Biaya Asuransi Kendaraan Dinas": {
+ "account_number": "5220.006"
+ },
+ "Biaya BBM": {
+ "account_number": "5220.001"
+ },
+ "Biaya Entertainment dan Pergaulan": {
+ "account_number": "5220.008"
+ },
+ "Biaya Hadiah dan Bonus": {
+ "account_number": "5220.009"
+ },
+ "Biaya Leasing Kendaraan Dinas": {
+ "account_number": "5220.007"
+ },
+ "Biaya Perbaikan Kendaraan Dinas": {
+ "account_number": "5220.005"
+ },
+ "Biaya Perjalanan Dinas": {
+ "account_number": "5220.004"
+ },
+ "Biaya TLP & HP": {
+ "account_number": "5220.003"
+ },
+ "Biaya Tol & Parkir": {
+ "account_number": "5220.002"
+ },
+ "account_number": "5220.000"
+ },
+ "account_number": "5200.000"
+ },
+ "Biaya Amortisasi": {
+ "Biaya Amortisasi": {
+ "account_number": "5410.000"
+ },
+ "account_number": "5400.000"
+ },
+ "Biaya Penyusutan": {
+ "Biaya Penyusutan": {
+ "By Peny Aktiva ": {
+ "account_number": "5310.001",
+ "account_type": "Depreciation"
+ },
+ "account_number": "5310.000"
+ },
+ "account_number": "5300.000"
+ },
+ "account_number": "5000.000",
"root_type": "Expense"
+ },
+ "Modal": {
+ "Laba": {
+ "Laba Periode Berjalan": {
+ "account_number": "3230.000"
+ },
+ "Laba Tahun Berjalan": {
+ "account_number": "3220.000"
+ },
+ "Laba di Tahan": {
+ "account_number": "3210.000"
+ },
+ "account_number": "3200.000"
+ },
+ "Modal": {
+ "Modal di Setor": {
+ "account_number": "3110.000"
+ },
+ "Prive P.Saham": {
+ "account_number": "3120.000"
+ },
+ "Saldo pembukaan Equity": {
+ "account_number": "3130.000"
+ },
+ "account_number": "3100.000"
+ },
+ "account_number": "3000.000",
+ "root_type": "Equity"
+ },
+ "Passiva": {
+ "Pasiva Lancar": {
+ "Biaya Yang Akan di Bayar": {
+ "Biaya Yang Akan di Bayar": {
+ "Biaya Yang Akan di Bayar": {
+ "account_number": "2131.001"
+ },
+ "account_number": "2131.000"
+ },
+ "Biaya Yang Akan di Bayar - Freight": {
+ "Biaya Yang Akan di Bayar - Freight": {
+ "account_number": "2132.001",
+ "account_type": "Expenses Included In Valuation"
+ },
+ "account_number": "2132.000"
+ },
+ "account_number": "2130.000"
+ },
+ "Hutang Dagang": {
+ "Hutang Dagang Other Currency": {
+ "Hutang Dagang Biaya Kirim Dalam Negeri": {
+ "account_number": "2112.005",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Biaya Kirim Luar Negeri (SGD)": {
+ "account_number": "2112.004",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Biaya Kirim Luar Negeri (USD)": {
+ "account_number": "2112.003",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Luar Negeri (SGD)": {
+ "account_number": "2112.002",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Luar Negeri (USD)": {
+ "account_number": "2112.001",
+ "account_type": "Payable"
+ },
+ "account_number": "2112.000"
+ },
+ "Hutang Dagang Rupiah": {
+ "HUtang Dagang Biaya Kirim Luar Negeri": {
+ "account_number": "2111.004",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Biaya Kirim Dalam Negeri": {
+ "account_number": "2111.003",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Dalam Negeri": {
+ "account_number": "2111.001",
+ "account_type": "Payable"
+ },
+ "Hutang Dagang Luar Negeri": {
+ "account_number": "2111.002",
+ "account_type": "Payable"
+ },
+ "account_number": "2111.000"
+ },
+ "Stock Diterima Tapi Tidak Ditagih": {
+ "account_number": "2115.000",
+ "account_type": "Stock Received But Not Billed"
+ },
+ "account_number": "2110.000"
+ },
+ "Hutang Pajak": {
+ "Hutang Pajak": {
+ "account_number": "2141.000",
+ "account_type": "Payable"
+ },
+ "account_number": "2140.000"
+ },
+ "Pendapatan di Terima di Muka": {
+ "Pendapatan di Terima di Muka": {
+ "Dp Penjualan": {
+ "account_number": "2121.001",
+ "account_type": "Bank"
+ },
+ "account_number": "2121.000"
+ },
+ "account_number": "2120.000"
+ },
+ "account_number": "2100.000"
+ },
+ "Passiva Tetap": {
+ "Hutang Lain Lain": {
+ "Hutang Lain Lain": {
+ "Hutang": {
+ "account_number": "2241.001"
+ },
+ "account_number": "2241.000"
+ },
+ "account_number": "2240.000"
+ },
+ "Hutang Leasing Kendaraan": {
+ "Hutang Leasing Kendaraan": {
+ "Hutang Leasing Kendaraan": {
+ "account_number": "2231.001"
+ },
+ "account_number": "2231.000"
+ },
+ "account_number": "2230.000"
+ },
+ "Hutang Pada Bank": {
+ "Hutang Bank": {
+ "Hutang": {
+ "account_number": "2221.001"
+ },
+ "account_number": "2221.000"
+ },
+ "account_number": "2220.000"
+ },
+ "Hutang Pada Pihak ke 3": {
+ "Hutang Bunga Pinjaman Pihak Ke 3 Tidak Rutin": {
+ "Hutang Bunga": {
+ "account_number": "2213.001"
+ },
+ "account_number": "2213.000"
+ },
+ "Pinjaman Pihak ke 3 Rutin": {
+ "Hutang": {
+ "account_number": "2211.001"
+ },
+ "account_number": "2211.000"
+ },
+ "Pinjaman Pihak ke 3 Tidak Rutin": {
+ "Hutang": {
+ "account_number": "2212.001"
+ },
+ "account_number": "2212.000"
+ },
+ "account_number": "2210.000"
+ },
+ "account_number": "2200.000"
+ },
+ "account_number": "2000.000",
+ "root_type": "Liability"
+ },
+ "Penjualan": {
+ "Harga Pokok Pembelian": {
+ "HPP Pembelian": {
+ "account_number": "4210.000",
+ "account_type": "Cost of Goods Sold"
+ },
+ "account_number": "4200.000"
+ },
+ "Pendapatan Lain lain": {
+ "Pendapatan Bunga Bank": {
+ "account_number": "4410.000"
+ },
+ "Pendapatan Bunga Dari Pihak Ke 3": {
+ "account_number": "4420.000"
+ },
+ "Pendapatan Keuntungan Penjualan Aktiva": {
+ "account_number": "4430.000"
+ },
+ "Pendapatan Komisi": {
+ "account_number": "4440.000"
+ },
+ "Pendapatan Lain lain": {
+ "account_number": "4480.000"
+ },
+ "Pendapatan Penjualan Barang BS": {
+ "account_number": "4470.000"
+ },
+ "Pendapatan Sewa Gudang": {
+ "account_number": "4450.000"
+ },
+ "Pendapatan Sewa Lain lain": {
+ "account_number": "4460.000"
+ },
+ "account_number": "4400.000"
+ },
+ "Pendapatan Service/Jasa": {
+ "Pendapatan Service": {
+ "account_number": "4310.000"
+ },
+ "account_number": "4300.000"
+ },
+ "Penjualan Barang Dagangan": {
+ "Penjualan": {
+ "account_number": "4110.000"
+ },
+ "Potongan Penjualan": {
+ "account_number": "4130.000"
+ },
+ "Retur Penjualan": {
+ "account_number": "4120.000"
+ },
+ "account_number": "4100.000"
+ },
+ "account_number": "4000.000",
+ "root_type": "Income"
}
}
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json
index 2f5dbf3..bc7f965 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json
@@ -2,160 +2,161 @@
"country_code": "in",
"name": "India - Chart of Accounts",
"tree": {
- "Application of Funds (Assets)": {
- "Current Assets": {
- "Accounts Receivable": {
- "Debtors": {
- "account_type": "Receivable"
- }
- },
- "Bank Accounts": {
- "account_type": "Bank",
- "is_group": 1
- },
- "Cash In Hand": {
- "Cash": {
- "account_type": "Cash"
- },
- "account_type": "Cash"
- },
- "Loans and Advances (Assets)": {
- "is_group": 1
- },
- "Securities and Deposits": {
- "Earnest Money": {}
- },
- "Stock Assets": {
- "Stock in Hand": {
- "account_type": "Stock"
- }
- },
- "Tax Assets": {
- "is_group": 1
- }
- },
- "Fixed Assets": {
- "Capital Equipments": {
- "account_type": "Fixed Asset"
- },
- "Electronic Equipments": {
- "account_type": "Fixed Asset"
- },
- "Furnitures and Fixtures": {
- "account_type": "Fixed Asset"
- },
- "Office Equipments": {
- "account_type": "Fixed Asset"
- },
- "Plants and Machineries": {
- "account_type": "Fixed Asset"
- },
- "Buildings": {
- "account_type": "Fixed Asset"
- },
- "Accumulated Depreciations": {
- "account_type": "Accumulated Depreciation"
- }
- },
- "Investments": {
- "is_group": 1
- },
- "Temporary Accounts": {
- "Temporary Opening": {
- "account_type": "Temporary"
- }
- },
- "root_type": "Asset"
- },
- "Expenses": {
- "Direct Expenses": {
- "Stock Expenses": {
- "Cost of Goods Sold": {
- "account_type": "Cost of Goods Sold"
- },
- "Expenses Included In Valuation": {
- "account_type": "Expenses Included In Valuation"
- },
- "Stock Adjustment": {
- "account_type": "Stock Adjustment"
- }
- }
- },
- "Indirect Expenses": {
- "Administrative Expenses": {},
- "Commission on Sales": {},
- "Depreciation": {
- "account_type": "Depreciation"
- },
- "Entertainment Expenses": {},
- "Freight and Forwarding Charges": {
- "account_type": "Chargeable"
- },
- "Legal Expenses": {},
- "Marketing Expenses": {},
- "Miscellaneous Expenses": {},
- "Office Maintenance Expenses": {},
- "Office Rent": {},
- "Postal Expenses": {},
- "Print and Stationary": {},
- "Rounded Off": {
- "account_type": "Round Off"
- },
- "Salary": {},
- "Sales Expenses": {},
- "Telephone Expenses": {},
- "Travel Expenses": {},
- "Utility Expenses": {},
- "Write Off": {},
- "Exchange Gain/Loss": {},
- "Gain/Loss on Asset Disposal": {}
- },
- "root_type": "Expense"
- },
- "Income": {
- "Direct Income": {
- "Sales": {
- "account_type": "Income Account"
- },
- "Service": {
- "account_type": "Income Account"
- },
- "account_type": "Income Account"
- },
- "Indirect Income": {
- "account_type": "Income Account",
- "is_group": 1
- },
- "root_type": "Income"
- },
- "Source of Funds (Liabilities)": {
- "Capital Account": {
- "Reserves and Surplus": {},
- "Shareholders Funds": {}
- },
- "Current Liabilities": {
- "Accounts Payable": {
- "Creditors": {
- "account_type": "Payable"
- },
- "Payroll Payable": {}
- },
- "Stock Liabilities": {
- "Stock Received But Not Billed": {
- "account_type": "Stock Received But Not Billed"
- }
- },
- "Duties and Taxes": {
- "account_type": "Tax",
- "is_group": 1
- },
- "Loans (Liabilities)": {
- "Secured Loans": {},
- "Unsecured Loans": {},
- "Bank Overdraft Account": {}
- }
- },
- "root_type": "Liability"
- }
- }
+ "Application of Funds (Assets)": {
+ "Current Assets": {
+ "Accounts Receivable": {
+ "Debtors": {
+ "account_type": "Receivable"
+ }
+ },
+ "Bank Accounts": {
+ "account_type": "Bank",
+ "is_group": 1
+ },
+ "Cash In Hand": {
+ "Cash": {
+ "account_type": "Cash"
+ },
+ "account_type": "Cash"
+ },
+ "Loans and Advances (Assets)": {
+ "is_group": 1
+ },
+ "Securities and Deposits": {
+ "Earnest Money": {}
+ },
+ "Stock Assets": {
+ "Stock In Hand": {
+ "account_type": "Stock"
+ },
+ "account_type": "Stock"
+ },
+ "Tax Assets": {
+ "is_group": 1
+ }
+ },
+ "Fixed Assets": {
+ "Capital Equipments": {
+ "account_type": "Fixed Asset"
+ },
+ "Electronic Equipments": {
+ "account_type": "Fixed Asset"
+ },
+ "Furnitures and Fixtures": {
+ "account_type": "Fixed Asset"
+ },
+ "Office Equipments": {
+ "account_type": "Fixed Asset"
+ },
+ "Plants and Machineries": {
+ "account_type": "Fixed Asset"
+ },
+ "Buildings": {
+ "account_type": "Fixed Asset"
+ },
+ "Accumulated Depreciations": {
+ "account_type": "Accumulated Depreciation"
+ }
+ },
+ "Investments": {
+ "is_group": 1
+ },
+ "Temporary Accounts": {
+ "Temporary Opening": {
+ "account_type": "Temporary"
+ }
+ },
+ "root_type": "Asset"
+ },
+ "Expenses": {
+ "Direct Expenses": {
+ "Stock Expenses": {
+ "Cost of Goods Sold": {
+ "account_type": "Cost of Goods Sold"
+ },
+ "Expenses Included In Valuation": {
+ "account_type": "Expenses Included In Valuation"
+ },
+ "Stock Adjustment": {
+ "account_type": "Stock Adjustment"
+ }
+ }
+ },
+ "Indirect Expenses": {
+ "Administrative Expenses": {},
+ "Commission on Sales": {},
+ "Depreciation": {
+ "account_type": "Depreciation"
+ },
+ "Entertainment Expenses": {},
+ "Freight and Forwarding Charges": {
+ "account_type": "Chargeable"
+ },
+ "Legal Expenses": {},
+ "Marketing Expenses": {},
+ "Miscellaneous Expenses": {},
+ "Office Maintenance Expenses": {},
+ "Office Rent": {},
+ "Postal Expenses": {},
+ "Print and Stationary": {},
+ "Rounded Off": {
+ "account_type": "Round Off"
+ },
+ "Salary": {},
+ "Sales Expenses": {},
+ "Telephone Expenses": {},
+ "Travel Expenses": {},
+ "Utility Expenses": {},
+ "Write Off": {},
+ "Exchange Gain/Loss": {},
+ "Gain/Loss on Asset Disposal": {}
+ },
+ "root_type": "Expense"
+ },
+ "Income": {
+ "Direct Income": {
+ "Sales": {
+ "account_type": "Income Account"
+ },
+ "Service": {
+ "account_type": "Income Account"
+ },
+ "account_type": "Income Account"
+ },
+ "Indirect Income": {
+ "account_type": "Income Account",
+ "is_group": 1
+ },
+ "root_type": "Income"
+ },
+ "Source of Funds (Liabilities)": {
+ "Capital Account": {
+ "Reserves and Surplus": {},
+ "Shareholders Funds": {}
+ },
+ "Current Liabilities": {
+ "Accounts Payable": {
+ "Creditors": {
+ "account_type": "Payable"
+ },
+ "Payroll Payable": {}
+ },
+ "Stock Liabilities": {
+ "Stock Received But Not Billed": {
+ "account_type": "Stock Received But Not Billed"
+ }
+ },
+ "Duties and Taxes": {
+ "account_type": "Tax",
+ "is_group": 1
+ },
+ "Loans (Liabilities)": {
+ "Secured Loans": {},
+ "Unsecured Loans": {},
+ "Bank Overdraft Account": {}
+ }
+ },
+ "root_type": "Liability"
+ }
+ }
}
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py b/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py
new file mode 100644
index 0000000..bad8453
--- /dev/null
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py
@@ -0,0 +1,275 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+from frappe import _
+
+def get():
+ return {
+ _("Application of Funds (Assets)"): {
+ _("Current Assets"): {
+ _("Accounts Receivable"): {
+ _("Debtors"): {
+ "account_type": "Receivable",
+ "account_number": "1310"
+ },
+ "account_number": "1300"
+ },
+ _("Bank Accounts"): {
+ "account_type": "Bank",
+ "is_group": 1,
+ "account_number": "1200"
+ },
+ _("Cash In Hand"): {
+ _("Cash"): {
+ "account_type": "Cash",
+ "account_number": "1110"
+ },
+ "account_type": "Cash",
+ "account_number": "1100"
+ },
+ _("Loans and Advances (Assets)"): {
+ "is_group": 1,
+ "account_number": "1600"
+ },
+ _("Securities and Deposits"): {
+ _("Earnest Money"): {
+ "account_number": "1651"
+ },
+ "account_number": "1650"
+ },
+ _("Stock Assets"): {
+ _("Stock In Hand"): {
+ "account_type": "Stock",
+ "account_number": "1410"
+ },
+ "account_type": "Stock",
+ "account_number": "1400"
+ },
+ _("Tax Assets"): {
+ "is_group": 1,
+ "account_number": "1500"
+ },
+ "account_number": "1100-1600"
+ },
+ _("Fixed Assets"): {
+ _("Capital Equipments"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1710"
+ },
+ _("Electronic Equipments"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1720"
+ },
+ _("Furnitures and Fixtures"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1730"
+ },
+ _("Office Equipments"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1740"
+ },
+ _("Plants and Machineries"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1750"
+ },
+ _("Buildings"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1760"
+ },
+ _("Softwares"): {
+ "account_type": "Fixed Asset",
+ "account_number": "1770"
+ },
+ _("Accumulated Depreciation"): {
+ "account_type": "Accumulated Depreciation",
+ "account_number": "1780"
+ },
+ "account_number": "1700"
+ },
+ _("Investments"): {
+ "is_group": 1,
+ "account_number": "1800"
+ },
+ _("Temporary Accounts"): {
+ _("Temporary Opening"): {
+ "account_type": "Temporary",
+ "account_number": "1910"
+ },
+ "account_number": "1900"
+ },
+ "root_type": "Asset",
+ "account_number": "1000"
+ },
+ _("Expenses"): {
+ _("Direct Expenses"): {
+ _("Stock Expenses"): {
+ _("Cost of Goods Sold"): {
+ "account_type": "Cost of Goods Sold",
+ "account_number": "5111"
+ },
+ _("Expenses Included In Valuation"): {
+ "account_type": "Expenses Included In Valuation",
+ "account_number": "5118"
+ },
+ _("Stock Adjustment"): {
+ "account_type": "Stock Adjustment",
+ "account_number": "5119"
+ },
+ "account_number": "5110"
+ },
+ "account_number": "5100"
+ },
+ _("Indirect Expenses"): {
+ _("Administrative Expenses"): {
+ "account_number": "5201"
+ },
+ _("Commission on Sales"): {
+ "account_number": "5202"
+ },
+ _("Depreciation"): {
+ "account_type": "Depreciation",
+ "account_number": "5203"
+ },
+ _("Entertainment Expenses"): {
+ "account_number": "5204"
+ },
+ _("Freight and Forwarding Charges"): {
+ "account_type": "Chargeable",
+ "account_number": "5205"
+ },
+ _("Legal Expenses"): {
+ "account_number": "5206"
+ },
+ _("Marketing Expenses"): {
+ "account_type": "Chargeable",
+ "account_number": "5207"
+ },
+ _("Office Maintenance Expenses"): {
+ "account_number": "5208"
+ },
+ _("Office Rent"): {
+ "account_number": "5209"
+ },
+ _("Postal Expenses"): {
+ "account_number": "5210"
+ },
+ _("Print and Stationery"): {
+ "account_number": "5211"
+ },
+ _("Round Off"): {
+ "account_type": "Round Off",
+ "account_number": "5212"
+ },
+ _("Salary"): {
+ "account_number": "5213"
+ },
+ _("Sales Expenses"): {
+ "account_number": "5214"
+ },
+ _("Telephone Expenses"): {
+ "account_number": "5215"
+ },
+ _("Travel Expenses"): {
+ "account_number": "5216"
+ },
+ _("Utility Expenses"): {
+ "account_number": "5217"
+ },
+ _("Write Off"): {
+ "account_number": "5218"
+ },
+ _("Exchange Gain/Loss"): {
+ "account_number": "5219"
+ },
+ _("Gain/Loss on Asset Disposal"): {
+ "account_number": "5220"
+ },
+ _("Miscellaneous Expenses"): {
+ "account_type": "Chargeable",
+ "account_number": "5221"
+ },
+ "account_number": "5200"
+ },
+ "root_type": "Expense",
+ "account_number": "5000"
+ },
+ _("Income"): {
+ _("Direct Income"): {
+ _("Sales"): {
+ "account_number": "4110"
+ },
+ _("Service"): {
+ "account_number": "4120"
+ },
+ "account_number": "4100"
+ },
+ _("Indirect Income"): {
+ "is_group": 1,
+ "account_number": "4200"
+ },
+ "root_type": "Income",
+ "account_number": "4000"
+ },
+ _("Source of Funds (Liabilities)"): {
+ _("Current Liabilities"): {
+ _("Accounts Payable"): {
+ _("Creditors"): {
+ "account_type": "Payable",
+ "account_number": "2110"
+ },
+ _("Payroll Payable"): {
+ "account_number": "2120"
+ },
+ "account_number": "2100"
+ },
+ _("Stock Liabilities"): {
+ _("Stock Received But Not Billed"): {
+ "account_type": "Stock Received But Not Billed",
+ "account_number": "2210"
+ },
+ "account_number": "2200"
+ },
+ _("Duties and Taxes"): {
+ "account_type": "Tax",
+ "is_group": 1,
+ "account_number": "2300"
+ },
+ _("Loans (Liabilities)"): {
+ _("Secured Loans"): {
+ "account_number": "2410"
+ },
+ _("Unsecured Loans"): {
+ "account_number": "2420"
+ },
+ _("Bank Overdraft Account"): {
+ "account_number": "2430"
+ },
+ "account_number": "2400"
+ },
+ "account_number": "2100-2400"
+ },
+ "root_type": "Liability",
+ "account_number": "2000"
+ },
+ _("Equity"): {
+ _("Capital Stock"): {
+ "account_type": "Equity",
+ "account_number": "3100"
+ },
+ _("Dividends Paid"): {
+ "account_type": "Equity",
+ "account_number": "3200"
+ },
+ _("Opening Balance Equity"): {
+ "account_type": "Equity",
+ "account_number": "3300"
+ },
+ _("Retained Earnings"): {
+ "account_type": "Equity",
+ "account_number": "3400"
+ },
+ "root_type": "Equity",
+ "account_number": "3000"
+ }
+ }
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/tw_chart_of_accounts.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/tw_chart_of_accounts.json
index a79283a..166f8a7 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/tw_chart_of_accounts.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/tw_chart_of_accounts.json
@@ -2,721 +2,1353 @@
"country_code": "tw",
"name": "Taiwan - Chart of Accounts",
"tree": {
- "1-\u8cc7\u7522": {
- "11~12-\u6d41\u52d5\u8cc7\u7522": {
- "111-\u73fe\u91d1\u53ca\u7d04\u7576\u73fe\u91d1": {
- "1111-\u5eab\u5b58\u73fe\u91d1": {
- "account_type": "Cash"
- },
- "1112-\u96f6\u7528\u91d1/\u9031\u8f49\u91d1": {
- "account_type": "Cash"
- },
- "1113-\u9280\u884c\u5b58\u6b3e": {
- "account_type": "Bank",
- "\u4e2d\u570b\u4fe1\u8a17": {
- "account_type": "Bank"
- },
- "\u53f0\u5317\u5bcc\u90a6": {
- "account_type": "Bank"
- }
- },
- "1116-\u5728\u9014\u73fe\u91d1": {
- "account_type": "Cash"
- },
- "1117-\u7d04\u7576\u73fe\u91d1": {
- "account_type": "Cash"
- },
- "1118-\u5176\u4ed6\u73fe\u91d1\u53ca\u7d04\u7576\u73fe\u91d1": {
- "account_type": "Cash"
- },
- "account_type": "Cash"
- },
- "112-\u77ed\u671f\u6295\u8cc7": {
- "1121-\u77ed\u671f\u6295\u8cc7 \u2014\u80a1\u7968": {}
- },
- "113-\u61c9\u6536\u7968\u64da": {
- "1131-\u61c9\u6536\u7968\u64da": {
- "account_type": "Receivable"
- },
- "1132-\u61c9\u6536\u7968\u64da\u8cbc\u73fe ": {
- "account_type": "Receivable"
- },
- "1138-\u5176\u4ed6\u61c9\u6536\u7968\u64da ": {
- "account_type": "Receivable"
- },
- "1139-\u5099\u62b5\u5446\u5e33 \uff0d\u61c9\u6536\u7968\u64da ": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "114-\u61c9\u6536\u5e33\u6b3e": {
- "1141-\u61c9\u6536\u5e33\u6b3e ": {
- "account_type": "Receivable"
- },
- "1142-\u61c9\u6536\u5206\u671f\u5e33\u6b3e ": {
- "account_type": "Receivable"
- },
- "1149-\u5099\u62b5\u5446\u5e33 \uff0d\u61c9\u6536\u5e33\u6b3e ": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "118-\u5176\u4ed6\u61c9\u6536\u6b3e": {
- "1184-\u61c9\u6536\u6536\u76ca": {
- "account_type": "Receivable"
- },
- "1185-\u61c9\u6536\u9000\u7a05\u6b3e": {
- "account_type": "Receivable"
- },
- "1189-\u5099\u62b5\u5446\u5e33 \u2014 \u5176\u4ed6\u61c9\u6536\u6b3e ": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "121~122-\u5b58\u8ca8": {
- "1219-\u5099\u62b5\u5b58\u8ca8\u8dcc\u50f9\u640d\u5931": {},
- "1229-\u5099\u62b5\u5b58\u8ca8\u8dcc\u50f9\u640d\u5931": {},
- "account_type": "Stock",
- "is_group": 1
- },
- "125-\u9810\u4ed8\u8cbb\u7528": {
- "1251-\u9810\u4ed8\u85aa\u8cc7": {},
- "1252-\u9810\u4ed8\u79df\u91d1": {},
- "1253-\u9810\u4ed8\u4fdd\u96aa\u8cbb": {},
- "1254-\u7528\u54c1\u76e4\u5b58": {},
- "1255-\u9810\u4ed8\u6240\u5f97\u7a05": {},
- "1258-\u5176\u4ed6\u9810\u4ed8\u8cbb\u7528": {}
- },
- "126-\u9810\u4ed8\u6b3e\u9805": {
- "1261-\u9810\u4ed8\u8ca8\u6b3e": {},
- "1268-\u5176\u4ed6\u9810\u4ed8\u6b3e\u9805": {}
- },
- "128~129-\u5176\u4ed6\u6d41\u52d5\u8cc7\u7522": {
- "1281-\u9032\u9805\u7a05\u984d": {},
- "1282-\u7559\u62b5\u7a05\u984d": {},
- "1283-\u66ab\u4ed8\u6b3e": {},
- "1284-\u4ee3\u4ed8\u6b3e": {},
- "1285-\u54e1\u5de5\u501f\u652f": {}
- }
- },
- "13-\u57fa\u91d1\u53ca\u9577\u671f\u6295\u8cc7": {
- "131-\u57fa\u91d1": {
- "1311-\u511f\u50b5\u57fa\u91d1": {},
- "1313-\u610f\u5916\u640d\u5931\u6e96\u5099\u57fa\u91d1": {},
- "1314-\u9000\u4f11\u57fa\u91d1": {},
- "1318-\u5176\u4ed6\u57fa\u91d1": {}
- },
- "132-\u9577\u671f\u6295\u8cc7": {
- "1321-\u9577\u671f\u80a1\u6b0a\u6295\u8cc7": {},
- "1322-\u9577\u671f\u50b5\u5238\u6295\u8cc7": {},
- "1323-\u9577\u671f\u4e0d\u52d5\u7522\u6295\u8cc7": {},
- "1328-\u5176\u4ed6\u9577\u671f\u6295\u8cc7": {}
- }
- },
- "14~15-\u56fa\u5b9a\u8cc7\u7522": {
- "141-\u571f\u5730": {
- "1411-\u571f\u5730": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "142-\u571f\u5730\u6539\u826f\u7269": {
- "1421-\u571f\u5730\u6539\u826f\u7269": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "143-\u623f\u5c4b\u53ca\u5efa\u7269": {
- "1431-\u623f\u5c4b\u53ca\u5efa\u7269": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "144~146-\u6a5f(\u5668)\u5177\u53ca\u8a2d\u5099": {
- "1441-\u6a5f(\u5668)\u5177": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "151-\u79df\u8cc3\u8cc7\u7522": {
- "1511-\u79df\u8cc3\u8cc7\u7522": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "152-\u79df\u8cc3\u6b0a\u76ca\u6539\u826f": {
- "1521-\u79df\u8cc3\u6b0a\u76ca\u6539\u826f": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "156-\u672a\u5b8c\u5de5\u7a0b\u53ca\u9810\u4ed8\u8cfc\u7f6e\u8a2d\u5099\u6b3e": {
- "1561-\u672a\u5b8c\u5de5\u7a0b": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "158-\u96dc\u9805\u56fa\u5b9a\u8cc7\u7522": {
- "1581-\u96dc\u9805\u56fa\u5b9a\u8cc7\u7522": {
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "account_type": "Fixed Asset"
- },
- "16-\u905e\u8017\u8cc7\u7522": {
- "161-\u905e\u8017\u8cc7\u7522": {
- "is_group": 1
- }
- },
- "17-\u7121\u5f62\u8cc7\u7522": {
- "171-\u5546\u6a19\u6b0a": {
- "1711-\u5546\u6a19\u6b0a": {}
- },
- "172-\u5c08\u5229\u6b0a": {
- "1721-\u5c08\u5229\u6b0a": {}
- },
- "176-\u5546\u8b7d": {
- "1761-\u5546\u8b7d": {}
- },
- "177-\u958b\u8fa6\u8cbb": {
- "1771-\u958b\u8fa6\u8cbb": {}
- },
- "178-\u5176\u4ed6\u7121\u5f62\u8cc7\u7522": {
- "1781-\u905e\u5ef6\u9000\u4f11\u91d1\u6210\u672c": {}
- }
- },
- "18-\u5176\u4ed6\u8cc7\u7522": {
- "181-\u905e\u5ef6\u8cc7\u7522": {
- "1811-\u50b5\u5238\u767c\u884c\u6210\u672c": {},
- "1812-\u9577\u671f\u9810\u4ed8\u79df\u91d1": {},
- "1813-\u9577\u671f\u9810\u4ed8\u4fdd\u96aa\u8cbb": {},
- "1814-\u905e\u5ef6\u6240\u5f97\u7a05\u8cc7\u7522": {},
- "1815-\u9810\u4ed8\u9000\u4f11\u91d1": {},
- "1818-\u5176\u4ed6\u905e\u5ef6\u8cc7\u7522": {}
- },
- "182-\u9592\u7f6e\u8cc7\u7522": {
- "1821-\u9592\u7f6e\u8cc7\u7522": {}
- },
- "184-\u9577\u671f\u61c9\u6536\u7968\u64da\u53ca\u6b3e\u9805\u8207\u50ac\u6536\u5e33\u6b3e": {
- "1841-\u9577\u671f\u61c9\u6536\u7968\u64da": {
- "account_type": "Receivable"
- },
- "1842-\u9577\u671f\u61c9\u6536\u5e33\u6b3e": {
- "account_type": "Receivable"
- },
- "1843-\u50ac\u6536\u5e33\u6b3e": {
- "account_type": "Receivable"
- },
- "1848-\u5176\u4ed6\u9577\u671f\u61c9\u6536\u6b3e\u9805": {
- "account_type": "Receivable"
- },
- "1849-\u5099\u62b5\u5446\u5e33\u2014\u9577\u671f\u61c9\u6536\u7968\u64da\u53ca\u6b3e\u9805\u8207\u50ac\u6536\u5e33\u6b3e": {
- "account_type": "Receivable"
- },
- "account_type": "Receivable"
- },
- "185-\u51fa\u79df\u8cc7\u7522": {
- "1851-\u51fa\u79df\u8cc7\u7522": {},
- "1858-\u51fa\u79df\u8cc7\u7522 \u2014\u91cd\u4f30\u589e\u503c": {},
- "1859-\u7d2f\u7a4d\u6298\u820a \u2014\u51fa\u79df\u8cc7\u7522": {
- "account_type": "Accumulated Depreciation"
+ "\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca)": {
+ "account_number": "8",
+ "root_type": "Expense",
+ "\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca)": {
+ "account_number": "81",
+ "\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca) ": {
+ "account_number": "811",
+ "\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca) ": {
+ "account_number": "8111"
}
- },
- "186-\u5b58\u51fa\u4fdd\u8b49\u91d1": {
- "1861-\u5b58\u51fa\u4fdd\u8b49\u91d1": {}
- },
- "188-\u96dc\u9805\u8cc7\u7522": {
- "1881-\u53d7\u9650\u5236\u5b58\u6b3e": {},
- "1888-\u96dc\u9805\u8cc7\u7522 \u2014\u5176\u4ed6": {}
}
- },
+ }
+ },
+ "\u696d\u4e3b\u6b0a\u76ca": {
+ "account_number": "3",
+ "root_type": "Equity",
+ "\u4fdd\u7559\u76c8\u9918(\u7d2f\u7a4d\u8667\u640d)": {
+ "account_number": "33",
+ "\u672a\u5206\u914d\u76c8\u9918(\u7d2f\u7a4d\u8667\u640d) ": {
+ "account_number": "335",
+ "is_group": 1
+ },
+ "\u6cd5\u5b9a\u76c8\u9918\u516c\u7a4d": {
+ "account_number": "331",
+ "\u6cd5\u5b9a\u76c8\u9918\u516c\u7a4d": {
+ "account_number": "3311"
+ }
+ },
+ "\u7279\u5225\u76c8\u9918\u516c\u7a4d": {
+ "account_number": "332",
+ "\u511f\u50b5\u6e96\u5099": {
+ "account_number": "3323"
+ },
+ "\u5176\u4ed6\u7279\u5225\u76c8\u9918\u516c\u7a4d": {
+ "account_number": "3328"
+ },
+ "\u610f\u5916\u640d\u5931\u6e96\u5099": {
+ "account_number": "3321"
+ },
+ "\u6539\u826f\u64f4\u5145\u6e96\u5099": {
+ "account_number": "3322"
+ }
+ }
+ },
+ "\u5c11\u6578\u80a1\u6b0a": {
+ "account_number": "36",
+ "\u5c11\u6578\u80a1\u6b0a": {
+ "account_number": "361",
+ "\u5c11\u6578\u80a1\u6b0a": {
+ "account_number": "3611"
+ }
+ }
+ },
+ "\u5eab\u85cf\u80a1": {
+ "account_number": "35",
+ "\u5eab\u85cf\u80a1": {
+ "account_number": "351",
+ "\u5eab\u85cf\u80a1": {
+ "account_number": "3511"
+ }
+ }
+ },
+ "\u6b0a\u76ca\u8abf\u6574": {
+ "account_number": "34",
+ "\u672a\u8a8d\u5217\u70ba\u9000\u4f11\u91d1\u6210\u672c\u4e4b\u6de8\u640d\u5931": {
+ "account_number": "343",
+ "\u672a\u8a8d\u5217\u70ba\u9000\u4f11\u91d1\u6210\u672c\u4e4b\u6de8\u640d\u5931": {
+ "account_number": "3431"
+ }
+ },
+ "\u7d2f\u7a4d\u63db\u7b97\u8abf\u6574\u6578": {
+ "account_number": "342",
+ "\u7d2f\u7a4d\u63db\u7b97\u8abf\u6574\u6578": {
+ "account_number": "3421"
+ }
+ },
+ "\u9577\u671f\u80a1\u6b0a\u6295\u8cc7\u672a\u5be6\u73fe\u8dcc\u50f9\u640d\u5931": {
+ "account_number": "341",
+ "\u9577\u671f\u80a1\u6b0a\u6295\u8cc7\u672a\u5be6\u73fe\u8dcc\u50f9\u640d\u5931": {
+ "account_number": "3411"
+ }
+ }
+ },
+ "\u8cc7\u672c": {
+ "account_number": "31",
+ "\u8cc7\u672c\uff08\u80a1\u672c\uff09 ": {
+ "account_number": "311",
+ "\u5f85\u5206\u914d\u80a1\u7968\u80a1\u5229": {
+ "account_number": "3114"
+ },
+ "\u666e\u901a\u80a1\u80a1\u672c": {
+ "account_number": "3111"
+ },
+ "\u7279\u5225\u80a1\u80a1\u672c": {
+ "account_number": "3112"
+ },
+ "\u8cc7\u672c": {
+ "account_number": "3115"
+ },
+ "\u9810\u6536\u80a1\u672c": {
+ "account_number": "3113"
+ }
+ }
+ },
+ "\u8cc7\u672c\u516c\u7a4d": {
+ "account_number": "32",
+ "\u5176\u4ed6\u8cc7\u672c\u516c\u7a4d": {
+ "account_number": "328",
+ "\u6b0a\u76ca\u6cd5\u9577\u671f\u80a1\u6b0a\u6295\u8cc7\u8cc7\u672c\u516c\u7a4d": {
+ "account_number": "3281"
+ },
+ "\u8cc7\u672c\u516c\u7a4d\u2014 \u5eab\u85cf\u80a1\u7968\u4ea4\u6613": {
+ "account_number": "3282"
+ }
+ },
+ "\u53d7\u8d08\u516c\u7a4d": {
+ "account_number": "326",
+ "\u53d7\u8d08\u516c\u7a4d": {
+ "account_number": "3261"
+ }
+ },
+ "\u5408\u4f75\u516c\u7a4d": {
+ "account_number": "325",
+ "\u5408\u4f75\u516c\u7a4d": {
+ "account_number": "3251"
+ }
+ },
+ "\u80a1\u7968\u6ea2\u50f9": {
+ "account_number": "321",
+ "\u666e\u901a\u80a1\u80a1\u7968\u6ea2\u50f9": {
+ "account_number": "3211"
+ },
+ "\u7279\u5225\u80a1\u80a1\u7968\u6ea2\u50f9": {
+ "account_number": "3212"
+ }
+ },
+ "\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u516c\u7a4d": {
+ "account_number": "324",
+ "\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u516c\u7a4d": {
+ "account_number": "3241"
+ }
+ },
+ "\u8cc7\u7522\u91cd\u4f30\u589e\u503c\u6e96\u5099": {
+ "account_number": "323",
+ "\u8cc7\u7522\u91cd\u4f30\u589e\u503c\u6e96\u5099": {
+ "account_number": "3231"
+ }
+ }
+ }
+ },
+ "\u71df\u696d\u5916\u6536\u5165\u53ca\u8cbb\u7528": {
+ "account_number": "7",
+ "root_type": "Income",
+ "\u71df\u696d\u5916\u6536\u5165": {
+ "account_number": "71~74",
+ "\u514c\u63db\u5229\u76ca": {
+ "account_number": "713",
+ "\u514c\u63db\u5229\u76ca": {
+ "account_number": "7131"
+ }
+ },
+ "\u5176\u4ed6\u71df\u696d\u5916\u6536\u5165": {
+ "account_number": "748",
+ "\u4f63\u91d1\u6536\u5165": {
+ "account_number": "7483"
+ },
+ "\u5176\u4ed6\u71df\u696d\u5916\u6536\u5165\u2014\u5176\u4ed6": {
+ "account_number": "7488"
+ },
+ "\u51fa\u552e\u4e0b\u8173\u53ca\u5ee2\u6599\u6536\u5165": {
+ "account_number": "7484"
+ },
+ "\u58de\u5e33\u8f49\u56de\u5229\u76ca": {
+ "account_number": "7487"
+ },
+ "\u5b58\u8ca8\u76e4\u76c8": {
+ "account_number": "7485"
+ },
+ "\u5b58\u8ca8\u8dcc\u50f9\u56de\u5347\u5229\u76ca": {
+ "account_number": "7486"
+ },
+ "\u6350\u8d08\u6536\u5165": {
+ "account_number": "7481"
+ },
+ "\u79df\u91d1\u6536\u5165": {
+ "account_number": "7482"
+ }
+ },
+ "\u5229\u606f\u6536\u5165": {
+ "account_number": "711",
+ "\u5229\u606f\u6536\u5165": {
+ "account_number": "7111"
+ }
+ },
+ "\u6295\u8cc7\u6536\u76ca": {
+ "account_number": "712",
+ "\u6b0a\u76ca\u6cd5\u8a8d\u5217\u4e4b\u6295\u8cc7\u6536\u76ca": {
+ "account_number": "7121"
+ },
+ "\u77ed\u671f\u6295\u8cc7\u5e02\u50f9\u56de\u5347\u5229\u76ca": {
+ "account_number": "7123"
+ },
+ "\u80a1\u5229\u6536\u5165": {
+ "account_number": "7122"
+ }
+ },
+ "\u8655\u5206\u6295\u8cc7\u6536\u76ca": {
+ "account_number": "714",
+ "\u8655\u5206\u6295\u8cc7\u6536\u76ca": {
+ "account_number": "7141"
+ }
+ },
+ "\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u6536\u5165": {
+ "account_number": "715",
+ "\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u6536\u5165": {
+ "account_number": "7151"
+ }
+ }
+ },
+ "\u71df\u696d\u5916\u8cbb\u7528": {
+ "account_number": "75~78",
+ "\u514c\u63db\u640d\u5931": {
+ "account_number": "753",
+ "\u514c\u63db\u640d\u5931": {
+ "account_number": "7531"
+ }
+ },
+ "\u5176\u4ed6\u71df\u696d\u5916\u8cbb\u7528": {
+ "account_number": "788",
+ "\u505c\u5de5\u640d\u5931": {
+ "account_number": "7881"
+ },
+ "\u5176\u4ed6\u71df\u696d\u5916\u8cbb\u7528\u2014\u5176\u4ed6": {
+ "account_number": "7888"
+ },
+ "\u5b58\u8ca8\u76e4\u640d": {
+ "account_number": "7885"
+ },
+ "\u5b58\u8ca8\u8dcc\u50f9\u53ca\u5446\u6eef\u640d\u5931": {
+ "account_number": "7886"
+ },
+ "\u707d\u5bb3\u640d\u5931": {
+ "account_number": "7882"
+ }
+ },
+ "\u5229\u606f\u8cbb\u7528": {
+ "account_number": "751",
+ "\u5229\u606f\u8cbb\u7528": {
+ "account_number": "7511"
+ }
+ },
+ "\u6295\u8cc7\u640d\u5931": {
+ "account_number": "752",
+ "\u6b0a\u76ca\u6cd5\u8a8d\u5217\u4e4b\u6295\u8cc7\u640d\u5931": {
+ "account_number": "7521"
+ },
+ "\u77ed\u671f\u6295\u8cc7\u672a\u5be6\u73fe\u8dcc\u50f9\u640d\u5931": {
+ "account_number": "7523"
+ }
+ },
+ "\u8655\u5206\u6295\u8cc7\u640d\u5931": {
+ "account_number": "754",
+ "\u8655\u5206\u6295\u8cc7\u640d\u5931": {
+ "account_number": "7541"
+ }
+ },
+ "\u8655\u5206\u8cc7\u7522\u640d\u5931": {
+ "account_number": "755",
+ "\u8655\u5206\u8cc7\u7522\u640d\u5931 ": {
+ "account_number": "7551"
+ }
+ }
+ }
+ },
+ "\u71df\u696d\u6210\u672c": {
+ "Stock Adjustment": {
+ "account_type": "Stock Adjustment"
+ },
+ "account_number": "5",
+ "root_type": "Expense",
+ "\u5176\u4ed6\u71df\u696d\u6210\u672c": {
+ "account_number": "58",
+ "\u5176\u4ed6\u71df\u696d\u6210\u672c\u2014\u5176\u4ed6 ": {
+ "account_number": "588",
+ "\u5176\u4ed6\u71df\u696d\u6210\u672c\u2014\u5176\u4ed6": {
+ "account_number": "5888"
+ }
+ }
+ },
+ "\u52de\u52d9\u6210\u672c\u88fd": {
+ "account_number": "56",
+ "\u52de\u52d9\u6210\u672c": {
+ "account_number": "561",
+ "\u52de\u52d9\u6210\u672c": {
+ "account_number": "5611"
+ }
+ }
+ },
+ "\u696d\u52d9\u6210\u672c": {
+ "account_number": "57",
+ "\u696d\u52d9\u6210\u672c": {
+ "account_number": "571",
+ "\u696d\u52d9\u6210\u672c": {
+ "account_number": "5711"
+ }
+ }
+ },
+ "\u92b7\u8ca8\u6210\u672c": {
+ "Expenses Included In Valuation": {
+ "account_type": "Expenses Included In Valuation"
+ },
+ "account_number": "51",
+ "account_type": "Cost of Goods Sold",
+ "\u76f4\u63a5\u4eba\u5de5": {
+ "account_number": "514",
+ "\u76f4\u63a5\u4eba\u5de5": {
+ "account_number": "5141"
+ }
+ },
+ "\u88fd\u9020\u8cbb\u7528": {
+ "account_number": "515~518",
+ "\u4f19\u98df\u8cbb": {
+ "account_number": "5172"
+ },
+ "\u4fdd\u96aa\u8cbb": {
+ "account_number": "5162"
+ },
+ "\u4fee\u7e55\u8cbb": {
+ "account_number": "5157"
+ },
+ "\u5176\u4ed6\u88fd\u9020\u8cbb\u7528": {
+ "account_number": "5188"
+ },
+ "\u52a0\u5de5\u8cbb": {
+ "account_number": "5163"
+ },
+ "\u5305\u88dd\u8cbb": {
+ "account_number": "5158"
+ },
+ "\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {
+ "account_number": "5169"
+ },
+ "\u6298\u820a ": {
+ "account_number": "5168",
+ "account_type": "Depreciation"
+ },
+ "\u6587\u5177\u7528\u54c1": {
+ "account_number": "5153"
+ },
+ "\u65c5\u8cbb": {
+ "account_number": "5154"
+ },
+ "\u6c34\u96fb\u74e6\u65af\u8cbb": {
+ "account_number": "5161"
+ },
+ "\u79df\u91d1\u652f\u51fa": {
+ "account_number": "5152"
+ },
+ "\u7a05\u6350": {
+ "account_number": "5166",
+ "account_type": "Tax",
+ "tax_rate": 5.0
+ },
+ "\u8077\u5de5\u798f\u5229": {
+ "account_number": "5173"
+ },
+ "\u8a13\u7df4\u8cbb": {
+ "account_number": "5176"
+ },
+ "\u904b\u8cbb": {
+ "account_number": "5155"
+ },
+ "\u90f5\u96fb\u8cbb": {
+ "account_number": "5156"
+ },
+ "\u9593\u63a5\u4eba\u5de5": {
+ "account_number": "5151"
+ },
+ "\u9593\u63a5\u6750\u6599": {
+ "account_number": "5177"
+ }
+ },
+ "\u9032\u6599": {
+ "account_number": "513",
+ "\u9032\u6599": {
+ "account_number": "5131"
+ },
+ "\u9032\u6599\u6298\u8b93": {
+ "account_number": "5134"
+ },
+ "\u9032\u6599\u8cbb\u7528": {
+ "account_number": "5132"
+ },
+ "\u9032\u6599\u9000\u51fa": {
+ "account_number": "5133"
+ }
+ },
+ "\u9032\u8ca8": {
+ "account_number": "512",
+ "\u9032\u8ca8": {
+ "account_number": "5121"
+ },
+ "\u9032\u8ca8\u6298\u8b93": {
+ "account_number": "5124"
+ },
+ "\u9032\u8ca8\u8cbb\u7528": {
+ "account_number": "5122"
+ },
+ "\u9032\u8ca8\u9000\u51fa": {
+ "account_number": "5123"
+ }
+ },
+ "\u92b7\u8ca8\u6210\u672c": {
+ "account_number": "511",
+ "account_type": "Cost of Goods Sold",
+ "\u5206\u671f\u4ed8\u6b3e\u92b7\u8ca8\u6210\u672c": {
+ "account_number": "5112",
+ "account_type": "Cost of Goods Sold"
+ },
+ "\u92b7\u8ca8\u6210\u672c": {
+ "account_number": "5111",
+ "account_type": "Cost of Goods Sold"
+ }
+ }
+ }
+ },
+ "\u71df\u696d\u6536\u5165": {
+ "account_number": "4",
+ "root_type": "Income",
+ "\u5176\u4ed6\u71df\u696d\u6536\u5165": {
+ "account_number": "48",
+ "\u5176\u4ed6\u71df\u696d\u6536\u5165\u2014\u5176\u4ed6": {
+ "account_number": "488",
+ "\u5176\u4ed6\u71df\u696d\u6536\u5165\u2014\u5176\u4ed6": {
+ "account_number": "4888"
+ }
+ }
+ },
+ "\u52de\u52d9\u6536\u5165": {
+ "account_number": "46",
+ "\u52de\u52d9\u6536\u5165": {
+ "account_number": "461",
+ "\u52de\u52d9\u6536\u5165": {
+ "account_number": "4611"
+ }
+ }
+ },
+ "\u696d\u52d9\u6536\u5165": {
+ "account_number": "47",
+ "\u696d\u52d9\u6536\u5165": {
+ "account_number": "471",
+ "\u696d\u52d9\u6536\u5165": {
+ "account_number": "4711"
+ }
+ }
+ },
+ "\u92b7\u8ca8\u6536\u5165": {
+ "account_number": "41",
+ "\u92b7\u8ca8\u6298\u8b93": {
+ "account_number": "419",
+ "\u92b7\u8ca8\u6298\u8b93": {
+ "account_number": "4191"
+ }
+ },
+ "\u92b7\u8ca8\u6536\u5165": {
+ "account_number": "411",
+ "\u5206\u671f\u4ed8\u6b3e\u92b7\u8ca8\u6536\u5165": {
+ "account_number": "4112"
+ },
+ "\u92b7\u8ca8\u6536\u5165": {
+ "account_number": "4111"
+ }
+ },
+ "\u92b7\u8ca8\u9000\u56de": {
+ "account_number": "417",
+ "\u92b7\u8ca8\u9000\u56de": {
+ "account_number": "4171"
+ }
+ }
+ }
+ },
+ "\u71df\u696d\u8cbb\u7528": {
+ "account_number": "6",
+ "root_type": "Expense",
+ "\u63a8\u92b7\u8cbb\u7528": {
+ "account_number": "61",
+ "\u63a8\u92b7\u8cbb\u7528": {
+ "account_number": "615~618",
+ "\u4ea4\u969b\u8cbb": {
+ "account_number": "6164"
+ },
+ "\u4f19\u98df\u8cbb": {
+ "account_number": "6172"
+ },
+ "\u4f63\u91d1\u652f\u51fa": {
+ "account_number": "6175"
+ },
+ "\u4fdd\u96aa\u8cbb": {
+ "account_number": "6162"
+ },
+ "\u4fee\u7e55\u8cbb": {
+ "account_number": "6157"
+ },
+ "\u5176\u4ed6\u63a8\u92b7\u8cbb\u7528": {
+ "account_number": "6188"
+ },
+ "\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {
+ "account_number": "6169"
+ },
+ "\u5446\u5e33\u640d\u5931": {
+ "account_number": "6167"
+ },
+ "\u5ee3\u544a\u8cbb": {
+ "account_number": "6159"
+ },
+ "\u6298\u820a ": {
+ "account_number": "6168",
+ "account_type": "Depreciation"
+ },
+ "\u6350\u8d08": {
+ "account_number": "6165"
+ },
+ "\u6587\u5177\u7528\u54c1": {
+ "account_number": "6153"
+ },
+ "\u65c5\u8cbb": {
+ "account_number": "6154"
+ },
+ "\u6c34\u96fb\u74e6\u65af\u8cbb": {
+ "account_number": "6161"
+ },
+ "\u79df\u91d1\u652f\u51fa": {
+ "account_number": "6152"
+ },
+ "\u7a05\u6350": {
+ "account_number": "6166",
+ "account_type": "Tax",
+ "tax_rate": 5.0
+ },
+ "\u8077\u5de5\u798f\u5229": {
+ "account_number": "6173"
+ },
+ "\u85aa\u8cc7\u652f\u51fa": {
+ "account_number": "6151"
+ },
+ "\u8a13\u7df4\u8cbb": {
+ "account_number": "6176"
+ },
+ "\u904b\u8cbb": {
+ "account_number": "6155"
+ },
+ "\u90f5\u96fb\u8cbb": {
+ "account_number": "6156"
+ }
+ }
+ },
+ "\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {
+ "account_number": "63",
+ "\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {
+ "account_number": "635~638",
+ "\u4ea4\u969b\u8cbb": {
+ "account_number": "6364"
+ },
+ "\u4f19\u98df\u8cbb": {
+ "account_number": "6372"
+ },
+ "\u4fdd\u96aa\u8cbb": {
+ "account_number": "6362"
+ },
+ "\u4fee\u7e55\u8cbb": {
+ "account_number": "6357"
+ },
+ "\u5176\u4ed6\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {
+ "account_number": "6378"
+ },
+ "\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {
+ "account_number": "6369"
+ },
+ "\u6298\u820a": {
+ "account_number": "6368",
+ "account_type": "Depreciation"
+ },
+ "\u6587\u5177\u7528\u54c1": {
+ "account_number": "6353"
+ },
+ "\u65c5\u8cbb": {
+ "account_number": "6354"
+ },
+ "\u6c34\u96fb\u74e6\u65af\u8cbb": {
+ "account_number": "6361"
+ },
+ "\u79df\u91d1\u652f\u51fa": {
+ "account_number": "6352"
+ },
+ "\u7a05\u6350": {
+ "account_number": "6366",
+ "account_type": "Tax",
+ "tax_rate": 5.0
+ },
+ "\u8077\u5de5\u798f\u5229": {
+ "account_number": "6373"
+ },
+ "\u85aa\u8cc7\u652f\u51fa": {
+ "account_number": "6351"
+ },
+ "\u8a13\u7df4\u8cbb": {
+ "account_number": "6376"
+ },
+ "\u904b\u8cbb": {
+ "account_number": "6355"
+ },
+ "\u90f5\u96fb\u8cbb": {
+ "account_number": "6356"
+ }
+ }
+ },
+ "\u7ba1\u7406\u53ca\u7e3d\u52d9\u8cbb\u7528": {
+ "account_number": "62",
+ "\u7ba1\u7406\u53ca\u7e3d\u52d9\u8cbb\u7528": {
+ "account_number": "625~628",
+ "\u4ea4\u969b\u8cbb": {
+ "account_number": "6264"
+ },
+ "\u4f19\u98df\u8cbb": {
+ "account_number": "6272"
+ },
+ "\u4f63\u91d1\u652f\u51fa": {
+ "account_number": "6275"
+ },
+ "\u4fdd\u96aa\u8cbb": {
+ "account_number": "6262"
+ },
+ "\u4fee\u7e55\u8cbb": {
+ "account_number": "6257"
+ },
+ "\u5176\u4ed6\u7ba1\u7406\u53ca\u7e3d\u52d9\u8cbb\u7528": {
+ "account_number": "6288"
+ },
+ "\u52de\u52d9\u8cbb": {
+ "account_number": "6278"
+ },
+ "\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {
+ "account_number": "6269"
+ },
+ "\u5446\u5e33\u640d\u5931": {
+ "account_number": "6267"
+ },
+ "\u5916\u92b7\u640d\u5931": {
+ "account_number": "6271"
+ },
+ "\u5ee3\u544a\u8cbb": {
+ "account_number": "6259"
+ },
+ "\u6298\u820a": {
+ "account_number": "6268",
+ "account_type": "Depreciation"
+ },
+ "\u6350\u8d08": {
+ "account_number": "6265"
+ },
+ "\u6587\u5177\u7528\u54c1": {
+ "account_number": "6253"
+ },
+ "\u65c5\u8cbb": {
+ "account_number": "6254"
+ },
+ "\u6c34\u96fb\u74e6\u65af\u8cbb": {
+ "account_number": "6261"
+ },
+ "\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {
+ "account_number": "6274"
+ },
+ "\u79df\u91d1\u652f\u51fa": {
+ "account_number": "6252"
+ },
+ "\u7a05\u6350": {
+ "account_number": "6266",
+ "account_type": "Tax",
+ "tax_rate": 5.0
+ },
+ "\u8077\u5de5\u798f\u5229": {
+ "account_number": "6273"
+ },
+ "\u85aa\u8cc7\u652f\u51fa": {
+ "account_number": "6251"
+ },
+ "\u8a13\u7df4\u8cbb": {
+ "account_number": "6276"
+ },
+ "\u904b\u8cbb": {
+ "account_number": "6255"
+ },
+ "\u90f5\u96fb\u8cbb": {
+ "account_number": "6256"
+ }
+ }
+ }
+ },
+ "\u8ca0\u50b5": {
+ "Stock Received But Not Billed": {
+ "account_type": "Stock Received But Not Billed"
+ },
+ "account_number": "2",
+ "root_type": "Liability",
+ "\u5176\u4ed6\u8ca0\u50b5": {
+ "account_number": "28",
+ "\u5b58\u5165\u4fdd\u8b49\u91d1": {
+ "account_number": "286",
+ "\u5b58\u5165\u4fdd\u8b49\u91d1": {
+ "account_number": "2861"
+ }
+ },
+ "\u905e\u5ef6\u8ca0\u50b5": {
+ "account_number": "281",
+ "\u5176\u4ed6\u905e\u5ef6\u8ca0\u50b5": {
+ "account_number": "2818"
+ },
+ "\u905e\u5ef6\u6240\u5f97\u7a05\u8ca0\u50b5": {
+ "account_number": "2814"
+ },
+ "\u905e\u5ef6\u6536\u5165": {
+ "account_number": "2811"
+ }
+ },
+ "\u96dc\u9805\u8ca0\u50b5": {
+ "account_number": "288",
+ "\u96dc\u9805\u8ca0\u50b5 \u2014\u5176\u4ed6": {
+ "account_number": "2888"
+ }
+ }
+ },
+ "\u6d41\u52d5\u8ca0\u50b5": {
+ "account_number": "21~22",
+ "\u4e00\u5e74\u6216\u4e00\u71df\u696d\u9031\u671f\u5167\u5230\u671f\u9577\u671f\u8ca0\u50b5": {
+ "account_number": "227",
+ "is_group": 1
+ },
+ "\u5176\u4ed6\u61c9\u4ed8\u6b3e": {
+ "account_number": "218~219",
+ "\u61c9\u4ed8\u571f\u5730\u623f\u5c4b\u6b3e": {
+ "account_number": "2184"
+ },
+ "\u61c9\u4ed8\u80a1\u5229": {
+ "account_number": "2192"
+ },
+ "\u61c9\u4ed8\u8a2d\u5099\u6b3e": {
+ "account_number": "2185"
+ }
+ },
+ "\u5176\u4ed6\u6d41\u52d5\u8ca0\u50b5": {
+ "account_number": "228~229",
+ "\u4ee3\u6536\u6b3e": {
+ "account_number": "2284"
+ },
+ "\u4f30\u8a08\u552e\u5f8c\u670d\u52d9/\u4fdd\u56fa\u8ca0\u50b5": {
+ "account_number": "2285"
+ },
+ "\u66ab\u6536\u6b3e ": {
+ "account_number": "2283"
+ },
+ "\u905e\u5ef6\u514c\u63db\u5229\u76ca": {
+ "account_number": "2292"
+ },
+ "\u905e\u5ef6\u6240\u5f97\u7a05\u8ca0\u50b5": {
+ "account_number": "2291"
+ },
+ "\u92b7\u9805\u7a05\u984d": {
+ "account_number": "2281"
+ }
+ },
+ "\u61c9\u4ed8\u5e33\u6b3e": {
+ "account_number": "214",
+ "account_type": "Payable",
+ "\u61c9\u4ed8\u5e33\u6b3e": {
+ "account_number": "2141",
+ "account_type": "Payable"
+ }
+ },
+ "\u61c9\u4ed8\u6240\u5f97\u7a05": {
+ "account_number": "216",
+ "account_type": "Tax",
+ "tax_rate": 5.0,
+ "\u61c9\u4ed8\u6240\u5f97\u7a05": {
+ "account_number": "2161",
+ "account_type": "Tax",
+ "tax_rate": 5.0
+ }
+ },
+ "\u61c9\u4ed8\u77ed\u671f\u7968\u5238": {
+ "account_number": "212",
+ "account_type": "Payable",
+ "\u61c9\u4ed8\u5546\u696d\u672c\u7968": {
+ "account_number": "2121",
+ "account_type": "Payable"
+ },
+ "\u9280\u884c\u627f\u514c\u532f\u7968": {
+ "account_number": "2122",
+ "account_type": "Payable"
+ }
+ },
+ "\u61c9\u4ed8\u7968\u64da": {
+ "account_number": "213",
+ "account_type": "Payable",
+ "\u61c9\u4ed8\u7968\u64da": {
+ "account_number": "2131",
+ "account_type": "Payable"
+ }
+ },
+ "\u61c9\u4ed8\u8cbb\u7528": {
+ "account_number": "217",
+ "\u5176\u4ed6\u61c9\u4ed8\u8cbb\u7528": {
+ "account_number": "2178"
+ },
+ "\u61c9\u4ed8\u5229\u606f": {
+ "account_number": "2173"
+ },
+ "\u61c9\u4ed8\u71df\u696d\u7a05": {
+ "account_number": "2174"
+ },
+ "\u61c9\u4ed8\u79df\u91d1": {
+ "account_number": "2172"
+ },
+ "\u61c9\u4ed8\u7a05\u6350 \u2014\u5176\u4ed6": {
+ "account_number": "2175",
+ "account_type": "Tax",
+ "tax_rate": 5.0
+ },
+ "\u61c9\u4ed8\u85aa\u5de5": {
+ "account_number": "2171"
+ }
+ },
+ "\u77ed\u671f\u501f\u6b3e": {
+ "account_number": "211",
+ "\u9280\u884c\u501f\u6b3e": {
+ "account_number": "2112"
+ },
+ "\u9280\u884c\u900f\u652f": {
+ "account_number": "2111"
+ }
+ },
+ "\u9810\u6536\u6b3e\u9805": {
+ "account_number": "226",
+ "\u5176\u4ed6\u9810\u6536\u6b3e": {
+ "account_number": "2268"
+ },
+ "\u9810\u6536\u6536\u5165": {
+ "account_number": "2262"
+ },
+ "\u9810\u6536\u8ca8\u6b3e": {
+ "account_number": "2261"
+ }
+ }
+ },
+ "\u9577\u671f\u8ca0\u50b5": {
+ "account_number": "23",
+ "\u4f30\u8a08\u61c9\u4ed8\u571f\u5730\u589e\u503c\u7a05": {
+ "account_number": "234",
+ "\u4f30\u8a08\u61c9\u4ed8\u571f\u5730\u589e\u503c\u7a05": {
+ "account_number": "2341"
+ }
+ },
+ "\u5176\u4ed6\u9577\u671f\u8ca0\u50b5": {
+ "account_number": "238",
+ "\u5176\u4ed6\u9577\u671f\u8ca0\u50b5\u2014\u5176\u4ed6": {
+ "account_number": "2388"
+ }
+ },
+ "\u61c9\u4ed8\u516c\u53f8\u50b5": {
+ "account_number": "231",
+ "\u61c9\u4ed8\u516c\u53f8\u50b5": {
+ "account_number": "2311"
+ },
+ "\u61c9\u4ed8\u516c\u53f8\u50b5\u6ea2(\u6298)\u50f9": {
+ "account_number": "2319"
+ }
+ },
+ "\u61c9\u8a08\u9000\u4f11\u91d1\u8ca0\u50b5": {
+ "account_number": "235",
+ "\u61c9\u8a08\u9000\u4f11\u91d1\u8ca0\u50b5": {
+ "account_number": "2351"
+ }
+ },
+ "\u9577\u671f\u501f\u6b3e": {
+ "account_number": "232",
+ "\u9577\u671f\u501f\u6b3e \u2014\u5176\u4ed6": {
+ "account_number": "2328"
+ },
+ "\u9577\u671f\u501f\u6b3e \u2014\u54e1\u5de5": {
+ "account_number": "2325"
+ },
+ "\u9577\u671f\u501f\u6b3e \u2014\u696d\u4e3b": {
+ "account_number": "2324"
+ },
+ "\u9577\u671f\u501f\u6b3e \u2014\u95dc\u4fc2\u4eba": {
+ "account_number": "2327"
+ },
+ "\u9577\u671f\u9280\u884c\u501f\u6b3e": {
+ "account_number": "2321"
+ }
+ },
+ "\u9577\u671f\u61c9\u4ed8\u7968\u64da\u53ca\u6b3e\u9805": {
+ "account_number": "233",
+ "account_type": "Payable",
+ "\u9577\u671f\u61c9\u4ed8\u5e33\u6b3e": {
+ "account_number": "2332",
+ "account_type": "Payable"
+ },
+ "\u9577\u671f\u61c9\u4ed8\u7968\u64da": {
+ "account_number": "2331",
+ "account_type": "Payable"
+ },
+ "\u9577\u671f\u61c9\u4ed8\u79df\u8cc3\u8ca0\u50b5": {
+ "account_number": "2333",
+ "account_type": "Payable"
+ }
+ }
+ }
+ },
+ "\u8cc7\u7522": {
"Temporary Accounts": {
"Temporary Opening": {
"account_type": "Temporary"
- },
+ },
"account_type": "Temporary"
- },
- "root_type": "Asset"
- },
- "2-\u8ca0\u50b5": {
- "21~22-\u6d41\u52d5\u8ca0\u50b5": {
- "211-\u77ed\u671f\u501f\u6b3e": {
- "2111-\u9280\u884c\u900f\u652f": {},
- "2112-\u9280\u884c\u501f\u6b3e": {}
- },
- "212-\u61c9\u4ed8\u77ed\u671f\u7968\u5238": {
- "2121-\u61c9\u4ed8\u5546\u696d\u672c\u7968": {
- "account_type": "Payable"
- },
- "2122-\u9280\u884c\u627f\u514c\u532f\u7968": {
- "account_type": "Payable"
- },
- "account_type": "Payable"
- },
- "213-\u61c9\u4ed8\u7968\u64da": {
- "2131-\u61c9\u4ed8\u7968\u64da": {
- "account_type": "Payable"
- },
- "account_type": "Payable"
- },
- "214-\u61c9\u4ed8\u5e33\u6b3e": {
- "2141-\u61c9\u4ed8\u5e33\u6b3e": {
- "account_type": "Payable"
- },
- "account_type": "Payable"
- },
- "216-\u61c9\u4ed8\u6240\u5f97\u7a05": {
- "2161-\u61c9\u4ed8\u6240\u5f97\u7a05": {
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "217-\u61c9\u4ed8\u8cbb\u7528": {
- "2171-\u61c9\u4ed8\u85aa\u5de5": {},
- "2172-\u61c9\u4ed8\u79df\u91d1": {},
- "2173-\u61c9\u4ed8\u5229\u606f": {},
- "2174-\u61c9\u4ed8\u71df\u696d\u7a05": {},
- "2175-\u61c9\u4ed8\u7a05\u6350 \u2014\u5176\u4ed6": {
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "2178-\u5176\u4ed6\u61c9\u4ed8\u8cbb\u7528": {}
- },
- "218~219-\u5176\u4ed6\u61c9\u4ed8\u6b3e": {
- "2184-\u61c9\u4ed8\u571f\u5730\u623f\u5c4b\u6b3e": {},
- "2185-\u61c9\u4ed8\u8a2d\u5099\u6b3e": {},
- "2192-\u61c9\u4ed8\u80a1\u5229": {}
- },
- "226-\u9810\u6536\u6b3e\u9805": {
- "2261-\u9810\u6536\u8ca8\u6b3e": {},
- "2262-\u9810\u6536\u6536\u5165": {},
- "2268-\u5176\u4ed6\u9810\u6536\u6b3e": {}
- },
- "227-\u4e00\u5e74\u6216\u4e00\u71df\u696d\u9031\u671f\u5167\u5230\u671f\u9577\u671f\u8ca0\u50b5": {
- "is_group": 1
- },
- "228~229-\u5176\u4ed6\u6d41\u52d5\u8ca0\u50b5": {
- "2281-\u92b7\u9805\u7a05\u984d": {},
- "2283-\u66ab\u6536\u6b3e ": {},
- "2284-\u4ee3\u6536\u6b3e": {},
- "2285-\u4f30\u8a08\u552e\u5f8c\u670d\u52d9/\u4fdd\u56fa\u8ca0\u50b5": {},
- "2291-\u905e\u5ef6\u6240\u5f97\u7a05\u8ca0\u50b5": {},
- "2292-\u905e\u5ef6\u514c\u63db\u5229\u76ca": {}
+ },
+ "account_number": "1",
+ "root_type": "Asset",
+ "\u5176\u4ed6\u8cc7\u7522": {
+ "account_number": "18",
+ "\u51fa\u79df\u8cc7\u7522": {
+ "account_number": "185",
+ "\u51fa\u79df\u8cc7\u7522": {
+ "account_number": "1851"
+ },
+ "\u51fa\u79df\u8cc7\u7522 \u2014\u91cd\u4f30\u589e\u503c": {
+ "account_number": "1858"
+ },
+ "\u7d2f\u7a4d\u6298\u820a \u2014\u51fa\u79df\u8cc7\u7522": {
+ "account_number": "1859",
+ "account_type": "Accumulated Depreciation"
+ }
+ },
+ "\u5b58\u51fa\u4fdd\u8b49\u91d1": {
+ "account_number": "186",
+ "\u5b58\u51fa\u4fdd\u8b49\u91d1": {
+ "account_number": "1861"
+ }
+ },
+ "\u905e\u5ef6\u8cc7\u7522": {
+ "account_number": "181",
+ "\u50b5\u5238\u767c\u884c\u6210\u672c": {
+ "account_number": "1811"
+ },
+ "\u5176\u4ed6\u905e\u5ef6\u8cc7\u7522": {
+ "account_number": "1818"
+ },
+ "\u905e\u5ef6\u6240\u5f97\u7a05\u8cc7\u7522": {
+ "account_number": "1814"
+ },
+ "\u9577\u671f\u9810\u4ed8\u4fdd\u96aa\u8cbb": {
+ "account_number": "1813"
+ },
+ "\u9577\u671f\u9810\u4ed8\u79df\u91d1": {
+ "account_number": "1812"
+ },
+ "\u9810\u4ed8\u9000\u4f11\u91d1": {
+ "account_number": "1815"
+ }
+ },
+ "\u9577\u671f\u61c9\u6536\u7968\u64da\u53ca\u6b3e\u9805\u8207\u50ac\u6536\u5e33\u6b3e": {
+ "account_number": "184",
+ "account_type": "Receivable",
+ "\u5099\u62b5\u5446\u5e33\u2014\u9577\u671f\u61c9\u6536\u7968\u64da\u53ca\u6b3e\u9805\u8207\u50ac\u6536\u5e33\u6b3e": {
+ "account_number": "1849",
+ "account_type": "Receivable"
+ },
+ "\u50ac\u6536\u5e33\u6b3e": {
+ "account_number": "1843",
+ "account_type": "Receivable"
+ },
+ "\u5176\u4ed6\u9577\u671f\u61c9\u6536\u6b3e\u9805": {
+ "account_number": "1848",
+ "account_type": "Receivable"
+ },
+ "\u9577\u671f\u61c9\u6536\u5e33\u6b3e": {
+ "account_number": "1842",
+ "account_type": "Receivable"
+ },
+ "\u9577\u671f\u61c9\u6536\u7968\u64da": {
+ "account_number": "1841",
+ "account_type": "Receivable"
+ }
+ },
+ "\u9592\u7f6e\u8cc7\u7522": {
+ "account_number": "182",
+ "\u9592\u7f6e\u8cc7\u7522": {
+ "account_number": "1821"
+ }
+ },
+ "\u96dc\u9805\u8cc7\u7522": {
+ "account_number": "188",
+ "\u53d7\u9650\u5236\u5b58\u6b3e": {
+ "account_number": "1881"
+ },
+ "\u96dc\u9805\u8cc7\u7522 \u2014\u5176\u4ed6": {
+ "account_number": "1888"
+ }
}
- },
- "23-\u9577\u671f\u8ca0\u50b5": {
- "231-\u61c9\u4ed8\u516c\u53f8\u50b5": {
- "2311-\u61c9\u4ed8\u516c\u53f8\u50b5": {},
- "2319-\u61c9\u4ed8\u516c\u53f8\u50b5\u6ea2(\u6298)\u50f9": {}
- },
- "232-\u9577\u671f\u501f\u6b3e": {
- "2321-\u9577\u671f\u9280\u884c\u501f\u6b3e": {},
- "2324-\u9577\u671f\u501f\u6b3e \u2014\u696d\u4e3b": {},
- "2325-\u9577\u671f\u501f\u6b3e \u2014\u54e1\u5de5": {},
- "2327-\u9577\u671f\u501f\u6b3e \u2014\u95dc\u4fc2\u4eba": {},
- "2328-\u9577\u671f\u501f\u6b3e \u2014\u5176\u4ed6": {}
- },
- "233-\u9577\u671f\u61c9\u4ed8\u7968\u64da\u53ca\u6b3e\u9805": {
- "2331-\u9577\u671f\u61c9\u4ed8\u7968\u64da": {
- "account_type": "Payable"
- },
- "2332-\u9577\u671f\u61c9\u4ed8\u5e33\u6b3e": {
- "account_type": "Payable"
- },
- "2333-\u9577\u671f\u61c9\u4ed8\u79df\u8cc3\u8ca0\u50b5": {
- "account_type": "Payable"
- },
- "account_type": "Payable"
- },
- "234-\u4f30\u8a08\u61c9\u4ed8\u571f\u5730\u589e\u503c\u7a05": {
- "2341-\u4f30\u8a08\u61c9\u4ed8\u571f\u5730\u589e\u503c\u7a05": {}
- },
- "235-\u61c9\u8a08\u9000\u4f11\u91d1\u8ca0\u50b5": {
- "2351-\u61c9\u8a08\u9000\u4f11\u91d1\u8ca0\u50b5": {}
- },
- "238-\u5176\u4ed6\u9577\u671f\u8ca0\u50b5": {
- "2388-\u5176\u4ed6\u9577\u671f\u8ca0\u50b5\u2014\u5176\u4ed6": {}
+ },
+ "\u56fa\u5b9a\u8cc7\u7522": {
+ "account_number": "14~15",
+ "account_type": "Fixed Asset",
+ "\u571f\u5730": {
+ "account_number": "141",
+ "account_type": "Fixed Asset",
+ "\u571f\u5730": {
+ "account_number": "1411",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u571f\u5730\u6539\u826f\u7269": {
+ "account_number": "142",
+ "account_type": "Fixed Asset",
+ "\u571f\u5730\u6539\u826f\u7269": {
+ "account_number": "1421",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u623f\u5c4b\u53ca\u5efa\u7269": {
+ "account_number": "143",
+ "account_type": "Fixed Asset",
+ "\u623f\u5c4b\u53ca\u5efa\u7269": {
+ "account_number": "1431",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u672a\u5b8c\u5de5\u7a0b\u53ca\u9810\u4ed8\u8cfc\u7f6e\u8a2d\u5099\u6b3e": {
+ "account_number": "156",
+ "account_type": "Fixed Asset",
+ "\u672a\u5b8c\u5de5\u7a0b": {
+ "account_number": "1561",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u6a5f(\u5668)\u5177\u53ca\u8a2d\u5099": {
+ "account_number": "144~146",
+ "account_type": "Fixed Asset",
+ "\u6a5f(\u5668)\u5177": {
+ "account_number": "1441",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u79df\u8cc3\u6b0a\u76ca\u6539\u826f": {
+ "account_number": "152",
+ "account_type": "Fixed Asset",
+ "\u79df\u8cc3\u6b0a\u76ca\u6539\u826f": {
+ "account_number": "1521",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u79df\u8cc3\u8cc7\u7522": {
+ "account_number": "151",
+ "account_type": "Fixed Asset",
+ "\u79df\u8cc3\u8cc7\u7522": {
+ "account_number": "1511",
+ "account_type": "Fixed Asset"
+ }
+ },
+ "\u96dc\u9805\u56fa\u5b9a\u8cc7\u7522": {
+ "account_number": "158",
+ "account_type": "Fixed Asset",
+ "\u96dc\u9805\u56fa\u5b9a\u8cc7\u7522": {
+ "account_number": "1581",
+ "account_type": "Fixed Asset"
+ }
}
- },
- "28-\u5176\u4ed6\u8ca0\u50b5": {
- "281-\u905e\u5ef6\u8ca0\u50b5": {
- "2811-\u905e\u5ef6\u6536\u5165": {},
- "2814-\u905e\u5ef6\u6240\u5f97\u7a05\u8ca0\u50b5": {},
- "2818-\u5176\u4ed6\u905e\u5ef6\u8ca0\u50b5": {}
- },
- "286-\u5b58\u5165\u4fdd\u8b49\u91d1": {
- "2861-\u5b58\u5165\u4fdd\u8b49\u91d1": {}
- },
- "288-\u96dc\u9805\u8ca0\u50b5": {
- "2888-\u96dc\u9805\u8ca0\u50b5 \u2014\u5176\u4ed6": {}
+ },
+ "\u57fa\u91d1\u53ca\u9577\u671f\u6295\u8cc7": {
+ "account_number": "13",
+ "\u57fa\u91d1": {
+ "account_number": "131",
+ "\u511f\u50b5\u57fa\u91d1": {
+ "account_number": "1311"
+ },
+ "\u5176\u4ed6\u57fa\u91d1": {
+ "account_number": "1318"
+ },
+ "\u610f\u5916\u640d\u5931\u6e96\u5099\u57fa\u91d1": {
+ "account_number": "1313"
+ },
+ "\u9000\u4f11\u57fa\u91d1": {
+ "account_number": "1314"
+ }
+ },
+ "\u9577\u671f\u6295\u8cc7": {
+ "account_number": "132",
+ "\u5176\u4ed6\u9577\u671f\u6295\u8cc7": {
+ "account_number": "1328"
+ },
+ "\u9577\u671f\u4e0d\u52d5\u7522\u6295\u8cc7": {
+ "account_number": "1323"
+ },
+ "\u9577\u671f\u50b5\u5238\u6295\u8cc7": {
+ "account_number": "1322"
+ },
+ "\u9577\u671f\u80a1\u6b0a\u6295\u8cc7": {
+ "account_number": "1321"
+ }
}
- },
- "Stock Received But Not Billed": {
- "account_type": "Stock Received But Not Billed"
- },
- "root_type": "Liability"
- },
- "3-\u696d\u4e3b\u6b0a\u76ca": {
- "31-\u8cc7\u672c": {
- "311-\u8cc7\u672c\uff08\u80a1\u672c\uff09 ": {
- "3111-\u666e\u901a\u80a1\u80a1\u672c": {},
- "3112-\u7279\u5225\u80a1\u80a1\u672c": {},
- "3113-\u9810\u6536\u80a1\u672c": {},
- "3114-\u5f85\u5206\u914d\u80a1\u7968\u80a1\u5229": {},
- "3115-\u8cc7\u672c": {}
+ },
+ "\u6d41\u52d5\u8cc7\u7522": {
+ "account_number": "11~12",
+ "\u5176\u4ed6\u61c9\u6536\u6b3e": {
+ "account_number": "118",
+ "account_type": "Receivable",
+ "\u5099\u62b5\u5446\u5e33 \u2014 \u5176\u4ed6\u61c9\u6536\u6b3e ": {
+ "account_number": "1189",
+ "account_type": "Receivable"
+ },
+ "\u61c9\u6536\u6536\u76ca": {
+ "account_number": "1184",
+ "account_type": "Receivable"
+ },
+ "\u61c9\u6536\u9000\u7a05\u6b3e": {
+ "account_number": "1185",
+ "account_type": "Receivable"
+ }
+ },
+ "\u5176\u4ed6\u6d41\u52d5\u8cc7\u7522": {
+ "account_number": "128~129",
+ "\u4ee3\u4ed8\u6b3e": {
+ "account_number": "1284"
+ },
+ "\u54e1\u5de5\u501f\u652f": {
+ "account_number": "1285"
+ },
+ "\u66ab\u4ed8\u6b3e": {
+ "account_number": "1283"
+ },
+ "\u7559\u62b5\u7a05\u984d": {
+ "account_number": "1282"
+ },
+ "\u9032\u9805\u7a05\u984d": {
+ "account_number": "1281"
+ }
+ },
+ "\u5b58\u8ca8": {
+ "account_number": "121~122",
+ "account_type": "Stock",
+ "is_group": 1,
+ "\u5099\u62b5\u5b58\u8ca8\u8dcc\u50f9\u640d\u5931": {
+ "account_number": "1229"
+ }
+ },
+ "\u61c9\u6536\u5e33\u6b3e": {
+ "account_number": "114",
+ "account_type": "Receivable",
+ "\u5099\u62b5\u5446\u5e33 \uff0d\u61c9\u6536\u5e33\u6b3e ": {
+ "account_number": "1149",
+ "account_type": "Receivable"
+ },
+ "\u61c9\u6536\u5206\u671f\u5e33\u6b3e ": {
+ "account_number": "1142",
+ "account_type": "Receivable"
+ },
+ "\u61c9\u6536\u5e33\u6b3e ": {
+ "account_number": "1141",
+ "account_type": "Receivable"
+ }
+ },
+ "\u61c9\u6536\u7968\u64da": {
+ "account_number": "113",
+ "account_type": "Receivable",
+ "\u5099\u62b5\u5446\u5e33 \uff0d\u61c9\u6536\u7968\u64da ": {
+ "account_number": "1139",
+ "account_type": "Receivable"
+ },
+ "\u5176\u4ed6\u61c9\u6536\u7968\u64da ": {
+ "account_number": "1138",
+ "account_type": "Receivable"
+ },
+ "\u61c9\u6536\u7968\u64da": {
+ "account_number": "1131",
+ "account_type": "Receivable"
+ },
+ "\u61c9\u6536\u7968\u64da\u8cbc\u73fe ": {
+ "account_number": "1132",
+ "account_type": "Receivable"
+ }
+ },
+ "\u73fe\u91d1\u53ca\u7d04\u7576\u73fe\u91d1": {
+ "account_number": "111",
+ "account_type": "Cash",
+ "\u5176\u4ed6\u73fe\u91d1\u53ca\u7d04\u7576\u73fe\u91d1": {
+ "account_number": "1118",
+ "account_type": "Cash"
+ },
+ "\u5728\u9014\u73fe\u91d1": {
+ "account_number": "1116",
+ "account_type": "Cash"
+ },
+ "\u5eab\u5b58\u73fe\u91d1": {
+ "account_number": "1111",
+ "account_type": "Cash"
+ },
+ "\u7d04\u7576\u73fe\u91d1": {
+ "account_number": "1117",
+ "account_type": "Cash"
+ },
+ "\u9280\u884c\u5b58\u6b3e": {
+ "account_number": "1113",
+ "account_type": "Bank",
+ "\u4e2d\u570b\u4fe1\u8a17": {
+ "account_type": "Bank"
+ },
+ "\u53f0\u5317\u5bcc\u90a6": {
+ "account_type": "Bank"
+ }
+ },
+ "\u96f6\u7528\u91d1/\u9031\u8f49\u91d1": {
+ "account_number": "1112",
+ "account_type": "Cash"
+ }
+ },
+ "\u77ed\u671f\u6295\u8cc7": {
+ "account_number": "112",
+ "\u77ed\u671f\u6295\u8cc7 \u2014\u80a1\u7968": {
+ "account_number": "1121"
+ }
+ },
+ "\u9810\u4ed8\u6b3e\u9805": {
+ "account_number": "126",
+ "\u5176\u4ed6\u9810\u4ed8\u6b3e\u9805": {
+ "account_number": "1268"
+ },
+ "\u9810\u4ed8\u8ca8\u6b3e": {
+ "account_number": "1261"
+ }
+ },
+ "\u9810\u4ed8\u8cbb\u7528": {
+ "account_number": "125",
+ "\u5176\u4ed6\u9810\u4ed8\u8cbb\u7528": {
+ "account_number": "1258"
+ },
+ "\u7528\u54c1\u76e4\u5b58": {
+ "account_number": "1254"
+ },
+ "\u9810\u4ed8\u4fdd\u96aa\u8cbb": {
+ "account_number": "1253"
+ },
+ "\u9810\u4ed8\u6240\u5f97\u7a05": {
+ "account_number": "1255"
+ },
+ "\u9810\u4ed8\u79df\u91d1": {
+ "account_number": "1252"
+ },
+ "\u9810\u4ed8\u85aa\u8cc7": {
+ "account_number": "1251"
+ }
}
- },
- "32-\u8cc7\u672c\u516c\u7a4d": {
- "321-\u80a1\u7968\u6ea2\u50f9": {
- "3211-\u666e\u901a\u80a1\u80a1\u7968\u6ea2\u50f9": {},
- "3212-\u7279\u5225\u80a1\u80a1\u7968\u6ea2\u50f9": {}
- },
- "323-\u8cc7\u7522\u91cd\u4f30\u589e\u503c\u6e96\u5099": {
- "3231-\u8cc7\u7522\u91cd\u4f30\u589e\u503c\u6e96\u5099": {}
- },
- "324-\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u516c\u7a4d": {
- "3241-\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u516c\u7a4d": {}
- },
- "325-\u5408\u4f75\u516c\u7a4d": {
- "3251-\u5408\u4f75\u516c\u7a4d": {}
- },
- "326-\u53d7\u8d08\u516c\u7a4d": {
- "3261-\u53d7\u8d08\u516c\u7a4d": {}
- },
- "328-\u5176\u4ed6\u8cc7\u672c\u516c\u7a4d": {
- "3281-\u6b0a\u76ca\u6cd5\u9577\u671f\u80a1\u6b0a\u6295\u8cc7\u8cc7\u672c\u516c\u7a4d": {},
- "3282-\u8cc7\u672c\u516c\u7a4d\u2014 \u5eab\u85cf\u80a1\u7968\u4ea4\u6613": {}
+ },
+ "\u7121\u5f62\u8cc7\u7522": {
+ "account_number": "17",
+ "\u5176\u4ed6\u7121\u5f62\u8cc7\u7522": {
+ "account_number": "178",
+ "\u905e\u5ef6\u9000\u4f11\u91d1\u6210\u672c": {
+ "account_number": "1781"
+ }
+ },
+ "\u5546\u6a19\u6b0a": {
+ "account_number": "171",
+ "\u5546\u6a19\u6b0a": {
+ "account_number": "1711"
+ }
+ },
+ "\u5546\u8b7d": {
+ "account_number": "176",
+ "\u5546\u8b7d": {
+ "account_number": "1761"
+ }
+ },
+ "\u5c08\u5229\u6b0a": {
+ "account_number": "172",
+ "\u5c08\u5229\u6b0a": {
+ "account_number": "1721"
+ }
+ },
+ "\u958b\u8fa6\u8cbb": {
+ "account_number": "177",
+ "\u958b\u8fa6\u8cbb": {
+ "account_number": "1771"
+ }
}
- },
- "33-\u4fdd\u7559\u76c8\u9918(\u7d2f\u7a4d\u8667\u640d)": {
- "331-\u6cd5\u5b9a\u76c8\u9918\u516c\u7a4d": {
- "3311-\u6cd5\u5b9a\u76c8\u9918\u516c\u7a4d": {}
- },
- "332-\u7279\u5225\u76c8\u9918\u516c\u7a4d": {
- "3321-\u610f\u5916\u640d\u5931\u6e96\u5099": {},
- "3322-\u6539\u826f\u64f4\u5145\u6e96\u5099": {},
- "3323-\u511f\u50b5\u6e96\u5099": {},
- "3328-\u5176\u4ed6\u7279\u5225\u76c8\u9918\u516c\u7a4d": {}
- },
- "335-\u672a\u5206\u914d\u76c8\u9918(\u7d2f\u7a4d\u8667\u640d) ": {
+ },
+ "\u905e\u8017\u8cc7\u7522": {
+ "account_number": "16",
+ "\u905e\u8017\u8cc7\u7522": {
+ "account_number": "161",
"is_group": 1
}
- },
- "34-\u6b0a\u76ca\u8abf\u6574": {
- "341-\u9577\u671f\u80a1\u6b0a\u6295\u8cc7\u672a\u5be6\u73fe\u8dcc\u50f9\u640d\u5931": {
- "3411-\u9577\u671f\u80a1\u6b0a\u6295\u8cc7\u672a\u5be6\u73fe\u8dcc\u50f9\u640d\u5931": {}
- },
- "342-\u7d2f\u7a4d\u63db\u7b97\u8abf\u6574\u6578": {
- "3421-\u7d2f\u7a4d\u63db\u7b97\u8abf\u6574\u6578": {}
- },
- "343-\u672a\u8a8d\u5217\u70ba\u9000\u4f11\u91d1\u6210\u672c\u4e4b\u6de8\u640d\u5931": {
- "3431-\u672a\u8a8d\u5217\u70ba\u9000\u4f11\u91d1\u6210\u672c\u4e4b\u6de8\u640d\u5931": {}
+ }
+ },
+ "\u975e\u7d93\u5e38\u71df\u696d\u640d\u76ca": {
+ "account_number": "9",
+ "root_type": "Expense",
+ "\u505c\u696d\u90e8\u9580\u640d\u76ca": {
+ "account_number": "91",
+ "\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u505c\u696d\u524d\u71df\u696d\u640d\u76ca": {
+ "account_number": "911",
+ "\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u505c\u696d\u524d\u71df\u696d\u640d\u76ca": {
+ "account_number": "9111"
+ }
+ },
+ "\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u8655\u5206\u640d\u76ca": {
+ "account_number": "912",
+ "\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u8655\u5206\u640d\u76ca": {
+ "account_number": "9121"
+ }
}
- },
- "35-\u5eab\u85cf\u80a1": {
- "351-\u5eab\u85cf\u80a1": {
- "3511-\u5eab\u85cf\u80a1": {}
+ },
+ "\u5c11\u6578\u80a1\u6b0a\u6de8\u5229": {
+ "account_number": "94",
+ "\u5c11\u6578\u80a1\u6b0a\u6de8\u5229": {
+ "account_number": "941",
+ "\u5c11\u6578\u80a1\u6b0a\u6de8\u5229": {
+ "account_number": "9411"
+ }
}
- },
- "36-\u5c11\u6578\u80a1\u6b0a": {
- "361-\u5c11\u6578\u80a1\u6b0a": {
- "3611-\u5c11\u6578\u80a1\u6b0a": {}
+ },
+ "\u6703\u8a08\u539f\u5247\u8b8a\u52d5\u7d2f\u7a4d\u5f71\u97ff\u6578": {
+ "account_number": "93",
+ "\u6703\u8a08\u539f\u5247\u8b8a\u52d5\u7d2f\u7a4d\u5f71\u97ff\u6578": {
+ "account_number": "931",
+ "\u6703\u8a08\u539f\u5247\u8b8a\u52d5\u7d2f\u7a4d\u5f71\u97ff\u6578": {
+ "account_number": "9311"
+ }
}
- },
- "root_type": "Equity"
- },
- "4-\u71df\u696d\u6536\u5165": {
- "41-\u92b7\u8ca8\u6536\u5165": {
- "411-\u92b7\u8ca8\u6536\u5165": {
- "4111-\u92b7\u8ca8\u6536\u5165": {},
- "4112-\u5206\u671f\u4ed8\u6b3e\u92b7\u8ca8\u6536\u5165": {}
- },
- "417-\u92b7\u8ca8\u9000\u56de": {
- "4171-\u92b7\u8ca8\u9000\u56de": {}
- },
- "419-\u92b7\u8ca8\u6298\u8b93": {
- "4191-\u92b7\u8ca8\u6298\u8b93": {}
+ },
+ "\u975e\u5e38\u640d\u76ca": {
+ "account_number": "92",
+ "\u975e\u5e38\u640d\u76ca": {
+ "account_number": "921",
+ "\u975e\u5e38\u640d\u76ca": {
+ "account_number": "9211"
+ }
}
- },
- "46-\u52de\u52d9\u6536\u5165": {
- "461-\u52de\u52d9\u6536\u5165": {
- "4611-\u52de\u52d9\u6536\u5165": {}
- }
- },
- "47-\u696d\u52d9\u6536\u5165": {
- "471-\u696d\u52d9\u6536\u5165": {
- "4711-\u696d\u52d9\u6536\u5165": {}
- }
- },
- "48-\u5176\u4ed6\u71df\u696d\u6536\u5165": {
- "488-\u5176\u4ed6\u71df\u696d\u6536\u5165\u2014\u5176\u4ed6": {
- "4888-\u5176\u4ed6\u71df\u696d\u6536\u5165\u2014\u5176\u4ed6": {}
- }
- },
- "root_type": "Income"
- },
- "5-\u71df\u696d\u6210\u672c": {
- "51-\u92b7\u8ca8\u6210\u672c": {
- "511-\u92b7\u8ca8\u6210\u672c": {
- "5111-\u92b7\u8ca8\u6210\u672c": {
- "account_type": "Cost of Goods Sold"
- },
- "5112-\u5206\u671f\u4ed8\u6b3e\u92b7\u8ca8\u6210\u672c": {
- "account_type": "Cost of Goods Sold"
- },
- "account_type": "Cost of Goods Sold"
- },
- "512-\u9032\u8ca8": {
- "5121-\u9032\u8ca8": {},
- "5122-\u9032\u8ca8\u8cbb\u7528": {},
- "5123-\u9032\u8ca8\u9000\u51fa": {},
- "5124-\u9032\u8ca8\u6298\u8b93": {}
- },
- "513-\u9032\u6599": {
- "5131-\u9032\u6599": {},
- "5132-\u9032\u6599\u8cbb\u7528": {},
- "5133-\u9032\u6599\u9000\u51fa": {},
- "5134-\u9032\u6599\u6298\u8b93": {}
- },
- "514-\u76f4\u63a5\u4eba\u5de5": {
- "5141-\u76f4\u63a5\u4eba\u5de5": {}
- },
- "515~518-\u88fd\u9020\u8cbb\u7528": {
- "5151-\u9593\u63a5\u4eba\u5de5": {},
- "5152-\u79df\u91d1\u652f\u51fa": {},
- "5153-\u6587\u5177\u7528\u54c1": {},
- "5154-\u65c5\u8cbb": {},
- "5155-\u904b\u8cbb": {},
- "5156-\u90f5\u96fb\u8cbb": {},
- "5157-\u4fee\u7e55\u8cbb": {},
- "5158-\u5305\u88dd\u8cbb": {},
- "5161-\u6c34\u96fb\u74e6\u65af\u8cbb": {},
- "5162-\u4fdd\u96aa\u8cbb": {},
- "5163-\u52a0\u5de5\u8cbb": {},
- "5166-\u7a05\u6350": {
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "5168-\u6298\u820a ": {
- "account_type": "Depreciation"
- },
- "5169-\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {},
- "5172-\u4f19\u98df\u8cbb": {},
- "5173-\u8077\u5de5\u798f\u5229": {},
- "5176-\u8a13\u7df4\u8cbb": {},
- "5177-\u9593\u63a5\u6750\u6599": {},
- "5188-\u5176\u4ed6\u88fd\u9020\u8cbb\u7528": {}
- },
- "Expenses Included In Valuation": {
- "account_type": "Expenses Included In Valuation"
- },
- "account_type": "Cost of Goods Sold"
- },
- "56-\u52de\u52d9\u6210\u672c\u88fd": {
- "561-\u52de\u52d9\u6210\u672c": {
- "5611-\u52de\u52d9\u6210\u672c": {}
- }
- },
- "57-\u696d\u52d9\u6210\u672c": {
- "571-\u696d\u52d9\u6210\u672c": {
- "5711-\u696d\u52d9\u6210\u672c": {}
- }
- },
- "58-\u5176\u4ed6\u71df\u696d\u6210\u672c": {
- "588-\u5176\u4ed6\u71df\u696d\u6210\u672c\u2014\u5176\u4ed6 ": {
- "5888-\u5176\u4ed6\u71df\u696d\u6210\u672c\u2014\u5176\u4ed6": {}
- }
- },
- "Stock Adjustment": {
- "account_type": "Stock Adjustment"
- },
- "root_type": "Expense"
- },
- "6-\u71df\u696d\u8cbb\u7528": {
- "61-\u63a8\u92b7\u8cbb\u7528": {
- "615~618-\u63a8\u92b7\u8cbb\u7528": {
- "6151-\u85aa\u8cc7\u652f\u51fa": {},
- "6152-\u79df\u91d1\u652f\u51fa": {},
- "6153-\u6587\u5177\u7528\u54c1": {},
- "6154-\u65c5\u8cbb": {},
- "6155-\u904b\u8cbb": {},
- "6156-\u90f5\u96fb\u8cbb": {},
- "6157-\u4fee\u7e55\u8cbb": {},
- "6159-\u5ee3\u544a\u8cbb": {},
- "6161-\u6c34\u96fb\u74e6\u65af\u8cbb": {},
- "6162-\u4fdd\u96aa\u8cbb": {},
- "6164-\u4ea4\u969b\u8cbb": {},
- "6165-\u6350\u8d08": {},
- "6166-\u7a05\u6350": {
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "6167-\u5446\u5e33\u640d\u5931": {},
- "6168-\u6298\u820a ": {
- "account_type": "Depreciation"
- },
- "6169-\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {},
- "6172-\u4f19\u98df\u8cbb": {},
- "6173-\u8077\u5de5\u798f\u5229": {},
- "6175-\u4f63\u91d1\u652f\u51fa": {},
- "6176-\u8a13\u7df4\u8cbb": {},
- "6188-\u5176\u4ed6\u63a8\u92b7\u8cbb\u7528": {}
- }
- },
- "62-\u7ba1\u7406\u53ca\u7e3d\u52d9\u8cbb\u7528": {
- "625~628-\u7ba1\u7406\u53ca\u7e3d\u52d9\u8cbb\u7528": {
- "6251-\u85aa\u8cc7\u652f\u51fa": {},
- "6252-\u79df\u91d1\u652f\u51fa": {},
- "6253-\u6587\u5177\u7528\u54c1": {},
- "6254-\u65c5\u8cbb": {},
- "6255-\u904b\u8cbb": {},
- "6256-\u90f5\u96fb\u8cbb": {},
- "6257-\u4fee\u7e55\u8cbb": {},
- "6259-\u5ee3\u544a\u8cbb": {},
- "6261-\u6c34\u96fb\u74e6\u65af\u8cbb": {},
- "6262-\u4fdd\u96aa\u8cbb": {},
- "6264-\u4ea4\u969b\u8cbb": {},
- "6265-\u6350\u8d08": {},
- "6266-\u7a05\u6350": {
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "6267-\u5446\u5e33\u640d\u5931": {},
- "6268-\u6298\u820a": {
- "account_type": "Depreciation"
- },
- "6269-\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {},
- "6271-\u5916\u92b7\u640d\u5931": {},
- "6272-\u4f19\u98df\u8cbb": {},
- "6273-\u8077\u5de5\u798f\u5229": {},
- "6274-\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {},
- "6275-\u4f63\u91d1\u652f\u51fa": {},
- "6276-\u8a13\u7df4\u8cbb": {},
- "6278-\u52de\u52d9\u8cbb": {},
- "6288-\u5176\u4ed6\u7ba1\u7406\u53ca\u7e3d\u52d9\u8cbb\u7528": {}
- }
- },
- "63-\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {
- "635~638-\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {
- "6351-\u85aa\u8cc7\u652f\u51fa": {},
- "6352-\u79df\u91d1\u652f\u51fa": {},
- "6353-\u6587\u5177\u7528\u54c1": {},
- "6354-\u65c5\u8cbb": {},
- "6355-\u904b\u8cbb": {},
- "6356-\u90f5\u96fb\u8cbb": {},
- "6357-\u4fee\u7e55\u8cbb": {},
- "6361-\u6c34\u96fb\u74e6\u65af\u8cbb": {},
- "6362-\u4fdd\u96aa\u8cbb": {},
- "6364-\u4ea4\u969b\u8cbb": {},
- "6366-\u7a05\u6350": {
- "account_type": "Tax",
- "tax_rate": 5.0
- },
- "6368-\u6298\u820a": {
- "account_type": "Depreciation"
- },
- "6369-\u5404\u9805\u8017\u7aed\u53ca\u6524\u63d0": {},
- "6372-\u4f19\u98df\u8cbb": {},
- "6373-\u8077\u5de5\u798f\u5229": {},
- "6376-\u8a13\u7df4\u8cbb": {},
- "6378-\u5176\u4ed6\u7814\u7a76\u767c\u5c55\u8cbb\u7528": {}
- }
- },
- "root_type": "Expense"
- },
- "7-\u71df\u696d\u5916\u6536\u5165\u53ca\u8cbb\u7528": {
- "71~74-\u71df\u696d\u5916\u6536\u5165": {
- "711-\u5229\u606f\u6536\u5165": {
- "7111-\u5229\u606f\u6536\u5165": {}
- },
- "712-\u6295\u8cc7\u6536\u76ca": {
- "7121-\u6b0a\u76ca\u6cd5\u8a8d\u5217\u4e4b\u6295\u8cc7\u6536\u76ca": {},
- "7122-\u80a1\u5229\u6536\u5165": {},
- "7123-\u77ed\u671f\u6295\u8cc7\u5e02\u50f9\u56de\u5347\u5229\u76ca": {}
- },
- "713-\u514c\u63db\u5229\u76ca": {
- "7131-\u514c\u63db\u5229\u76ca": {}
- },
- "714-\u8655\u5206\u6295\u8cc7\u6536\u76ca": {
- "7141-\u8655\u5206\u6295\u8cc7\u6536\u76ca": {}
- },
- "715-\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u6536\u5165": {
- "7151-\u8655\u5206\u8cc7\u7522\u6ea2\u50f9\u6536\u5165": {}
- },
- "748-\u5176\u4ed6\u71df\u696d\u5916\u6536\u5165": {
- "7481-\u6350\u8d08\u6536\u5165": {},
- "7482-\u79df\u91d1\u6536\u5165": {},
- "7483-\u4f63\u91d1\u6536\u5165": {},
- "7484-\u51fa\u552e\u4e0b\u8173\u53ca\u5ee2\u6599\u6536\u5165": {},
- "7485-\u5b58\u8ca8\u76e4\u76c8": {},
- "7486-\u5b58\u8ca8\u8dcc\u50f9\u56de\u5347\u5229\u76ca": {},
- "7487-\u58de\u5e33\u8f49\u56de\u5229\u76ca": {},
- "7488-\u5176\u4ed6\u71df\u696d\u5916\u6536\u5165\u2014\u5176\u4ed6": {}
- }
- },
- "75~78-\u71df\u696d\u5916\u8cbb\u7528": {
- "751-\u5229\u606f\u8cbb\u7528": {
- "7511-\u5229\u606f\u8cbb\u7528": {}
- },
- "752-\u6295\u8cc7\u640d\u5931": {
- "7521-\u6b0a\u76ca\u6cd5\u8a8d\u5217\u4e4b\u6295\u8cc7\u640d\u5931": {},
- "7523-\u77ed\u671f\u6295\u8cc7\u672a\u5be6\u73fe\u8dcc\u50f9\u640d\u5931": {}
- },
- "753-\u514c\u63db\u640d\u5931": {
- "7531-\u514c\u63db\u640d\u5931": {}
- },
- "754-\u8655\u5206\u6295\u8cc7\u640d\u5931": {
- "7541-\u8655\u5206\u6295\u8cc7\u640d\u5931": {}
- },
- "755-\u8655\u5206\u8cc7\u7522\u640d\u5931": {
- "7551-\u8655\u5206\u8cc7\u7522\u640d\u5931 ": {}
- },
- "788-\u5176\u4ed6\u71df\u696d\u5916\u8cbb\u7528": {
- "7881-\u505c\u5de5\u640d\u5931": {},
- "7882-\u707d\u5bb3\u640d\u5931": {},
- "7885-\u5b58\u8ca8\u76e4\u640d": {},
- "7886-\u5b58\u8ca8\u8dcc\u50f9\u53ca\u5446\u6eef\u640d\u5931": {},
- "7888-\u5176\u4ed6\u71df\u696d\u5916\u8cbb\u7528\u2014\u5176\u4ed6": {}
- }
- },
- "root_type": "Income"
- },
- "8-\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca)": {
- "81-\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca)": {
- "811-\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca) ": {
- "8111-\u6240\u5f97\u7a05\u8cbb\u7528(\u5229\u76ca) ": {}
- }
- },
- "root_type": "Expense"
- },
- "9-\u975e\u7d93\u5e38\u71df\u696d\u640d\u76ca": {
- "91-\u505c\u696d\u90e8\u9580\u640d\u76ca": {
- "911-\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u505c\u696d\u524d\u71df\u696d\u640d\u76ca": {
- "9111-\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u505c\u696d\u524d\u71df\u696d\u640d\u76ca": {}
- },
- "912-\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u8655\u5206\u640d\u76ca": {
- "9121-\u505c\u696d\u90e8\u9580\u640d\u76ca\u2014\u8655\u5206\u640d\u76ca": {}
- }
- },
- "92-\u975e\u5e38\u640d\u76ca": {
- "921-\u975e\u5e38\u640d\u76ca": {
- "9211-\u975e\u5e38\u640d\u76ca": {}
- }
- },
- "93-\u6703\u8a08\u539f\u5247\u8b8a\u52d5\u7d2f\u7a4d\u5f71\u97ff\u6578": {
- "931-\u6703\u8a08\u539f\u5247\u8b8a\u52d5\u7d2f\u7a4d\u5f71\u97ff\u6578": {
- "9311-\u6703\u8a08\u539f\u5247\u8b8a\u52d5\u7d2f\u7a4d\u5f71\u97ff\u6578": {}
- }
- },
- "94-\u5c11\u6578\u80a1\u6b0a\u6de8\u5229": {
- "941-\u5c11\u6578\u80a1\u6b0a\u6de8\u5229": {
- "9411-\u5c11\u6578\u80a1\u6b0a\u6de8\u5229": {}
- }
- },
- "root_type": "Expense"
+ }
}
}
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/account/test_account.py b/erpnext/accounts/doctype/account/test_account.py
index c609443..680f6e3 100644
--- a/erpnext/accounts/doctype/account/test_account.py
+++ b/erpnext/accounts/doctype/account/test_account.py
@@ -2,9 +2,40 @@
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
+import unittest
import frappe
from erpnext.stock import get_warehouse_account, get_company_default_inventory_account
+class TestAccount(unittest.TestCase):
+ def test_rename_account(self):
+ if not frappe.db.exists("Account", "1210 - Debtors - _TC"):
+ acc = frappe.new_doc("Account")
+ acc.account_name = "Debtors"
+ acc.parent_account = "Accounts Receivable - _TC"
+ acc.account_number = "1210"
+ acc.company = "_Test Company"
+ acc.insert()
+
+ account_number, account_name = frappe.db.get_value("Account", "1210 - Debtors - _TC",
+ ["account_number", "account_name"])
+ self.assertEqual(account_number, "1210")
+ self.assertEqual(account_name, "Debtors")
+
+ frappe.rename_doc("Account", "1210 - Debtors - _TC", "1211 - Debtors 1 - _TC")
+
+ new_acc = frappe.db.get_value("Account", "1211 - Debtors 1 - _TC",
+ ["account_name", "account_number"], as_dict=1)
+ self.assertEqual(new_acc.account_name, "Debtors 1")
+ self.assertEqual(new_acc.account_number, "1211")
+
+ frappe.rename_doc("Account", "1211 - Debtors 1 - _TC", "Debtors 2")
+
+ new_acc = frappe.db.get_value("Account", "1211 - Debtors 2 - _TC",
+ ["account_name", "account_number"], as_dict=1)
+ self.assertEqual(new_acc.account_name, "Debtors 2")
+ self.assertEqual(new_acc.account_number, "1211")
+
+ frappe.delete_doc("Account", "1211 - Debtors 2 - _TC")
def _make_test_records(verbose):
from frappe.test_runner import make_test_objects
diff --git a/erpnext/accounts/doctype/account/test_account.js b/erpnext/accounts/doctype/account/tests/test_account.js
similarity index 100%
rename from erpnext/accounts/doctype/account/test_account.js
rename to erpnext/accounts/doctype/account/tests/test_account.js
diff --git a/erpnext/accounts/doctype/account/tests/test_account_with_number.js b/erpnext/accounts/doctype/account/tests/test_account_with_number.js
new file mode 100644
index 0000000..dd30eb7
--- /dev/null
+++ b/erpnext/accounts/doctype/account/tests/test_account_with_number.js
@@ -0,0 +1,69 @@
+QUnit.module('accounts');
+
+QUnit.test("test account with number", function(assert) {
+ assert.expect(7);
+ let done = assert.async();
+ frappe.run_serially([
+ () => frappe.set_route('Tree', 'Account'),
+ () => frappe.click_link('Income'),
+ () => frappe.click_button('Add Child'),
+ () => frappe.timeout(.5),
+ () => {
+ cur_dialog.fields_dict.account_name.$input.val("Test Income");
+ cur_dialog.fields_dict.account_number.$input.val("4010");
+ },
+ () => frappe.click_button('Create New'),
+ () => frappe.timeout(1),
+ () => {
+ assert.ok($('a:contains("4010 - Test Income"):visible').length!=0, "Account created with number");
+ },
+ () => frappe.click_link('4010 - Test Income'),
+ () => frappe.click_button('Edit'),
+ () => frappe.timeout(.5),
+ () => frappe.click_button('Update Account Number'),
+ () => frappe.timeout(.5),
+ () => {
+ cur_dialog.fields_dict.account_number.$input.val("4020");
+ },
+ () => frappe.timeout(1),
+ () => cur_dialog.primary_action(),
+ () => frappe.timeout(1),
+ () => cur_frm.refresh_fields(),
+ () => frappe.timeout(.5),
+ () => {
+ var abbr = frappe.get_abbr(frappe.defaults.get_default("Company"));
+ var new_account = "4020 - Test Income - " + abbr;
+ assert.ok(cur_frm.doc.name==new_account, "Account renamed");
+ assert.ok(cur_frm.doc.account_name=="Test Income", "account name remained same");
+ assert.ok(cur_frm.doc.account_number=="4020", "Account number updated to 4020");
+ },
+ () => frappe.timeout(1),
+ () => frappe.click_button('Menu'),
+ () => frappe.click_link('Rename'),
+ () => frappe.timeout(.5),
+ () => {
+ cur_dialog.fields_dict.new_name.$input.val("4030 - Test Income");
+ },
+ () => frappe.timeout(.5),
+ () => frappe.click_button("Rename"),
+ () => frappe.timeout(1),
+ () => {
+ assert.ok(cur_frm.doc.account_name=="Test Income", "account name remained same");
+ assert.ok(cur_frm.doc.account_number=="4030", "Account number updated to 4030");
+ },
+ () => frappe.timeout(.5),
+ () => frappe.click_button('Chart of Accounts'),
+ () => frappe.timeout(.5),
+ () => frappe.click_button('Menu'),
+ () => frappe.click_link('Refresh'),
+ () => frappe.click_button('Expand All'),
+ () => frappe.click_link('4030 - Test Income'),
+ () => frappe.click_button('Delete'),
+ () => frappe.click_button('Yes'),
+ () => frappe.timeout(.5),
+ () => {
+ assert.ok($('a:contains("4030 - Test Account"):visible').length==0, "Account deleted");
+ },
+ () => done()
+ ]);
+});
diff --git a/erpnext/accounts/doctype/account/test_make_tax_account.js b/erpnext/accounts/doctype/account/tests/test_make_tax_account.js
similarity index 100%
rename from erpnext/accounts/doctype/account/test_make_tax_account.js
rename to erpnext/accounts/doctype/account/tests/test_make_tax_account.js
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.json b/erpnext/accounts/doctype/gl_entry/gl_entry.json
index 76e66d0..e27eaab 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.json
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.json
@@ -80,6 +80,36 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fieldname": "due_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Due Date",
+ "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": "account",
"fieldtype": "Link",
"hidden": 0,
@@ -718,7 +748,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-03 12:40:09.611951",
+ "modified": "2017-08-10 18:06:44.904081",
"modified_by": "Administrator",
"module": "Accounts",
"name": "GL Entry",
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js
index 9047a4e..4ce6886 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.js
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js
@@ -185,8 +185,39 @@
})
},
+ due_date_options_cache: {},
+
reference_name: function(doc, cdt, cdn) {
var d = frappe.get_doc(cdt, cdn);
+ var me = this;
+
+ const get_invoice_due_dates = invoice_name => {
+ const options = this.due_date_options_cache[invoice_name];
+ const input = $(cur_frm.fields_dict["accounts"].wrapper).find("select[data-fieldname=reference_due_date]");
+
+ if (options) {
+ input.empty();
+ input.add_options(options);
+ frappe.model.set_value(cdt, cdn, "reference_due_date", options[0]);
+ }
+ else {
+ frappe.call({
+ method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_invoice_due_dates",
+ args: {name: invoice_name},
+ callback: function(r) {
+ const options = [];
+ $.each(r.message, function(key, value) {
+ options.push(value.due_date);
+ });
+ input.empty();
+ input.add_options(options);
+ frappe.model.set_value(cdt, cdn, "reference_due_date", options[0]);
+ me.due_date_options_cache[d.reference_name] = options;
+ }
+ });
+ }
+ }
+
if(d.reference_name) {
if (d.reference_type==="Purchase Invoice" && !flt(d.debit)) {
this.get_outstanding('Purchase Invoice', d.reference_name, doc.company, d);
@@ -197,6 +228,9 @@
if (d.reference_type==="Journal Entry" && !flt(d.credit) && !flt(d.debit)) {
this.get_outstanding('Journal Entry', d.reference_name, doc.company, d);
}
+ if( in_list(["Sales Invoice", "Purchase Invoice"]), d.reference_type) {
+ get_invoice_due_dates(d.reference_name);
+ }
}
},
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index cc35652..f010e67 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -436,7 +436,8 @@
"against_voucher": d.reference_name,
"remarks": self.remark,
"cost_center": d.cost_center,
- "project": d.project
+ "project": d.project,
+ "due_date": d.reference_due_date
})
)
@@ -898,3 +899,14 @@
exchange_rate = bank_balance_in_company_currency / bank_balance_in_account_currency
return exchange_rate
+
+
+@frappe.whitelist()
+def get_invoice_due_dates(name):
+ result = frappe.get_list(
+ doctype='GL Entry', group_by='name, due_date',
+ filters={'voucher_no': name, "ifnull(due_date, '')": ('!=', '')},
+ fields=['due_date'], distinct=True
+ )
+
+ return result
diff --git a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
index 54af579..48d5ed2 100644
--- a/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
+++ b/erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "hash",
@@ -13,6 +14,7 @@
"engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -46,6 +48,7 @@
"width": "250px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -75,6 +78,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -106,6 +110,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -141,6 +146,7 @@
"width": "180px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -168,6 +174,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -197,6 +204,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -226,6 +234,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -256,6 +265,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -287,6 +297,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -317,6 +328,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -345,6 +357,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -374,6 +387,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -402,6 +416,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -432,6 +447,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -464,6 +480,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -491,6 +508,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -521,6 +539,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -553,6 +572,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -581,6 +601,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -611,6 +632,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -641,6 +663,39 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.reference_type&&!in_list(doc.reference_type, ['Expense Claim', 'Asset', 'Employee Loan'])",
+ "fieldname": "reference_due_date",
+ "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": "Reference Due Date",
+ "length": 0,
+ "no_copy": 0,
+ "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,
@@ -671,6 +726,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -698,6 +754,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -729,6 +786,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -759,17 +817,17 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-03-02 05:02:10.102039",
+ "modified": "2017-08-30 08:44:54.295493",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Journal Entry Account",
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js
index c5e0306..d8995a9 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.js
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js
@@ -253,20 +253,24 @@
},
callback: function(r, rt) {
if(r.message) {
- if(frm.doc.payment_type == "Receive") {
- frm.set_value("paid_from", r.message.party_account);
- frm.set_value("paid_from_account_currency", r.message.party_account_currency);
- frm.set_value("paid_from_account_balance", r.message.account_balance);
- } else if (frm.doc.payment_type == "Pay"){
- frm.set_value("paid_to", r.message.party_account);
- frm.set_value("paid_to_account_currency", r.message.party_account_currency);
- frm.set_value("paid_to_account_balance", r.message.account_balance);
- }
- frm.set_value("party_balance", r.message.party_balance);
- frm.events.get_outstanding_documents(frm);
- frm.events.hide_unhide_fields(frm);
- frm.events.set_dynamic_labels(frm);
- frm.set_party_account_based_on_party = false;
+ frappe.run_serially([
+ () => {
+ if(frm.doc.payment_type == "Receive") {
+ frm.set_value("paid_from", r.message.party_account);
+ frm.set_value("paid_from_account_currency", r.message.party_account_currency);
+ frm.set_value("paid_from_account_balance", r.message.account_balance);
+ } else if (frm.doc.payment_type == "Pay"){
+ frm.set_value("paid_to", r.message.party_account);
+ frm.set_value("paid_to_account_currency", r.message.party_account_currency);
+ frm.set_value("paid_to_account_balance", r.message.account_balance);
+ }
+ },
+ () => frm.set_value("party_balance", r.message.party_balance),
+ () => frm.events.get_outstanding_documents(frm),
+ () => frm.events.hide_unhide_fields(frm),
+ () => frm.events.set_dynamic_labels(frm),
+ () => { frm.set_party_account_based_on_party = false; }
+ ]);
}
}
});
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 56bdfba..36ff0ac 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -8,14 +8,16 @@
from frappe.utils import flt, comma_or, nowdate
from erpnext.accounts.utils import get_outstanding_invoices, get_account_currency, get_balance_on
from erpnext.accounts.party import get_party_account
-from erpnext.accounts.doctype.journal_entry.journal_entry \
- import get_average_exchange_rate, get_default_bank_cash_account
+from erpnext.accounts.doctype.journal_entry.journal_entry import get_default_bank_cash_account
from erpnext.setup.utils import get_exchange_rate
from erpnext.accounts.general_ledger import make_gl_entries
from erpnext.hr.doctype.expense_claim.expense_claim import update_reimbursed_amount
from erpnext.controllers.accounts_controller import AccountsController
-class InvalidPaymentEntry(ValidationError): pass
+
+class InvalidPaymentEntry(ValidationError):
+ pass
+
class PaymentEntry(AccountsController):
def setup_party_account_field(self):
@@ -69,10 +71,9 @@
def validate_duplicate_entry(self):
reference_names = []
for d in self.get("references"):
- if (d.reference_doctype, d.reference_name) in reference_names:
+ if (d.reference_doctype, d.reference_name, d.due_date) in reference_names:
frappe.throw(_("Row #{0}: Duplicate entry in References {1} {2}").format(d.idx, d.reference_doctype, d.reference_name))
- reference_names.append((d.reference_doctype, d.reference_name))
-
+ reference_names.append((d.reference_doctype, d.reference_name, d.due_date))
def validate_allocated_amount(self):
for d in self.get("references"):
@@ -80,7 +81,6 @@
if flt(d.allocated_amount) > flt(d.outstanding_amount):
frappe.throw(_("Row #{0}: Allocated Amount cannot be greater than outstanding amount.").format(d.idx))
-
def delink_advance_entry_references(self):
for reference in self.references:
if reference.reference_doctype in ("Sales Invoice", "Purchase Invoice"):
@@ -128,7 +128,6 @@
self.set_missing_ref_details()
-
def set_missing_ref_details(self):
for d in self.get("references"):
if d.allocated_amount:
@@ -295,7 +294,7 @@
def set_difference_amount(self):
base_unallocated_amount = flt(self.unallocated_amount) * (flt(self.source_exchange_rate)
- if self.payment_type=="Receive" else flt(self.target_exchange_rate))
+ if self.payment_type == "Receive" else flt(self.target_exchange_rate))
base_party_amount = flt(self.base_total_allocated_amount) + flt(base_unallocated_amount)
@@ -413,7 +412,8 @@
gle = party_gl_dict.copy()
gle.update({
"against_voucher_type": d.reference_doctype,
- "against_voucher": d.reference_name
+ "against_voucher": d.reference_name,
+ "due_date": d.due_date
})
allocated_amount_in_company_currency = flt(flt(d.allocated_amount) * flt(d.exchange_rate),
@@ -505,12 +505,10 @@
company_currency = frappe.db.get_value("Company", args.get("company"), "default_currency")
# Get negative outstanding sales /purchase invoices
- total_field = "base_grand_total" if party_account_currency == company_currency else "grand_total"
-
negative_outstanding_invoices = []
- if (args.get("party_type") != "Student"):
+ if args.get("party_type") not in ["Student", "Employee"]:
negative_outstanding_invoices = get_negative_outstanding_invoices(args.get("party_type"),
- args.get("party"), args.get("party_account"), total_field)
+ args.get("party"), args.get("party_account"), party_account_currency, company_currency)
# Get positive outstanding sales /purchase invoices/ Fees
outstanding_invoices = get_outstanding_invoices(args.get("party_type"), args.get("party"),
@@ -580,28 +578,34 @@
return order_list
-def get_negative_outstanding_invoices(party_type, party, party_account, total_field):
- if party_type != "Employee":
- voucher_type = "Sales Invoice" if party_type == "Customer" else "Purchase Invoice"
- return frappe.db.sql("""
- select
- "{voucher_type}" as voucher_type, name as voucher_no,
- {total_field} as invoice_amount, outstanding_amount, posting_date,
- due_date, conversion_rate as exchange_rate
- from
- `tab{voucher_type}`
- where
- {party_type} = %s and {party_account} = %s and docstatus = 1 and outstanding_amount < 0
- order by
- posting_date, name
- """.format(**{
- "total_field": total_field,
- "voucher_type": voucher_type,
- "party_type": scrub(party_type),
- "party_account": "debit_to" if party_type=="Customer" else "credit_to"
- }), (party, party_account), as_dict = True)
+def get_negative_outstanding_invoices(party_type, party, party_account, party_account_currency, company_currency):
+ voucher_type = "Sales Invoice" if party_type == "Customer" else "Purchase Invoice"
+ if party_account_currency == company_currency:
+ grand_total_field = "base_grand_total"
+ rounded_total_field = "base_rounded_total"
else:
- return []
+ grand_total_field = "grand_total"
+ rounded_total_field = "rounded_total"
+
+ return frappe.db.sql("""
+ select
+ "{voucher_type}" as voucher_type, name as voucher_no,
+ if({rounded_total_field}, {rounded_total_field}, {grand_total_field}) as invoice_amount,
+ outstanding_amount, posting_date,
+ due_date, conversion_rate as exchange_rate
+ from
+ `tab{voucher_type}`
+ where
+ {party_type} = %s and {party_account} = %s and docstatus = 1 and outstanding_amount < 0
+ order by
+ posting_date, name
+ """.format(**{
+ "rounded_total_field": rounded_total_field,
+ "grand_total_field": grand_total_field,
+ "voucher_type": voucher_type,
+ "party_type": scrub(party_type),
+ "party_account": "debit_to" if party_type == "Customer" else "credit_to"
+ }), (party, party_account), as_dict=True)
@frappe.whitelist()
def get_party_details(company, party_type, party, date):
@@ -721,7 +725,10 @@
if party_amount:
grand_total = outstanding_amount = party_amount
elif dt in ("Sales Invoice", "Purchase Invoice"):
- grand_total = doc.base_grand_total if party_account_currency == doc.company_currency else doc.grand_total
+ if party_account_currency == doc.company_currency:
+ grand_total = doc.base_rounded_total or doc.base_grand_total
+ else:
+ grand_total = doc.rounded_total or doc.grand_total
outstanding_amount = doc.outstanding_amount
elif dt in ("Expense Claim"):
grand_total = doc.total_sanctioned_amount
@@ -730,8 +737,10 @@
grand_total = doc.grand_total
outstanding_amount = doc.outstanding_amount
else:
- total_field = "base_grand_total" if party_account_currency == doc.company_currency else "grand_total"
- grand_total = flt(doc.get(total_field))
+ if party_account_currency == doc.company_currency:
+ grand_total = flt(doc.get("base_rounded_total") or doc.base_grand_total)
+ else:
+ grand_total = flt(doc.get("rounded_total") or doc.grand_total)
outstanding_amount = grand_total - flt(doc.advance_paid)
# bank or cash
@@ -766,20 +775,51 @@
pe.received_amount = received_amount
pe.allocate_payment_amount = 1
pe.letter_head = doc.get("letter_head")
+ args = {
+ 'party_account': party_account, 'company': pe.company, 'party_type': pe.party_type,
+ 'party': pe.party, 'posting_date': pe.posting_date
+ }
+ references = get_outstanding_reference_documents(args=args)
- pe.append("references", {
- "reference_doctype": dt,
- "reference_name": dn,
- "bill_no": doc.get("bill_no"),
- "due_date": doc.get("due_date"),
- "total_amount": grand_total,
- "outstanding_amount": outstanding_amount,
- "allocated_amount": outstanding_amount
- })
+ for reference in references:
+ if reference.voucher_no == dn:
+ allocated_amount = min(paid_amount, reference.outstanding_amount)
+ pe.append("references", {
+ 'reference_doctype': reference.voucher_type,
+ 'reference_name': reference.voucher_no,
+ 'due_date': reference.due_date,
+ 'total_amount': reference.invoice_amount,
+ 'outstanding_amount': reference.outstanding_amount,
+ 'allocated_amount': allocated_amount,
+ "bill_no": reference.get("bill_no")
+ })
+ if paid_amount:
+ paid_amount -= allocated_amount
pe.setup_party_account_field()
pe.set_missing_values()
if party_account and bank:
pe.set_exchange_rate()
pe.set_amounts()
- return pe
\ No newline at end of file
+ return pe
+
+
+def get_paid_amount(dt, dn, party_type, party, account, due_date):
+ if party_type=="Customer":
+ dr_or_cr = "credit_in_account_currency - debit_in_account_currency"
+ else:
+ dr_or_cr = "debit_in_account_currency - credit_in_account_currency"
+
+ paid_amount = frappe.db.sql("""
+ select ifnull(sum({dr_or_cr}), 0) as paid_amount
+ from `tabGL Entry`
+ where against_voucher_type = %s
+ and against_voucher = %s
+ and party_type = %s
+ and party = %s
+ and account = %s
+ and due_date = %s
+ and {dr_or_cr} > 0
+ """.format(dr_or_cr=dr_or_cr), (dt, dn, party_type, party, account, due_date))
+
+ return paid_amount[0][0] if paid_amount else 0
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
index 60be20d..a3a78a3 100644
--- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py
@@ -14,6 +14,7 @@
test_dependencies = ["Item"]
+
class TestPaymentEntry(unittest.TestCase):
def test_payment_entry_against_order(self):
so = make_sales_order()
@@ -40,7 +41,7 @@
self.assertEqual(so_advance_paid, 0)
def test_payment_entry_against_si_usd_to_usd(self):
- si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
+ si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Sales Invoice", si.name, bank_account="_Test Bank USD - _TC")
pe.reference_no = "1"
@@ -65,8 +66,20 @@
outstanding_amount = flt(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount"))
self.assertEqual(outstanding_amount, 100)
+ def test_payment_entry_against_si_multi_due_dates(self):
+ si = create_sales_invoice(do_not_save=1)
+ si.payment_terms_template = '_Test Payment Term Template'
+ si.insert()
+ si.submit()
+
+ pe = get_payment_entry(si.doctype, si.name)
+ pe.reference_no = "1"
+ pe.reference_date = "2016-01-01"
+ pe.insert()
+ pe.submit()
+
def test_payment_entry_against_pi(self):
- pi = make_purchase_invoice(supplier="_Test Supplier USD", debit_to="_Test Payable USD - _TC",
+ pi = make_purchase_invoice(supplier="_Test Supplier USD", debit_to="_Test Payable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Purchase Invoice", pi.name, bank_account="_Test Bank USD - _TC")
pe.reference_no = "1"
@@ -88,7 +101,7 @@
def test_payment_entry_against_ec(self):
payable = frappe.db.get_value('Company', "_Test Company", 'default_payable_account')
- ec = make_expense_claim(payable, 300, 300, "_Test Company","Travel Expenses - _TC")
+ ec = make_expense_claim(payable, 300, 300, "_Test Company", "Travel Expenses - _TC")
pe = get_payment_entry("Expense Claim", ec.name, bank_account="_Test Bank USD - _TC", bank_amount=300)
pe.reference_no = "1"
pe.reference_date = "2016-01-01"
@@ -108,7 +121,7 @@
self.assertEqual(outstanding_amount, 0)
def test_payment_entry_against_si_usd_to_inr(self):
- si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
+ si = create_sales_invoice(customer="_Test Customer USD", debit_to="_Test Receivable USD - _TC",
currency="USD", conversion_rate=50)
pe = get_payment_entry("Sales Invoice", si.name, party_amount=20,
bank_account="_Test Bank - _TC", bank_amount=900)
@@ -212,7 +225,7 @@
self.assertRaises(InvalidPaymentEntry, pe1.validate)
- si1 = create_sales_invoice()
+ si1 = create_sales_invoice()
# create full payment entry against si1
pe2 = get_payment_entry("Sales Invoice", si1.name, bank_account="_Test Cash - _TC")
diff --git a/erpnext/docs/assets/img/schools/schedule/__init__.py b/erpnext/accounts/doctype/payment_schedule/__init__.py
similarity index 100%
copy from erpnext/docs/assets/img/schools/schedule/__init__.py
copy to erpnext/accounts/doctype/payment_schedule/__init__.py
diff --git a/erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.json b/erpnext/accounts/doctype/payment_schedule/payment_schedule.json
similarity index 79%
copy from erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.json
copy to erpnext/accounts/doctype/payment_schedule/payment_schedule.json
index e7076bc..854def0 100644
--- a/erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.json
+++ b/erpnext/accounts/doctype/payment_schedule/payment_schedule.json
@@ -5,7 +5,7 @@
"allow_rename": 0,
"autoname": "",
"beta": 0,
- "creation": "2016-12-14 17:44:35.583123",
+ "creation": "2017-08-10 15:38:00.080575",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
@@ -18,8 +18,8 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
- "columns": 4,
- "fieldname": "assessment_criteria",
+ "columns": 2,
+ "fieldname": "payment_term",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -28,10 +28,72 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Assessment Criteria",
+ "label": "Payment Term",
"length": 0,
"no_copy": 0,
- "options": "Assessment Criteria",
+ "options": "Payment Term",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 2,
+ "fieldname": "description",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Description",
+ "length": 0,
+ "no_copy": 0,
+ "options": "payment_term.description",
+ "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": 2,
+ "fieldname": "due_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Due Date",
+ "length": 0,
+ "no_copy": 0,
+ "options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -50,8 +112,8 @@
"bold": 0,
"collapsible": 0,
"columns": 2,
- "fieldname": "maximum_score",
- "fieldtype": "Float",
+ "fieldname": "invoice_portion",
+ "fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -59,42 +121,13 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Maximum Score",
+ "label": "Invoice Portion",
"length": 0,
"no_copy": 0,
+ "options": "payment_term.invoice_portion",
"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": "column_break_2",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
+ "print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
@@ -110,8 +143,8 @@
"bold": 0,
"collapsible": 0,
"columns": 2,
- "fieldname": "score",
- "fieldtype": "Float",
+ "fieldname": "payment_amount",
+ "fieldtype": "Currency",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -119,50 +152,21 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Score",
+ "label": "Payment Amount",
"length": 0,
"no_copy": 0,
+ "options": "currency",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
- "read_only": 0,
+ "read_only": 1,
"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": 2,
- "fieldname": "grade",
- "fieldtype": "Data",
- "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": "Grade",
- "length": 0,
- "no_copy": 0,
- "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
}
],
"has_web_view": 0,
@@ -175,20 +179,19 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:47.068704",
+ "modified": "2017-11-23 12:39:02.013040",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "Assessment Result Detail",
+ "module": "Accounts",
+ "name": "Payment Schedule",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
- "restrict_to_domain": "Education",
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
- "track_changes": 0,
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_schedule/payment_schedule.py b/erpnext/accounts/doctype/payment_schedule/payment_schedule.py
new file mode 100644
index 0000000..4174017
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_schedule/payment_schedule.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+
+class PaymentSchedule(Document):
+ pass
diff --git a/erpnext/schools/doctype/academic_term/__init__.py b/erpnext/accounts/doctype/payment_term/__init__.py
similarity index 100%
copy from erpnext/schools/doctype/academic_term/__init__.py
copy to erpnext/accounts/doctype/payment_term/__init__.py
diff --git a/erpnext/schools/doctype/school_settings/school_settings.js b/erpnext/accounts/doctype/payment_term/payment_term.js
similarity index 61%
copy from erpnext/schools/doctype/school_settings/school_settings.js
copy to erpnext/accounts/doctype/payment_term/payment_term.js
index 2707c42..054c2d1 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.js
+++ b/erpnext/accounts/doctype/payment_term/payment_term.js
@@ -1,8 +1,2 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-
-frappe.ui.form.on('School Settings', {
- refresh: function(frm) {
-
- }
-});
diff --git a/erpnext/schools/doctype/school_settings/school_settings.json b/erpnext/accounts/doctype/payment_term/payment_term.json
similarity index 73%
copy from erpnext/schools/doctype/school_settings/school_settings.json
copy to erpnext/accounts/doctype/payment_term/payment_term.json
index b6d9890..702319b 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.json
+++ b/erpnext/accounts/doctype/payment_term/payment_term.json
@@ -3,8 +3,9 @@
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
+ "autoname": "field:payment_term_name",
"beta": 0,
- "creation": "2017-04-05 13:33:04.519313",
+ "creation": "2017-08-10 15:24:54.876365",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
@@ -15,11 +16,11 @@
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
- "bold": 0,
+ "bold": 1,
"collapsible": 0,
"columns": 0,
- "fieldname": "current_academic_year",
- "fieldtype": "Link",
+ "fieldname": "payment_term_name",
+ "fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -27,10 +28,9 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Current Academic Year",
+ "label": "Payment Term Name",
"length": 0,
"no_copy": 0,
- "options": "Academic Year",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -46,11 +46,11 @@
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
- "bold": 0,
+ "bold": 1,
"collapsible": 0,
"columns": 0,
- "fieldname": "current_academic_term",
- "fieldtype": "Link",
+ "fieldname": "invoice_portion",
+ "fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -58,38 +58,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Current Academic Term",
- "length": 0,
- "no_copy": 0,
- "options": "Academic Term",
- "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": "attendance_freeze_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Attendance Freeze Date",
+ "label": "Invoice Portion",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -110,7 +79,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "column_break_4",
+ "fieldname": "column_break_3",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -136,12 +105,11 @@
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
- "bold": 0,
+ "bold": 1,
"collapsible": 0,
"columns": 0,
- "description": "For Batch based Student Group, the Student Batch will be validated for every Student from the Program Enrollment.",
- "fieldname": "validate_batch",
- "fieldtype": "Check",
+ "fieldname": "due_date_based_on",
+ "fieldtype": "Select",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -149,7 +117,39 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Validate Batch for Students in Student Group",
+ "label": "Due Date Based On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Day(s) after invoice date\nDay(s) after the end of the invoice month\nMonth(s) after the end of the invoice month",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:in_list(['Day(s) after invoice date', 'Day(s) after the end of the invoice month'], doc.due_date_based_on)",
+ "fieldname": "credit_days",
+ "fieldtype": "Int",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Credit Days",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -170,9 +170,9 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "description": "For Course based Student Group, the Course will be validated for every Student from the enrolled Courses in Program Enrollment.",
- "fieldname": "validate_course",
- "fieldtype": "Check",
+ "depends_on": "eval:doc.due_date_based_on=='Month(s) after the end of the invoice month'",
+ "fieldname": "credit_months",
+ "fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -180,7 +180,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Validate Enrolled Course for Students in Student Group",
+ "label": "Credit Months",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -201,7 +201,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "section_break_7",
+ "fieldname": "section_break_6",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -227,12 +227,11 @@
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
- "bold": 0,
+ "bold": 1,
"collapsible": 0,
"columns": 0,
- "default": "Full Name",
- "fieldname": "instructor_created_by",
- "fieldtype": "Select",
+ "fieldname": "description",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -240,10 +239,9 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Instructor Records to be created by",
+ "label": "Description",
"length": 0,
"no_copy": 0,
- "options": "Full Name\nNaming Series\nEmployee Number",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -264,13 +262,13 @@
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
- "issingle": 1,
+ "issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-25 02:36:48.744456",
+ "modified": "2017-08-10 16:26:03.581501",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "School Settings",
+ "module": "Accounts",
+ "name": "Payment Term",
"name_case": "",
"owner": "Administrator",
"permissions": [
@@ -281,24 +279,63 @@
"create": 1,
"delete": 1,
"email": 1,
- "export": 0,
+ "export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
- "report": 0,
+ "report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Accounts Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Accounts User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
- "restrict_to_domain": "Education",
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
diff --git a/erpnext/accounts/doctype/payment_term/payment_term.py b/erpnext/accounts/doctype/payment_term/payment_term.py
new file mode 100644
index 0000000..5d4df05
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_term/payment_term.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+
+class PaymentTerm(Document):
+ pass
diff --git a/erpnext/accounts/doctype/payment_term/test_payment_term.js b/erpnext/accounts/doctype/payment_term/test_payment_term.js
new file mode 100644
index 0000000..b26e42a
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_term/test_payment_term.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Payment Term", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Payment Term
+ () => frappe.tests.make('Payment Term', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/accounts/doctype/payment_term/test_payment_term.py b/erpnext/accounts/doctype/payment_term/test_payment_term.py
new file mode 100644
index 0000000..d9baa59
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_term/test_payment_term.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+
+class TestPaymentTerm(unittest.TestCase):
+ pass
diff --git a/erpnext/accounts/doctype/payment_term/test_records.json b/erpnext/accounts/doctype/payment_term/test_records.json
new file mode 100644
index 0000000..ef6e069
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_term/test_records.json
@@ -0,0 +1,34 @@
+[
+ {
+ "doctype":"Payment Term",
+ "due_date_based_on":"Day(s) after invoice date",
+ "payment_term_name":"_Test N30",
+ "description":"_Test Net 30 Days",
+ "invoice_portion":50,
+ "credit_days":30
+ },
+ {
+ "doctype":"Payment Term",
+ "due_date_based_on":"Day(s) after invoice date",
+ "payment_term_name":"_Test COD",
+ "description":"_Test Cash on Delivery",
+ "invoice_portion":50,
+ "credit_days":0
+ },
+ {
+ "doctype":"Payment Term",
+ "due_date_based_on":"Month(s) after the end of the invoice month",
+ "payment_term_name":"_Test EONM",
+ "description":"_Test End of Next Month",
+ "invoice_portion":100,
+ "credit_months":1
+ },
+ {
+ "doctype":"Payment Term",
+ "due_date_based_on":"Day(s) after invoice date",
+ "payment_term_name":"_Test N30 1",
+ "description":"_Test Net 30 Days",
+ "invoice_portion":100,
+ "credit_days":30
+ }
+]
\ No newline at end of file
diff --git a/erpnext/docs/assets/img/schools/schedule/__init__.py b/erpnext/accounts/doctype/payment_terms_template/__init__.py
similarity index 100%
copy from erpnext/docs/assets/img/schools/schedule/__init__.py
copy to erpnext/accounts/doctype/payment_terms_template/__init__.py
diff --git a/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.js b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.js
new file mode 100644
index 0000000..558297f
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.js
@@ -0,0 +1,12 @@
+// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Payment Terms Template', {
+ setup: function(frm) {
+ frm.add_fetch("payment_term", "description", "description");
+ frm.add_fetch("payment_term", "invoice_portion", "invoice_portion");
+ frm.add_fetch("payment_term", "due_date_based_on", "due_date_based_on");
+ frm.add_fetch("payment_term", "credit_days", "credit_days");
+ frm.add_fetch("payment_term", "credit_months", "credit_months");
+ }
+});
diff --git a/erpnext/schools/doctype/fee_category/fee_category.json b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json
similarity index 75%
copy from erpnext/schools/doctype/fee_category/fee_category.json
copy to erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json
index 2b55f8d..0959658 100644
--- a/erpnext/schools/doctype/fee_category/fee_category.json
+++ b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json
@@ -1,16 +1,17 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
- "allow_import": 1,
- "allow_rename": 1,
- "autoname": "field:category_name",
+ "allow_import": 0,
+ "allow_rename": 0,
+ "autoname": "field:template_name",
"beta": 0,
- "creation": "2015-09-16 13:01:10.448734",
+ "creation": "2017-08-10 15:34:28.058054",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
- "document_type": "Setup",
- "editable_grid": 0,
+ "document_type": "",
+ "editable_grid": 1,
+ "engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
@@ -18,20 +19,49 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "category_name",
+ "fieldname": "template_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
- "in_list_view": 1,
+ "in_list_view": 0,
"in_standard_filter": 0,
- "label": "Name",
+ "label": "Template Name",
"length": 0,
"no_copy": 0,
- "oldfieldname": "earning_name",
- "oldfieldtype": "Data",
+ "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": "terms",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Payment Terms",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Payment Terms Template Detail",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -43,45 +73,11 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "description",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Description",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "description",
- "oldfieldtype": "Small Text",
- "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,
- "width": "300px"
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
- "icon": "fa fa-flag",
"idx": 0,
"image_view": 0,
"in_create": 0,
@@ -89,11 +85,10 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "menu_index": 0,
- "modified": "2017-11-02 17:57:18.069158",
+ "modified": "2017-08-10 15:46:33.877884",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "Fee Category",
+ "module": "Accounts",
+ "name": "Payment Terms Template",
"name_case": "",
"owner": "Administrator",
"permissions": [
@@ -111,7 +106,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Academics User",
+ "role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
@@ -158,14 +153,12 @@
"write": 1
}
],
- "quick_entry": 1,
+ "quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
- "restrict_to_domain": "Education",
- "search_fields": "description",
- "show_name_in_global_search": 1,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
- "track_changes": 0,
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py
new file mode 100644
index 0000000..7042df0
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py
@@ -0,0 +1,42 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+
+import frappe
+from frappe.model.document import Document
+from frappe.utils import flt, cint
+from frappe import _
+
+
+class PaymentTermsTemplate(Document):
+ def validate(self):
+ self.validate_invoice_portion()
+ self.validate_credit_days()
+ self.check_duplicate_terms()
+
+ def validate_invoice_portion(self):
+ total_portion = 0
+ for term in self.terms:
+ total_portion += flt(term.get('invoice_portion', 0))
+
+ if flt(total_portion, 2) != 100.00:
+ frappe.msgprint(_('Combined invoice portion must equal 100%'), raise_exception=1, indicator='red')
+
+ def validate_credit_days(self):
+ for term in self.terms:
+ if cint(term.credit_days) < 0:
+ frappe.msgprint(_('Credit Days cannot be a negative number'), raise_exception=1, indicator='red')
+
+ def check_duplicate_terms(self):
+ terms = []
+ for term in self.terms:
+ term_info = (term.credit_days, term.due_date_based_on)
+ if term_info in terms:
+ frappe.msgprint(
+ _('The Payment Term at row {0} is possibly a duplicate.').format(term.idx),
+ raise_exception=1, indicator='red'
+ )
+ else:
+ terms.append(term_info)
diff --git a/erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.js b/erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.js
new file mode 100644
index 0000000..494a0ed
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Payment Terms Template", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Payment Terms Template
+ () => frappe.tests.make('Payment Terms Template', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.py b/erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.py
new file mode 100644
index 0000000..6daaf1e
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+import unittest
+
+import frappe
+
+
+class TestPaymentTermsTemplate(unittest.TestCase):
+ def tearDown(self):
+ frappe.delete_doc('Payment Terms Template', '_Test Payment Terms Template For Test', force=1)
+
+ def test_create_template(self):
+ template = frappe.get_doc({
+ 'doctype': 'Payment Terms Template',
+ 'template_name': '_Test Payment Terms Template For Test',
+ 'terms': [{
+ 'doctype': 'Payment Terms Template Detail',
+ 'invoice_portion': 50.00,
+ 'credit_days_based_on': 'Day(s) after invoice date',
+ 'credit_days': 30
+ }]
+ })
+
+ self.assertRaises(frappe.ValidationError, template.insert)
+
+ template.append('terms', {
+ 'doctype': 'Payment Terms Template Detail',
+ 'invoice_portion': 50.00,
+ 'credit_days_based_on': 'Day(s) after invoice date',
+ 'credit_days': 0
+ })
+
+ template.insert()
+
+ def test_credit_days(self):
+ template = frappe.get_doc({
+ 'doctype': 'Payment Terms Template',
+ 'template_name': '_Test Payment Terms Template For Test',
+ 'terms': [{
+ 'doctype': 'Payment Terms Template Detail',
+ 'invoice_portion': 100.00,
+ 'credit_days_based_on': 'Day(s) after invoice date',
+ 'credit_days': -30
+ }]
+ })
+
+ self.assertRaises(frappe.ValidationError, template.insert)
+
+ def test_duplicate_terms(self):
+ template = frappe.get_doc({
+ 'doctype': 'Payment Terms Template',
+ 'template_name': '_Test Payment Terms Template For Test',
+ 'terms': [
+ {
+ 'doctype': 'Payment Terms Template Detail',
+ 'invoice_portion': 50.00,
+ 'credit_days_based_on': 'Day(s) after invoice date',
+ 'credit_days': 30
+ },
+ {
+ 'doctype': 'Payment Terms Template Detail',
+ 'invoice_portion': 50.00,
+ 'credit_days_based_on': 'Day(s) after invoice date',
+ 'credit_days': 30
+ }
+
+ ]
+ })
+
+ self.assertRaises(frappe.ValidationError, template.insert)
diff --git a/erpnext/accounts/doctype/payment_terms_template/test_records.json b/erpnext/accounts/doctype/payment_terms_template/test_records.json
new file mode 100644
index 0000000..fea0b35
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_terms_template/test_records.json
@@ -0,0 +1,60 @@
+[
+ {
+ "doctype":"Payment Terms Template",
+ "terms":[
+ {
+ "doctype":"Payment Terms Template Detail",
+ "due_date_based_on":"Day(s) after invoice date",
+ "idx":1,
+ "description":"Cash on Delivery",
+ "invoice_portion":50,
+ "credit_days":0,
+ "credit_months":0,
+ "payment_term":"_Test COD"
+ },
+ {
+ "doctype":"Payment Terms Template Detail",
+ "due_date_based_on":"Day(s) after invoice date",
+ "idx":2,
+ "description":"Net 30 Days ",
+ "invoice_portion":50,
+ "credit_days":30,
+ "credit_months":0,
+ "payment_term":"_Test N30"
+ }
+ ],
+ "template_name":"_Test Payment Term Template"
+ },
+ {
+ "doctype":"Payment Terms Template",
+ "terms":[
+ {
+ "doctype":"Payment Terms Template Detail",
+ "due_date_based_on":"Month(s) after the end of the invoice month",
+ "idx":1,
+ "description":"_Test End of Next Months",
+ "invoice_portion":100,
+ "credit_days":0,
+ "credit_months":1,
+ "payment_term":"_Test EONM"
+ }
+ ],
+ "template_name":"_Test Payment Term Template 1"
+ },
+ {
+ "doctype":"Payment Terms Template",
+ "terms":[
+ {
+ "doctype":"Payment Terms Template Detail",
+ "due_date_based_on":"Day(s) after invoice date",
+ "idx":1,
+ "description":"_Test Net Within 30 days",
+ "invoice_portion":100,
+ "credit_days":30,
+ "credit_months":0,
+ "payment_term":"_Test N30 1"
+ }
+ ],
+ "template_name":"_Test Payment Term Template 3"
+ }
+]
\ No newline at end of file
diff --git a/erpnext/schools/doctype/assessment_result_detail/__init__.py b/erpnext/accounts/doctype/payment_terms_template_detail/__init__.py
similarity index 100%
copy from erpnext/schools/doctype/assessment_result_detail/__init__.py
copy to erpnext/accounts/doctype/payment_terms_template_detail/__init__.py
diff --git a/erpnext/schools/doctype/student_admission_program/student_admission_program.json b/erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.json
similarity index 74%
copy from erpnext/schools/doctype/student_admission_program/student_admission_program.json
copy to erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.json
index 29bb57f..f808a0f 100644
--- a/erpnext/schools/doctype/student_admission_program/student_admission_program.json
+++ b/erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.json
@@ -3,9 +3,9 @@
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
- "autoname": "",
+ "autoname": "PTTD.#####",
"beta": 0,
- "creation": "2017-09-15 12:59:43.207923",
+ "creation": "2017-08-10 15:34:09.409562",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
@@ -18,8 +18,8 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
- "columns": 0,
- "fieldname": "program",
+ "columns": 2,
+ "fieldname": "payment_term",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -28,10 +28,10 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Program",
+ "label": "Payment Term",
"length": 0,
"no_copy": 0,
- "options": "Program",
+ "options": "Payment Term",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -49,9 +49,9 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
- "columns": 0,
- "fieldname": "minimum_age",
- "fieldtype": "Date",
+ "columns": 2,
+ "fieldname": "description",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -59,9 +59,10 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Minimum Age",
+ "label": "Description",
"length": 0,
"no_copy": 0,
+ "options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -79,9 +80,10 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
- "columns": 0,
- "fieldname": "maximum_age",
- "fieldtype": "Date",
+ "columns": 2,
+ "default": "0",
+ "fieldname": "invoice_portion",
+ "fieldtype": "Percent",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -89,9 +91,74 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Maximum Age",
+ "label": "Invoice Portion",
"length": 0,
"no_copy": 0,
+ "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": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 2,
+ "fieldname": "due_date_based_on",
+ "fieldtype": "Select",
+ "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": "Due Date Based On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Day(s) after invoice date\nDay(s) after the end of the invoice month\nMonth(s) after the end of the invoice month",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 2,
+ "default": "0",
+ "depends_on": "eval:in_list(['Day(s) after invoice date', 'Day(s) after the end of the invoice month'], doc.due_date_based_on)",
+ "fieldname": "credit_days",
+ "fieldtype": "Int",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Credit Days",
+ "length": 0,
+ "no_copy": 0,
+ "options": "",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -110,8 +177,10 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "column_break_4",
- "fieldtype": "Column Break",
+ "default": "0",
+ "depends_on": "eval:doc.due_date_based_on=='Month(s) after the end of the invoice month'",
+ "fieldname": "credit_months",
+ "fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -119,66 +188,7 @@
"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": "application_fee",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Application Fee",
- "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": "applicant_naming_series",
- "fieldtype": "Data",
- "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": "Naming Series (for Student Applicant)",
+ "label": "Credit Months",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -204,10 +214,10 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-10-02 17:13:52.586218",
+ "modified": "2017-09-26 05:21:51.738319",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "Student Admission Program",
+ "module": "Accounts",
+ "name": "Payment Terms Template Detail",
"name_case": "",
"owner": "Administrator",
"permissions": [],
diff --git a/erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.py b/erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.py
new file mode 100644
index 0000000..54c0fda
--- /dev/null
+++ b/erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+from frappe.model.document import Document
+
+
+class PaymentTermsTemplateDetail(Document):
+ pass
diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.js b/erpnext/accounts/doctype/pos_profile/pos_profile.js
index cb52627..25aff13 100755
--- a/erpnext/accounts/doctype/pos_profile/pos_profile.js
+++ b/erpnext/accounts/doctype/pos_profile/pos_profile.js
@@ -24,11 +24,11 @@
frappe.ui.form.on('POS Profile', {
setup: function(frm) {
- frm.set_query("online_print_format", function() {
+ frm.set_query("print_format_for_online", function() {
return {
filters: [
['Print Format', 'doc_type', '=', 'Sales Invoice'],
- ['Print Format', 'print_format_type', '!=', 'Js'],
+ ['Print Format', 'print_format_type', '=', 'Server'],
]
};
});
diff --git a/erpnext/accounts/doctype/pos_profile/pos_profile.json b/erpnext/accounts/doctype/pos_profile/pos_profile.json
index e2246bc..2740ef2 100644
--- a/erpnext/accounts/doctype/pos_profile/pos_profile.json
+++ b/erpnext/accounts/doctype/pos_profile/pos_profile.json
@@ -292,6 +292,36 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "fieldname": "allow_print_before_pay",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Allow Print Before Pay",
+ "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_4",
"fieldtype": "Column Break",
"hidden": 0,
diff --git a/erpnext/accounts/doctype/pos_settings/pos_settings.py b/erpnext/accounts/doctype/pos_settings/pos_settings.py
index 13a5004..bdfd969 100644
--- a/erpnext/accounts/doctype/pos_settings/pos_settings.py
+++ b/erpnext/accounts/doctype/pos_settings/pos_settings.py
@@ -12,8 +12,5 @@
def set_link_for_pos(self):
link = 'pos' if self.use_pos_in_offline_mode else 'point-of-sale'
- desktop_icon = frappe.db.get_value('Desktop Icon',
- {'standard': 1, 'module_name': 'POS'}, 'name')
-
- if desktop_icon:
- frappe.db.set_value('Desktop Icon', desktop_icon, 'link', link)
\ No newline at end of file
+ frappe.db.sql(""" update `tabDesktop Icon` set link = '{0}'
+ where module_name like '%pos%'""".format(link))
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
index 82a3d65..3fa34e2 100644
--- a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
@@ -252,9 +252,11 @@
self.assertEquals(so.items[0].rate, 100)
def test_pricing_rule_with_margin_and_discount(self):
+ frappe.delete_doc_if_exists('Pricing Rule', '_Test Pricing Rule')
make_pricing_rule(selling=1, margin_type="Percentage", margin_rate_or_amount=10)
si = create_sales_invoice(do_not_save=True)
si.items[0].price_list_rate = 1000
+ si.payment_schedule = []
si.insert(ignore_permissions=True)
item = si.items[0]
@@ -263,6 +265,7 @@
# With discount
item.discount_percentage = 10
+ si.payment_schedule = []
si.save()
item = si.items[0]
self.assertEquals(item.rate, 990)
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index b9a7dae..2fbf014 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -17,12 +17,13 @@
if(!this.frm.doc.supplier && this.frm.doc.credit_to) {
this.frm.set_df_property("credit_to", "print_hide", 0);
}
+ } else {
+ this.frm.set_value("disable_rounded_total", 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) {
@@ -377,5 +378,5 @@
erpnext.buying.get_default_bom(frm);
}
frm.toggle_reqd("supplier_warehouse", frm.doc.is_subcontracted==="Yes");
- },
+ }
})
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index 51a099e..2112fa1 100755
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -1,2338 +1,2986 @@
{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 1,
- "allow_rename": 0,
- "autoname": "naming_series:",
- "beta": 0,
- "creation": "2013-05-21 16:16:39",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Document",
- "editable_grid": 0,
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 0,
+ "autoname": "naming_series:",
+ "beta": 0,
+ "creation": "2013-05-21 16:16:39",
+ "custom": 0,
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Document",
+ "editable_grid": 0,
"fields": [
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "{supplier_name}",
- "fieldname": "title",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Title",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "{supplier_name}",
+ "fieldname": "title",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Title",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "naming_series",
- "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": "Series",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "naming_series",
- "oldfieldtype": "Select",
- "options": "PINV-\nPINV-RET-",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 1,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "naming_series",
+ "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": "Series",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "naming_series",
+ "oldfieldtype": "Select",
+ "options": "PINV-\nPINV-RET-",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 1,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 1,
- "label": "Supplier",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "supplier",
- "oldfieldtype": "Link",
- "options": "Supplier",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 1,
+ "label": "Supplier",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "supplier",
+ "oldfieldtype": "Link",
+ "options": "Supplier",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "supplier",
- "fieldname": "supplier_name",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Name",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "supplier_name",
- "oldfieldtype": "Data",
- "options": "supplier.supplier_name",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "supplier",
+ "fieldname": "supplier_name",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Name",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "supplier_name",
+ "oldfieldtype": "Data",
+ "options": "supplier.supplier_name",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "due_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Due Date",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "due_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "due_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Due Date",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "due_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "is_paid",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Is Paid",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "is_paid",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Is Paid",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_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": "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": 1,
- "label": "Company",
- "length": 0,
- "no_copy": 0,
- "options": "Company",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 1,
- "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": "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": 1,
+ "label": "Company",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 1,
+ "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": "Today",
- "fieldname": "posting_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Date",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "posting_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Today",
+ "fieldname": "posting_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Date",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "posting_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "posting_time",
- "fieldtype": "Time",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Posting Time",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "100px",
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "posting_time",
+ "fieldtype": "Time",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Posting Time",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "100px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "100px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.docstatus==0",
- "fieldname": "set_posting_time",
- "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": "Edit Posting Date and Time",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.docstatus==0",
+ "fieldname": "set_posting_time",
+ "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": "Edit Posting Date and Time",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "amended_from",
- "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": "Amended From",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "amended_from",
- "oldfieldtype": "Link",
- "options": "Purchase Invoice",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "amended_from",
+ "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": "Amended From",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "amended_from",
+ "oldfieldtype": "Link",
+ "options": "Purchase Invoice",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "bill_no",
- "columns": 0,
- "fieldname": "supplier_invoice_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": "Supplier Invoice Details",
- "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": 1,
+ "collapsible_depends_on": "bill_no",
+ "columns": 0,
+ "fieldname": "supplier_invoice_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": "Supplier Invoice Details",
+ "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,
- "description": "",
- "fieldname": "bill_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": "Supplier Invoice No",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "bill_no",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "bill_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": "Supplier Invoice No",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "bill_no",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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_15",
- "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_15",
+ "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": "bill_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Invoice Date",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "bill_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "bill_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Invoice Date",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "bill_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "is_return",
- "fieldname": "returns",
- "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": "Returns",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "is_return",
+ "fieldname": "returns",
+ "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": "Returns",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "0",
- "fieldname": "is_return",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Is Return",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "0",
+ "fieldname": "is_return",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Is Return",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "is_return",
- "fieldname": "return_against",
- "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": "Return Against Purchase Invoice",
- "length": 0,
- "no_copy": 1,
- "options": "Purchase Invoice",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "is_return",
+ "fieldname": "return_against",
+ "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": "Return Against Purchase Invoice",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Purchase Invoice",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "section_addresses",
- "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": "Address and Contact",
- "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": 1,
+ "columns": 0,
+ "fieldname": "section_addresses",
+ "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": "Address and Contact",
+ "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": "supplier_address",
- "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": "Select Supplier Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier_address",
+ "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": "Select Supplier Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "fieldname": "address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_person",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact Person",
- "length": 0,
- "no_copy": 0,
- "options": "Contact",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_person",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact Person",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Contact",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_mobile",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Mobile No",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_mobile",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Mobile No",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_email",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact Email",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_email",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact Email",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "col_break_address",
- "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": "col_break_address",
+ "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": "",
- "fieldname": "shipping_address",
- "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": "Select Shipping Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "shipping_address",
+ "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": "Select Shipping Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "shipping_address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Shipping Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "shipping_address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "currency_and_price_list",
- "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": "Currency and Price List",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-tag",
- "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": 1,
+ "columns": 0,
+ "fieldname": "currency_and_price_list",
+ "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": "Currency and Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-tag",
+ "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": "currency",
- "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": "Currency",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "currency",
- "oldfieldtype": "Select",
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "currency",
+ "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": "Currency",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "currency",
+ "oldfieldtype": "Select",
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "conversion_rate",
- "oldfieldtype": "Currency",
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "conversion_rate",
+ "oldfieldtype": "Currency",
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break2",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break2",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "buying_price_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": "Price List",
- "length": 0,
- "no_copy": 0,
- "options": "Price List",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "buying_price_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": "Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Price List",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "price_list_currency",
- "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": "Price List Currency",
- "length": 0,
- "no_copy": 0,
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "price_list_currency",
+ "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": "Price List Currency",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "plc_conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Price List Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "plc_conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Price List Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "ignore_pricing_rule",
- "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": "Ignore Pricing Rule",
- "length": 0,
- "no_copy": 1,
- "permlevel": 1,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "ignore_pricing_rule",
+ "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": "Ignore Pricing Rule",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 1,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "items_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-shopping-cart",
- "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": "items_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-shopping-cart",
+ "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": "0",
- "fieldname": "update_stock",
- "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": "Update Stock",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "0",
+ "fieldname": "update_stock",
+ "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": "Update Stock",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "items",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Items",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "entries",
- "oldfieldtype": "Table",
- "options": "Purchase Invoice Item",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Items",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "entries",
+ "oldfieldtype": "Table",
+ "options": "Purchase Invoice Item",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_26",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_26",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_total",
- "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 (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total",
+ "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 (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "base_net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "net_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "base_net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "net_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_28",
- "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": "column_break_28",
+ "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": "total",
- "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",
- "length": 0,
- "no_copy": 0,
- "options": "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",
+ "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",
+ "length": 0,
+ "no_copy": 0,
+ "options": "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": "net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "net_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "net_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-money",
- "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": "taxes_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-money",
+ "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": "taxes_and_charges",
- "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": "Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_other_charges",
- "oldfieldtype": "Link",
- "options": "Purchase Taxes and Charges Template",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_and_charges",
+ "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": "Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_other_charges",
+ "oldfieldtype": "Link",
+ "options": "Purchase Taxes and Charges Template",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Purchase Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_tax_details",
- "oldfieldtype": "Table",
- "options": "Purchase Taxes and Charges",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_49",
+ "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": 1,
- "columns": 0,
- "fieldname": "sec_tax_breakup",
- "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": "Tax Breakup",
- "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": "shipping_rule",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Rule",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Shipping Rule",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "other_charges_calculation",
- "fieldtype": "Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Taxes and Charges Calculation",
- "length": 0,
- "no_copy": 1,
- "oldfieldtype": "HTML",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_51",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "totals",
- "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",
- "options": "fa fa-money",
- "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": "taxes",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Purchase Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_tax_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Taxes and Charges",
+ "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": "base_taxes_and_charges_added",
- "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": "Taxes and Charges Added (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "sec_tax_breakup",
+ "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": "Tax Breakup",
+ "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": "base_taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "other_charges_calculation",
+ "fieldtype": "Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Taxes and Charges Calculation",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldtype": "HTML",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_total_taxes_and_charges",
- "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 Taxes and Charges (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "total_tax",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "totals",
+ "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",
+ "options": "fa fa-money",
+ "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_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": "base_taxes_and_charges_added",
+ "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": "Taxes and Charges Added (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_added",
- "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": "Taxes and Charges Added",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total_taxes_and_charges",
+ "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 Taxes and Charges (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "total_tax",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "total_taxes_and_charges",
- "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 Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_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": 1,
- "collapsible_depends_on": "discount_amount",
- "columns": 0,
- "fieldname": "section_break_44",
- "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": "Additional Discount",
- "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": "taxes_and_charges_added",
+ "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": "Taxes and Charges Added",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "Grand Total",
- "fieldname": "apply_discount_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": "Apply Additional Discount On",
- "length": 0,
- "no_copy": 0,
- "options": "\nGrand Total\nNet Total",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "total_taxes_and_charges",
+ "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 Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_46",
- "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": 1,
+ "collapsible_depends_on": "discount_amount",
+ "columns": 0,
+ "fieldname": "section_break_44",
+ "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": "Additional Discount",
+ "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": "additional_discount_percentage",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Percentage",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Grand Total",
+ "fieldname": "apply_discount_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": "Apply Additional Discount On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nGrand Total\nNet Total",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_49",
- "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": "column_break_46",
+ "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": "base_grand_total",
- "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": "Grand Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "grand_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "additional_discount_percentage",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Percentage",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounding_adjustment",
- "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": "Rounding Adjustment (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "base_in_words",
- "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": "In Words (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_49",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break8",
- "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": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_grand_total",
+ "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": "Grand Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "grand_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounding_adjustment",
+ "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": "Rounding Adjustment (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.disable_rounded_total",
+ "fieldname": "base_rounded_total",
+ "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": "Rounded Total (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "base_in_words",
+ "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": "In Words (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break8",
+ "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": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "50%"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "grand_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Grand Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "grand_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "grand_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Grand Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "grand_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "rounding_adjustment",
- "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": "Rounding Adjustment",
- "length": 0,
- "no_copy": 1,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "rounding_adjustment",
+ "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": "Rounding Adjustment",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "in_words",
- "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": "In Words",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words_import",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.disable_rounded_total",
+ "fieldname": "rounded_total",
+ "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": "Rounded Total",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "total_advance",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Total Advance",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "total_advance",
- "oldfieldtype": "Currency",
- "options": "party_account_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "in_words",
+ "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": "In Words",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words_import",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "outstanding_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Outstanding Amount",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "outstanding_amount",
- "oldfieldtype": "Currency",
- "options": "party_account_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "total_advance",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Total Advance",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "total_advance",
+ "oldfieldtype": "Currency",
+ "options": "party_account_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "outstanding_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Outstanding Amount",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "outstanding_amount",
+ "oldfieldtype": "Currency",
+ "options": "party_account_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "grand_total",
+ "fieldname": "disable_rounded_total",
+ "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": "Disable Rounded Total",
+ "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": 1,
+ "collapsible_depends_on": "paid_amount",
+ "columns": 0,
+ "depends_on": "eval:doc.is_paid===1||(doc.advances && doc.advances.length>0)",
+ "fieldname": "payments_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": "Payments",
+ "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": "mode_of_payment",
+ "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": "Mode of Payment",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Mode of Payment",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "cash_bank_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": "Cash/Bank 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": "col_br_payments",
+ "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": "is_paid",
+ "fieldname": "paid_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Paid Amount",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_paid_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Paid Amount (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "write_off_amount",
+ "columns": 0,
+ "depends_on": "grand_total",
+ "fieldname": "write_off",
+ "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": "Write Off",
+ "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": "write_off_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Write Off Amount",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_write_off_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Write Off Amount (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_61",
+ "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:flt(doc.write_off_amount)!=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,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:flt(doc.write_off_amount)!=0",
+ "fieldname": "write_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": "Write Off Cost Center",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Cost Center",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "advances",
+ "columns": 0,
+ "fieldname": "advances_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": "Advance Payments",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-money",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "get_advances",
+ "fieldtype": "Button",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Get Advances Paid",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Button",
+ "options": "",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "advances",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Advances",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "advance_allocation_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Invoice Advance",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
- "collapsible_depends_on": "paid_amount",
+ "collapsible_depends_on": "eval:(!doc.is_return)",
"columns": 0,
- "depends_on": "eval:doc.is_paid===1||(doc.advances && doc.advances.length>0)",
- "fieldname": "payments_section",
+ "fieldname": "payment_schedule_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -2341,7 +2989,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Payments",
+ "label": "Payment Terms",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -2362,7 +3010,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "mode_of_payment",
+ "fieldname": "payment_terms_template",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -2371,10 +3019,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Mode of Payment",
+ "label": "Payment Terms Template",
"length": 0,
"no_copy": 0,
- "options": "Mode of Payment",
+ "options": "Payment Terms Template",
"permlevel": 0,
"precision": "",
"print_hide": 1,
@@ -2393,377 +3041,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "cash_bank_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": "Cash/Bank 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": "col_br_payments",
- "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": "is_paid",
- "fieldname": "paid_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Paid Amount",
- "length": 0,
- "no_copy": 1,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_paid_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Paid Amount (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "write_off_amount",
- "columns": 0,
- "depends_on": "grand_total",
- "fieldname": "write_off",
- "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": "Write Off",
- "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": "write_off_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Write Off Amount",
- "length": 0,
- "no_copy": 1,
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_write_off_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Write Off Amount (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_61",
- "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:flt(doc.write_off_amount)!=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,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:flt(doc.write_off_amount)!=0",
- "fieldname": "write_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": "Write Off Cost Center",
- "length": 0,
- "no_copy": 0,
- "options": "Cost Center",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "advances",
- "columns": 0,
- "fieldname": "advances_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": "Advance Payments",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-money",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "get_advances",
- "fieldtype": "Button",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Get Advances Paid",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Button",
- "options": "",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "advances",
+ "fieldname": "payment_schedule",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -2772,131 +3050,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Advances",
+ "label": "Payment Schedule",
"length": 0,
"no_copy": 1,
- "oldfieldname": "advance_allocation_details",
- "oldfieldtype": "Table",
- "options": "Purchase Invoice Advance",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "terms",
- "columns": 0,
- "fieldname": "terms_section_break",
- "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": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-legal",
- "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": "tc_name",
- "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": "Terms",
- "length": 0,
- "no_copy": 0,
- "options": "Terms and Conditions",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "terms",
- "fieldtype": "Text Editor",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Terms and Conditions1",
- "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": "raw_materials_supplied",
- "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": "Raw Materials Supplied",
- "length": 0,
- "no_copy": 0,
+ "options": "Payment Schedule",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -2910,789 +3067,909 @@
"unique": 0
},
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "No",
- "fieldname": "is_subcontracted",
- "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": "Raw Materials Supplied",
- "length": 0,
- "no_copy": 0,
- "options": "No\nYes",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "terms",
+ "columns": 0,
+ "fieldname": "terms_section_break",
+ "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": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-legal",
+ "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": "supplier_warehouse",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Warehouse",
- "length": 0,
- "no_copy": 1,
- "options": "Warehouse",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "50px",
- "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": "tc_name",
+ "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": "Terms",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Terms and Conditions",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "terms",
+ "fieldtype": "Text Editor",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Terms and Conditions1",
+ "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": "raw_materials_supplied",
+ "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": "Raw Materials Supplied",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "No",
+ "fieldname": "is_subcontracted",
+ "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": "Raw Materials Supplied",
+ "length": 0,
+ "no_copy": 0,
+ "options": "No\nYes",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier_warehouse",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Warehouse",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Warehouse",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "50px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "50px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplied_items",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplied Items",
- "length": 0,
- "no_copy": 0,
- "options": "Purchase Receipt Item Supplied",
- "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": "supplied_items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplied Items",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Purchase Receipt Item Supplied",
+ "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": 1,
- "columns": 0,
- "fieldname": "printing_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": "Printing 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": 1,
+ "columns": 0,
+ "fieldname": "printing_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": "Printing 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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "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": "Letter Head",
- "length": 0,
- "no_copy": 0,
- "options": "Letter Head",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "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": "Letter Head",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Letter Head",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "select_print_heading",
- "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": "Print Heading",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "select_print_heading",
- "oldfieldtype": "Link",
- "options": "Print Heading",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 1,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "select_print_heading",
+ "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": "Print Heading",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "select_print_heading",
+ "oldfieldtype": "Link",
+ "options": "Print Heading",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 1,
+ "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": "language",
- "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": "Print Language",
- "length": 0,
- "no_copy": 0,
- "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": "language",
+ "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": "Print Language",
+ "length": 0,
+ "no_copy": 0,
+ "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": 1,
- "columns": 0,
- "fieldname": "more_info",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "More Information",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-file-text",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "more_info",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "More Information",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-file-text",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "credit_to",
- "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": "Credit To",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "credit_to",
- "oldfieldtype": "Link",
- "options": "Account",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "credit_to",
+ "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": "Credit To",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "credit_to",
+ "oldfieldtype": "Link",
+ "options": "Account",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "party_account_currency",
- "fieldtype": "Link",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Party Account Currency",
- "length": 0,
- "no_copy": 1,
- "options": "Currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "party_account_currency",
+ "fieldtype": "Link",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Party Account Currency",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "No",
- "description": "",
- "fieldname": "is_opening",
- "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": "Is Opening",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "is_opening",
- "oldfieldtype": "Select",
- "options": "No\nYes",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "No",
+ "description": "",
+ "fieldname": "is_opening",
+ "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": "Is Opening",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "is_opening",
+ "oldfieldtype": "Select",
+ "options": "No\nYes",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "against_expense_account",
- "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": "Against Expense Account",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "against_expense_account",
- "oldfieldtype": "Small Text",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "against_expense_account",
+ "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": "Against Expense Account",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "against_expense_account",
+ "oldfieldtype": "Small Text",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_63",
- "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": "column_break_63",
+ "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,
- "default": "Draft",
- "fieldname": "status",
- "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": 1,
- "label": "Status",
- "length": 0,
- "no_copy": 0,
- "options": "\nDraft\nReturn\nDebit Note Issued\nSubmitted\nPaid\nUnpaid\nOverdue\nCancelled",
- "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": "Draft",
+ "fieldname": "status",
+ "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": 1,
+ "label": "Status",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nDraft\nReturn\nDebit Note Issued\nSubmitted\nPaid\nUnpaid\nOverdue\nCancelled",
+ "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": "remarks",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Remarks",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "remarks",
- "oldfieldtype": "Text",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "remarks",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Remarks",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "remarks",
+ "oldfieldtype": "Text",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "Warehouse where you are maintaining stock of rejected items",
- "fieldname": "rejected_warehouse",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Rejected Warehouse",
- "length": 0,
- "no_copy": 1,
- "options": "Warehouse",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "Warehouse where you are maintaining stock of rejected items",
+ "fieldname": "rejected_warehouse",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Rejected Warehouse",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Warehouse",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "subscription_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": "Subscription Section",
- "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": "subscription_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": "Subscription Section",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "description": "Start date of current invoice's period",
- "fieldname": "from_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "From Date",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "description": "Start date of current invoice's period",
+ "fieldname": "from_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "From Date",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "description": "End date of current invoice's period",
- "fieldname": "to_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "To Date",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "description": "End date of current invoice's period",
+ "fieldname": "to_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "To Date",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_114",
- "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_114",
+ "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": "subscription",
- "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": "Subscription",
- "length": 0,
- "no_copy": 1,
- "options": "Subscription",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "subscription",
+ "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": "Subscription",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Subscription",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
}
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "icon": "fa fa-file-text",
- "idx": 204,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 1,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "menu_index": 0,
- "modified": "2017-11-15 01:04:15.308603",
- "modified_by": "Administrator",
- "module": "Accounts",
- "name": "Purchase Invoice",
- "name_case": "Title Case",
- "owner": "Administrator",
+ ],
+ "has_web_view": 0,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "fa fa-file-text",
+ "idx": 204,
+ "image_view": 0,
+ "in_create": 0,
+ "is_submittable": 1,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "menu_index": 0,
+ "modified": "2017-11-23 01:04:15.308603",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Purchase Invoice",
+ "name_case": "Title Case",
+ "owner": "Administrator",
"permissions": [
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 0,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Accounts User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 0,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Accounts User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 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": 1,
- "role": "Purchase 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": 1,
+ "role": "Purchase User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Accounts Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Accounts Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "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": 1,
- "role": "Auditor",
- "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": 1,
+ "role": "Auditor",
+ "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": 1,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Accounts Manager",
- "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": 1,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Accounts Manager",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 1
}
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 1,
- "search_fields": "posting_date, supplier, bill_no, base_grand_total, outstanding_amount",
- "show_name_in_global_search": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "timeline_field": "supplier",
- "title_field": "title",
- "track_changes": 1,
+ ],
+ "quick_entry": 0,
+ "read_only": 0,
+ "read_only_onload": 1,
+ "search_fields": "posting_date, supplier, bill_no, base_grand_total, outstanding_amount",
+ "show_name_in_global_search": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "timeline_field": "supplier",
+ "title_field": "title",
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 78c5682..0c8bfc0 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -77,8 +77,10 @@
if not self.cash_bank_account and flt(self.paid_amount):
frappe.throw(_("Cash or Bank Account is mandatory for making payment entry"))
- if flt(self.paid_amount) + flt(self.write_off_amount) \
- - flt(self.grand_total) > 1/(10**(self.precision("base_grand_total") + 1)):
+ if (flt(self.paid_amount) + flt(self.write_off_amount)
+ - flt(self.get("rounded_total") or self.grand_total)
+ > 1/(10**(self.precision("base_grand_total") + 1))):
+
frappe.throw(_("""Paid amount + Write Off Amount can not be greater than Grand Total"""))
def create_remarks(self):
@@ -93,7 +95,7 @@
if not self.credit_to:
self.credit_to = get_party_account("Supplier", self.supplier, self.company)
if not self.due_date:
- self.due_date = get_due_date(self.posting_date, "Supplier", self.supplier, self.company)
+ self.due_date = get_due_date(self.posting_date, "Supplier", self.supplier)
super(PurchaseInvoice, self).set_missing_values(for_validate)
@@ -359,9 +361,30 @@
return gl_entries
def make_supplier_gl_entry(self, gl_entries):
- if self.grand_total:
+ grand_total = self.rounded_total or self.grand_total
+ if self.get("payment_schedule"):
+ for d in self.get("payment_schedule"):
+ payment_amount_in_company_currency = flt(d.payment_amount * self.conversion_rate,
+ d.precision("payment_amount"))
+
+ gl_entries.append(
+ self.get_gl_dict({
+ "account": self.credit_to,
+ "party_type": "Supplier",
+ "party": self.supplier,
+ "due_date": d.due_date,
+ "against": self.against_expense_account,
+ "credit": payment_amount_in_company_currency,
+ "credit_in_account_currency": payment_amount_in_company_currency \
+ if self.party_account_currency==self.company_currency else d.payment_amount,
+ "against_voucher": self.return_against if cint(self.is_return) else self.name,
+ "against_voucher_type": self.doctype
+ }, self.party_account_currency)
+ )
+
+ elif grand_total:
# Didnot use base_grand_total to book rounding loss gle
- grand_total_in_company_currency = flt(self.grand_total * self.conversion_rate,
+ grand_total_in_company_currency = flt(grand_total * self.conversion_rate,
self.precision("grand_total"))
gl_entries.append(
self.get_gl_dict({
@@ -371,7 +394,7 @@
"against": self.against_expense_account,
"credit": grand_total_in_company_currency,
"credit_in_account_currency": grand_total_in_company_currency \
- if self.party_account_currency==self.company_currency else self.grand_total,
+ if self.party_account_currency==self.company_currency else grand_total,
"against_voucher": self.return_against if cint(self.is_return) else self.name,
"against_voucher_type": self.doctype,
}, self.party_account_currency)
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.js
index e01dda3..5e6d95c 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.js
@@ -20,7 +20,8 @@
{contact_person: 'Contact 3-Test Supplier'},
{taxes_and_charges: 'TEST In State GST'},
{tc_name: 'Test Term 1'},
- {terms: 'This is Test'}
+ {terms: 'This is Test'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => cur_frm.save(),
@@ -34,6 +35,9 @@
// grand_total Calculated
assert.ok(cur_frm.doc.grand_total==590, "Grad Total correct");
+ assert.ok(cur_frm.doc.payment_terms_template, "Payment Terms Template is correct");
+ assert.ok(cur_frm.doc.payment_schedule.length > 0, "Payment Term Schedule is not empty");
+
},
() => frappe.tests.click_button('Submit'),
() => frappe.tests.click_button('Yes'),
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index 474329f..3ac521a 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -6,15 +6,16 @@
import unittest
import frappe, erpnext
import frappe.model
-from frappe.utils import cint, flt, today, nowdate
+from frappe.utils import cint, flt, today, nowdate, getdate, add_days
import frappe.defaults
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory, \
test_records as pr_test_records
+from erpnext.controllers.accounts_controller import get_payment_terms
from erpnext.exceptions import InvalidCurrency
from erpnext.stock.doctype.stock_entry.test_stock_entry import get_qty_after_transaction
from erpnext.accounts.doctype.account.test_account import get_inventory_account
-test_dependencies = ["Item", "Cost Center"]
+test_dependencies = ["Item", "Cost Center", "Payment Term", "Payment Terms Template"]
test_ignore = ["Serial No"]
class TestPurchaseInvoice(unittest.TestCase):
@@ -35,7 +36,7 @@
dl = wrapper
expected_gl_entries = {
- "_Test Payable - _TC": [0, 1512.30],
+ "_Test Payable - _TC": [0, 1512.0],
"_Test Account Cost for Goods Sold - _TC": [1250, 0],
"_Test Account Shipping Charges - _TC": [100, 0],
"_Test Account Excise Duty - _TC": [140, 0],
@@ -44,6 +45,7 @@
"_Test Account CST - _TC": [29.88, 0],
"_Test Account VAT - _TC": [156.25, 0],
"_Test Account Discount - _TC": [0, 168.03],
+ "Round Off - _TC": [0, 0.3]
}
gl_entries = frappe.db.sql("""select account, debit, credit from `tabGL Entry`
where voucher_type = 'Purchase Invoice' and voucher_no = %s""", dl.name, as_dict=1)
@@ -61,6 +63,12 @@
set_perpetual_inventory(0, pi.company)
+ def test_terms_added_after_save(self):
+ pi = frappe.copy_doc(test_records[1])
+ pi.insert()
+ self.assertTrue(pi.payment_schedule)
+ self.assertEqual(pi.payment_schedule[0].due_date, pi.due_date)
+
def test_payment_entry_unlink_against_purchase_invoice(self):
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
unlink_payment_on_cancel_of_invoice(0)
@@ -233,6 +241,7 @@
jv.submit()
pi = frappe.copy_doc(test_records[0])
+ pi.disable_rounded_total = 1
pi.append("advances", {
"reference_type": "Journal Entry",
"reference_name": jv.name,
@@ -242,6 +251,14 @@
"remarks": jv.remark
})
pi.insert()
+
+ self.assertEqual(pi.outstanding_amount, 1212.30)
+
+ pi.disable_rounded_total = 0
+ pi.get("payment_schedule")[0].payment_amount = 1512.0
+ pi.save()
+ self.assertEqual(pi.outstanding_amount, 1212.0)
+
pi.submit()
pi.load_from_db()
@@ -249,13 +266,61 @@
where reference_type='Purchase Invoice'
and reference_name=%s and debit_in_account_currency=300""", pi.name))
- self.assertEqual(pi.outstanding_amount, 1212.30)
-
pi.cancel()
self.assertFalse(frappe.db.sql("""select name from `tabJournal Entry Account`
where reference_type='Purchase Invoice' and reference_name=%s""", pi.name))
+ def test_invoice_with_advance_and_multi_payment_terms(self):
+ from erpnext.accounts.doctype.journal_entry.test_journal_entry \
+ import test_records as jv_test_records
+
+ jv = frappe.copy_doc(jv_test_records[1])
+ jv.insert()
+ jv.submit()
+
+ pi = frappe.copy_doc(test_records[0])
+ pi.disable_rounded_total = 1
+ pi.append("advances", {
+ "reference_type": "Journal Entry",
+ "reference_name": jv.name,
+ "reference_row": jv.get("accounts")[0].name,
+ "advance_amount": 400,
+ "allocated_amount": 300,
+ "remarks": jv.remark
+ })
+ pi.insert()
+
+ pi.update({
+ "payment_schedule": get_payment_terms("_Test Payment Term Template",
+ pi.posting_date, pi.grand_total)
+ })
+
+ pi.save()
+ pi.submit()
+ self.assertEqual(pi.payment_schedule[0].payment_amount, 756.15)
+ self.assertEqual(pi.payment_schedule[0].due_date, pi.posting_date)
+ self.assertEqual(pi.payment_schedule[1].payment_amount, 756.15)
+ self.assertEqual(pi.payment_schedule[1].due_date, add_days(pi.posting_date, 30))
+
+ pi.load_from_db()
+
+ self.assertTrue(
+ frappe.db.sql(
+ "select name from `tabJournal Entry Account` where reference_type='Purchase Invoice' and "
+ "reference_name=%s and debit_in_account_currency=300", pi.name)
+ )
+
+ self.assertEqual(pi.outstanding_amount, 1212.30)
+
+ pi.cancel()
+
+ self.assertFalse(
+ frappe.db.sql(
+ "select name from `tabJournal Entry Account` where reference_type='Purchase Invoice' and "
+ "reference_name=%s", pi.name)
+ )
+
def test_total_purchase_cost_for_project(self):
existing_purchase_cost = frappe.db.sql("""select sum(base_net_amount)
from `tabPurchase Invoice Item` where project = '_Test Project' and docstatus=1""")
@@ -491,7 +556,7 @@
pi.load_from_db()
#check outstanding after advance allocation
- self.assertEqual(flt(pi.outstanding_amount), flt(pi.grand_total - pi.total_advance))
+ self.assertEqual(flt(pi.outstanding_amount), flt(pi.rounded_total - pi.total_advance))
#added to avoid Document has been modified exception
jv = frappe.get_doc("Journal Entry", jv.name)
@@ -499,7 +564,7 @@
pi.load_from_db()
#check outstanding after advance cancellation
- self.assertEqual(flt(pi.outstanding_amount), flt(pi.grand_total + pi.total_advance))
+ self.assertEqual(flt(pi.outstanding_amount), flt(pi.rounded_total + pi.total_advance))
def test_outstanding_amount_after_advance_payment_entry_cancelation(self):
pe = frappe.get_doc({
@@ -521,7 +586,7 @@
})
pe.insert()
pe.submit()
-
+
pi = frappe.copy_doc(test_records[0])
pi.is_pos = 0
pi.append("advances", {
@@ -534,19 +599,102 @@
})
pi.insert()
pi.submit()
-
+
pi.load_from_db()
#check outstanding after advance allocation
- self.assertEqual(flt(pi.outstanding_amount), flt(pi.grand_total - pi.total_advance))
-
+ self.assertEqual(flt(pi.outstanding_amount), flt(pi.rounded_total - pi.total_advance))
+
#added to avoid Document has been modified exception
pe = frappe.get_doc("Payment Entry", pe.name)
pe.cancel()
-
+
pi.load_from_db()
#check outstanding after advance cancellation
- self.assertEqual(flt(pi.outstanding_amount), flt(pi.grand_total + pi.total_advance))
+ self.assertEqual(flt(pi.outstanding_amount), flt(pi.rounded_total + pi.total_advance))
+
+ def test_purchase_invoice_with_shipping_rule(self):
+ from erpnext.accounts.doctype.shipping_rule.test_shipping_rule \
+ import create_shipping_rule
+
+ shipping_rule = create_shipping_rule(shipping_rule_type = "Buying", shipping_rule_name = "Shipping Rule - Purchase Invoice Test")
+
+ pi = frappe.copy_doc(test_records[0])
+
+ pi.shipping_rule = shipping_rule.name
+ pi.insert()
+
+ shipping_amount = 0.0
+ for condition in shipping_rule.get("conditions"):
+ if not condition.to_value or (flt(condition.from_value) <= pi.net_total <= flt(condition.to_value)):
+ shipping_amount = condition.shipping_amount
+
+ shipping_charge = {
+ "doctype": "Purchase Taxes and Charges",
+ "category": "Valuation and Total",
+ "charge_type": "Actual",
+ "account_head": shipping_rule.account,
+ "cost_center": shipping_rule.cost_center,
+ "tax_amount": shipping_amount,
+ "description": shipping_rule.name,
+ "add_deduct_tax": "Add"
+ }
+ pi.append("taxes", shipping_charge)
+ pi.save()
+
+ self.assertEquals(pi.net_total, 1250)
+
+ self.assertEquals(pi.total_taxes_and_charges, 462.3)
+ self.assertEquals(pi.grand_total, 1712.3)
+
+ def test_gl_entry_based_on_payment_schedule(self):
+ pi = make_purchase_invoice(do_not_save=True, supplier="_Test Supplier P")
+ pi.append("payment_schedule", {
+ "due_date": add_days(nowdate(), 15),
+ "payment_amount": 100,
+ "invoice_portion": 40.00
+ })
+ pi.append("payment_schedule", {
+ "due_date": add_days(nowdate(), 25),
+ "payment_amount": 150,
+ "invoice_portion": 60.00
+ })
+
+ pi.save()
+ pi.submit()
+
+ gl_entries = frappe.db.sql("""select account, debit, credit, due_date
+ from `tabGL Entry` where voucher_type='Purchase Invoice' and voucher_no=%s
+ order by account asc, debit asc""", pi.name, as_dict=1)
+ self.assertTrue(gl_entries)
+
+ expected_gl_entries = sorted([
+ [pi.credit_to, 0.0, 100.0, add_days(nowdate(), 15)],
+ [pi.credit_to, 0.0, 150.0, add_days(nowdate(), 25)],
+ ["_Test Account Cost for Goods Sold - _TC", 250.0, 0.0, None]
+ ])
+
+ for i, gle in enumerate(sorted(gl_entries, key=lambda gle: gle.account)):
+ self.assertEquals(expected_gl_entries[i][0], gle.account)
+ self.assertEquals(expected_gl_entries[i][1], gle.debit)
+ self.assertEquals(expected_gl_entries[i][2], gle.credit)
+ self.assertEquals(getdate(expected_gl_entries[i][3]), getdate(gle.due_date))
+
+ def test_make_pi_without_terms(self):
+ pi = make_purchase_invoice(do_not_save=1)
+
+ self.assertFalse(pi.get('payment_schedule'))
+
+ pi.insert()
+
+ self.assertTrue(pi.get('payment_schedule'))
+
+ def test_duplicate_due_date_in_terms(self):
+ pi = make_purchase_invoice(do_not_save=1)
+ pi.append('payment_schedule', dict(due_date='2017-01-01', invoice_portion=50.00, payment_amount=50))
+ pi.append('payment_schedule', dict(due_date='2017-01-01', invoice_portion=50.00, payment_amount=50))
+
+ self.assertRaises(frappe.ValidationError, pi.insert)
def unlink_payment_on_cancel_of_invoice(enable=1):
accounts_settings = frappe.get_doc("Accounts Settings")
diff --git a/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json b/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
index 47e6889..2b7fe77 100644
--- a/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
+++ b/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "hash",
@@ -10,8 +11,10 @@
"doctype": "DocType",
"document_type": "Setup",
"editable_grid": 1,
+ "engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -23,7 +26,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Consider Tax or Charge for",
"length": 0,
"no_copy": 0,
@@ -34,6 +39,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -41,6 +47,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -52,7 +59,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Add or Deduct",
"length": 0,
"no_copy": 0,
@@ -63,6 +72,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -70,6 +80,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -80,7 +91,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Type",
"length": 0,
"no_copy": 0,
@@ -91,6 +104,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -98,6 +112,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -109,7 +124,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Reference Row #",
"length": 0,
"no_copy": 0,
@@ -119,6 +136,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -126,6 +144,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -137,7 +156,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Is this Tax included in Basic Rate?",
"length": 0,
"no_copy": 0,
@@ -146,6 +167,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 1,
"reqd": 0,
"search_index": 0,
@@ -153,6 +175,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -163,13 +186,16 @@
"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,
@@ -177,6 +203,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -187,7 +214,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Account Head",
"length": 0,
"no_copy": 0,
@@ -198,6 +227,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -205,6 +235,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -216,7 +247,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Cost Center",
"length": 0,
"no_copy": 0,
@@ -227,6 +260,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -234,17 +268,20 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "description",
- "fieldtype": "Text Editor",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
@@ -255,6 +292,7 @@
"print_hide_if_no_value": 0,
"print_width": "300px",
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -263,6 +301,7 @@
"width": "300px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -273,7 +312,9 @@
"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,
@@ -281,6 +322,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -288,6 +330,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -298,7 +341,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Rate",
"length": 0,
"no_copy": 0,
@@ -308,6 +353,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -315,6 +361,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -325,7 +372,9 @@
"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,
@@ -333,6 +382,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -340,6 +390,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -350,7 +401,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Amount",
"length": 0,
"no_copy": 0,
@@ -361,6 +414,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -368,6 +422,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -378,7 +433,9 @@
"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 Amount After Discount Amount",
"length": 0,
"no_copy": 0,
@@ -388,6 +445,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -395,6 +453,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -405,7 +464,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Total",
"length": 0,
"no_copy": 0,
@@ -416,6 +477,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -423,6 +485,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -433,7 +496,9 @@
"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,
@@ -441,6 +506,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -448,6 +514,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -458,7 +525,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Amount (Company Currency)",
"length": 0,
"no_copy": 0,
@@ -468,6 +537,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -475,6 +545,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -485,7 +556,9 @@
"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 (Company Currency)",
"length": 0,
"no_copy": 0,
@@ -495,6 +568,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -502,6 +576,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -512,7 +587,9 @@
"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 Amount After Discount Amount",
"length": 0,
"no_copy": 0,
@@ -522,6 +599,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -529,6 +607,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -539,7 +618,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Item Wise Tax Detail ",
"length": 0,
"no_copy": 0,
@@ -549,6 +630,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -556,6 +638,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -565,8 +648,10 @@
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
- "in_filter": 1,
+ "in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Parenttype",
"length": 0,
"no_copy": 0,
@@ -576,6 +661,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -583,17 +669,17 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 1,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2016-08-26 03:20:22.118330",
+ "modified": "2017-11-15 19:26:57.074345",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Taxes and Charges",
@@ -602,5 +688,7 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index ccaae49..ad52dee 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -607,3 +607,4 @@
refresh_field('total_billing_amount')
}
+
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
index c0ea00c..41b92c4 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
@@ -2752,6 +2752,101 @@
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "eval:(!doc.is_pos && !doc.is_return)",
+ "columns": 0,
+ "fieldname": "payment_schedule_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": "Payment Terms",
+ "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.is_pos && !doc.is_return)",
+ "fieldname": "payment_terms_template",
+ "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": "Payment Terms Template",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Payment Terms Template",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:(!doc.is_pos && !doc.is_return)",
+ "fieldname": "payment_schedule",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Payment Schedule",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Payment Schedule",
+ "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,
"collapsible_depends_on": "",
"columns": 0,
@@ -3002,6 +3097,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "depends_on": "is_pos",
"fieldname": "base_change_amount",
"fieldtype": "Currency",
"hidden": 0,
@@ -3062,6 +3158,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "depends_on": "is_pos",
"fieldname": "change_amount",
"fieldtype": "Currency",
"hidden": 0,
@@ -3093,6 +3190,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
+ "depends_on": "is_pos",
"fieldname": "account_for_change_amount",
"fieldtype": "Link",
"hidden": 0,
@@ -4434,7 +4532,7 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-11-15 01:02:36.885752",
+ "modified": "2017-11-23 12:36:53.731902",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice",
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index 85d1022..6a54164 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -242,12 +242,12 @@
if not self.debit_to:
self.debit_to = get_party_account("Customer", self.customer, self.company)
if not self.due_date and self.customer:
- self.due_date = get_due_date(self.posting_date, "Customer", self.customer, self.company)
+ self.due_date = get_due_date(self.posting_date, "Customer", self.customer)
super(SalesInvoice, self).set_missing_values(for_validate)
if pos:
- return {"print_format": pos.get("print_format") }
+ return {"print_format": pos.get("print_format_for_online") }
def update_time_sheet(self, sales_invoice):
for d in self.timesheets:
@@ -632,9 +632,30 @@
return gl_entries
def make_customer_gl_entry(self, gl_entries):
- if self.grand_total:
+ grand_total = self.rounded_total or self.grand_total
+ if self.get("payment_schedule"):
+ for d in self.get("payment_schedule"):
+ payment_amount_in_company_currency = flt(d.payment_amount * self.conversion_rate,
+ d.precision("payment_amount"))
+
+ gl_entries.append(
+ self.get_gl_dict({
+ "account": self.debit_to,
+ "party_type": "Customer",
+ "party": self.customer,
+ "due_date": d.due_date,
+ "against": self.against_income_account,
+ "debit": payment_amount_in_company_currency,
+ "debit_in_account_currency": payment_amount_in_company_currency \
+ if self.party_account_currency==self.company_currency else d.payment_amount,
+ "against_voucher": self.return_against if cint(self.is_return) else self.name,
+ "against_voucher_type": self.doctype
+ }, self.party_account_currency)
+ )
+
+ elif grand_total:
# Didnot use base_grand_total to book rounding loss gle
- grand_total_in_company_currency = flt(self.grand_total * self.conversion_rate,
+ grand_total_in_company_currency = flt(grand_total * self.conversion_rate,
self.precision("grand_total"))
gl_entries.append(
@@ -645,7 +666,7 @@
"against": self.against_income_account,
"debit": grand_total_in_company_currency,
"debit_in_account_currency": grand_total_in_company_currency \
- if self.party_account_currency==self.company_currency else self.grand_total,
+ if self.party_account_currency==self.company_currency else grand_total,
"against_voucher": self.return_against if cint(self.is_return) else self.name,
"against_voucher_type": self.doctype
}, self.party_account_currency)
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.js
index 35b2558..b4be3ba 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.js
@@ -1,7 +1,7 @@
QUnit.module('Sales Invoice');
QUnit.test("test sales Invoice", function(assert) {
- assert.expect(4);
+ assert.expect(6);
let done = assert.async();
frappe.run_serially([
() => {
@@ -19,7 +19,8 @@
{contact_person: 'Contact 1-Test Customer 1'},
{taxes_and_charges: 'TEST In State GST'},
{tc_name: 'Test Term 1'},
- {terms: 'This is Test'}
+ {terms: 'This is Test'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => cur_frm.save(),
@@ -31,7 +32,10 @@
// get tax account head details
assert.ok(cur_frm.doc.taxes[0].account_head=='CGST - '+frappe.get_abbr(frappe.defaults.get_default('Company')), " Account Head abbr correct");
// grand_total Calculated
- assert.ok(cur_frm.doc.grand_total==590, "Grad Total correct");
+ assert.ok(cur_frm.doc.grand_total==590, "Grand Total correct");
+
+ assert.ok(cur_frm.doc.payment_terms_template, "Payment Terms Template is correct");
+ assert.ok(cur_frm.doc.payment_schedule.length > 0, "Payment Term Schedule is not empty");
},
() => frappe.tests.click_button('Submit'),
@@ -40,4 +44,3 @@
() => done()
]);
});
-
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 50d2ce8..b3a143c 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -3,8 +3,9 @@
from __future__ import unicode_literals
import frappe
+
import unittest, copy, time
-from frappe.utils import nowdate, add_days, flt, cint
+from frappe.utils import nowdate, add_days, flt, getdate, cint
from frappe.model.dynamic_links import get_dynamic_link_map
from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry, get_qty_after_transaction
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import unlink_payment_on_cancel_of_invoice
@@ -58,6 +59,13 @@
self.assertRaises(frappe.CannotChangeConstantError, si.save)
+ def test_add_terms_after_save(self):
+ si = frappe.copy_doc(test_records[2])
+ si.insert()
+
+ self.assertTrue(si.payment_schedule)
+ self.assertEqual(getdate(si.payment_schedule[0].due_date), getdate(si.due_date))
+
def test_sales_invoice_calculation_base_currency(self):
si = frappe.copy_doc(test_records[2])
si.insert()
@@ -199,6 +207,7 @@
# additional discount
si.discount_amount = 100
si.apply_discount_on = 'Net Total'
+ si.payment_schedule = []
si.save()
@@ -211,6 +220,7 @@
# additional discount on grand total
si.discount_amount = 100
si.apply_discount_on = 'Grand Total'
+ si.payment_schedule = []
si.save()
@@ -546,7 +556,7 @@
def test_outstanding(self):
w = self.make()
- self.assertEquals(w.outstanding_amount, w.base_grand_total)
+ self.assertEquals(w.outstanding_amount, w.base_rounded_total)
def test_payment(self):
w = self.make()
@@ -560,7 +570,7 @@
jv.insert()
jv.submit()
- self.assertEquals(frappe.db.get_value("Sales Invoice", w.name, "outstanding_amount"), 161.8)
+ self.assertEquals(frappe.db.get_value("Sales Invoice", w.name, "outstanding_amount"), 162.0)
link_data = get_dynamic_link_map().get('Sales Invoice', [])
link_doctypes = [d.parent for d in link_data]
@@ -569,7 +579,7 @@
self.assertTrue(link_doctypes.index('GL Entry') > link_doctypes.index('Journal Entry Account'))
jv.cancel()
- self.assertEquals(frappe.db.get_value("Sales Invoice", w.name, "outstanding_amount"), 561.8)
+ self.assertEquals(frappe.db.get_value("Sales Invoice", w.name, "outstanding_amount"), 562.0)
def test_sales_invoice_gl_entry_without_perpetual_inventory(self):
si = frappe.copy_doc(test_records[1])
@@ -848,7 +858,7 @@
self.assertTrue(frappe.db.sql("""select name from `tabJournal Entry Account`
where reference_name=%s and credit_in_account_currency=300""", si.name))
- self.assertEqual(si.outstanding_amount, 261.8)
+ self.assertEqual(si.outstanding_amount, 262.0)
si.cancel()
@@ -932,20 +942,6 @@
self.assertEquals(si.get("items")[0].serial_no, dn.get("items")[0].serial_no)
- def test_invoice_due_date_against_customers_credit_days(self):
- # set customer's credit days
- frappe.db.set_value("Customer", "_Test Customer", "credit_days_based_on", "Fixed Days")
- frappe.db.set_value("Customer", "_Test Customer", "credit_days", 10)
-
- si = create_sales_invoice()
- self.assertEqual(si.due_date, add_days(nowdate(), 10))
-
- # set customer's credit days is last day of the next month
- frappe.db.set_value("Customer", "_Test Customer", "credit_days_based_on", "Last Day of the Next Month")
-
- si1 = create_sales_invoice(posting_date="2015-07-05")
- self.assertEqual(si1.due_date, "2015-08-31")
-
def test_return_sales_invoice(self):
set_perpetual_inventory()
make_stock_entry(item_code="_Test Item", target="_Test Warehouse - _TC", qty=50, basic_rate=100)
@@ -1152,7 +1148,8 @@
si.load_from_db()
#check outstanding after advance allocation
- self.assertEqual(flt(si.outstanding_amount), flt(si.grand_total - si.total_advance, si.precision("outstanding_amount")))
+ self.assertEqual(flt(si.outstanding_amount),
+ flt(si.rounded_total - si.total_advance, si.precision("outstanding_amount")))
#added to avoid Document has been modified exception
jv = frappe.get_doc("Journal Entry", jv.name)
@@ -1160,7 +1157,8 @@
si.load_from_db()
#check outstanding after advance cancellation
- self.assertEqual(flt(si.outstanding_amount), flt(si.grand_total + si.total_advance, si.precision("outstanding_amount")))
+ self.assertEqual(flt(si.outstanding_amount),
+ flt(si.rounded_total + si.total_advance, si.precision("outstanding_amount")))
def test_outstanding_amount_after_advance_payment_entry_cancelation(self):
pe = frappe.get_doc({
@@ -1199,7 +1197,8 @@
si.load_from_db()
#check outstanding after advance allocation
- self.assertEqual(flt(si.outstanding_amount), flt(si.grand_total - si.total_advance, si.precision("outstanding_amount")))
+ self.assertEqual(flt(si.outstanding_amount),
+ flt(si.rounded_total - si.total_advance, si.precision("outstanding_amount")))
#added to avoid Document has been modified exception
pe = frappe.get_doc("Payment Entry", pe.name)
@@ -1207,7 +1206,8 @@
si.load_from_db()
#check outstanding after advance cancellation
- self.assertEqual(flt(si.outstanding_amount), flt(si.grand_total + si.total_advance, si.precision("outstanding_amount")))
+ self.assertEqual(flt(si.outstanding_amount),
+ flt(si.rounded_total + si.total_advance, si.precision("outstanding_amount")))
def test_multiple_uom_in_selling(self):
frappe.db.sql("""delete from `tabItem Price`
@@ -1321,6 +1321,40 @@
})
si.insert()
return si
+
+ def test_gl_entry_based_on_payment_schedule(self):
+ si = create_sales_invoice(do_not_save=True, customer="_Test Customer P")
+ si.append("payment_schedule", {
+ "due_date": add_days(nowdate(), 15),
+ "payment_amount": 20,
+ "invoice_portion": 20.00
+ })
+ si.append("payment_schedule", {
+ "due_date": add_days(nowdate(), 45),
+ "payment_amount": 80,
+ "invoice_portion": 80.00
+ })
+
+ si.save()
+ si.submit()
+
+ gl_entries = frappe.db.sql("""select account, debit, credit, due_date
+ from `tabGL Entry` where voucher_type='Sales Invoice' and voucher_no=%s
+ order by account asc, debit asc""", si.name, as_dict=1)
+ self.assertTrue(gl_entries)
+
+ expected_gl_entries = sorted([
+ [si.debit_to, 20.0, 0.0, add_days(nowdate(), 15)],
+ [si.debit_to, 80.0, 0.0, add_days(nowdate(), 45)],
+ ["Sales - _TC", 0.0, 100.0, None]
+ ])
+
+ for i, gle in enumerate(sorted(gl_entries, key=lambda gle: gle.account)):
+ self.assertEquals(expected_gl_entries[i][0], gle.account)
+ self.assertEquals(expected_gl_entries[i][1], gle.debit)
+ self.assertEquals(expected_gl_entries[i][2], gle.credit)
+ self.assertEquals(getdate(expected_gl_entries[i][3]), getdate(gle.due_date))
+
def test_company_monthly_sales(self):
existing_current_month_sales = frappe.db.get_value("Company", "_Test Company", "total_monthly_sales")
@@ -1367,6 +1401,53 @@
self.assertEquals(expected_values[gle.account][1], gle.debit)
self.assertEquals(expected_values[gle.account][2], gle.credit)
+ def test_sales_invoice_with_shipping_rule(self):
+ from erpnext.accounts.doctype.shipping_rule.test_shipping_rule \
+ import create_shipping_rule
+
+ shipping_rule = create_shipping_rule(shipping_rule_type = "Selling", shipping_rule_name = "Shipping Rule - Sales Invoice Test")
+
+ si = frappe.copy_doc(test_records[2])
+
+ si.shipping_rule = shipping_rule.name
+ si.insert()
+
+ shipping_amount = 0.0
+ for condition in shipping_rule.get("conditions"):
+ if not condition.to_value or (flt(condition.from_value) <= si.net_total <= flt(condition.to_value)):
+ shipping_amount = condition.shipping_amount
+
+ shipping_charge = {
+ "doctype": "Sales Taxes and Charges",
+ "category": "Valuation and Total",
+ "charge_type": "Actual",
+ "account_head": shipping_rule.account,
+ "cost_center": shipping_rule.cost_center,
+ "tax_amount": shipping_amount,
+ "description": shipping_rule.name
+ }
+ si.append("taxes", shipping_charge)
+ si.save()
+
+ self.assertEquals(si.net_total, 1250)
+
+ self.assertEquals(si.total_taxes_and_charges, 577.05)
+ self.assertEquals(si.grand_total, 1827.05)
+
+ def test_create_invoice_without_terms(self):
+ si = create_sales_invoice(do_not_save=1)
+ self.assertFalse(si.get('payment_schedule'))
+
+ si.insert()
+ self.assertTrue(si.get('payment_schedule'))
+
+ def test_duplicate_due_date_in_terms(self):
+ si = create_sales_invoice(do_not_save=1)
+ si.append('payment_schedule', dict(due_date='2017-01-01', invoice_portion=50.00, payment_amount=50))
+ si.append('payment_schedule', dict(due_date='2017-01-01', invoice_portion=50.00, payment_amount=50))
+
+ self.assertRaises(frappe.ValidationError, si.insert)
+
def create_sales_invoice(**args):
si = frappe.new_doc("Sales Invoice")
args = frappe._dict(args)
@@ -1400,6 +1481,11 @@
si.insert()
if not args.do_not_submit:
si.submit()
+ else:
+ si.payment_schedule = []
+ else:
+ si.payment_schedule = []
+
return si
test_dependencies = ["Journal Entry", "Contact", "Address"]
diff --git a/erpnext/accounts/doctype/sales_invoice/tests/test_sales_invoice_with_payment.js b/erpnext/accounts/doctype/sales_invoice/tests/test_sales_invoice_with_payment.js
index 736443e..14c0d55 100644
--- a/erpnext/accounts/doctype/sales_invoice/tests/test_sales_invoice_with_payment.js
+++ b/erpnext/accounts/doctype/sales_invoice/tests/test_sales_invoice_with_payment.js
@@ -19,7 +19,8 @@
{contact_person: 'Contact 1-Test Customer 1'},
{taxes_and_charges: 'TEST In State GST'},
{tc_name: 'Test Term 1'},
- {terms: 'This is Test'}
+ {terms: 'This is Test'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => cur_frm.save(),
@@ -43,6 +44,7 @@
() => { cur_frm.set_value('paid_to','Cash - '+frappe.get_abbr(frappe.defaults.get_default('Company')));},
() => {cur_frm.set_value('reference_no','TEST1234');},
() => {cur_frm.set_value('reference_date',frappe.datetime.add_days(frappe.datetime.nowdate(), 0));},
+ () => cur_frm.set_value("payment_schedule", []),
() => cur_frm.save(),
() => {
// get payment details
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
index 9f6c003..7e3ccc2 100644
--- a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "INVTD.######",
@@ -12,6 +13,7 @@
"editable_grid": 1,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -22,7 +24,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Type",
"length": 0,
"no_copy": 0,
@@ -33,6 +37,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -40,6 +45,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -51,7 +57,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Reference Row #",
"length": 0,
"no_copy": 0,
@@ -61,6 +69,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -68,6 +77,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -78,7 +88,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Account Head",
"length": 0,
"no_copy": 0,
@@ -89,6 +101,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 1,
@@ -96,6 +109,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -107,7 +121,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Cost Center",
"length": 0,
"no_copy": 0,
@@ -118,6 +134,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -125,6 +142,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -135,13 +153,16 @@
"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,
@@ -150,17 +171,20 @@
"width": "50%"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "description",
- "fieldtype": "Text Editor",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Description",
"length": 0,
"no_copy": 0,
@@ -171,6 +195,7 @@
"print_hide_if_no_value": 0,
"print_width": "300px",
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -179,6 +204,7 @@
"width": "300px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -190,7 +216,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Is this Tax included in Basic Rate?",
"length": 0,
"no_copy": 0,
@@ -199,6 +227,7 @@
"print_hide_if_no_value": 0,
"print_width": "150px",
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 1,
"reqd": 0,
"search_index": 0,
@@ -207,6 +236,7 @@
"width": "150px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -217,7 +247,9 @@
"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,
@@ -225,6 +257,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -232,6 +265,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -242,7 +276,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Rate",
"length": 0,
"no_copy": 0,
@@ -252,6 +288,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -259,6 +296,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -269,7 +307,9 @@
"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,
@@ -277,6 +317,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -284,6 +325,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -294,7 +336,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Amount",
"length": 0,
"no_copy": 0,
@@ -304,6 +348,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -311,6 +356,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -321,7 +367,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Total",
"length": 0,
"no_copy": 0,
@@ -331,6 +379,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -338,6 +387,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -348,7 +398,9 @@
"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 Amount After Discount Amount",
"length": 0,
"no_copy": 0,
@@ -358,6 +410,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -365,6 +418,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -375,7 +429,9 @@
"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,
@@ -383,6 +439,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -390,6 +447,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -400,7 +458,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Amount (Company Currency)",
"length": 0,
"no_copy": 0,
@@ -411,6 +471,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -418,6 +479,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -428,7 +490,9 @@
"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 (Company Currency)",
"length": 0,
"no_copy": 0,
@@ -439,6 +503,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -446,6 +511,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -457,7 +523,9 @@
"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 Amount After Discount Amount (Company Currency)",
"length": 0,
"no_copy": 0,
@@ -466,6 +534,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -473,6 +542,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -483,7 +553,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Item Wise Tax Detail",
"length": 0,
"no_copy": 0,
@@ -493,6 +565,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -500,6 +573,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -510,7 +584,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 1,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Parenttype",
"length": 0,
"no_copy": 0,
@@ -520,6 +596,7 @@
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 1,
@@ -527,17 +604,17 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 1,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2016-08-26 03:08:03.235381",
+ "modified": "2017-11-15 19:24:39.351600",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Taxes and Charges",
@@ -546,6 +623,8 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_order": "ASC",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/shipping_rule/shipping_rule.js b/erpnext/accounts/doctype/shipping_rule/shipping_rule.js
index 17f2083..53ee08a 100644
--- a/erpnext/accounts/doctype/shipping_rule/shipping_rule.js
+++ b/erpnext/accounts/doctype/shipping_rule/shipping_rule.js
@@ -1,3 +1,15 @@
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
+frappe.ui.form.on('Shipping Rule', {
+ refresh: function(frm) {
+ frm.trigger('toggle_reqd');
+ },
+ calculate_based_on: function(frm) {
+ frm.trigger('toggle_reqd');
+ },
+ toggle_reqd: function(frm) {
+ frm.toggle_reqd("shipping_amount", frm.doc.calculate_based_on === 'Fixed');
+ frm.toggle_reqd("conditions", frm.doc.calculate_based_on !== 'Fixed');
+ }
+});
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/shipping_rule/shipping_rule.json b/erpnext/accounts/doctype/shipping_rule/shipping_rule.json
index a8788a1..13b3265 100644
--- a/erpnext/accounts/doctype/shipping_rule/shipping_rule.json
+++ b/erpnext/accounts/doctype/shipping_rule/shipping_rule.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:label",
@@ -12,6 +13,7 @@
"editable_grid": 0,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -23,7 +25,8 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
- "in_list_view": 1,
+ "in_global_search": 0,
+ "in_list_view": 0,
"in_standard_filter": 0,
"label": "Shipping Rule Label",
"length": 0,
@@ -40,6 +43,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -50,6 +54,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Disabled",
@@ -68,134 +73,53 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "Net Total",
- "fieldname": "calculate_based_on",
+ "fieldname": "column_break_4",
+ "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": "shipping_rule_type",
"fieldtype": "Select",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_list_view": 1,
- "in_standard_filter": 1,
- "label": "Calculate Based On",
- "length": 0,
- "no_copy": 0,
- "options": "Net Total\nNet Weight",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.disabled",
- "fieldname": "rule_conditions_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": "Shipping Rule Conditions",
+ "label": "Shipping Rule Type",
"length": 0,
"no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "conditions",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Shipping Rule Conditions",
- "length": 0,
- "no_copy": 0,
- "options": "Shipping Rule Condition",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.disabled",
- "fieldname": "section_break_6",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Valid for Countries",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "worldwide_shipping",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Worldwide Shipping",
- "length": 0,
- "no_copy": 0,
+ "options": "Selling\nBuying",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -209,36 +133,7 @@
"unique": 0
},
{
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:!doc.worldwide_shipping",
- "fieldname": "countries",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Valid for Countries",
- "length": 0,
- "no_copy": 0,
- "options": "Shipping Rule Country",
- "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,
@@ -250,8 +145,10 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
+ "label": "Accounting",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -266,6 +163,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -276,6 +174,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Company",
@@ -294,6 +193,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -304,6 +204,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -320,6 +221,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -330,6 +232,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Shipping Account",
@@ -348,6 +251,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -358,6 +262,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Cost Center",
@@ -374,20 +279,264 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "shipping_amount_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Fixed",
+ "fieldname": "calculate_based_on",
+ "fieldtype": "Select",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 1,
+ "label": "Calculate Based On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Fixed\nNet Total",
+ "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_8",
+ "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.calculate_based_on==='Fixed'",
+ "fieldname": "shipping_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Amount",
+ "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,
+ "collapsible_depends_on": "",
+ "columns": 0,
+ "depends_on": "eval:doc.calculate_based_on!=='Fixed'",
+ "fieldname": "rule_conditions_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": "Shipping Rule Conditions",
+ "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": "conditions",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Rule Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Shipping Rule Condition",
+ "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": "section_break_6",
+ "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": "Restrict to Countries",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "countries",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Valid for Countries",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Shipping Rule Country",
+ "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-truck",
"idx": 1,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2016-11-07 05:18:06.472734",
+ "modified": "2017-11-17 13:10:34.302259",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Shipping Rule",
@@ -403,7 +552,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
- "is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -424,7 +572,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
- "is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -445,7 +592,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
- "is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -466,7 +612,6 @@
"export": 0,
"if_owner": 0,
"import": 0,
- "is_custom": 0,
"permlevel": 0,
"print": 1,
"read": 1,
@@ -481,6 +626,8 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_order": "ASC",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/shipping_rule/shipping_rule.py b/erpnext/accounts/doctype/shipping_rule/shipping_rule.py
index a47df2d..259b1a8 100644
--- a/erpnext/accounts/doctype/shipping_rule/shipping_rule.py
+++ b/erpnext/accounts/doctype/shipping_rule/shipping_rule.py
@@ -15,18 +15,10 @@
class ShippingRule(Document):
def validate(self):
- self.validate_value("calculate_based_on", "in", ["Net Total", "Net Weight"])
- self.conditions = self.get("conditions")
self.validate_from_to_values()
self.sort_shipping_rule_conditions()
self.validate_overlapping_shipping_rule_conditions()
- if self.worldwide_shipping:
- self.countries = []
-
- elif not len([d.country for d in self.countries if d.country]):
- frappe.throw(_("Please specify a country for this Shipping Rule or check Worldwide Shipping"))
-
def validate_from_to_values(self):
zero_to_values = []
@@ -47,6 +39,76 @@
throw(_('There can only be one Shipping Rule Condition with 0 or blank value for "To Value"'),
ManyBlankToValuesError)
+ def apply(self, doc):
+ '''Apply shipping rule on given doc. Called from accounts controller'''
+
+ shipping_amount = 0.0
+ by_value = False
+
+ self.validate_countries(doc)
+
+ if self.calculate_based_on == 'Net Total':
+ value = doc.base_net_total
+ by_value = True
+
+ elif self.calculate_based_on == 'Fixed':
+ shipping_amount = self.shipping_amount
+
+ # shipping amount by value, apply conditions
+ if by_value:
+ shipping_amount = self.get_shipping_amount_from_rules(value)
+
+ # convert to order currency
+ if doc.currency != doc.company_currency:
+ shipping_amount = flt(shipping_amount / doc.conversion_rate, 2)
+
+ self.add_shipping_rule_to_tax_table(doc, shipping_amount)
+
+ def get_shipping_amount_from_rules(self, value):
+ for condition in self.get("conditions"):
+ if not condition.to_value or (flt(condition.from_value) <= value <= flt(condition.to_value)):
+ return condition.shipping_amount
+
+ return 0.0
+
+ def validate_countries(self, doc):
+ # validate applicable countries
+ if self.countries:
+ shipping_country = doc.get_shipping_address().get('country')
+ if not shipping_country:
+ frappe.throw(_('Shipping Address does not have country, which is required for this Shipping Rule'))
+ if shipping_country not in [d.country for d in self.countries]:
+ frappe.throw(_('Shipping rule not applicable for country {0}'.format(shipping_country)))
+
+ def add_shipping_rule_to_tax_table(self, doc, shipping_amount):
+ shipping_charge = {
+ "charge_type": "Actual",
+ "account_head": self.account,
+ "cost_center": self.cost_center
+ }
+ if self.shipping_rule_type == "Selling":
+ # check if not applied on purchase
+ if not doc.meta.get_field('taxes').options == 'Sales Taxes and Charges':
+ frappe.throw(_('Shipping rule only applicable for Selling'))
+ shipping_charge["doctype"] = "Sales Taxes and Charges"
+ else:
+ # check if not applied on sales
+ if not doc.meta.get_field('taxes').options == 'Purchase Taxes and Charges':
+ frappe.throw(_('Shipping rule only applicable for Buying'))
+
+ shipping_charge["doctype"] = "Purchase Taxes and Charges"
+ shipping_charge["category"] = "Valuation and Total"
+ shipping_charge["add_deduct_tax"] = "Add"
+
+ existing_shipping_charge = doc.get("taxes", filters=shipping_charge)
+ if existing_shipping_charge:
+ # take the last record found
+ existing_shipping_charge[-1].tax_amount = shipping_amount
+ else:
+ shipping_charge["tax_amount"] = shipping_amount
+ shipping_charge["description"] = self.label
+ doc.append("taxes", shipping_charge)
+
def sort_shipping_rule_conditions(self):
"""Sort Shipping Rule Conditions based on increasing From Value"""
self.shipping_rules_conditions = sorted(self.conditions, key=lambda d: flt(d.from_value))
diff --git a/erpnext/accounts/doctype/shipping_rule/test_records.json b/erpnext/accounts/doctype/shipping_rule/test_records.json
index a271009..26b3737 100644
--- a/erpnext/accounts/doctype/shipping_rule/test_records.json
+++ b/erpnext/accounts/doctype/shipping_rule/test_records.json
@@ -7,6 +7,7 @@
"doctype": "Shipping Rule",
"label": "_Test Shipping Rule",
"name": "_Test Shipping Rule",
+ "shipping_rule_type": "Selling",
"conditions": [
{
"doctype": "Shipping Rule Condition",
@@ -26,9 +27,12 @@
"doctype": "Shipping Rule Condition",
"from_value": 201,
"parentfield": "conditions",
- "shipping_amount": 0.0
+ "shipping_amount": 200.0
}
],
+ "countries": [
+ {"country": "India"}
+ ],
"worldwide_shipping": 1
},
{
@@ -73,6 +77,7 @@
"doctype": "Shipping Rule",
"label": "_Test Shipping Rule - Rest of the World",
"name": "_Test Shipping Rule - Rest of the World",
+ "shipping_rule_type": "Buying",
"conditions": [
{
"doctype": "Shipping Rule Condition",
@@ -95,6 +100,9 @@
"shipping_amount": 1500.0
}
],
- "worldwide_shipping": 1
+ "worldwide_shipping": 1,
+ "countries": [
+ {"country": "Germany"}
+ ]
}
]
diff --git a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js
index 9c72aeb..0201f76 100644
--- a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js
+++ b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.js
@@ -7,6 +7,8 @@
() => {
return frappe.tests.make("Shipping Rule", [
{label: "Next Day Shipping"},
+ {shipping_rule_type: "Selling"},
+ {calculate_based_on: 'Net Total'},
{conditions:[
[
{from_value:1},
diff --git a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
index 76b1d9e..582ecb2 100644
--- a/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
+++ b/erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
@@ -36,3 +36,38 @@
shipping_rule.get("conditions")[1].from_value = range_b[0]
shipping_rule.get("conditions")[1].to_value = range_b[1]
self.assertRaises(OverlappingConditionError, shipping_rule.insert)
+
+def create_shipping_rule(shipping_rule_type, shipping_rule_name):
+ sr = frappe.new_doc("Shipping Rule")
+ sr.account = "_Test Account Shipping Charges - _TC"
+ sr.calculate_based_on = "Net Total"
+ sr.company = "_Test Company"
+ sr.cost_center = "_Test Cost Center - _TC"
+ sr.label = shipping_rule_name
+ sr.name = shipping_rule_name
+ sr.shipping_rule_type = shipping_rule_type
+
+ sr.append("conditions", {
+ "doctype": "Shipping Rule Condition",
+ "from_value": 0,
+ "parentfield": "conditions",
+ "shipping_amount": 50.0,
+ "to_value": 100
+ })
+ sr.append("conditions", {
+ "doctype": "Shipping Rule Condition",
+ "from_value": 101,
+ "parentfield": "conditions",
+ "shipping_amount": 100.0,
+ "to_value": 200
+ })
+ sr.append("conditions", {
+ "doctype": "Shipping Rule Condition",
+ "from_value": 201,
+ "parentfield": "conditions",
+ "shipping_amount": 200.0,
+ "to_value": 2000
+ })
+ sr.insert(ignore_permissions=True)
+ sr.submit()
+ return sr
diff --git a/erpnext/accounts/doctype/shipping_rule/tests/test_shipping_rule_for_buying.js b/erpnext/accounts/doctype/shipping_rule/tests/test_shipping_rule_for_buying.js
new file mode 100644
index 0000000..ab1b77c
--- /dev/null
+++ b/erpnext/accounts/doctype/shipping_rule/tests/test_shipping_rule_for_buying.js
@@ -0,0 +1,37 @@
+QUnit.module('Shipping Rule');
+
+QUnit.test("test Shipping Rule", function(assert) {
+ assert.expect(1);
+ let done = assert.async();
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make("Shipping Rule", [
+ {label: "Two Day Shipping"},
+ {shipping_rule_type: "Buying"},
+ {fixed_shipping_amount: 0},
+ {conditions:[
+ [
+ {from_value:1},
+ {to_value:200},
+ {shipping_amount:100}
+ ],
+ [
+ {from_value:201},
+ {to_value:3000},
+ {shipping_amount:200}
+ ],
+ ]},
+ {countries:[
+ [
+ {country:'India'}
+ ]
+ ]},
+ {account:'Accounts Payable - '+frappe.get_abbr(frappe.defaults.get_default("Company"))},
+ {cost_center:'Main - '+frappe.get_abbr(frappe.defaults.get_default("Company"))}
+ ]);
+ },
+ () => {assert.ok(cur_frm.doc.name=='Two Day Shipping');},
+ () => done()
+ ]);
+});
+
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index c575d59..d370c49 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -3,7 +3,7 @@
from __future__ import unicode_literals
import frappe, erpnext
-from frappe.utils import flt, cstr, cint
+from frappe.utils import flt, cstr, cint, getdate
from frappe import _
from frappe.model.meta import get_field_precision
from erpnext.accounts.doctype.budget.budget import validate_expense_against_budget
@@ -75,7 +75,8 @@
and cstr(e.get('against_voucher'))==cstr(gle.get('against_voucher')) \
and cstr(e.get('against_voucher_type')) == cstr(gle.get('against_voucher_type')) \
and cstr(e.get('cost_center')) == cstr(gle.get('cost_center')) \
- and cstr(e.get('project')) == cstr(gle.get('project')):
+ and cstr(e.get('project')) == cstr(gle.get('project')) \
+ and getdate(e.get('due_date')) == getdate(gle.get('due_date')):
return e
def save_entries(gl_map, adv_adj, update_outstanding, from_repost=False):
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index 6b58033..558dd8d 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -1505,11 +1505,15 @@
me.make_menu_list()
}, "fa fa-plus")
- if (this.frm.doc.docstatus == 1) {
+ if (this.frm.doc.docstatus == 1 || this.pos_profile_data["allow_print_before_pay"]) {
this.page.set_secondary_action(__("Print"), function () {
+ me.create_invoice();
var html = frappe.render(me.print_template_data, me.frm.doc)
me.print_document(html)
})
+ }
+
+ if (this.frm.doc.docstatus == 1) {
this.page.add_menu_item(__("Email"), function () {
me.email_prompt()
})
diff --git a/erpnext/accounts/party.py b/erpnext/accounts/party.py
index e6887ba..7bccfe8 100644
--- a/erpnext/accounts/party.py
+++ b/erpnext/accounts/party.py
@@ -9,7 +9,7 @@
from frappe.defaults import get_user_permissions
from frappe.model.utils import get_fetch_values
from frappe.utils import (add_days, getdate, formatdate, get_first_day, date_diff,
- add_years, get_timestamp, nowdate, flt)
+ add_years, get_timestamp, nowdate, flt, add_months, get_last_day)
from frappe.contacts.doctype.address.address import (get_address_display,
get_default_address, get_company_address)
from frappe.contacts.doctype.contact.contact import get_contact_details, get_default_contact
@@ -51,6 +51,7 @@
set_other_values(out, party, party_type)
set_price_list(out, party, party_type, price_list)
out["taxes_and_charges"] = set_taxes(party.name, party_type, posting_date, company, out.customer_group, out.supplier_type)
+ out["payment_terms_template"] = get_pyt_term_template(party.name, party_type)
if not out.get("currency"):
out["currency"] = currency
@@ -163,7 +164,7 @@
out = {
party_type.lower(): party,
account_fieldname : account,
- "due_date": get_due_date(posting_date, party_type, party, company)
+ "due_date": get_due_date(posting_date, party_type, party)
}
return out
@@ -262,51 +263,54 @@
if doc.get("default_currency") and party_account_currency and company_default_currency:
if doc.default_currency != party_account_currency and doc.default_currency != company_default_currency:
- frappe.throw(_("Billing currency must be equal to either default comapany's currency or party account currency"))
+ frappe.throw(_("Billing currency must be equal to either default company's currency or party account currency"))
+
@frappe.whitelist()
-def get_due_date(posting_date, party_type, party, company):
- """Set Due Date = Posting Date + Credit Days"""
+def get_due_date(posting_date, party_type, party):
+ """Get due date from `Payment Terms Template`"""
due_date = None
if posting_date and party:
due_date = posting_date
- credit_days_based_on, credit_days = get_credit_days(party_type, party, company)
- if credit_days_based_on == "Fixed Days" and credit_days:
- due_date = add_days(posting_date, credit_days)
- elif credit_days_based_on == "Last Day of the Next Month":
- due_date = (get_first_day(posting_date, 0, 2) + datetime.timedelta(-1)).strftime("%Y-%m-%d")
+ template_name = get_pyt_term_template(party, party_type)
+ if template_name:
+ due_date = get_due_date_from_template(template_name, posting_date).strftime("%Y-%m-%d")
+ else:
+ if party_type == "Supplier":
+ supplier_type = frappe.db.get_value(party_type, party, fieldname="supplier_type")
+ template_name = frappe.db.get_value("Supplier Type", supplier_type, fieldname="payment_terms")
+ if template_name:
+ due_date = get_due_date_from_template(template_name, posting_date).strftime("%Y-%m-%d")
return due_date
-def get_credit_days(party_type, party, company):
- credit_days = 0
- if party_type and party:
- if party_type == "Customer":
- credit_days_based_on, credit_days, customer_group = \
- frappe.db.get_value(party_type, party, ["credit_days_based_on", "credit_days", "customer_group"])
+
+def get_due_date_from_template(template_name, posting_date):
+ """
+ Inspects all `Payment Term`s from the a `Payment Terms Template` and returns the due
+ date after considering all the `Payment Term`s requirements.
+ :param template_name: Name of the `Payment Terms Template`
+ :return: String representing the calculated due date
+ """
+ due_date = getdate(posting_date)
+ template = frappe.get_doc('Payment Terms Template', template_name)
+
+ for term in template.terms:
+ if term.due_date_based_on == 'Day(s) after invoice date':
+ due_date = max(due_date, add_days(due_date, term.credit_days))
+ elif term.due_date_based_on == 'Day(s) after the end of the invoice month':
+ due_date = max(due_date, add_days(get_last_day(due_date), term.credit_days))
else:
- credit_days_based_on, credit_days, supplier_type = \
- frappe.db.get_value(party_type, party, ["credit_days_based_on", "credit_days", "supplier_type"])
+ due_date = max(due_date, add_months(get_last_day(due_date), term.credit_months))
- if not credit_days_based_on:
- if party_type == "Customer" and customer_group:
- credit_days_based_on, credit_days = \
- frappe.db.get_value("Customer Group", customer_group, ["credit_days_based_on", "credit_days"])
- elif party_type == "Supplier" and supplier_type:
- credit_days_based_on, credit_days = \
- frappe.db.get_value("Supplier Type", supplier_type, ["credit_days_based_on", "credit_days"])
+ return due_date
- if not credit_days_based_on:
- credit_days_based_on, credit_days = \
- frappe.db.get_value("Company", company, ["credit_days_based_on", "credit_days"])
- return credit_days_based_on, credit_days
-
-def validate_due_date(posting_date, due_date, party_type, party, company):
+def validate_due_date(posting_date, due_date, party_type, party):
if getdate(due_date) < getdate(posting_date):
frappe.throw(_("Due Date cannot be before Posting Date"))
else:
- default_due_date = get_due_date(posting_date, party_type, party, company)
+ default_due_date = get_due_date(posting_date, party_type, party)
if not default_due_date:
return
@@ -316,7 +320,8 @@
msgprint(_("Note: Due / Reference Date exceeds allowed customer credit days by {0} day(s)")
.format(date_diff(due_date, default_due_date)))
else:
- frappe.throw(_("Due / Reference Date cannot be after {0}").format(formatdate(default_due_date)))
+ frappe.throw(_("Due / Reference Date cannot be after {0}")
+ .format(formatdate(default_due_date)))
@frappe.whitelist()
def set_taxes(party, party_type, posting_date, company, customer_group=None, supplier_type=None,
@@ -353,6 +358,16 @@
return get_tax_template(posting_date, args)
+
+@frappe.whitelist()
+def get_pyt_term_template(party_name, party_type):
+ template = None
+ if party_type in ('Customer', 'Supplier'):
+ template = frappe.db.get_value(party_type, party_name, fieldname='payment_terms')
+
+ return template
+
+
def validate_party_frozen_disabled(party_type, party_name):
if party_type and party_name:
if party_type in ("Customer", "Supplier"):
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.html b/erpnext/accounts/report/accounts_receivable/accounts_receivable.html
index 8fafce6..9d872a4 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.html
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.html
@@ -36,8 +36,14 @@
<br>{%= data[i][__("Voucher No")] %}</td>
<td>
{% if(!(filters.customer || filters.supplier)) { %}
- {%= data[i][__("Customer Name")] || data[i][__("Customer")] || data[i][__("Supplier Name")] || data[i][__("Supplier")] %}<br>{%= __("Remarks") %}:
+ {%= data[i][__("Customer")] || data[i][__("Supplier")] %}
+ {% if(data[i][__("Customer Name")] && data[i][__("Customer Name")] != data[i][__("Customer")]) { %}
+ <br> {%= data[i][__("Customer Name")] %}
+ {% } else if(data[i][__("Supplier Name")] != data[i][__("Supplier")]) { %}
+ <br> {%= data[i][__("Supplier Name")] %}
+ {% } %}
{% } %}
+ <br>{%= __("Remarks") %}:
{%= data[i][__("Remarks")] %}
</td>
<td style="text-align: right">
@@ -66,8 +72,13 @@
<td>
{% if(!(filters.customer || filters.supplier)) { %}
{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
- <br>{%= __("Remarks") %}:
+ {% if(data[i][__("Customer Name")] && data[i][__("Customer Name")] != data[i][__("Customer")]) { %}
+ <br> {%= data[i][__("Customer Name")] %}
+ {% } else if(data[i][__("Supplier Name")] != data[i][__("Supplier")]) { %}
+ <br> {%= data[i][__("Supplier Name")] %}
+ {% } %}
{% } %}
+ <br>{%= __("Remarks") %}:
{%= data[i][__("Remarks")] %}
</td>
{% } else { %}
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index ba5b7f2..300e6a8 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -113,7 +113,7 @@
row += [self.get_party_name(gle.party_type, gle.party)]
# get due date
- due_date = voucher_details.get(gle.voucher_no, {}).get("due_date", "")
+ due_date = gle.due_date or voucher_details.get(gle.voucher_no, {}).get("due_date", "")
row += [gle.voucher_type, gle.voucher_no, due_date]
@@ -162,8 +162,7 @@
def get_entries_till(self, report_date, party_type):
# returns a generator
- return (e for e in self.get_gl_entries(party_type)
- if getdate(e.posting_date) <= report_date)
+ return (e for e in self.get_gl_entries(party_type) if getdate(e.posting_date) <= report_date)
def is_receivable_or_payable(self, gle, dr_or_cr, future_vouchers):
return (
@@ -189,7 +188,8 @@
reverse_dr_or_cr = "credit" if dr_or_cr=="debit" else "debit"
for e in self.get_gl_entries_for(gle.party, gle.party_type, gle.voucher_type, gle.voucher_no):
- if getdate(e.posting_date) <= report_date and e.name!=gle.name:
+ if getdate(e.posting_date) <= report_date and e.name!=gle.name \
+ and (not gle.due_date or getdate(e.due_date) == getdate(gle.due_date)):
amount = flt(e.get(reverse_dr_or_cr)) - flt(e.get(dr_or_cr))
if e.voucher_no not in return_entries:
payment_amount += amount
@@ -250,12 +250,12 @@
else:
select_fields = "sum(debit) as debit, sum(credit) as credit"
- self.gl_entries = frappe.db.sql("""select name, posting_date, account, party_type, party,
- voucher_type, voucher_no, against_voucher_type, against_voucher,
+ self.gl_entries = frappe.db.sql("""select name, posting_date, account, party_type, party,
+ voucher_type, voucher_no, against_voucher_type, against_voucher, due_date,
account_currency, remarks, {0}
from `tabGL Entry`
where docstatus < 2 and party_type=%s and (party is not null and party != '') {1}
- group by voucher_type, voucher_no, against_voucher_type, against_voucher, party
+ group by voucher_type, voucher_no, against_voucher_type, against_voucher, party, due_date
order by posting_date, party"""
.format(select_fields, conditions), values, as_dict=True)
diff --git a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
index 9892e03..205d43f 100644
--- a/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
+++ b/erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
@@ -189,7 +189,9 @@
for parent, description, item_wise_tax_detail, charge_type, tax_amount in tax_details:
if description not in tax_columns and tax_amount:
- tax_columns.append(description)
+ # as description is text editor earlier and markup can break the column convention in reports
+ from frappe.utils.xlsxutils import handle_html
+ tax_columns.append(handle_html(description))
if item_wise_tax_detail:
try:
diff --git a/erpnext/accounts/report/sales_register/sales_register.js b/erpnext/accounts/report/sales_register/sales_register.js
index 0495976..db74626 100644
--- a/erpnext/accounts/report/sales_register/sales_register.js
+++ b/erpnext/accounts/report/sales_register/sales_register.js
@@ -34,6 +34,24 @@
"label": __("Mode of Payment"),
"fieldtype": "Link",
"options": "Mode of Payment"
+ },
+ {
+ "fieldname":"owner",
+ "label": __("Owner"),
+ "fieldtype": "Link",
+ "options": "User"
+ },
+ {
+ "fieldname":"cost_center",
+ "label": __("Cost Center"),
+ "fieldtype": "Link",
+ "options": "Cost Center"
+ },
+ {
+ "fieldname":"warehouse",
+ "label": __("Warehouse"),
+ "fieldtype": "Link",
+ "options": "Warehouse"
}
]
}
diff --git a/erpnext/accounts/report/sales_register/sales_register.py b/erpnext/accounts/report/sales_register/sales_register.py
index c471b8b..ace8d54 100644
--- a/erpnext/accounts/report/sales_register/sales_register.py
+++ b/erpnext/accounts/report/sales_register/sales_register.py
@@ -22,7 +22,8 @@
invoice_income_map = get_invoice_income_map(invoice_list)
invoice_income_map, invoice_tax_map = get_invoice_tax_map(invoice_list,
invoice_income_map, income_accounts)
-
+ #Cost Center & Warehouse Map
+ invoice_cc_wh_map = get_invoice_cc_wh_map(invoice_list)
invoice_so_dn_map = get_invoice_so_dn_map(invoice_list)
customers = list(set([inv.customer for inv in invoice_list]))
customer_map = get_customer_details(customers)
@@ -34,6 +35,8 @@
# invoice details
sales_order = list(set(invoice_so_dn_map.get(inv.name, {}).get("sales_order", [])))
delivery_note = list(set(invoice_so_dn_map.get(inv.name, {}).get("delivery_note", [])))
+ cost_center = list(set(invoice_cc_wh_map.get(inv.name, {}).get("cost_center", [])))
+ warehouse = list(set(invoice_cc_wh_map.get(inv.name, {}).get("warehouse", [])))
customer_details = customer_map.get(inv.customer, {})
row = [
@@ -48,8 +51,9 @@
customer_details.get("customer_group"),
customer_details.get("territory"),
inv.debit_to, ", ".join(mode_of_payments.get(inv.name, [])),
- inv.project, inv.remarks,
- ", ".join(sales_order), ", ".join(delivery_note), company_currency
+ inv.project, inv.owner, inv.remarks,
+ ", ".join(sales_order), ", ".join(delivery_note),", ".join(cost_center),
+ ", ".join(warehouse), company_currency
]
# map income values
base_net_total = 0
@@ -89,8 +93,9 @@
columns +=[
_("Customer Group") + ":Link/Customer Group:120", _("Territory") + ":Link/Territory:80",
_("Receivable Account") + ":Link/Account:120", _("Mode of Payment") + "::120",
- _("Project") +":Link/Project:80", _("Remarks") + "::150",
+ _("Project") +":Link/Project:80", _("Owner") + "::150", _("Remarks") + "::150",
_("Sales Order") + ":Link/Sales Order:100", _("Delivery Note") + ":Link/Delivery Note:100",
+ _("Cost Center") + ":Link/Cost Center:100", _("Warehouse") + ":Link/Warehouse:100",
{
"fieldname": "currency",
"label": _("Currency"),
@@ -133,11 +138,23 @@
if filters.get("from_date"): conditions += " and posting_date >= %(from_date)s"
if filters.get("to_date"): conditions += " and posting_date <= %(to_date)s"
+ if filters.get("owner"): conditions += " and owner = %(owner)s"
+
if filters.get("mode_of_payment"):
conditions += """ and exists(select name from `tabSales Invoice Payment`
where parent=`tabSales Invoice`.name
and ifnull(`tabSales Invoice Payment`.mode_of_payment, '') = %(mode_of_payment)s)"""
+ if filters.get("cost_center"):
+ conditions += """ and exists(select name from `tabSales Invoice Item`
+ where parent=`tabSales Invoice`.name
+ and ifnull(`tabSales Invoice Item`.cost_center, '') = %(cost_center)s)"""
+
+ if filters.get("warehouse"):
+ conditions += """ and exists(select name from `tabSales Invoice Item`
+ where parent=`tabSales Invoice`.name
+ and ifnull(`tabSales Invoice Item`.warehouse, '') = %(warehouse)s)"""
+
return conditions
def get_invoices(filters, additional_query_columns):
@@ -145,7 +162,7 @@
additional_query_columns = ', ' + ', '.join(additional_query_columns)
conditions = get_conditions(filters)
- return frappe.db.sql("""select name, posting_date, debit_to, project, customer, customer_name, remarks,
+ return frappe.db.sql("""select name, posting_date, debit_to, project, customer, customer_name, owner, remarks,
base_net_total, base_grand_total, base_rounded_total, outstanding_amount {0}
from `tabSales Invoice`
where docstatus = 1 %s order by posting_date desc, name desc""".format(additional_query_columns or '') %
@@ -206,6 +223,24 @@
return invoice_so_dn_map
+def get_invoice_cc_wh_map(invoice_list):
+ si_items = frappe.db.sql("""select parent, cost_center, warehouse
+ from `tabSales Invoice Item` where parent in (%s)
+ and (ifnull(cost_center, '') != '' or ifnull(warehouse, '') != '')""" %
+ ', '.join(['%s']*len(invoice_list)), tuple([inv.name for inv in invoice_list]), as_dict=1)
+
+ invoice_cc_wh_map = {}
+ for d in si_items:
+ if d.cost_center:
+ invoice_cc_wh_map.setdefault(d.parent, frappe._dict()).setdefault(
+ "cost_center", []).append(d.cost_center)
+
+ if d.warehouse:
+ invoice_cc_wh_map.setdefault(d.parent, frappe._dict()).setdefault(
+ "warehouse", []).append(d.warehouse)
+
+ return invoice_cc_wh_map
+
def get_customer_details(customers):
customer_map = {}
for cust in frappe.db.sql("""select name, territory, customer_group from `tabCustomer`
@@ -225,4 +260,4 @@
for d in inv_mop:
mode_of_payments.setdefault(d.parent, []).append(d.mode_of_payment)
- return mode_of_payments
+ return mode_of_payments
\ No newline at end of file
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index a8fd5e9..ba5d8b3 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -257,6 +257,8 @@
if cint(ac.get("is_root")):
ac.parent_account = None
ac.flags.ignore_mandatory = True
+ else:
+ ac.root_type = None
ac.insert()
@@ -569,11 +571,12 @@
# Amount should be credited
return flt(stock_rbnb) + flt(sys_bal)
+
def get_outstanding_invoices(party_type, party, account, condition=None):
outstanding_invoices = []
precision = frappe.get_precision("Sales Invoice", "outstanding_amount")
- if party_type=="Customer":
+ if party_type == "Customer":
dr_or_cr = "debit_in_account_currency - credit_in_account_currency"
payment_dr_or_cr = "payment_gl_entry.credit_in_account_currency - payment_gl_entry.debit_in_account_currency"
else:
@@ -583,20 +586,18 @@
invoice = 'Sales Invoice' if party_type == 'Customer' else 'Purchase Invoice'
invoice_list = frappe.db.sql("""
select
- voucher_no, voucher_type, posting_date, ifnull(sum({dr_or_cr}), 0) as invoice_amount,
- (
- case when (voucher_type = 'Sales Invoice' or voucher_type = 'Purchase Invoice')
- then (select due_date from `tab{invoice}` where name = voucher_no)
- else posting_date end
- ) as due_date,
+ voucher_no, voucher_type, posting_date, ifnull(sum({dr_or_cr}), 0) as invoice_amount, due_date,
(
select ifnull(sum({payment_dr_or_cr}), 0)
from `tabGL Entry` payment_gl_entry
where payment_gl_entry.against_voucher_type = invoice_gl_entry.voucher_type
- and payment_gl_entry.against_voucher = invoice_gl_entry.against_voucher
+ and if(invoice_gl_entry.voucher_type='Journal Entry',
+ payment_gl_entry.against_voucher = invoice_gl_entry.voucher_no,
+ payment_gl_entry.against_voucher = invoice_gl_entry.against_voucher)
and payment_gl_entry.party_type = invoice_gl_entry.party_type
and payment_gl_entry.party = invoice_gl_entry.party
and payment_gl_entry.account = invoice_gl_entry.account
+ and payment_gl_entry.due_date = invoice_gl_entry.due_date
and {payment_dr_or_cr} > 0
) as payment_amount
from
@@ -608,13 +609,13 @@
and ((voucher_type = 'Journal Entry'
and (against_voucher = '' or against_voucher is null))
or (voucher_type not in ('Journal Entry', 'Payment Entry')))
- group by voucher_type, voucher_no
+ group by voucher_type, voucher_no, due_date
having (invoice_amount - payment_amount) > 0.005
- order by posting_date, name""".format(
- dr_or_cr = dr_or_cr,
- invoice = invoice,
- payment_dr_or_cr = payment_dr_or_cr,
- condition = condition or ""
+ order by posting_date, name, due_date""".format(
+ dr_or_cr=dr_or_cr,
+ invoice=invoice,
+ payment_dr_or_cr=payment_dr_or_cr,
+ condition=condition or ""
), {
"party_type": party_type,
"party": party,
@@ -622,17 +623,24 @@
}, as_dict=True)
for d in invoice_list:
- outstanding_invoices.append(frappe._dict({
- 'voucher_no': d.voucher_no,
- 'voucher_type': d.voucher_type,
- 'due_date': d.due_date,
- 'posting_date': d.posting_date,
- 'invoice_amount': flt(d.invoice_amount),
- 'payment_amount': flt(d.payment_amount),
- 'outstanding_amount': flt(d.invoice_amount - d.payment_amount, precision),
- 'due_date': frappe.db.get_value(d.voucher_type, d.voucher_no,
- "posting_date" if party_type=="Employee" else "due_date"),
- }))
+ due_date = d.due_date or (
+ frappe.db.get_value(
+ d.voucher_type, d.voucher_no,
+ "posting_date" if party_type == "Employee" else "due_date"
+ )
+ )
+
+ outstanding_invoices.append(
+ frappe._dict({
+ 'voucher_no': d.voucher_no,
+ 'voucher_type': d.voucher_type,
+ 'posting_date': d.posting_date,
+ 'invoice_amount': flt(d.invoice_amount),
+ 'payment_amount': flt(d.payment_amount),
+ 'outstanding_amount': flt(d.invoice_amount - d.payment_amount, precision),
+ 'due_date': due_date
+ })
+ )
outstanding_invoices = sorted(outstanding_invoices, key=lambda k: k['due_date'] or getdate(nowdate()))
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json
index e18f96f..ecd6e66 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.json
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.json
@@ -1,402 +1,2452 @@
{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 1,
- "allow_rename": 0,
- "autoname": "naming_series:",
- "beta": 0,
- "creation": "2013-05-21 16:16:39",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Document",
- "editable_grid": 0,
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 0,
+ "autoname": "naming_series:",
+ "beta": 0,
+ "creation": "2013-05-21 16:16:39",
+ "custom": 0,
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Document",
+ "editable_grid": 0,
"fields": [
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier_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": "",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-user",
- "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": "supplier_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-user",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "{supplier_name}",
- "fieldname": "title",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Title",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "{supplier_name}",
+ "fieldname": "title",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Title",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "naming_series",
- "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": "Series",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "naming_series",
- "oldfieldtype": "Select",
- "options": "PO-",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 1,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "naming_series",
+ "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": "Series",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "naming_series",
+ "oldfieldtype": "Select",
+ "options": "PO-",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 1,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "supplier",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 1,
- "label": "Supplier",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "supplier",
- "oldfieldtype": "Link",
- "options": "Supplier",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "supplier",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 1,
+ "label": "Supplier",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "supplier",
+ "oldfieldtype": "Link",
+ "options": "Supplier",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.supplier && doc.docstatus===0 && (!(doc.items && doc.items.length) || (doc.items.length==1 && !doc.items[0].item_code))",
- "fieldname": "get_items_from_open_material_requests",
- "fieldtype": "Button",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Get Items from Open Material Requests",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.supplier && doc.docstatus===0 && (!(doc.items && doc.items.length) || (doc.items.length==1 && !doc.items[0].item_code))",
+ "fieldname": "get_items_from_open_material_requests",
+ "fieldtype": "Button",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Get Items from Open Material Requests",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "No",
- "fieldname": "is_subcontracted",
- "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": 1,
- "label": "Supply Raw Materials",
- "length": 0,
- "no_copy": 0,
- "options": "No\nYes",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "No",
+ "fieldname": "is_subcontracted",
+ "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": 1,
+ "label": "Supply Raw Materials",
+ "length": 0,
+ "no_copy": 0,
+ "options": "No\nYes",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier_name",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Name",
- "length": 0,
- "no_copy": 0,
- "options": "supplier.supplier_name",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier_name",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Name",
+ "length": 0,
+ "no_copy": 0,
+ "options": "supplier.supplier_name",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_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,
- "print_width": "50%",
- "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,
+ "print_width": "50%",
+ "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,
+ "default": "Today",
+ "fieldname": "transaction_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Date",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "transaction_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "",
+ "fieldname": "schedule_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Reqd By Date",
+ "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": "amended_from",
+ "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": "Amended From",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "amended_from",
+ "oldfieldtype": "Data",
+ "options": "Purchase Order",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "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": 1,
+ "label": "Company",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "company",
+ "oldfieldtype": "Link",
+ "options": "Company",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 1,
+ "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,
+ "collapsible_depends_on": "",
+ "columns": 0,
+ "fieldname": "drop_ship",
+ "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": "Drop Ship",
+ "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": "",
+ "fieldname": "customer",
+ "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": "Customer",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Customer",
+ "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": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "customer_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": "Customer Name",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_19",
+ "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": "",
+ "fieldname": "customer_contact_person",
+ "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": "Customer Contact",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Contact",
+ "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": "customer_contact_display",
+ "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": "Customer Contact",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "customer_contact_mobile",
+ "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": "Customer Mobile No",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "customer_contact_email",
+ "fieldtype": "Code",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Customer Contact Email",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Email",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "section_addresses",
+ "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": "Address and Contact",
+ "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": "supplier_address",
+ "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": "Select Supplier Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_person",
+ "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": "Contact Person",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Contact",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_mobile",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Mobile No",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_email",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact Email",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "col_break_address",
+ "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": "",
+ "fieldname": "shipping_address",
+ "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": "Select Shipping Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "shipping_address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "currency_and_price_list",
+ "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": "Currency and Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-tag",
+ "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": "currency",
+ "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": "Currency",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "currency",
+ "oldfieldtype": "Select",
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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": "conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "conversion_rate",
+ "oldfieldtype": "Currency",
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "cb_price_list",
+ "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": "buying_price_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": "Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Price List",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "price_list_currency",
+ "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": "Price List Currency",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "plc_conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Price List Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "ignore_pricing_rule",
+ "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": "Ignore Pricing Rule",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 1,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "items_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-shopping-cart",
+ "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": "items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Items",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "po_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Order Item",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 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.docstatus===0 && (doc.items && doc.items.length)",
+ "fieldname": "link_to_mrs",
+ "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": "Link to material requests",
+ "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": "sb_last_purchase",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total",
+ "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 (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "net_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_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,
+ "print_hide": 0,
+ "print_hide_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",
+ "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",
+ "length": 0,
+ "no_copy": 0,
+ "options": "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": "net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "net_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-money",
+ "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": "taxes_and_charges",
+ "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": "Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_other_charges",
+ "oldfieldtype": "Link",
+ "options": "Purchase Taxes and Charges Template",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_50",
+ "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": "shipping_rule",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Rule",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Shipping Rule",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_52",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Purchase Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_tax_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Taxes and Charges",
+ "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": 1,
+ "columns": 0,
+ "fieldname": "sec_tax_breakup",
+ "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": "Tax Breakup",
+ "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": "other_charges_calculation",
+ "fieldtype": "Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Taxes and Charges Calculation",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldtype": "HTML",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "totals",
+ "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",
+ "options": "fa fa-money",
+ "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": "base_taxes_and_charges_added",
+ "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": "Taxes and Charges Added (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total_taxes_and_charges",
+ "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 Taxes and Charges (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "total_tax",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_39",
+ "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": "taxes_and_charges_added",
+ "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": "Taxes and Charges Added",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "total_taxes_and_charges",
+ "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 Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "discount_amount",
+ "columns": 0,
+ "fieldname": "discount_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": "Additional Discount",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Grand Total",
+ "fieldname": "apply_discount_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": "Apply Additional Discount On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nGrand Total\nNet Total",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_45",
+ "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": "additional_discount_percentage",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Percentage",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "totals_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,
+ "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": "base_grand_total",
+ "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": "Grand Total (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "grand_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounding_adjustment",
+ "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": "Rounding Adjustment (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "In Words will be visible once you save the Purchase Order.",
+ "fieldname": "base_in_words",
+ "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": "In Words (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounded_total",
+ "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": "Rounded Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "rounded_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break4",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "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": "grand_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Grand Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "grand_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "rounding_adjustment",
+ "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": "Rounding Adjustment",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "in_words",
+ "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": "In Words",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words_import",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "advance_paid",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Advance Paid",
+ "length": 0,
+ "no_copy": 1,
+ "options": "party_account_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "Today",
- "fieldname": "transaction_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Date",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "transaction_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "",
- "fieldname": "schedule_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Reqd By Date",
- "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": "amended_from",
- "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": "Amended From",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "amended_from",
- "oldfieldtype": "Data",
- "options": "Purchase Order",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "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": 1,
- "label": "Company",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "company",
- "oldfieldtype": "Link",
- "options": "Company",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 1,
- "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,
- "collapsible_depends_on": "",
- "columns": 0,
- "fieldname": "drop_ship",
+ "fieldname": "payment_schedule_section",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -405,7 +2455,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Drop Ship",
+ "label": "Payment Terms",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -426,8 +2476,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "",
- "fieldname": "customer",
+ "fieldname": "payment_terms_template",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -436,132 +2485,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Customer",
+ "label": "Payment Terms Template",
"length": 0,
"no_copy": 0,
- "options": "Customer",
- "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": 1,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "fieldname": "customer_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": "Customer Name",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_19",
- "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": "",
- "fieldname": "customer_contact_person",
- "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": "Customer Contact",
- "length": 0,
- "no_copy": 0,
- "options": "Contact",
- "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": "customer_contact_display",
- "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": "Customer Contact",
- "length": 0,
- "no_copy": 0,
+ "options": "Payment Terms Template",
"permlevel": 0,
"precision": "",
"print_hide": 1,
@@ -580,639 +2507,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "customer_contact_mobile",
- "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": "Customer Mobile No",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "customer_contact_email",
- "fieldtype": "Code",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Customer Contact Email",
- "length": 0,
- "no_copy": 0,
- "options": "Email",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "section_addresses",
- "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": "Address and Contact",
- "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": "supplier_address",
- "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": "Select Supplier Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_person",
- "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": "Contact Person",
- "length": 0,
- "no_copy": 0,
- "options": "Contact",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "fieldname": "address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_mobile",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Mobile No",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_email",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact Email",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "col_break_address",
- "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": "",
- "fieldname": "shipping_address",
- "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": "Select Shipping Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "shipping_address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Shipping Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "currency_and_price_list",
- "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": "Currency and Price List",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-tag",
- "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": "currency",
- "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": "Currency",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "currency",
- "oldfieldtype": "Select",
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 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": "conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "conversion_rate",
- "oldfieldtype": "Currency",
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "cb_price_list",
- "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": "buying_price_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": "Price List",
- "length": 0,
- "no_copy": 0,
- "options": "Price List",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "price_list_currency",
- "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": "Price List Currency",
- "length": 0,
- "no_copy": 0,
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "plc_conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Price List Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "ignore_pricing_rule",
- "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": "Ignore Pricing Rule",
- "length": 0,
- "no_copy": 1,
- "permlevel": 1,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "items_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-shopping-cart",
- "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": "items",
+ "fieldname": "payment_schedule",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -1221,350 +2516,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Items",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "po_details",
- "oldfieldtype": "Table",
- "options": "Purchase Order Item",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 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.docstatus===0 && (doc.items && doc.items.length)",
- "fieldname": "link_to_mrs",
- "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": "Link to material requests",
- "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": "sb_last_purchase",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_total",
- "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 (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total (Company Currency)",
+ "label": "Payment Schedule",
"length": 0,
"no_copy": 1,
- "oldfieldname": "net_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_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,
- "print_hide": 0,
- "print_hide_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",
- "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",
- "length": 0,
- "no_copy": 0,
- "options": "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": "net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "net_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-money",
- "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": "taxes_and_charges",
- "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": "Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_other_charges",
- "oldfieldtype": "Link",
- "options": "Purchase Taxes and Charges Template",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Purchase Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_tax_details",
- "oldfieldtype": "Table",
- "options": "Purchase Taxes and Charges",
- "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": 1,
- "columns": 0,
- "fieldname": "sec_tax_breakup",
- "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": "Tax Breakup",
- "length": 0,
- "no_copy": 0,
+ "options": "Payment Schedule",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -1576,1609 +2531,835 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "other_charges_calculation",
- "fieldtype": "Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Taxes and Charges Calculation",
- "length": 0,
- "no_copy": 1,
- "oldfieldtype": "HTML",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "terms",
+ "columns": 0,
+ "fieldname": "terms_section_break",
+ "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": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-legal",
+ "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": "totals",
- "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",
- "options": "fa fa-money",
- "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": "tc_name",
+ "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": "Terms",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "tc_name",
+ "oldfieldtype": "Link",
+ "options": "Terms and Conditions",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_taxes_and_charges_added",
- "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": "Taxes and Charges Added (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "terms",
+ "fieldtype": "Text Editor",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "terms",
+ "oldfieldtype": "Text Editor",
+ "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": "base_taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "more_info",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "More Information",
+ "length": 0,
+ "no_copy": 0,
+ "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": "base_total_taxes_and_charges",
- "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 Taxes and Charges (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "total_tax",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Draft",
+ "fieldname": "status",
+ "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": 1,
+ "label": "Status",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "status",
+ "oldfieldtype": "Select",
+ "options": "\nDraft\nTo Receive and Bill\nTo Bill\nTo Receive\nCompleted\nCancelled\nClosed\nDelivered",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_39",
- "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": "ref_sq",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Ref SQ",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "ref_sq",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_added",
- "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": "Taxes and Charges Added",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "party_account_currency",
+ "fieldtype": "Link",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Party Account Currency",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_74",
+ "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_taxes_and_charges",
- "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 Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "description": "",
+ "fieldname": "per_received",
+ "fieldtype": "Percent",
+ "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": "% Received",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "per_received",
+ "oldfieldtype": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "discount_amount",
- "columns": 0,
- "fieldname": "discount_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": "Additional Discount",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:!doc.__islocal",
+ "description": "",
+ "fieldname": "per_billed",
+ "fieldtype": "Percent",
+ "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": "% Billed",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "per_billed",
+ "oldfieldtype": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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": "Grand Total",
- "fieldname": "apply_discount_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": "Apply Additional Discount On",
- "length": 0,
- "no_copy": 0,
- "options": "\nGrand Total\nNet Total",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_45",
- "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": "additional_discount_percentage",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Percentage",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "totals_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,
- "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": "base_grand_total",
- "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": "Grand Total (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "grand_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounding_adjustment",
- "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": "Rounding Adjustment (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "In Words will be visible once you save the Purchase Order.",
- "fieldname": "base_in_words",
- "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": "In Words (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounded_total",
- "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": "Rounded Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "rounded_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break4",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "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": "grand_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Grand Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "grand_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "rounding_adjustment",
- "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": "Rounding Adjustment",
- "length": 0,
- "no_copy": 1,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "in_words",
- "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": "In Words",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words_import",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "advance_paid",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Advance Paid",
- "length": 0,
- "no_copy": 1,
- "options": "party_account_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "terms",
- "columns": 0,
- "fieldname": "terms_section_break",
- "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": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-legal",
- "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": "tc_name",
- "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": "Terms",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "tc_name",
- "oldfieldtype": "Link",
- "options": "Terms and Conditions",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "terms",
- "fieldtype": "Text Editor",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "terms",
- "oldfieldtype": "Text Editor",
- "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": 1,
- "columns": 0,
- "fieldname": "more_info",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "More Information",
- "length": 0,
- "no_copy": 0,
- "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,
- "default": "Draft",
- "fieldname": "status",
- "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": 1,
- "label": "Status",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "status",
- "oldfieldtype": "Select",
- "options": "\nDraft\nTo Receive and Bill\nTo Bill\nTo Receive\nCompleted\nCancelled\nClosed\nDelivered",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "ref_sq",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Ref SQ",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "ref_sq",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "party_account_currency",
- "fieldtype": "Link",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Party Account Currency",
- "length": 0,
- "no_copy": 1,
- "options": "Currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_74",
- "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",
- "description": "",
- "fieldname": "per_received",
- "fieldtype": "Percent",
- "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": "% Received",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "per_received",
- "oldfieldtype": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 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",
- "description": "",
- "fieldname": "per_billed",
- "fieldtype": "Percent",
- "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": "% Billed",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "per_billed",
- "oldfieldtype": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "column_break5",
- "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": "Printing Settings",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "50%",
- "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": 1,
+ "columns": 0,
+ "fieldname": "column_break5",
+ "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": "Printing Settings",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Column Break",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "50%",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "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": "Letter Head",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "letter_head",
- "oldfieldtype": "Select",
- "options": "Letter Head",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "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": "Letter Head",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "letter_head",
+ "oldfieldtype": "Select",
+ "options": "Letter Head",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "select_print_heading",
- "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": "Print Heading",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "select_print_heading",
- "oldfieldtype": "Link",
- "options": "Print Heading",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 1,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "select_print_heading",
+ "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": "Print Heading",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "select_print_heading",
+ "oldfieldtype": "Link",
+ "options": "Print Heading",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 1,
+ "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_86",
- "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_86",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "group_same_items",
- "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": "Group same items",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "group_same_items",
+ "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": "Group same items",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "",
- "fieldname": "language",
- "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": "Print Language",
- "length": 0,
- "no_copy": 0,
- "options": "",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "",
+ "fieldname": "language",
+ "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": "Print Language",
+ "length": 0,
+ "no_copy": 0,
+ "options": "",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "supplied_items",
- "columns": 0,
- "description": "",
- "fieldname": "raw_material_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": "Raw Materials Supplied",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-truck",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "supplied_items",
+ "columns": 0,
+ "description": "",
+ "fieldname": "raw_material_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": "Raw Materials Supplied",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-truck",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplied_items",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplied Items",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "po_raw_material_details",
- "oldfieldtype": "Table",
- "options": "Purchase Order Item Supplied",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplied_items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplied Items",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "po_raw_material_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Order Item Supplied",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "subscription_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": "Subscription Section",
- "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": "subscription_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": "Subscription Section",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "description": "",
- "fieldname": "from_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "From Date",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "description": "",
+ "fieldname": "from_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "From Date",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "description": "",
- "fieldname": "to_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "To Date",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "description": "",
+ "fieldname": "to_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "To Date",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_97",
- "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_97",
+ "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": "subscription",
- "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": "Subscription",
- "length": 0,
- "no_copy": 1,
- "options": "Subscription",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "subscription",
+ "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": "Subscription",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Subscription",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
}
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "icon": "fa fa-file-text",
- "idx": 105,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 1,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2017-11-15 01:03:44.591992",
- "modified_by": "Administrator",
- "module": "Buying",
- "name": "Purchase Order",
- "owner": "Administrator",
+ ],
+ "has_web_view": 0,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "fa fa-file-text",
+ "idx": 105,
+ "image_view": 0,
+ "in_create": 0,
+ "is_submittable": 1,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "modified": "2017-11-23 01:03:44.591992",
+ "modified_by": "Administrator",
+ "module": "Buying",
+ "name": "Purchase Order",
+ "owner": "Administrator",
"permissions": [
{
- "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": 1,
- "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": 1,
+ "role": "Stock User",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 0
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Purchase Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Purchase Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Purchase User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Purchase User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 0,
- "delete": 0,
- "email": 0,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 1,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Purchase Manager",
- "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": 1,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Purchase Manager",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 1
}
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 1,
- "search_fields": "status, transaction_date, supplier,grand_total",
- "show_name_in_global_search": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "timeline_field": "supplier",
- "title_field": "title",
- "track_changes": 0,
+ ],
+ "quick_entry": 0,
+ "read_only": 0,
+ "read_only_onload": 1,
+ "search_fields": "status, transaction_date, supplier,grand_total",
+ "show_name_in_global_search": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "timeline_field": "supplier",
+ "title_field": "title",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py
index bbaa043..e767ae7 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.py
@@ -29,7 +29,7 @@
'target_field': 'ordered_qty',
'target_parent_dt': 'Material Request',
'target_parent_field': 'per_ordered',
- 'target_ref_field': 'qty',
+ 'target_ref_field': 'stock_qty',
'source_field': 'stock_qty',
'percent_join_field': 'material_request',
'overflow_type': 'order'
diff --git a/erpnext/buying/doctype/purchase_order/test_purchase_order.py b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
index 2af5582..d31b230 100644
--- a/erpnext/buying/doctype/purchase_order/test_purchase_order.py
+++ b/erpnext/buying/doctype/purchase_order/test_purchase_order.py
@@ -8,6 +8,7 @@
from frappe.utils import flt, add_days, nowdate
from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_receipt, make_purchase_invoice
+
class TestPurchaseOrder(unittest.TestCase):
def test_make_purchase_receipt(self):
po = create_purchase_order(do_not_submit=True)
@@ -83,6 +84,33 @@
self.assertEquals(pi.doctype, "Purchase Invoice")
self.assertEquals(len(pi.get("items", [])), 1)
+ def test_make_purchase_invoice_with_terms(self):
+ po = create_purchase_order(do_not_save=True)
+
+ self.assertRaises(frappe.ValidationError, make_purchase_invoice, po.name)
+
+ po.update(
+ {"payment_terms_template": "_Test Payment Term Template"}
+ )
+
+ po.save()
+ po.submit()
+
+ self.assertEqual(po.payment_schedule[0].payment_amount, 2500.0)
+ self.assertEqual(po.payment_schedule[0].due_date, po.transaction_date)
+ self.assertEqual(po.payment_schedule[1].payment_amount, 2500.0)
+ self.assertEqual(po.payment_schedule[1].due_date, add_days(po.transaction_date, 30))
+ pi = make_purchase_invoice(po.name)
+ pi.save()
+
+ self.assertEquals(pi.doctype, "Purchase Invoice")
+ self.assertEquals(len(pi.get("items", [])), 1)
+
+ self.assertEqual(pi.payment_schedule[0].payment_amount, 2500.0)
+ self.assertEqual(pi.payment_schedule[0].due_date, po.transaction_date)
+ self.assertEqual(pi.payment_schedule[1].payment_amount, 2500.0)
+ self.assertEqual(pi.payment_schedule[1].due_date, add_days(po.transaction_date, 30))
+
def test_subcontracting(self):
po = create_purchase_order(item_code="_Test FG Item", is_subcontracted="Yes")
self.assertEquals(len(po.get("supplied_items")), 2)
@@ -125,6 +153,35 @@
"group_same_items": 1
}).insert(ignore_permissions=True)
+ def test_make_po_without_terms(self):
+ po = create_purchase_order(do_not_save=1)
+
+ self.assertFalse(po.get('payment_schedule'))
+
+ po.insert()
+
+ self.assertTrue(po.get('payment_schedule'))
+
+ def test_terms_does_not_copy(self):
+ po = create_purchase_order()
+
+ self.assertTrue(po.get('payment_schedule'))
+
+ pi = make_purchase_invoice(po.name)
+
+ self.assertFalse(pi.get('payment_schedule'))
+
+ def test_terms_copied(self):
+ po = create_purchase_order(do_not_save=1)
+ po.payment_terms_template = '_Test Payment Term Template'
+ po.insert()
+ po.submit()
+ self.assertTrue(po.get('payment_schedule'))
+
+ pi = make_purchase_invoice(po.name)
+ pi.insert()
+ self.assertTrue(pi.get('payment_schedule'))
+
def get_same_items():
return [
diff --git a/erpnext/buying/doctype/purchase_order/tests/test_purchase_order_with_shipping_rule.js b/erpnext/buying/doctype/purchase_order/tests/test_purchase_order_with_shipping_rule.js
new file mode 100644
index 0000000..96775eb
--- /dev/null
+++ b/erpnext/buying/doctype/purchase_order/tests/test_purchase_order_with_shipping_rule.js
@@ -0,0 +1,43 @@
+QUnit.module('Buying');
+
+QUnit.test("test: purchase order with shipping rule", function(assert) {
+ assert.expect(3);
+ let done = assert.async();
+
+ frappe.run_serially([
+ () => {
+ return frappe.tests.make('Purchase Order', [
+ {supplier: 'Test Supplier'},
+ {is_subcontracted: 'No'},
+ {buying_price_list: 'Test-Buying-USD'},
+ {currency: 'USD'},
+ {"schedule_date": frappe.datetime.add_days(frappe.datetime.now_date(), 1)},
+ {items: [
+ [
+ {"item_code": 'Test Product 4'},
+ {"qty": 5},
+ {"uom": 'Unit'},
+ {"rate": 500 },
+ {"schedule_date": frappe.datetime.add_days(frappe.datetime.now_date(), 1)},
+ {"expected_delivery_date": frappe.datetime.add_days(frappe.datetime.now_date(), 5)},
+ {"warehouse": 'Stores - '+frappe.get_abbr(frappe.defaults.get_default("Company"))}
+ ]
+ ]},
+
+ {shipping_rule:'Two Day Shipping'}
+ ]);
+ },
+
+ () => {
+ // Check grand total
+ assert.ok(cur_frm.doc.total_taxes_and_charges == 200, "Taxes and charges correct");
+ assert.ok(cur_frm.doc.grand_total == 2700, "Grand total correct");
+ },
+
+ () => frappe.timeout(0.3),
+ () => frappe.tests.click_button('Submit'),
+ () => frappe.tests.click_button('Yes'),
+ () => frappe.timeout(0.3),
+ () => done()
+ ]);
+});
\ No newline at end of file
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index 3801141..c3d7a2c 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -254,7 +254,7 @@
}
})
}, __("Get items from"));
- // Get items from Opportunity
+ // Get items from Opportunity
this.frm.add_custom_button(__('Opportunity'),
function() {
erpnext.utils.map_current_doc({
@@ -264,11 +264,8 @@
setters: {
company: me.frm.doc.company
},
- get_query_filters: {
- enquiry_type: "Sales"
- }
})
- }, __("Get items from"));
+ }, __("Get items from"));
// Get items from open Material Requests based on supplier
this.frm.add_custom_button(__('Possible Supplier'), function() {
// Create a dialog window for the user to pick their supplier
diff --git a/erpnext/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json
index 711e05d..e6cea53 100644
--- a/erpnext/buying/doctype/supplier/supplier.json
+++ b/erpnext/buying/doctype/supplier/supplier.json
@@ -597,8 +597,9 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "credit_days_based_on",
- "fieldtype": "Select",
+ "depends_on": "",
+ "fieldname": "payment_terms",
+ "fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -606,10 +607,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Credit Days Based On",
+ "label": "Default Payment Terms Template",
"length": 0,
"no_copy": 0,
- "options": "\nFixed Days\nLast Day of the Next Month",
+ "options": "Payment Terms Template",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -628,36 +629,6 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval:doc.credit_days_based_on == 'Fixed Days'",
- "fieldname": "credit_days",
- "fieldtype": "Int",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Credit Days",
- "length": 0,
- "no_copy": 0,
- "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": "address_contacts",
"fieldtype": "Section Break",
@@ -970,8 +941,8 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-07-06 16:40:46.935608",
- "modified_by": "Administrator",
+ "modified": "2017-08-31 16:10:44.049915",
+ "modified_by": "tundebabzy@gmail.com",
"module": "Buying",
"name": "Supplier",
"name_case": "Title Case",
diff --git a/erpnext/buying/doctype/supplier/test_records.json b/erpnext/buying/doctype/supplier/test_records.json
index cae4aac..7479f55 100644
--- a/erpnext/buying/doctype/supplier/test_records.json
+++ b/erpnext/buying/doctype/supplier/test_records.json
@@ -1,6 +1,18 @@
[
{
"doctype": "Supplier",
+ "supplier_name": "_Test Supplier With Template 1",
+ "supplier_type": "_Test Supplier Type",
+ "payment_terms": "_Test Payment Term Template 3"
+ },
+ {
+ "doctype": "Supplier",
+ "supplier_name": "_Test Supplier P",
+ "supplier_type": "_Test Supplier Type",
+ "credit_days_based_on": "Fixed Days"
+ },
+ {
+ "doctype": "Supplier",
"supplier_name": "_Test Supplier with Country",
"supplier_type": "_Test Supplier Type",
"country": "Greece"
diff --git a/erpnext/buying/doctype/supplier/test_supplier.py b/erpnext/buying/doctype/supplier/test_supplier.py
index 1d089e7..16dda5c 100644
--- a/erpnext/buying/doctype/supplier/test_supplier.py
+++ b/erpnext/buying/doctype/supplier/test_supplier.py
@@ -5,56 +5,62 @@
import frappe, unittest
from erpnext.accounts.party import get_due_date
-from erpnext.exceptions import PartyFrozen, PartyDisabled
+from erpnext.exceptions import PartyDisabled
from frappe.test_runner import make_test_records
+test_dependencies = ['Payment Term', 'Payment Terms Template']
test_records = frappe.get_test_records('Supplier')
+
class TestSupplier(unittest.TestCase):
- def test_supplier_due_date_against_supplier_credit_limit(self):
- # Set Credit Limit based on Fixed days
- frappe.db.set_value("Supplier", "_Test Supplier", "credit_days_based_on", "Fixed Days")
- frappe.db.set_value("Supplier", "_Test Supplier", "credit_days", 10)
+ def test_supplier_default_payment_terms(self):
+ # Payment Term based on Days after invoice date
+ frappe.db.set_value(
+ "Supplier", "_Test Supplier With Template 1", "payment_terms", "_Test Payment Term Template 3")
- due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier", "_Test Company")
- self.assertEqual(due_date, "2016-02-01")
+ due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier With Template 1")
+ self.assertEqual(due_date, "2016-02-21")
- # Set Credit Limit based on Last day next month
- frappe.db.set_value("Supplier", "_Test Supplier", "credit_days", 0)
- frappe.db.set_value("Supplier", "_Test Supplier", "credit_days_based_on",
- "Last Day of the Next Month")
+ due_date = get_due_date("2017-01-22", "Supplier", "_Test Supplier With Template 1")
+ self.assertEqual(due_date, "2017-02-21")
- # Leap year
- due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier", "_Test Company")
+ # Payment Term based on last day of month
+ frappe.db.set_value(
+ "Supplier", "_Test Supplier With Template 1", "payment_terms", "_Test Payment Term Template 1")
+
+ due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier With Template 1")
self.assertEqual(due_date, "2016-02-29")
- # Non Leap year
- due_date = get_due_date("2017-01-22", "Supplier", "_Test Supplier", "_Test Company")
+
+ due_date = get_due_date("2017-01-22", "Supplier", "_Test Supplier With Template 1")
self.assertEqual(due_date, "2017-02-28")
- frappe.db.set_value("Supplier", "_Test Supplier", "credit_days_based_on", "")
+ frappe.db.set_value("Supplier", "_Test Supplier With Template 1", "payment_terms", "")
# Set credit limit for the supplier type instead of supplier and evaluate the due date
- # based on Fixed days
- frappe.db.set_value("Supplier Type", "_Test Supplier Type", "credit_days_based_on",
- "Fixed Days")
- frappe.db.set_value("Supplier Type", "_Test Supplier Type", "credit_days", 10)
+ frappe.db.set_value("Supplier Type", "_Test Supplier Type", "payment_terms", "_Test Payment Term Template 3")
- due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier", "_Test Company")
- self.assertEqual(due_date, "2016-02-01")
+ due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier With Template 1")
+ self.assertEqual(due_date, "2016-02-21")
- # Set credit limit for the supplier type instead of supplier and evaluate the due date
- # based on Last day of next month
- frappe.db.set_value("Supplier", "_Test Supplier Type", "credit_days", 0)
- frappe.db.set_value("Supplier Type", "_Test Supplier Type", "credit_days_based_on",
- "Last Day of the Next Month")
+ # Payment terms for Supplier Type instead of supplier and evaluate the due date
+ frappe.db.set_value("Supplier Type", "_Test Supplier Type", "payment_terms", "_Test Payment Term Template 1")
# Leap year
- due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier", "_Test Company")
+ due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier With Template 1")
self.assertEqual(due_date, "2016-02-29")
- # Non Leap year
- due_date = get_due_date("2017-01-22", "Supplier", "_Test Supplier", "_Test Company")
+ # # Non Leap year
+ due_date = get_due_date("2017-01-22", "Supplier", "_Test Supplier With Template 1")
self.assertEqual(due_date, "2017-02-28")
+ # Supplier with no default Payment Terms Template
+ frappe.db.set_value("Supplier Type", "_Test Supplier Type", "payment_terms", "")
+ frappe.db.set_value("Supplier", "_Test Supplier", "payment_terms", "")
+
+ due_date = get_due_date("2016-01-22", "Supplier", "_Test Supplier")
+ self.assertEqual(due_date, "2016-01-22")
+ # # Non Leap year
+ due_date = get_due_date("2017-01-22", "Supplier", "_Test Supplier")
+ self.assertEqual(due_date, "2017-01-22")
def test_supplier_disabled(self):
make_test_records("Item")
@@ -71,7 +77,6 @@
po.save()
-
def test_supplier_country(self):
# Test that country field exists in Supplier DocType
supplier = frappe.get_doc('Supplier', '_Test Supplier with Country')
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
index 67bf6bd..d9bba42 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
@@ -1,2492 +1,2581 @@
{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 1,
- "allow_rename": 0,
- "autoname": "naming_series:",
- "beta": 0,
- "creation": "2013-05-21 16:16:45",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Document",
- "editable_grid": 0,
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 0,
+ "autoname": "naming_series:",
+ "beta": 0,
+ "creation": "2013-05-21 16:16:45",
+ "custom": 0,
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Document",
+ "editable_grid": 0,
"fields": [
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier_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": "",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-user",
- "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": "supplier_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-user",
+ "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": "{supplier_name}",
- "fieldname": "title",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Title",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 1,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "{supplier_name}",
+ "fieldname": "title",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Title",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 1,
+ "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": "naming_series",
- "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": "Series",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "naming_series",
- "oldfieldtype": "Select",
- "options": "SQTN-",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 1,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "naming_series",
+ "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": "Series",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "naming_series",
+ "oldfieldtype": "Select",
+ "options": "SQTN-",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 1,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "supplier",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 1,
- "label": "Supplier",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "supplier",
- "oldfieldtype": "Link",
- "options": "Supplier",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "supplier",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 1,
+ "label": "Supplier",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "supplier",
+ "oldfieldtype": "Link",
+ "options": "Supplier",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier_name",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Name",
- "length": 0,
- "no_copy": 0,
- "options": "supplier.supplier_name",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier_name",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Name",
+ "length": 0,
+ "no_copy": 0,
+ "options": "supplier.supplier_name",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_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,
- "print_width": "50%",
- "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,
+ "print_width": "50%",
+ "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,
- "default": "Today",
- "fieldname": "transaction_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Date",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "transaction_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Today",
+ "fieldname": "transaction_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Date",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "transaction_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "amended_from",
- "fieldtype": "Link",
- "hidden": 1,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Amended From",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "amended_from",
- "oldfieldtype": "Data",
- "options": "Supplier Quotation",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "amended_from",
+ "fieldtype": "Link",
+ "hidden": 1,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Amended From",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "amended_from",
+ "oldfieldtype": "Data",
+ "options": "Supplier Quotation",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "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": 1,
- "label": "Company",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "company",
- "oldfieldtype": "Link",
- "options": "Company",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 1,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "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": 1,
+ "label": "Company",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "company",
+ "oldfieldtype": "Link",
+ "options": "Company",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 1,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "address_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": "Address and Contact",
- "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": 1,
+ "columns": 0,
+ "fieldname": "address_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": "Address and Contact",
+ "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": "supplier_address",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier_address",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_person",
- "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": "Contact Person",
- "length": 0,
- "no_copy": 0,
- "options": "Contact",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_person",
+ "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": "Contact Person",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Contact",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_mobile",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Mobile No",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_mobile",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Mobile No",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_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": "Contact Email",
- "length": 0,
- "no_copy": 0,
- "options": "Email",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_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": "Contact Email",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Email",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "currency_and_price_list",
- "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": "Currency and Price List",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-tag",
- "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": 1,
+ "columns": 0,
+ "fieldname": "currency_and_price_list",
+ "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": "Currency and Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-tag",
+ "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": "currency",
- "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": "Currency",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "currency",
- "oldfieldtype": "Select",
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "currency",
+ "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": "Currency",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "currency",
+ "oldfieldtype": "Select",
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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": "conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "conversion_rate",
- "oldfieldtype": "Currency",
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "conversion_rate",
+ "oldfieldtype": "Currency",
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "cb_price_list",
- "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,
- "print_width": "50%",
- "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": "cb_price_list",
+ "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,
+ "print_width": "50%",
+ "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": "buying_price_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": "Price List",
- "length": 0,
- "no_copy": 0,
- "options": "Price List",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "buying_price_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": "Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Price List",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "buying_price_list",
- "fieldname": "price_list_currency",
- "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": "Price List Currency",
- "length": 0,
- "no_copy": 0,
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "buying_price_list",
+ "fieldname": "price_list_currency",
+ "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": "Price List Currency",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "buying_price_list",
- "fieldname": "plc_conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Price List Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "buying_price_list",
+ "fieldname": "plc_conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Price List Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "ignore_pricing_rule",
- "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": "Ignore Pricing Rule",
- "length": 0,
- "no_copy": 1,
- "permlevel": 1,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "ignore_pricing_rule",
+ "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": "Ignore Pricing Rule",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 1,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "items_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-shopping-cart",
- "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": "items_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-shopping-cart",
+ "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": "items",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Items",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "po_details",
- "oldfieldtype": "Table",
- "options": "Supplier Quotation Item",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Items",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "po_details",
+ "oldfieldtype": "Table",
+ "options": "Supplier Quotation Item",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 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.docstatus===0 && (doc.items && doc.items.length)",
- "fieldname": "link_to_mrs",
- "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": "Link to material requests",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.docstatus===0 && (doc.items && doc.items.length)",
+ "fieldname": "link_to_mrs",
+ "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": "Link to material requests",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_22",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_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,
+ "print_hide": 0,
+ "print_hide_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": "base_total",
- "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 (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total",
+ "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 (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "net_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "net_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_24",
- "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": "column_break_24",
+ "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": "total",
- "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",
- "length": 0,
- "no_copy": 0,
- "options": "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",
+ "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",
+ "length": 0,
+ "no_copy": 0,
+ "options": "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": "net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "net_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "net_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_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": "Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-money",
- "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": "taxes_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": "Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-money",
+ "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": "taxes_and_charges",
- "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": "Taxes and Charges",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "purchase_other_charges",
- "oldfieldtype": "Link",
- "options": "Purchase Taxes and Charges Template",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "taxes_and_charges",
+ "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": "Taxes and Charges",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "purchase_other_charges",
+ "oldfieldtype": "Link",
+ "options": "Purchase Taxes and Charges Template",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Purchase Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_tax_details",
- "oldfieldtype": "Table",
- "options": "Purchase Taxes and Charges",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_36",
+ "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": 1,
- "columns": 0,
- "fieldname": "tax_breakup",
- "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": "Tax Breakup",
- "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": "shipping_rule",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Rule",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Shipping Rule",
+ "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": "other_charges_calculation",
- "fieldtype": "Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Taxes and Charges Calculation",
- "length": 0,
- "no_copy": 1,
- "oldfieldtype": "HTML",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_38",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "totals",
- "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",
- "options": "fa fa-money",
- "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": "taxes",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Purchase Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_tax_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Taxes and Charges",
+ "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": "base_taxes_and_charges_added",
- "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": "Taxes and Charges Added (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "tax_breakup",
+ "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": "Tax Breakup",
+ "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": "base_taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "other_charges_calculation",
+ "fieldtype": "Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Taxes and Charges Calculation",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldtype": "HTML",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_total_taxes_and_charges",
- "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 Taxes and Charges (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "total_tax",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "totals",
+ "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",
+ "options": "fa fa-money",
+ "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_37",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_taxes_and_charges_added",
+ "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": "Taxes and Charges Added (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_added",
- "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": "Taxes and Charges Added",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total_taxes_and_charges",
+ "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 Taxes and Charges (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "total_tax",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "total_taxes_and_charges",
- "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 Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_37",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "discount_amount",
- "columns": 0,
- "fieldname": "section_break_41",
- "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": "Additional Discount",
- "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": "taxes_and_charges_added",
+ "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": "Taxes and Charges Added",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "Grand Total",
- "fieldname": "apply_discount_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": "Apply Additional Discount On",
- "length": 0,
- "no_copy": 0,
- "options": "\nGrand Total\nNet Total",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "total_taxes_and_charges",
+ "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 Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_43",
- "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": 1,
+ "collapsible_depends_on": "discount_amount",
+ "columns": 0,
+ "fieldname": "section_break_41",
+ "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": "Additional Discount",
+ "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": "additional_discount_percentage",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Percentage",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Grand Total",
+ "fieldname": "apply_discount_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": "Apply Additional Discount On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nGrand Total\nNet Total",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_46",
- "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": "column_break_43",
+ "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": "base_grand_total",
- "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": "Grand Total (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "grand_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "additional_discount_percentage",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Percentage",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounding_adjustment",
- "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": "Rounding Adjustment (Company Currency",
- "length": 0,
- "no_copy": 1,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "base_in_words",
- "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": "In Words (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "section_break_46",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounded_total",
- "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": "Rounded Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "rounded_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_grand_total",
+ "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": "Grand Total (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "grand_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break4",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "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,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounding_adjustment",
+ "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": "Rounding Adjustment (Company Currency",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "grand_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Grand Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "grand_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "base_in_words",
+ "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": "In Words (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "rounding_adjustment",
- "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": "Rounding Adjustment",
- "length": 0,
- "no_copy": 1,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounded_total",
+ "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": "Rounded Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "rounded_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "in_words",
- "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": "In Words",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words_import",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break4",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "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": 1,
- "collapsible_depends_on": "terms",
- "columns": 0,
- "fieldname": "terms_section_break",
- "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": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-legal",
- "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": "grand_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Grand Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "grand_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "tc_name",
- "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": "Terms",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "tc_name",
- "oldfieldtype": "Link",
- "options": "Terms and Conditions",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "rounding_adjustment",
+ "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": "Rounding Adjustment",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "terms",
- "fieldtype": "Text Editor",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "terms",
- "oldfieldtype": "Text Editor",
- "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": "in_words",
+ "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": "In Words",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words_import",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "printing_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": "Printing 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": 1,
+ "collapsible_depends_on": "terms",
+ "columns": 0,
+ "fieldname": "terms_section_break",
+ "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": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-legal",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "select_print_heading",
- "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": "Print Heading",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "select_print_heading",
- "oldfieldtype": "Link",
- "options": "Print Heading",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 1,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "tc_name",
+ "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": "Terms",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "tc_name",
+ "oldfieldtype": "Link",
+ "options": "Terms and Conditions",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "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": "Letter Head",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "letter_head",
- "oldfieldtype": "Select",
- "options": "Letter Head",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "terms",
+ "fieldtype": "Text Editor",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "terms",
+ "oldfieldtype": "Text Editor",
+ "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": "language",
- "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": "Print Language",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "printing_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": "Printing 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": "subscription_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": "Subscription Section",
- "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": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "select_print_heading",
+ "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": "Print Heading",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "select_print_heading",
+ "oldfieldtype": "Link",
+ "options": "Print Heading",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 1,
+ "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": "subscription",
- "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": "Subscription",
- "length": 0,
- "no_copy": 1,
- "options": "Subscription",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "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": "Letter Head",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "letter_head",
+ "oldfieldtype": "Select",
+ "options": "Letter Head",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "more_info",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "More Information",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-file-text",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "language",
+ "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": "Print Language",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "status",
- "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": "Status",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "status",
- "oldfieldtype": "Select",
- "options": "\nDraft\nSubmitted\nStopped\nCancelled",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "subscription_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": "Subscription Section",
+ "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_57",
- "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": "subscription",
+ "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": "Subscription",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Subscription",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "No",
- "fieldname": "is_subcontracted",
- "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": "Is Subcontracted",
- "length": 0,
- "no_copy": 0,
- "options": "\nYes\nNo",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "more_info",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "More Information",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-file-text",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "reference",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Reference",
- "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": "status",
+ "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": "Status",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "status",
+ "oldfieldtype": "Select",
+ "options": "\nDraft\nSubmitted\nStopped\nCancelled",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "opportunity",
- "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": "Opportunity",
- "length": 0,
- "no_copy": 1,
- "options": "Opportunity",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break_57",
+ "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,
+ "default": "No",
+ "fieldname": "is_subcontracted",
+ "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": "Is Subcontracted",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nYes\nNo",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "reference",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Reference",
+ "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": "opportunity",
+ "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": "Opportunity",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Opportunity",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
}
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "icon": "fa fa-shopping-cart",
- "idx": 29,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 1,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "menu_index": 0,
- "modified": "2017-11-15 01:01:44.094596",
- "modified_by": "Administrator",
- "module": "Buying",
- "name": "Supplier Quotation",
- "owner": "Administrator",
+ ],
+ "has_web_view": 0,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "fa fa-shopping-cart",
+ "idx": 29,
+ "image_view": 0,
+ "in_create": 0,
+ "is_submittable": 1,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "menu_index": 0,
+ "modified": "2017-11-15 01:01:44.094596",
+ "modified_by": "Administrator",
+ "module": "Buying",
+ "name": "Supplier Quotation",
+ "owner": "Administrator",
"permissions": [
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Manufacturing Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Manufacturing Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Purchase Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Purchase Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 1,
- "delete": 0,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Purchase User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 0,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Purchase User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"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": 1,
- "role": "Stock 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": 1,
+ "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": 1,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Purchase Manager",
- "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": 1,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Purchase Manager",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 1
}
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 1,
- "search_fields": "status, transaction_date, supplier,grand_total",
- "show_name_in_global_search": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "timeline_field": "supplier",
- "title_field": "title",
- "track_changes": 0,
+ ],
+ "quick_entry": 0,
+ "read_only": 0,
+ "read_only_onload": 1,
+ "search_fields": "status, transaction_date, supplier,grand_total",
+ "show_name_in_global_search": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "timeline_field": "supplier",
+ "title_field": "title",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/config/desktop.py b/erpnext/config/desktop.py
index ce6c0c3..f30860a 100644
--- a/erpnext/config/desktop.py
+++ b/erpnext/config/desktop.py
@@ -194,12 +194,12 @@
"type": "list"
},
{
- "module_name": "Student Attendance",
- "color": "#3aacba",
+ "module_name": "Student Attendance Tool",
+ "color": "#C0392B",
"icon": "octicon octicon-checklist",
- "label": _("Student Attendance"),
- "link": "List/Student Attendance",
- "_doctype": "Student Attendance",
+ "label": _("Student Attendance Tool"),
+ "link": "List/Student Attendance Tool",
+ "_doctype": "Student Attendance Tool",
"type": "list"
},
{
@@ -257,11 +257,11 @@
"type": "list"
},
{
- "module_name": "Schools",
- "color": "#DE2B37",
+ "module_name": "Education",
+ "color": "#428B46",
"icon": "octicon octicon-mortar-board",
"type": "module",
- "label": _("Schools")
+ "label": _("Education")
},
{
"module_name": "Healthcare",
diff --git a/erpnext/config/schools.py b/erpnext/config/education.py
similarity index 98%
rename from erpnext/config/schools.py
rename to erpnext/config/education.py
index 1e7d1b0..08846a2 100644
--- a/erpnext/config/schools.py
+++ b/erpnext/config/education.py
@@ -217,7 +217,7 @@
},
{
"type": "doctype",
- "name": "School Settings"
+ "name": "Education Settings"
}
]
},
diff --git a/erpnext/config/stock.py b/erpnext/config/stock.py
index cb17deb..e0207d0 100644
--- a/erpnext/config/stock.py
+++ b/erpnext/config/stock.py
@@ -268,6 +268,12 @@
"name": "Itemwise Recommended Reorder Level",
"doctype": "Item"
},
+ {
+ "type": "report",
+ "is_query_report": True,
+ "name": "Item Variant Details",
+ "doctype": "Item"
+ }
]
},
{
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 74a9000..fb97c91 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -4,7 +4,7 @@
from __future__ import unicode_literals
import frappe, erpnext
from frappe import _, throw
-from frappe.utils import today, flt, cint, fmt_money, formatdate, getdate
+from frappe.utils import today, flt, cint, fmt_money, formatdate, getdate, add_days, add_months, get_last_day
from erpnext.setup.utils import get_exchange_rate
from erpnext.accounts.utils import get_fiscal_years, validate_fiscal_year, get_account_currency
from erpnext.utilities.transaction_base import TransactionBase
@@ -26,11 +26,19 @@
return self.__company_currency
def onload(self):
- self.get("__onload").make_payment_via_journal_entry = frappe.db.get_single_value('Accounts Settings', 'make_payment_via_journal_entry')
+ self.get("__onload").make_payment_via_journal_entry \
+ = frappe.db.get_single_value('Accounts Settings', 'make_payment_via_journal_entry')
+
+ if self.is_new():
+ relevant_docs = ("Quotation", "Purchase Order", "Sales Order",
+ "Purchase Invoice", "Sales Invoice")
+ if self.doctype in relevant_docs:
+ self.set_payment_schedule()
def validate(self):
if self.get("_action") and self._action != "update_after_submit":
self.set_missing_values(for_validate=True)
+
self.validate_date_with_fiscal_year()
if self.meta.get_field("currency"):
@@ -42,9 +50,7 @@
validate_return(self)
self.set_total_in_words()
- if self.doctype in ("Sales Invoice", "Purchase Invoice") and not self.is_return:
- self.validate_due_date()
- self.validate_advance_entries()
+ self.validate_all_documents_schedule()
if self.meta.get_field("taxes_and_charges"):
self.validate_enabled_taxes_and_charges()
@@ -55,6 +61,26 @@
if self.doctype == 'Purchase Invoice':
self.validate_paid_amount()
+ def validate_invoice_documents_schedule(self):
+ self.validate_payment_schedule_dates()
+ self.set_due_date()
+ self.validate_invoice_portion()
+ self.set_payment_schedule()
+ self.validate_payment_schedule_amount()
+ self.validate_due_date()
+ self.validate_advance_entries()
+
+ def validate_non_invoice_documents_schedule(self):
+ self.validate_invoice_portion()
+ self.set_payment_schedule()
+ self.validate_payment_schedule_amount()
+
+ def validate_all_documents_schedule(self):
+ if self.doctype in ("Sales Invoice", "Purchase Invoice") and not self.is_return:
+ self.validate_invoice_documents_schedule()
+ elif self.doctype in ("Quotation", "Purchase Order", "Sales Order"):
+ self.validate_non_invoice_documents_schedule()
+
def before_print(self):
if self.doctype in ['Purchase Order', 'Sales Order']:
if self.get("group_same_items"):
@@ -66,19 +92,19 @@
if cint(is_paid) == 1:
if flt(self.paid_amount) == 0 and flt(self.outstanding_amount) > 0:
if self.cash_bank_account:
- self.paid_amount = flt(flt(self.grand_total) - flt(self.write_off_amount),
- self.precision("paid_amount"))
- self.base_paid_amount = flt(self.paid_amount * self.conversion_rate, self.precision("base_paid_amount"))
+ self.paid_amount = flt(flt(self.outstanding_amount), self.precision("paid_amount"))
+ self.base_paid_amount = flt(self.paid_amount * self.conversion_rate,
+ self.precision("base_paid_amount"))
else:
# show message that the amount is not paid
self.paid_amount = 0
frappe.throw(_("Note: Payment Entry will not be created since 'Cash or Bank Account' was not specified"))
else:
- frappe.db.set(self,'paid_amount',0)
+ frappe.db.set(self, 'paid_amount', 0)
def set_missing_values(self, for_validate=False):
if frappe.flags.in_test:
- for fieldname in ["posting_date","transaction_date"]:
+ for fieldname in ["posting_date", "transaction_date"]:
if self.meta.get_field(fieldname) and not self.get(fieldname):
self.set(fieldname, today())
break
@@ -109,9 +135,9 @@
if not self.due_date:
frappe.throw(_("Due Date is mandatory"))
- validate_due_date(self.posting_date, self.due_date, "Customer", self.customer, self.company)
+ validate_due_date(self.posting_date, self.due_date, "Customer", self.customer)
elif self.doctype == "Purchase Invoice":
- validate_due_date(self.posting_date, self.due_date, "Supplier", self.supplier, self.company)
+ validate_due_date(self.posting_date, self.due_date, "Supplier", self.supplier)
def set_price_list_currency(self, buying_or_selling):
if self.meta.get_field("posting_date"):
@@ -299,6 +325,27 @@
"allocated_amount": flt(d.amount) if d.against_order else 0
})
+ def apply_shipping_rule(self):
+ if self.shipping_rule:
+ shipping_rule = frappe.get_doc("Shipping Rule", self.shipping_rule)
+ shipping_rule.apply(self)
+ self.calculate_taxes_and_totals()
+
+ def get_shipping_address(self):
+ '''Returns Address object from shipping address fields if present'''
+
+ # shipping address fields can be `shipping_address_name` or `shipping_address`
+ # try getting value from both
+
+ for fieldname in ('shipping_address_name', 'shipping_address'):
+ shipping_field = self.meta.get_field(fieldname)
+ if shipping_field and shipping_field.fieldtype == 'Link':
+ if self.get(fieldname):
+ return frappe.get_doc('Address', self.get(fieldname))
+
+ return {}
+
+
def get_advance_entries(self, include_unallocated=True):
if self.doctype == "Sales Invoice":
party_account = self.debit_to
@@ -598,6 +645,73 @@
for item in duplicate_list:
self.remove(item)
+ def set_payment_schedule(self):
+ posting_date = self.get("posting_date") or self.get("transaction_date")
+ date = self.get("due_date")
+ due_date = date or posting_date
+ grand_total = self.get("rounded_total") or self.grand_total
+
+ if not self.get("payment_schedule"):
+ if self.get("payment_terms_template"):
+ data = get_payment_terms(self.payment_terms_template, posting_date, grand_total)
+ for item in data:
+ self.append("payment_schedule", item)
+ else:
+ data = dict(due_date=due_date, invoice_portion=100, payment_amount=grand_total)
+ self.append("payment_schedule", data)
+ else:
+ for d in self.get("payment_schedule"):
+ d.payment_amount = grand_total * flt(d.invoice_portion) / 100
+
+ def set_due_date(self):
+ due_dates = [d.due_date for d in self.get("payment_schedule") if d.due_date]
+ if due_dates:
+ self.due_date = max(due_dates)
+
+ def validate_payment_schedule_dates(self):
+ dates = []
+ li = []
+ if self.due_date and getdate(self.due_date) < getdate(self.posting_date):
+ frappe.throw(_("Due Date cannot be before posting date"))
+
+ for d in self.get("payment_schedule"):
+ if getdate(d.due_date) < getdate(self.posting_date):
+ frappe.throw(_("Row {0}: Due Date cannot be before posting date").format(d.idx))
+ elif d.due_date in dates:
+ li.append('{0} in row {1}'.format(d.due_date, d.idx))
+ # frappe.throw(_("Row {0}: Duplicate due date found").format(d.idx))
+ dates.append(d.due_date)
+
+ if li:
+ duplicates = '<br>' + '<br>'.join(li)
+ frappe.throw(_("Rows with duplicate due dates in other rows were found: {list}")
+ .format(list=duplicates))
+
+ def validate_payment_schedule_amount(self):
+ if self.get("payment_schedule"):
+ total = 0
+ for d in self.get("payment_schedule"):
+ total += flt(d.payment_amount)
+
+ grand_total = self.get("rounded_total") or self.grand_total
+ if total != grand_total:
+ frappe.throw(_("Total Payment Amount in Payment Schedule must be equal to Grand / Rounded Total"))
+
+ def validate_invoice_portion(self):
+ if self.get("payment_schedule"):
+ total_portion = 0
+ for term in self.payment_schedule:
+ total_portion += flt(term.get('invoice_portion', 0))
+
+ if flt(total_portion, 2) != 100.00:
+ frappe.throw(_('Combined invoice portion must equal 100%'), indicator='red')
+
+ def is_rounded_total_disabled(self):
+ if self.meta.get_field("disable_rounded_total"):
+ return self.disable_rounded_total
+ else:
+ return frappe.db.get_single_value("Global Defaults", "disable_rounded_total")
+
@frappe.whitelist()
def get_tax_rate(account_head):
return frappe.db.get_value("Account", account_head, ["tax_rate", "account_name"], as_dict=True)
@@ -769,4 +883,43 @@
where due_date < CURDATE() and docstatus = 1 and outstanding_amount > 0""")
frappe.db.sql(""" update `tabPurchase Invoice` set status = 'Overdue'
- where due_date < CURDATE() and docstatus = 1 and outstanding_amount > 0""")
\ No newline at end of file
+ where due_date < CURDATE() and docstatus = 1 and outstanding_amount > 0""")
+
+@frappe.whitelist()
+def get_payment_terms(terms_template, posting_date=None, grand_total=None):
+ if not terms_template:
+ return
+
+ terms_doc = frappe.get_doc("Payment Terms Template", terms_template)
+
+ schedule = []
+ for d in terms_doc.get("terms"):
+ term_details = get_payment_term_details(d, posting_date, grand_total)
+ schedule.append(term_details)
+
+ return schedule
+
+@frappe.whitelist()
+def get_payment_term_details(term, posting_date=None, grand_total=None):
+ term_details = frappe._dict()
+ if isinstance(term, unicode):
+ term = frappe.get_doc("Payment Term", term)
+ else:
+ term_details.payment_term = term.payment_term
+ term_details.description = term.description
+ term_details.invoice_portion = term.invoice_portion
+ term_details.payment_amount = flt(term.invoice_portion) * flt(grand_total) / 100
+ if posting_date:
+ term_details.due_date = get_due_date(posting_date, term)
+ return term_details
+
+def get_due_date(posting_date, term):
+ due_date = None
+ if term.due_date_based_on == "Day(s) after invoice date":
+ due_date = add_days(posting_date, term.credit_days)
+ elif term.due_date_based_on == "Day(s) after the end of the invoice month":
+ due_date = add_days(get_last_day(posting_date), term.credit_days)
+ elif term.due_date_based_on == "Month(s) after the end of the invoice month":
+ due_date = add_months(get_last_day(posting_date), term.credit_months)
+
+ return due_date
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index d301081..9aff118 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -171,7 +171,7 @@
for item in self.get("items"):
if self.doctype in ["Purchase Receipt", "Purchase Invoice"]:
item.rm_supp_cost = 0.0
- if item.item_code in self.sub_contracted_items:
+ if item.bom and item.item_code in self.sub_contracted_items:
self.update_raw_materials_supplied(item, raw_material_table)
if [item.item_code, item.name] not in parent_items:
@@ -420,4 +420,5 @@
if d.schedule_date and getdate(d.schedule_date) < getdate(self.transaction_date):
frappe.throw(_("Expected Date cannot be before Transaction Date"))
else:
- frappe.throw(_("Please enter Schedule Date"))
\ No newline at end of file
+ frappe.throw(_("Please enter Schedule Date"))
+
diff --git a/erpnext/controllers/item_variant.py b/erpnext/controllers/item_variant.py
index 821c81c..9817f0f 100644
--- a/erpnext/controllers/item_variant.py
+++ b/erpnext/controllers/item_variant.py
@@ -169,6 +169,74 @@
return variant
+@frappe.whitelist()
+def enqueue_multiple_variant_creation(item, args):
+ # There can be innumerable attribute combinations, enqueue
+ frappe.enqueue("erpnext.controllers.item_variant.create_multiple_variants",
+ item=item, args=args, now=frappe.flags.in_test);
+
+def create_multiple_variants(item, args):
+ if isinstance(args, basestring):
+ args = json.loads(args)
+
+ args_set = generate_keyed_value_combinations(args)
+
+ for attribute_values in args_set:
+ if not get_variant(item, args=attribute_values):
+ variant = create_variant(item, attribute_values)
+ variant.save()
+
+def generate_keyed_value_combinations(args):
+ """
+ From this:
+
+ args = {"attr1": ["a", "b", "c"], "attr2": ["1", "2"], "attr3": ["A"]}
+
+ To this:
+
+ [
+ {u'attr1': u'a', u'attr2': u'1', u'attr3': u'A'},
+ {u'attr1': u'b', u'attr2': u'1', u'attr3': u'A'},
+ {u'attr1': u'c', u'attr2': u'1', u'attr3': u'A'},
+ {u'attr1': u'a', u'attr2': u'2', u'attr3': u'A'},
+ {u'attr1': u'b', u'attr2': u'2', u'attr3': u'A'},
+ {u'attr1': u'c', u'attr2': u'2', u'attr3': u'A'}
+ ]
+
+ """
+ # Return empty list if empty
+ if not args:
+ return []
+
+ # Turn `args` into a list of lists of key-value tuples:
+ # [
+ # [(u'attr2', u'1'), (u'attr2', u'2')],
+ # [(u'attr3', u'A')],
+ # [(u'attr1', u'a'), (u'attr1', u'b'), (u'attr1', u'c')]
+ # ]
+ key_value_lists = [[(key, val) for val in args[key]] for key in args.keys()]
+
+ # Store the first, but as objects
+ # [{u'attr2': u'1'}, {u'attr2': u'2'}]
+ results = key_value_lists.pop(0)
+ results = [{d[0]: d[1]} for d in results]
+
+ # Iterate the remaining
+ # Take the next list to fuse with existing results
+ for l in key_value_lists:
+ new_results = []
+ for res in results:
+ for key_val in l:
+ # create a new clone of object in result
+ obj = copy.deepcopy(res)
+ # to be used with every incoming new value
+ obj[key_val[0]] = key_val[1]
+ # and pushed into new_results
+ new_results.append(obj)
+ results = new_results
+
+ return results
+
def copy_attributes_to_variant(item, variant):
from frappe.model import no_value_fields
@@ -208,7 +276,7 @@
attributes_description = ""
for d in variant.attributes:
attributes_description += "<div>" + d.attribute + ": " + cstr(d.attribute_value) + "</div>"
-
+
if attributes_description not in variant.description:
variant.description += attributes_description
diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py
index 0074560..d609b9e 100644
--- a/erpnext/controllers/sales_and_purchase_return.py
+++ b/erpnext/controllers/sales_and_purchase_return.py
@@ -256,6 +256,9 @@
target_doc.dn_detail = source_doc.dn_detail
target_doc.expense_account = source_doc.expense_account
+ def update_terms(source_doc, target_doc, source_parent):
+ target_doc.payment_amount = -source_doc.payment_amount
+
doclist = get_mapped_doc(doctype, source_name, {
doctype: {
"doctype": doctype,
@@ -272,6 +275,10 @@
},
"postprocess": update_item
},
+ "Payment Schedule": {
+ "doctype": "Payment Schedule",
+ "postprocess": update_terms
+ }
}, target_doc, set_missing_values)
return doclist
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index c1028a5..75704b0 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -28,8 +28,7 @@
super(SellingController, self).onload()
if self.doctype in ("Sales Order", "Delivery Note", "Sales Invoice"):
for item in self.get("items"):
- item.update(get_bin_details(item.item_code,
- item.warehouse))
+ item.update(get_bin_details(item.item_code, item.warehouse))
def validate(self):
super(SellingController, self).validate()
@@ -67,38 +66,6 @@
self.set_price_list_currency("Selling")
self.set_missing_item_details(for_validate=for_validate)
- def apply_shipping_rule(self):
- if self.shipping_rule:
- shipping_rule = frappe.get_doc("Shipping Rule", self.shipping_rule)
- value = self.base_net_total
-
- # TODO
- # shipping rule calculation based on item's net weight
-
- shipping_amount = 0.0
- for condition in shipping_rule.get("conditions"):
- if not condition.to_value or (flt(condition.from_value) <= value <= flt(condition.to_value)):
- shipping_amount = condition.shipping_amount
- break
-
- shipping_charge = {
- "doctype": "Sales Taxes and Charges",
- "charge_type": "Actual",
- "account_head": shipping_rule.account,
- "cost_center": shipping_rule.cost_center
- }
-
- existing_shipping_charge = self.get("taxes", filters=shipping_charge)
- if existing_shipping_charge:
- # take the last record found
- existing_shipping_charge[-1].tax_amount = shipping_amount
- else:
- shipping_charge["tax_amount"] = shipping_amount
- shipping_charge["description"] = shipping_rule.label
- self.append("taxes", shipping_charge)
-
- self.calculate_taxes_and_totals()
-
def remove_shipping_charge(self):
if self.shipping_rule:
shipping_rule = frappe.get_doc("Shipping Rule", self.shipping_rule)
@@ -114,14 +81,15 @@
def set_total_in_words(self):
from frappe.utils import money_in_words
- disable_rounded_total = cint(frappe.db.get_value("Global Defaults", None, "disable_rounded_total"))
if self.meta.get_field("base_in_words"):
- self.base_in_words = money_in_words(disable_rounded_total and
- abs(self.base_grand_total) or abs(self.base_rounded_total), self.company_currency)
+ base_amount = abs(self.base_grand_total
+ if self.is_rounded_total_disabled() else self.base_rounded_total)
+ self.base_in_words = money_in_words(base_amount, self.company_currency)
+
if self.meta.get_field("in_words"):
- self.in_words = money_in_words(disable_rounded_total and
- abs(self.grand_total) or abs(self.rounded_total), self.currency)
+ amount = abs(self.grand_total if self.is_rounded_total_disabled() else self.rounded_total)
+ self.in_words = money_in_words(amount, self.currency)
def calculate_commission(self):
if self.meta.get_field("commission_rate"):
diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py
index e9672df..8232020 100644
--- a/erpnext/controllers/taxes_and_totals.py
+++ b/erpnext/controllers/taxes_and_totals.py
@@ -233,7 +233,8 @@
# if tax/charges is for deduction, multiply by -1
if getattr(tax, "category", None):
tax_amount = 0.0 if (tax.category == "Valuation") else tax_amount
- tax_amount *= -1.0 if (tax.add_deduct_tax == "Deduct") else 1.0
+ if self.doc.doctype in ["Purchase Order", "Purchase Invoice", "Purchase Receipt", "Supplier Quotation"]:
+ tax_amount *= -1.0 if (tax.add_deduct_tax == "Deduct") else 1.0
return tax_amount
def set_cumulative_total(self, row_idx, tax):
@@ -328,20 +329,19 @@
self.set_rounded_total()
def set_rounded_total(self):
- if frappe.db.get_single_value("Global Defaults", "disable_rounded_total"):
- self.doc.rounded_total = self.doc.base_rounded_total = 0
- return
-
if self.doc.meta.get_field("rounded_total"):
+ if self.doc.is_rounded_total_disabled():
+ self.doc.rounded_total = self.doc.base_rounded_total = 0
+ return
+
self.doc.rounded_total = round_based_on_smallest_currency_fraction(self.doc.grand_total,
self.doc.currency, self.doc.precision("rounded_total"))
- if self.doc.meta.get_field("base_rounded_total"):
- company_currency = erpnext.get_company_currency(self.doc.company)
+ #if print_in_rate is set, we would have already calculated rounding adjustment
+ self.doc.rounding_adjustment += flt(self.doc.rounded_total - self.doc.grand_total,
+ self.doc.precision("rounding_adjustment"))
- self.doc.base_rounded_total = \
- round_based_on_smallest_currency_fraction(self.doc.base_grand_total,
- company_currency, self.doc.precision("base_rounded_total"))
+ self._set_in_company_currency(self.doc, ["rounding_adjustment", "rounded_total"])
def _cleanup(self):
for tax in self.doc.get("taxes"):
@@ -404,7 +404,8 @@
actual_tax_amount = flt(actual_taxes_dict.get(tax.row_id, 0)) * flt(tax.rate) / 100
actual_taxes_dict.setdefault(tax.idx, actual_tax_amount)
- return flt(self.doc.grand_total - sum(actual_taxes_dict.values()), self.doc.precision("grand_total"))
+ return flt(self.doc.grand_total - sum(actual_taxes_dict.values()),
+ self.doc.precision("grand_total"))
def calculate_total_advance(self):
@@ -442,30 +443,31 @@
self.doc.round_floats_in(self.doc, ["grand_total", "total_advance", "write_off_amount"])
self._set_in_company_currency(self.doc, ['write_off_amount'])
- if self.doc.party_account_currency == self.doc.currency:
- total_amount_to_pay = flt(self.doc.grand_total - self.doc.total_advance
- - flt(self.doc.write_off_amount), self.doc.precision("grand_total"))
- else:
- total_amount_to_pay = flt(flt(self.doc.grand_total *
- self.doc.conversion_rate, self.doc.precision("grand_total")) - self.doc.total_advance
- - flt(self.doc.base_write_off_amount), self.doc.precision("grand_total"))
+ if self.doc.doctype in ["Sales Invoice", "Purchase Invoice"]:
+ grand_total = self.doc.rounded_total or self.doc.grand_total
+ if self.doc.party_account_currency == self.doc.currency:
+ total_amount_to_pay = flt(grand_total - self.doc.total_advance
+ - flt(self.doc.write_off_amount), self.doc.precision("grand_total"))
+ else:
+ total_amount_to_pay = flt(flt(grand_total *
+ self.doc.conversion_rate, self.doc.precision("grand_total")) - self.doc.total_advance
+ - flt(self.doc.base_write_off_amount), self.doc.precision("grand_total"))
- if self.doc.doctype == "Sales Invoice":
self.doc.round_floats_in(self.doc, ["paid_amount"])
- self.calculate_write_off_amount()
- self.calculate_change_amount()
-
+ change_amount = 0
+
+ if self.doc.doctype == "Sales Invoice":
+ self.calculate_write_off_amount()
+ self.calculate_change_amount()
+ change_amount = self.doc.change_amount \
+ if self.doc.party_account_currency == self.doc.currency else self.doc.base_change_amount
+
paid_amount = self.doc.paid_amount \
if self.doc.party_account_currency == self.doc.currency else self.doc.base_paid_amount
-
- change_amount = self.doc.change_amount \
- if self.doc.party_account_currency == self.doc.currency else self.doc.base_change_amount
- self.doc.outstanding_amount = flt(total_amount_to_pay - flt(paid_amount) +
- flt(change_amount), self.doc.precision("outstanding_amount"))
- elif self.doc.doctype == "Purchase Invoice":
- self.doc.outstanding_amount = flt(total_amount_to_pay, self.doc.precision("outstanding_amount"))
+ self.doc.outstanding_amount = flt(total_amount_to_pay - flt(paid_amount) + flt(change_amount),
+ self.doc.precision("outstanding_amount"))
def calculate_paid_amount(self):
paid_amount = base_paid_amount = 0.0
@@ -485,7 +487,9 @@
def calculate_change_amount(self):
self.doc.change_amount = 0.0
self.doc.base_change_amount = 0.0
- if self.doc.paid_amount > self.doc.grand_total and not self.doc.is_return \
+
+ if self.doc.doctype == "Sales Invoice" \
+ and self.doc.paid_amount > self.doc.grand_total and not self.doc.is_return \
and any([d.type == "Cash" for d in self.doc.payments]):
self.doc.change_amount = flt(self.doc.paid_amount - self.doc.grand_total +
@@ -496,8 +500,8 @@
def calculate_write_off_amount(self):
if flt(self.doc.change_amount) > 0:
- self.doc.write_off_amount = flt(self.doc.grand_total - self.doc.paid_amount + self.doc.change_amount,
- self.doc.precision("write_off_amount"))
+ self.doc.write_off_amount = flt(self.doc.grand_total - self.doc.paid_amount
+ + self.doc.change_amount, self.doc.precision("write_off_amount"))
self.doc.base_write_off_amount = flt(self.doc.write_off_amount * self.doc.conversion_rate,
self.doc.precision("base_write_off_amount"))
diff --git a/erpnext/crm/doctype/opportunity/opportunity.json b/erpnext/crm/doctype/opportunity/opportunity.json
index 89eb191..ea07ce2 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.json
+++ b/erpnext/crm/doctype/opportunity/opportunity.json
@@ -270,8 +270,8 @@
"collapsible": 0,
"columns": 0,
"default": "Sales",
- "fieldname": "enquiry_type",
- "fieldtype": "Select",
+ "fieldname": "opportunity_type",
+ "fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -284,14 +284,14 @@
"no_copy": 0,
"oldfieldname": "enquiry_type",
"oldfieldtype": "Select",
- "options": "Sales\nMaintenance",
+ "options": "Opportunity Type",
"permlevel": 0,
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
- "reqd": 1,
+ "reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
@@ -1189,7 +1189,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-21 02:07:46.486433",
+ "modified": "2017-11-15 17:44:46.241548",
"modified_by": "Administrator",
"module": "CRM",
"name": "Opportunity",
@@ -1239,7 +1239,7 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
- "search_fields": "status,transaction_date,customer,lead,enquiry_type,territory,company",
+ "search_fields": "status,transaction_date,customer,lead,opportunity_type,territory,company",
"show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "DESC",
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index e9a7baa..b8077fe 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -246,7 +246,7 @@
"doctype": "Quotation",
"field_map": {
"enquiry_from": "quotation_to",
- "enquiry_type": "order_type",
+ "opportunity_type": "order_type",
"name": "enq_no",
}
},
@@ -267,10 +267,7 @@
def make_request_for_quotation(source_name, target_doc=None):
doclist = get_mapped_doc("Opportunity", source_name, {
"Opportunity": {
- "doctype": "Request for Quotation",
- "validation": {
- "enquiry_type": ["=", "Sales"]
- }
+ "doctype": "Request for Quotation"
},
"Opportunity Item": {
"doctype": "Request for Quotation Item",
diff --git a/erpnext/crm/doctype/opportunity/opportunity_list.js b/erpnext/crm/doctype/opportunity/opportunity_list.js
index 55a5463..0dbbf8a 100644
--- a/erpnext/crm/doctype/opportunity/opportunity_list.js
+++ b/erpnext/crm/doctype/opportunity/opportunity_list.js
@@ -1,5 +1,5 @@
frappe.listview_settings['Opportunity'] = {
- add_fields: ["customer_name", "enquiry_type", "enquiry_from", "status"],
+ add_fields: ["customer_name", "opportunity_type", "enquiry_from", "status"],
get_indicator: function(doc) {
var indicator = [__(doc.status), frappe.utils.guess_colour(doc.status), "status,=," + doc.status];
if(doc.status=="Quotation") {
diff --git a/erpnext/crm/doctype/opportunity/test_opportunity.py b/erpnext/crm/doctype/opportunity/test_opportunity.py
index 61b583c..658e31f 100644
--- a/erpnext/crm/doctype/opportunity/test_opportunity.py
+++ b/erpnext/crm/doctype/opportunity/test_opportunity.py
@@ -30,7 +30,7 @@
args = {
"doctype": "Opportunity",
"contact_email":"new.opportunity@example.com",
- "enquiry_type": "Sales",
+ "opportunity_type": "Sales",
"with_items": 0,
"transaction_date": today()
}
@@ -65,7 +65,7 @@
opp_doc = frappe.get_doc({
"doctype": "Opportunity",
"enquiry_from": args.enquiry_from or "Customer",
- "enquiry_type": "Sales",
+ "opportunity_type": "Sales",
"with_items": args.with_items or 0,
"transaction_date": today()
})
diff --git a/erpnext/schools/doctype/__init__.py b/erpnext/crm/doctype/opportunity_type/__init__.py
similarity index 100%
copy from erpnext/schools/doctype/__init__.py
copy to erpnext/crm/doctype/opportunity_type/__init__.py
diff --git a/erpnext/schools/doctype/school_settings/school_settings.js b/erpnext/crm/doctype/opportunity_type/opportunity_type.js
similarity index 78%
copy from erpnext/schools/doctype/school_settings/school_settings.js
copy to erpnext/crm/doctype/opportunity_type/opportunity_type.js
index 2707c42..174625e 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.js
+++ b/erpnext/crm/doctype/opportunity_type/opportunity_type.js
@@ -1,7 +1,7 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-frappe.ui.form.on('School Settings', {
+frappe.ui.form.on('Opportunity Type', {
refresh: function(frm) {
}
diff --git a/erpnext/schools/doctype/fee_category/fee_category.json b/erpnext/crm/doctype/opportunity_type/opportunity_type.json
similarity index 61%
copy from erpnext/schools/doctype/fee_category/fee_category.json
copy to erpnext/crm/doctype/opportunity_type/opportunity_type.json
index 2b55f8d..3ada0f1 100644
--- a/erpnext/schools/doctype/fee_category/fee_category.json
+++ b/erpnext/crm/doctype/opportunity_type/opportunity_type.json
@@ -2,15 +2,16 @@
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 1,
- "allow_rename": 1,
- "autoname": "field:category_name",
+ "allow_rename": 0,
+ "autoname": "Prompt",
"beta": 0,
- "creation": "2015-09-16 13:01:10.448734",
+ "creation": "2017-10-06 12:55:43.318773",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "Setup",
- "editable_grid": 0,
+ "editable_grid": 1,
+ "engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
@@ -18,38 +19,6 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "category_name",
- "fieldtype": "Data",
- "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": "Name",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "earning_name",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "precision": "",
- "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": "description",
"fieldtype": "Small Text",
"hidden": 0,
@@ -62,8 +31,6 @@
"label": "Description",
"length": 0,
"no_copy": 0,
- "oldfieldname": "description",
- "oldfieldtype": "Small Text",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -74,14 +41,12 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "unique": 0,
- "width": "300px"
+ "unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
- "icon": "fa fa-flag",
"idx": 0,
"image_view": 0,
"in_create": 0,
@@ -89,12 +54,11 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "menu_index": 0,
- "modified": "2017-11-02 17:57:18.069158",
+ "modified": "2017-11-15 17:27:12.271303",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "Fee Category",
- "name_case": "",
+ "module": "CRM",
+ "name": "Opportunity Type",
+ "name_case": "Title Case",
"owner": "Administrator",
"permissions": [
{
@@ -111,7 +75,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Academics User",
+ "role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
@@ -131,7 +95,7 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Accounts User",
+ "role": "Sales Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
@@ -141,8 +105,8 @@
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
- "create": 1,
- "delete": 1,
+ "create": 0,
+ "delete": 0,
"email": 1,
"export": 1,
"if_owner": 0,
@@ -151,21 +115,21 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Accounts Manager",
+ "role": "Sales User",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
- "write": 1
+ "write": 0
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
- "restrict_to_domain": "Education",
- "search_fields": "description",
- "show_name_in_global_search": 1,
+ "search_fields": "",
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
- "track_changes": 0,
+ "title_field": "",
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/crm/doctype/opportunity_type/opportunity_type.py b/erpnext/crm/doctype/opportunity_type/opportunity_type.py
new file mode 100644
index 0000000..48abac3
--- /dev/null
+++ b/erpnext/crm/doctype/opportunity_type/opportunity_type.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class OpportunityType(Document):
+ pass
diff --git a/erpnext/crm/doctype/opportunity_type/test_opportunity_type.js b/erpnext/crm/doctype/opportunity_type/test_opportunity_type.js
new file mode 100644
index 0000000..3a1ede9
--- /dev/null
+++ b/erpnext/crm/doctype/opportunity_type/test_opportunity_type.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Opportunity Type", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Opportunity Type
+ () => frappe.tests.make('Opportunity Type', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/crm/doctype/opportunity_type/test_opportunity_type.py b/erpnext/crm/doctype/opportunity_type/test_opportunity_type.py
new file mode 100644
index 0000000..6410bbc
--- /dev/null
+++ b/erpnext/crm/doctype/opportunity_type/test_opportunity_type.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestOpportunityType(unittest.TestCase):
+ pass
diff --git a/erpnext/demo/data/item_schools.json b/erpnext/demo/data/item_education.json
similarity index 100%
rename from erpnext/demo/data/item_schools.json
rename to erpnext/demo/data/item_education.json
diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py
index 35256b5..42ef896 100644
--- a/erpnext/demo/demo.py
+++ b/erpnext/demo/demo.py
@@ -3,7 +3,7 @@
import frappe, sys
import erpnext
import frappe.utils
-from erpnext.demo.user import hr, sales, purchase, manufacturing, stock, accounts, projects, fixed_asset, schools
+from erpnext.demo.user import hr, sales, purchase, manufacturing, stock, accounts, projects, fixed_asset, education
from erpnext.demo.setup import education, manufacture, setup_data, healthcare
"""
Make a demo
@@ -83,7 +83,7 @@
sales.work()
manufacturing.work()
elif domain=='Education':
- schools.work()
+ education.work()
except:
frappe.db.set_global('demo_last_date', current_date)
diff --git a/erpnext/demo/setup/education.py b/erpnext/demo/setup/education.py
index a124ee7..2a894f7 100644
--- a/erpnext/demo/setup/education.py
+++ b/erpnext/demo/setup/education.py
@@ -31,7 +31,7 @@
frappe.db.commit()
def setup_item():
- items = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'item_schools.json')).read())
+ items = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'item_education.json')).read())
for i in items:
item = frappe.new_doc('Item')
item.update(i)
diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
index 34e9a3e..c7babc0 100644
--- a/erpnext/demo/setup/setup_data.py
+++ b/erpnext/demo/setup/setup_data.py
@@ -229,10 +229,10 @@
user.add_roles('HR User', 'Projects User')
frappe.db.set_global('demo_projects_user', user.name)
- if not frappe.db.get_global('demo_schools_user'):
+ if not frappe.db.get_global('demo_education_user'):
user = frappe.get_doc('User', 'aromn@example.com')
user.add_roles('Academics User')
- frappe.db.set_global('demo_schools_user', user.name)
+ frappe.db.set_global('demo_education_user', user.name)
#Add Expense Approver
user = frappe.get_doc('User', 'WanMai@example.com')
@@ -348,8 +348,10 @@
budget.action_if_annual_budget_exceeded = "Warn"
expense_ledger_count = frappe.db.count("Account", {"is_group": "0", "root_type": "Expense"})
- add_random_children(budget, "accounts", rows=random.randint(10, expense_ledger_count), randomize = { "account": ("Account", {"is_group": "0", "root_type": "Expense"})
- }, unique="account")
+ add_random_children(budget, "accounts", rows=random.randint(10, expense_ledger_count),
+ randomize = {
+ "account": ("Account", {"is_group": "0", "root_type": "Expense"})
+ }, unique="account")
for d in budget.accounts:
d.budget_amount = random.randint(5, 100) * 10000
@@ -361,6 +363,7 @@
company_abbr = frappe.db.get_value("Company", erpnext.get_default_company(), "abbr")
pos = frappe.new_doc('POS Profile')
pos.user = frappe.db.get_global('demo_accounts_user')
+ pos.pos_profile_name = "Demo POS Profile"
pos.naming_series = 'SINV-'
pos.update_stock = 0
pos.write_off_account = 'Cost of Goods Sold - '+ company_abbr
diff --git a/erpnext/demo/user/schools.py b/erpnext/demo/user/education.py
similarity index 92%
rename from erpnext/demo/user/schools.py
rename to erpnext/demo/user/education.py
index 422c31a..8c82f87 100644
--- a/erpnext/demo/user/schools.py
+++ b/erpnext/demo/user/education.py
@@ -1,3 +1,4 @@
+
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
@@ -8,13 +9,12 @@
from frappe.utils import cstr
from frappe.utils.make_random import get_random
from datetime import timedelta
-from erpnext.schools.api import get_student_group_students, make_attendance_records, enroll_student, \
+from erpnext.education.api import get_student_group_students, make_attendance_records, enroll_student, \
get_fee_schedule, collect_fees, get_course
-from erpnext.schools.doctype.program_enrollment.program_enrollment import get_program_courses
-from erpnext.schools.doctype.student_group.student_group import get_students
+
def work():
- frappe.set_user(frappe.db.get_global('demo_schools_user'))
+ frappe.set_user(frappe.db.get_global('demo_education_user'))
for d in xrange(20):
approve_random_student_applicant()
enroll_random_student(frappe.flags.current_date)
diff --git a/erpnext/demo/user/sales.py b/erpnext/demo/user/sales.py
index ddd36ef..54ea173 100644
--- a/erpnext/demo/user/sales.py
+++ b/erpnext/demo/user/sales.py
@@ -54,7 +54,7 @@
"doctype": "Opportunity",
"enquiry_from": "Customer",
"customer": get_random("Customer"),
- "enquiry_type": "Sales",
+ "opportunity_type": "Sales",
"with_items": 1,
"transaction_date": frappe.flags.current_date,
})
diff --git a/erpnext/docs/assets/img/schools/__init__.py b/erpnext/docs/assets/img/education/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/__init__.py
rename to erpnext/docs/assets/img/education/__init__.py
diff --git a/erpnext/docs/assets/img/schools/admission/__init__.py b/erpnext/docs/assets/img/education/admission/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/__init__.py
rename to erpnext/docs/assets/img/education/admission/__init__.py
diff --git a/erpnext/docs/assets/img/schools/admission/program-enrollment-tool.gif b/erpnext/docs/assets/img/education/admission/program-enrollment-tool.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/program-enrollment-tool.gif
rename to erpnext/docs/assets/img/education/admission/program-enrollment-tool.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/admission/program-enrollment-tool01.gif b/erpnext/docs/assets/img/education/admission/program-enrollment-tool01.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/program-enrollment-tool01.gif
rename to erpnext/docs/assets/img/education/admission/program-enrollment-tool01.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/admission/program-enrollment.gif b/erpnext/docs/assets/img/education/admission/program-enrollment.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/program-enrollment.gif
rename to erpnext/docs/assets/img/education/admission/program-enrollment.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/admission/student-admission.gif b/erpnext/docs/assets/img/education/admission/student-admission.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/student-admission.gif
rename to erpnext/docs/assets/img/education/admission/student-admission.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/admission/student-applicant-enroll.png b/erpnext/docs/assets/img/education/admission/student-applicant-enroll.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/student-applicant-enroll.png
rename to erpnext/docs/assets/img/education/admission/student-applicant-enroll.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/admission/student-applicant.png b/erpnext/docs/assets/img/education/admission/student-applicant.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/student-applicant.png
rename to erpnext/docs/assets/img/education/admission/student-applicant.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/admission/student-application-actions.png b/erpnext/docs/assets/img/education/admission/student-application-actions.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/admission/student-application-actions.png
rename to erpnext/docs/assets/img/education/admission/student-application-actions.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/__init__.py b/erpnext/docs/assets/img/education/assessment/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/__init__.py
rename to erpnext/docs/assets/img/education/assessment/__init__.py
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-criteria.png b/erpnext/docs/assets/img/education/assessment/assessment-criteria.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-criteria.png
rename to erpnext/docs/assets/img/education/assessment/assessment-criteria.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-group-details.png b/erpnext/docs/assets/img/education/assessment/assessment-group-details.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-group-details.png
rename to erpnext/docs/assets/img/education/assessment/assessment-group-details.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-group-term.png b/erpnext/docs/assets/img/education/assessment/assessment-group-term.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-group-term.png
rename to erpnext/docs/assets/img/education/assessment/assessment-group-term.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-plan-criteria.png b/erpnext/docs/assets/img/education/assessment/assessment-plan-criteria.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-plan-criteria.png
rename to erpnext/docs/assets/img/education/assessment/assessment-plan-criteria.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-plan-details.png b/erpnext/docs/assets/img/education/assessment/assessment-plan-details.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-plan-details.png
rename to erpnext/docs/assets/img/education/assessment/assessment-plan-details.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-result-tool.png b/erpnext/docs/assets/img/education/assessment/assessment-result-tool.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-result-tool.png
rename to erpnext/docs/assets/img/education/assessment/assessment-result-tool.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/assessment-result.png b/erpnext/docs/assets/img/education/assessment/assessment-result.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/assessment-result.png
rename to erpnext/docs/assets/img/education/assessment/assessment-result.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/assessment/grading-scale.png b/erpnext/docs/assets/img/education/assessment/grading-scale.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/assessment/grading-scale.png
rename to erpnext/docs/assets/img/education/assessment/grading-scale.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/fees/__init__.py b/erpnext/docs/assets/img/education/fees/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/fees/__init__.py
rename to erpnext/docs/assets/img/education/fees/__init__.py
diff --git a/erpnext/docs/assets/img/schools/fees/fee-category.png b/erpnext/docs/assets/img/education/fees/fee-category.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/fees/fee-category.png
rename to erpnext/docs/assets/img/education/fees/fee-category.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/fees/fee-structure.png b/erpnext/docs/assets/img/education/fees/fee-structure.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/fees/fee-structure.png
rename to erpnext/docs/assets/img/education/fees/fee-structure.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/fees/fees-section.png b/erpnext/docs/assets/img/education/fees/fees-section.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/fees/fees-section.png
rename to erpnext/docs/assets/img/education/fees/fees-section.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/fees/fees.png b/erpnext/docs/assets/img/education/fees/fees.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/fees/fees.png
rename to erpnext/docs/assets/img/education/fees/fees.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/home.png b/erpnext/docs/assets/img/education/home.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/home.png
rename to erpnext/docs/assets/img/education/home.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/module.png b/erpnext/docs/assets/img/education/module.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/module.png
rename to erpnext/docs/assets/img/education/module.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/__init__.py b/erpnext/docs/assets/img/education/schedule/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/__init__.py
rename to erpnext/docs/assets/img/education/schedule/__init__.py
diff --git a/erpnext/docs/assets/img/schools/schedule/course-schedule-att-1.png b/erpnext/docs/assets/img/education/schedule/course-schedule-att-1.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/course-schedule-att-1.png
rename to erpnext/docs/assets/img/education/schedule/course-schedule-att-1.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/course-schedule-att.png b/erpnext/docs/assets/img/education/schedule/course-schedule-att.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/course-schedule-att.png
rename to erpnext/docs/assets/img/education/schedule/course-schedule-att.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/course-schedule.png b/erpnext/docs/assets/img/education/schedule/course-schedule.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/course-schedule.png
rename to erpnext/docs/assets/img/education/schedule/course-schedule.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/examination.png b/erpnext/docs/assets/img/education/schedule/examination.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/examination.png
rename to erpnext/docs/assets/img/education/schedule/examination.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/schedule-section.png b/erpnext/docs/assets/img/education/schedule/schedule-section.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/schedule-section.png
rename to erpnext/docs/assets/img/education/schedule/schedule-section.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/scheduling-tool.png b/erpnext/docs/assets/img/education/schedule/scheduling-tool.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/scheduling-tool.png
rename to erpnext/docs/assets/img/education/schedule/scheduling-tool.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/student-attendance.gif b/erpnext/docs/assets/img/education/schedule/student-attendance.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/student-attendance.gif
rename to erpnext/docs/assets/img/education/schedule/student-attendance.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/student-attendance.png b/erpnext/docs/assets/img/education/schedule/student-attendance.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/student-attendance.png
rename to erpnext/docs/assets/img/education/schedule/student-attendance.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/schedule/student-leave-application.gif b/erpnext/docs/assets/img/education/schedule/student-leave-application.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/schedule/student-leave-application.gif
rename to erpnext/docs/assets/img/education/schedule/student-leave-application.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/Course-schedule-error.png b/erpnext/docs/assets/img/education/setup/Course-schedule-error.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/Course-schedule-error.png
rename to erpnext/docs/assets/img/education/setup/Course-schedule-error.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/Room-Assesment-plan.png b/erpnext/docs/assets/img/education/setup/Room-Assesment-plan.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/Room-Assesment-plan.png
rename to erpnext/docs/assets/img/education/setup/Room-Assesment-plan.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/__init__.py b/erpnext/docs/assets/img/education/setup/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/__init__.py
rename to erpnext/docs/assets/img/education/setup/__init__.py
diff --git a/erpnext/docs/assets/img/schools/setup/academic-term.png b/erpnext/docs/assets/img/education/setup/academic-term.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/academic-term.png
rename to erpnext/docs/assets/img/education/setup/academic-term.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/academic-year.png b/erpnext/docs/assets/img/education/setup/academic-year.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/academic-year.png
rename to erpnext/docs/assets/img/education/setup/academic-year.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/course-fee-program.png b/erpnext/docs/assets/img/education/setup/course-fee-program.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/course-fee-program.png
rename to erpnext/docs/assets/img/education/setup/course-fee-program.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/course.png b/erpnext/docs/assets/img/education/setup/course.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/course.png
rename to erpnext/docs/assets/img/education/setup/course.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/instructor.png b/erpnext/docs/assets/img/education/setup/instructor.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/instructor.png
rename to erpnext/docs/assets/img/education/setup/instructor.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/program.png b/erpnext/docs/assets/img/education/setup/program.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/program.png
rename to erpnext/docs/assets/img/education/setup/program.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/room.png b/erpnext/docs/assets/img/education/setup/room.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/room.png
rename to erpnext/docs/assets/img/education/setup/room.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/student-attendance-tool.gif b/erpnext/docs/assets/img/education/setup/student-attendance-tool.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/student-attendance-tool.gif
rename to erpnext/docs/assets/img/education/setup/student-attendance-tool.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/setup/student-group-instructor.png b/erpnext/docs/assets/img/education/setup/student-group-instructor.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/setup/student-group-instructor.png
rename to erpnext/docs/assets/img/education/setup/student-group-instructor.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/__init__.py b/erpnext/docs/assets/img/education/student/__init__.py
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/__init__.py
rename to erpnext/docs/assets/img/education/student/__init__.py
diff --git a/erpnext/docs/assets/img/schools/student/guardian.png b/erpnext/docs/assets/img/education/student/guardian.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/guardian.png
rename to erpnext/docs/assets/img/education/student/guardian.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/schools-settings.png b/erpnext/docs/assets/img/education/student/schools-settings.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/schools-settings.png
rename to erpnext/docs/assets/img/education/student/schools-settings.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student group.gif b/erpnext/docs/assets/img/education/student/student group.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student group.gif
rename to erpnext/docs/assets/img/education/student/student group.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-admission.gif b/erpnext/docs/assets/img/education/student/student-admission.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-admission.gif
rename to erpnext/docs/assets/img/education/student/student-admission.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-batch-validation.gif b/erpnext/docs/assets/img/education/student/student-batch-validation.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-batch-validation.gif
rename to erpnext/docs/assets/img/education/student/student-batch-validation.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-batch.gif b/erpnext/docs/assets/img/education/student/student-batch.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-batch.gif
rename to erpnext/docs/assets/img/education/student/student-batch.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-course-validation.gif b/erpnext/docs/assets/img/education/student/student-course-validation.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-course-validation.gif
rename to erpnext/docs/assets/img/education/student/student-course-validation.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-group-attendance.gif b/erpnext/docs/assets/img/education/student/student-group-attendance.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-group-attendance.gif
rename to erpnext/docs/assets/img/education/student/student-group-attendance.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-group-creation-tool.gif b/erpnext/docs/assets/img/education/student/student-group-creation-tool.gif
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-group-creation-tool.gif
rename to erpnext/docs/assets/img/education/student/student-group-creation-tool.gif
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student-log.png b/erpnext/docs/assets/img/education/student/student-log.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student-log.png
rename to erpnext/docs/assets/img/education/student/student-log.png
Binary files differ
diff --git a/erpnext/docs/assets/img/schools/student/student.png b/erpnext/docs/assets/img/education/student/student.png
similarity index 100%
rename from erpnext/docs/assets/img/schools/student/student.png
rename to erpnext/docs/assets/img/education/student/student.png
Binary files differ
diff --git a/erpnext/docs/assets/img/selling/shipping-rule.png b/erpnext/docs/assets/img/selling/shipping-rule.png
index 7cd9b46..7f2a63d 100644
--- a/erpnext/docs/assets/img/selling/shipping-rule.png
+++ b/erpnext/docs/assets/img/selling/shipping-rule.png
Binary files differ
diff --git a/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md b/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md
index f2208b4..44a940a 100644
--- a/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md
+++ b/erpnext/docs/user/manual/en/accounts/chart-of-accounts.md
@@ -108,6 +108,11 @@
<img class="screenshot" alt="Chart of Accounts" src="/docs/assets/img/accounts/chart-of-accounts-2.png">
+### Account Number
+A standard chart of accounts is organized according to a numerical system. Each major category will begin with a certain number, and then the sub-categories within that major category will all begin with the same number. For example, if assets are classified by numbers starting with the digit 1000, then cash accounts might be labeled 1100, bank accounts might be labeled 1200, accounts receivable might be labeled 1300, and so on. A gap between account numbers is generally maintained for adding accounts in the future.
+
+You can assign a number while creating an account from Chart of Accounts page. You can also edit a number from account record, by clicking "Update Account Number" button. On updating account number, system renames the account name automatically to embed the number in the account name.
+
### Other Account Types
In ERPNext, you can also specify more information when you create a new
@@ -115,6 +120,19 @@
scenario like Bank Account or a Tax Account and has no effect on the Chart
itself.
+Explanation of account types:
+- **Bank:** The account group under which bank account will be created.
+- **Cash:** The account group under which cash account will be created.
+- **Cost of Goods Sold:** The account to book the accumulated total of all costs used to manufacture / purchase a product or service, sold by a company.
+- **Depreciation:** The expense account to book the depreciation of teh fixed assets.
+- **Expenses Included In Valuation:** The account to book the expenses (apart from direct material costs) included in landed cost of an item/product, used in Perpetual Inventory, .
+- **Fixed Asset:** The account to maintain the costs of fixed assets.
+- **Payable:** The account which represents the amount owed by a company to its creditors.
+- **Receivable:** The account which represents the amount owed by a company by its debtors.
+- **Stock:** The account group under which the warehouse account will be created.
+- **Stock Adjustment:** An expense account to book any adjustment entry of stock/inventory, and generally comes at the same level of Cost of Goods Sold.
+- **Stock Received But Not Billed:** A temporary liability account which holds the value of stock received but not billed yet and used in Perpetual Inventory.
+
### Creating / Editing Accounts
To create new Accounts, explore your Chart of Accounts and click on an Account
@@ -124,7 +142,8 @@
<img class="screenshot" alt="Chart of Accounts" src="/docs/assets/img/accounts/chart-of-accounts-3.png">
Option to create will only appear if you click on a Group (folder) type
-Account.
+Account. There you need to enter account name, account number and some more
+optional details.
ERPNext creates a standard structure for you when the Company is created but
it is up to you to modify or add or remove accounts.
diff --git a/erpnext/docs/user/manual/en/accounts/payment-terms.md b/erpnext/docs/user/manual/en/accounts/payment-terms.md
new file mode 100644
index 0000000..4f28d0d
--- /dev/null
+++ b/erpnext/docs/user/manual/en/accounts/payment-terms.md
@@ -0,0 +1,70 @@
+# Payment Terms
+You can save your business' payment terms on ERPNext and include it in all documents in the sales/purchase cycle and ERPNext will make all the proper general ledger entries accordingly.
+
+The documents you can attach Payment Terms to are:
+- Sales Invoice
+- Purchase Invoice
+- Sales Order
+- Purchase Order
+- Quotation
+
+Note that the introduction of Payment Terms removes "Credit Days" and "Credit Days Based On" fields in Customer/Supplier master. Payment Term contains the same information and makes it more flexible to use.
+
+## Payment Terms
+Navigate to the Payment Term list page and click "New".
+> Accounts > Payment Term > New Payment Term
+
+Payment Term has the following fields:
+**Payment Term Name:** (optional) The name for this Payment Term.
+
+**Due Date Based On:** The basis by which the due date for the Payment Term is to be calculated. There are three options:
+- Day(s) after invoice date: Due date should be calculated in days with reference to the posting date of the invoice
+- Day(s) after the end of the invoice month: Due date should be calculated in days with reference to the last day of the month in which the invoice was created
+- Month(s) after the end of the invoice month: Due date should be calculated in months with reference to the last day of the month in which the invoice was created
+
+**Invoice Portion:** (optional) The portion of the total invoice amount for which this Payment Term should be applied. Value given will be regarded as percentage i.e 100 = 100%
+
+**Credit Days:** (optional) The number of days or month credit is allowed depending on the option chosen in the `Due Date Based On` field. 0 means no credit allowed.
+
+**Description:** (optional) A brief description of the Payment Term.
+
+## Payment Terms In Converted Documents
+When converting or copying documents in the sales/purchase cycle, the attached Payment Term(s) will not be copied. The reason for this is because the copied information might no longer be true. For example, a Quotation is created for a service costing $1000 on January 1 with payment term of "N 30" (Net payable within 30 days) and then sent to a customer. On the quotation, the due date on the invoice will be January 30. Let's say the customer agrees to the quotation of January 20 and you decide to make an invoice from the Quotation. If the Payment Terms from the Quotation is copied, the due date on the invoice will still wrongly read January 30. This issue also applies for recurring documents.
+
+This does not mean you have manually set Payment Terms for every document. If you want the Payment Terms to be copyable, make use of Payment Terms Template.
+
+## Payment Terms Template
+Payment Terms Template tells ERPNext how to populate the table in the Payment Terms Schedule section of the sales/purchase document.
+
+You should use it if you have a set of standard Payment Terms or if you want the Payment Term(s) on a sales/purchase document to be copyable.
+
+To create a new Payment Terms Template, navigate to the Payment Term Template creation form:
+> Accounts > Payment Terms Template > New Payment Terms Template
+
+**Payment Term:** (optional) The name for this Payment Term.
+
+**Due Date Based On:** The basis by which the due date for the Payment Term is to be calculated. There are three options:
+- Day(s) after invoice date: Due date should be calculated in days with reference to the posting date of the invoice
+- Day(s) after the end of the invoice month: Due date should be calculated in days with reference to the last day of the month in which the invoice was created
+- Month(s) after the end of the invoice month: Due date should be calculated in months with reference to the last day of the month in which the invoice was created
+
+**Invoice Portion:** (optional) The portion of the total invoice amount for which this Payment Term should be applied. Value given will be regarded as percentage i.e 100 = 100%
+
+**Credit Days:** (optional) The number of days or month credit is allowed depending on the option chosen in the `Due Date Based On` field. 0 means no credit allowed.
+
+**Description:** (optional) A brief description of the Payment Term.
+
+Add as many rows as needed but make sure that the sum of the values in the `Invoice Portion` fields in all populated rows equals 100.
+
+## How to Add Payment Terms To Documents
+You can add Payments Terms in the "Payment Terms Schedule" section of the Document. Each row in the table represents a portion of the document's grand total. The table collects the following information:
+
+**Payment Term:** (optional) The name of the Payment Term document you require. If this is added, the data from the selected Payment Term will be used to populate the remaining columns in the row.
+
+**Description:** (optional) Description of the Payment Term.
+
+**Due Date:** (optional) The due date for the portion of the invoice. Set this value only if you did not specify anything in the `Payment Term` column.
+
+**Invoice Portion:** The percentage portion of the document represented in each row.
+
+**Payment Amount:** The amount due from the portion of the invoice represented by each row.
diff --git a/erpnext/docs/user/manual/en/accounts/sales-invoice.md b/erpnext/docs/user/manual/en/accounts/sales-invoice.md
index f4c4143..3ea13f0 100644
--- a/erpnext/docs/user/manual/en/accounts/sales-invoice.md
+++ b/erpnext/docs/user/manual/en/accounts/sales-invoice.md
@@ -56,6 +56,21 @@
ERPNext will automatically create new Invoices and mail it to the Email Addresses
you set.
+#### Automatically Fetching Item Batch Numbers
+
+If you are selling an item from a [Batch](/docs/user/manual/en/stock/batch),
+ERPNext will automatically fetch a batch number for you if "Update Stock"
+is checked. The batch number will be fetched on a First Expiring First Out
+(FEFO) basis. This is a variant of First In First Out (FIFO) that gives
+highest priority to the soonest to expire Items.
+
+<img class="screenshot" alt="POS Invoice" src="/docs/assets/img/accounts/sales-invoice-fetch-batch.png">
+
+Note that if the first batch in the queue cannot satisfy the order on the invoice,
+the next batch in the queue that can satisfy the order will be selected. If there is
+no batch that can satisfy the order, ERPNext will cancel its attempt to automatically
+fetch a suitable batch number.
+
#### POS Invoices
Consider a scenario where retail transaction is carried out. For e.g: A retail shop.
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/__init__.py b/erpnext/docs/user/manual/en/education/Assessment/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Assessment/__init__.py
rename to erpnext/docs/user/manual/en/education/Assessment/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md b/erpnext/docs/user/manual/en/education/Assessment/assessment_criteria.md
similarity index 83%
rename from erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md
rename to erpnext/docs/user/manual/en/education/Assessment/assessment_criteria.md
index c422578..b97cfb1 100644
--- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria.md
+++ b/erpnext/docs/user/manual/en/education/Assessment/assessment_criteria.md
@@ -2,12 +2,12 @@
Assessment Criteria is the parameter based on which you assess the Student.
-<img class="screenshot" alt="Assessment Criteria" src="/docs/assets/img/schools/assessment/assessment-criteria.png">
+<img class="screenshot" alt="Assessment Criteria" src="/docs/assets/img/education/assessment/assessment-criteria.png">
After assessment is conducted for a Course, marks earned are entered based on the Assessment Criteria. For example, if assessment was conducted for science subject, then you can evaluate Student in Science on various criteria like Writing, Practicals, Presentation etc.
Assessment Criteria is be used when scheduling Assessment Plan for Student Group and Course.
-<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/schools/assessment/assessment-plan-criteria.png">
+<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/education/assessment/assessment-plan-criteria.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria_group.md b/erpnext/docs/user/manual/en/education/Assessment/assessment_criteria_group.md
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Assessment/assessment_criteria_group.md
rename to erpnext/docs/user/manual/en/education/Assessment/assessment_criteria_group.md
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md b/erpnext/docs/user/manual/en/education/Assessment/assessment_group.md
similarity index 80%
rename from erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md
rename to erpnext/docs/user/manual/en/education/Assessment/assessment_group.md
index 90c7b5d..ed02a53 100644
--- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_group.md
+++ b/erpnext/docs/user/manual/en/education/Assessment/assessment_group.md
@@ -4,10 +4,10 @@
For example, if you conduct two assessment in a academic year, then setup Assessment Group as following.
-<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/schools/assessment/assessment-group-term.png">
+<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/education/assessment/assessment-group-term.png">
On the same lines, you can also define multiple Assessment Group bases on assessment conducted in your institute.
-<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/schools/assessment/assessment-group-details.png">
+<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/education/assessment/assessment-group-details.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md b/erpnext/docs/user/manual/en/education/Assessment/assessment_plan.md
similarity index 82%
rename from erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md
rename to erpnext/docs/user/manual/en/education/Assessment/assessment_plan.md
index 103def1..7272279 100644
--- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_plan.md
+++ b/erpnext/docs/user/manual/en/education/Assessment/assessment_plan.md
@@ -10,10 +10,10 @@
4. Examiner and Supervisor
-<img class="screenshot" alt="Assessment Plan Details" src="/docs/assets/img/schools/assessment/assessment-plan-details.png">
+<img class="screenshot" alt="Assessment Plan Details" src="/docs/assets/img/education/assessment/assessment-plan-details.png">
5. Assessment Criteria is list of criteria based which each student in will be evaluated and grades will be assigned.
-<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/schools/assessment/assessment-plan-criteria.png">
+<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/education/assessment/assessment-plan-criteria.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md b/erpnext/docs/user/manual/en/education/Assessment/assessment_result.md
similarity index 69%
rename from erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md
rename to erpnext/docs/user/manual/en/education/Assessment/assessment_result.md
index dc35ca7..ed3e5fb 100644
--- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result.md
+++ b/erpnext/docs/user/manual/en/education/Assessment/assessment_result.md
@@ -1,7 +1,7 @@
#Assessment Result
-Assessment Result is a log of marks/grades earned by the student for specific Assessment. Assessment Result is created in the backend based on the marks entered in the [Assessment Result Tool](/docs/user/manual/en/schools/assessment/assessment_result_tool.html).
+Assessment Result is a log of marks/grades earned by the student for specific Assessment. Assessment Result is created in the backend based on the marks entered in the [Assessment Result Tool](/docs/user/manual/en/education/assessment/assessment_result_tool.html).
-<img class="screenshot" alt="Assessment Result" src="/docs/assets/img/schools/assessment/assessment-result.png">
+<img class="screenshot" alt="Assessment Result" src="/docs/assets/img/education/assessment/assessment-result.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md b/erpnext/docs/user/manual/en/education/Assessment/assessment_result_tool.md
similarity index 89%
rename from erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md
rename to erpnext/docs/user/manual/en/education/Assessment/assessment_result_tool.md
index bb2a2ba..88b7a7a 100644
--- a/erpnext/docs/user/manual/en/schools/Assessment/assessment_result_tool.md
+++ b/erpnext/docs/user/manual/en/education/Assessment/assessment_result_tool.md
@@ -2,7 +2,7 @@
Assessment Result Tool help you entering marks earned by the Students for specific course. In this tool, based on the Assessment Plan, all the Student will be fetched into Assessment Result Tool. Also, Columns for Assessment Criteria will be where marks earned can be entered for each Student.
-<img class="screenshot" alt="Assessment Result Tool" src="/docs/assets/img/schools/assessment/assessment-result-tool.png">
+<img class="screenshot" alt="Assessment Result Tool" src="/docs/assets/img/education/assessment/assessment-result-tool.png">
As you go on entering marks for a Student, and switch to next student, in the backend, Student Result record will be auto-created for that Student.
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md b/erpnext/docs/user/manual/en/education/Assessment/grading_scale.md
similarity index 85%
rename from erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md
rename to erpnext/docs/user/manual/en/education/Assessment/grading_scale.md
index 4519112..0ad610b 100644
--- a/erpnext/docs/user/manual/en/schools/Assessment/grading_scale.md
+++ b/erpnext/docs/user/manual/en/education/Assessment/grading_scale.md
@@ -2,6 +2,6 @@
In the Grading Scale, you can define various grades and threshold for them. Based on the score earned by an Student for an Assessment, Grade will be assigned.
-<img class="screenshot" alt="Grading Scale" src="/docs/assets/img/schools/assessment/grading-scale.png">
+<img class="screenshot" alt="Grading Scale" src="/docs/assets/img/education/assessment/grading-scale.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/index.md b/erpnext/docs/user/manual/en/education/Assessment/index.md
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Assessment/index.md
rename to erpnext/docs/user/manual/en/education/Assessment/index.md
diff --git a/erpnext/docs/user/manual/en/schools/Assessment/index.txt b/erpnext/docs/user/manual/en/education/Assessment/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Assessment/index.txt
rename to erpnext/docs/user/manual/en/education/Assessment/index.txt
diff --git a/erpnext/docs/user/manual/en/schools/Attendance/__init__.py b/erpnext/docs/user/manual/en/education/Attendance/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Attendance/__init__.py
rename to erpnext/docs/user/manual/en/education/Attendance/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/Attendance/index.md b/erpnext/docs/user/manual/en/education/Attendance/index.md
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Attendance/index.md
rename to erpnext/docs/user/manual/en/education/Attendance/index.md
diff --git a/erpnext/docs/user/manual/en/schools/Attendance/index.txt b/erpnext/docs/user/manual/en/education/Attendance/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/Attendance/index.txt
rename to erpnext/docs/user/manual/en/education/Attendance/index.txt
diff --git a/erpnext/docs/user/manual/en/schools/Attendance/student-attendance-tool.md b/erpnext/docs/user/manual/en/education/Attendance/student-attendance-tool.md
similarity index 88%
rename from erpnext/docs/user/manual/en/schools/Attendance/student-attendance-tool.md
rename to erpnext/docs/user/manual/en/education/Attendance/student-attendance-tool.md
index 5c4ce30..fac9d6e 100644
--- a/erpnext/docs/user/manual/en/schools/Attendance/student-attendance-tool.md
+++ b/erpnext/docs/user/manual/en/education/Attendance/student-attendance-tool.md
@@ -10,6 +10,6 @@
Student detials will be autofetched and you can mark the attendance of the given date.
-<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/schools/setup/student-attendance-tool.gif">
+<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/education/setup/student-attendance-tool.gif">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/Attendance/student-attendance.md b/erpnext/docs/user/manual/en/education/Attendance/student-attendance.md
similarity index 92%
rename from erpnext/docs/user/manual/en/schools/Attendance/student-attendance.md
rename to erpnext/docs/user/manual/en/education/Attendance/student-attendance.md
index 1b917d0..4be2831 100644
--- a/erpnext/docs/user/manual/en/schools/Attendance/student-attendance.md
+++ b/erpnext/docs/user/manual/en/education/Attendance/student-attendance.md
@@ -8,7 +8,7 @@
Select the **Student, Course Schedule and Student Group** for which attendance is to be marked for the given date. Set the Status to Present/Absent and save.
-<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/schools/schedule/student-attendance.gif">
+<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/education/schedule/student-attendance.gif">
**Student Attendance tool** can be used for bulk updation of the attendance based on **Batch, Course or Activity**.
diff --git a/erpnext/docs/user/manual/en/schools/Attendance/student-leave-application.md b/erpnext/docs/user/manual/en/education/Attendance/student-leave-application.md
similarity index 64%
rename from erpnext/docs/user/manual/en/schools/Attendance/student-leave-application.md
rename to erpnext/docs/user/manual/en/education/Attendance/student-leave-application.md
index 5620bda..e22c6e9 100644
--- a/erpnext/docs/user/manual/en/schools/Attendance/student-leave-application.md
+++ b/erpnext/docs/user/manual/en/education/Attendance/student-leave-application.md
@@ -4,9 +4,9 @@
To create a Student Leave application record, enter the Student and the date for the leave is applied and save.
-<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/schools/schedule/student-leave-application.gif">
+<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/education/schedule/student-leave-application.gif">
-Incase the student is not attending the school in order to participate or represent school in any event, he/she can be mark as present from the Leave Application itself.
+Incase the student is not attending the institute in order to participate or represent institute in any event, he/she can be mark as present from the Leave Application itself.
Once a Leave Application is recorded for a student it will not be recorded in the absent student report as he has applied for a leave.
diff --git a/erpnext/docs/user/manual/en/schools/__init__.py b/erpnext/docs/user/manual/en/education/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/__init__.py
rename to erpnext/docs/user/manual/en/education/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/admission/__init__.py b/erpnext/docs/user/manual/en/education/admission/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/admission/__init__.py
rename to erpnext/docs/user/manual/en/education/admission/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/admission/index.md b/erpnext/docs/user/manual/en/education/admission/index.md
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/admission/index.md
rename to erpnext/docs/user/manual/en/education/admission/index.md
diff --git a/erpnext/docs/user/manual/en/schools/admission/index.txt b/erpnext/docs/user/manual/en/education/admission/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/admission/index.txt
rename to erpnext/docs/user/manual/en/education/admission/index.txt
diff --git a/erpnext/docs/user/manual/en/schools/admission/program-enrollment-tool.md b/erpnext/docs/user/manual/en/education/admission/program-enrollment-tool.md
similarity index 81%
rename from erpnext/docs/user/manual/en/schools/admission/program-enrollment-tool.md
rename to erpnext/docs/user/manual/en/education/admission/program-enrollment-tool.md
index 2a2fa1e..53d9d9c 100644
--- a/erpnext/docs/user/manual/en/schools/admission/program-enrollment-tool.md
+++ b/erpnext/docs/user/manual/en/education/admission/program-enrollment-tool.md
@@ -7,10 +7,10 @@
1. **Student Applicants** >> List of Student Applicants will be fetched for the selected **Program** and **Academic year**.
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/program-enrollment-tool.gif">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/program-enrollment-tool.gif">
2. **Program Enrollment** >> You can bulk update the **Program** for the students from one academic year to another in the same **Program** or a new **Program**.
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/program-enrollment-tool01.gif">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/program-enrollment-tool01.gif">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/admission/program-enrollment.md b/erpnext/docs/user/manual/en/education/admission/program-enrollment.md
similarity index 91%
rename from erpnext/docs/user/manual/en/schools/admission/program-enrollment.md
rename to erpnext/docs/user/manual/en/education/admission/program-enrollment.md
index cc1308c..0bf16df 100644
--- a/erpnext/docs/user/manual/en/schools/admission/program-enrollment.md
+++ b/erpnext/docs/user/manual/en/education/admission/program-enrollment.md
@@ -4,7 +4,7 @@
Once a student have applied for the **Program** and the application is approved, the program enrollment is done for that student.
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/program-enrollment.gif">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/program-enrollment.gif">
- A student can be enrolled in multiple Course for a program in a given academeic year.
- Based on the Fee structure selected at the time of enrollment Fee detials are created of the student.
diff --git a/erpnext/docs/user/manual/en/schools/admission/student-applicant.md b/erpnext/docs/user/manual/en/education/admission/student-applicant.md
similarity index 85%
rename from erpnext/docs/user/manual/en/schools/admission/student-applicant.md
rename to erpnext/docs/user/manual/en/education/admission/student-applicant.md
index 22d3709..121844c 100644
--- a/erpnext/docs/user/manual/en/schools/admission/student-applicant.md
+++ b/erpnext/docs/user/manual/en/education/admission/student-applicant.md
@@ -3,7 +3,7 @@
A Student Applicant record needs to be created when a student applies for a program at your institute.
You can Approve or Reject a student applicant. By accepting a student applicant you can add them to the student master.
-<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/admission/student-applicant.png">
+<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/education/admission/student-applicant.png">
### Application Status
@@ -20,11 +20,11 @@
### Student Enrollment
Once the form is submitted you can either approve or reject the application form.
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/student-application-actions.png">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/student-application-actions.png">
Once you approve a Student Applicant you can enroll them to a program. When you click the 'Enroll' buttom,
-the system shall create a student against that applicant and redirect you to the [Program Enrollment form](/docs/user/manual/en/schools/student/program-enrollment.html).
+the system shall create a student against that applicant and redirect you to the [Program Enrollment form](/docs/user/manual/en/education/student/program-enrollment.html).
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/student-applicant-enroll.png">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/student-applicant-enroll.png">
{next}
diff --git a/erpnext/docs/user/manual/en/schools/admission/student_admission.md b/erpnext/docs/user/manual/en/education/admission/student_admission.md
similarity index 89%
rename from erpnext/docs/user/manual/en/schools/admission/student_admission.md
rename to erpnext/docs/user/manual/en/education/admission/student_admission.md
index 7a63fa7..f2b8ef6 100644
--- a/erpnext/docs/user/manual/en/schools/admission/student_admission.md
+++ b/erpnext/docs/user/manual/en/education/admission/student_admission.md
@@ -4,10 +4,10 @@
To create a Student Admission record go to :
-**Schools** >> **Admissions** >> **Student Admission** >>
+**education** >> **Admissions** >> **Student Admission** >>
-<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/admission/student-admission.gif">
+<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/education/admission/student-admission.gif">
Once an admission record is created, the age eligibility criteria can be determined for the every program. Similarly, you can also determine the application fee and naming series for every student applicant. If you keep the naming series blank then the default naming series will be applied for every student applicant.
diff --git a/erpnext/docs/user/manual/en/schools/fees/__init__.py b/erpnext/docs/user/manual/en/education/fees/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/fees/__init__.py
rename to erpnext/docs/user/manual/en/education/fees/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/fees/fee-category.md b/erpnext/docs/user/manual/en/education/fees/fee-category.md
similarity index 78%
rename from erpnext/docs/user/manual/en/schools/fees/fee-category.md
rename to erpnext/docs/user/manual/en/education/fees/fee-category.md
index fbf43e6..8a4822f 100644
--- a/erpnext/docs/user/manual/en/schools/fees/fee-category.md
+++ b/erpnext/docs/user/manual/en/education/fees/fee-category.md
@@ -2,6 +2,6 @@
List of all different type of fees collected.
-<img class="screenshot" alt="Fees Category" src="/docs/assets/img/schools/fees/fee-category.png">
+<img class="screenshot" alt="Fees Category" src="/docs/assets/img/education/fees/fee-category.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/fees/fee-structure.md b/erpnext/docs/user/manual/en/education/fees/fee-structure.md
similarity index 80%
rename from erpnext/docs/user/manual/en/schools/fees/fee-structure.md
rename to erpnext/docs/user/manual/en/education/fees/fee-structure.md
index a1dd9be..b1cc36d 100644
--- a/erpnext/docs/user/manual/en/schools/fees/fee-structure.md
+++ b/erpnext/docs/user/manual/en/education/fees/fee-structure.md
@@ -2,6 +2,6 @@
A Fee Structure is a template that can be used while making fee records.
-<img class="screenshot" alt="Fees Structure" src="/docs/assets/img/schools/fees/fee-structure.png">
+<img class="screenshot" alt="Fees Structure" src="/docs/assets/img/education/fees/fee-structure.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/education/fees/fees.md b/erpnext/docs/user/manual/en/education/fees/fees.md
new file mode 100644
index 0000000..5e0c126
--- /dev/null
+++ b/erpnext/docs/user/manual/en/education/fees/fees.md
@@ -0,0 +1,8 @@
+# Fees
+
+Maintain a record of fees collected from students.
+The [Fee Structure](/docs/user/manual/en/education/fees/fee-structure.html) is fetched based on the selected Program and Academic Term.
+
+<img class="screenshot" alt="Fees" src="/docs/assets/img/education/fees/fees.png">
+
+{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/fees/index.md b/erpnext/docs/user/manual/en/education/fees/index.md
similarity index 79%
rename from erpnext/docs/user/manual/en/schools/fees/index.md
rename to erpnext/docs/user/manual/en/education/fees/index.md
index c5be5f6..d0ccb94 100644
--- a/erpnext/docs/user/manual/en/schools/fees/index.md
+++ b/erpnext/docs/user/manual/en/education/fees/index.md
@@ -2,7 +2,7 @@
This section contains 'Fee' related documents.
-<img class="screenshot" alt="Fees Section" src="/docs/assets/img/schools/fees/fees-section.png">
+<img class="screenshot" alt="Fees Section" src="/docs/assets/img/education/fees/fees-section.png">
### Topics
diff --git a/erpnext/docs/user/manual/en/schools/fees/index.txt b/erpnext/docs/user/manual/en/education/fees/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/fees/index.txt
rename to erpnext/docs/user/manual/en/education/fees/index.txt
diff --git a/erpnext/docs/user/manual/en/education/index.md b/erpnext/docs/user/manual/en/education/index.md
new file mode 100644
index 0000000..36c6bbd
--- /dev/null
+++ b/erpnext/docs/user/manual/en/education/index.md
@@ -0,0 +1,8 @@
+# Education
+
+
+The Education Domain in ERPNext is designed to meet requirements of any educational Institute whether that is a school, college or any other private firm. ERPNext provides a centralized system, which can be used to maintain and update all the activities related to an Institution. It will provide a complete package for every funcationality required in any institute like Online Admission, Fees, Attendance, Examination.
+
+<img class="screenshot" alt="Fees Section" src="/docs/assets/img/education/module.png">
+
+{index}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/index.txt b/erpnext/docs/user/manual/en/education/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/index.txt
rename to erpnext/docs/user/manual/en/education/index.txt
diff --git a/erpnext/docs/user/manual/en/schools/schedule/__init__.py b/erpnext/docs/user/manual/en/education/schedule/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/schedule/__init__.py
rename to erpnext/docs/user/manual/en/education/schedule/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/schedule/course-schedule.md b/erpnext/docs/user/manual/en/education/schedule/course-schedule.md
similarity index 84%
rename from erpnext/docs/user/manual/en/schools/schedule/course-schedule.md
rename to erpnext/docs/user/manual/en/education/schedule/course-schedule.md
index 9f7d980..f5134d5 100644
--- a/erpnext/docs/user/manual/en/schools/schedule/course-schedule.md
+++ b/erpnext/docs/user/manual/en/education/schedule/course-schedule.md
@@ -3,13 +3,13 @@
Course Schedule is the schedule of a session conducted by an Instructor for a particular Course.
You can see the overall course schedule in the Calendar view.
-<img class="screenshot" alt="Course Schedule" src="/docs/assets/img/schools/schedule/course-schedule.png">
+<img class="screenshot" alt="Course Schedule" src="/docs/assets/img/education/schedule/course-schedule.png">
### Marking Attendance
You can mark attendance for a Student Group against a Course Schedule.
-<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/schools/schedule/course-schedule-att.png">
+<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/education/schedule/course-schedule-att.png">
- To make attendance, expand the attendance section.
- Check the students who were present for that session.
@@ -20,6 +20,6 @@
Once you have marked Attendance against a Course Schedule the Attendance section in the Course Schedule shall be hidden.
A View Attendance button shall appear. Click on that button to view all attendance records created against that Course Schedule.
-<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/schools/schedule/course-schedule-att-1.png">
+<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/education/schedule/course-schedule-att-1.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/schedule/examination.md b/erpnext/docs/user/manual/en/education/schedule/examination.md
similarity index 82%
rename from erpnext/docs/user/manual/en/schools/schedule/examination.md
rename to erpnext/docs/user/manual/en/education/schedule/examination.md
index d167e9c..d21d204 100644
--- a/erpnext/docs/user/manual/en/schools/schedule/examination.md
+++ b/erpnext/docs/user/manual/en/education/schedule/examination.md
@@ -2,7 +2,7 @@
The Examination record can be used to track the exam schedule and the results of that exam.
-<img class="screenshot" alt="Examination" src="/docs/assets/img/schools/schedule/examination.png">
+<img class="screenshot" alt="Examination" src="/docs/assets/img/education/schedule/examination.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/schedule/index.md b/erpnext/docs/user/manual/en/education/schedule/index.md
similarity index 67%
rename from erpnext/docs/user/manual/en/schools/schedule/index.md
rename to erpnext/docs/user/manual/en/education/schedule/index.md
index 57e578b..247b0b8 100644
--- a/erpnext/docs/user/manual/en/schools/schedule/index.md
+++ b/erpnext/docs/user/manual/en/education/schedule/index.md
@@ -1,6 +1,6 @@
# Schedule
-<img class="screenshot" alt="Schedule Section" src="/docs/assets/img/schools/schedule/schedule-section.png">
+<img class="screenshot" alt="Schedule Section" src="/docs/assets/img/education/schedule/schedule-section.png">
### Topics
diff --git a/erpnext/docs/user/manual/en/schools/schedule/index.txt b/erpnext/docs/user/manual/en/education/schedule/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/schedule/index.txt
rename to erpnext/docs/user/manual/en/education/schedule/index.txt
diff --git a/erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md b/erpnext/docs/user/manual/en/education/schedule/scheduling-tool.md
similarity index 95%
rename from erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md
rename to erpnext/docs/user/manual/en/education/schedule/scheduling-tool.md
index 9e13d6d..08a7fa9 100644
--- a/erpnext/docs/user/manual/en/schools/schedule/scheduling-tool.md
+++ b/erpnext/docs/user/manual/en/education/schedule/scheduling-tool.md
@@ -2,7 +2,7 @@
This tool can be used to create 'Course Schedules'.
-<img class="screenshot" alt="Scheduling Tool" src="/docs/assets/img/schools/schedule/scheduling-tool.png">
+<img class="screenshot" alt="Scheduling Tool" src="/docs/assets/img/education/schedule/scheduling-tool.png">
### Creating Course Schedules
diff --git a/erpnext/docs/user/manual/en/schools/setup/__init__.py b/erpnext/docs/user/manual/en/education/setup/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/setup/__init__.py
rename to erpnext/docs/user/manual/en/education/setup/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/setup/academic-term.md b/erpnext/docs/user/manual/en/education/setup/academic-term.md
similarity index 93%
rename from erpnext/docs/user/manual/en/schools/setup/academic-term.md
rename to erpnext/docs/user/manual/en/education/setup/academic-term.md
index b52bea7..d264dca 100644
--- a/erpnext/docs/user/manual/en/schools/setup/academic-term.md
+++ b/erpnext/docs/user/manual/en/education/setup/academic-term.md
@@ -4,7 +4,7 @@
The **Academic term** form in ERPNext enables you to create academic terms within in a year. Based on the term schedule enter the start and end date for the schedule and generate the term for a Academic year.
-<img class="screenshot" alt="Academic Term" src="/docs/assets/img/schools/setup/academic-term.png">
+<img class="screenshot" alt="Academic Term" src="/docs/assets/img/education/setup/academic-term.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/setup/academic-year.md b/erpnext/docs/user/manual/en/education/setup/academic-year.md
similarity index 62%
rename from erpnext/docs/user/manual/en/schools/setup/academic-year.md
rename to erpnext/docs/user/manual/en/education/setup/academic-year.md
index 4fc5f92..c9ea521 100644
--- a/erpnext/docs/user/manual/en/schools/setup/academic-year.md
+++ b/erpnext/docs/user/manual/en/education/setup/academic-year.md
@@ -1,10 +1,10 @@
# Academic Year
-An academic year is a period of time which schools, colleges and universities use to measure a quantity of study.
+An academic year is a period of time which education, colleges and universities use to measure a quantity of study.
The **Academic year** form have the Start and End date for the Academic year.
-<img class="screenshot" alt="Academic Year" src="/docs/assets/img/schools/setup/academic-year.png">
+<img class="screenshot" alt="Academic Year" src="/docs/assets/img/education/setup/academic-year.png">
**Student group** link is given to view or add the respective groups to the Academic year.
diff --git a/erpnext/docs/user/manual/en/schools/setup/course.md b/erpnext/docs/user/manual/en/education/setup/course.md
similarity index 79%
rename from erpnext/docs/user/manual/en/schools/setup/course.md
rename to erpnext/docs/user/manual/en/education/setup/course.md
index dc10ed5..0d6e5ac 100644
--- a/erpnext/docs/user/manual/en/schools/setup/course.md
+++ b/erpnext/docs/user/manual/en/education/setup/course.md
@@ -4,11 +4,11 @@
To create a **Course** enter the Course name and Code. Code for the course should be unique for every course. You can also link the department under which the course is conducted.
-<img class="screenshot" alt="Course" src="/docs/assets/img/schools/setup/course.png">
+<img class="screenshot" alt="Course" src="/docs/assets/img/education/setup/course.png">
Once a **Course** is created, a course schedule can defined for the same.
-<img class="screenshot" alt="Course" src="/docs/assets/img/schools/setup/Course.gif">
+<img class="screenshot" alt="Course" src="/docs/assets/img/education/setup/Course.gif">
The Course form is further linked to **Program, Student Group and Assessment Plan** doctypes. The links allow to view/create the related documents for a **Course**.
diff --git a/erpnext/docs/user/manual/en/education/setup/index.md b/erpnext/docs/user/manual/en/education/setup/index.md
new file mode 100644
index 0000000..1062c3a
--- /dev/null
+++ b/erpnext/docs/user/manual/en/education/setup/index.md
@@ -0,0 +1,9 @@
+# Setup
+
+The Setup section of education module provides facility to make some basic configuration. Below are doctypes for basic configuration.
+
+<img class="screenshot" alt="Setup Section" src="/docs/assets/img/education/setup/setup-section.png">
+
+### Topics
+
+{index}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/setup/index.txt b/erpnext/docs/user/manual/en/education/setup/index.txt
similarity index 83%
rename from erpnext/docs/user/manual/en/schools/setup/index.txt
rename to erpnext/docs/user/manual/en/education/setup/index.txt
index 8fb9bb2..9f88c5d 100644
--- a/erpnext/docs/user/manual/en/schools/setup/index.txt
+++ b/erpnext/docs/user/manual/en/education/setup/index.txt
@@ -6,4 +6,4 @@
student-batch-name
academic-term
academic-year
-school-settings
\ No newline at end of file
+education-settings
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/setup/instructor.md b/erpnext/docs/user/manual/en/education/setup/instructor.md
similarity index 66%
rename from erpnext/docs/user/manual/en/schools/setup/instructor.md
rename to erpnext/docs/user/manual/en/education/setup/instructor.md
index 6150f02..2b53ce1 100644
--- a/erpnext/docs/user/manual/en/schools/setup/instructor.md
+++ b/erpnext/docs/user/manual/en/education/setup/instructor.md
@@ -4,14 +4,14 @@
You can create an Instructor and link it to the Employee master and a Departmemt.
-<img class="screenshot" alt="Instructor" src="/docs/assets/img/schools/setup/instructor.png">
+<img class="screenshot" alt="Instructor" src="/docs/assets/img/education/setup/instructor.png">
An **Instructor** is further linked to a **Course Schedule**, where you can define the schedule for a **Course** for a give date and **Room no**.
-<img class="screenshot" alt="Instructor" src="/docs/assets/img/schools/setup/instructor.gif">
+<img class="screenshot" alt="Instructor" src="/docs/assets/img/education/setup/instructor.gif">
It is also linked to **Student group** where an **Instructor** is assigned to the Student group.
-<img class="screenshot" alt="Instructor" src="/docs/assets/img/schools/setup/student-group-instructor.gif">
+<img class="screenshot" alt="Instructor" src="/docs/assets/img/education/setup/student-group-instructor.gif">
An **Instructor** is also linked to an **Assesment Plan** for a Student group. The Instructor can be an Examiner or the supervisor for the assesment.
diff --git a/erpnext/docs/user/manual/en/schools/setup/program.md b/erpnext/docs/user/manual/en/education/setup/program.md
similarity index 71%
rename from erpnext/docs/user/manual/en/schools/setup/program.md
rename to erpnext/docs/user/manual/en/education/setup/program.md
index be10166..25e390e 100644
--- a/erpnext/docs/user/manual/en/schools/setup/program.md
+++ b/erpnext/docs/user/manual/en/education/setup/program.md
@@ -4,15 +4,15 @@
To create a Program go to :
-###Schools >> Setup >> Program >> New Program
+###education >> Setup >> Program >> New Program
Enter a unique code for every **Program**. You can also link the **Program** to the department under which it is conducted.
-<img class="screenshot" alt="Program" src="/docs/assets/img/schools/setup/program.png">
+<img class="screenshot" alt="Program" src="/docs/assets/img/education/setup/program.png">
Add the relevant Course and the Fee details for a program.
-<img class="screenshot" alt="Program" src="/docs/assets/img/schools/setup/course-fee-program.png">
+<img class="screenshot" alt="Program" src="/docs/assets/img/education/setup/course-fee-program.png">
The Program Doctype is further linked to the **Student applicant**, **Program enrollment, Student group, Fee structre and Fee**. The links allow to view or create the related document for a Program.
diff --git a/erpnext/docs/user/manual/en/schools/setup/room.md b/erpnext/docs/user/manual/en/education/setup/room.md
similarity index 72%
rename from erpnext/docs/user/manual/en/schools/setup/room.md
rename to erpnext/docs/user/manual/en/education/setup/room.md
index 43ddde9..6a1f32e 100644
--- a/erpnext/docs/user/manual/en/schools/setup/room.md
+++ b/erpnext/docs/user/manual/en/education/setup/room.md
@@ -4,14 +4,14 @@
The Room doctype allows you to record the room number and the seating capacity for a classroom. Once a room is created Course schedule link is provided in the Room doctype to view or add the course schedule for the classroom.
-<img class="screenshot" alt="Room" src="/docs/assets/img/schools/setup/room.png">
+<img class="screenshot" alt="Room" src="/docs/assets/img/education/setup/room.png">
The course schedule validate the availability of the Room number and an alert message is shown if there is an overlap for the Room number for a given time slot.
-<img class="screenshot" alt="Room" src="/docs/assets/img/schools/setup/Course-schedule-error.png">
+<img class="screenshot" alt="Room" src="/docs/assets/img/education/setup/Course-schedule-error.png">
The Room number is further linked to the Assesment plan. It validates the availability of examination room for the assessment to be held for a given date and time.
-<img class="screenshot" alt="Room" src="/docs/assets/img/schools/setup/Room-Assesment-plan.png">
+<img class="screenshot" alt="Room" src="/docs/assets/img/education/setup/Room-Assesment-plan.png">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/education/setup/school-settings.md b/erpnext/docs/user/manual/en/education/setup/school-settings.md
new file mode 100644
index 0000000..44f9c44
--- /dev/null
+++ b/erpnext/docs/user/manual/en/education/setup/school-settings.md
@@ -0,0 +1,15 @@
+# Education Settings
+
+The Education Settings page allow you to setup basic settings like **Academic Year and Term** for the educational setup.
+
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/education.png">
+
+The checkbox to Validate Batch for Students in Student Group enables the Student Batch validation for every Student from the Program Enrollment for the **Batch** based on **Student Group**
+
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-batch-validation.gif">
+
+You can enable the validation of Course for every Student from the enrolled Courses in Program Enrollment,for Course based Student Group by checking the settings for **Validate Enrolled Course for Students in Student Group**
+
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-course-validation.gif">
+
+{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/setup/student-batch-name.md b/erpnext/docs/user/manual/en/education/setup/student-batch-name.md
similarity index 80%
rename from erpnext/docs/user/manual/en/schools/setup/student-batch-name.md
rename to erpnext/docs/user/manual/en/education/setup/student-batch-name.md
index 056f910..3b5ad41 100644
--- a/erpnext/docs/user/manual/en/schools/setup/student-batch-name.md
+++ b/erpnext/docs/user/manual/en/education/setup/student-batch-name.md
@@ -2,7 +2,7 @@
Student batch is a collection of students from Student Groups. **Student batch** allows you to create **Student Group** based on a batch. When a student is enrolled for a **Program**, the Student batch is selected to enroll the student for the given Program and batch
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-batch.gif">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-batch.gif">
You can also get a **Student Batch-Wise Attendance** report to view the number of student present from the Batch.
diff --git a/erpnext/docs/user/manual/en/schools/setup/student-category.md b/erpnext/docs/user/manual/en/education/setup/student-category.md
similarity index 79%
rename from erpnext/docs/user/manual/en/schools/setup/student-category.md
rename to erpnext/docs/user/manual/en/education/setup/student-category.md
index 0d76927..cb5cbea 100644
--- a/erpnext/docs/user/manual/en/schools/setup/student-category.md
+++ b/erpnext/docs/user/manual/en/education/setup/student-category.md
@@ -6,7 +6,7 @@
We can create new student category by adding a name and save it
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-category.gif">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-category.gif">
{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/student/__init__.py b/erpnext/docs/user/manual/en/education/student/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/student/__init__.py
rename to erpnext/docs/user/manual/en/education/student/__init__.py
diff --git a/erpnext/docs/user/manual/en/schools/student/guardian.md b/erpnext/docs/user/manual/en/education/student/guardian.md
similarity index 70%
rename from erpnext/docs/user/manual/en/schools/student/guardian.md
rename to erpnext/docs/user/manual/en/education/student/guardian.md
index 7bbdbc2..ca34e8b 100644
--- a/erpnext/docs/user/manual/en/schools/student/guardian.md
+++ b/erpnext/docs/user/manual/en/education/student/guardian.md
@@ -2,7 +2,7 @@
The Guardian doctype allows you to record the guardian details for a **Student**.
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/guardian.png">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/guardian.png">
The email id added in the **Guardian** detail can be linked to a email group for sending newsletter or announcements.
diff --git a/erpnext/docs/user/manual/en/schools/student/index.md b/erpnext/docs/user/manual/en/education/student/index.md
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/student/index.md
rename to erpnext/docs/user/manual/en/education/student/index.md
diff --git a/erpnext/docs/user/manual/en/schools/student/index.txt b/erpnext/docs/user/manual/en/education/student/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/en/schools/student/index.txt
rename to erpnext/docs/user/manual/en/education/student/index.txt
diff --git a/erpnext/docs/user/manual/en/schools/setup/student-batch-name.md b/erpnext/docs/user/manual/en/education/student/student-batch.md
similarity index 80%
copy from erpnext/docs/user/manual/en/schools/setup/student-batch-name.md
copy to erpnext/docs/user/manual/en/education/student/student-batch.md
index 056f910..3b5ad41 100644
--- a/erpnext/docs/user/manual/en/schools/setup/student-batch-name.md
+++ b/erpnext/docs/user/manual/en/education/student/student-batch.md
@@ -2,7 +2,7 @@
Student batch is a collection of students from Student Groups. **Student batch** allows you to create **Student Group** based on a batch. When a student is enrolled for a **Program**, the Student batch is selected to enroll the student for the given Program and batch
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-batch.gif">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-batch.gif">
You can also get a **Student Batch-Wise Attendance** report to view the number of student present from the Batch.
diff --git a/erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md b/erpnext/docs/user/manual/en/education/student/student-group-creation-tool.md
similarity index 83%
rename from erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md
rename to erpnext/docs/user/manual/en/education/student/student-group-creation-tool.md
index 1cd9b1e..aeedd97 100644
--- a/erpnext/docs/user/manual/en/schools/student/student-group-creation-tool.md
+++ b/erpnext/docs/user/manual/en/education/student/student-group-creation-tool.md
@@ -4,11 +4,11 @@
To create Student group using this tool go to
-##Schools >>Student >> Student Group creation tool
+##education >>Student >> Student Group creation tool
Select the **Academic Term** and the **Program** for which a student group is to be created.
-<img class="screenshot" alt="Student Group Creation Tool" src="/docs/assets/img/schools/student/student-group-creation-tool.gif">
+<img class="screenshot" alt="Student Group Creation Tool" src="/docs/assets/img/education/student/student-group-creation-tool.gif">
By default the student group is created based on the **Course** only. The check box for "Separate course based Group for every Batch" allows you to create batchwise Student groups for a course.
diff --git a/erpnext/docs/user/manual/en/schools/student/student-group.md b/erpnext/docs/user/manual/en/education/student/student-group.md
similarity index 89%
rename from erpnext/docs/user/manual/en/schools/student/student-group.md
rename to erpnext/docs/user/manual/en/education/student/student-group.md
index cf3f82c..467fb3e 100644
--- a/erpnext/docs/user/manual/en/schools/student/student-group.md
+++ b/erpnext/docs/user/manual/en/education/student/student-group.md
@@ -6,15 +6,15 @@
To create a Student Group go to:
-Schools >> Student >> New Student Group
+education >> Student >> New Student Group
-<img class="screenshot" alt="Student Group" src="/docs/assets/img/schools/student/Student-group.gif">
+<img class="screenshot" alt="Student Group" src="/docs/assets/img/education/student/Student-group.gif">
To create a Student group based on **Batch**, select the **Progam** and **Batch**, where as to create a Student group based on **Course**, you will only have to select the Course Code. Creating a student group based on activity allows you to group of student for events and activities happening in the institute.
Once a student group is created you can mark attendance for the group.
-<img class="screenshot" alt="Student Group" src="/docs/assets/img/schools/student/student-group-attendance.gif">
+<img class="screenshot" alt="Student Group" src="/docs/assets/img/education/student/student-group-attendance.gif">
You can also update the **Email Group** for the Student Group. Click on Update Email Group to add all the email ids of the gaurdians in the respective email group and **Newsletter** can be created and sent to the Email group.
diff --git a/erpnext/docs/user/manual/en/schools/student/student-log.md b/erpnext/docs/user/manual/en/education/student/student-log.md
similarity index 72%
rename from erpnext/docs/user/manual/en/schools/student/student-log.md
rename to erpnext/docs/user/manual/en/education/student/student-log.md
index 160e39f..5c113e4 100644
--- a/erpnext/docs/user/manual/en/schools/student/student-log.md
+++ b/erpnext/docs/user/manual/en/education/student/student-log.md
@@ -4,6 +4,6 @@
You can make a note of student activities using Student log.
Logs can be categorised as 'General', 'Academic', 'Medical' or 'Achievement'
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-log.png">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-log.png">
{next}
diff --git a/erpnext/docs/user/manual/en/schools/student/student.md b/erpnext/docs/user/manual/en/education/student/student.md
similarity index 84%
rename from erpnext/docs/user/manual/en/schools/student/student.md
rename to erpnext/docs/user/manual/en/education/student/student.md
index 09e4471..fce5d7b 100644
--- a/erpnext/docs/user/manual/en/schools/student/student.md
+++ b/erpnext/docs/user/manual/en/education/student/student.md
@@ -3,7 +3,7 @@
A Student is a person who has enrolled at your institute and you have accepted their application.
The Student doctype maintains detials like personal information, date of birth, address etc. It also records the **Guardian** and sibling details.
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student.png">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student.png">
The student is enrolled in a **Program** when the application is approved. Once the enrollement is done the **Student Applicant** status is update to Admitted.
You can view every doctype created for a particular student. Eg : Fees, Student Group, etc
diff --git a/erpnext/docs/user/manual/en/index.txt b/erpnext/docs/user/manual/en/index.txt
index 712ab8e..34bb24e 100644
--- a/erpnext/docs/user/manual/en/index.txt
+++ b/erpnext/docs/user/manual/en/index.txt
@@ -15,3 +15,4 @@
using-erpnext
regional
customize-erpnext
+education
diff --git a/erpnext/docs/user/manual/en/schools/fees/fees.md b/erpnext/docs/user/manual/en/schools/fees/fees.md
deleted file mode 100644
index f17720c..0000000
--- a/erpnext/docs/user/manual/en/schools/fees/fees.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Fees
-
-Maintain a record of fees collected from students.
-The [Fee Structure](/docs/user/manual/en/schools/fees/fee-structure.html) is fetched based on the selected Program and Academic Term.
-
-<img class="screenshot" alt="Fees" src="/docs/assets/img/schools/fees/fees.png">
-
-{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/index.md b/erpnext/docs/user/manual/en/schools/index.md
deleted file mode 100644
index d317d39..0000000
--- a/erpnext/docs/user/manual/en/schools/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Schools
-
-
-The School Modules in ERPNext is designed to meet requirements of Schools, Colleges & Educational Institutes. This is a centralized system, which maintains and updates all the activities related to an Institution. This will ease the process of each and every aspect of a School, be it Students, Admission, Examination and Fee.
-
-<img class="screenshot" alt="Fees Section" src="/docs/assets/img/schools/module.png">
-
-{index}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/setup/index.md b/erpnext/docs/user/manual/en/schools/setup/index.md
deleted file mode 100644
index 4e09152..0000000
--- a/erpnext/docs/user/manual/en/schools/setup/index.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Setup
-
-The Setup section of Schools module provides facility to make some basic configuration. Below are doctypes for basic configuration.
-
-<img class="screenshot" alt="Setup Section" src="/docs/assets/img/schools/setup/setup-section.png">
-
-### Topics
-
-{index}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/setup/school-settings.md b/erpnext/docs/user/manual/en/schools/setup/school-settings.md
deleted file mode 100644
index ce9e914..0000000
--- a/erpnext/docs/user/manual/en/schools/setup/school-settings.md
+++ /dev/null
@@ -1,15 +0,0 @@
-#School Settings
-
-The Schools settings page allow you to setup basic settings like **Academic Year and Term** for the Schools setup.
-
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/schools.png">
-
-The checkbox to Validate Batch for Students in Student Group enables the Student Batch validation for every Student from the Program Enrollment for the **Batch** based on **Student Group**
-
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-batch-validation.gif">
-
-You can enable the validation of Course for every Student from the enrolled Courses in Program Enrollment,for Course based Student Group by checking the settings for **Validate Enrolled Course for Students in Student Group**
-
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-course-validation.gif">
-
-{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/en/schools/student/student-batch.md b/erpnext/docs/user/manual/en/schools/student/student-batch.md
deleted file mode 100644
index 056f910..0000000
--- a/erpnext/docs/user/manual/en/schools/student/student-batch.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Student Batch
-
-Student batch is a collection of students from Student Groups. **Student batch** allows you to create **Student Group** based on a batch. When a student is enrolled for a **Program**, the Student batch is selected to enroll the student for the given Program and batch
-
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-batch.gif">
-
-You can also get a **Student Batch-Wise Attendance** report to view the number of student present from the Batch.
-
-
-{next}
diff --git a/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md b/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md
index 0d8c269..9b25c8c 100644
--- a/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md
+++ b/erpnext/docs/user/manual/en/selling/setup/shipping-rule.md
@@ -1,7 +1,7 @@
# Shipping Rule
-Using Shipping Rule you can define the cost for delivering the product to the customer.
-You can define different shipping rules for the same item across different territories.
+Using Shipping Rule you can define the cost for delivering the product to the customer and also to the supplier.
+You can define different shipping rules or a fixed shipping amount for the same item across different territories.
<img class="screenshot" alt="Shipping Rule" src="/docs/assets/img/selling/shipping-rule.png">
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/__init__.py b/erpnext/docs/user/manual/es/education/Assessment/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/Assessment/__init__.py
rename to erpnext/docs/user/manual/es/education/Assessment/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/assessment_criteria.md b/erpnext/docs/user/manual/es/education/Assessment/assessment_criteria.md
similarity index 85%
rename from erpnext/docs/user/manual/es/schools/Assessment/assessment_criteria.md
rename to erpnext/docs/user/manual/es/education/Assessment/assessment_criteria.md
index 92f338f..31e710a 100644
--- a/erpnext/docs/user/manual/es/schools/Assessment/assessment_criteria.md
+++ b/erpnext/docs/user/manual/es/education/Assessment/assessment_criteria.md
@@ -2,12 +2,12 @@
Criterios de evaluación es el parámetro basado en el que se evalúa el estudiante.
-<img class="screenshot" alt="Assessment Criteria" src="/docs/assets/img/schools/assessment/assessment-criteria.png">
+<img class="screenshot" alt="Assessment Criteria" src="/docs/assets/img/education/assessment/assessment-criteria.png">
Después de la evaluación para un curso, las calificaciones obtenidas se ingresan en base a los criterios de evaluación. Por ejemplo, si la evaluación se llevó a cabo para el tema de la ciencia, entonces usted puede evaluar al estudiante en ciencia en varios criterios como la escritura, prácticas, presentación, etc
Los Criterios de Evaluación se usan al programar el Plan de Evaluación para el Grupo de Estudiantes y el Curso.
-<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/schools/assessment/assessment-plan-criteria.png">
+<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/education/assessment/assessment-plan-criteria.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/assessment_group.md b/erpnext/docs/user/manual/es/education/Assessment/assessment_group.md
similarity index 82%
rename from erpnext/docs/user/manual/es/schools/Assessment/assessment_group.md
rename to erpnext/docs/user/manual/es/education/Assessment/assessment_group.md
index 7102888..aaabda1 100644
--- a/erpnext/docs/user/manual/es/schools/Assessment/assessment_group.md
+++ b/erpnext/docs/user/manual/es/education/Assessment/assessment_group.md
@@ -4,10 +4,10 @@
Por ejemplo, si realiza dos evaluaciones en un año académico, configure el Grupo de evaluación de la siguiente manera.
-<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/schools/assessment/assessment-group-term.png">
+<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/education/assessment/assessment-group-term.png">
En la misma línea, también puede definir varios Grupo de Evaluación basado sobre la evaluación llevada a cabo en su instituto.
-<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/schools/assessment/assessment-group-details.png">
+<img class="screenshot" alt="Assessment Group Term" src="/docs/assets/img/education/assessment/assessment-group-details.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/assessment_plan.md b/erpnext/docs/user/manual/es/education/Assessment/assessment_plan.md
similarity index 84%
rename from erpnext/docs/user/manual/es/schools/Assessment/assessment_plan.md
rename to erpnext/docs/user/manual/es/education/Assessment/assessment_plan.md
index 9d66c21..5661892 100644
--- a/erpnext/docs/user/manual/es/schools/Assessment/assessment_plan.md
+++ b/erpnext/docs/user/manual/es/education/Assessment/assessment_plan.md
@@ -10,10 +10,10 @@
4. Examinador y Supervisor
-<img class="screenshot" alt="Assessment Plan Details" src="/docs/assets/img/schools/assessment/assessment-plan-details.png">
+<img class="screenshot" alt="Assessment Plan Details" src="/docs/assets/img/education/assessment/assessment-plan-details.png">
5. Los Criterios de Evaluación son la lista de criterios basados ​​en que cada estudiante en será evaluado y los grados serán asignados.
-<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/schools/assessment/assessment-plan-criteria.png">
+<img class="screenshot" alt="Assessment Plan Criteria" src="/docs/assets/img/education/assessment/assessment-plan-criteria.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/assessment_result.md b/erpnext/docs/user/manual/es/education/Assessment/assessment_result.md
similarity index 75%
rename from erpnext/docs/user/manual/es/schools/Assessment/assessment_result.md
rename to erpnext/docs/user/manual/es/education/Assessment/assessment_result.md
index 2d94097..67a6f9a 100644
--- a/erpnext/docs/user/manual/es/schools/Assessment/assessment_result.md
+++ b/erpnext/docs/user/manual/es/education/Assessment/assessment_result.md
@@ -1,7 +1,7 @@
#Resultados de Evaluación
-El resultado de la evaluación es un registro de las calificaciones obtenidas por el estudiante para una evaluación específica. El resultado de la evaluación se crea en el backend en base a los puntos en [Herramienta de Resultados de Evaluación](/docs/user/manual/es/schools/assessment/assessment_result_tool.html).
+El resultado de la evaluación es un registro de las calificaciones obtenidas por el estudiante para una evaluación específica. El resultado de la evaluación se crea en el backend en base a los puntos en [Herramienta de Resultados de Evaluación](/docs/user/manual/es/education/assessment/assessment_result_tool.html).
-<img class="screenshot" alt="Assessment Result" src="/docs/assets/img/schools/assessment/assessment-result.png">
+<img class="screenshot" alt="Assessment Result" src="/docs/assets/img/education/assessment/assessment-result.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/assessment_result_tool.md b/erpnext/docs/user/manual/es/education/Assessment/assessment_result_tool.md
similarity index 92%
rename from erpnext/docs/user/manual/es/schools/Assessment/assessment_result_tool.md
rename to erpnext/docs/user/manual/es/education/Assessment/assessment_result_tool.md
index 70e4ee3..a6a44e5 100644
--- a/erpnext/docs/user/manual/es/schools/Assessment/assessment_result_tool.md
+++ b/erpnext/docs/user/manual/es/education/Assessment/assessment_result_tool.md
@@ -3,7 +3,7 @@
Herramienta de resultados de evaluación le ayuda a ingresar las calificaciones obtenidas por los estudiantes para un curso específico. En esta herramienta, basada en el plan de evaluación, todos los estudiantes van a ser filtrados dentro de la herramienta de resultados de la evaluación. También, Columnas para los Criterios de Evaluación serán donde las calificaciones ganadas pueden ser ingresadas para cada Estudiante.
-<img class="screenshot" alt="Assessment Result Tool" src="/docs/assets/img/schools/assessment/assessment-result-tool.png">
+<img class="screenshot" alt="Assessment Result Tool" src="/docs/assets/img/education/assessment/assessment-result-tool.png">
A medida que vaya introduciendo las notas para un Estudiante y cambie al siguiente alumno, en el backend, el registro de Resultados del Estudiante se creará automáticamente para ese Estudiante.
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/grading_scale.md b/erpnext/docs/user/manual/es/education/Assessment/grading_scale.md
similarity index 87%
rename from erpnext/docs/user/manual/es/schools/Assessment/grading_scale.md
rename to erpnext/docs/user/manual/es/education/Assessment/grading_scale.md
index 9107f92..bf362b4 100644
--- a/erpnext/docs/user/manual/es/schools/Assessment/grading_scale.md
+++ b/erpnext/docs/user/manual/es/education/Assessment/grading_scale.md
@@ -2,6 +2,6 @@
En la escala de calificación, puedes definir varios grados y límites para los estudiantes. Basado en la calificación obtenida por el estudiante en la evaluación, el grado (Grade) será asignado.
-<img class="screenshot" alt="Grading Scale" src="/docs/assets/img/schools/assessment/grading-scale.png">
+<img class="screenshot" alt="Grading Scale" src="/docs/assets/img/education/assessment/grading-scale.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/index.md b/erpnext/docs/user/manual/es/education/Assessment/index.md
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/Assessment/index.md
rename to erpnext/docs/user/manual/es/education/Assessment/index.md
diff --git a/erpnext/docs/user/manual/es/schools/Assessment/index.txt b/erpnext/docs/user/manual/es/education/Assessment/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/Assessment/index.txt
rename to erpnext/docs/user/manual/es/education/Assessment/index.txt
diff --git a/erpnext/docs/user/manual/es/schools/__init__.py b/erpnext/docs/user/manual/es/education/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/__init__.py
rename to erpnext/docs/user/manual/es/education/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/admission/__init__.py b/erpnext/docs/user/manual/es/education/admission/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/admission/__init__.py
rename to erpnext/docs/user/manual/es/education/admission/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/admission/index.md b/erpnext/docs/user/manual/es/education/admission/index.md
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/admission/index.md
rename to erpnext/docs/user/manual/es/education/admission/index.md
diff --git a/erpnext/docs/user/manual/es/schools/admission/index.txt b/erpnext/docs/user/manual/es/education/admission/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/admission/index.txt
rename to erpnext/docs/user/manual/es/education/admission/index.txt
diff --git a/erpnext/docs/user/manual/es/schools/admission/program-enrollment.md b/erpnext/docs/user/manual/es/education/admission/program-enrollment.md
similarity index 78%
rename from erpnext/docs/user/manual/es/schools/admission/program-enrollment.md
rename to erpnext/docs/user/manual/es/education/admission/program-enrollment.md
index 34e8996..6a24284 100644
--- a/erpnext/docs/user/manual/es/schools/admission/program-enrollment.md
+++ b/erpnext/docs/user/manual/es/education/admission/program-enrollment.md
@@ -2,6 +2,6 @@
Este formulario te permite inscribir un estudiante a un programa. Un estudiante puede ser inscrito en multiples programas.
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/program-enrollment.png">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/program-enrollment.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/admission/student-applicant.md b/erpnext/docs/user/manual/es/education/admission/student-applicant.md
similarity index 89%
rename from erpnext/docs/user/manual/es/schools/admission/student-applicant.md
rename to erpnext/docs/user/manual/es/education/admission/student-applicant.md
index 33d8dd7..4d8723c 100644
--- a/erpnext/docs/user/manual/es/schools/admission/student-applicant.md
+++ b/erpnext/docs/user/manual/es/education/admission/student-applicant.md
@@ -3,7 +3,7 @@
Un registro de Aplicación de Estudiante necesita ser creado cuando un estudiante aplica para un programa en su institución.
Puedes Aprobar o Rechazar una aplicación de estudiante. Aceptando una aplicación de un estudiante puedes agregarlos al master de estudiantes.
-<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/schools/admission/student-applicant.png">
+<img class="screenshot" alt="Student Applicant" src="/docs/assets/img/education/admission/student-applicant.png">
### Estados de la Aplicación
@@ -21,8 +21,8 @@
Una vez aprobada una Aplicación de Estudiante, puedes inscribirlo a un programa. Cuando le das click al butón 'Inscribir',
-el sistema creará un estudiante usando esa aplicación y le va a redireccionar a el [Formulario de Inscripción al Programa](/docs/user/manual/es/schools/student/program-enrollment.html).
+el sistema creará un estudiante usando esa aplicación y le va a redireccionar a el [Formulario de Inscripción al Programa](/docs/user/manual/es/education/student/program-enrollment.html).
-<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/schools/admission/student-applicant-enroll.png">
+<img class="screenshot" alt="Student Applicant Enrollment" src="/docs/assets/img/education/admission/student-applicant-enroll.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/fees/__init__.py b/erpnext/docs/user/manual/es/education/fees/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/fees/__init__.py
rename to erpnext/docs/user/manual/es/education/fees/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/fees/fee-category.md b/erpnext/docs/user/manual/es/education/fees/fee-category.md
similarity index 80%
rename from erpnext/docs/user/manual/es/schools/fees/fee-category.md
rename to erpnext/docs/user/manual/es/education/fees/fee-category.md
index c05b3f5..a38ba7e 100644
--- a/erpnext/docs/user/manual/es/schools/fees/fee-category.md
+++ b/erpnext/docs/user/manual/es/education/fees/fee-category.md
@@ -2,6 +2,6 @@
Todos los tipos diferentes de cuotas que se cobran
-<img class="screenshot" alt="Fees Category" src="/docs/assets/img/schools/fees/fee-category.png">
+<img class="screenshot" alt="Fees Category" src="/docs/assets/img/education/fees/fee-category.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/fees/fee-structure.md b/erpnext/docs/user/manual/es/education/fees/fee-structure.md
similarity index 83%
rename from erpnext/docs/user/manual/es/schools/fees/fee-structure.md
rename to erpnext/docs/user/manual/es/education/fees/fee-structure.md
index 1f621d7..6fe6af9 100644
--- a/erpnext/docs/user/manual/es/schools/fees/fee-structure.md
+++ b/erpnext/docs/user/manual/es/education/fees/fee-structure.md
@@ -2,6 +2,6 @@
Una Estructura de Cuota es una plantilla que puede ser usada cuando se hacen registros de cuotas.
-<img class="screenshot" alt="Fees Structure" src="/docs/assets/img/schools/fees/fee-structure.png">
+<img class="screenshot" alt="Fees Structure" src="/docs/assets/img/education/fees/fee-structure.png">
{next}
diff --git a/erpnext/docs/user/manual/es/education/fees/fees.md b/erpnext/docs/user/manual/es/education/fees/fees.md
new file mode 100644
index 0000000..5f6eee4
--- /dev/null
+++ b/erpnext/docs/user/manual/es/education/fees/fees.md
@@ -0,0 +1,8 @@
+# Cuotas
+
+Mantiene un registro de todas las cuotas recolectadas de los estudiantes.
+La [Estructura de Cuota](/docs/user/manual/es/education/fees/fee-structure.html) es seleccionada basada en el programa seleccionada y los Términos Académicos.
+
+<img class="screenshot" alt="Fees" src="/docs/assets/img/education/fees/fees.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/es/schools/fees/index.md b/erpnext/docs/user/manual/es/education/fees/index.md
similarity index 82%
rename from erpnext/docs/user/manual/es/schools/fees/index.md
rename to erpnext/docs/user/manual/es/education/fees/index.md
index e883813..c1b5bb5 100644
--- a/erpnext/docs/user/manual/es/schools/fees/index.md
+++ b/erpnext/docs/user/manual/es/education/fees/index.md
@@ -2,7 +2,7 @@
Esta sección contiene todos los documentos relacionado a las 'Cuota'
-<img class="screenshot" alt="Fees Section" src="/docs/assets/img/schools/fees/fees-section.png">
+<img class="screenshot" alt="Fees Section" src="/docs/assets/img/education/fees/fees-section.png">
### Temas
diff --git a/erpnext/docs/user/manual/es/schools/fees/index.txt b/erpnext/docs/user/manual/es/education/fees/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/fees/index.txt
rename to erpnext/docs/user/manual/es/education/fees/index.txt
diff --git a/erpnext/docs/user/manual/es/schools/index.md b/erpnext/docs/user/manual/es/education/index.md
similarity index 84%
rename from erpnext/docs/user/manual/es/schools/index.md
rename to erpnext/docs/user/manual/es/education/index.md
index a1824dc..feca830 100644
--- a/erpnext/docs/user/manual/es/schools/index.md
+++ b/erpnext/docs/user/manual/es/education/index.md
@@ -1,8 +1,8 @@
-# Schools
+# Education
Los módulos de School estan diseñados para satisfacer los requerimientos de Escuelas, Colegios e Institutos Educacionales.
-<img class="screenshot" alt="Fees Section" src="/docs/assets/img/schools/module.png">
+<img class="screenshot" alt="Fees Section" src="/docs/assets/img/education/module.png">
{index}
diff --git a/erpnext/docs/user/manual/es/schools/index.txt b/erpnext/docs/user/manual/es/education/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/index.txt
rename to erpnext/docs/user/manual/es/education/index.txt
diff --git a/erpnext/docs/user/manual/es/schools/schedule/__init__.py b/erpnext/docs/user/manual/es/education/schedule/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/schedule/__init__.py
rename to erpnext/docs/user/manual/es/education/schedule/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/schedule/course-schedule.md b/erpnext/docs/user/manual/es/education/schedule/course-schedule.md
similarity index 86%
rename from erpnext/docs/user/manual/es/schools/schedule/course-schedule.md
rename to erpnext/docs/user/manual/es/education/schedule/course-schedule.md
index 629c828..7bf40ff 100644
--- a/erpnext/docs/user/manual/es/schools/schedule/course-schedule.md
+++ b/erpnext/docs/user/manual/es/education/schedule/course-schedule.md
@@ -3,13 +3,13 @@
El Horario de Curso es el horario de una sesión de un profesor para un Curso en particular.
Puedes ver un resumen del horario del curso en la vista de Calendario.
-<img class="screenshot" alt="Course Schedule" src="/docs/assets/img/schools/schedule/course-schedule.png">
+<img class="screenshot" alt="Course Schedule" src="/docs/assets/img/education/schedule/course-schedule.png">
### Marcando asistencia
Puedes pasar la asistencia para un grupo de estudiantes usando el Horario de Curso.
-<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/schools/schedule/course-schedule-att.png">
+<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/education/schedule/course-schedule-att.png">
- Para hacer la asistencia, expandir la sección de asistencia.
- Selecciona los estudiantes que estaban presentes para esa sesión.
@@ -20,6 +20,6 @@
Una vez hayas marcado la asistencia usando la sección de asistencia en el Horario de un Curso, esta sección debería estar oculta.
Un botón de Ver Asistencia debería aparecer. Click en el botón para ver todos los registros de asistencia creados para ese Horario de Curso.
-<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/schools/schedule/course-schedule-att-1.png">
+<img class="screenshot" alt="Course Schedule Attendance" src="/docs/assets/img/education/schedule/course-schedule-att-1.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/schedule/examination.md b/erpnext/docs/user/manual/es/education/schedule/examination.md
similarity index 85%
rename from erpnext/docs/user/manual/es/schools/schedule/examination.md
rename to erpnext/docs/user/manual/es/education/schedule/examination.md
index 5f85aed..b8cef3e 100644
--- a/erpnext/docs/user/manual/es/schools/schedule/examination.md
+++ b/erpnext/docs/user/manual/es/education/schedule/examination.md
@@ -2,7 +2,7 @@
El registro de examinación puede ser usado para hacer el seguimiento del horario de los examenes y los resultados de los mismos.
-<img class="screenshot" alt="Examination" src="/docs/assets/img/schools/schedule/examination.png">
+<img class="screenshot" alt="Examination" src="/docs/assets/img/education/schedule/examination.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/schedule/index.md b/erpnext/docs/user/manual/es/education/schedule/index.md
similarity index 66%
rename from erpnext/docs/user/manual/es/schools/schedule/index.md
rename to erpnext/docs/user/manual/es/education/schedule/index.md
index f9c2c3b..016aa10 100644
--- a/erpnext/docs/user/manual/es/schools/schedule/index.md
+++ b/erpnext/docs/user/manual/es/education/schedule/index.md
@@ -1,6 +1,6 @@
# Horario
-<img class="screenshot" alt="Schedule Section" src="/docs/assets/img/schools/schedule/schedule-section.png">
+<img class="screenshot" alt="Schedule Section" src="/docs/assets/img/education/schedule/schedule-section.png">
### Temas
diff --git a/erpnext/docs/user/manual/es/schools/schedule/index.txt b/erpnext/docs/user/manual/es/education/schedule/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/schedule/index.txt
rename to erpnext/docs/user/manual/es/education/schedule/index.txt
diff --git a/erpnext/docs/user/manual/es/schools/schedule/scheduling-tool.md b/erpnext/docs/user/manual/es/education/schedule/scheduling-tool.md
similarity index 96%
rename from erpnext/docs/user/manual/es/schools/schedule/scheduling-tool.md
rename to erpnext/docs/user/manual/es/education/schedule/scheduling-tool.md
index 070a035..55ff425 100644
--- a/erpnext/docs/user/manual/es/schools/schedule/scheduling-tool.md
+++ b/erpnext/docs/user/manual/es/education/schedule/scheduling-tool.md
@@ -2,7 +2,7 @@
Esta herramienta puede ser usada para crear los Horarios de los Cursos.
-<img class="screenshot" alt="Scheduling Tool" src="/docs/assets/img/schools/schedule/scheduling-tool.png">
+<img class="screenshot" alt="Scheduling Tool" src="/docs/assets/img/education/schedule/scheduling-tool.png">
### Creando Horarios de Cursos
diff --git a/erpnext/docs/user/manual/es/schools/schedule/student-attendance.md b/erpnext/docs/user/manual/es/education/schedule/student-attendance.md
similarity index 83%
rename from erpnext/docs/user/manual/es/schools/schedule/student-attendance.md
rename to erpnext/docs/user/manual/es/education/schedule/student-attendance.md
index a06c4f2..53bd4e9 100644
--- a/erpnext/docs/user/manual/es/schools/schedule/student-attendance.md
+++ b/erpnext/docs/user/manual/es/education/schedule/student-attendance.md
@@ -2,6 +2,6 @@
Mantiene los registros de la asistencia del estudiante. Los registros de asistencia pueden ser creados sobre los horarios de los cursos (Course Schedules).
-<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/schools/schedule/student-attendance.png">
+<img class="screenshot" alt="Student Attendance" src="/docs/assets/img/education/schedule/student-attendance.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/setup/__init__.py b/erpnext/docs/user/manual/es/education/setup/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/setup/__init__.py
rename to erpnext/docs/user/manual/es/education/setup/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/setup/academic-term.md b/erpnext/docs/user/manual/es/education/setup/academic-term.md
similarity index 71%
rename from erpnext/docs/user/manual/es/schools/setup/academic-term.md
rename to erpnext/docs/user/manual/es/education/setup/academic-term.md
index 83af58a..7a6b405 100644
--- a/erpnext/docs/user/manual/es/schools/setup/academic-term.md
+++ b/erpnext/docs/user/manual/es/education/setup/academic-term.md
@@ -1,6 +1,6 @@
# Término Académico
-<img class="screenshot" alt="Academic Term" src="/docs/assets/img/schools/setup/academic-term.png">
+<img class="screenshot" alt="Academic Term" src="/docs/assets/img/education/setup/academic-term.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/setup/academic-year.md b/erpnext/docs/user/manual/es/education/setup/academic-year.md
similarity index 70%
rename from erpnext/docs/user/manual/es/schools/setup/academic-year.md
rename to erpnext/docs/user/manual/es/education/setup/academic-year.md
index 56a46f9..7fe2a8f 100644
--- a/erpnext/docs/user/manual/es/schools/setup/academic-year.md
+++ b/erpnext/docs/user/manual/es/education/setup/academic-year.md
@@ -1,5 +1,5 @@
# Año Académico
-<img class="screenshot" alt="Academic Year" src="/docs/assets/img/schools/setup/academic-year.png">
+<img class="screenshot" alt="Academic Year" src="/docs/assets/img/education/setup/academic-year.png">
{next}
diff --git a/erpnext/docs/user/manual/es/education/setup/course.md b/erpnext/docs/user/manual/es/education/setup/course.md
new file mode 100644
index 0000000..fbbce62
--- /dev/null
+++ b/erpnext/docs/user/manual/es/education/setup/course.md
@@ -0,0 +1,5 @@
+# Curso
+
+<img class="screenshot" alt="Course" src="/docs/assets/img/education/setup/course.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/es/schools/setup/index.md b/erpnext/docs/user/manual/es/education/setup/index.md
similarity index 72%
rename from erpnext/docs/user/manual/es/schools/setup/index.md
rename to erpnext/docs/user/manual/es/education/setup/index.md
index 070db54..59df995 100644
--- a/erpnext/docs/user/manual/es/schools/setup/index.md
+++ b/erpnext/docs/user/manual/es/education/setup/index.md
@@ -1,6 +1,6 @@
# Configuración
-<img class="screenshot" alt="Setup Section" src="/docs/assets/img/schools/setup/setup-section.png">
+<img class="screenshot" alt="Setup Section" src="/docs/assets/img/education/setup/setup-section.png">
### Temas
diff --git a/erpnext/docs/user/manual/es/schools/setup/index.txt b/erpnext/docs/user/manual/es/education/setup/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/setup/index.txt
rename to erpnext/docs/user/manual/es/education/setup/index.txt
diff --git a/erpnext/docs/user/manual/es/education/setup/instructor.md b/erpnext/docs/user/manual/es/education/setup/instructor.md
new file mode 100644
index 0000000..4812c15
--- /dev/null
+++ b/erpnext/docs/user/manual/es/education/setup/instructor.md
@@ -0,0 +1,5 @@
+# Instructor
+
+<img class="screenshot" alt="Instructor" src="/docs/assets/img/education/setup/instructor.png">
+
+{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/es/education/setup/program.md b/erpnext/docs/user/manual/es/education/setup/program.md
new file mode 100644
index 0000000..1236057
--- /dev/null
+++ b/erpnext/docs/user/manual/es/education/setup/program.md
@@ -0,0 +1,5 @@
+# Programa
+
+<img class="screenshot" alt="Program" src="/docs/assets/img/education/setup/program.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/es/education/setup/room.md b/erpnext/docs/user/manual/es/education/setup/room.md
new file mode 100644
index 0000000..7750dcf
--- /dev/null
+++ b/erpnext/docs/user/manual/es/education/setup/room.md
@@ -0,0 +1,6 @@
+# Aula
+
+
+<img class="screenshot" alt="Room" src="/docs/assets/img/education/setup/room.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/es/schools/student/__init__.py b/erpnext/docs/user/manual/es/education/student/__init__.py
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/student/__init__.py
rename to erpnext/docs/user/manual/es/education/student/__init__.py
diff --git a/erpnext/docs/user/manual/es/schools/student/index.md b/erpnext/docs/user/manual/es/education/student/index.md
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/student/index.md
rename to erpnext/docs/user/manual/es/education/student/index.md
diff --git a/erpnext/docs/user/manual/es/schools/student/index.txt b/erpnext/docs/user/manual/es/education/student/index.txt
similarity index 100%
rename from erpnext/docs/user/manual/es/schools/student/index.txt
rename to erpnext/docs/user/manual/es/education/student/index.txt
diff --git a/erpnext/docs/user/manual/es/education/student/student-batch.md b/erpnext/docs/user/manual/es/education/student/student-batch.md
new file mode 100644
index 0000000..bb7c9d5
--- /dev/null
+++ b/erpnext/docs/user/manual/es/education/student/student-batch.md
@@ -0,0 +1,8 @@
+# Lote de Estudiantes
+
+
+Un lote de estudiantes es una colección de estudiantes desde los Grupos de Estudiantes.
+
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-batch.png">
+
+{next}
diff --git a/erpnext/docs/user/manual/es/schools/student/student-group-creation-tool.md b/erpnext/docs/user/manual/es/education/student/student-group-creation-tool.md
similarity index 77%
rename from erpnext/docs/user/manual/es/schools/student/student-group-creation-tool.md
rename to erpnext/docs/user/manual/es/education/student/student-group-creation-tool.md
index 2102c34..942fadf 100644
--- a/erpnext/docs/user/manual/es/schools/student/student-group-creation-tool.md
+++ b/erpnext/docs/user/manual/es/education/student/student-group-creation-tool.md
@@ -3,6 +3,6 @@
Esta herramienta te permite crear grupos de estudiantes. Puedes especificar multiples parámetros para crearlos.
-<img class="screenshot" alt="Student Group Creation Tool" src="/docs/assets/img/schools/student/student-group-creation-tool.png">
+<img class="screenshot" alt="Student Group Creation Tool" src="/docs/assets/img/education/student/student-group-creation-tool.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/student/student-group.md b/erpnext/docs/user/manual/es/education/student/student-group.md
similarity index 90%
rename from erpnext/docs/user/manual/es/schools/student/student-group.md
rename to erpnext/docs/user/manual/es/education/student/student-group.md
index f5841cc..59dfcbc 100644
--- a/erpnext/docs/user/manual/es/schools/student/student-group.md
+++ b/erpnext/docs/user/manual/es/education/student/student-group.md
@@ -3,6 +3,6 @@
Un Grupo de Estudiante es una colección de estudiantes tomando el mismo curso. Puedes crear calendarios para los cursos y examinaciones para un Grupo de Estudiante.
Un Grupo de Estudiante necesita ser creado para cada curso en un año o término académico en particular.
-<img class="screenshot" alt="Student Group" src="/docs/assets/img/schools/student/student-group.png">
+<img class="screenshot" alt="Student Group" src="/docs/assets/img/education/student/student-group.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/student/student-log.md b/erpnext/docs/user/manual/es/education/student/student-log.md
similarity index 71%
rename from erpnext/docs/user/manual/es/schools/student/student-log.md
rename to erpnext/docs/user/manual/es/education/student/student-log.md
index 296b867..e5a5e2c 100644
--- a/erpnext/docs/user/manual/es/schools/student/student-log.md
+++ b/erpnext/docs/user/manual/es/education/student/student-log.md
@@ -3,6 +3,6 @@
Puedes crear una nota de una actividad de un estudiante usando la bitácora de estudiante (log)
Los registros de bitágora pueden ser categorizadas como 'General', 'Academic', 'Medical' or 'Achievement'
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-log.png">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student-log.png">
{next}
diff --git a/erpnext/docs/user/manual/es/schools/student/student.md b/erpnext/docs/user/manual/es/education/student/student.md
similarity index 78%
rename from erpnext/docs/user/manual/es/schools/student/student.md
rename to erpnext/docs/user/manual/es/education/student/student.md
index fee84c5..21724a7 100644
--- a/erpnext/docs/user/manual/es/schools/student/student.md
+++ b/erpnext/docs/user/manual/es/education/student/student.md
@@ -5,6 +5,6 @@
Puedes ver todo lo relacionado a un estudiante en particular en esta página. Ejemplo: Pagos, Grupo de Estudiante, etc.
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student.png">
+<img class="screenshot" alt="Student" src="/docs/assets/img/education/student/student.png">
{next}
diff --git a/erpnext/docs/user/manual/es/index.txt b/erpnext/docs/user/manual/es/index.txt
index 00cf97b..ad85a79 100644
--- a/erpnext/docs/user/manual/es/index.txt
+++ b/erpnext/docs/user/manual/es/index.txt
@@ -1,4 +1,4 @@
introduction
accounts
projects
-schools
+education
diff --git a/erpnext/docs/user/manual/es/schools/fees/fees.md b/erpnext/docs/user/manual/es/schools/fees/fees.md
deleted file mode 100644
index d6b74dc..0000000
--- a/erpnext/docs/user/manual/es/schools/fees/fees.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Cuotas
-
-Mantiene un registro de todas las cuotas recolectadas de los estudiantes.
-La [Estructura de Cuota](/docs/user/manual/es/schools/fees/fee-structure.html) es seleccionada basada en el programa seleccionada y los Términos Académicos.
-
-<img class="screenshot" alt="Fees" src="/docs/assets/img/schools/fees/fees.png">
-
-{next}
diff --git a/erpnext/docs/user/manual/es/schools/setup/course.md b/erpnext/docs/user/manual/es/schools/setup/course.md
deleted file mode 100644
index 799f9b4..0000000
--- a/erpnext/docs/user/manual/es/schools/setup/course.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Curso
-
-<img class="screenshot" alt="Course" src="/docs/assets/img/schools/setup/course.png">
-
-{next}
diff --git a/erpnext/docs/user/manual/es/schools/setup/instructor.md b/erpnext/docs/user/manual/es/schools/setup/instructor.md
deleted file mode 100644
index 1a4d351..0000000
--- a/erpnext/docs/user/manual/es/schools/setup/instructor.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Instructor
-
-<img class="screenshot" alt="Instructor" src="/docs/assets/img/schools/setup/instructor.png">
-
-{next}
\ No newline at end of file
diff --git a/erpnext/docs/user/manual/es/schools/setup/program.md b/erpnext/docs/user/manual/es/schools/setup/program.md
deleted file mode 100644
index 78895c5..0000000
--- a/erpnext/docs/user/manual/es/schools/setup/program.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Programa
-
-<img class="screenshot" alt="Program" src="/docs/assets/img/schools/setup/program.png">
-
-{next}
diff --git a/erpnext/docs/user/manual/es/schools/setup/room.md b/erpnext/docs/user/manual/es/schools/setup/room.md
deleted file mode 100644
index 92a4de7..0000000
--- a/erpnext/docs/user/manual/es/schools/setup/room.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Aula
-
-
-<img class="screenshot" alt="Room" src="/docs/assets/img/schools/setup/room.png">
-
-{next}
diff --git a/erpnext/docs/user/manual/es/schools/student/student-batch.md b/erpnext/docs/user/manual/es/schools/student/student-batch.md
deleted file mode 100644
index 4d5a17e..0000000
--- a/erpnext/docs/user/manual/es/schools/student/student-batch.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Lote de Estudiantes
-
-
-Un lote de estudiantes es una colección de estudiantes desde los Grupos de Estudiantes.
-
-<img class="screenshot" alt="Student" src="/docs/assets/img/schools/student/student-batch.png">
-
-{next}
diff --git a/erpnext/docs/user/videos/learn/education.md b/erpnext/docs/user/videos/learn/education.md
new file mode 100644
index 0000000..24b0cd0
--- /dev/null
+++ b/erpnext/docs/user/videos/learn/education.md
@@ -0,0 +1,7 @@
+# ERPNext for Education
+
+<iframe width="660" height="371" src="https://www.youtube.com/embed/f6foQOyGzdA" frameborder="0" allowfullscreen></iframe>
+
+**Duration: 39:21**
+
+This video is a recording of a webinar on how education institutes can use ERPNext Education module. It covers management of Student Applications, managing masters like Students, Programs and Courses. Also, you can manage processes like Course Scheduling, Student Assessment, Fees and Attendance.
\ No newline at end of file
diff --git a/erpnext/docs/user/videos/learn/index.md b/erpnext/docs/user/videos/learn/index.md
index dad5cc0..3bdf305 100644
--- a/erpnext/docs/user/videos/learn/index.md
+++ b/erpnext/docs/user/videos/learn/index.md
@@ -27,8 +27,8 @@
ERPNext for Retailers</a>
<span class="text-muted pull-right">39:21</span>
</li>
- <li><a href="/docs/user/videos/learn/schools.html">
- ERPNext for Schools</a>
+ <li><a href="/docs/user/videos/learn/education.html">
+ ERPNext for Education</a>
<span class="text-muted pull-right">39:21</span>
</li>
</ul>
diff --git a/erpnext/docs/user/videos/learn/schools.md b/erpnext/docs/user/videos/learn/schools.md
deleted file mode 100644
index 3553a53..0000000
--- a/erpnext/docs/user/videos/learn/schools.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# ERPNext for Schools
-
-<iframe width="660" height="371" src="https://www.youtube.com/embed/f6foQOyGzdA" frameborder="0" allowfullscreen></iframe>
-
-**Duration: 39:21**
-
-This video is a recording of a webinar on how education institutes can use ERPNext Schools module. It covers management of Student Applications, managing masters like Students, Programs and Courses. Also, you can manage processes like Course Scheduling, Student Assessment, Fees and Attendance.
\ No newline at end of file
diff --git a/erpnext/domains/education.py b/erpnext/domains/education.py
index 7a86c76..eed3545 100644
--- a/erpnext/domains/education.py
+++ b/erpnext/domains/education.py
@@ -8,7 +8,9 @@
'Fees',
'Task',
'ToDo',
- 'Schools'
+ 'Education',
+ 'Student Attendance Tool',
+ 'Student Applicant'
],
'default_portal_role': 'Student',
'restricted_roles': [
@@ -17,21 +19,8 @@
'Academics User'
],
'modules': [
- 'Schools'
+ 'Education'
],
- 'fixtures': [
- dict(doctype='Academic Year', academic_year_name='2013-14'),
- dict(doctype='Academic Year', academic_year_name='2014-15'),
- dict(doctype='Academic Year', academic_year_name='2015-16'),
- dict(doctype='Academic Year', academic_year_name='2016-17'),
- dict(doctype='Academic Year', academic_year_name='2017-18'),
- dict(doctype='Academic Year', academic_year_name='2018-19'),
- dict(doctype='Academic Year', academic_year_name='2019-20'),
- dict(doctype='Academic Term', academic_year='2016-17', term_name='Semester 1'),
- dict(doctype='Academic Term', academic_year='2016-17', term_name='Semester 2'),
- dict(doctype='Academic Term', academic_year='2016-17', term_name='Semester 3'),
- dict(doctype='Academic Term', academic_year='2017-18', term_name='Semester 1'),
- dict(doctype='Academic Term', academic_year='2017-18', term_name='Semester 2'),
- dict(doctype='Academic Term', academic_year='2017-18', term_name='Semester 3')
- ]
+ 'on_setup': 'erpnext.education.setup.setup_education'
+
}
\ No newline at end of file
diff --git a/erpnext/schools/__init__.py b/erpnext/education/__init__.py
similarity index 100%
rename from erpnext/schools/__init__.py
rename to erpnext/education/__init__.py
diff --git a/erpnext/schools/api.py b/erpnext/education/api.py
similarity index 100%
rename from erpnext/schools/api.py
rename to erpnext/education/api.py
diff --git a/erpnext/schools/doctype/__init__.py b/erpnext/education/doctype/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/__init__.py
rename to erpnext/education/doctype/__init__.py
diff --git a/erpnext/schools/doctype/academic_term/__init__.py b/erpnext/education/doctype/academic_term/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/academic_term/__init__.py
rename to erpnext/education/doctype/academic_term/__init__.py
diff --git a/erpnext/schools/doctype/academic_term/academic_term.js b/erpnext/education/doctype/academic_term/academic_term.js
similarity index 100%
rename from erpnext/schools/doctype/academic_term/academic_term.js
rename to erpnext/education/doctype/academic_term/academic_term.js
diff --git a/erpnext/schools/doctype/academic_term/academic_term.json b/erpnext/education/doctype/academic_term/academic_term.json
similarity index 98%
rename from erpnext/schools/doctype/academic_term/academic_term.json
rename to erpnext/education/doctype/academic_term/academic_term.json
index b4eb83d..06c5b1a 100644
--- a/erpnext/schools/doctype/academic_term/academic_term.json
+++ b/erpnext/education/doctype/academic_term/academic_term.json
@@ -175,9 +175,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:45.897056",
+ "modified": "2017-11-10 19:05:58.567627",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Academic Term",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/academic_term/academic_term.py b/erpnext/education/doctype/academic_term/academic_term.py
similarity index 100%
rename from erpnext/schools/doctype/academic_term/academic_term.py
rename to erpnext/education/doctype/academic_term/academic_term.py
diff --git a/erpnext/schools/doctype/academic_term/test_academic_term.js b/erpnext/education/doctype/academic_term/test_academic_term.js
similarity index 89%
rename from erpnext/schools/doctype/academic_term/test_academic_term.js
rename to erpnext/education/doctype/academic_term/test_academic_term.js
index 688ad54..6d91e97 100644
--- a/erpnext/schools/doctype/academic_term/test_academic_term.js
+++ b/erpnext/education/doctype/academic_term/test_academic_term.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in Education
+QUnit.module('education');
QUnit.test('Test: Academic Term', function(assert){
assert.expect(4);
diff --git a/erpnext/schools/doctype/academic_term/test_academic_term.py b/erpnext/education/doctype/academic_term/test_academic_term.py
similarity index 100%
rename from erpnext/schools/doctype/academic_term/test_academic_term.py
rename to erpnext/education/doctype/academic_term/test_academic_term.py
diff --git a/erpnext/schools/doctype/academic_term/test_records.json b/erpnext/education/doctype/academic_term/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/academic_term/test_records.json
rename to erpnext/education/doctype/academic_term/test_records.json
diff --git a/erpnext/schools/doctype/academic_year/__init__.py b/erpnext/education/doctype/academic_year/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/academic_year/__init__.py
rename to erpnext/education/doctype/academic_year/__init__.py
diff --git a/erpnext/schools/doctype/academic_year/academic_year.js b/erpnext/education/doctype/academic_year/academic_year.js
similarity index 100%
rename from erpnext/schools/doctype/academic_year/academic_year.js
rename to erpnext/education/doctype/academic_year/academic_year.js
diff --git a/erpnext/schools/doctype/academic_year/academic_year.json b/erpnext/education/doctype/academic_year/academic_year.json
similarity index 97%
rename from erpnext/schools/doctype/academic_year/academic_year.json
rename to erpnext/education/doctype/academic_year/academic_year.json
index 3d8c4f8..5df89a7 100644
--- a/erpnext/schools/doctype/academic_year/academic_year.json
+++ b/erpnext/education/doctype/academic_year/academic_year.json
@@ -113,9 +113,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:46.121105",
+ "modified": "2017-11-10 19:06:08.123090",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Academic Year",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/academic_year/academic_year.py b/erpnext/education/doctype/academic_year/academic_year.py
similarity index 100%
rename from erpnext/schools/doctype/academic_year/academic_year.py
rename to erpnext/education/doctype/academic_year/academic_year.py
diff --git a/erpnext/schools/doctype/academic_year/test_academic_year.js b/erpnext/education/doctype/academic_year/test_academic_year.js
similarity index 88%
rename from erpnext/schools/doctype/academic_year/test_academic_year.js
rename to erpnext/education/doctype/academic_year/test_academic_year.js
index 7bf1772..ec2f49c 100644
--- a/erpnext/schools/doctype/academic_year/test_academic_year.js
+++ b/erpnext/education/doctype/academic_year/test_academic_year.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in Education
+QUnit.module('education');
QUnit.test('Test: Academic Year', function(assert){
assert.expect(3);
diff --git a/erpnext/schools/doctype/academic_year/test_academic_year.py b/erpnext/education/doctype/academic_year/test_academic_year.py
similarity index 100%
rename from erpnext/schools/doctype/academic_year/test_academic_year.py
rename to erpnext/education/doctype/academic_year/test_academic_year.py
diff --git a/erpnext/schools/doctype/academic_year/test_records.json b/erpnext/education/doctype/academic_year/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/academic_year/test_records.json
rename to erpnext/education/doctype/academic_year/test_records.json
diff --git a/erpnext/schools/doctype/assessment_criteria/__init__.py b/erpnext/education/doctype/assessment_criteria/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria/__init__.py
rename to erpnext/education/doctype/assessment_criteria/__init__.py
diff --git a/erpnext/schools/doctype/assessment_criteria/assessment_criteria.js b/erpnext/education/doctype/assessment_criteria/assessment_criteria.js
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria/assessment_criteria.js
rename to erpnext/education/doctype/assessment_criteria/assessment_criteria.js
diff --git a/erpnext/schools/doctype/assessment_criteria/assessment_criteria.json b/erpnext/education/doctype/assessment_criteria/assessment_criteria.json
similarity index 97%
rename from erpnext/schools/doctype/assessment_criteria/assessment_criteria.json
rename to erpnext/education/doctype/assessment_criteria/assessment_criteria.json
index 2bbd2ef..9e228fd 100644
--- a/erpnext/schools/doctype/assessment_criteria/assessment_criteria.json
+++ b/erpnext/education/doctype/assessment_criteria/assessment_criteria.json
@@ -85,9 +85,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:46.211641",
+ "modified": "2017-11-10 19:08:11.311304",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Criteria",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_criteria/assessment_criteria.py b/erpnext/education/doctype/assessment_criteria/assessment_criteria.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria/assessment_criteria.py
rename to erpnext/education/doctype/assessment_criteria/assessment_criteria.py
diff --git a/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js b/erpnext/education/doctype/assessment_criteria/test_assessment_criteria.js
similarity index 84%
rename from erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
rename to erpnext/education/doctype/assessment_criteria/test_assessment_criteria.js
index 6c0540e..db4a4cf 100644
--- a/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
+++ b/erpnext/education/doctype/assessment_criteria/test_assessment_criteria.js
@@ -1,5 +1,5 @@
-// School Assessment module
-QUnit.module('schools');
+// Education Assessment module
+QUnit.module('education');
QUnit.test('Test: Assessment Criteria', function(assert){
assert.expect(0);
diff --git a/erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.py b/erpnext/education/doctype/assessment_criteria/test_assessment_criteria.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.py
rename to erpnext/education/doctype/assessment_criteria/test_assessment_criteria.py
diff --git a/erpnext/schools/doctype/assessment_criteria/test_records.json b/erpnext/education/doctype/assessment_criteria/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria/test_records.json
rename to erpnext/education/doctype/assessment_criteria/test_records.json
diff --git a/erpnext/schools/doctype/assessment_criteria_group/__init__.py b/erpnext/education/doctype/assessment_criteria_group/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria_group/__init__.py
rename to erpnext/education/doctype/assessment_criteria_group/__init__.py
diff --git a/erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.js b/erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.js
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.js
rename to erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.js
diff --git a/erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.json b/erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.json
similarity index 96%
rename from erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.json
rename to erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.json
index 7aa417f..5765b4b 100644
--- a/erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.json
+++ b/erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.json
@@ -54,9 +54,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:46.323964",
+ "modified": "2017-11-10 19:11:45.334917",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Criteria Group",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.py b/erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria_group/assessment_criteria_group.py
rename to erpnext/education/doctype/assessment_criteria_group/assessment_criteria_group.py
diff --git a/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js b/erpnext/education/doctype/assessment_criteria_group/test_assessment_criteria_group.js
similarity index 82%
rename from erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
rename to erpnext/education/doctype/assessment_criteria_group/test_assessment_criteria_group.js
index 92dba1d..bcfcaf8 100644
--- a/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
+++ b/erpnext/education/doctype/assessment_criteria_group/test_assessment_criteria_group.js
@@ -1,5 +1,5 @@
-// School Assessment module
-QUnit.module('schools');
+// Education Assessment module
+QUnit.module('education');
QUnit.test('Test: Assessment Criteria Group', function(assert){
assert.expect(0);
diff --git a/erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.py b/erpnext/education/doctype/assessment_criteria_group/test_assessment_criteria_group.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.py
rename to erpnext/education/doctype/assessment_criteria_group/test_assessment_criteria_group.py
diff --git a/erpnext/schools/doctype/assessment_group/__init__.py b/erpnext/education/doctype/assessment_group/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_group/__init__.py
rename to erpnext/education/doctype/assessment_group/__init__.py
diff --git a/erpnext/schools/doctype/assessment_group/assessment_group.js b/erpnext/education/doctype/assessment_group/assessment_group.js
similarity index 100%
rename from erpnext/schools/doctype/assessment_group/assessment_group.js
rename to erpnext/education/doctype/assessment_group/assessment_group.js
diff --git a/erpnext/schools/doctype/assessment_group/assessment_group.json b/erpnext/education/doctype/assessment_group/assessment_group.json
similarity index 98%
rename from erpnext/schools/doctype/assessment_group/assessment_group.json
rename to erpnext/education/doctype/assessment_group/assessment_group.json
index 8c93bb2..56917d2 100644
--- a/erpnext/schools/doctype/assessment_group/assessment_group.json
+++ b/erpnext/education/doctype/assessment_group/assessment_group.json
@@ -234,9 +234,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-21 02:12:33.177318",
+ "modified": "2017-11-10 19:09:25.366400",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Group",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_group/assessment_group.py b/erpnext/education/doctype/assessment_group/assessment_group.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_group/assessment_group.py
rename to erpnext/education/doctype/assessment_group/assessment_group.py
diff --git a/erpnext/schools/doctype/assessment_group/assessment_group_tree.js b/erpnext/education/doctype/assessment_group/assessment_group_tree.js
similarity index 100%
rename from erpnext/schools/doctype/assessment_group/assessment_group_tree.js
rename to erpnext/education/doctype/assessment_group/assessment_group_tree.js
diff --git a/erpnext/schools/doctype/assessment_group/test_assessment_group.js b/erpnext/education/doctype/assessment_group/test_assessment_group.js
similarity index 97%
rename from erpnext/schools/doctype/assessment_group/test_assessment_group.js
rename to erpnext/education/doctype/assessment_group/test_assessment_group.js
index aa6da47..93026d2 100644
--- a/erpnext/schools/doctype/assessment_group/test_assessment_group.js
+++ b/erpnext/education/doctype/assessment_group/test_assessment_group.js
@@ -1,5 +1,5 @@
-// School Assessment module
-QUnit.module('schools');
+// Education Assessment module
+QUnit.module('education');
QUnit.test('Test: Assessment Group', function(assert){
assert.expect(4);
diff --git a/erpnext/schools/doctype/assessment_group/test_assessment_group.py b/erpnext/education/doctype/assessment_group/test_assessment_group.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_group/test_assessment_group.py
rename to erpnext/education/doctype/assessment_group/test_assessment_group.py
diff --git a/erpnext/schools/doctype/assessment_plan/__init__.py b/erpnext/education/doctype/assessment_plan/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_plan/__init__.py
rename to erpnext/education/doctype/assessment_plan/__init__.py
diff --git a/erpnext/schools/doctype/assessment_plan/assessment_plan.js b/erpnext/education/doctype/assessment_plan/assessment_plan.js
similarity index 96%
rename from erpnext/schools/doctype/assessment_plan/assessment_plan.js
rename to erpnext/education/doctype/assessment_plan/assessment_plan.js
index e83c4d3..f6fceb1 100644
--- a/erpnext/schools/doctype/assessment_plan/assessment_plan.js
+++ b/erpnext/education/doctype/assessment_plan/assessment_plan.js
@@ -40,7 +40,7 @@
course: function(frm) {
if (frm.doc.course && frm.doc.maximum_assessment_score) {
frappe.call({
- method: "erpnext.schools.api.get_assessment_criteria",
+ method: "erpnext.education.api.get_assessment_criteria",
args: {
course: frm.doc.course
},
diff --git a/erpnext/schools/doctype/assessment_plan/assessment_plan.json b/erpnext/education/doctype/assessment_plan/assessment_plan.json
similarity index 99%
rename from erpnext/schools/doctype/assessment_plan/assessment_plan.json
rename to erpnext/education/doctype/assessment_plan/assessment_plan.json
index 265612b..9dbba4f 100644
--- a/erpnext/schools/doctype/assessment_plan/assessment_plan.json
+++ b/erpnext/education/doctype/assessment_plan/assessment_plan.json
@@ -633,9 +633,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:46.535547",
+ "modified": "2017-11-10 19:12:10.383524",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Plan",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_plan/assessment_plan.py b/erpnext/education/doctype/assessment_plan/assessment_plan.py
similarity index 96%
rename from erpnext/schools/doctype/assessment_plan/assessment_plan.py
rename to erpnext/education/doctype/assessment_plan/assessment_plan.py
index 55c4148..7ad76b8 100644
--- a/erpnext/schools/doctype/assessment_plan/assessment_plan.py
+++ b/erpnext/education/doctype/assessment_plan/assessment_plan.py
@@ -16,7 +16,7 @@
def validate_overlap(self):
"""Validates overlap for Student Group, Instructor, Room"""
- from erpnext.schools.utils import validate_overlap_for
+ from erpnext.education.utils import validate_overlap_for
#Validate overlapping course schedules.
if self.student_group:
diff --git a/erpnext/schools/doctype/assessment_plan/test_assessment_plan.js b/erpnext/education/doctype/assessment_plan/test_assessment_plan.js
similarity index 96%
rename from erpnext/schools/doctype/assessment_plan/test_assessment_plan.js
rename to erpnext/education/doctype/assessment_plan/test_assessment_plan.js
index faa39bf..b0bff26 100644
--- a/erpnext/schools/doctype/assessment_plan/test_assessment_plan.js
+++ b/erpnext/education/doctype/assessment_plan/test_assessment_plan.js
@@ -1,5 +1,5 @@
-// Testing Assessment Module in Schools
-QUnit.module('schools');
+// Testing Assessment Module in education
+QUnit.module('education');
QUnit.test('Test: Assessment Plan', function(assert){
assert.expect(6);
diff --git a/erpnext/schools/doctype/assessment_plan/test_assessment_plan.py b/erpnext/education/doctype/assessment_plan/test_assessment_plan.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_plan/test_assessment_plan.py
rename to erpnext/education/doctype/assessment_plan/test_assessment_plan.py
diff --git a/erpnext/schools/doctype/assessment_plan_criteria/__init__.py b/erpnext/education/doctype/assessment_plan_criteria/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_plan_criteria/__init__.py
rename to erpnext/education/doctype/assessment_plan_criteria/__init__.py
diff --git a/erpnext/schools/doctype/assessment_plan_criteria/assessment_plan_criteria.json b/erpnext/education/doctype/assessment_plan_criteria/assessment_plan_criteria.json
similarity index 97%
rename from erpnext/schools/doctype/assessment_plan_criteria/assessment_plan_criteria.json
rename to erpnext/education/doctype/assessment_plan_criteria/assessment_plan_criteria.json
index cf985f6..d9ad0cb 100644
--- a/erpnext/schools/doctype/assessment_plan_criteria/assessment_plan_criteria.json
+++ b/erpnext/education/doctype/assessment_plan_criteria/assessment_plan_criteria.json
@@ -115,9 +115,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:46.732666",
+ "modified": "2017-11-10 19:10:50.560006",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Plan Criteria",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_plan_criteria/assessment_plan_criteria.py b/erpnext/education/doctype/assessment_plan_criteria/assessment_plan_criteria.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_plan_criteria/assessment_plan_criteria.py
rename to erpnext/education/doctype/assessment_plan_criteria/assessment_plan_criteria.py
diff --git a/erpnext/schools/doctype/assessment_result/__init__.py b/erpnext/education/doctype/assessment_result/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_result/__init__.py
rename to erpnext/education/doctype/assessment_result/__init__.py
diff --git a/erpnext/schools/doctype/assessment_result/assessment_result.js b/erpnext/education/doctype/assessment_result/assessment_result.js
similarity index 92%
rename from erpnext/schools/doctype/assessment_result/assessment_result.js
rename to erpnext/education/doctype/assessment_result/assessment_result.js
index 6d20896..d1115a7 100644
--- a/erpnext/schools/doctype/assessment_result/assessment_result.js
+++ b/erpnext/education/doctype/assessment_result/assessment_result.js
@@ -9,7 +9,7 @@
assessment_plan: function(frm) {
if (frm.doc.assessment_plan) {
frappe.call({
- method: "erpnext.schools.api.get_assessment_details",
+ method: "erpnext.education.api.get_assessment_details",
args: {
assessment_plan: frm.doc.assessment_plan
},
@@ -37,7 +37,7 @@
}
else {
frappe.call({
- method: "erpnext.schools.api.get_grade",
+ method: "erpnext.education.api.get_grade",
args: {
grading_scale: frm.doc.grading_scale,
percentage: ((d.score/d.maximum_score) * 100)
diff --git a/erpnext/schools/doctype/assessment_result/assessment_result.json b/erpnext/education/doctype/assessment_result/assessment_result.json
similarity index 99%
rename from erpnext/schools/doctype/assessment_result/assessment_result.json
rename to erpnext/education/doctype/assessment_result/assessment_result.json
index 13b927c..3912587 100644
--- a/erpnext/schools/doctype/assessment_result/assessment_result.json
+++ b/erpnext/education/doctype/assessment_result/assessment_result.json
@@ -474,9 +474,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-31 15:39:24.813328",
+ "modified": "2017-11-10 18:58:32.114529",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Result",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_result/assessment_result.py b/erpnext/education/doctype/assessment_result/assessment_result.py
similarity index 94%
rename from erpnext/schools/doctype/assessment_result/assessment_result.py
rename to erpnext/education/doctype/assessment_result/assessment_result.py
index 3c036dd..7459d5a 100644
--- a/erpnext/schools/doctype/assessment_result/assessment_result.py
+++ b/erpnext/education/doctype/assessment_result/assessment_result.py
@@ -7,8 +7,8 @@
from frappe import _
from frappe.utils import flt
from frappe.model.document import Document
-from erpnext.schools.api import get_grade
-from erpnext.schools.api import get_assessment_details
+from erpnext.education.api import get_grade
+from erpnext.education.api import get_assessment_details
from frappe.utils.csvutils import getlink
diff --git a/erpnext/schools/doctype/assessment_result/test_assessment_result.js b/erpnext/education/doctype/assessment_result/test_assessment_result.js
similarity index 95%
rename from erpnext/schools/doctype/assessment_result/test_assessment_result.js
rename to erpnext/education/doctype/assessment_result/test_assessment_result.js
index 1ed249a..b7adfac 100644
--- a/erpnext/schools/doctype/assessment_result/test_assessment_result.js
+++ b/erpnext/education/doctype/assessment_result/test_assessment_result.js
@@ -1,5 +1,5 @@
-// School Assessment module
-QUnit.module('schools');
+// Education Assessment module
+QUnit.module('education');
QUnit.test('Test: Assessment Result', function(assert){
assert.expect(25);
@@ -46,7 +46,7 @@
assert.equal(cur_frm.doc.maximum_score, assessment_plan.message.maximum_assessment_score, 'Maximum score correctly fetched');
frappe.call({
- method: "erpnext.schools.api.get_grade",
+ method: "erpnext.education.api.get_grade",
args: {
"grading_scale": assessment_plan.message.grading_scale,
"percentage": cur_frm.doc.total_score
diff --git a/erpnext/schools/doctype/assessment_result/test_assessment_result.py b/erpnext/education/doctype/assessment_result/test_assessment_result.py
similarity index 91%
rename from erpnext/schools/doctype/assessment_result/test_assessment_result.py
rename to erpnext/education/doctype/assessment_result/test_assessment_result.py
index 66e611c..bf12b32 100644
--- a/erpnext/schools/doctype/assessment_result/test_assessment_result.py
+++ b/erpnext/education/doctype/assessment_result/test_assessment_result.py
@@ -5,7 +5,7 @@
import frappe
import unittest
-from erpnext.schools.api import get_grade
+from erpnext.education.api import get_grade
# test_records = frappe.get_test_records('Assessment Result')
diff --git a/erpnext/schools/doctype/assessment_result_detail/__init__.py b/erpnext/education/doctype/assessment_result_detail/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_result_detail/__init__.py
rename to erpnext/education/doctype/assessment_result_detail/__init__.py
diff --git a/erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.json b/erpnext/education/doctype/assessment_result_detail/assessment_result_detail.json
similarity index 98%
rename from erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.json
rename to erpnext/education/doctype/assessment_result_detail/assessment_result_detail.json
index e7076bc..85d943b 100644
--- a/erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.json
+++ b/erpnext/education/doctype/assessment_result_detail/assessment_result_detail.json
@@ -175,9 +175,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:47.068704",
+ "modified": "2017-11-10 19:11:14.362410",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Result Detail",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.py b/erpnext/education/doctype/assessment_result_detail/assessment_result_detail.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_result_detail/assessment_result_detail.py
rename to erpnext/education/doctype/assessment_result_detail/assessment_result_detail.py
diff --git a/erpnext/schools/doctype/assessment_result_tool/__init__.py b/erpnext/education/doctype/assessment_result_tool/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_result_tool/__init__.py
rename to erpnext/education/doctype/assessment_result_tool/__init__.py
diff --git a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js b/erpnext/education/doctype/assessment_result_tool/assessment_result_tool.js
similarity index 94%
rename from erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js
rename to erpnext/education/doctype/assessment_result_tool/assessment_result_tool.js
index 142bbf4..4823791 100644
--- a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.js
+++ b/erpnext/education/doctype/assessment_result_tool/assessment_result_tool.js
@@ -25,7 +25,7 @@
if (!frm.doc.student_group)
return
frappe.call({
- method: "erpnext.schools.api.get_assessment_students",
+ method: "erpnext.education.api.get_assessment_students",
args: {
"assessment_plan": frm.doc.assessment_plan,
"student_group": frm.doc.student_group
@@ -49,7 +49,7 @@
$(frm.fields_dict.result_html.wrapper).empty();
let assessment_plan = frm.doc.assessment_plan;
frappe.call({
- method: "erpnext.schools.api.get_assessment_details",
+ method: "erpnext.education.api.get_assessment_details",
args: {
assessment_plan: assessment_plan
},
@@ -106,7 +106,7 @@
student_scores["comment"] = $(input).val();
});
frappe.call({
- method: "erpnext.schools.api.mark_assessment_result",
+ method: "erpnext.education.api.mark_assessment_result",
args: {
"assessment_plan": frm.doc.assessment_plan,
"scores": student_scores
@@ -137,7 +137,7 @@
if (frm.doc.show_submit) {
frm.page.set_primary_action(__("Submit"), function() {
frappe.call({
- method: "erpnext.schools.api.submit_assessment_results",
+ method: "erpnext.education.api.submit_assessment_results",
args: {
"assessment_plan": frm.doc.assessment_plan,
"student_group": frm.doc.student_group
diff --git a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.json b/erpnext/education/doctype/assessment_result_tool/assessment_result_tool.json
similarity index 98%
rename from erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.json
rename to erpnext/education/doctype/assessment_result_tool/assessment_result_tool.json
index 116fbad..1ea5062 100644
--- a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.json
+++ b/erpnext/education/doctype/assessment_result_tool/assessment_result_tool.json
@@ -175,9 +175,9 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-08 11:51:43.247815",
+ "modified": "2017-11-10 18:55:54.438981",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Assessment Result Tool",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.py b/erpnext/education/doctype/assessment_result_tool/assessment_result_tool.py
similarity index 100%
rename from erpnext/schools/doctype/assessment_result_tool/assessment_result_tool.py
rename to erpnext/education/doctype/assessment_result_tool/assessment_result_tool.py
diff --git a/erpnext/schools/doctype/assessment_result_tool/test_assessment_result_tool.js b/erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.js
similarity index 93%
rename from erpnext/schools/doctype/assessment_result_tool/test_assessment_result_tool.js
rename to erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.js
index 7d9c7d3..0bbe331 100644
--- a/erpnext/schools/doctype/assessment_result_tool/test_assessment_result_tool.js
+++ b/erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.js
@@ -1,5 +1,5 @@
-// School Assessment module
-QUnit.module('schools');
+// Education Assessment module
+QUnit.module('education');
QUnit.test('Test: Assessment Result Tool', function(assert){
assert.expect(1);
diff --git a/erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.py b/erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.py
new file mode 100644
index 0000000..f784ccb
--- /dev/null
+++ b/erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestAssessmentResultTool(unittest.TestCase):
+ pass
diff --git a/erpnext/schools/doctype/course/__init__.py b/erpnext/education/doctype/course/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/course/__init__.py
rename to erpnext/education/doctype/course/__init__.py
diff --git a/erpnext/schools/doctype/course/course.js b/erpnext/education/doctype/course/course.js
similarity index 100%
rename from erpnext/schools/doctype/course/course.js
rename to erpnext/education/doctype/course/course.js
diff --git a/erpnext/schools/doctype/course/course.json b/erpnext/education/doctype/course/course.json
similarity index 98%
rename from erpnext/schools/doctype/course/course.json
rename to erpnext/education/doctype/course/course.json
index d2f1722..15360f8 100644
--- a/erpnext/schools/doctype/course/course.json
+++ b/erpnext/education/doctype/course/course.json
@@ -356,9 +356,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:47.260549",
+ "modified": "2017-11-10 19:06:28.909585",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Course",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/course/course.py b/erpnext/education/doctype/course/course.py
similarity index 100%
rename from erpnext/schools/doctype/course/course.py
rename to erpnext/education/doctype/course/course.py
diff --git a/erpnext/schools/doctype/course/test_course.js b/erpnext/education/doctype/course/test_course.js
similarity index 94%
rename from erpnext/schools/doctype/course/test_course.js
rename to erpnext/education/doctype/course/test_course.js
index 4866730..88fddc2 100644
--- a/erpnext/schools/doctype/course/test_course.js
+++ b/erpnext/education/doctype/course/test_course.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in education
+QUnit.module('education');
QUnit.test('test course', function(assert) {
assert.expect(8);
diff --git a/erpnext/schools/doctype/course/test_course.py b/erpnext/education/doctype/course/test_course.py
similarity index 100%
rename from erpnext/schools/doctype/course/test_course.py
rename to erpnext/education/doctype/course/test_course.py
diff --git a/erpnext/schools/doctype/course/test_records.json b/erpnext/education/doctype/course/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/course/test_records.json
rename to erpnext/education/doctype/course/test_records.json
diff --git a/erpnext/schools/doctype/course_assessment_criteria/__init__.py b/erpnext/education/doctype/course_assessment_criteria/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/course_assessment_criteria/__init__.py
rename to erpnext/education/doctype/course_assessment_criteria/__init__.py
diff --git a/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json b/erpnext/education/doctype/course_assessment_criteria/course_assessment_criteria.json
similarity index 97%
rename from erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json
rename to erpnext/education/doctype/course_assessment_criteria/course_assessment_criteria.json
index 73d0487..2d8c0b3 100644
--- a/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.json
+++ b/erpnext/education/doctype/course_assessment_criteria/course_assessment_criteria.json
@@ -115,9 +115,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:47.420656",
+ "modified": "2017-11-10 19:10:44.710837",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Course Assessment Criteria",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.py b/erpnext/education/doctype/course_assessment_criteria/course_assessment_criteria.py
similarity index 100%
rename from erpnext/schools/doctype/course_assessment_criteria/course_assessment_criteria.py
rename to erpnext/education/doctype/course_assessment_criteria/course_assessment_criteria.py
diff --git a/erpnext/schools/doctype/course_schedule/__init__.py b/erpnext/education/doctype/course_schedule/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/course_schedule/__init__.py
rename to erpnext/education/doctype/course_schedule/__init__.py
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.js b/erpnext/education/doctype/course_schedule/course_schedule.js
similarity index 92%
rename from erpnext/schools/doctype/course_schedule/course_schedule.js
rename to erpnext/education/doctype/course_schedule/course_schedule.js
index 7778a6e..692c2a8 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.js
+++ b/erpnext/education/doctype/course_schedule/course_schedule.js
@@ -1,4 +1,4 @@
-frappe.provide("schools")
+frappe.provide("education");
cur_frm.add_fetch("student_group", "course", "course")
frappe.ui.form.on("Course Schedule", {
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.json b/erpnext/education/doctype/course_schedule/course_schedule.json
similarity index 99%
rename from erpnext/schools/doctype/course_schedule/course_schedule.json
rename to erpnext/education/doctype/course_schedule/course_schedule.json
index 68ef233..9049a80 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.json
+++ b/erpnext/education/doctype/course_schedule/course_schedule.json
@@ -420,9 +420,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:47.516781",
+ "modified": "2017-11-10 19:10:28.797143",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Course Schedule",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule.py b/erpnext/education/doctype/course_schedule/course_schedule.py
similarity index 96%
rename from erpnext/schools/doctype/course_schedule/course_schedule.py
rename to erpnext/education/doctype/course_schedule/course_schedule.py
index 845f5f5..5083ff6 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule.py
+++ b/erpnext/education/doctype/course_schedule/course_schedule.py
@@ -32,7 +32,7 @@
def validate_overlap(self):
"""Validates overlap for Student Group, Instructor, Room"""
- from erpnext.schools.utils import validate_overlap_for
+ from erpnext.education.utils import validate_overlap_for
#Validate overlapping course schedules.
if self.student_group:
diff --git a/erpnext/schools/doctype/course_schedule/course_schedule_calendar.js b/erpnext/education/doctype/course_schedule/course_schedule_calendar.js
similarity index 91%
rename from erpnext/schools/doctype/course_schedule/course_schedule_calendar.js
rename to erpnext/education/doctype/course_schedule/course_schedule_calendar.js
index 94ce720..c11405d 100644
--- a/erpnext/schools/doctype/course_schedule/course_schedule_calendar.js
+++ b/erpnext/education/doctype/course_schedule/course_schedule_calendar.js
@@ -34,5 +34,5 @@
"label": __("Room")
}
],
- get_events_method: "erpnext.schools.api.get_course_schedule_events"
+ get_events_method: "erpnext.education.api.get_course_schedule_events"
}
diff --git a/erpnext/education/doctype/course_schedule/test_course_schedule.js b/erpnext/education/doctype/course_schedule/test_course_schedule.js
new file mode 100644
index 0000000..5cdb67b
--- /dev/null
+++ b/erpnext/education/doctype/course_schedule/test_course_schedule.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Course Schedule", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Course Schedule
+ () => frappe.tests.make('Course Schedule', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/course_schedule/test_course_schedule.py b/erpnext/education/doctype/course_schedule/test_course_schedule.py
similarity index 97%
rename from erpnext/schools/doctype/course_schedule/test_course_schedule.py
rename to erpnext/education/doctype/course_schedule/test_course_schedule.py
index f131382..9ba6bd3 100644
--- a/erpnext/schools/doctype/course_schedule/test_course_schedule.py
+++ b/erpnext/education/doctype/course_schedule/test_course_schedule.py
@@ -8,7 +8,7 @@
import datetime
from frappe.utils import today, to_timedelta
-from erpnext.schools.utils import OverlapError
+from erpnext.education.utils import OverlapError
# test_records = frappe.get_test_records('Course Schedule')
diff --git a/erpnext/schools/doctype/course_scheduling_tool/__init__.py b/erpnext/education/doctype/course_scheduling_tool/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/course_scheduling_tool/__init__.py
rename to erpnext/education/doctype/course_scheduling_tool/__init__.py
diff --git a/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.js b/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.js
new file mode 100644
index 0000000..20503f9
--- /dev/null
+++ b/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.js
@@ -0,0 +1,39 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+
+frappe.ui.form.on('Course Scheduling Tool', {
+ setup(frm) {
+ frm.add_fetch('student_group', 'program', 'program');
+ frm.add_fetch('student_group', 'course', 'course');
+ frm.add_fetch('student_group', 'academic_year', 'academic_year');
+ frm.add_fetch('student_group', 'academic_term', 'academic_term');
+ },
+ refresh(frm) {
+ frm.disable_save();
+ frm.page.set_primary_action(__('Schedule Course'), () => {
+ frm.call('schedule_course')
+ .then(r => {
+ if (!r.message) {
+ frappe.throw(__('There were errors creating Course Schedule'));
+ }
+ const { course_schedules } = r.message;
+ if (course_schedules) {
+ const html = `
+ <table class="table table-bordered">
+ <caption>${__('Following course schedules were created')}</caption>
+ <thead><tr><th>${__("Course")}</th><th>${__("Date")}</th></tr></thead>
+ <tbody>
+ ${course_schedules.map(
+ c => `<tr><td><a href="#Form/Course Schedule/${c.name}">${c.name}</a></td>
+ <td>${c.schedule_date}</td></tr>`
+ ).join('')}
+ </tbody>
+ </table>`
+
+ frappe.msgprint(html);
+ }
+ });
+ });
+ }
+});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json b/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.json
similarity index 98%
rename from erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
rename to erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.json
index e0fc1e2..11932fe 100644
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.json
+++ b/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.json
@@ -476,7 +476,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "rechedule",
+ "fieldname": "reschedule",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -485,7 +485,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Rechedule",
+ "label": "Reschedule",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -602,9 +602,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:47.696063",
+ "modified": "2017-11-21 16:47:58.091740",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Course Scheduling Tool",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.py b/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.py
new file mode 100644
index 0000000..97c29ab
--- /dev/null
+++ b/erpnext/education/doctype/course_scheduling_tool/course_scheduling_tool.py
@@ -0,0 +1,114 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+import calendar
+from frappe import _
+from frappe.model.document import Document
+from frappe.utils import add_days, getdate
+from erpnext.education.utils import OverlapError
+
+
+class CourseSchedulingTool(Document):
+
+ def schedule_course(self):
+ """Creates course schedules as per specified parameters"""
+
+ course_schedules = []
+ course_schedules_errors = []
+ rescheduled = []
+ reschedule_errors = []
+
+ self.validate_mandatory()
+ self.validate_date()
+ self.instructor_name = frappe.db.get_value(
+ "Instructor", self.instructor, "instructor_name")
+
+ group_based_on, course = frappe.db.get_value(
+ "Student Group", self.student_group, ["group_based_on", "course"])
+
+ if group_based_on == "Course":
+ self.course = course
+
+ if self.reschedule:
+ rescheduled, reschedule_errors = self.delete_course_schedule(
+ rescheduled, reschedule_errors)
+
+ date = self.course_start_date
+ while date < self.course_end_date:
+ if self.day == calendar.day_name[getdate(date).weekday()]:
+ course_schedule = self.make_course_schedule(date)
+ try:
+ print('pass')
+ course_schedule.save()
+ except OverlapError:
+ print('fail')
+ course_schedules_errors.append(date)
+ else:
+ course_schedules.append(course_schedule)
+
+ date = add_days(date, 7)
+ else:
+ date = add_days(date, 1)
+
+ return dict(
+ course_schedules=course_schedules,
+ course_schedules_errors=course_schedules_errors,
+ rescheduled=rescheduled,
+ reschedule_errors=reschedule_errors
+ )
+
+ def validate_mandatory(self):
+ """Validates all mandatory fields"""
+
+ fields = ['course', 'room', 'instructor', 'from_time',
+ 'to_time', 'course_start_date', 'course_end_date', 'day']
+ for d in fields:
+ if not self.get(d):
+ frappe.throw(_("{0} is mandatory").format(
+ self.meta.get_label(d)))
+
+ def validate_date(self):
+ """Validates if Course Start Date is greater than Course End Date"""
+ if self.course_start_date > self.course_end_date:
+ frappe.throw(
+ "Course Start Date cannot be greater than Course End Date.")
+
+ def delete_course_schedule(self, rescheduled, reschedule_errors):
+ """Delete all course schedule within the Date range and specified filters"""
+
+ schedules = frappe.get_list("Course Schedule",
+ fields=["name", "schedule_date"],
+ filters=[
+ ["student_group", "=", self.student_group],
+ ["course", "=", self.course],
+ ["schedule_date", ">=", self.course_start_date],
+ ["schedule_date", "<=", self.course_end_date]
+ ]
+ )
+
+ for d in schedules:
+ try:
+ if self.day == calendar.day_name[getdate(d.schedule_date).weekday()]:
+ frappe.delete_doc("Course Schedule", d.name)
+ rescheduled.append(d.name)
+ except:
+ reschedule_errors.append(d.name)
+ return rescheduled, reschedule_errors
+
+ def make_course_schedule(self, date):
+ """Makes a new Course Schedule.
+ :param date: Date on which Course Schedule will be created."""
+
+ course_schedule = frappe.new_doc("Course Schedule")
+ course_schedule.student_group = self.student_group
+ course_schedule.course = self.course
+ course_schedule.instructor = self.instructor
+ course_schedule.instructor_name = self.instructor_name
+ course_schedule.room = self.room
+ course_schedule.schedule_date = date
+ course_schedule.from_time = self.from_time
+ course_schedule.to_time = self.to_time
+ return course_schedule
diff --git a/erpnext/education/doctype/course_scheduling_tool/test_course_scheduling_tool.js b/erpnext/education/doctype/course_scheduling_tool/test_course_scheduling_tool.js
new file mode 100644
index 0000000..4419d18
--- /dev/null
+++ b/erpnext/education/doctype/course_scheduling_tool/test_course_scheduling_tool.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Course Scheduling Tool", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Course Scheduling Tool
+ () => frappe.tests.make('Course Scheduling Tool', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/education/doctype/course_scheduling_tool/test_course_scheduling_tool.py b/erpnext/education/doctype/course_scheduling_tool/test_course_scheduling_tool.py
new file mode 100644
index 0000000..d921f8e
--- /dev/null
+++ b/erpnext/education/doctype/course_scheduling_tool/test_course_scheduling_tool.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestCourseSchedulingTool(unittest.TestCase):
+ pass
diff --git a/erpnext/schools/doctype/school_settings/__init__.py b/erpnext/education/doctype/education_settings/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/school_settings/__init__.py
rename to erpnext/education/doctype/education_settings/__init__.py
diff --git a/erpnext/schools/doctype/school_settings/school_settings.js b/erpnext/education/doctype/education_settings/education_settings.js
similarity index 78%
copy from erpnext/schools/doctype/school_settings/school_settings.js
copy to erpnext/education/doctype/education_settings/education_settings.js
index 2707c42..764d8b4 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.js
+++ b/erpnext/education/doctype/education_settings/education_settings.js
@@ -1,7 +1,7 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-frappe.ui.form.on('School Settings', {
+frappe.ui.form.on('Education Settings', {
refresh: function(frm) {
}
diff --git a/erpnext/schools/doctype/school_settings/school_settings.json b/erpnext/education/doctype/education_settings/education_settings.json
similarity index 97%
rename from erpnext/schools/doctype/school_settings/school_settings.json
rename to erpnext/education/doctype/education_settings/education_settings.json
index b6d9890..2771ad6 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.json
+++ b/erpnext/education/doctype/education_settings/education_settings.json
@@ -267,10 +267,10 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-08-25 02:36:48.744456",
+ "modified": "2017-11-16 13:23:06.124735",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "School Settings",
+ "module": "Education",
+ "name": "Education Settings",
"name_case": "",
"owner": "Administrator",
"permissions": [
diff --git a/erpnext/schools/doctype/school_settings/school_settings.py b/erpnext/education/doctype/education_settings/education_settings.py
similarity index 85%
rename from erpnext/schools/doctype/school_settings/school_settings.py
rename to erpnext/education/doctype/education_settings/education_settings.py
index 88235cf..9286efa 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.py
+++ b/erpnext/education/doctype/education_settings/education_settings.py
@@ -7,7 +7,7 @@
import frappe.defaults
from frappe.model.document import Document
-school_keydict = {
+education_keydict = {
# "key in defaults": "key in Global Defaults"
"academic_year": "current_academic_year",
"academic_term": "current_academic_term",
@@ -15,11 +15,12 @@
"validate_course": "validate_course"
}
-class SchoolSettings(Document):
+
+class EducationSettings(Document):
def on_update(self):
"""update defaults"""
- for key in school_keydict:
- frappe.db.set_default(key, self.get(school_keydict[key], ''))
+ for key in education_keydict:
+ frappe.db.set_default(key, self.get(education_keydict[key], ''))
# clear cache
frappe.clear_cache()
diff --git a/erpnext/schools/doctype/school_settings/test_school_settings.js b/erpnext/education/doctype/education_settings/test_education_settings.js
similarity index 64%
rename from erpnext/schools/doctype/school_settings/test_school_settings.js
rename to erpnext/education/doctype/education_settings/test_education_settings.js
index 6414056..990b0aa 100644
--- a/erpnext/schools/doctype/school_settings/test_school_settings.js
+++ b/erpnext/education/doctype/education_settings/test_education_settings.js
@@ -1,11 +1,17 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
-QUnit.test("Test: School Settings", function(assert){
- assert.expect(3);
+// Testing Setup Module in Education
+QUnit.module('education');
+
+QUnit.test("test: Education Settings", function (assert) {
let done = assert.async();
+
+ assert.expect(3);
+
frappe.run_serially([
- () => frappe.set_route("List", "School Settings"),
+ () => frappe.set_route("List", "Education Settings"),
() => frappe.timeout(0.4),
() => {
return frappe.tests.set_form_values(cur_frm, [
@@ -22,4 +28,4 @@
},
() => done()
]);
-});
\ No newline at end of file
+});
diff --git a/erpnext/education/doctype/education_settings/test_education_settings.py b/erpnext/education/doctype/education_settings/test_education_settings.py
new file mode 100644
index 0000000..038fb6e
--- /dev/null
+++ b/erpnext/education/doctype/education_settings/test_education_settings.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestEducationSettings(unittest.TestCase):
+ pass
diff --git a/erpnext/schools/doctype/fee_category/__init__.py b/erpnext/education/doctype/fee_category/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fee_category/__init__.py
rename to erpnext/education/doctype/fee_category/__init__.py
diff --git a/erpnext/schools/doctype/fee_category/fee_category.js b/erpnext/education/doctype/fee_category/fee_category.js
similarity index 100%
rename from erpnext/schools/doctype/fee_category/fee_category.js
rename to erpnext/education/doctype/fee_category/fee_category.js
diff --git a/erpnext/schools/doctype/fee_category/fee_category.json b/erpnext/education/doctype/fee_category/fee_category.json
similarity index 97%
rename from erpnext/schools/doctype/fee_category/fee_category.json
rename to erpnext/education/doctype/fee_category/fee_category.json
index 2b55f8d..c1bfa8e 100644
--- a/erpnext/schools/doctype/fee_category/fee_category.json
+++ b/erpnext/education/doctype/fee_category/fee_category.json
@@ -90,9 +90,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-11-02 17:57:18.069158",
+ "modified": "2017-11-10 18:56:33.824534",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fee Category",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fee_category/fee_category.py b/erpnext/education/doctype/fee_category/fee_category.py
similarity index 100%
rename from erpnext/schools/doctype/fee_category/fee_category.py
rename to erpnext/education/doctype/fee_category/fee_category.py
diff --git a/erpnext/education/doctype/fee_category/test_fee_category.js b/erpnext/education/doctype/fee_category/test_fee_category.js
new file mode 100644
index 0000000..a08ed33
--- /dev/null
+++ b/erpnext/education/doctype/fee_category/test_fee_category.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Fee Category", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Fee Category
+ () => frappe.tests.make('Fee Category', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/fee_category/test_fee_category.py b/erpnext/education/doctype/fee_category/test_fee_category.py
similarity index 100%
rename from erpnext/schools/doctype/fee_category/test_fee_category.py
rename to erpnext/education/doctype/fee_category/test_fee_category.py
diff --git a/erpnext/schools/doctype/fee_category/test_records.json b/erpnext/education/doctype/fee_category/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/fee_category/test_records.json
rename to erpnext/education/doctype/fee_category/test_records.json
diff --git a/erpnext/schools/doctype/fee_component/__init__.py b/erpnext/education/doctype/fee_component/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fee_component/__init__.py
rename to erpnext/education/doctype/fee_component/__init__.py
diff --git a/erpnext/schools/doctype/fee_component/fee_component.json b/erpnext/education/doctype/fee_component/fee_component.json
similarity index 97%
rename from erpnext/schools/doctype/fee_component/fee_component.json
rename to erpnext/education/doctype/fee_component/fee_component.json
index ccf1f65..f6e13c4 100644
--- a/erpnext/schools/doctype/fee_component/fee_component.json
+++ b/erpnext/education/doctype/fee_component/fee_component.json
@@ -150,9 +150,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-09-11 16:48:07.810959",
+ "modified": "2017-11-10 18:58:10.254407",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fee Component",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fee_component/fee_component.py b/erpnext/education/doctype/fee_component/fee_component.py
similarity index 100%
rename from erpnext/schools/doctype/fee_component/fee_component.py
rename to erpnext/education/doctype/fee_component/fee_component.py
diff --git a/erpnext/schools/doctype/fee_schedule/__init__.py b/erpnext/education/doctype/fee_schedule/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule/__init__.py
rename to erpnext/education/doctype/fee_schedule/__init__.py
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule.js b/erpnext/education/doctype/fee_schedule/fee_schedule.js
similarity index 94%
rename from erpnext/schools/doctype/fee_schedule/fee_schedule.js
rename to erpnext/education/doctype/fee_schedule/fee_schedule.js
index d834b88..a560ea7 100644
--- a/erpnext/schools/doctype/fee_schedule/fee_schedule.js
+++ b/erpnext/education/doctype/fee_schedule/fee_schedule.js
@@ -78,7 +78,7 @@
fee_structure: function(frm) {
if (frm.doc.fee_structure) {
frappe.call({
- method: "erpnext.schools.doctype.fee_schedule.fee_schedule.get_fee_structure",
+ method: "erpnext.education.doctype.fee_schedule.fee_schedule.get_fee_structure",
args: {
"target_doc": frm.doc.name,
"source_name": frm.doc.fee_structure
@@ -96,7 +96,7 @@
student_group: function(frm, cdt, cdn) {
var row = locals[cdt][cdn];
frappe.call({
- method: "erpnext.schools.doctype.fee_schedule.fee_schedule.get_total_students",
+ method: "erpnext.education.doctype.fee_schedule.fee_schedule.get_total_students",
args: {
"student_group": row.student_group,
"academic_year": frm.doc.academic_year,
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule.json b/erpnext/education/doctype/fee_schedule/fee_schedule.json
similarity index 99%
rename from erpnext/schools/doctype/fee_schedule/fee_schedule.json
rename to erpnext/education/doctype/fee_schedule/fee_schedule.json
index ab60911..a1ea9bd 100644
--- a/erpnext/schools/doctype/fee_schedule/fee_schedule.json
+++ b/erpnext/education/doctype/fee_schedule/fee_schedule.json
@@ -1029,9 +1029,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-02 17:55:22.851581",
+ "modified": "2017-11-10 18:56:46.330631",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fee Schedule",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule.py b/erpnext/education/doctype/fee_schedule/fee_schedule.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule/fee_schedule.py
rename to erpnext/education/doctype/fee_schedule/fee_schedule.py
diff --git a/erpnext/schools/doctype/fee_schedule/fee_schedule_list.js b/erpnext/education/doctype/fee_schedule/fee_schedule_list.js
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule/fee_schedule_list.js
rename to erpnext/education/doctype/fee_schedule/fee_schedule_list.js
diff --git a/erpnext/schools/doctype/fee_schedule/test_fee_schedule.js b/erpnext/education/doctype/fee_schedule/test_fee_schedule.js
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule/test_fee_schedule.js
rename to erpnext/education/doctype/fee_schedule/test_fee_schedule.js
diff --git a/erpnext/schools/doctype/fee_schedule/test_fee_schedule.py b/erpnext/education/doctype/fee_schedule/test_fee_schedule.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule/test_fee_schedule.py
rename to erpnext/education/doctype/fee_schedule/test_fee_schedule.py
diff --git a/erpnext/schools/doctype/fee_schedule_program/__init__.py b/erpnext/education/doctype/fee_schedule_program/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule_program/__init__.py
rename to erpnext/education/doctype/fee_schedule_program/__init__.py
diff --git a/erpnext/schools/doctype/fee_schedule_program/fee_schedule_program.json b/erpnext/education/doctype/fee_schedule_program/fee_schedule_program.json
similarity index 97%
rename from erpnext/schools/doctype/fee_schedule_program/fee_schedule_program.json
rename to erpnext/education/doctype/fee_schedule_program/fee_schedule_program.json
index 42cc7bf..e9a5c12 100644
--- a/erpnext/schools/doctype/fee_schedule_program/fee_schedule_program.json
+++ b/erpnext/education/doctype/fee_schedule_program/fee_schedule_program.json
@@ -115,9 +115,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-08-22 16:24:40.547517",
+ "modified": "2017-11-10 19:09:02.326827",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fee Schedule Program",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fee_schedule_program/fee_schedule_program.py b/erpnext/education/doctype/fee_schedule_program/fee_schedule_program.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule_program/fee_schedule_program.py
rename to erpnext/education/doctype/fee_schedule_program/fee_schedule_program.py
diff --git a/erpnext/schools/doctype/fee_schedule_student_group/__init__.py b/erpnext/education/doctype/fee_schedule_student_group/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule_student_group/__init__.py
rename to erpnext/education/doctype/fee_schedule_student_group/__init__.py
diff --git a/erpnext/schools/doctype/fee_schedule_student_group/fee_schedule_student_group.json b/erpnext/education/doctype/fee_schedule_student_group/fee_schedule_student_group.json
similarity index 96%
rename from erpnext/schools/doctype/fee_schedule_student_group/fee_schedule_student_group.json
rename to erpnext/education/doctype/fee_schedule_student_group/fee_schedule_student_group.json
index c80e320..aed1ae5 100644
--- a/erpnext/schools/doctype/fee_schedule_student_group/fee_schedule_student_group.json
+++ b/erpnext/education/doctype/fee_schedule_student_group/fee_schedule_student_group.json
@@ -84,9 +84,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-08-22 16:23:12.337294",
+ "modified": "2017-11-10 19:09:19.498184",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fee Schedule Student Group",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fee_schedule_student_group/fee_schedule_student_group.py b/erpnext/education/doctype/fee_schedule_student_group/fee_schedule_student_group.py
similarity index 100%
rename from erpnext/schools/doctype/fee_schedule_student_group/fee_schedule_student_group.py
rename to erpnext/education/doctype/fee_schedule_student_group/fee_schedule_student_group.py
diff --git a/erpnext/schools/doctype/fee_structure/__init__.py b/erpnext/education/doctype/fee_structure/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fee_structure/__init__.py
rename to erpnext/education/doctype/fee_structure/__init__.py
diff --git a/erpnext/schools/doctype/fee_structure/fee_structure.js b/erpnext/education/doctype/fee_structure/fee_structure.js
similarity index 93%
rename from erpnext/schools/doctype/fee_structure/fee_structure.js
rename to erpnext/education/doctype/fee_structure/fee_structure.js
index 300bdc8..812456c 100644
--- a/erpnext/schools/doctype/fee_structure/fee_structure.js
+++ b/erpnext/education/doctype/fee_structure/fee_structure.js
@@ -39,7 +39,7 @@
make_fee_schedule: function(frm) {
frappe.model.open_mapped_doc({
- method: "erpnext.schools.doctype.fee_structure.fee_structure.make_fee_schedule",
+ method: "erpnext.education.doctype.fee_structure.fee_structure.make_fee_schedule",
frm: frm
});
}
diff --git a/erpnext/schools/doctype/fee_structure/fee_structure.json b/erpnext/education/doctype/fee_structure/fee_structure.json
similarity index 99%
rename from erpnext/schools/doctype/fee_structure/fee_structure.json
rename to erpnext/education/doctype/fee_structure/fee_structure.json
index 2ae0a48..428b1b1 100644
--- a/erpnext/schools/doctype/fee_structure/fee_structure.json
+++ b/erpnext/education/doctype/fee_structure/fee_structure.json
@@ -577,9 +577,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-11-02 17:43:16.796845",
+ "modified": "2017-11-10 18:56:59.698192",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fee Structure",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fee_structure/fee_structure.py b/erpnext/education/doctype/fee_structure/fee_structure.py
similarity index 100%
rename from erpnext/schools/doctype/fee_structure/fee_structure.py
rename to erpnext/education/doctype/fee_structure/fee_structure.py
diff --git a/erpnext/schools/doctype/fee_structure/test_fee_structure.js b/erpnext/education/doctype/fee_structure/test_fee_structure.js
similarity index 100%
rename from erpnext/schools/doctype/fee_structure/test_fee_structure.js
rename to erpnext/education/doctype/fee_structure/test_fee_structure.js
diff --git a/erpnext/schools/doctype/fee_structure/test_fee_structure.py b/erpnext/education/doctype/fee_structure/test_fee_structure.py
similarity index 100%
rename from erpnext/schools/doctype/fee_structure/test_fee_structure.py
rename to erpnext/education/doctype/fee_structure/test_fee_structure.py
diff --git a/erpnext/schools/doctype/fee_structure/test_records.json b/erpnext/education/doctype/fee_structure/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/fee_structure/test_records.json
rename to erpnext/education/doctype/fee_structure/test_records.json
diff --git a/erpnext/schools/doctype/fees/__init__.py b/erpnext/education/doctype/fees/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/fees/__init__.py
rename to erpnext/education/doctype/fees/__init__.py
diff --git a/erpnext/schools/doctype/fees/fees.js b/erpnext/education/doctype/fees/fees.js
similarity index 97%
rename from erpnext/schools/doctype/fees/fees.js
rename to erpnext/education/doctype/fees/fees.js
index 4347308..2a7218a 100644
--- a/erpnext/schools/doctype/fees/fees.js
+++ b/erpnext/education/doctype/fees/fees.js
@@ -84,7 +84,7 @@
student: function(frm) {
if (frm.doc.student) {
frappe.call({
- method:"erpnext.schools.api.get_current_enrollment",
+ method:"erpnext.education.api.get_current_enrollment",
args: {
"student": frm.doc.student,
"academic_year": frm.doc.academic_year
@@ -147,7 +147,7 @@
frm.set_value("components" ,"");
if (frm.doc.fee_structure) {
frappe.call({
- method: "erpnext.schools.api.get_fee_components",
+ method: "erpnext.education.api.get_fee_components",
args: {
"fee_structure": frm.doc.fee_structure
},
diff --git a/erpnext/schools/doctype/fees/fees.json b/erpnext/education/doctype/fees/fees.json
similarity index 99%
rename from erpnext/schools/doctype/fees/fees.json
rename to erpnext/education/doctype/fees/fees.json
index f34caf7..85c2471 100644
--- a/erpnext/schools/doctype/fees/fees.json
+++ b/erpnext/education/doctype/fees/fees.json
@@ -1305,9 +1305,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-11-02 17:31:47.155873",
+ "modified": "2017-11-10 18:57:12.021112",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Fees",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/fees/fees.py b/erpnext/education/doctype/fees/fees.py
similarity index 100%
rename from erpnext/schools/doctype/fees/fees.py
rename to erpnext/education/doctype/fees/fees.py
diff --git a/erpnext/schools/doctype/fees/fees_list.js b/erpnext/education/doctype/fees/fees_list.js
similarity index 100%
rename from erpnext/schools/doctype/fees/fees_list.js
rename to erpnext/education/doctype/fees/fees_list.js
diff --git a/erpnext/schools/doctype/fees/test_fees.js b/erpnext/education/doctype/fees/test_fees.js
similarity index 100%
rename from erpnext/schools/doctype/fees/test_fees.js
rename to erpnext/education/doctype/fees/test_fees.js
diff --git a/erpnext/schools/doctype/fees/test_fees.py b/erpnext/education/doctype/fees/test_fees.py
similarity index 100%
rename from erpnext/schools/doctype/fees/test_fees.py
rename to erpnext/education/doctype/fees/test_fees.py
diff --git a/erpnext/schools/doctype/grading_scale/__init__.py b/erpnext/education/doctype/grading_scale/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/grading_scale/__init__.py
rename to erpnext/education/doctype/grading_scale/__init__.py
diff --git a/erpnext/schools/doctype/grading_scale/grading_scale.js b/erpnext/education/doctype/grading_scale/grading_scale.js
similarity index 100%
rename from erpnext/schools/doctype/grading_scale/grading_scale.js
rename to erpnext/education/doctype/grading_scale/grading_scale.js
diff --git a/erpnext/schools/doctype/grading_scale/grading_scale.json b/erpnext/education/doctype/grading_scale/grading_scale.json
similarity index 98%
rename from erpnext/schools/doctype/grading_scale/grading_scale.json
rename to erpnext/education/doctype/grading_scale/grading_scale.json
index fdaa8c6..67fef3e 100644
--- a/erpnext/schools/doctype/grading_scale/grading_scale.json
+++ b/erpnext/education/doctype/grading_scale/grading_scale.json
@@ -175,9 +175,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:48.413400",
+ "modified": "2017-11-10 19:07:22.001040",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Grading Scale",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/grading_scale/grading_scale.py b/erpnext/education/doctype/grading_scale/grading_scale.py
similarity index 100%
rename from erpnext/schools/doctype/grading_scale/grading_scale.py
rename to erpnext/education/doctype/grading_scale/grading_scale.py
diff --git a/erpnext/schools/doctype/grading_scale/test_grading_scale.js b/erpnext/education/doctype/grading_scale/test_grading_scale.js
similarity index 97%
rename from erpnext/schools/doctype/grading_scale/test_grading_scale.js
rename to erpnext/education/doctype/grading_scale/test_grading_scale.js
index c686924..e363545 100644
--- a/erpnext/schools/doctype/grading_scale/test_grading_scale.js
+++ b/erpnext/education/doctype/grading_scale/test_grading_scale.js
@@ -1,5 +1,5 @@
-// School Assessment module
-QUnit.module('schools');
+// Education Assessment module
+QUnit.module('education');
QUnit.test('Test: Grading Scale', function(assert){
assert.expect(3);
diff --git a/erpnext/schools/doctype/grading_scale/test_grading_scale.py b/erpnext/education/doctype/grading_scale/test_grading_scale.py
similarity index 100%
rename from erpnext/schools/doctype/grading_scale/test_grading_scale.py
rename to erpnext/education/doctype/grading_scale/test_grading_scale.py
diff --git a/erpnext/schools/doctype/grading_scale/test_records.json b/erpnext/education/doctype/grading_scale/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/grading_scale/test_records.json
rename to erpnext/education/doctype/grading_scale/test_records.json
diff --git a/erpnext/schools/doctype/grading_scale_interval/__init__.py b/erpnext/education/doctype/grading_scale_interval/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/grading_scale_interval/__init__.py
rename to erpnext/education/doctype/grading_scale_interval/__init__.py
diff --git a/erpnext/schools/doctype/grading_scale_interval/grading_scale_interval.json b/erpnext/education/doctype/grading_scale_interval/grading_scale_interval.json
similarity index 97%
rename from erpnext/schools/doctype/grading_scale_interval/grading_scale_interval.json
rename to erpnext/education/doctype/grading_scale_interval/grading_scale_interval.json
index cee83e3..5574e1d 100644
--- a/erpnext/schools/doctype/grading_scale_interval/grading_scale_interval.json
+++ b/erpnext/education/doctype/grading_scale_interval/grading_scale_interval.json
@@ -114,9 +114,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:48.532524",
+ "modified": "2017-11-10 19:08:48.083084",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Grading Scale Interval",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/grading_scale_interval/grading_scale_interval.py b/erpnext/education/doctype/grading_scale_interval/grading_scale_interval.py
similarity index 100%
rename from erpnext/schools/doctype/grading_scale_interval/grading_scale_interval.py
rename to erpnext/education/doctype/grading_scale_interval/grading_scale_interval.py
diff --git a/erpnext/schools/doctype/guardian/__init__.py b/erpnext/education/doctype/guardian/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/guardian/__init__.py
rename to erpnext/education/doctype/guardian/__init__.py
diff --git a/erpnext/schools/doctype/guardian/guardian.js b/erpnext/education/doctype/guardian/guardian.js
similarity index 100%
rename from erpnext/schools/doctype/guardian/guardian.js
rename to erpnext/education/doctype/guardian/guardian.js
diff --git a/erpnext/schools/doctype/guardian/guardian.json b/erpnext/education/doctype/guardian/guardian.json
similarity index 99%
rename from erpnext/schools/doctype/guardian/guardian.json
rename to erpnext/education/doctype/guardian/guardian.json
index bc4cf4f..500b747 100644
--- a/erpnext/schools/doctype/guardian/guardian.json
+++ b/erpnext/education/doctype/guardian/guardian.json
@@ -476,9 +476,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:48.630678",
+ "modified": "2017-11-10 19:06:57.122193",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Guardian",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/guardian/guardian.py b/erpnext/education/doctype/guardian/guardian.py
similarity index 100%
rename from erpnext/schools/doctype/guardian/guardian.py
rename to erpnext/education/doctype/guardian/guardian.py
diff --git a/erpnext/schools/doctype/guardian/test_guardian.js b/erpnext/education/doctype/guardian/test_guardian.js
similarity index 93%
rename from erpnext/schools/doctype/guardian/test_guardian.js
rename to erpnext/education/doctype/guardian/test_guardian.js
index a16ba08..9bbfacd 100644
--- a/erpnext/schools/doctype/guardian/test_guardian.js
+++ b/erpnext/education/doctype/guardian/test_guardian.js
@@ -1,5 +1,5 @@
-// Testing Student Module in Schools
-QUnit.module('schools');
+// Testing Student Module in education
+QUnit.module('education');
QUnit.test('Test: Guardian', function(assert){
assert.expect(9);
diff --git a/erpnext/schools/doctype/guardian/test_guardian.py b/erpnext/education/doctype/guardian/test_guardian.py
similarity index 100%
rename from erpnext/schools/doctype/guardian/test_guardian.py
rename to erpnext/education/doctype/guardian/test_guardian.py
diff --git a/erpnext/schools/doctype/guardian_interest/__init__.py b/erpnext/education/doctype/guardian_interest/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/guardian_interest/__init__.py
rename to erpnext/education/doctype/guardian_interest/__init__.py
diff --git a/erpnext/schools/doctype/guardian_interest/guardian_interest.json b/erpnext/education/doctype/guardian_interest/guardian_interest.json
similarity index 95%
rename from erpnext/schools/doctype/guardian_interest/guardian_interest.json
rename to erpnext/education/doctype/guardian_interest/guardian_interest.json
index aae2c55..1995c55 100644
--- a/erpnext/schools/doctype/guardian_interest/guardian_interest.json
+++ b/erpnext/education/doctype/guardian_interest/guardian_interest.json
@@ -53,9 +53,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:48.827806",
+ "modified": "2017-11-10 19:10:22.333454",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Guardian Interest",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/guardian_interest/guardian_interest.py b/erpnext/education/doctype/guardian_interest/guardian_interest.py
similarity index 100%
rename from erpnext/schools/doctype/guardian_interest/guardian_interest.py
rename to erpnext/education/doctype/guardian_interest/guardian_interest.py
diff --git a/erpnext/schools/doctype/guardian_student/__init__.py b/erpnext/education/doctype/guardian_student/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/guardian_student/__init__.py
rename to erpnext/education/doctype/guardian_student/__init__.py
diff --git a/erpnext/schools/doctype/guardian_student/guardian_student.json b/erpnext/education/doctype/guardian_student/guardian_student.json
similarity index 97%
rename from erpnext/schools/doctype/guardian_student/guardian_student.json
rename to erpnext/education/doctype/guardian_student/guardian_student.json
index 4242c9d..2519a54 100644
--- a/erpnext/schools/doctype/guardian_student/guardian_student.json
+++ b/erpnext/education/doctype/guardian_student/guardian_student.json
@@ -113,9 +113,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:48.957516",
+ "modified": "2017-11-10 19:10:15.786362",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Guardian Student",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/guardian_student/guardian_student.py b/erpnext/education/doctype/guardian_student/guardian_student.py
similarity index 100%
rename from erpnext/schools/doctype/guardian_student/guardian_student.py
rename to erpnext/education/doctype/guardian_student/guardian_student.py
diff --git a/erpnext/schools/doctype/instructor/__init__.py b/erpnext/education/doctype/instructor/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/instructor/__init__.py
rename to erpnext/education/doctype/instructor/__init__.py
diff --git a/erpnext/schools/doctype/instructor/instructor.js b/erpnext/education/doctype/instructor/instructor.js
similarity index 100%
rename from erpnext/schools/doctype/instructor/instructor.js
rename to erpnext/education/doctype/instructor/instructor.js
diff --git a/erpnext/schools/doctype/instructor/instructor.json b/erpnext/education/doctype/instructor/instructor.json
similarity index 98%
rename from erpnext/schools/doctype/instructor/instructor.json
rename to erpnext/education/doctype/instructor/instructor.json
index cd0b4f1..865e07c 100644
--- a/erpnext/schools/doctype/instructor/instructor.json
+++ b/erpnext/education/doctype/instructor/instructor.json
@@ -208,9 +208,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-08-25 01:03:14.602994",
+ "modified": "2017-11-10 19:00:20.354954",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Instructor",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/instructor/instructor.py b/erpnext/education/doctype/instructor/instructor.py
similarity index 78%
rename from erpnext/schools/doctype/instructor/instructor.py
rename to erpnext/education/doctype/instructor/instructor.py
index ba179f7..44a4e4c 100644
--- a/erpnext/schools/doctype/instructor/instructor.py
+++ b/erpnext/education/doctype/instructor/instructor.py
@@ -10,9 +10,9 @@
class Instructor(Document):
def autoname(self):
- naming_method = frappe.db.get_value("School Settings", None, "instructor_created_by")
+ naming_method = frappe.db.get_value("Education Settings", None, "instructor_created_by")
if not naming_method:
- frappe.throw(_("Please setup Instructor Naming System in School > School Settings"))
+ frappe.throw(_("Please setup Instructor Naming System in Education > Education Settings"))
else:
if naming_method == 'Naming Series':
self.name = make_autoname(self.naming_series + '.####')
diff --git a/erpnext/schools/doctype/instructor/test_instructor.js b/erpnext/education/doctype/instructor/test_instructor.js
similarity index 86%
rename from erpnext/schools/doctype/instructor/test_instructor.js
rename to erpnext/education/doctype/instructor/test_instructor.js
index a9e2561..c584f45 100644
--- a/erpnext/schools/doctype/instructor/test_instructor.js
+++ b/erpnext/education/doctype/instructor/test_instructor.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in education
+QUnit.module('education');
QUnit.test('Test: Instructor', function(assert){
assert.expect(2);
diff --git a/erpnext/schools/doctype/instructor/test_instructor.py b/erpnext/education/doctype/instructor/test_instructor.py
similarity index 100%
rename from erpnext/schools/doctype/instructor/test_instructor.py
rename to erpnext/education/doctype/instructor/test_instructor.py
diff --git a/erpnext/schools/doctype/instructor/test_records.json b/erpnext/education/doctype/instructor/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/instructor/test_records.json
rename to erpnext/education/doctype/instructor/test_records.json
diff --git a/erpnext/schools/doctype/program/__init__.py b/erpnext/education/doctype/program/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program/__init__.py
rename to erpnext/education/doctype/program/__init__.py
diff --git a/erpnext/schools/doctype/program/program.js b/erpnext/education/doctype/program/program.js
similarity index 100%
rename from erpnext/schools/doctype/program/program.js
rename to erpnext/education/doctype/program/program.js
diff --git a/erpnext/schools/doctype/program/program.json b/erpnext/education/doctype/program/program.json
similarity index 98%
rename from erpnext/schools/doctype/program/program.json
rename to erpnext/education/doctype/program/program.json
index 46581a1..05e35a2 100644
--- a/erpnext/schools/doctype/program/program.json
+++ b/erpnext/education/doctype/program/program.json
@@ -236,9 +236,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-11-02 18:08:20.823972",
+ "modified": "2017-11-10 18:56:18.413911",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program/program.py b/erpnext/education/doctype/program/program.py
similarity index 100%
rename from erpnext/schools/doctype/program/program.py
rename to erpnext/education/doctype/program/program.py
diff --git a/erpnext/schools/doctype/program/test_program.js b/erpnext/education/doctype/program/test_program.js
similarity index 92%
rename from erpnext/schools/doctype/program/test_program.js
rename to erpnext/education/doctype/program/test_program.js
index a14fe97..dc347cf 100644
--- a/erpnext/schools/doctype/program/test_program.js
+++ b/erpnext/education/doctype/program/test_program.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in education
+QUnit.module('education');
QUnit.test('Test: Program', function(assert){
assert.expect(6);
diff --git a/erpnext/schools/doctype/program/test_program.py b/erpnext/education/doctype/program/test_program.py
similarity index 100%
rename from erpnext/schools/doctype/program/test_program.py
rename to erpnext/education/doctype/program/test_program.py
diff --git a/erpnext/schools/doctype/program/test_records.json b/erpnext/education/doctype/program/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/program/test_records.json
rename to erpnext/education/doctype/program/test_records.json
diff --git a/erpnext/schools/doctype/program_course/__init__.py b/erpnext/education/doctype/program_course/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_course/__init__.py
rename to erpnext/education/doctype/program_course/__init__.py
diff --git a/erpnext/schools/doctype/program_course/program_course.json b/erpnext/education/doctype/program_course/program_course.json
similarity index 97%
rename from erpnext/schools/doctype/program_course/program_course.json
rename to erpnext/education/doctype/program_course/program_course.json
index 4922a95..c3d45d8 100644
--- a/erpnext/schools/doctype/program_course/program_course.json
+++ b/erpnext/education/doctype/program_course/program_course.json
@@ -145,9 +145,9 @@
"istable": 1,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:49.313349",
+ "modified": "2017-11-10 19:10:10.231463",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Course",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_course/program_course.py b/erpnext/education/doctype/program_course/program_course.py
similarity index 100%
rename from erpnext/schools/doctype/program_course/program_course.py
rename to erpnext/education/doctype/program_course/program_course.py
diff --git a/erpnext/schools/doctype/program_enrollment/__init__.py b/erpnext/education/doctype/program_enrollment/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment/__init__.py
rename to erpnext/education/doctype/program_enrollment/__init__.py
diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.js b/erpnext/education/doctype/program_enrollment/program_enrollment.js
similarity index 82%
rename from erpnext/schools/doctype/program_enrollment/program_enrollment.js
rename to erpnext/education/doctype/program_enrollment/program_enrollment.js
index 8418e85..d35f41a 100644
--- a/erpnext/schools/doctype/program_enrollment/program_enrollment.js
+++ b/erpnext/education/doctype/program_enrollment/program_enrollment.js
@@ -1,9 +1,12 @@
// Copyright (c) 2016, Frappe and contributors
// For license information, please see license.txt
-cur_frm.add_fetch('fee_structure', 'total_amount', 'amount');
frappe.ui.form.on("Program Enrollment", {
+ setup: function(frm) {
+ frm.add_fetch('fee_structure', 'total_amount', 'amount');
+ },
+
onload: function(frm, cdt, cdn){
frm.set_query("academic_term", "fees", function(){
return{
@@ -23,7 +26,7 @@
if (frm.doc.program) {
frm.set_query("course", "courses", function(doc, cdt, cdn) {
return{
- query: "erpnext.schools.doctype.program_enrollment.program_enrollment.get_program_courses",
+ query: "erpnext.education.doctype.program_enrollment.program_enrollment.get_program_courses",
filters: {
'program': frm.doc.program
}
@@ -33,7 +36,7 @@
frm.set_query("student", function() {
return{
- query: "erpnext.schools.doctype.program_enrollment.program_enrollment.get_students",
+ query: "erpnext.education.doctype.program_enrollment.program_enrollment.get_students",
filters: {
'academic_year': frm.doc.academic_year,
'academic_term': frm.doc.academic_term
@@ -46,7 +49,7 @@
frm.events.get_courses(frm);
if (frm.doc.program) {
frappe.call({
- method: "erpnext.schools.api.get_fee_schedule",
+ method: "erpnext.education.api.get_fee_schedule",
args: {
"program": frm.doc.program,
"student_category": frm.doc.student_category
diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.json b/erpnext/education/doctype/program_enrollment/program_enrollment.json
similarity index 98%
rename from erpnext/schools/doctype/program_enrollment/program_enrollment.json
rename to erpnext/education/doctype/program_enrollment/program_enrollment.json
index f8a3b9e..9badf93 100644
--- a/erpnext/schools/doctype/program_enrollment/program_enrollment.json
+++ b/erpnext/education/doctype/program_enrollment/program_enrollment.json
@@ -403,7 +403,7 @@
"label": "Mode of Transportation",
"length": 0,
"no_copy": 0,
- "options": "\nWalking\nSchool Bus\nPublic Transport\nSelf-Driving Vehicle\nPick/Drop by Guardian",
+ "options": "\nWalking\nInstitute's Bus\nPublic Transport\nSelf-Driving Vehicle\nPick/Drop by Guardian",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -671,9 +671,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-07-10 18:16:15.810616",
+ "modified": "2017-11-16 13:20:28.650637",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Enrollment",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_enrollment/program_enrollment.py b/erpnext/education/doctype/program_enrollment/program_enrollment.py
similarity index 96%
rename from erpnext/schools/doctype/program_enrollment/program_enrollment.py
rename to erpnext/education/doctype/program_enrollment/program_enrollment.py
index 4e67908..79772b0 100644
--- a/erpnext/schools/doctype/program_enrollment/program_enrollment.py
+++ b/erpnext/education/doctype/program_enrollment/program_enrollment.py
@@ -14,6 +14,8 @@
self.validate_duplication()
if not self.student_name:
self.student_name = frappe.db.get_value("Student", self.student, "title")
+ if not self.courses:
+ self.extend("courses", self.get_courses())
def on_submit(self):
self.update_student_joining_date()
@@ -30,7 +32,7 @@
frappe.db.set_value("Student", self.student, "joining_date", date)
def make_fee_records(self):
- from erpnext.schools.api import get_fee_components
+ from erpnext.education.api import get_fee_components
fee_list = []
for d in self.fees:
fee_components = get_fee_components(d.fee_structure)
diff --git a/erpnext/education/doctype/program_enrollment/test_program_enrollment.js b/erpnext/education/doctype/program_enrollment/test_program_enrollment.js
new file mode 100644
index 0000000..aea81a0
--- /dev/null
+++ b/erpnext/education/doctype/program_enrollment/test_program_enrollment.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Program Enrollment", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Program Enrollment
+ () => frappe.tests.make('Program Enrollment', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/program_enrollment/test_program_enrollment.py b/erpnext/education/doctype/program_enrollment/test_program_enrollment.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment/test_program_enrollment.py
rename to erpnext/education/doctype/program_enrollment/test_program_enrollment.py
diff --git a/erpnext/schools/doctype/program_enrollment_course/__init__.py b/erpnext/education/doctype/program_enrollment_course/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_course/__init__.py
rename to erpnext/education/doctype/program_enrollment_course/__init__.py
diff --git a/erpnext/schools/doctype/program_enrollment_course/program_enrollment_course.json b/erpnext/education/doctype/program_enrollment_course/program_enrollment_course.json
similarity index 96%
rename from erpnext/schools/doctype/program_enrollment_course/program_enrollment_course.json
rename to erpnext/education/doctype/program_enrollment_course/program_enrollment_course.json
index a5a26ab..87d9db3 100644
--- a/erpnext/schools/doctype/program_enrollment_course/program_enrollment_course.json
+++ b/erpnext/education/doctype/program_enrollment_course/program_enrollment_course.json
@@ -85,9 +85,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:49.637920",
+ "modified": "2017-11-10 19:11:54.272255",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Enrollment Course",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_enrollment_course/program_enrollment_course.py b/erpnext/education/doctype/program_enrollment_course/program_enrollment_course.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_course/program_enrollment_course.py
rename to erpnext/education/doctype/program_enrollment_course/program_enrollment_course.py
diff --git a/erpnext/schools/doctype/program_enrollment_fee/__init__.py b/erpnext/education/doctype/program_enrollment_fee/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_fee/__init__.py
rename to erpnext/education/doctype/program_enrollment_fee/__init__.py
diff --git a/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json b/erpnext/education/doctype/program_enrollment_fee/program_enrollment_fee.json
similarity index 98%
rename from erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json
rename to erpnext/education/doctype/program_enrollment_fee/program_enrollment_fee.json
index 8d2202a..0af2815 100644
--- a/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.json
+++ b/erpnext/education/doctype/program_enrollment_fee/program_enrollment_fee.json
@@ -173,9 +173,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:49.718726",
+ "modified": "2017-11-10 19:11:07.516632",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Enrollment Fee",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.py b/erpnext/education/doctype/program_enrollment_fee/program_enrollment_fee.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_fee/program_enrollment_fee.py
rename to erpnext/education/doctype/program_enrollment_fee/program_enrollment_fee.py
diff --git a/erpnext/schools/doctype/program_enrollment_tool/__init__.py b/erpnext/education/doctype/program_enrollment_tool/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_tool/__init__.py
rename to erpnext/education/doctype/program_enrollment_tool/__init__.py
diff --git a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.js b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.js
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.js
rename to erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.js
diff --git a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.json b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.json
similarity index 98%
rename from erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.json
rename to erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.json
index 8f32df7..2745366 100644
--- a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.json
+++ b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.json
@@ -328,9 +328,9 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:49.826296",
+ "modified": "2017-11-10 19:39:54.858394",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Enrollment Tool",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py
similarity index 97%
rename from erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
rename to erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py
index d80f2f5..d989d9f 100644
--- a/erpnext/schools/doctype/program_enrollment_tool/program_enrollment_tool.py
+++ b/erpnext/education/doctype/program_enrollment_tool/program_enrollment_tool.py
@@ -6,7 +6,7 @@
import frappe
from frappe import _
from frappe.model.document import Document
-from erpnext.schools.api import enroll_student
+from erpnext.education.api import enroll_student
class ProgramEnrollmentTool(Document):
def get_students(self):
diff --git a/erpnext/education/doctype/program_enrollment_tool/test_program_enrollment_tool.js b/erpnext/education/doctype/program_enrollment_tool/test_program_enrollment_tool.js
new file mode 100644
index 0000000..8d55104
--- /dev/null
+++ b/erpnext/education/doctype/program_enrollment_tool/test_program_enrollment_tool.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Program Enrollment Tool", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Program Enrollment Tool
+ () => frappe.tests.make('Program Enrollment Tool', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/education/doctype/program_enrollment_tool/test_program_enrollment_tool.py b/erpnext/education/doctype/program_enrollment_tool/test_program_enrollment_tool.py
new file mode 100644
index 0000000..f22b3b1
--- /dev/null
+++ b/erpnext/education/doctype/program_enrollment_tool/test_program_enrollment_tool.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestProgramEnrollmentTool(unittest.TestCase):
+ pass
diff --git a/erpnext/schools/doctype/program_enrollment_tool_student/__init__.py b/erpnext/education/doctype/program_enrollment_tool_student/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_tool_student/__init__.py
rename to erpnext/education/doctype/program_enrollment_tool_student/__init__.py
diff --git a/erpnext/schools/doctype/program_enrollment_tool_student/program_enrollment_tool_student.json b/erpnext/education/doctype/program_enrollment_tool_student/program_enrollment_tool_student.json
similarity index 97%
rename from erpnext/schools/doctype/program_enrollment_tool_student/program_enrollment_tool_student.json
rename to erpnext/education/doctype/program_enrollment_tool_student/program_enrollment_tool_student.json
index 50c9ac7..0dbe1b8 100644
--- a/erpnext/schools/doctype/program_enrollment_tool_student/program_enrollment_tool_student.json
+++ b/erpnext/education/doctype/program_enrollment_tool_student/program_enrollment_tool_student.json
@@ -145,9 +145,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:49.928790",
+ "modified": "2017-11-10 19:09:59.530615",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Enrollment Tool Student",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_enrollment_tool_student/program_enrollment_tool_student.py b/erpnext/education/doctype/program_enrollment_tool_student/program_enrollment_tool_student.py
similarity index 100%
rename from erpnext/schools/doctype/program_enrollment_tool_student/program_enrollment_tool_student.py
rename to erpnext/education/doctype/program_enrollment_tool_student/program_enrollment_tool_student.py
diff --git a/erpnext/schools/doctype/program_fee/__init__.py b/erpnext/education/doctype/program_fee/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/program_fee/__init__.py
rename to erpnext/education/doctype/program_fee/__init__.py
diff --git a/erpnext/schools/doctype/program_fee/program_fee.json b/erpnext/education/doctype/program_fee/program_fee.json
similarity index 98%
rename from erpnext/schools/doctype/program_fee/program_fee.json
rename to erpnext/education/doctype/program_fee/program_fee.json
index 673959a..d45e4bd 100644
--- a/erpnext/schools/doctype/program_fee/program_fee.json
+++ b/erpnext/education/doctype/program_fee/program_fee.json
@@ -205,9 +205,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:50.034899",
+ "modified": "2017-11-10 19:07:10.426335",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Program Fee",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/program_fee/program_fee.py b/erpnext/education/doctype/program_fee/program_fee.py
similarity index 100%
rename from erpnext/schools/doctype/program_fee/program_fee.py
rename to erpnext/education/doctype/program_fee/program_fee.py
diff --git a/erpnext/schools/doctype/room/__init__.py b/erpnext/education/doctype/room/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/room/__init__.py
rename to erpnext/education/doctype/room/__init__.py
diff --git a/erpnext/schools/doctype/room/room.js b/erpnext/education/doctype/room/room.js
similarity index 100%
rename from erpnext/schools/doctype/room/room.js
rename to erpnext/education/doctype/room/room.js
diff --git a/erpnext/schools/doctype/room/room.json b/erpnext/education/doctype/room/room.json
similarity index 97%
rename from erpnext/schools/doctype/room/room.json
rename to erpnext/education/doctype/room/room.json
index 8e672cc..6526766 100644
--- a/erpnext/schools/doctype/room/room.json
+++ b/erpnext/education/doctype/room/room.json
@@ -114,9 +114,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:50.145058",
+ "modified": "2017-11-10 19:04:32.237051",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Room",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/room/room.py b/erpnext/education/doctype/room/room.py
similarity index 100%
rename from erpnext/schools/doctype/room/room.py
rename to erpnext/education/doctype/room/room.py
diff --git a/erpnext/schools/doctype/room/test_records.json b/erpnext/education/doctype/room/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/room/test_records.json
rename to erpnext/education/doctype/room/test_records.json
diff --git a/erpnext/schools/doctype/room/test_room.js b/erpnext/education/doctype/room/test_room.js
similarity index 87%
rename from erpnext/schools/doctype/room/test_room.js
rename to erpnext/education/doctype/room/test_room.js
index 0a93a85..fdcbe92 100644
--- a/erpnext/schools/doctype/room/test_room.js
+++ b/erpnext/education/doctype/room/test_room.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in Education
+QUnit.module('education');
QUnit.test('Test: Room', function(assert){
assert.expect(3);
diff --git a/erpnext/schools/doctype/room/test_room.py b/erpnext/education/doctype/room/test_room.py
similarity index 100%
rename from erpnext/schools/doctype/room/test_room.py
rename to erpnext/education/doctype/room/test_room.py
diff --git a/erpnext/schools/doctype/school_house/__init__.py b/erpnext/education/doctype/school_house/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/school_house/__init__.py
rename to erpnext/education/doctype/school_house/__init__.py
diff --git a/erpnext/schools/doctype/school_house/school_house.js b/erpnext/education/doctype/school_house/school_house.js
similarity index 100%
rename from erpnext/schools/doctype/school_house/school_house.js
rename to erpnext/education/doctype/school_house/school_house.js
diff --git a/erpnext/schools/doctype/school_house/school_house.json b/erpnext/education/doctype/school_house/school_house.json
similarity index 96%
rename from erpnext/schools/doctype/school_house/school_house.json
rename to erpnext/education/doctype/school_house/school_house.json
index e777939..8a653a9 100644
--- a/erpnext/schools/doctype/school_house/school_house.json
+++ b/erpnext/education/doctype/school_house/school_house.json
@@ -54,9 +54,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:50.250616",
+ "modified": "2017-11-10 19:05:06.419022",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "School House",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/school_house/school_house.py b/erpnext/education/doctype/school_house/school_house.py
similarity index 100%
rename from erpnext/schools/doctype/school_house/school_house.py
rename to erpnext/education/doctype/school_house/school_house.py
diff --git a/erpnext/education/doctype/school_house/test_school_house.js b/erpnext/education/doctype/school_house/test_school_house.js
new file mode 100644
index 0000000..dde63ec
--- /dev/null
+++ b/erpnext/education/doctype/school_house/test_school_house.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: School House", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new School House
+ () => frappe.tests.make('School House', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/school_house/test_school_house.py b/erpnext/education/doctype/school_house/test_school_house.py
similarity index 100%
rename from erpnext/schools/doctype/school_house/test_school_house.py
rename to erpnext/education/doctype/school_house/test_school_house.py
diff --git a/erpnext/schools/doctype/student/__init__.py b/erpnext/education/doctype/student/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student/__init__.py
rename to erpnext/education/doctype/student/__init__.py
diff --git a/erpnext/schools/doctype/student/student.js b/erpnext/education/doctype/student/student.js
similarity index 100%
rename from erpnext/schools/doctype/student/student.js
rename to erpnext/education/doctype/student/student.js
diff --git a/erpnext/schools/doctype/student/student.json b/erpnext/education/doctype/student/student.json
similarity index 99%
rename from erpnext/schools/doctype/student/student.json
rename to erpnext/education/doctype/student/student.json
index 4961c2d..62c21d3 100644
--- a/erpnext/schools/doctype/student/student.json
+++ b/erpnext/education/doctype/student/student.json
@@ -1114,9 +1114,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-07-26 19:46:26.893441",
+ "modified": "2017-11-10 19:03:36.495785",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student/student.py b/erpnext/education/doctype/student/student.py
similarity index 100%
rename from erpnext/schools/doctype/student/student.py
rename to erpnext/education/doctype/student/student.py
diff --git a/erpnext/schools/doctype/student/student_dashboard.py b/erpnext/education/doctype/student/student_dashboard.py
similarity index 100%
rename from erpnext/schools/doctype/student/student_dashboard.py
rename to erpnext/education/doctype/student/student_dashboard.py
diff --git a/erpnext/schools/doctype/student/student_list.js b/erpnext/education/doctype/student/student_list.js
similarity index 100%
rename from erpnext/schools/doctype/student/student_list.js
rename to erpnext/education/doctype/student/student_list.js
diff --git a/erpnext/schools/doctype/student/test_records.json b/erpnext/education/doctype/student/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/student/test_records.json
rename to erpnext/education/doctype/student/test_records.json
diff --git a/erpnext/education/doctype/student/test_student.js b/erpnext/education/doctype/student/test_student.js
new file mode 100644
index 0000000..e18d39a
--- /dev/null
+++ b/erpnext/education/doctype/student/test_student.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Student", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Student
+ () => frappe.tests.make('Student', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/student/test_student.py b/erpnext/education/doctype/student/test_student.py
similarity index 100%
rename from erpnext/schools/doctype/student/test_student.py
rename to erpnext/education/doctype/student/test_student.py
diff --git a/erpnext/schools/doctype/student_admission/__init__.py b/erpnext/education/doctype/student_admission/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_admission/__init__.py
rename to erpnext/education/doctype/student_admission/__init__.py
diff --git a/erpnext/schools/doctype/student_admission/student_admission.js b/erpnext/education/doctype/student_admission/student_admission.js
similarity index 100%
rename from erpnext/schools/doctype/student_admission/student_admission.js
rename to erpnext/education/doctype/student_admission/student_admission.js
diff --git a/erpnext/schools/doctype/student_admission/student_admission.json b/erpnext/education/doctype/student_admission/student_admission.json
similarity index 98%
rename from erpnext/schools/doctype/student_admission/student_admission.json
rename to erpnext/education/doctype/student_admission/student_admission.json
index c35d5be..b3c10d4 100644
--- a/erpnext/schools/doctype/student_admission/student_admission.json
+++ b/erpnext/education/doctype/student_admission/student_admission.json
@@ -356,9 +356,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-02 15:16:44.386000",
+ "modified": "2017-11-10 18:57:34.570376",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Admission",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_admission/student_admission.py b/erpnext/education/doctype/student_admission/student_admission.py
similarity index 93%
rename from erpnext/schools/doctype/student_admission/student_admission.py
rename to erpnext/education/doctype/student_admission/student_admission.py
index e166b9b..2781c9c 100644
--- a/erpnext/schools/doctype/student_admission/student_admission.py
+++ b/erpnext/education/doctype/student_admission/student_admission.py
@@ -34,7 +34,7 @@
"show_sidebar": True,
"title": _("Student Admissions"),
"get_list": get_admission_list,
- "row_template": "schools/doctype/student_admission/templates/student_admission_row.html",
+ "row_template": "education/doctype/student_admission/templates/student_admission_row.html",
})
def get_admission_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by="modified"):
diff --git a/erpnext/schools/doctype/student_admission/templates/student_admission.html b/erpnext/education/doctype/student_admission/templates/student_admission.html
similarity index 100%
rename from erpnext/schools/doctype/student_admission/templates/student_admission.html
rename to erpnext/education/doctype/student_admission/templates/student_admission.html
diff --git a/erpnext/schools/doctype/student_admission/templates/student_admission_row.html b/erpnext/education/doctype/student_admission/templates/student_admission_row.html
similarity index 100%
rename from erpnext/schools/doctype/student_admission/templates/student_admission_row.html
rename to erpnext/education/doctype/student_admission/templates/student_admission_row.html
diff --git a/erpnext/schools/doctype/student_admission/test_student_admission.js b/erpnext/education/doctype/student_admission/test_student_admission.js
similarity index 94%
rename from erpnext/schools/doctype/student_admission/test_student_admission.js
rename to erpnext/education/doctype/student_admission/test_student_admission.js
index 767f237..ed794b2 100644
--- a/erpnext/schools/doctype/student_admission/test_student_admission.js
+++ b/erpnext/education/doctype/student_admission/test_student_admission.js
@@ -1,5 +1,5 @@
-// Testing Admission Module in Schools
-QUnit.module('schools');
+// Testing Admission Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Admission', function(assert) {
assert.expect(10);
diff --git a/erpnext/schools/doctype/student_admission/test_student_admission.py b/erpnext/education/doctype/student_admission/test_student_admission.py
similarity index 100%
rename from erpnext/schools/doctype/student_admission/test_student_admission.py
rename to erpnext/education/doctype/student_admission/test_student_admission.py
diff --git a/erpnext/schools/doctype/student_admission_program/__init__.py b/erpnext/education/doctype/student_admission_program/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_admission_program/__init__.py
rename to erpnext/education/doctype/student_admission_program/__init__.py
diff --git a/erpnext/schools/doctype/student_admission_program/student_admission_program.json b/erpnext/education/doctype/student_admission_program/student_admission_program.json
similarity index 98%
rename from erpnext/schools/doctype/student_admission_program/student_admission_program.json
rename to erpnext/education/doctype/student_admission_program/student_admission_program.json
index 29bb57f..46c5fab 100644
--- a/erpnext/schools/doctype/student_admission_program/student_admission_program.json
+++ b/erpnext/education/doctype/student_admission_program/student_admission_program.json
@@ -204,9 +204,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-10-02 17:13:52.586218",
+ "modified": "2017-11-10 18:57:21.174604",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Admission Program",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_admission_program/student_admission_program.py b/erpnext/education/doctype/student_admission_program/student_admission_program.py
similarity index 100%
rename from erpnext/schools/doctype/student_admission_program/student_admission_program.py
rename to erpnext/education/doctype/student_admission_program/student_admission_program.py
diff --git a/erpnext/schools/doctype/student_applicant/__init__.py b/erpnext/education/doctype/student_applicant/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_applicant/__init__.py
rename to erpnext/education/doctype/student_applicant/__init__.py
diff --git a/erpnext/schools/doctype/student_applicant/student_applicant.js b/erpnext/education/doctype/student_applicant/student_applicant.js
similarity index 96%
rename from erpnext/schools/doctype/student_applicant/student_applicant.js
rename to erpnext/education/doctype/student_applicant/student_applicant.js
index fdf16ba..83621c5 100644
--- a/erpnext/schools/doctype/student_applicant/student_applicant.js
+++ b/erpnext/education/doctype/student_applicant/student_applicant.js
@@ -40,7 +40,7 @@
enroll: function(frm) {
frappe.model.open_mapped_doc({
- method: "erpnext.schools.api.enroll_student",
+ method: "erpnext.education.api.enroll_student",
frm: frm
})
}
diff --git a/erpnext/schools/doctype/student_applicant/student_applicant.json b/erpnext/education/doctype/student_applicant/student_applicant.json
similarity index 99%
rename from erpnext/schools/doctype/student_applicant/student_applicant.json
rename to erpnext/education/doctype/student_applicant/student_applicant.json
index 578f84c..9c84234 100644
--- a/erpnext/schools/doctype/student_applicant/student_applicant.json
+++ b/erpnext/education/doctype/student_applicant/student_applicant.json
@@ -1058,9 +1058,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-08-23 06:12:36.996978",
+ "modified": "2017-11-10 19:08:55.049625",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Applicant",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_applicant/student_applicant.py b/erpnext/education/doctype/student_applicant/student_applicant.py
similarity index 100%
rename from erpnext/schools/doctype/student_applicant/student_applicant.py
rename to erpnext/education/doctype/student_applicant/student_applicant.py
diff --git a/erpnext/schools/doctype/student_applicant/student_applicant_list.js b/erpnext/education/doctype/student_applicant/student_applicant_list.js
similarity index 100%
rename from erpnext/schools/doctype/student_applicant/student_applicant_list.js
rename to erpnext/education/doctype/student_applicant/student_applicant_list.js
diff --git a/erpnext/schools/doctype/student_applicant/test_student_applicant.py b/erpnext/education/doctype/student_applicant/test_student_applicant.py
similarity index 100%
rename from erpnext/schools/doctype/student_applicant/test_student_applicant.py
rename to erpnext/education/doctype/student_applicant/test_student_applicant.py
diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js b/erpnext/education/doctype/student_applicant/tests/test_student_applicant.js
similarity index 98%
rename from erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js
rename to erpnext/education/doctype/student_applicant/tests/test_student_applicant.js
index a45b45a..a69ad8a 100644
--- a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js
+++ b/erpnext/education/doctype/student_applicant/tests/test_student_applicant.js
@@ -1,5 +1,5 @@
-// Testing Admission module in Schools
-QUnit.module('schools');
+// Testing Admission module in Education
+QUnit.module('education');
QUnit.test('Test: Student Applicant', function(assert){
assert.expect(24);
diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js b/erpnext/education/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
similarity index 100%
rename from erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
rename to erpnext/education/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
diff --git a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js b/erpnext/education/doctype/student_applicant/tests/test_student_applicant_options.js
similarity index 98%
rename from erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
rename to erpnext/education/doctype/student_applicant/tests/test_student_applicant_options.js
index d8877e6..114358f 100644
--- a/erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
+++ b/erpnext/education/doctype/student_applicant/tests/test_student_applicant_options.js
@@ -1,5 +1,5 @@
-// Testing Admission module in Schools
-QUnit.module('schools');
+// Testing Admission module in Education
+QUnit.module('education');
QUnit.test('test student applicant', function(assert){
assert.expect(11);
diff --git a/erpnext/schools/doctype/student_attendance/__init__.py b/erpnext/education/doctype/student_attendance/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_attendance/__init__.py
rename to erpnext/education/doctype/student_attendance/__init__.py
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.js b/erpnext/education/doctype/student_attendance/student_attendance.js
similarity index 100%
rename from erpnext/schools/doctype/student_attendance/student_attendance.js
rename to erpnext/education/doctype/student_attendance/student_attendance.js
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.json b/erpnext/education/doctype/student_attendance/student_attendance.json
similarity index 98%
rename from erpnext/schools/doctype/student_attendance/student_attendance.json
rename to erpnext/education/doctype/student_attendance/student_attendance.json
index aa084cc..07530b4 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.json
+++ b/erpnext/education/doctype/student_attendance/student_attendance.json
@@ -239,9 +239,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:51.223266",
+ "modified": "2017-11-10 19:09:51.041960",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Attendance",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance.py b/erpnext/education/doctype/student_attendance/student_attendance.py
similarity index 97%
rename from erpnext/schools/doctype/student_attendance/student_attendance.py
rename to erpnext/education/doctype/student_attendance/student_attendance.py
index 6960296..06ac4fb 100644
--- a/erpnext/schools/doctype/student_attendance/student_attendance.py
+++ b/erpnext/education/doctype/student_attendance/student_attendance.py
@@ -7,7 +7,7 @@
from frappe.model.document import Document
from frappe import _
from frappe.utils import cstr
-from erpnext.schools.api import get_student_group_students
+from erpnext.education.api import get_student_group_students
class StudentAttendance(Document):
diff --git a/erpnext/schools/doctype/student_attendance/student_attendance_list.js b/erpnext/education/doctype/student_attendance/student_attendance_list.js
similarity index 100%
rename from erpnext/schools/doctype/student_attendance/student_attendance_list.js
rename to erpnext/education/doctype/student_attendance/student_attendance_list.js
diff --git a/erpnext/schools/doctype/student_attendance/test_student_attendance.js b/erpnext/education/doctype/student_attendance/test_student_attendance.js
similarity index 92%
rename from erpnext/schools/doctype/student_attendance/test_student_attendance.js
rename to erpnext/education/doctype/student_attendance/test_student_attendance.js
index af83e77..c7da6f6 100644
--- a/erpnext/schools/doctype/student_attendance/test_student_attendance.js
+++ b/erpnext/education/doctype/student_attendance/test_student_attendance.js
@@ -1,5 +1,5 @@
-// Testing Attendance Module in Schools
-QUnit.module('schools');
+// Testing Attendance Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Attendance', function(assert){
assert.expect(2);
diff --git a/erpnext/schools/doctype/student_attendance/test_student_attendance.py b/erpnext/education/doctype/student_attendance/test_student_attendance.py
similarity index 100%
rename from erpnext/schools/doctype/student_attendance/test_student_attendance.py
rename to erpnext/education/doctype/student_attendance/test_student_attendance.py
diff --git a/erpnext/schools/doctype/student_attendance_tool/__init__.py b/erpnext/education/doctype/student_attendance_tool/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_attendance_tool/__init__.py
rename to erpnext/education/doctype/student_attendance_tool/__init__.py
diff --git a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
similarity index 93%
rename from erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js
rename to erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
index 23ec408..df6d132 100644
--- a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.js
+++ b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
@@ -1,6 +1,6 @@
// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-frappe.provide("schools")
+frappe.provide("education");
frappe.ui.form.on('Student Attendance Tool', {
onload: function(frm) {
@@ -33,7 +33,7 @@
student_group: function(frm) {
if ((frm.doc.student_group && frm.doc.date) || frm.doc.course_schedule) {
- var method = "erpnext.schools.doctype.student_attendance_tool.student_attendance_tool.get_student_attendance_records";
+ var method = "erpnext.education.doctype.student_attendance_tool.student_attendance_tool.get_student_attendance_records";
frappe.call({
method: method,
@@ -64,12 +64,12 @@
.appendTo(frm.fields_dict.students_html.wrapper);
}
students = students || [];
- frm.students_editor = new schools.StudentsEditor(frm, frm.students_area, students)
+ frm.students_editor = new education.StudentsEditor(frm, frm.students_area, students);
}
});
-schools.StudentsEditor = Class.extend({
+education.StudentsEditor = Class.extend({
init: function(frm, wrapper, students) {
this.wrapper = wrapper;
this.frm = frm;
@@ -137,7 +137,7 @@
function() { //ifyes
if(!frappe.request.ajax_count) {
frappe.call({
- method: "erpnext.schools.api.mark_attendance",
+ method: "erpnext.education.api.mark_attendance",
freeze: true,
freeze_message: "Marking attendance",
args: {
diff --git a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.json b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.json
similarity index 98%
rename from erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.json
rename to erpnext/education/doctype/student_attendance_tool/student_attendance_tool.json
index 5c28655..26b28b3 100644
--- a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.json
+++ b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.json
@@ -273,9 +273,9 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-08 11:53:27.994112",
+ "modified": "2017-11-10 18:55:36.168044",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Attendance Tool",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.py b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.py
similarity index 100%
rename from erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.py
rename to erpnext/education/doctype/student_attendance_tool/student_attendance_tool.py
diff --git a/erpnext/schools/doctype/student_attendance_tool/test_student_attendance_tool.js b/erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.js
similarity index 97%
rename from erpnext/schools/doctype/student_attendance_tool/test_student_attendance_tool.js
rename to erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.js
index 3044f20..19b32a9 100644
--- a/erpnext/schools/doctype/student_attendance_tool/test_student_attendance_tool.js
+++ b/erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.js
@@ -1,5 +1,5 @@
-// Testing Attendance Module in Schools
-QUnit.module('schools');
+// Testing Attendance Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Attendace Tool', function(assert){
assert.expect(10);
diff --git a/erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.py b/erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.py
new file mode 100644
index 0000000..ffc42af
--- /dev/null
+++ b/erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestStudentAttendanceTool(unittest.TestCase):
+ pass
diff --git a/erpnext/schools/doctype/student_batch_name/__init__.py b/erpnext/education/doctype/student_batch_name/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_batch_name/__init__.py
rename to erpnext/education/doctype/student_batch_name/__init__.py
diff --git a/erpnext/schools/doctype/student_batch_name/student_batch_name.js b/erpnext/education/doctype/student_batch_name/student_batch_name.js
similarity index 100%
rename from erpnext/schools/doctype/student_batch_name/student_batch_name.js
rename to erpnext/education/doctype/student_batch_name/student_batch_name.js
diff --git a/erpnext/schools/doctype/student_batch_name/student_batch_name.json b/erpnext/education/doctype/student_batch_name/student_batch_name.json
similarity index 96%
rename from erpnext/schools/doctype/student_batch_name/student_batch_name.json
rename to erpnext/education/doctype/student_batch_name/student_batch_name.json
index 6b08487..abb6436 100644
--- a/erpnext/schools/doctype/student_batch_name/student_batch_name.json
+++ b/erpnext/education/doctype/student_batch_name/student_batch_name.json
@@ -54,9 +54,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:51.545155",
+ "modified": "2017-11-10 19:08:17.980349",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Batch Name",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_batch_name/student_batch_name.py b/erpnext/education/doctype/student_batch_name/student_batch_name.py
similarity index 100%
rename from erpnext/schools/doctype/student_batch_name/student_batch_name.py
rename to erpnext/education/doctype/student_batch_name/student_batch_name.py
diff --git a/erpnext/schools/doctype/student_batch_name/test_records.json b/erpnext/education/doctype/student_batch_name/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/student_batch_name/test_records.json
rename to erpnext/education/doctype/student_batch_name/test_records.json
diff --git a/erpnext/schools/doctype/student_batch_name/test_student_batch_name.js b/erpnext/education/doctype/student_batch_name/test_student_batch_name.js
similarity index 83%
rename from erpnext/schools/doctype/student_batch_name/test_student_batch_name.js
rename to erpnext/education/doctype/student_batch_name/test_student_batch_name.js
index 6a10dc1..6c761b8 100644
--- a/erpnext/schools/doctype/student_batch_name/test_student_batch_name.js
+++ b/erpnext/education/doctype/student_batch_name/test_student_batch_name.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Batch Name', function(assert){
assert.expect(1);
diff --git a/erpnext/schools/doctype/student_batch_name/test_student_batch_name.py b/erpnext/education/doctype/student_batch_name/test_student_batch_name.py
similarity index 100%
rename from erpnext/schools/doctype/student_batch_name/test_student_batch_name.py
rename to erpnext/education/doctype/student_batch_name/test_student_batch_name.py
diff --git a/erpnext/schools/doctype/student_category/__init__.py b/erpnext/education/doctype/student_category/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_category/__init__.py
rename to erpnext/education/doctype/student_category/__init__.py
diff --git a/erpnext/schools/doctype/student_category/student_category.js b/erpnext/education/doctype/student_category/student_category.js
similarity index 100%
rename from erpnext/schools/doctype/student_category/student_category.js
rename to erpnext/education/doctype/student_category/student_category.js
diff --git a/erpnext/schools/doctype/student_category/student_category.json b/erpnext/education/doctype/student_category/student_category.json
similarity index 96%
rename from erpnext/schools/doctype/student_category/student_category.json
rename to erpnext/education/doctype/student_category/student_category.json
index ce4cb4e..d7d4444 100644
--- a/erpnext/schools/doctype/student_category/student_category.json
+++ b/erpnext/education/doctype/student_category/student_category.json
@@ -53,9 +53,9 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:51.652539",
+ "modified": "2017-11-10 19:09:45.783401",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Category",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_category/student_category.py b/erpnext/education/doctype/student_category/student_category.py
similarity index 100%
rename from erpnext/schools/doctype/student_category/student_category.py
rename to erpnext/education/doctype/student_category/student_category.py
diff --git a/erpnext/schools/doctype/student_category/test_student_category.js b/erpnext/education/doctype/student_category/test_student_category.js
similarity index 83%
rename from erpnext/schools/doctype/student_category/test_student_category.js
rename to erpnext/education/doctype/student_category/test_student_category.js
index 5e3109a..01f50e2 100644
--- a/erpnext/schools/doctype/student_category/test_student_category.js
+++ b/erpnext/education/doctype/student_category/test_student_category.js
@@ -1,5 +1,5 @@
-// Testing Setup Module in Schools
-QUnit.module('schools');
+// Testing Setup Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Category', function(assert){
assert.expect(1);
diff --git a/erpnext/schools/doctype/student_category/test_student_category.py b/erpnext/education/doctype/student_category/test_student_category.py
similarity index 100%
rename from erpnext/schools/doctype/student_category/test_student_category.py
rename to erpnext/education/doctype/student_category/test_student_category.py
diff --git a/erpnext/schools/doctype/student_group/__init__.py b/erpnext/education/doctype/student_group/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_group/__init__.py
rename to erpnext/education/doctype/student_group/__init__.py
diff --git a/erpnext/schools/doctype/student_group/student_group.js b/erpnext/education/doctype/student_group/student_group.js
similarity index 92%
rename from erpnext/schools/doctype/student_group/student_group.js
rename to erpnext/education/doctype/student_group/student_group.js
index 80355a8..f3f8c88 100644
--- a/erpnext/schools/doctype/student_group/student_group.js
+++ b/erpnext/education/doctype/student_group/student_group.js
@@ -12,7 +12,7 @@
if (!frm.__islocal) {
frm.set_query("student", "students", function() {
return{
- query: "erpnext.schools.doctype.student_group.student_group.fetch_students",
+ query: "erpnext.education.doctype.student_group.student_group.fetch_students",
filters: {
'academic_year': frm.doc.academic_year,
'group_based_on': frm.doc.group_based_on,
@@ -50,7 +50,7 @@
});
frm.add_custom_button(__("Update Email Group"), function() {
frappe.call({
- method: "erpnext.schools.api.update_email_group",
+ method: "erpnext.education.api.update_email_group",
args: {
"doctype": "Student Group",
"name": frm.doc.name
@@ -83,7 +83,7 @@
}
});
frappe.call({
- method: "erpnext.schools.doctype.student_group.student_group.get_students",
+ method: "erpnext.education.doctype.student_group.student_group.get_students",
args: {
"academic_year": frm.doc.academic_year,
"academic_term": frm.doc.academic_term,
diff --git a/erpnext/schools/doctype/student_group/student_group.json b/erpnext/education/doctype/student_group/student_group.json
similarity index 99%
rename from erpnext/schools/doctype/student_group/student_group.json
rename to erpnext/education/doctype/student_group/student_group.json
index 0a9b41a..37a611b 100644
--- a/erpnext/schools/doctype/student_group/student_group.json
+++ b/erpnext/education/doctype/student_group/student_group.json
@@ -459,9 +459,9 @@
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
- "modified": "2017-06-30 08:21:51.755519",
+ "modified": "2017-11-10 19:09:37.370864",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Group",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_group/student_group.py b/erpnext/education/doctype/student_group/student_group.py
similarity index 98%
rename from erpnext/schools/doctype/student_group/student_group.py
rename to erpnext/education/doctype/student_group/student_group.py
index 950632b..d508589 100644
--- a/erpnext/schools/doctype/student_group/student_group.py
+++ b/erpnext/education/doctype/student_group/student_group.py
@@ -6,7 +6,7 @@
import frappe
from frappe.model.document import Document
from frappe import _
-from erpnext.schools.utils import validate_duplicate_student
+from erpnext.education.utils import validate_duplicate_student
from frappe.utils import cint
class StudentGroup(Document):
diff --git a/erpnext/schools/doctype/student_group/test_records.json b/erpnext/education/doctype/student_group/test_records.json
similarity index 100%
rename from erpnext/schools/doctype/student_group/test_records.json
rename to erpnext/education/doctype/student_group/test_records.json
diff --git a/erpnext/schools/doctype/student_group/test_student_group.js b/erpnext/education/doctype/student_group/test_student_group.js
similarity index 95%
rename from erpnext/schools/doctype/student_group/test_student_group.js
rename to erpnext/education/doctype/student_group/test_student_group.js
index bee5067..6673343 100644
--- a/erpnext/schools/doctype/student_group/test_student_group.js
+++ b/erpnext/education/doctype/student_group/test_student_group.js
@@ -1,5 +1,5 @@
-// Testing Student Module in Schools
-QUnit.module('schools');
+// Testing Student Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Group', function(assert){
assert.expect(2);
diff --git a/erpnext/schools/doctype/student_group/test_student_group.py b/erpnext/education/doctype/student_group/test_student_group.py
similarity index 100%
rename from erpnext/schools/doctype/student_group/test_student_group.py
rename to erpnext/education/doctype/student_group/test_student_group.py
diff --git a/erpnext/schools/doctype/student_group_creation_tool/__init__.py b/erpnext/education/doctype/student_group_creation_tool/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_creation_tool/__init__.py
rename to erpnext/education/doctype/student_group_creation_tool/__init__.py
diff --git a/erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.js b/erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.js
similarity index 100%
rename from erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.js
rename to erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.js
diff --git a/erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.json b/erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.json
similarity index 98%
rename from erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.json
rename to erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.json
index a6ed989..d759b91 100644
--- a/erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.json
+++ b/erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.json
@@ -269,9 +269,9 @@
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-07-17 21:57:35.602091",
+ "modified": "2017-11-10 19:40:07.862203",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Group Creation Tool",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.py b/erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.py
similarity index 97%
rename from erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.py
rename to erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.py
index 649e5da..643093e 100644
--- a/erpnext/schools/doctype/student_group_creation_tool/student_group_creation_tool.py
+++ b/erpnext/education/doctype/student_group_creation_tool/student_group_creation_tool.py
@@ -6,7 +6,7 @@
import frappe
from frappe import _
from frappe.model.document import Document
-from erpnext.schools.doctype.student_group.student_group import get_students
+from erpnext.education.doctype.student_group.student_group import get_students
class StudentGroupCreationTool(Document):
def get_courses(self):
diff --git a/erpnext/schools/doctype/student_group_creation_tool/test_student_group_creation_tool.js b/erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.js
similarity index 98%
rename from erpnext/schools/doctype/student_group_creation_tool/test_student_group_creation_tool.js
rename to erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.js
index a8567b3..34c1093 100644
--- a/erpnext/schools/doctype/student_group_creation_tool/test_student_group_creation_tool.js
+++ b/erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.js
@@ -1,4 +1,4 @@
-QUnit.module('schools');
+QUnit.module('education');
QUnit.test('Test: Student Group Creation Tool', function(assert){
assert.expect(5);
diff --git a/erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.py b/erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.py
new file mode 100644
index 0000000..9ca5658
--- /dev/null
+++ b/erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestStudentGroupCreationTool(unittest.TestCase):
+ pass
diff --git a/erpnext/schools/doctype/student_group_creation_tool_course/__init__.py b/erpnext/education/doctype/student_group_creation_tool_course/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_creation_tool_course/__init__.py
rename to erpnext/education/doctype/student_group_creation_tool_course/__init__.py
diff --git a/erpnext/schools/doctype/student_group_creation_tool_course/student_group_creation_tool_course.json b/erpnext/education/doctype/student_group_creation_tool_course/student_group_creation_tool_course.json
similarity index 98%
rename from erpnext/schools/doctype/student_group_creation_tool_course/student_group_creation_tool_course.json
rename to erpnext/education/doctype/student_group_creation_tool_course/student_group_creation_tool_course.json
index d945d4b..a749929 100644
--- a/erpnext/schools/doctype/student_group_creation_tool_course/student_group_creation_tool_course.json
+++ b/erpnext/education/doctype/student_group_creation_tool_course/student_group_creation_tool_course.json
@@ -236,9 +236,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-05-15 14:18:23.435415",
+ "modified": "2017-11-10 19:08:27.657591",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Group Creation Tool Course",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_group_creation_tool_course/student_group_creation_tool_course.py b/erpnext/education/doctype/student_group_creation_tool_course/student_group_creation_tool_course.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_creation_tool_course/student_group_creation_tool_course.py
rename to erpnext/education/doctype/student_group_creation_tool_course/student_group_creation_tool_course.py
diff --git a/erpnext/schools/doctype/student_group_instructor/__init__.py b/erpnext/education/doctype/student_group_instructor/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_instructor/__init__.py
rename to erpnext/education/doctype/student_group_instructor/__init__.py
diff --git a/erpnext/schools/doctype/student_group_instructor/student_group_instructor.json b/erpnext/education/doctype/student_group_instructor/student_group_instructor.json
similarity index 94%
rename from erpnext/schools/doctype/student_group_instructor/student_group_instructor.json
rename to erpnext/education/doctype/student_group_instructor/student_group_instructor.json
index 541e9b3..c09d7d3 100644
--- a/erpnext/schools/doctype/student_group_instructor/student_group_instructor.json
+++ b/erpnext/education/doctype/student_group_instructor/student_group_instructor.json
@@ -13,6 +13,7 @@
"engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -43,6 +44,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -71,6 +73,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -111,9 +114,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-04-17 16:06:05.792863",
+ "modified": "2017-11-10 19:11:31.439735",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Group Instructor",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_group_instructor/student_group_instructor.py b/erpnext/education/doctype/student_group_instructor/student_group_instructor.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_instructor/student_group_instructor.py
rename to erpnext/education/doctype/student_group_instructor/student_group_instructor.py
diff --git a/erpnext/schools/doctype/student_group_student/__init__.py b/erpnext/education/doctype/student_group_student/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_student/__init__.py
rename to erpnext/education/doctype/student_group_student/__init__.py
diff --git a/erpnext/schools/doctype/student_group_student/student_group_student.json b/erpnext/education/doctype/student_group_student/student_group_student.json
similarity index 95%
rename from erpnext/schools/doctype/student_group_student/student_group_student.json
rename to erpnext/education/doctype/student_group_student/student_group_student.json
index 5fc434a..3ff339f 100644
--- a/erpnext/schools/doctype/student_group_student/student_group_student.json
+++ b/erpnext/education/doctype/student_group_student/student_group_student.json
@@ -12,6 +12,7 @@
"editable_grid": 1,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -42,6 +43,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -71,6 +73,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -99,6 +102,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -128,6 +132,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -168,9 +173,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-04-12 14:56:07.532226",
+ "modified": "2017-11-10 19:11:39.735521",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Group Student",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_group_student/student_group_student.py b/erpnext/education/doctype/student_group_student/student_group_student.py
similarity index 100%
rename from erpnext/schools/doctype/student_group_student/student_group_student.py
rename to erpnext/education/doctype/student_group_student/student_group_student.py
diff --git a/erpnext/schools/doctype/student_guardian/__init__.py b/erpnext/education/doctype/student_guardian/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_guardian/__init__.py
rename to erpnext/education/doctype/student_guardian/__init__.py
diff --git a/erpnext/schools/doctype/student_guardian/student_guardian.json b/erpnext/education/doctype/student_guardian/student_guardian.json
similarity index 93%
rename from erpnext/schools/doctype/student_guardian/student_guardian.json
rename to erpnext/education/doctype/student_guardian/student_guardian.json
index b5f9d88..b4844fd 100644
--- a/erpnext/schools/doctype/student_guardian/student_guardian.json
+++ b/erpnext/education/doctype/student_guardian/student_guardian.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
@@ -11,6 +12,7 @@
"editable_grid": 1,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -41,6 +43,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -70,6 +73,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -100,19 +104,19 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-02-17 17:13:53.507571",
+ "modified": "2017-11-10 19:10:57.680471",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Guardian",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_guardian/student_guardian.py b/erpnext/education/doctype/student_guardian/student_guardian.py
similarity index 100%
rename from erpnext/schools/doctype/student_guardian/student_guardian.py
rename to erpnext/education/doctype/student_guardian/student_guardian.py
diff --git a/erpnext/schools/doctype/student_language/__init__.py b/erpnext/education/doctype/student_language/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_language/__init__.py
rename to erpnext/education/doctype/student_language/__init__.py
diff --git a/erpnext/schools/doctype/student_language/student_language.js b/erpnext/education/doctype/student_language/student_language.js
similarity index 100%
rename from erpnext/schools/doctype/student_language/student_language.js
rename to erpnext/education/doctype/student_language/student_language.js
diff --git a/erpnext/schools/doctype/student_language/student_language.json b/erpnext/education/doctype/student_language/student_language.json
similarity index 91%
rename from erpnext/schools/doctype/student_language/student_language.json
rename to erpnext/education/doctype/student_language/student_language.json
index f3b4eb1..43e6dbd 100644
--- a/erpnext/schools/doctype/student_language/student_language.json
+++ b/erpnext/education/doctype/student_language/student_language.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:language_name",
@@ -13,6 +14,7 @@
"engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -24,7 +26,7 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
- "in_list_view": 0,
+ "in_list_view": 1,
"in_standard_filter": 0,
"label": "Language Name",
"length": 0,
@@ -42,19 +44,19 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-02-22 13:03:48.600707",
+ "modified": "2017-11-10 19:05:37.035846",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Language",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_language/student_language.py b/erpnext/education/doctype/student_language/student_language.py
similarity index 100%
rename from erpnext/schools/doctype/student_language/student_language.py
rename to erpnext/education/doctype/student_language/student_language.py
diff --git a/erpnext/education/doctype/student_language/test_student_language.js b/erpnext/education/doctype/student_language/test_student_language.js
new file mode 100644
index 0000000..9b25569
--- /dev/null
+++ b/erpnext/education/doctype/student_language/test_student_language.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Student Language", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Student Language
+ () => frappe.tests.make('Student Language', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/student_language/test_student_language.py b/erpnext/education/doctype/student_language/test_student_language.py
similarity index 100%
rename from erpnext/schools/doctype/student_language/test_student_language.py
rename to erpnext/education/doctype/student_language/test_student_language.py
diff --git a/erpnext/schools/doctype/student_leave_application/__init__.py b/erpnext/education/doctype/student_leave_application/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_leave_application/__init__.py
rename to erpnext/education/doctype/student_leave_application/__init__.py
diff --git a/erpnext/schools/doctype/student_leave_application/student_leave_application.js b/erpnext/education/doctype/student_leave_application/student_leave_application.js
similarity index 100%
rename from erpnext/schools/doctype/student_leave_application/student_leave_application.js
rename to erpnext/education/doctype/student_leave_application/student_leave_application.js
diff --git a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.json b/erpnext/education/doctype/student_leave_application/student_leave_application.json
similarity index 73%
copy from erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.json
copy to erpnext/education/doctype/student_leave_application/student_leave_application.json
index 5c28655..93ff1ad 100644
--- a/erpnext/schools/doctype/student_attendance_tool/student_attendance_tool.json
+++ b/erpnext/education/doctype/student_leave_application/student_leave_application.json
@@ -1,10 +1,11 @@
{
- "allow_copy": 1,
+ "allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
+ "autoname": "SLA.######",
"beta": 0,
- "creation": "2016-11-16 17:12:46.437539",
+ "creation": "2016-11-28 15:38:54.793854",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
@@ -18,20 +19,50 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "",
- "fieldname": "based_on",
- "fieldtype": "Select",
+ "fieldname": "student",
+ "fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
- "in_global_search": 0,
+ "in_global_search": 1,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Based On",
+ "label": "Student",
"length": 0,
"no_copy": 0,
- "options": "Student Group\nCourse Schedule",
+ "options": "Student",
+ "permlevel": 0,
+ "precision": "",
+ "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": "student_name",
+ "fieldtype": "Read Only",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Student Name",
+ "length": 0,
+ "no_copy": 0,
+ "options": "student.title",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -50,40 +81,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "default": "Batch",
- "depends_on": "eval:doc.based_on == \"Student Group\"",
- "fieldname": "group_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": "Group Based On",
- "length": 0,
- "no_copy": 0,
- "options": "Batch\nCourse\nActivity",
- "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_2",
+ "fieldname": "column_break_3",
"fieldtype": "Column Break",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -92,6 +90,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
+ "label": "",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -112,20 +111,18 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval:doc.based_on ==\"Student Group\"",
- "fieldname": "student_group",
- "fieldtype": "Link",
+ "fieldname": "from_date",
+ "fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Student Group",
+ "in_standard_filter": 1,
+ "label": "From Date",
"length": 0,
"no_copy": 0,
- "options": "Student Group",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -144,40 +141,7 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval:doc.based_on ==\"Course Schedule\"",
- "fieldname": "course_schedule",
- "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": "Course Schedule",
- "length": 0,
- "no_copy": 0,
- "options": "Course Schedule",
- "permlevel": 0,
- "precision": "",
- "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.based_on ==\"Student Group\"",
- "fieldname": "date",
+ "fieldname": "to_date",
"fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -186,7 +150,7 @@
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
- "label": "Date",
+ "label": "To Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -207,9 +171,9 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval: (doc.course_schedule \n|| (doc.student_group && doc.date))",
- "fieldname": "attendance",
- "fieldtype": "Section Break",
+ "description": "Will show the student as Present in Student Monthly Attendance Report",
+ "fieldname": "mark_as_present",
+ "fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -217,7 +181,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Attendance",
+ "label": "Mark as Present",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -238,8 +202,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "students_html",
- "fieldtype": "HTML",
+ "fieldname": "section_break_5",
+ "fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -247,7 +211,6 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Students HTML",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -261,73 +224,134 @@
"search_index": 0,
"set_only_once": 0,
"unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "reason",
+ "fieldtype": "Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Reason",
+ "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": "amended_from",
+ "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": "Amended From",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Student Leave Application",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
}
],
"has_web_view": 0,
- "hide_heading": 1,
- "hide_toolbar": 1,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
- "is_submittable": 0,
- "issingle": 1,
+ "is_submittable": 1,
+ "issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-08 11:53:27.994112",
+ "modified": "2017-11-10 19:09:31.848381",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "Student Attendance Tool",
+ "module": "Education",
+ "name": "Student Leave Application",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
- "amend": 0,
+ "amend": 1,
"apply_user_permissions": 0,
- "cancel": 0,
+ "cancel": 1,
"create": 1,
- "delete": 0,
- "email": 0,
+ "delete": 1,
+ "email": 1,
"export": 0,
"if_owner": 0,
"import": 0,
"permlevel": 0,
- "print": 0,
+ "print": 1,
"read": 1,
- "report": 0,
+ "report": 1,
"role": "Instructor",
"set_user_permissions": 0,
"share": 0,
- "submit": 0,
+ "submit": 1,
"write": 1
},
{
- "amend": 0,
+ "amend": 1,
"apply_user_permissions": 0,
- "cancel": 0,
+ "cancel": 1,
"create": 1,
- "delete": 0,
- "email": 0,
- "export": 0,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
- "print": 0,
+ "print": 1,
"read": 1,
- "report": 0,
+ "report": 1,
"role": "Academics User",
"set_user_permissions": 0,
- "share": 0,
- "submit": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
}
],
- "quick_entry": 0,
+ "quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"restrict_to_domain": "Education",
- "show_name_in_global_search": 0,
+ "show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "DESC",
+ "title_field": "student_name",
"track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_leave_application/student_leave_application.py b/erpnext/education/doctype/student_leave_application/student_leave_application.py
similarity index 100%
rename from erpnext/schools/doctype/student_leave_application/student_leave_application.py
rename to erpnext/education/doctype/student_leave_application/student_leave_application.py
diff --git a/erpnext/schools/doctype/student_leave_application/test_student_leave_application.js b/erpnext/education/doctype/student_leave_application/test_student_leave_application.js
similarity index 96%
rename from erpnext/schools/doctype/student_leave_application/test_student_leave_application.js
rename to erpnext/education/doctype/student_leave_application/test_student_leave_application.js
index d7a6973..5af9f5d 100644
--- a/erpnext/schools/doctype/student_leave_application/test_student_leave_application.js
+++ b/erpnext/education/doctype/student_leave_application/test_student_leave_application.js
@@ -1,5 +1,5 @@
-// Testing Attendance Module in Schools
-QUnit.module('schools');
+// Testing Attendance Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Leave Application', function(assert){
assert.expect(4);
diff --git a/erpnext/schools/doctype/student_leave_application/test_student_leave_application.py b/erpnext/education/doctype/student_leave_application/test_student_leave_application.py
similarity index 100%
rename from erpnext/schools/doctype/student_leave_application/test_student_leave_application.py
rename to erpnext/education/doctype/student_leave_application/test_student_leave_application.py
diff --git a/erpnext/schools/doctype/student_log/__init__.py b/erpnext/education/doctype/student_log/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_log/__init__.py
rename to erpnext/education/doctype/student_log/__init__.py
diff --git a/erpnext/schools/doctype/student_log/student_log.js b/erpnext/education/doctype/student_log/student_log.js
similarity index 100%
rename from erpnext/schools/doctype/student_log/student_log.js
rename to erpnext/education/doctype/student_log/student_log.js
diff --git a/erpnext/schools/doctype/student_admission/student_admission.json b/erpnext/education/doctype/student_log/student_log.json
similarity index 83%
copy from erpnext/schools/doctype/student_admission/student_admission.json
copy to erpnext/education/doctype/student_log/student_log.json
index c35d5be..9d55bb9 100644
--- a/erpnext/schools/doctype/student_admission/student_admission.json
+++ b/erpnext/education/doctype/student_log/student_log.json
@@ -1,16 +1,17 @@
{
"allow_copy": 0,
- "allow_guest_to_view": 1,
+ "allow_guest_to_view": 0,
"allow_import": 0,
- "allow_rename": 1,
- "autoname": "",
+ "allow_rename": 0,
+ "autoname": "SLog.####",
"beta": 0,
- "creation": "2016-09-13 03:05:27.154713",
+ "creation": "2016-07-29 03:27:22.451772",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
- "document_type": "Document",
+ "document_type": "",
"editable_grid": 1,
+ "engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
@@ -18,18 +19,50 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "title",
- "fieldtype": "Data",
+ "fieldname": "student",
+ "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": "Title",
+ "in_standard_filter": 1,
+ "label": "Student",
"length": 0,
"no_copy": 0,
+ "options": "Student",
+ "permlevel": 0,
+ "precision": "",
+ "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": "student_name",
+ "fieldtype": "Read Only",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Student Name",
+ "length": 0,
+ "no_copy": 0,
+ "options": "student.title",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -48,19 +81,19 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "depends_on": "",
- "fieldname": "route",
- "fieldtype": "Data",
+ "fieldname": "type",
+ "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": "Route",
+ "in_list_view": 1,
+ "in_standard_filter": 1,
+ "label": "Type",
"length": 0,
- "no_copy": 1,
+ "no_copy": 0,
+ "options": "General\nAcademic\nMedical\nAchievement",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -71,7 +104,7 @@
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
- "unique": 1
+ "unique": 0
},
{
"allow_bulk_edit": 0,
@@ -79,16 +112,16 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "application_form_route",
- "fieldtype": "Data",
+ "fieldname": "date",
+ "fieldtype": "Date",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
- "in_list_view": 0,
+ "in_list_view": 1,
"in_standard_filter": 0,
- "label": "Application Form Route",
+ "label": "Date",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -98,7 +131,7 @@
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
- "reqd": 1,
+ "reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
@@ -145,11 +178,11 @@
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Academic Year",
"length": 0,
- "no_copy": 1,
+ "no_copy": 0,
"options": "Academic Year",
"permlevel": 0,
"precision": "",
@@ -158,36 +191,6 @@
"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": "admission_start_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Admission Start Date",
- "length": 0,
- "no_copy": 1,
- "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,
@@ -199,8 +202,8 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "admission_end_date",
- "fieldtype": "Date",
+ "fieldname": "academic_term",
+ "fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -208,39 +211,72 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Admission End Date",
- "length": 0,
- "no_copy": 1,
- "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": "published",
- "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": "Publish on website",
+ "label": "Academic Term",
"length": 0,
"no_copy": 0,
+ "options": "Academic Term",
+ "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": "program",
+ "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": "Program",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Program",
+ "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": "student_batch",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Student Batch",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Student Batch Name",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -268,7 +304,6 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Eligibility and Details",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -289,47 +324,16 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "program_details",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Eligibility and Details",
- "length": 0,
- "no_copy": 0,
- "options": "Student Admission Program",
- "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": "introduction",
+ "fieldname": "log",
"fieldtype": "Text Editor",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
- "in_global_search": 0,
+ "in_global_search": 1,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Introduction",
+ "label": "Log",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -345,21 +349,20 @@
"unique": 0
}
],
- "has_web_view": 1,
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
- "is_published_field": "published",
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-10-02 15:16:44.386000",
+ "modified": "2017-11-10 19:04:50.483773",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "Student Admission",
+ "module": "Education",
+ "name": "Student Log",
"name_case": "",
"owner": "Administrator",
"permissions": [
@@ -388,11 +391,10 @@
"read_only": 0,
"read_only_onload": 0,
"restrict_to_domain": "Education",
- "route": "admissions",
- "show_name_in_global_search": 1,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
- "title_field": "title",
+ "title_field": "student_name",
"track_changes": 0,
- "track_seen": 0
+ "track_seen": 1
}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_log/student_log.py b/erpnext/education/doctype/student_log/student_log.py
similarity index 100%
rename from erpnext/schools/doctype/student_log/student_log.py
rename to erpnext/education/doctype/student_log/student_log.py
diff --git a/erpnext/schools/doctype/student_log/test_student_log.js b/erpnext/education/doctype/student_log/test_student_log.js
similarity index 94%
rename from erpnext/schools/doctype/student_log/test_student_log.js
rename to erpnext/education/doctype/student_log/test_student_log.js
index 8f8d152..5775369 100644
--- a/erpnext/schools/doctype/student_log/test_student_log.js
+++ b/erpnext/education/doctype/student_log/test_student_log.js
@@ -1,5 +1,5 @@
-// Testing Student Module in Schools
-QUnit.module('schools');
+// Testing Student Module in Education
+QUnit.module('education');
QUnit.test('Test: Student Log', function(assert){
assert.expect(9);
diff --git a/erpnext/schools/doctype/student_log/test_student_log.py b/erpnext/education/doctype/student_log/test_student_log.py
similarity index 100%
rename from erpnext/schools/doctype/student_log/test_student_log.py
rename to erpnext/education/doctype/student_log/test_student_log.py
diff --git a/erpnext/schools/doctype/student_sibling/__init__.py b/erpnext/education/doctype/student_sibling/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_sibling/__init__.py
rename to erpnext/education/doctype/student_sibling/__init__.py
diff --git a/erpnext/schools/doctype/student_sibling/student_sibling.json b/erpnext/education/doctype/student_sibling/student_sibling.json
similarity index 95%
rename from erpnext/schools/doctype/student_sibling/student_sibling.json
rename to erpnext/education/doctype/student_sibling/student_sibling.json
index fb698d9..22b7182 100644
--- a/erpnext/schools/doctype/student_sibling/student_sibling.json
+++ b/erpnext/education/doctype/student_sibling/student_sibling.json
@@ -12,6 +12,7 @@
"editable_grid": 0,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -42,6 +43,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -72,6 +74,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -103,6 +106,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -131,6 +135,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -162,6 +167,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -192,6 +198,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -221,6 +228,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -261,9 +269,9 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-03-08 11:26:41.717041",
+ "modified": "2017-11-10 19:05:24.999063",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Sibling",
"name_case": "",
"owner": "Administrator",
diff --git a/erpnext/schools/doctype/student_sibling/student_sibling.py b/erpnext/education/doctype/student_sibling/student_sibling.py
similarity index 100%
rename from erpnext/schools/doctype/student_sibling/student_sibling.py
rename to erpnext/education/doctype/student_sibling/student_sibling.py
diff --git a/erpnext/schools/doctype/student_siblings/__init__.py b/erpnext/education/doctype/student_siblings/__init__.py
similarity index 100%
rename from erpnext/schools/doctype/student_siblings/__init__.py
rename to erpnext/education/doctype/student_siblings/__init__.py
diff --git a/erpnext/schools/doctype/student_siblings/student_siblings.json b/erpnext/education/doctype/student_siblings/student_siblings.json
similarity index 81%
rename from erpnext/schools/doctype/student_siblings/student_siblings.json
rename to erpnext/education/doctype/student_siblings/student_siblings.json
index 4f1ed02..0fdc2fd 100644
--- a/erpnext/schools/doctype/student_siblings/student_siblings.json
+++ b/erpnext/education/doctype/student_siblings/student_siblings.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
@@ -11,6 +12,7 @@
"editable_grid": 1,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -21,7 +23,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
+ "in_standard_filter": 0,
"label": "Name",
"length": 0,
"no_copy": 0,
@@ -31,6 +35,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
@@ -38,6 +43,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -48,7 +54,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Gender",
"length": 0,
"no_copy": 0,
@@ -58,6 +66,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -65,6 +74,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -75,7 +85,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Date of Birth",
"length": 0,
"no_copy": 0,
@@ -84,6 +96,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -91,19 +104,19 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2016-09-01 14:41:23.824083",
+ "modified": "2017-11-10 19:05:46.408887",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Siblings",
"name_case": "",
"owner": "Administrator",
@@ -111,7 +124,9 @@
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_siblings/student_siblings.py b/erpnext/education/doctype/student_siblings/student_siblings.py
similarity index 100%
rename from erpnext/schools/doctype/student_siblings/student_siblings.py
rename to erpnext/education/doctype/student_siblings/student_siblings.py
diff --git a/erpnext/schools/report/__init__.py b/erpnext/education/report/__init__.py
similarity index 100%
rename from erpnext/schools/report/__init__.py
rename to erpnext/education/report/__init__.py
diff --git a/erpnext/schools/report/absent_student_report/__init__.py b/erpnext/education/report/absent_student_report/__init__.py
similarity index 100%
rename from erpnext/schools/report/absent_student_report/__init__.py
rename to erpnext/education/report/absent_student_report/__init__.py
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.js b/erpnext/education/report/absent_student_report/absent_student_report.js
similarity index 100%
rename from erpnext/schools/report/absent_student_report/absent_student_report.js
rename to erpnext/education/report/absent_student_report/absent_student_report.js
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.json b/erpnext/education/report/absent_student_report/absent_student_report.json
similarity index 86%
rename from erpnext/schools/report/absent_student_report/absent_student_report.json
rename to erpnext/education/report/absent_student_report/absent_student_report.json
index 3a2e85f..0d5eeba 100644
--- a/erpnext/schools/report/absent_student_report/absent_student_report.json
+++ b/erpnext/education/report/absent_student_report/absent_student_report.json
@@ -7,9 +7,9 @@
"doctype": "Report",
"idx": 3,
"is_standard": "Yes",
- "modified": "2017-02-24 20:03:01.035036",
+ "modified": "2017-11-10 19:42:36.457449",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Absent Student Report",
"owner": "Administrator",
"ref_doctype": "Student Attendance",
diff --git a/erpnext/schools/report/absent_student_report/absent_student_report.py b/erpnext/education/report/absent_student_report/absent_student_report.py
similarity index 100%
rename from erpnext/schools/report/absent_student_report/absent_student_report.py
rename to erpnext/education/report/absent_student_report/absent_student_report.py
diff --git a/erpnext/schools/report/course_wise_assessment_report/__init__.py b/erpnext/education/report/course_wise_assessment_report/__init__.py
similarity index 100%
rename from erpnext/schools/report/course_wise_assessment_report/__init__.py
rename to erpnext/education/report/course_wise_assessment_report/__init__.py
diff --git a/erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.html b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.html
similarity index 100%
rename from erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.html
rename to erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.html
diff --git a/erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.js b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.js
similarity index 100%
rename from erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.js
rename to erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.js
diff --git a/erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.json b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
similarity index 87%
rename from erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.json
rename to erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
index 6b089d2..e153f8c 100644
--- a/erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.json
+++ b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.json
@@ -7,9 +7,9 @@
"doctype": "Report",
"idx": 0,
"is_standard": "Yes",
- "modified": "2017-05-05 14:47:18.080385",
+ "modified": "2017-11-10 19:41:46.641227",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Course wise Assessment Report",
"owner": "Administrator",
"ref_doctype": "Assessment Result",
diff --git a/erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.py b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.py
similarity index 98%
rename from erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.py
rename to erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.py
index 492d738..ff17238 100644
--- a/erpnext/schools/report/course_wise_assessment_report/course_wise_assessment_report.py
+++ b/erpnext/education/report/course_wise_assessment_report/course_wise_assessment_report.py
@@ -6,7 +6,7 @@
from frappe import _
from frappe.utils import flt
from collections import defaultdict
-from erpnext.schools.api import get_grade
+from erpnext.education.api import get_grade
def execute(filters=None):
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/__init__.py b/erpnext/education/report/student_and_guardian_contact_details/__init__.py
similarity index 100%
rename from erpnext/schools/report/student_and_guardian_contact_details/__init__.py
rename to erpnext/education/report/student_and_guardian_contact_details/__init__.py
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js b/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js
similarity index 100%
rename from erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js
rename to erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.js
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json b/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
similarity index 88%
rename from erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
rename to erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
index e822549..fe7d158 100644
--- a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
+++ b/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.json
@@ -7,9 +7,9 @@
"doctype": "Report",
"idx": 0,
"is_standard": "Yes",
- "modified": "2017-03-27 18:34:08.867661",
+ "modified": "2017-11-10 19:42:30.300729",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student and Guardian Contact Details",
"owner": "Administrator",
"ref_doctype": "Program Enrollment",
diff --git a/erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py b/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py
similarity index 100%
rename from erpnext/schools/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py
rename to erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py
diff --git a/erpnext/schools/report/student_batch_wise_attendance/__init__.py b/erpnext/education/report/student_batch_wise_attendance/__init__.py
similarity index 100%
rename from erpnext/schools/report/student_batch_wise_attendance/__init__.py
rename to erpnext/education/report/student_batch_wise_attendance/__init__.py
diff --git a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.js b/erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.js
similarity index 100%
rename from erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.js
rename to erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.js
diff --git a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.json b/erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.json
similarity index 87%
rename from erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.json
rename to erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.json
index 7851cbb..eb547b7 100644
--- a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.json
+++ b/erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.json
@@ -7,9 +7,9 @@
"doctype": "Report",
"idx": 2,
"is_standard": "Yes",
- "modified": "2017-02-24 20:02:33.773899",
+ "modified": "2017-11-10 19:41:12.328346",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Batch-Wise Attendance",
"owner": "Administrator",
"ref_doctype": "Student Attendance",
diff --git a/erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.py b/erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.py
similarity index 100%
rename from erpnext/schools/report/student_batch_wise_attendance/student_batch_wise_attendance.py
rename to erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.py
diff --git a/erpnext/schools/report/student_fee_collection/__init__.py b/erpnext/education/report/student_fee_collection/__init__.py
similarity index 100%
rename from erpnext/schools/report/student_fee_collection/__init__.py
rename to erpnext/education/report/student_fee_collection/__init__.py
diff --git a/erpnext/schools/report/student_fee_collection/student_fee_collection.json b/erpnext/education/report/student_fee_collection/student_fee_collection.json
similarity index 91%
rename from erpnext/schools/report/student_fee_collection/student_fee_collection.json
rename to erpnext/education/report/student_fee_collection/student_fee_collection.json
index 5c63765..07fc27c 100644
--- a/erpnext/schools/report/student_fee_collection/student_fee_collection.json
+++ b/erpnext/education/report/student_fee_collection/student_fee_collection.json
@@ -7,9 +7,9 @@
"doctype": "Report",
"idx": 3,
"is_standard": "Yes",
- "modified": "2017-10-25 11:59:26.003899",
+ "modified": "2017-11-10 19:41:37.320224",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Fee Collection",
"owner": "Administrator",
"query": "SELECT\n student as \"Student:Link/Student:200\",\n student_name as \"Student Name::200\",\n sum(paid_amount) as \"Paid Amount:Currency:150\",\n sum(outstanding_amount) as \"Outstanding Amount:Currency:150\",\n sum(grand_total) as \"Grand Total:Currency:150\"\nFROM\n `tabFees` \nGROUP BY\n student",
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/__init__.py b/erpnext/education/report/student_monthly_attendance_sheet/__init__.py
similarity index 100%
rename from erpnext/schools/report/student_monthly_attendance_sheet/__init__.py
rename to erpnext/education/report/student_monthly_attendance_sheet/__init__.py
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js b/erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
similarity index 89%
rename from erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
rename to erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
index 943238e..402bb02 100644
--- a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
+++ b/erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.js
@@ -29,7 +29,7 @@
"onload": function() {
return frappe.call({
- method: "erpnext.schools.report.student_monthly_attendance_sheet.student_monthly_attendance_sheet.get_attendance_years",
+ method: "erpnext.education.report.student_monthly_attendance_sheet.student_monthly_attendance_sheet.get_attendance_years",
callback: function(r) {
var year_filter = frappe.query_report_filters_by_name.year;
year_filter.df.options = r.message;
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json b/erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
similarity index 87%
rename from erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
rename to erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
index a6531de..e10f190 100644
--- a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
+++ b/erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.json
@@ -7,9 +7,9 @@
"doctype": "Report",
"idx": 3,
"is_standard": "Yes",
- "modified": "2017-02-24 20:02:41.910358",
+ "modified": "2017-11-10 19:42:43.376658",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "Student Monthly Attendance Sheet",
"owner": "Administrator",
"ref_doctype": "Student Attendance",
diff --git a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py b/erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
similarity index 98%
rename from erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
rename to erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
index d869cec..0c7baa8 100644
--- a/erpnext/schools/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
+++ b/erpnext/education/report/student_monthly_attendance_sheet/student_monthly_attendance_sheet.py
@@ -6,7 +6,7 @@
from frappe.utils import cstr, cint, getdate, get_first_day, get_last_day, date_diff, add_days
from frappe import msgprint, _
from calendar import monthrange
-from erpnext.schools.api import get_student_group_students
+from erpnext.education.api import get_student_group_students
def execute(filters=None):
if not filters: filters = {}
diff --git a/erpnext/education/setup.py b/erpnext/education/setup.py
new file mode 100644
index 0000000..ed1d69e
--- /dev/null
+++ b/erpnext/education/setup.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+
+import frappe
+from erpnext.setup.utils import insert_record
+
+
+def setup_education():
+ if frappe.db.exists('Academic Year', '2015-16'):
+ # already setup
+ return
+ create_academic_sessions()
+
+def create_academic_sessions():
+ data = [
+ {"doctype": "Academic Year", "academic_year_name": "2015-16"},
+ {"doctype": "Academic Year", "academic_year_name": "2016-17"},
+ {"doctype": "Academic Year", "academic_year_name": "2017-18"},
+ {"doctype": "Academic Year", "academic_year_name": "2018-19"},
+ {"doctype": "Academic Term", "academic_year": "2016-17", "term_name": "Semester 1"},
+ {"doctype": "Academic Term", "academic_year": "2016-17", "term_name": "Semester 2"},
+ {"doctype": "Academic Term", "academic_year": "2017-18", "term_name": "Semester 1"},
+ {"doctype": "Academic Term", "academic_year": "2017-18", "term_name": "Semester 2"}
+ ]
+ insert_record(data)
diff --git a/erpnext/schools/utils.py b/erpnext/education/utils.py
similarity index 100%
rename from erpnext/schools/utils.py
rename to erpnext/education/utils.py
diff --git a/erpnext/schools/web_form/__init__.py b/erpnext/education/web_form/__init__.py
similarity index 100%
rename from erpnext/schools/web_form/__init__.py
rename to erpnext/education/web_form/__init__.py
diff --git a/erpnext/schools/web_form/student_applicant/__init__.py b/erpnext/education/web_form/student_applicant/__init__.py
similarity index 100%
rename from erpnext/schools/web_form/student_applicant/__init__.py
rename to erpnext/education/web_form/student_applicant/__init__.py
diff --git a/erpnext/schools/web_form/student_applicant/student_applicant.js b/erpnext/education/web_form/student_applicant/student_applicant.js
similarity index 100%
rename from erpnext/schools/web_form/student_applicant/student_applicant.js
rename to erpnext/education/web_form/student_applicant/student_applicant.js
diff --git a/erpnext/schools/web_form/student_applicant/student_applicant.json b/erpnext/education/web_form/student_applicant/student_applicant.json
similarity index 97%
rename from erpnext/schools/web_form/student_applicant/student_applicant.json
rename to erpnext/education/web_form/student_applicant/student_applicant.json
index f87a147..b1ad754 100644
--- a/erpnext/schools/web_form/student_applicant/student_applicant.json
+++ b/erpnext/education/web_form/student_applicant/student_applicant.json
@@ -16,9 +16,9 @@
"is_standard": 1,
"login_required": 1,
"max_attachment_size": 0,
- "modified": "2017-02-21 04:44:46.022738",
+ "modified": "2017-02-21 05:44:46.022738",
"modified_by": "Administrator",
- "module": "Schools",
+ "module": "Education",
"name": "student-applicant",
"owner": "Administrator",
"payment_button_label": "Buy Now",
diff --git a/erpnext/schools/web_form/student_applicant/student_applicant.py b/erpnext/education/web_form/student_applicant/student_applicant.py
similarity index 100%
rename from erpnext/schools/web_form/student_applicant/student_applicant.py
rename to erpnext/education/web_form/student_applicant/student_applicant.py
diff --git a/erpnext/healthcare/setup.py b/erpnext/healthcare/setup.py
index 69a92b3..fca1270 100644
--- a/erpnext/healthcare/setup.py
+++ b/erpnext/healthcare/setup.py
@@ -2,6 +2,7 @@
import frappe
from frappe import _
+from erpnext.setup.utils import insert_record
def setup_healthcare():
if frappe.db.exists('Medical Department', 'Cardiology'):
@@ -259,17 +260,3 @@
{"doctype": "Sensitivity", "sensitivity": _("Intermediate")}
]
insert_record(records)
-
-def insert_record(records):
- for r in records:
- doc = frappe.new_doc(r.get("doctype"))
- doc.update(r)
- try:
- doc.insert(ignore_permissions=True)
- except frappe.DuplicateEntryError, e:
- # pass DuplicateEntryError and continue
- if e.args and e.args[0]==doc.doctype and e.args[1]==doc.name:
- # make sure DuplicateEntryError is for the exact same doc and not a related doc
- pass
- else:
- raise
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 44a3b18..d929428 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -51,7 +51,7 @@
calendars = ["Task", "Production Order", "Leave Application", "Sales Order", "Holiday List"]
-fixtures = ["Web Form"]
+
domains = {
'Distribution': 'erpnext.domains.distribution',
diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.py b/erpnext/hr/doctype/expense_claim/test_expense_claim.py
index b813537..9b4832a 100644
--- a/erpnext/hr/doctype/expense_claim/test_expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/test_expense_claim.py
@@ -8,6 +8,7 @@
from erpnext.hr.doctype.expense_claim.expense_claim import make_bank_entry
test_records = frappe.get_test_records('Expense Claim')
+test_dependencies = ['Employee']
class TestExpenseClaim(unittest.TestCase):
def test_total_expense_claim_for_project(self):
diff --git a/erpnext/hub_node/api.py b/erpnext/hub_node/api.py
new file mode 100644
index 0000000..b32efd9
--- /dev/null
+++ b/erpnext/hub_node/api.py
@@ -0,0 +1,29 @@
+# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors and contributors
+# For license information, please see license.txt
+
+
+import frappe, json
+from frappe.utils import now, nowdate
+from erpnext.hub_node.doctype.hub_settings.hub_settings import get_hub_settings
+
+# API wrapper
+@frappe.whitelist(allow_guest=True)
+def call_method(access_token, method, message):
+ try:
+ args = json.loads(message)
+ if args:
+ return globals()[method](access_token, args)
+ else:
+ return globals()[method](access_token)
+ except:
+ print("Client Exception")
+ print(frappe.get_traceback())
+
+def disable_and_suspend_hub_user(access_token):
+ hub_settings = get_hub_settings()
+ hub_settings.publish = 0
+ hub_settings.publish_pricing = 0
+ hub_settings.publish_availability = 0
+ hub_settings.suspended = 1
+ hub_settings.enabled = 0
+ hub_settings.save(ignore_permissions=True)
diff --git a/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/__init__.py b/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/__init__.py
index 79769ee..0ea1bc4 100644
--- a/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/__init__.py
+++ b/erpnext/hub_node/data_migration_mapping/hub_message_to_lead/__init__.py
@@ -20,7 +20,7 @@
opportunity = frappe.get_doc({
'doctype': 'Opportunity',
'naming_series': 'OPTY-',
- 'enquiry_type': 'Sales',
+ 'opportunity_type': 'Hub',
'enquiry_from': 'Lead',
'status': 'Open',
'lead': lead.name,
diff --git a/erpnext/manufacturing/doctype/production_order/test_production_order.js b/erpnext/manufacturing/doctype/production_order/test_production_order.js
index 32cc3ef..670f0b0 100644
--- a/erpnext/manufacturing/doctype/production_order/test_production_order.js
+++ b/erpnext/manufacturing/doctype/production_order/test_production_order.js
@@ -16,7 +16,7 @@
frappe.run_serially([
// test production order
() => frappe.set_route("List", "Production Order"),
- () => frappe.timeout(0.5),
+ () => frappe.timeout(3),
// Create a laptop production order
() => {
@@ -29,7 +29,7 @@
{fg_warehouse: "Finished Goods - FT"}
]);
},
- () => frappe.timeout(2),
+ () => frappe.timeout(3),
() => {
assert.equal(cur_frm.doc.planned_operating_cost, cur_frm.doc.total_operating_cost,
"Total and Planned Cost is equal");
@@ -54,7 +54,7 @@
() => cur_frm.savesubmit(),
() => frappe.timeout(1),
() => frappe.click_button('Yes'),
- () => frappe.timeout(1),
+ () => frappe.timeout(2.5),
// Confirm the production order timesheet, save and submit it
() => frappe.click_link("TS-00"),
@@ -62,12 +62,10 @@
() => frappe.click_button("Submit"),
() => frappe.timeout(1),
() => frappe.click_button("Yes"),
- () => frappe.timeout(2),
+ () => frappe.timeout(2.5),
// Start the production order process
() => frappe.set_route("List", "Production Order"),
- () => frappe.timeout(.5),
- () => frappe.set_route("List", "Production Order"),
() => frappe.timeout(2),
() => frappe.click_link("Laptop"),
() => frappe.timeout(1),
diff --git a/erpnext/modules.txt b/erpnext/modules.txt
index 79ded14..e918198 100644
--- a/erpnext/modules.txt
+++ b/erpnext/modules.txt
@@ -13,7 +13,7 @@
Hub Node
Portal
Maintenance
-Schools
+Education
Regional
Healthcare
Restaurant
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 9d055b3..b7a4099 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -334,6 +334,7 @@
execute:frappe.db.sql("update `tabEmployee` set prefered_contact_email = IFNULL(prefered_contact_email,'') ")
execute:frappe.reload_doctype("Salary Slip")
execute:frappe.db.sql("update `tabSalary Slip` set posting_date=creation")
+execute:frappe.reload_doc("stock", "doctype", "stock_settings")
erpnext.patches.v8_0.create_domain_docs #16-05-2017
erpnext.patches.v7_1.update_portal_roles
erpnext.patches.v7_1.set_total_amount_currency_in_je
@@ -460,5 +461,12 @@
erpnext.patches.v9_0.set_pos_profile_name
erpnext.patches.v9_0.remove_non_existing_warehouse_from_stock_settings
execute:frappe.delete_doc_if_exists("DocType", "Program Fee")
+erpnext.patches.v8_10.update_gl_due_date_for_pi_and_si
+erpnext.patches.v8_10.change_default_customer_credit_days
erpnext.patches.v9_0.update_employee_loan_details
-erpnext.patches.v9_2.delete_healthcare_domain_default_items
\ No newline at end of file
+erpnext.patches.v9_2.delete_healthcare_domain_default_items
+erpnext.patches.v9_1.create_issue_opportunity_type
+erpnext.patches.v9_2.rename_translated_domains_in_en
+erpnext.patches.v9_0.set_shipping_type_for_existing_shipping_rules
+erpnext.patches.v9_0.update_multi_uom_fields_in_material_request
+erpnext.patches.v10_0.rename_schools_to_education
diff --git a/erpnext/schools/__init__.py b/erpnext/patches/v10_0/__init__.py
similarity index 100%
copy from erpnext/schools/__init__.py
copy to erpnext/patches/v10_0/__init__.py
diff --git a/erpnext/patches/v10_0/rename_schools_to_education.py b/erpnext/patches/v10_0/rename_schools_to_education.py
new file mode 100644
index 0000000..85c25a8
--- /dev/null
+++ b/erpnext/patches/v10_0/rename_schools_to_education.py
@@ -0,0 +1,32 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+ # rename the School module as Education
+
+ # rename the school module
+ if frappe.db.exists('Module Def', 'Schools') and not frappe.db.exists('Module Def', 'Education'):
+ frappe.rename_doc("Module Def", "Schools", "Education")
+
+ # delete the school module
+ if frappe.db.exists('Module Def', 'Schools') and frappe.db.exists('Module Def', 'Education'):
+ frappe.db.sql("""delete from `tabModule Def` where module_name = 'Schools'""")
+
+
+ # rename "School Settings" to the "Education Settings
+ if frappe.db.exists('DocType', 'School Settings'):
+ frappe.rename_doc("DocType", "School Settings", "Education Settings", force=True)
+ frappe.reload_doc("education", "doctype", "education_settings")
+
+ # delete the discussion web form if exists
+ if frappe.db.exists('Web Form', 'Discussion'):
+ frappe.db.sql("""delete from `tabWeb Form` where name = 'discussion'""")
+
+ # rename the select option field from "School Bus" to "Institute's Bus"
+ frappe.reload_doc("education", "doctype", "Program Enrollment")
+ if "mode_of_transportation" in frappe.db.get_table_columns("Program Enrollment"):
+ frappe.db.sql("""update `tabProgram Enrollment` set mode_of_transportation = "Institute's Bus"
+ where mode_of_transportation = "School Bus" """)
diff --git a/erpnext/patches/v7_0/make_guardian.py b/erpnext/patches/v7_0/make_guardian.py
index 0839c4f..519969b 100644
--- a/erpnext/patches/v7_0/make_guardian.py
+++ b/erpnext/patches/v7_0/make_guardian.py
@@ -5,9 +5,15 @@
if frappe.db.exists("DocType", "Student"):
student_table_cols = frappe.db.get_table_columns("Student")
if "father_name" in student_table_cols:
- frappe.reload_doc("schools", "doctype", "student")
- frappe.reload_doc("schools", "doctype", "guardian")
- frappe.reload_doc("schools", "doctype", "guardian_interest")
+
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", "student")
+ # frappe.reload_doc("schools", "doctype", "guardian")
+ # frappe.reload_doc("schools", "doctype", "guardian_interest")
+
+ frappe.reload_doc("education", "doctype", "student")
+ frappe.reload_doc("education", "doctype", "guardian")
+ frappe.reload_doc("education", "doctype", "guardian_interest")
frappe.reload_doc("hr", "doctype", "interest")
fields = ["name", "father_name", "mother_name"]
diff --git a/erpnext/patches/v7_0/migrate_schools_to_erpnext.py b/erpnext/patches/v7_0/migrate_schools_to_erpnext.py
index f64f400..9137b5a 100644
--- a/erpnext/patches/v7_0/migrate_schools_to_erpnext.py
+++ b/erpnext/patches/v7_0/migrate_schools_to_erpnext.py
@@ -13,13 +13,20 @@
frappe.db.sql("""delete from `tabDesktop Icon`""")
if not frappe.db.exists('Module Def', 'Schools') and frappe.db.exists('Module Def', 'Academics'):
- frappe.rename_doc("Module Def", "Academics", "Schools")
+
+ # 'Schools' module changed to the 'Education'
+ # frappe.rename_doc("Module Def", "Academics", "Schools")
+
+ frappe.rename_doc("Module Def", "Academics", "Education")
remove_from_installed_apps("schools")
def reload_doctypes_for_schools_icons():
- base_path = frappe.get_app_path('erpnext', 'schools', 'doctype')
+ # 'Schools' module changed to the 'Education'
+ # base_path = frappe.get_app_path('erpnext', 'schools', 'doctype')
+
+ base_path = frappe.get_app_path('erpnext', 'education', 'doctype')
for doctype in os.listdir(base_path):
if os.path.exists(os.path.join(base_path, doctype, doctype + '.json')) \
and doctype not in ("fee_component", "assessment", "assessment_result"):
- frappe.reload_doc('schools', 'doctype', doctype)
\ No newline at end of file
+ frappe.reload_doc('education', 'doctype', doctype)
\ No newline at end of file
diff --git a/erpnext/patches/v7_0/rename_examination_to_assessment.py b/erpnext/patches/v7_0/rename_examination_to_assessment.py
index 1d6e688..dc248de 100644
--- a/erpnext/patches/v7_0/rename_examination_to_assessment.py
+++ b/erpnext/patches/v7_0/rename_examination_to_assessment.py
@@ -10,8 +10,14 @@
if frappe.db.exists("DocType", "Examination"):
frappe.rename_doc("DocType", "Examination", "Assessment")
frappe.rename_doc("DocType", "Examination Result", "Assessment Result")
- frappe.reload_doc("schools", "doctype", "assessment")
- frappe.reload_doc("schools", "doctype", "assessment_result")
+
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", "assessment")
+ # frappe.reload_doc("schools", "doctype", "assessment_result")
+
+ frappe.reload_doc("education", "doctype", "assessment")
+ frappe.reload_doc("education", "doctype", "assessment_result")
+
rename_field("Assessment", "exam_name", "assessment_name")
rename_field("Assessment", "exam_code", "assessment_code")
diff --git a/erpnext/patches/v7_0/set_portal_settings.py b/erpnext/patches/v7_0/set_portal_settings.py
index 9bae1c5..5259d4f 100644
--- a/erpnext/patches/v7_0/set_portal_settings.py
+++ b/erpnext/patches/v7_0/set_portal_settings.py
@@ -8,7 +8,9 @@
def execute():
frappe.reload_doctype('Role')
for dt in ("assessment", "course", "fees"):
- frappe.reload_doc("schools", "doctype", dt)
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", dt)
+ frappe.reload_doc("education", "doctype", dt)
for dt in ("domain", "has_domain", "domain_settings"):
frappe.reload_doc("core", "doctype", dt)
diff --git a/erpnext/patches/v7_1/set_student_guardian.py b/erpnext/patches/v7_1/set_student_guardian.py
index e64279b..0942505 100644
--- a/erpnext/patches/v7_1/set_student_guardian.py
+++ b/erpnext/patches/v7_1/set_student_guardian.py
@@ -2,9 +2,15 @@
def execute():
if frappe.db.exists("DocType", "Guardian"):
- frappe.reload_doc("schools", "doctype", "student")
- frappe.reload_doc("schools", "doctype", "student_guardian")
- frappe.reload_doc("schools", "doctype", "student_sibling")
+
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", "student")
+ # frappe.reload_doc("schools", "doctype", "student_guardian")
+ # frappe.reload_doc("schools", "doctype", "student_sibling")
+
+ frappe.reload_doc("education", "doctype", "student")
+ frappe.reload_doc("education", "doctype", "student_guardian")
+ frappe.reload_doc("education", "doctype", "student_sibling")
if "student" not in frappe.db.get_table_columns("Guardian"):
return
guardian = frappe.get_all("Guardian", fields=["name", "student"])
diff --git a/erpnext/patches/v7_2/mark_students_active.py b/erpnext/patches/v7_2/mark_students_active.py
index 3513cde..0a2f2d3 100644
--- a/erpnext/patches/v7_2/mark_students_active.py
+++ b/erpnext/patches/v7_2/mark_students_active.py
@@ -1,5 +1,8 @@
import frappe
def execute():
- frappe.reload_doc('schools', 'doctype', 'student_group_student')
- frappe.db.sql("update `tabStudent Group Student` set active=1")
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc('schools', 'doctype', 'student_group_student')
+
+ frappe.reload_doc('education', 'doctype', 'student_group_student')
+ frappe.db.sql("update `tabStudent Group Student` set active=1")
diff --git a/erpnext/patches/v7_2/rename_evaluation_criteria.py b/erpnext/patches/v7_2/rename_evaluation_criteria.py
index a45604f..d749760 100644
--- a/erpnext/patches/v7_2/rename_evaluation_criteria.py
+++ b/erpnext/patches/v7_2/rename_evaluation_criteria.py
@@ -2,28 +2,37 @@
from frappe.model.utils.rename_field import rename_field
def execute():
+ # 'Schools' module changed to the 'Education'
+
+
frappe.rename_doc("DocType", "Evaluation Criteria", "Assessment Criteria", force=True)
- frappe.reload_doc("schools", "doctype", "assessment_criteria")
+ # frappe.reload_doc("schools", "doctype", "assessment_criteria")
+ frappe.reload_doc("education", "doctype", "assessment_criteria")
if 'evaluation_criteria' in frappe.db.get_table_columns('Assessment Criteria'):
rename_field("Assessment Criteria", "evaluation_criteria", "assessment_criteria")
frappe.rename_doc("DocType", "Assessment Evaluation Criteria", "Assessment Plan Criteria", force=True)
- frappe.reload_doc("schools", "doctype", "assessment_plan_criteria")
+ # frappe.reload_doc("schools", "doctype", "assessment_plan_criteria")
+ frappe.reload_doc("education", "doctype", "assessment_plan_criteria")
if 'evaluation_criteria' in frappe.db.get_table_columns('Assessment Plan'):
rename_field("Assessment Plan Criteria", "evaluation_criteria", "assessment_criteria")
- frappe.reload_doc("schools", "doctype", "assessment_plan")
+ # frappe.reload_doc("schools", "doctype", "assessment_plan")
+ frappe.reload_doc("education", "doctype", "assessment_plan")
rename_field("Assessment Plan", "evaluation_criterias", "assessment_criteria")
- frappe.reload_doc("schools", "doctype", "assessment_result_detail")
+ # frappe.reload_doc("schools", "doctype", "assessment_result_detail")
+ frappe.reload_doc("education", "doctype", "assessment_result_detail")
if 'evaluation_criteria' in frappe.db.get_table_columns('Assessment Result Detail'):
rename_field("Assessment Result Detail", "evaluation_criteria", "assessment_criteria")
frappe.rename_doc("DocType", "Course Evaluation Criteria", "Course Assessment Criteria", force=True)
- frappe.reload_doc("schools", "doctype", "course_assessment_criteria")
+ # frappe.reload_doc("schools", "doctype", "course_assessment_criteria")
+ frappe.reload_doc("education", "doctype", "course_assessment_criteria")
if 'evaluation_criteria' in frappe.db.get_table_columns('Course Assessment Criteria'):
rename_field("Course Assessment Criteria", "evaluation_criteria", "assessment_criteria")
- frappe.reload_doc("schools", "doctype", "course")
+ # frappe.reload_doc("schools", "doctype", "course")
+ frappe.reload_doc("education", "doctype", "course")
if 'evaluation_criteria' in frappe.db.get_table_columns('Course'):
rename_field("Course", "evaluation_criterias", "assessment_criteria")
diff --git a/erpnext/patches/v7_2/update_assessment_modules.py b/erpnext/patches/v7_2/update_assessment_modules.py
index 9075bbf..37ae7c7 100644
--- a/erpnext/patches/v7_2/update_assessment_modules.py
+++ b/erpnext/patches/v7_2/update_assessment_modules.py
@@ -8,21 +8,28 @@
if not frappe.db.exists("DocType", "Grading Scale Interval"):
frappe.rename_doc("DocType", "Grade Interval", "Grading Scale Interval", force=True)
- frappe.reload_doc("schools", "doctype", "grading_scale_interval")
+ # frappe.reload_doc("schools", "doctype", "grading_scale_interval")
+ frappe.reload_doc("education", "doctype", "grading_scale_interval")
if "to_score" in frappe.db.get_table_columns("Grading Scale Interval"):
rename_field("Grading Scale Interval", "to_score", "threshold")
if not frappe.db.exists("DocType", "Assessment Plan"):
frappe.rename_doc("DocType", "Assessment", "Assessment Plan", force=True)
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", "assessment_plan")
+
#Rename Assessment Results
- frappe.reload_doc("schools", "doctype", "assessment_plan")
+ frappe.reload_doc("education", "doctype", "assessment_plan")
if "grading_structure" in frappe.db.get_table_columns("Assessment Plan"):
rename_field("Assessment Plan", "grading_structure", "grading_scale")
- frappe.reload_doc("schools", "doctype", "assessment_result")
- frappe.reload_doc("schools", "doctype", "assessment_result_detail")
- frappe.reload_doc("schools", "doctype", "assessment_criteria")
+ # frappe.reload_doc("schools", "doctype", "assessment_result")
+ # frappe.reload_doc("schools", "doctype", "assessment_result_detail")
+ # frappe.reload_doc("schools", "doctype", "assessment_criteria")
+ frappe.reload_doc("education", "doctype", "assessment_result")
+ frappe.reload_doc("education", "doctype", "assessment_result_detail")
+ frappe.reload_doc("education", "doctype", "assessment_criteria")
for assessment in frappe.get_all("Assessment Plan",
diff --git a/erpnext/patches/v7_2/update_guardian_name_in_student_master.py b/erpnext/patches/v7_2/update_guardian_name_in_student_master.py
index 6ac4073..163e7c3 100644
--- a/erpnext/patches/v7_2/update_guardian_name_in_student_master.py
+++ b/erpnext/patches/v7_2/update_guardian_name_in_student_master.py
@@ -2,8 +2,12 @@
from frappe.model.utils.rename_field import rename_field
def execute():
- frappe.reload_doc("schools", "doctype", "student_guardian")
- student_guardians = frappe.get_all("Student Guardian", fields=["guardian"])
- for student_guardian in student_guardians:
- guardian_name = frappe.db.get_value("Guardian", student_guardian.guardian, "guardian_name")
- frappe.db.sql("update `tabStudent Guardian` set guardian_name = %s where guardian= %s", (guardian_name, student_guardian.guardian))
\ No newline at end of file
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", "student_guardian")
+ frappe.reload_doc("education", "doctype", "student_guardian")
+
+ student_guardians = frappe.get_all("Student Guardian", fields=["guardian"])
+ for student_guardian in student_guardians:
+ guardian_name = frappe.db.get_value("Guardian", student_guardian.guardian, "guardian_name")
+ frappe.db.sql("update `tabStudent Guardian` set guardian_name = %s where guardian= %s",
+ (guardian_name, student_guardian.guardian))
\ No newline at end of file
diff --git a/erpnext/patches/v8_0/merge_student_batch_and_student_group.py b/erpnext/patches/v8_0/merge_student_batch_and_student_group.py
index ca71d36..fb9021f 100644
--- a/erpnext/patches/v8_0/merge_student_batch_and_student_group.py
+++ b/erpnext/patches/v8_0/merge_student_batch_and_student_group.py
@@ -11,7 +11,10 @@
# for converting student batch into student group
for doctype in ["Student Group", "Student Group Student", 'Program Enrollment',
"Student Group Instructor", "Student Attendance", "Student", "Student Batch Name"]:
- frappe.reload_doc("schools", "doctype", frappe.scrub(doctype))
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", frappe.scrub(doctype))
+
+ frappe.reload_doc("education", "doctype", frappe.scrub(doctype))
if frappe.db.table_exists("Student Batch"):
student_batches = frappe.db.sql('''select name as student_group_name, student_batch_name as batch,
diff --git a/erpnext/patches/v8_0/update_sales_cost_in_project.py b/erpnext/patches/v8_0/update_sales_cost_in_project.py
index cc3798e..4f89ba0 100644
--- a/erpnext/patches/v8_0/update_sales_cost_in_project.py
+++ b/erpnext/patches/v8_0/update_sales_cost_in_project.py
@@ -1,12 +1,9 @@
-# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
from __future__ import unicode_literals
import frappe
def execute():
frappe.db.sql("""
update `tabProject` p
- set total_sales_cost = (select sum(base_grand_total)
- from `tabSales Order` where project=p.name and docstatus=1)
+ set total_sales_cost = ifnull((select sum(base_grand_total)
+ from `tabSales Order` where project=p.name and docstatus=1), 0)
""")
\ No newline at end of file
diff --git a/erpnext/schools/__init__.py b/erpnext/patches/v8_10/__init__.py
similarity index 100%
copy from erpnext/schools/__init__.py
copy to erpnext/patches/v8_10/__init__.py
diff --git a/erpnext/patches/v8_10/change_default_customer_credit_days.py b/erpnext/patches/v8_10/change_default_customer_credit_days.py
new file mode 100644
index 0000000..d2bc3ec
--- /dev/null
+++ b/erpnext/patches/v8_10/change_default_customer_credit_days.py
@@ -0,0 +1,88 @@
+from __future__ import unicode_literals
+import frappe
+
+
+def execute():
+ frappe.reload_doc("selling", "doctype", "customer")
+ frappe.reload_doc("buying", "doctype", "supplier")
+ frappe.reload_doc("setup", "doctype", "supplier_type")
+ frappe.reload_doc("accounts", "doctype", "payment_term")
+ frappe.reload_doc("accounts", "doctype", "payment_terms_template_detail")
+ frappe.reload_doc("accounts", "doctype", "payment_terms_template")
+
+ payment_terms = []
+ records = []
+ for doctype in ("Customer", "Supplier", "Supplier Type"):
+ credit_days = frappe.db.sql("""
+ SELECT DISTINCT `credit_days`, `credit_days_based_on`, `name`
+ from `tab{0}`
+ where
+ (credit_days_based_on='Fixed Days' and credit_days is not null)
+ or credit_days_based_on='Last Day of the Next Month'
+ """.format(doctype))
+
+ credit_records = ((record[0], record[1], record[2]) for record in credit_days)
+ for days, based_on, party_name in credit_records:
+ if based_on == "Fixed Days":
+ pyt_template_name = 'Default Payment Term - N{0}'.format(days)
+ else:
+ pyt_template_name = 'Default Payment Term - EO2M'
+
+ if not frappe.db.exists("Payment Terms Template", pyt_template_name):
+ payment_term = make_payment_term(days, based_on)
+ template = make_template(payment_term)
+ else:
+ template = frappe.get_doc("Payment Terms Template", pyt_template_name)
+
+ payment_terms.append('WHEN `name`="%s" THEN "%s"' % (party_name, template.template_name))
+ records.append(party_name)
+
+ begin_query_str = "UPDATE `tab{0}` SET `payment_terms` = CASE ".format(doctype)
+ value_query_str = " ".join(payment_terms)
+ cond_query_str = " ELSE `payment_terms` END WHERE "
+
+ if records:
+ frappe.db.sql(
+ begin_query_str + value_query_str + cond_query_str + '`name` IN %s',
+ (records,)
+ )
+
+
+def make_template(payment_term):
+ doc = frappe.new_doc('Payment Terms Template Detail')
+ doc.payment_term = payment_term.payment_term_name
+ doc.due_date_based_on = payment_term.due_date_based_on
+ doc.invoice_portion = payment_term.invoice_portion
+ doc.description = payment_term.description
+ doc.credit_days = payment_term.credit_days
+ doc.credit_months = payment_term.credit_months
+
+ template = frappe.new_doc('Payment Terms Template')
+ template.template_name = 'Default Payment Term - {0}'.format(payment_term.payment_term_name)
+ template.append('terms', doc)
+ template.save()
+
+ return template
+
+
+def make_payment_term(days, based_on):
+ based_on_map = {
+ 'Fixed Days': 'Day(s) after invoice date',
+ 'Last Day of the Next Month': 'Month(s) after the end of the invoice month'
+ }
+
+ doc = frappe.new_doc('Payment Term')
+ doc.due_date_based_on = based_on_map.get(based_on)
+ doc.invoice_portion = 100
+
+ if based_on == 'Fixed Days':
+ doc.credit_days = days
+ doc.description = 'Net payable within {0} days'.format(days)
+ doc.payment_term_name = 'N{0}'.format(days)
+ else:
+ doc.credit_months = 1
+ doc.description = 'Net payable by the end of next month'
+ doc.payment_term_name = 'EO2M'
+
+ doc.save()
+ return doc
diff --git a/erpnext/patches/v8_10/update_gl_due_date_for_pi_and_si.py b/erpnext/patches/v8_10/update_gl_due_date_for_pi_and_si.py
new file mode 100644
index 0000000..8596e66
--- /dev/null
+++ b/erpnext/patches/v8_10/update_gl_due_date_for_pi_and_si.py
@@ -0,0 +1,138 @@
+from __future__ import unicode_literals
+import frappe
+
+# This will update existing GL Entries by saving its linked Purchase/Sales Invoice's
+# Journal Entry's due date as the due date for the GL Entry
+
+
+def execute():
+ frappe.reload_doc("accounts", "doctype", "gl_entry")
+
+ kwargs = get_query_kwargs()
+
+ for kwarg in kwargs:
+ for batch in get_result_in_batches(**kwarg):
+ voucher_num_col = kwarg.get('voucher_num_col', 'voucher_no')
+ voucher_type = kwarg.get('use_voucher_type') or kwarg.get('voucher_type')
+ conditions, names = build_conditions(batch, voucher_type, voucher_num_col)
+ if conditions and names:
+ start = 'UPDATE `tabGL Entry` SET `due_date` = CASE '
+ cond = ' '.join(conditions)
+ else_cond = ' ELSE `due_date` END WHERE '
+
+ frappe.db.sql(
+ start + cond + else_cond + voucher_num_col + ' IN %s',
+ values=(names,)
+ )
+
+
+def get_result_in_batches(**kwargs):
+ """A simple generator to yield slices of GL Entry records"""
+ while True:
+ batch = get_gle_batch(**kwargs)
+ if batch:
+ yield batch
+ else:
+ return
+
+
+def get_gle_batch(**kwargs):
+ """Returns a slice of records in GL Entry"""
+ doctype = kwargs.get('doctype')
+ fields = kwargs.get('fields')
+ limit_start = kwargs.get('limit_start')
+ limit_page_length = kwargs.get('limit_page_length')
+ filters = kwargs.get('filters')
+ or_filters = kwargs.get('or_filters')
+
+ results = frappe.get_list(
+ doctype, fields=fields, limit_start=limit_start, limit_page_length=limit_page_length,
+ filters=filters, or_filters=or_filters
+ )
+
+ return results
+
+
+def build_conditions(query_results, voucher_type, voucher_num_col):
+ """
+ builds the string to be used is sql CASE statement. Returns the a tuple of
+ the string for the CASE statement and a tuple of applicable voucher names
+ """
+ conditions = []
+ invoice_names = []
+
+ for result in query_results:
+ voucher_no = result.get(voucher_num_col)
+ if voucher_no:
+ invoice_names.append("%s" % (voucher_no,))
+
+ # get invoice details
+ invoice_details = frappe.get_list(
+ voucher_type, fields=['name', 'due_date'], filters={'name': ('in', invoice_names)}
+ )
+
+ if invoice_details:
+ for d in invoice_details:
+ conditions.append('WHEN `{voucher_no}`="{number}" THEN "{date}"'.format(
+ number=d.name, date=d.due_date, voucher_no=voucher_num_col))
+
+ return conditions, invoice_names
+
+
+def get_query_kwargs():
+ pi_kwargs = dict(
+ voucher_type='Purchase Invoice', doctype='GL Entry', fields=['voucher_no'],
+ limit_start=0, limit_page_length=5, filters={
+ "ifnull(due_date, '')": ('=', ''), "ifnull(party, '')": ('!=', ''),
+ 'voucher_type': 'Purchase Invoice', 'credit': ('!=', '0')
+ }
+ )
+
+ si_kwargs = dict(
+ voucher_type='Sales Invoice', doctype='GL Entry', fields=['voucher_no'],
+ limit_start=0, limit_page_length=5, filters={
+ "ifnull(due_date, '')": ('=', ''), "ifnull(party, '')": ('!=', ''),
+ 'voucher_type': 'Sales Invoice', 'debit': ('!=', '0')
+ }
+ )
+
+ journal_kwargs_si = dict(
+ voucher_type='Journal Entry', doctype='GL Entry', fields=['against_voucher'],
+ limit_start=0, limit_page_length=5, filters={
+ "ifnull(due_date, '')": ('=', ''), "ifnull(party, '')": ('!=', ''),
+ 'voucher_type': 'Journal Entry', 'against_voucher_type': 'Sales Invoice'
+ },
+ voucher_num_col='against_voucher', use_voucher_type='Sales Invoice',
+ )
+
+ journal_kwargs_pi = dict(
+ voucher_type='Journal Entry', doctype='GL Entry', fields=['against_voucher'],
+ limit_start=0, limit_page_length=5, filters={
+ "ifnull(due_date, '')": ('=', ''), "ifnull(party, '')": ('!=', ''),
+ 'voucher_type': 'Journal Entry', 'against_voucher_type': 'Purchase Invoice'
+ },
+ voucher_num_col='against_voucher', use_voucher_type='Purchase Invoice',
+ )
+
+ payment_entry_kwargs_pi = dict(
+ voucher_type='Payment Entry', doctype='GL Entry', fields=['against_voucher'],
+ limit_start=0, limit_page_length=5, filters={
+ "ifnull(due_date, '')": ('=', ''), "ifnull(party, '')": ('!=', ''),
+ 'voucher_type': 'Payment Entry', 'against_voucher_type': 'Purchase Invoice'
+ },
+ voucher_num_col='against_voucher', use_voucher_type='Purchase Invoice',
+ )
+
+ payment_entry_kwargs_si = dict(
+ voucher_type='Payment Entry', doctype='GL Entry', fields=['against_voucher'],
+ limit_start=0, limit_page_length=5, filters={
+ "ifnull(due_date, '')": ('=', ''), "ifnull(party, '')": ('!=', ''),
+ 'voucher_type': 'Payment Entry', 'against_voucher_type': 'Sales Invoice'
+ },
+ voucher_num_col='against_voucher', use_voucher_type='Sales Invoice',
+ )
+
+ return [
+ pi_kwargs, si_kwargs, journal_kwargs_pi, journal_kwargs_si,
+ payment_entry_kwargs_pi, payment_entry_kwargs_si
+ ]
diff --git a/erpnext/patches/v9_0/add_user_to_child_table_in_pos_profile.py b/erpnext/patches/v9_0/add_user_to_child_table_in_pos_profile.py
index e7833c0..c150cfa 100644
--- a/erpnext/patches/v9_0/add_user_to_child_table_in_pos_profile.py
+++ b/erpnext/patches/v9_0/add_user_to_child_table_in_pos_profile.py
@@ -7,7 +7,9 @@
def execute():
doctype = 'POS Profile'
frappe.reload_doc('accounts', 'doctype', doctype)
- frappe.reload_doc('accounts', 'doctype', 'POS Profile User')
+ frappe.reload_doc('accounts', 'doctype', 'pos_profile_user')
+ frappe.reload_doc('accounts', 'doctype', 'pos_item_group')
+ frappe.reload_doc('accounts', 'doctype', 'pos_customer_group')
for doc in frappe.get_all(doctype):
_doc = frappe.get_doc(doctype, doc.name)
@@ -19,4 +21,7 @@
'user': user
})
_doc.pos_profile_name = user + ' - ' + _doc.company
+ _doc.flags.ignore_validate = True
+ _doc.flags.ignore_mandatory = True
_doc.save()
+
diff --git a/erpnext/patches/v9_0/copy_old_fees_field_data.py b/erpnext/patches/v9_0/copy_old_fees_field_data.py
index 4243c5b..1427820 100644
--- a/erpnext/patches/v9_0/copy_old_fees_field_data.py
+++ b/erpnext/patches/v9_0/copy_old_fees_field_data.py
@@ -5,7 +5,9 @@
import frappe
def execute():
- frappe.reload_doc("schools", "doctype", "fees")
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc("schools", "doctype", "fees")
+ frappe.reload_doc("education", "doctype", "fees")
if "total_amount" not in frappe.db.get_table_columns("Fees"):
return
diff --git a/erpnext/patches/v9_0/set_shipping_type_for_existing_shipping_rules.py b/erpnext/patches/v9_0/set_shipping_type_for_existing_shipping_rules.py
new file mode 100644
index 0000000..5092695
--- /dev/null
+++ b/erpnext/patches/v9_0/set_shipping_type_for_existing_shipping_rules.py
@@ -0,0 +1,18 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+ frappe.reload_doctype("Shipping Rule")
+
+ # default "calculate_based_on"
+ frappe.db.sql('''update `tabShipping Rule`
+ set calculate_based_on = "Net Weight"
+ where ifnull(calculate_based_on, '') = '' ''')
+
+ # default "shipping_rule_type"
+ frappe.db.sql('''update `tabShipping Rule`
+ set shipping_rule_type = "Selling"
+ where ifnull(shipping_rule_type, '') = '' ''')
diff --git a/erpnext/patches/v9_0/student_admission_childtable_migrate.py b/erpnext/patches/v9_0/student_admission_childtable_migrate.py
index dcbbeeb..a5712c7 100644
--- a/erpnext/patches/v9_0/student_admission_childtable_migrate.py
+++ b/erpnext/patches/v9_0/student_admission_childtable_migrate.py
@@ -5,8 +5,11 @@
import frappe
def execute():
- frappe.reload_doc('schools', 'doctype', 'Student Admission Program')
- frappe.reload_doctype('Student Admission')
+ # 'Schools' module changed to the 'Education'
+ # frappe.reload_doc('schools', 'doctype', 'Student Admission Program')
+ # frappe.reload_doc('schools', 'doctype', 'student_admission')
+ frappe.reload_doc('education', 'doctype', 'Student Admission Program')
+ frappe.reload_doc('education', 'doctype', 'student_admission')
if "program" not in frappe.db.get_table_columns("Student Admission"):
return
diff --git a/erpnext/patches/v9_0/update_multi_uom_fields_in_material_request.py b/erpnext/patches/v9_0/update_multi_uom_fields_in_material_request.py
new file mode 100644
index 0000000..45610ed
--- /dev/null
+++ b/erpnext/patches/v9_0/update_multi_uom_fields_in_material_request.py
@@ -0,0 +1,12 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+ frappe.reload_doctype('Material Request')
+ frappe.reload_doctype('Material Request Item')
+
+ frappe.db.sql(""" update `tabMaterial Request Item`
+ set stock_uom = uom, stock_qty = qty, conversion_factor = 1.0""")
\ No newline at end of file
diff --git a/erpnext/schools/__init__.py b/erpnext/patches/v9_1/__init__.py
similarity index 100%
copy from erpnext/schools/__init__.py
copy to erpnext/patches/v9_1/__init__.py
diff --git a/erpnext/patches/v9_1/create_issue_opportunity_type.py b/erpnext/patches/v9_1/create_issue_opportunity_type.py
new file mode 100644
index 0000000..aa8bbd1
--- /dev/null
+++ b/erpnext/patches/v9_1/create_issue_opportunity_type.py
@@ -0,0 +1,34 @@
+# Copyright (c) 2017, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+
+def execute():
+ # delete custom field if exists
+ for doctype, fieldname in (('Issue', 'issue_type'), ('Opportunity', 'opportunity_type')):
+ custom_field = frappe.db.get_value("Custom Field", {"fieldname": fieldname, 'dt': doctype})
+ if custom_field:
+ frappe.delete_doc("Custom Field", custom_field, ignore_permissions=True)
+
+ frappe.reload_doc('support', 'doctype', 'issue_type')
+ frappe.reload_doc('support', 'doctype', 'issue')
+ frappe.reload_doc('crm', 'doctype', 'opportunity_type')
+ frappe.reload_doc('crm', 'doctype', 'opportunity')
+
+ # rename enquiry_type -> opportunity_type
+ from frappe.model.utils.rename_field import rename_field
+ rename_field('Opportunity', 'enquiry_type', 'opportunity_type')
+
+ # create values if already set
+ for opts in (('Issue', 'issue_type', 'Issue Type'),
+ ('Opportunity', 'opportunity_type', 'Opportunity Type')):
+ for d in frappe.db.sql('select distinct {0} from `tab{1}`'.format(opts[1], opts[0])):
+ if d[0] and not frappe.db.exists(opts[2], d[0]):
+ frappe.get_doc(dict(doctype = opts[2], name=d[0])).insert()
+
+ # fixtures
+ for name in ('Hub', _('Sales'), _('Support'), _('Maintenance')):
+ if not frappe.db.exists('Opportunity Type', name):
+ frappe.get_doc(dict(doctype = 'Opportunity Type', name=name)).insert()
diff --git a/erpnext/patches/v9_2/rename_translated_domains_in_en.py b/erpnext/patches/v9_2/rename_translated_domains_in_en.py
new file mode 100644
index 0000000..168605d
--- /dev/null
+++ b/erpnext/patches/v9_2/rename_translated_domains_in_en.py
@@ -0,0 +1,31 @@
+import frappe
+from frappe import _
+
+def execute():
+ language = frappe.get_single("System Settings").language
+
+ if language and language.startswith('en'): return
+
+ frappe.local.lang = language
+
+ all_domains = frappe.get_hooks("domains")
+
+ for domain in all_domains:
+ translated_domain = _(domain, lang=language)
+ if frappe.db.exists("Domain", translated_domain):
+ frappe.rename_doc("Domain", translated_domain, domain, ignore_permissions=True, merge=True)
+
+ domain_settings = frappe.get_single("Domain Settings")
+ active_domains = [d.domain for d in domain_settings.active_domains]
+
+ try:
+ for domain in active_domains:
+ domain = frappe.get_doc("Domain", domain)
+ domain.setup_domain()
+
+ if int(frappe.db.get_single_value('System Settings', 'setup_complete')):
+ domain.setup_sidebar_items()
+ domain.setup_desktop_icons()
+ domain.set_default_portal_role()
+ except frappe.LinkValidationError:
+ pass
\ No newline at end of file
diff --git a/erpnext/portal/doctype/products_settings/products_settings.json b/erpnext/portal/doctype/products_settings/products_settings.json
index 90de96c..2d025cf 100644
--- a/erpnext/portal/doctype/products_settings/products_settings.json
+++ b/erpnext/portal/doctype/products_settings/products_settings.json
@@ -1,17 +1,23 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
+ "beta": 0,
"creation": "2016-04-22 09:11:55.272398",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
+ "editable_grid": 0,
+ "engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
+ "columns": 0,
"description": "If checked, the Home page will be the default Item Group for the website",
"fieldname": "home_page_is_products",
"fieldtype": "Check",
@@ -19,7 +25,9 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
+ "in_standard_filter": 0,
"label": "Home Page is Products",
"length": 0,
"no_copy": 0,
@@ -28,6 +36,7 @@
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
+ "remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
@@ -35,16 +44,20 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
+ "columns": 0,
"fieldname": "products_as_list",
"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": "Show Products as a List",
"length": 0,
"no_copy": 0,
@@ -53,6 +66,39 @@
"print_hide": 0,
"print_hide_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": "6",
+ "fieldname": "products_per_page",
+ "fieldtype": "Int",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Products per Page",
+ "length": 0,
+ "no_copy": 0,
+ "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,
@@ -60,16 +106,17 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
+ "image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 1,
"istable": 0,
"max_attachments": 0,
- "modified": "2016-04-22 09:11:59.537639",
+ "modified": "2017-11-07 19:34:33.055048",
"modified_by": "Administrator",
"module": "Portal",
"name": "Products Settings",
@@ -100,7 +147,9 @@
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/portal/doctype/products_settings/test_products_settings.js b/erpnext/portal/doctype/products_settings/test_products_settings.js
new file mode 100644
index 0000000..b7049b3
--- /dev/null
+++ b/erpnext/portal/doctype/products_settings/test_products_settings.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Products Settings", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Products Settings
+ () => frappe.tests.make('Products Settings', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/portal/doctype/products_settings/test_products_settings.py b/erpnext/portal/doctype/products_settings/test_products_settings.py
new file mode 100644
index 0000000..d04a009
--- /dev/null
+++ b/erpnext/portal/doctype/products_settings/test_products_settings.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestProductsSettings(unittest.TestCase):
+ pass
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index fa56a95..52d9025 100644
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -233,7 +233,7 @@
})
args = make_tree_args(**args)
- if args.parent_task == 'task':
+ if args.parent_task == 'All Tasks':
args.parent_task = None
frappe.get_doc(args).insert()
diff --git a/erpnext/public/build.json b/erpnext/public/build.json
index 0730df9..0bcbf71 100644
--- a/erpnext/public/build.json
+++ b/erpnext/public/build.json
@@ -31,10 +31,10 @@
"public/js/templates/item_selector.html",
"public/js/utils/item_selector.js",
"public/js/help_links.js",
- "public/js/schools/student_button.html",
- "public/js/schools/assessment_result_tool.html",
"public/js/templates/item_quick_entry.html",
- "public/js/utils/item_quick_entry.js"
+ "public/js/utils/item_quick_entry.js",
+ "public/js/education/student_button.html",
+ "public/js/education/assessment_result_tool.html"
],
"js/item-dashboard.min.js": [
"stock/dashboard/item_dashboard.html",
diff --git a/erpnext/public/js/controllers/accounts.js b/erpnext/public/js/controllers/accounts.js
index abd5566..f38084f 100644
--- a/erpnext/public/js/controllers/accounts.js
+++ b/erpnext/public/js/controllers/accounts.js
@@ -62,15 +62,32 @@
frappe.model.set_value(cdt, cdn, 'account', account)
})
}
-})
+});
+
+frappe.ui.form.on("Sales Invoice", {
+ payment_terms_template: function() {
+ cur_frm.trigger("disable_due_date");
+ }
+});
frappe.ui.form.on('Purchase Invoice', {
mode_of_payment: function(frm) {
get_payment_mode_account(frm, frm.doc.mode_of_payment, function(account){
frm.set_value('cash_bank_account', account);
})
+ },
+
+ payment_terms_template: function() {
+ cur_frm.trigger("disable_due_date");
}
-})
+});
+
+frappe.ui.form.on("Payment Schedule", {
+ payment_schedule_remove: function() {
+ cur_frm.trigger("disable_due_date");
+ },
+
+});
frappe.ui.form.on('Payment Entry', {
mode_of_payment: function(frm) {
diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js
index 010d4d9..a9e3ad4 100644
--- a/erpnext/public/js/controllers/buying.js
+++ b/erpnext/public/js/controllers/buying.js
@@ -18,6 +18,14 @@
this.setup_queries();
this._super();
+ this.frm.set_query('shipping_rule', function() {
+ return {
+ filters: {
+ "shipping_rule_type": "Buying"
+ }
+ };
+ });
+
/* eslint-disable */
// no idea where me is coming from
if(this.frm.get_field('shipping_address')) {
diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js
index 05c323b..c7abed8 100644
--- a/erpnext/public/js/controllers/taxes_and_totals.js
+++ b/erpnext/public/js/controllers/taxes_and_totals.js
@@ -422,20 +422,29 @@
frappe.model.round_floats_in(this.frm.doc, ["grand_total", "base_grand_total"]);
// rounded totals
- this.set_rounded_total()
+ this.set_rounded_total();
},
set_rounded_total: function() {
+ var disable_rounded_total = 0;
+ if(frappe.meta.get_docfield(this.frm.doc.doctype, "disable_rounded_total", this.frm.doc.name)) {
+ disable_rounded_total = this.frm.doc.disable_rounded_total;
+ } else if (frappe.sys_defaults.disable_rounded_total) {
+ disable_rounded_total = frappe.sys_defaults.disable_rounded_total;
+ }
+ if(disable_rounded_total) {
+ this.frm.doc.rounded_total = 0;
+ this.frm.doc.base_rounded_total = 0;
+ return;
+ }
+
if(frappe.meta.get_docfield(this.frm.doc.doctype, "rounded_total", this.frm.doc.name)) {
this.frm.doc.rounded_total = round_based_on_smallest_currency_fraction(this.frm.doc.grand_total,
this.frm.doc.currency, precision("rounded_total"));
- }
- if(frappe.meta.get_docfield(this.frm.doc.doctype, "base_rounded_total", this.frm.doc.name)) {
- var company_currency = this.get_company_currency();
+ this.frm.doc.rounding_adjustment += flt(this.frm.doc.rounded_total - this.frm.doc.grand_total,
+ precision("rounding_adjustment"));
- this.frm.doc.base_rounded_total =
- round_based_on_smallest_currency_fraction(this.frm.doc.base_grand_total,
- company_currency, precision("base_rounded_total"));
+ this.set_in_company_currency(this.frm.doc, ["rounding_adjustment", "rounded_total"]);
}
},
@@ -560,20 +569,22 @@
if(this.frm.doc.is_return || this.frm.doc.docstatus > 0) return;
frappe.model.round_floats_in(this.frm.doc, ["grand_total", "total_advance", "write_off_amount"]);
- if(this.frm.doc.party_account_currency == this.frm.doc.currency) {
- var total_amount_to_pay = flt((this.frm.doc.grand_total - this.frm.doc.total_advance
- - this.frm.doc.write_off_amount), precision("grand_total"));
- } else {
- var total_amount_to_pay = flt(
- (flt(this.frm.doc.grand_total*this.frm.doc.conversion_rate, precision("grand_total"))
- - this.frm.doc.total_advance - this.frm.doc.base_write_off_amount),
- precision("base_grand_total")
- );
- }
- if(this.frm.doc.doctype == "Sales Invoice" || this.frm.doc.doctype == "Purchase Invoice") {
+ if(in_list(["Sales Invoice", "Purchase Invoice"], this.frm.doc.doctype)) {
+ var grand_total = this.frm.doc.rounded_total || this.frm.doc.grand_total;
+
+ if(this.frm.doc.party_account_currency == this.frm.doc.currency) {
+ var total_amount_to_pay = flt((grand_total - this.frm.doc.total_advance
+ - this.frm.doc.write_off_amount), precision("grand_total"));
+ } else {
+ var total_amount_to_pay = flt(
+ (flt(grand_total*this.frm.doc.conversion_rate, precision("grand_total"))
+ - this.frm.doc.total_advance - this.frm.doc.base_write_off_amount),
+ precision("base_grand_total")
+ );
+ }
+
frappe.model.round_floats_in(this.frm.doc, ["paid_amount"]);
-
this.set_in_company_currency(this.frm.doc, ["paid_amount"]);
if(this.frm.refresh_field){
@@ -581,11 +592,10 @@
this.frm.refresh_field("base_paid_amount");
}
- if(this.frm.doc.doctype == "Sales Invoice"){
+ if(this.frm.doc.doctype == "Sales Invoice") {
this.set_default_payment(total_amount_to_pay, update_paid_amount);
this.calculate_paid_amount();
}
-
this.calculate_change_amount();
var paid_amount = (this.frm.doc.party_account_currency == this.frm.doc.currency) ?
@@ -593,9 +603,6 @@
this.frm.doc.outstanding_amount = flt(total_amount_to_pay - flt(paid_amount) +
flt(this.frm.doc.change_amount * this.frm.doc.conversion_rate), precision("outstanding_amount"));
-
- } else if(this.frm.doc.doctype == "Purchase Invoice") {
- this.frm.doc.outstanding_amount = flt(total_amount_to_pay, precision("outstanding_amount"));
}
},
@@ -636,7 +643,9 @@
calculate_change_amount: function(){
this.frm.doc.change_amount = 0.0;
this.frm.doc.base_change_amount = 0.0;
- if(this.frm.doc.paid_amount > this.frm.doc.grand_total && !this.frm.doc.is_return) {
+ if(this.frm.doc.doctype == "Sales Invoice"
+ && this.frm.doc.paid_amount > this.frm.doc.grand_total && !this.frm.doc.is_return) {
+
var payment_types = $.map(this.frm.doc.payments, function(d) { return d.type; });
if (in_list(payment_types, 'Cash')) {
this.frm.doc.change_amount = flt(this.frm.doc.paid_amount - this.frm.doc.grand_total +
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index b07d090..9b592fe 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -36,7 +36,7 @@
cur_frm.cscript.set_gross_profit(item);
cur_frm.cscript.calculate_taxes_and_totals();
- })
+ });
frappe.ui.form.on(this.frm.cscript.tax_table, "rate", function(frm, cdt, cdn) {
cur_frm.cscript.calculate_taxes_and_totals();
@@ -98,10 +98,14 @@
var me = this;
if(this.frm.fields_dict["items"].grid.get_field('batch_no')) {
this.frm.set_query("batch_no", "items", function(doc, cdt, cdn) {
- return me.set_query_for_batch(doc, cdt, cdn)
+ return me.set_query_for_batch(doc, cdt, cdn);
});
}
+ if(this.frm.fields_dict["payment_terms_template"]){
+ this.frm.trigger("payment_terms_template");
+ }
+
if(this.frm.fields_dict["taxes"]) {
this["taxes_remove"] = this.calculate_taxes_and_totals;
}
@@ -116,7 +120,7 @@
filters: [
['Print Format', 'doc_type', '=', cur_frm.doctype],
]
- }
+ };
});
}
@@ -553,6 +557,21 @@
this.frm.set_df_property("conversion_rate", "read_only", erpnext.stale_rate_allowed());
},
+ shipping_rule: function() {
+ var me = this;
+ if(this.frm.doc.shipping_rule) {
+ return this.frm.call({
+ doc: this.frm.doc,
+ method: "apply_shipping_rule",
+ callback: function(r) {
+ if(!r.exc) {
+ me.calculate_taxes_and_totals();
+ }
+ }
+ }).fail(() => this.frm.set_value('shipping_rule', ''));
+ }
+ },
+
set_actual_charges_based_on_currency: function() {
var me = this;
$.each(this.frm.doc.taxes || [], function(i, d) {
@@ -635,7 +654,10 @@
item.stock_qty = flt(item.qty * item.conversion_factor, precision("stock_qty", item));
refresh_field("stock_qty", item.name, item.parentfield);
this.toggle_conversion_factor(item);
- if(!dont_fetch_price_list_rate) this.apply_price_list(item, true);
+ if (!dont_fetch_price_list_rate &&
+ frappe.meta.has_field(doc.doctype, "price_list_currency")) {
+ this.apply_price_list(item, true);
+ }
}
},
@@ -701,12 +723,12 @@
"base_grand_total", "base_rounded_total", "base_in_words", "base_discount_amount",
"base_paid_amount", "base_write_off_amount", "base_operating_cost", "base_raw_material_cost",
"base_total_cost", "base_scrap_material_cost", "base_rounding_adjustment"],
- this.frm.doc.currency != company_currency);
+ this.frm.doc.currency != company_currency);
this.frm.toggle_display(["plc_conversion_rate", "price_list_currency"],
this.frm.doc.price_list_currency != company_currency);
- var show =cint(cur_frm.doc.discount_amount) ||
+ var show = cint(cur_frm.doc.discount_amount) ||
((cur_frm.doc.taxes || []).filter(function(d) {return d.included_in_print_rate===1}).length);
if(frappe.meta.get_docfield(cur_frm.doctype, "net_total"))
@@ -816,7 +838,7 @@
if (!r.exc && r.message) {
me._set_values_for_item_list(r.message);
me.calculate_taxes_and_totals();
- if(me.frm.doc.apply_discount_on) me.frm.trigger("apply_discount_on")
+ if(me.frm.doc.apply_discount_on) me.frm.trigger("apply_discount_on");
}
}
});
@@ -895,8 +917,8 @@
// if doctype is Quotation Item / Sales Order Iten then add Margin Type and rate in item_list
if (in_list(["Quotation Item", "Sales Order Item", "Delivery Note Item", "Sales Invoice Item"]), d.doctype){
- item_list[0]["margin_type"] = d.margin_type
- item_list[0]["margin_rate_or_amount"] = d.margin_rate_or_amount
+ item_list[0]["margin_type"] = d.margin_type;
+ item_list[0]["margin_rate_or_amount"] = d.margin_rate_or_amount;
}
}
};
@@ -1101,12 +1123,12 @@
},
get_method_for_payment: function(){
- var method = "erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry"
+ var method = "erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry";
if(cur_frm.doc.__onload && cur_frm.doc.__onload.make_payment_via_journal_entry){
if(in_list(['Sales Invoice', 'Purchase Invoice'], cur_frm.doc.doctype)){
- method = "erpnext.accounts.doctype.journal_entry.journal_entry.get_payment_entry_against_invoice"
+ method = "erpnext.accounts.doctype.journal_entry.journal_entry.get_payment_entry_against_invoice";
}else {
- method= "erpnext.accounts.doctype.journal_entry.journal_entry.get_payment_entry_against_order"
+ method= "erpnext.accounts.doctype.journal_entry.journal_entry.get_payment_entry_against_order";
}
}
@@ -1132,7 +1154,7 @@
'item_code': item.item_code,
'posting_date': me.frm.doc.posting_date || frappe.datetime.nowdate(),
}
- if (item.warehouse) filters["warehouse"] = item.warehouse
+ if (item.warehouse) filters["warehouse"] = item.warehouse;
return {
query : "erpnext.controllers.queries.get_batch_no",
@@ -1140,6 +1162,46 @@
}
}
},
+
+ payment_terms_template: function() {
+ var me = this;
+ if(this.frm.doc.payment_terms_template && this.frm.doc.payment_schedule.length === 0) {
+ frappe.call({
+ method: "erpnext.controllers.accounts_controller.get_payment_terms",
+ args: {
+ terms_template: this.frm.doc.payment_terms_template,
+ posting_date: this.frm.doc.posting_date || this.frm.doc.transaction_date,
+ grand_total: this.frm.doc.rounded_total || this.frm.doc.grand_total
+ },
+ callback: function(r) {
+ if(r.message && !r.exc) {
+ me.frm.set_value("payment_schedule", r.message);
+ }
+ }
+ })
+ }
+ },
+
+ payment_term: function(doc, cdt, cdn) {
+ var row = locals[cdt][cdn];
+ if(row.payment_term) {
+ frappe.call({
+ method: "erpnext.controllers.accounts_controller.get_payment_term_details",
+ args: {
+ term: row.payment_term,
+ posting_date: this.frm.doc.posting_date || this.frm.doc.transaction_date,
+ grand_total: this.frm.doc.rounded_total || this.frm.doc.grand_total
+ },
+ callback: function(r) {
+ if(r.message && !r.exc) {
+ for (var d in r.message) {
+ frappe.model.set_value(cdt, cdn, d, r.message[d]);
+ }
+ }
+ }
+ })
+ }
+ }
});
erpnext.show_serial_batch_selector = function(frm, d, callback, show_dialog) {
diff --git a/erpnext/public/js/setup_wizard.js b/erpnext/public/js/setup_wizard.js
index 7c274f1..53b7108 100644
--- a/erpnext/public/js/setup_wizard.js
+++ b/erpnext/public/js/setup_wizard.js
@@ -25,7 +25,7 @@
{ "label": __("Manufacturing"), "value": "Manufacturing" },
{ "label": __("Retail"), "value": "Retail" },
{ "label": __("Services"), "value": "Services" },
- { "label": __("Education (beta)"), "value": "Education" },
+ { "label": __("Education"), "value": "Education" },
{"label": __("Healthcare (beta)"), "value": "Healthcare"}
], reqd: 1
},
diff --git a/erpnext/public/js/shopping_cart.js b/erpnext/public/js/shopping_cart.js
index e4e7440..0a3e0af 100644
--- a/erpnext/public/js/shopping_cart.js
+++ b/erpnext/public/js/shopping_cart.js
@@ -65,6 +65,9 @@
set_cart_count: function() {
var cart_count = getCookie("cart_count");
+ if(frappe.session.user==="Guest") {
+ cart_count = 0;
+ }
if(cart_count) {
$(".shopping-cart").toggleClass('hidden', false);
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
deleted file mode 100644
index f92f738..0000000
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-cur_frm.add_fetch("student_group", "program", "program");
-cur_frm.add_fetch("student_group", "course", "course");
-cur_frm.add_fetch("student_group", "academic_year", "academic_year");
-cur_frm.add_fetch("student_group", "academic_term", "academic_term");
-
-frappe.ui.form.on("Course Scheduling Tool", {
-
- refresh: function(frm) {
- frm.disable_save();
- frm.page.set_primary_action(__("Schedule Course"), function() {
- frappe.call({
- method: "schedule_course",
- doc: frm.doc
- })
- });
- }
-});
\ No newline at end of file
diff --git a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py b/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
deleted file mode 100644
index 4e07922..0000000
--- a/erpnext/schools/doctype/course_scheduling_tool/course_scheduling_tool.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-import calendar
-from frappe import _
-from frappe.model.document import Document
-from frappe.utils import add_days, getdate
-from erpnext.schools.utils import OverlapError
-
-class CourseSchedulingTool(Document):
- def schedule_course(self):
- """Creates course schedules as per specified parametes"""
-
- course_schedules= []
- course_schedules_errors= []
- rescheduled= []
- reschedule_errors= []
-
- self.validate_mandatory()
- self.validate_date()
- self.instructor_name= frappe.db.get_value("Instructor", self.instructor, "instructor_name")
-
- group_based_on, course = frappe.db.get_value("Student Group", self.student_group, ["group_based_on", "course"])
- if group_based_on == "Course":
- self.course = course
-
- if self.rechedule:
- rescheduled, reschedule_errors = self.delete_course_schedule(rescheduled, reschedule_errors)
-
- date = self.course_start_date
- while(date < self.course_end_date):
- if self.day == calendar.day_name[getdate(date).weekday()]:
- course_schedule = self.make_course_schedule(date)
- try:
- course_schedule.save()
- except OverlapError:
- course_schedules_errors.append(date)
- else:
- course_schedules.append(course_schedule.name + " on " + date)
-
- date = add_days(date, 7)
- else:
- date = add_days(date, 1)
-
- frappe.local.message_log = []
- if course_schedules:
- frappe.msgprint(_("Course Schedules created:") + "\n" + "\n".join(course_schedules))
- if course_schedules_errors:
- frappe.msgprint(_("There were errors while scheduling course on :") + "\n" + "\n".join(course_schedules_errors))
- if rescheduled:
- frappe.msgprint(_("Course Schedules deleted:") + "\n" + "\n".join(rescheduled))
- if reschedule_errors:
- frappe.msgprint(_("There were errors while deleting following schedules:") + "\n" + "\n".join(reschedule_errors))
-
- def validate_mandatory(self):
- """Validates all mandatory fields"""
-
- fields = ['course', 'room', 'instructor', 'from_time', 'to_time', 'course_start_date', 'course_end_date', 'day']
- for d in fields:
- if not self.get(d):
- frappe.throw(_("{0} is mandatory").format(self.meta.get_label(d)))
-
- def validate_date(self):
- """Validates if Course Start Date is greater than Course End Date"""
- if self.course_start_date > self.course_end_date:
- frappe.throw("Course Start Date cannot be greater than Course End Date.")
-
- def delete_course_schedule(self, rescheduled, reschedule_errors):
- """Delete all course schedule within the Date range and specified filters"""
- schedules = frappe.get_list("Course Schedule", fields=["name", "schedule_date"], filters =
- [["student_group", "=", self.student_group],
- ["course", "=", self.course],
- ["schedule_date", ">=", self.course_start_date],
- ["schedule_date", "<=", self.course_end_date]])
- for d in schedules:
- try:
- if self.day == calendar.day_name[getdate(d.schedule_date).weekday()]:
- frappe.delete_doc("Course Schedule", d.name)
- rescheduled.append(d.name)
- except:
- reschedule_errors.append(d.name)
- return rescheduled, reschedule_errors
-
- def make_course_schedule(self, date):
- """Makes a new Course Schedule.
- :param date: Date on which Course Schedule will be created."""
-
- course_schedule = frappe.new_doc("Course Schedule")
- course_schedule.student_group = self.student_group
- course_schedule.course = self.course
- course_schedule.instructor = self.instructor
- course_schedule.instructor_name = self.instructor_name
- course_schedule.room = self.room
- course_schedule.schedule_date= date
- course_schedule.from_time= self.from_time
- course_schedule.to_time= self.to_time
- return course_schedule
-
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_leave_application/student_leave_application.json b/erpnext/schools/doctype/student_leave_application/student_leave_application.json
deleted file mode 100644
index a081e14..0000000
--- a/erpnext/schools/doctype/student_leave_application/student_leave_application.json
+++ /dev/null
@@ -1,357 +0,0 @@
-{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "autoname": "SLA.######",
- "beta": 0,
- "creation": "2016-11-28 15:38:54.793854",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "student",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Student",
- "length": 0,
- "no_copy": 0,
- "options": "Student",
- "permlevel": 0,
- "precision": "",
- "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": "student_name",
- "fieldtype": "Read Only",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Student Name",
- "length": 0,
- "no_copy": 0,
- "options": "student.title",
- "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_3",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "from_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 1,
- "label": "From Date",
- "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": 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": "to_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "To Date",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "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": "Will show the student as Present in Student Monthly Attendance Report",
- "fieldname": "mark_as_present",
- "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": "Mark as Present",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_5",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "reason",
- "fieldtype": "Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Reason",
- "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": "amended_from",
- "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": "Amended From",
- "length": 0,
- "no_copy": 1,
- "options": "Student Leave Application",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- }
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 1,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2017-07-17 21:57:57.804413",
- "modified_by": "Administrator",
- "module": "Schools",
- "name": "Student Leave Application",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [
- {
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Instructor",
- "set_user_permissions": 0,
- "share": 0,
- "submit": 1,
- "write": 1
- },
- {
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Academics User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
- "write": 1
- }
- ],
- "quick_entry": 1,
- "read_only": 0,
- "read_only_onload": 0,
- "restrict_to_domain": "Education",
- "show_name_in_global_search": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "title_field": "student_name",
- "track_changes": 0,
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/schools/doctype/student_log/student_log.json b/erpnext/schools/doctype/student_log/student_log.json
deleted file mode 100644
index 81d7026..0000000
--- a/erpnext/schools/doctype/student_log/student_log.json
+++ /dev/null
@@ -1,400 +0,0 @@
-{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 0,
- "allow_rename": 0,
- "autoname": "SLog.####",
- "beta": 0,
- "creation": "2016-07-29 03:27:22.451772",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "",
- "editable_grid": 1,
- "engine": "InnoDB",
- "fields": [
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "student",
- "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": 1,
- "label": "Student",
- "length": 0,
- "no_copy": 0,
- "options": "Student",
- "permlevel": 0,
- "precision": "",
- "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": "student_name",
- "fieldtype": "Read Only",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Student Name",
- "length": 0,
- "no_copy": 0,
- "options": "student.title",
- "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": "type",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 1,
- "label": "Type",
- "length": 0,
- "no_copy": 0,
- "options": "General\nAcademic\nMedical\nAchievement",
- "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": "date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Date",
- "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_3",
- "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": "academic_year",
- "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": "Academic Year",
- "length": 0,
- "no_copy": 0,
- "options": "Academic Year",
- "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": "academic_term",
- "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": "Academic Term",
- "length": 0,
- "no_copy": 0,
- "options": "Academic Term",
- "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": "program",
- "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": "Program",
- "length": 0,
- "no_copy": 0,
- "options": "Program",
- "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": "student_batch",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Student Batch",
- "length": 0,
- "no_copy": 0,
- "options": "Student Batch Name",
- "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_5",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "log",
- "fieldtype": "Text Editor",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Log",
- "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,
- "idx": 0,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 0,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "modified": "2017-07-17 21:57:11.024049",
- "modified_by": "Administrator",
- "module": "Schools",
- "name": "Student Log",
- "name_case": "",
- "owner": "Administrator",
- "permissions": [
- {
- "amend": 0,
- "apply_user_permissions": 0,
- "cancel": 0,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 1,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Academics User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 0,
- "write": 1
- }
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 0,
- "restrict_to_domain": "Education",
- "show_name_in_global_search": 0,
- "sort_field": "modified",
- "sort_order": "DESC",
- "title_field": "student_name",
- "track_changes": 0,
- "track_seen": 1
-}
\ No newline at end of file
diff --git a/erpnext/schools/web_form/discussion/__init__.py b/erpnext/schools/web_form/discussion/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/schools/web_form/discussion/__init__.py
+++ /dev/null
diff --git a/erpnext/schools/web_form/discussion/discussion.js b/erpnext/schools/web_form/discussion/discussion.js
deleted file mode 100644
index 4130b0c..0000000
--- a/erpnext/schools/web_form/discussion/discussion.js
+++ /dev/null
@@ -1,4 +0,0 @@
-frappe.ready(function() {
- var form = $('form[data-web-form="discussion"]'),
- owner = form.attr('data-owner');
-})
\ No newline at end of file
diff --git a/erpnext/schools/web_form/discussion/discussion.json b/erpnext/schools/web_form/discussion/discussion.json
deleted file mode 100644
index 4a781d1..0000000
--- a/erpnext/schools/web_form/discussion/discussion.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "allow_comments": 1,
- "allow_delete": 1,
- "allow_edit": 1,
- "allow_multiple": 1,
- "creation": "2016-06-26 20:46:09.598755",
- "doc_type": "Discussion",
- "docstatus": 0,
- "doctype": "Web Form",
- "idx": 0,
- "is_standard": 1,
- "login_required": 1,
- "modified": "2016-07-19 07:55:37.826664",
- "modified_by": "Administrator",
- "module": "Schools",
- "name": "discussion",
- "owner": "Administrator",
- "published": 1,
- "route": "discussion",
- "success_url": "",
- "title": "Discussion",
- "web_form_fields": [
- {
- "fieldname": "course",
- "fieldtype": "Data",
- "hidden": 0,
- "label": "Course",
- "options": "Course",
- "read_only": 1,
- "reqd": 0
- },
- {
- "fieldname": "subject",
- "fieldtype": "Text",
- "hidden": 0,
- "label": "Subject",
- "read_only": 0,
- "reqd": 1
- },
- {
- "fieldname": "description",
- "fieldtype": "Text",
- "hidden": 0,
- "label": "Description",
- "read_only": 0,
- "reqd": 0
- }
- ]
-}
\ No newline at end of file
diff --git a/erpnext/schools/web_form/discussion/discussion.py b/erpnext/schools/web_form/discussion/discussion.py
deleted file mode 100644
index 23ff052..0000000
--- a/erpnext/schools/web_form/discussion/discussion.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from __future__ import unicode_literals
-
-import frappe
-
-def get_context(context=None):
- pass
-
-def has_website_permission(doc, ptype, user, verbose=False):
- return True
\ No newline at end of file
diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json
index 965c1b7..f97cf6f 100644
--- a/erpnext/selling/doctype/customer/customer.json
+++ b/erpnext/selling/doctype/customer/customer.json
@@ -786,7 +786,7 @@
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
- "collapsible_depends_on": "eval:doc.credit_days || doc.credit_limit",
+ "collapsible_depends_on": "",
"columns": 0,
"fieldname": "credit_limit_section",
"fieldtype": "Section Break",
@@ -818,69 +818,6 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "credit_days_based_on",
- "fieldtype": "Select",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Credit Days Based On",
- "length": 0,
- "no_copy": 0,
- "options": "\nFixed Days\nLast Day of the Next Month",
- "permlevel": 0,
- "precision": "",
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.credit_days_based_on=='Fixed Days'",
- "fieldname": "credit_days",
- "fieldtype": "Int",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Credit Days",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "credit_days",
- "oldfieldtype": "Int",
- "permlevel": 1,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
"fieldname": "credit_limit",
"fieldtype": "Currency",
"hidden": 0,
@@ -913,6 +850,38 @@
"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,
"default": "0",
"fieldname": "bypass_credit_limit_check_at_sales_order",
"fieldtype": "Check",
@@ -1233,7 +1202,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-15 18:59:26.897370",
+ "modified": "2017-11-23 18:59:26.897370",
"modified_by": "Administrator",
"module": "Selling",
"name": "Customer",
diff --git a/erpnext/selling/doctype/customer/test_customer.js b/erpnext/selling/doctype/customer/test_customer.js
new file mode 100644
index 0000000..65b81af
--- /dev/null
+++ b/erpnext/selling/doctype/customer/test_customer.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Customer", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Customer
+ () => frappe.tests.make('Customer', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/selling/doctype/customer/test_customer.py b/erpnext/selling/doctype/customer/test_customer.py
index 40ed6f9..45546e3 100644
--- a/erpnext/selling/doctype/customer/test_customer.py
+++ b/erpnext/selling/doctype/customer/test_customer.py
@@ -6,6 +6,7 @@
import frappe
import unittest
+from erpnext.accounts.party import get_due_date
from frappe.test_runner import make_test_records
from erpnext.exceptions import PartyFrozen, PartyDisabled
from frappe.utils import flt
@@ -13,7 +14,7 @@
from erpnext.tests.utils import create_test_contact_and_address
test_ignore = ["Price List"]
-
+test_dependencies = ['Payment Term', 'Payment Terms Template']
test_records = frappe.get_test_records('Customer')
class TestCustomer(unittest.TestCase):
@@ -181,6 +182,35 @@
customer.credit_limit = flt(outstanding_amt - 100)
self.assertRaises(frappe.ValidationError, customer.save)
+ def test_customer_payment_terms(self):
+ frappe.db.set_value(
+ "Customer", "_Test Customer With Template", "payment_terms", "_Test Payment Term Template 3")
+
+ due_date = get_due_date("2016-01-22", "Customer", "_Test Customer With Template")
+ self.assertEqual(due_date, "2016-02-21")
+
+ due_date = get_due_date("2017-01-22", "Customer", "_Test Customer With Template")
+ self.assertEqual(due_date, "2017-02-21")
+
+ frappe.db.set_value(
+ "Customer", "_Test Customer With Template", "payment_terms", "_Test Payment Term Template 1")
+
+ due_date = get_due_date("2016-01-22", "Customer", "_Test Customer With Template")
+ self.assertEqual(due_date, "2016-02-29")
+
+ due_date = get_due_date("2017-01-22", "Customer", "_Test Customer With Template")
+ self.assertEqual(due_date, "2017-02-28")
+
+ frappe.db.set_value("Customer", "_Test Customer With Template", "payment_terms", "")
+
+ # No default payment term template attached
+ due_date = get_due_date("2016-01-22", "Customer", "_Test Customer")
+ self.assertEqual(due_date, "2016-01-22")
+
+ due_date = get_due_date("2017-01-22", "Customer", "_Test Customer")
+ self.assertEqual(due_date, "2017-01-22")
+
+
def get_customer_dict(customer_name):
return {
"customer_group": "_Test Customer Group",
diff --git a/erpnext/selling/doctype/customer/test_records.json b/erpnext/selling/doctype/customer/test_records.json
index 94f14ed..a012c1b 100644
--- a/erpnext/selling/doctype/customer/test_records.json
+++ b/erpnext/selling/doctype/customer/test_records.json
@@ -1,6 +1,20 @@
[
{
"customer_group": "_Test Customer Group",
+ "customer_name": "_Test Customer With Template",
+ "customer_type": "Individual",
+ "doctype": "Customer",
+ "territory": "_Test Territory"
+ },
+ {
+ "customer_group": "_Test Customer Group",
+ "customer_name": "_Test Customer P",
+ "customer_type": "Individual",
+ "doctype": "Customer",
+ "territory": "_Test Territory"
+ },
+ {
+ "customer_group": "_Test Customer Group",
"customer_name": "_Test Customer",
"customer_type": "Individual",
"doctype": "Customer",
diff --git a/erpnext/selling/doctype/quotation/quotation.json b/erpnext/selling/doctype/quotation/quotation.json
index 6d8a3fe..53a3aa1 100644
--- a/erpnext/selling/doctype/quotation/quotation.json
+++ b/erpnext/selling/doctype/quotation/quotation.json
@@ -2156,6 +2156,100 @@
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
+ "collapsible": 0,
+ "collapsible_depends_on": "",
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "payment_schedule_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": "Payment Terms",
+ "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": "payment_terms_template",
+ "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": "Payment Terms Template",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Payment Terms Template",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "payment_schedule",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Payment Schedule",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Payment Schedule",
+ "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": 1,
"collapsible_depends_on": "terms",
"columns": 0,
@@ -2757,7 +2851,7 @@
"istable": 0,
"max_attachments": 1,
"menu_index": 0,
- "modified": "2017-11-15 01:01:16.774645",
+ "modified": "2017-11-23 12:39:36.234663",
"modified_by": "Administrator",
"module": "Selling",
"name": "Quotation",
diff --git a/erpnext/selling/doctype/quotation/test_quotation.py b/erpnext/selling/doctype/quotation/test_quotation.py
index d7d84c7..c6a488e 100644
--- a/erpnext/selling/doctype/quotation/test_quotation.py
+++ b/erpnext/selling/doctype/quotation/test_quotation.py
@@ -8,7 +8,29 @@
test_dependencies = ["Product Bundle"]
+
class TestQuotation(unittest.TestCase):
+ def test_make_quotation_without_terms(self):
+ quotation = make_quotation(do_not_save=1)
+ self.assertFalse(quotation.get('payment_schedule'))
+
+ quotation.insert()
+
+ self.assertTrue(quotation.payment_schedule)
+
+ def test_make_sales_order_terms_not_copied(self):
+ from erpnext.selling.doctype.quotation.quotation import make_sales_order
+
+ quotation = frappe.copy_doc(test_records[0])
+ quotation.transaction_date = nowdate()
+ quotation.valid_till = add_months(quotation.transaction_date, 1)
+ quotation.insert()
+ quotation.submit()
+
+ sales_order = make_sales_order(quotation.name)
+
+ self.assertFalse(sales_order.get('payment_schedule'))
+
def test_make_sales_order(self):
from erpnext.selling.doctype.quotation.quotation import make_sales_order
@@ -33,6 +55,46 @@
sales_order.transaction_date = nowdate()
sales_order.insert()
+ def test_make_sales_order_with_terms(self):
+ from erpnext.selling.doctype.quotation.quotation import make_sales_order
+
+ quotation = frappe.copy_doc(test_records[0])
+ quotation.transaction_date = nowdate()
+ quotation.valid_till = add_months(quotation.transaction_date, 1)
+ quotation.update(
+ {"payment_terms_template": "_Test Payment Term Template"}
+ )
+ quotation.insert()
+
+ self.assertRaises(frappe.ValidationError, make_sales_order, quotation.name)
+ quotation.save()
+ quotation.submit()
+
+ self.assertEqual(quotation.payment_schedule[0].payment_amount, 8906.25)
+ self.assertEqual(quotation.payment_schedule[0].due_date, quotation.transaction_date)
+ self.assertEqual(quotation.payment_schedule[1].payment_amount, 8906.25)
+ self.assertEqual(quotation.payment_schedule[1].due_date, add_days(quotation.transaction_date, 30))
+
+ sales_order = make_sales_order(quotation.name)
+
+ self.assertEquals(sales_order.doctype, "Sales Order")
+ self.assertEquals(len(sales_order.get("items")), 1)
+ self.assertEquals(sales_order.get("items")[0].doctype, "Sales Order Item")
+ self.assertEquals(sales_order.get("items")[0].prevdoc_docname, quotation.name)
+ self.assertEquals(sales_order.customer, "_Test Customer")
+
+ sales_order.delivery_date = "2014-01-01"
+ sales_order.naming_series = "_T-Quotation-"
+ sales_order.transaction_date = nowdate()
+ sales_order.insert()
+
+ self.assertEqual(sales_order.payment_schedule[0].payment_amount, 8906.25)
+ self.assertEqual(sales_order.payment_schedule[0].due_date, quotation.transaction_date)
+ self.assertEqual(sales_order.payment_schedule[1].payment_amount, 8906.25)
+ self.assertEqual(
+ sales_order.payment_schedule[1].due_date, add_days(quotation.transaction_date, 30)
+ )
+
def test_valid_till(self):
from erpnext.selling.doctype.quotation.quotation import make_sales_order
diff --git a/erpnext/selling/doctype/quotation/tests/test_quotation.js b/erpnext/selling/doctype/quotation/tests/test_quotation.js
index 1683fa5..d69d799 100644
--- a/erpnext/selling/doctype/quotation/tests/test_quotation.js
+++ b/erpnext/selling/doctype/quotation/tests/test_quotation.js
@@ -1,5 +1,5 @@
QUnit.test("test: quotation", function (assert) {
- assert.expect(10);
+ assert.expect(12);
let done = assert.async();
frappe.run_serially([
() => {
@@ -10,7 +10,8 @@
{"item_code": "Test Product 1"},
{"qty": 5}
]]
- }
+ },
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => {
@@ -18,7 +19,7 @@
assert.ok(cur_frm.doc.items[0].item_name == "Test Product 1", "Added Test Product 1");
// calculate_taxes_and_totals
- assert.ok(cur_frm.doc.grand_total === 500, "Total Amount is correct");
+ assert.ok(cur_frm.doc.grand_total === 500, String(cur_frm.doc.grand_total));
},
() => cur_frm.set_value("customer_address", "Test1-Billing"),
() => cur_frm.set_value("shipping_address_name", "Test1-Warehouse"),
@@ -30,6 +31,7 @@
() => cur_frm.doc.items[0].rate = 200,
() => frappe.timeout(0.3),
() => cur_frm.set_value("tc_name", "Test Term 1"),
+ () => cur_frm.set_value("payment_schedule", []),
() => frappe.timeout(0.5),
() => cur_frm.save(),
() => {
@@ -47,6 +49,9 @@
// Check Terms and Condtions
assert.ok(cur_frm.doc.tc_name == "Test Term 1", "Terms and Conditions Checked");
+ assert.ok(cur_frm.doc.payment_terms_template, "Payment Terms Template is correct");
+ assert.ok(cur_frm.doc.payment_schedule.length > 0, "Payment Term Schedule is not empty");
+
},
() => done()
]);
diff --git a/erpnext/selling/doctype/quotation/tests/test_quotation_with_discount_on_grand_total.js b/erpnext/selling/doctype/quotation/tests/test_quotation_with_discount_on_grand_total.js
index b7b5a47..aeb5d1b 100644
--- a/erpnext/selling/doctype/quotation/tests/test_quotation_with_discount_on_grand_total.js
+++ b/erpnext/selling/doctype/quotation/tests/test_quotation_with_discount_on_grand_total.js
@@ -16,13 +16,15 @@
]},
{customer_address: 'Test1-Billing'},
{shipping_address_name: 'Test1-Shipping'},
- {contact_person: 'Contact 1-Test Customer 1'}
+ {contact_person: 'Contact 1-Test Customer 1'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => {
return frappe.tests.set_form_values(cur_frm, [
{apply_discount_on:'Grand Total'},
- {additional_discount_percentage:10}
+ {additional_discount_percentage:10},
+ {payment_schedule: []}
]);
},
() => cur_frm.save(),
diff --git a/erpnext/selling/doctype/sales_order/sales_order.json b/erpnext/selling/doctype/sales_order/sales_order.json
index 86d042b..acd6279 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.json
+++ b/erpnext/selling/doctype/sales_order/sales_order.json
@@ -2319,10 +2319,9 @@
"label": "Packed Items",
"length": 0,
"no_copy": 0,
- "oldfieldname": "packing_details",
- "oldfieldtype": "Table",
"options": "Packed Item",
"permlevel": 0,
+ "precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 1,
@@ -2337,6 +2336,99 @@
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
+ "collapsible": 0,
+ "collapsible_depends_on": "",
+ "columns": 0,
+ "fieldname": "payment_schedule_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": "Payment Terms",
+ "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": "payment_terms_template",
+ "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": "Payment Terms Template",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Payment Terms Template",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "payment_schedule",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Payment Schedule",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Payment Schedule",
+ "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": 1,
"collapsible_depends_on": "terms",
"columns": 0,
@@ -3407,7 +3499,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-11-15 01:02:08.674118",
+ "modified": "2017-11-23 12:39:24.362238",
"modified_by": "Administrator",
"module": "Selling",
"name": "Sales Order",
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index a87ccf6..7425cbd 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -103,7 +103,7 @@
def validate_delivery_date(self):
if self.order_type == 'Sales':
if not self.delivery_date:
- self.delivery_date = max([d.delivery_date for d in self.get("items")])
+ self.delivery_date = max([d.delivery_date for d in self.get("items") if d.delivery_date])
if self.delivery_date:
for d in self.get("items"):
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.js b/erpnext/selling/doctype/sales_order/test_sales_order.js
new file mode 100644
index 0000000..57ed19b
--- /dev/null
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Sales Order", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially('Sales Order', [
+ // insert a new Sales Order
+ () => frappe.tests.make([
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index da600fb..f829961 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -13,6 +13,7 @@
from erpnext.selling.doctype.sales_order.sales_order import make_production_orders
import json
+
class TestSalesOrder(unittest.TestCase):
def tearDown(self):
frappe.set_user("Administrator")
@@ -60,6 +61,32 @@
si1 = make_sales_invoice(so.name)
self.assertEquals(len(si1.get("items")), 0)
+ def test_make_sales_invoice_with_terms(self):
+ so = make_sales_order(do_not_submit=True)
+
+ self.assertRaises(frappe.ValidationError, make_sales_invoice, so.name)
+
+ so.update({"payment_terms_template": "_Test Payment Term Template"})
+
+ so.save()
+ so.submit()
+ si = make_sales_invoice(so.name)
+
+ self.assertEquals(len(si.get("items")), len(so.get("items")))
+ self.assertEquals(len(si.get("items")), 1)
+
+ si.insert()
+
+ self.assertEqual(si.payment_schedule[0].payment_amount, 500.0)
+ self.assertEqual(si.payment_schedule[0].due_date, so.transaction_date)
+ self.assertEqual(si.payment_schedule[1].payment_amount, 500.0)
+ self.assertEqual(si.payment_schedule[1].due_date, add_days(so.transaction_date, 30))
+
+ si.submit()
+
+ si1 = make_sales_invoice(so.name)
+ self.assertEquals(len(si1.get("items")), 0)
+
def test_update_qty(self):
so = make_sales_order()
@@ -125,7 +152,6 @@
so = make_sales_order()
self.assertEqual(get_reserved_qty(), existing_reserved_qty + 10)
-
dn = create_dn_against_so(so.name, 15)
self.assertEqual(get_reserved_qty(), existing_reserved_qty)
@@ -181,7 +207,6 @@
make_stock_entry(target="_Test Warehouse - _TC", qty=10, rate=100)
make_stock_entry(item="_Test Item Home Desktop 100", target="_Test Warehouse - _TC", qty=10, rate=100)
-
existing_reserved_qty_item1 = get_reserved_qty("_Test Item")
existing_reserved_qty_item2 = get_reserved_qty("_Test Item Home Desktop 100")
@@ -503,10 +528,39 @@
self.assertEquals(new_so.get("items")[0].rate, flt((price_list_rate*25)/100 + price_list_rate))
new_so.items[0].margin_rate_or_amount = 25
+ new_so.payment_schedule = []
+ new_so.save()
new_so.submit()
self.assertEquals(new_so.get("items")[0].rate, flt((price_list_rate*25)/100 + price_list_rate))
+ def test_terms_auto_added(self):
+ so = make_sales_order(do_not_save=1)
+
+ self.assertFalse(so.get('payment_schedule'))
+
+ so.insert()
+
+ self.assertTrue(so.get('payment_schedule'))
+
+ def test_terms_not_copied(self):
+ so = make_sales_order()
+ self.assertTrue(so.get('payment_schedule'))
+
+ si = make_sales_invoice(so.name)
+ self.assertFalse(si.get('payment_schedule'))
+
+ def test_terms_copied(self):
+ so = make_sales_order(do_not_copy=1, do_not_save=1)
+ so.payment_terms_template = '_Test Payment Term Template'
+ so.insert()
+ so.submit()
+ self.assertTrue(so.get('payment_schedule'))
+
+ si = make_sales_invoice(so.name)
+ si.insert()
+ self.assertTrue(si.get('payment_schedule'))
+
def test_make_production_order(self):
# Make a new Sales Order
so = make_sales_order(**{
@@ -575,6 +629,10 @@
so.insert()
if not args.do_not_submit:
so.submit()
+ else:
+ so.payment_schedule = []
+ else:
+ so.payment_schedule = []
return so
diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order.js
index daa8131..939261c 100644
--- a/erpnext/selling/doctype/sales_order/tests/test_sales_order.js
+++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order.js
@@ -1,7 +1,7 @@
QUnit.module('Sales Order');
QUnit.test("test sales order", function(assert) {
- assert.expect(10);
+ assert.expect(12);
let done = assert.async();
frappe.run_serially([
() => {
@@ -19,7 +19,8 @@
{contact_person: 'Contact 1-Test Customer 1'},
{taxes_and_charges: 'TEST In State GST'},
{tc_name: 'Test Term 1'},
- {terms: 'This is Test'}
+ {terms: 'This is Test'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => {
@@ -28,7 +29,7 @@
{currency: 'USD'}
]);
},
- () => frappe.timeout(1),
+ () => frappe.timeout(1.5),
() => {
// get_item_details
assert.ok(cur_frm.doc.items[0].item_name=='Test Product 3', "Item name correct");
@@ -36,18 +37,24 @@
assert.ok(cur_frm.doc.taxes_and_charges=='TEST In State GST', "Tax details correct");
// get tax account head details
assert.ok(cur_frm.doc.taxes[0].account_head=='CGST - '+frappe.get_abbr(frappe.defaults.get_default('Company')), " Account Head abbr correct");
- // calculate totals
- assert.ok(cur_frm.doc.items[0].price_list_rate==250, "Item 1 price_list_rate");
- assert.ok(cur_frm.doc.net_total== 1280.75, "net total correct ");
- assert.ok(cur_frm.doc.base_grand_total== flt(1511.29* cur_frm.doc.conversion_rate, precision('base_grand_total')), "base round total correct ");
- assert.ok(cur_frm.doc.grand_total== 1511.29 , "grand total correct ");
- assert.ok(cur_frm.doc.rounded_total== 1511.30, "rounded total correct ");
},
() => cur_frm.save(),
() => frappe.timeout(1),
() => cur_frm.print_doc(),
() => frappe.timeout(1),
() => {
+ // Payment Terms
+ assert.ok(cur_frm.doc.payment_terms_template, "Payment Terms Template is correct");
+ assert.ok(cur_frm.doc.payment_schedule.length > 0, "Payment Term Schedule is not empty");
+
+ // totals
+ assert.ok(cur_frm.doc.items[0].price_list_rate==250, "Item 1 price_list_rate");
+ assert.ok(cur_frm.doc.net_total== 1280.75, "net total correct ");
+ assert.ok(cur_frm.doc.base_grand_total== flt(1511.29* cur_frm.doc.conversion_rate, precision('base_grand_total')), String(flt(1511.29* cur_frm.doc.conversion_rate, precision('base_grand_total')) + ' ' + cur_frm.doc.base_grand_total));
+ assert.ok(cur_frm.doc.grand_total== 1511.29 , "grand total correct ");
+ assert.ok(cur_frm.doc.rounded_total== 1511.30, "rounded total correct ");
+
+ // print format
assert.ok($('.btn-print-print').is(':visible'), "Print Format Available");
frappe.timeout(1);
assert.ok($(".section-break+ .section-break .column-break:nth-child(1) .data-field:nth-child(1) .value").text().includes("Billing Street 1"), "Print Preview Works As Expected");
diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js
index 3247c85..de61a61 100644
--- a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js
+++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_discount_on_grand_total.js
@@ -16,13 +16,15 @@
]},
{customer_address: 'Test1-Billing'},
{shipping_address_name: 'Test1-Shipping'},
- {contact_person: 'Contact 1-Test Customer 1'}
+ {contact_person: 'Contact 1-Test Customer 1'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => {
return frappe.tests.set_form_values(cur_frm, [
{apply_discount_on:'Grand Total'},
- {additional_discount_percentage:10}
+ {additional_discount_percentage:10},
+ {payment_schedule: []}
]);
},
() => cur_frm.save(),
diff --git a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js
index c745374..2c48108 100644
--- a/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js
+++ b/erpnext/selling/doctype/sales_order/tests/test_sales_order_with_item_wise_discount.js
@@ -18,7 +18,8 @@
]},
{customer_address: 'Test1-Billing'},
{shipping_address_name: 'Test1-Shipping'},
- {contact_person: 'Contact 1-Test Customer 1'}
+ {contact_person: 'Contact 1-Test Customer 1'},
+ {payment_terms_template: '_Test Payment Term Template UI'}
]);
},
() => cur_frm.save(),
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js
index 8ecdf85..e9960f7 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.js
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.js
@@ -53,8 +53,6 @@
() => this.setup_pos_profile(),
() => this.make_new_invoice(),
() => {
- frappe.timeout(1);
- this.make_items();
this.bind_events();
frappe.dom.unfreeze();
},
@@ -275,13 +273,24 @@
this.toggle_editing();
this.set_form_action();
+ this.set_primary_action_in_modal();
}
});
});
}
- bind_events() {
+ set_primary_action_in_modal() {
+ this.frm.msgbox = frappe.msgprint(
+ `<a class="btn btn-primary" onclick="cur_frm.print_preview.printit(true)" style="margin-right: 5px;">
+ ${__('Print')}</a>
+ <a class="btn btn-default">
+ ${__('New')}</a>`
+ );
+ $(this.frm.msgbox.body).find('.btn-default').on('click', () => {
+ this.frm.msgbox.hide();
+ this.make_new_invoice();
+ })
}
setup_pos_profile() {
@@ -365,16 +374,21 @@
make_new_invoice() {
return frappe.run_serially([
- () => this.make_sales_invoice_frm(),
() => {
- if (this.cart) {
- this.cart.frm = this.frm;
- this.cart.reset();
- } else {
- this.make_cart();
- }
- this.toggle_editing(true);
- }
+ this.make_sales_invoice_frm()
+ .then(() => this.set_pos_profile_data())
+ .then(() => {
+ if (this.cart) {
+ this.cart.frm = this.frm;
+ this.cart.reset();
+ this.items.reset_search_field();
+ } else {
+ this.make_items();
+ this.make_cart();
+ }
+ this.toggle_editing(true);
+ })
+ },
]);
}
@@ -401,12 +415,29 @@
if(!frm.doc.company) {
frm.set_value('company', pos_profile.company);
}
- frm.set_value('is_pos', 1);
- frm.meta.default_print_format = 'POS Invoice';
+ frm.doc.is_pos = 1;
return frm;
}
}
+ set_pos_profile_data() {
+ return new Promise(resolve => {
+ return this.frm.call({
+ doc: this.frm.doc,
+ method: "set_missing_values",
+ }).then((r) => {
+ if(!r.exc) {
+ this.frm.script_manager.trigger("update_stock");
+ frappe.model.set_default_values(this.frm.doc);
+ this.frm.cscript.calculate_taxes_and_totals();
+ this.frm.meta.default_print_format = r.message.print_format || 'POS Invoice';
+ }
+
+ resolve();
+ })
+ })
+ }
+
prepare_menu() {
var me = this;
this.page.clear_menu();
@@ -434,9 +465,6 @@
if(this.frm.doc.docstatus !== 1) return;
this.page.set_secondary_action(__("Print"), () => {
- if (this.pos_profile && this.pos_profile.print_format_for_online) {
- this.frm.meta.default_print_format = this.pos_profile.print_format_for_online;
- }
this.frm.print_preview.printit(true);
});
@@ -1033,7 +1061,7 @@
this.get_items({search_value: search_term, item_group })
.then(({ items, serial_no, batch_no, barcode }) => {
- if (search_term) {
+ if (search_term && !barcode) {
this.search_index[search_term] = items;
}
@@ -1306,6 +1334,16 @@
$(this.dialog.body).find('.input-with-feedback').focusin(function() {
me.numpad.reset_value();
me.fieldname = $(this).prop('dataset').fieldname;
+ if (me.frm.doc.outstanding_amount > 0 &&
+ !in_list(['write_off_amount', 'change_amount'], me.fieldname)) {
+ me.frm.doc.payments.forEach((data) => {
+ if (data.mode_of_payment == me.fieldname && !data.amount) {
+ me.dialog.set_value(me.fieldname,
+ me.frm.doc.outstanding_amount / me.frm.doc.conversion_rate);
+ return;
+ }
+ })
+ }
});
}
@@ -1445,4 +1483,4 @@
this.dialog.set_value("paid_amount", this.frm.doc.paid_amount);
this.dialog.set_value("outstanding_amount", this.frm.doc.outstanding_amount);
}
-}
+}
\ No newline at end of file
diff --git a/erpnext/selling/page/point_of_sale/tests/test_point_of_sale.js b/erpnext/selling/page/point_of_sale/tests/test_point_of_sale.js
index c70d076..79d1700 100644
--- a/erpnext/selling/page/point_of_sale/tests/test_point_of_sale.js
+++ b/erpnext/selling/page/point_of_sale/tests/test_point_of_sale.js
@@ -4,7 +4,7 @@
frappe.run_serially([
() => frappe.set_route('point-of-sale'),
- () => frappe.timeout(2),
+ () => frappe.timeout(3),
() => frappe.set_control('customer', 'Test Customer 1'),
() => frappe.timeout(0.2),
() => cur_frm.set_value('customer', 'Test Customer 1'),
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index e9671c8..6a148e2 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -17,6 +17,13 @@
onload: function() {
this._super();
this.setup_queries();
+ this.frm.set_query('shipping_rule', function() {
+ return {
+ filters: {
+ "shipping_rule_type": "Selling"
+ }
+ };
+ });
},
setup_queries: function() {
@@ -233,21 +240,6 @@
});
},
- shipping_rule: function() {
- var me = this;
- if(this.frm.doc.shipping_rule) {
- return this.frm.call({
- doc: this.frm.doc,
- method: "apply_shipping_rule",
- callback: function(r) {
- if(!r.exc) {
- me.calculate_taxes_and_totals();
- }
- }
- })
- }
- },
-
batch_no: function(doc, cdt, cdn) {
var me = this;
var item = frappe.get_doc(cdt, cdn);
@@ -343,7 +335,42 @@
} else {
this.frm.set_value("company_address_display", "");
}
- }
+ },
+
+ conversion_factor: function(doc, cdt, cdn, dont_fetch_price_list_rate) {
+ this._super(doc, cdt, cdn, dont_fetch_price_list_rate);
+ if(frappe.meta.get_docfield(cdt, "stock_qty", cdn)) {
+ this.set_batch_number(cdt, cdn);
+ }
+ },
+
+ qty: function(doc, cdt, cdn) {
+ this._super(doc, cdt, cdn);
+ this.set_batch_number(cdt, cdn);
+ },
+
+ /* Determine appropriate batch number and set it in the form.
+ * @param {string} cdt - Document Doctype
+ * @param {string} cdn - Document name
+ */
+ set_batch_number: function(cdt, cdn) {
+ const doc = frappe.get_doc(cdt, cdn);
+ if(doc) {
+ this._set_batch_number(doc);
+ }
+ },
+
+ _set_batch_number: function(doc) {
+ return frappe.call({
+ method: 'erpnext.stock.doctype.batch.batch.get_batch_no',
+ args: {'item_code': doc.item_code, 'warehouse': doc.warehouse, 'qty': flt(doc.qty) * flt(doc.conversion_factor)},
+ callback: function(r) {
+ if(r.message) {
+ frappe.model.set_value(doc.doctype, doc.name, 'batch_no', r.message);
+ }
+ }
+ });
+ },
});
frappe.ui.form.on(cur_frm.doctype,"project", function(frm) {
diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js
index 34ecf26..a0e11d6 100644
--- a/erpnext/setup/doctype/company/company.js
+++ b/erpnext/setup/doctype/company/company.js
@@ -96,6 +96,7 @@
method: "erpnext.accounts.doctype.account.chart_of_accounts.chart_of_accounts.get_charts_for_country",
args: {
"country": doc.country,
+ "with_standard": true
},
callback: function(r) {
if(!r.exc) {
diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py
index 4884c06..f4c9e06 100644
--- a/erpnext/setup/doctype/company/company.py
+++ b/erpnext/setup/doctype/company/company.py
@@ -249,10 +249,10 @@
frappe.db.sql("""delete from `tabWarehouse` where company=%s""", self.name)
frappe.defaults.clear_default("company", value=self.name)
+ frappe.db.sql("delete from `tabMode of Payment Account` where company=%s", self.name)
# clear default accounts, warehouses from item
if warehouses:
-
for f in ["default_warehouse", "website_warehouse"]:
frappe.db.sql("""update tabItem set %s=NULL where %s in (%s)"""
% (f, f, ', '.join(['%s']*len(warehouses))), tuple(warehouses))
diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py
index 9c6eb82..a39e246 100644
--- a/erpnext/setup/doctype/global_defaults/global_defaults.py
+++ b/erpnext/setup/doctype/global_defaults/global_defaults.py
@@ -57,7 +57,8 @@
self.disable_rounded_total = cint(self.disable_rounded_total)
# Make property setters to hide rounded total fields
- for doctype in ("Quotation", "Sales Order", "Sales Invoice", "Delivery Note"):
+ for doctype in ("Quotation", "Sales Order", "Sales Invoice", "Delivery Note",
+ "Supplier Quotation", "Purchase Order"):
make_property_setter(doctype, "base_rounded_total", "hidden", self.disable_rounded_total, "Check")
make_property_setter(doctype, "base_rounded_total", "print_hide", 1, "Check")
@@ -69,6 +70,6 @@
# Make property setters to hide in words fields
for doctype in ("Quotation", "Sales Order", "Sales Invoice", "Delivery Note",
- "Supplier Quotation", "Purchase Order", "Purchase Invoice", "Purchase Receipt"):
+ "Supplier Quotation", "Purchase Order", "Purchase Invoice", "Purchase Receipt"):
make_property_setter(doctype, "in_words", "hidden", self.disable_in_words, "Check")
make_property_setter(doctype, "in_words", "print_hide", self.disable_in_words, "Check")
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index a4c377e..364f21a 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -57,7 +57,7 @@
def get_context(self, context):
context.show_search=True
- context.page_length = 6
+ context.page_length = cint(frappe.db.get_single_value('Products Settings', 'products_per_page')) or 6
context.search_link = '/product_search'
start = int(frappe.form_dict.start or 0)
@@ -81,24 +81,26 @@
child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(product_group)])
# base query
- query = """select name, item_name, item_code, route, image, website_image, thumbnail, item_group,
- description, web_long_description as website_description
- from `tabItem`
- where show_in_website = 1
- and disabled=0
- and (end_of_life is null or end_of_life='0000-00-00' or end_of_life > %(today)s)
- and (variant_of = '' or variant_of is null)
- and (item_group in ({child_groups})
- or name in (select parent from `tabWebsite Item Group` where item_group in ({child_groups})))
+ query = """select I.name, I.item_name, I.item_code, I.route, I.image, I.website_image, I.thumbnail, I.item_group,
+ I.description, I.web_long_description as website_description,
+ case when (S.actual_qty - S.reserved_qty) > 0 then 1 else 0 end as in_stock
+ from `tabItem` I
+ left join tabBin S on I.item_code = S.item_code and I.website_warehouse = S.warehouse
+ where I.show_in_website = 1
+ and I.disabled = 0
+ and (I.end_of_life is null or I.end_of_life='0000-00-00' or I.end_of_life > %(today)s)
+ and (I.variant_of = '' or I.variant_of is null)
+ and (I.item_group in ({child_groups})
+ or I.name in (select parent from `tabWebsite Item Group` where item_group in ({child_groups})))
""".format(child_groups=child_groups)
# search term condition
if search:
- query += """ and (web_long_description like %(search)s
- or item_name like %(search)s
- or name like %(search)s)"""
+ query += """ and (I.web_long_description like %(search)s
+ or I.item_name like %(search)s
+ or I.name like %(search)s)"""
search = "%" + cstr(search) + "%"
- query += """order by weightage desc, item_name, modified desc limit %s, %s""" % (start, limit)
+ query += """order by I.weightage desc, in_stock desc, I.item_name limit %s, %s""" % (start, limit)
data = frappe.db.sql(query, {"product_group": product_group,"search": search, "today": nowdate()}, as_dict=1)
diff --git a/erpnext/setup/doctype/sales_partner/sales_partner.js b/erpnext/setup/doctype/sales_partner/sales_partner.js
index b1c18d6..30c2c91 100644
--- a/erpnext/setup/doctype/sales_partner/sales_partner.js
+++ b/erpnext/setup/doctype/sales_partner/sales_partner.js
@@ -3,7 +3,7 @@
frappe.ui.form.on('Sales Partner', {
refresh: function(frm) {
- frappe.dynamic_link = {doc: frm.doc, fieldname: 'name', doctype: 'Sales Person'}
+ frappe.dynamic_link = {doc: frm.doc, fieldname: 'name', doctype: 'Sales Partner'}
if(frm.doc.__islocal){
hide_field(['address_html', 'contact_html', 'address_contacts']);
diff --git a/erpnext/setup/doctype/supplier_type/supplier_type.json b/erpnext/setup/doctype/supplier_type/supplier_type.json
index 9b40e0f..d7d7084 100644
--- a/erpnext/setup/doctype/supplier_type/supplier_type.json
+++ b/erpnext/setup/doctype/supplier_type/supplier_type.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:supplier_type",
@@ -12,6 +13,7 @@
"editable_grid": 0,
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -42,6 +44,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -71,12 +74,13 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "credit_days_based_on",
- "fieldtype": "Select",
+ "fieldname": "payment_terms",
+ "fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -84,39 +88,10 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Credit Days Based On",
+ "label": "Default Payment Terms Template",
"length": 0,
"no_copy": 0,
- "options": "\nFixed Days\nLast Day of the Next Month",
- "permlevel": 1,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0
- },
- {
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.credit_days_based_on=='Fixed Days'",
- "fieldname": "credit_days",
- "fieldtype": "Int",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Credit Days",
- "length": 0,
- "no_copy": 0,
+ "options": "Payment Terms Template",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@@ -130,6 +105,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -158,6 +134,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -189,18 +166,18 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "fa fa-flag",
"idx": 1,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-02-20 13:25:25.641431",
+ "modified": "2017-09-04 18:54:10.093500",
"modified_by": "Administrator",
"module": "Setup",
"name": "Supplier Type",
diff --git a/erpnext/setup/doctype/supplier_type/test_supplier_type.js b/erpnext/setup/doctype/supplier_type/test_supplier_type.js
new file mode 100644
index 0000000..085dddd
--- /dev/null
+++ b/erpnext/setup/doctype/supplier_type/test_supplier_type.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Supplier Type", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Supplier Type
+ () => frappe.tests.make('Supplier Type', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/setup/setup_wizard/install_fixtures.py b/erpnext/setup/setup_wizard/install_fixtures.py
index e6a4a81..95c562a 100644
--- a/erpnext/setup/setup_wizard/install_fixtures.py
+++ b/erpnext/setup/setup_wizard/install_fixtures.py
@@ -14,12 +14,12 @@
def install(country=None):
records = [
# domains
- { 'doctype': 'Domain', 'domain': _('Distribution')},
- { 'doctype': 'Domain', 'domain': _('Manufacturing')},
- { 'doctype': 'Domain', 'domain': _('Retail')},
- { 'doctype': 'Domain', 'domain': _('Services')},
- { 'doctype': 'Domain', 'domain': _('Education')},
- { 'doctype': 'Domain', 'domain': _('Healthcare')},
+ { 'doctype': 'Domain', 'domain': 'Distribution'},
+ { 'doctype': 'Domain', 'domain': 'Manufacturing'},
+ { 'doctype': 'Domain', 'domain': 'Retail'},
+ { 'doctype': 'Domain', 'domain': 'Services'},
+ { 'doctype': 'Domain', 'domain': 'Education'},
+ { 'doctype': 'Domain', 'domain': 'Healthcare'},
# Setup Progress
{'doctype': "Setup Progress", "actions": [
@@ -212,6 +212,11 @@
{'doctype': "Party Type", "party_type": "Supplier"},
{'doctype': "Party Type", "party_type": "Employee"},
+ {'doctype': "Opportunity Type", "name": "Hub"},
+ {'doctype': "Opportunity Type", "name": _("Sales")},
+ {'doctype': "Opportunity Type", "name": _("Support")},
+ {'doctype': "Opportunity Type", "name": _("Maintenance")},
+
{'doctype': "Project Type", "project_type": "Internal"},
{'doctype': "Project Type", "project_type": "External"},
{'doctype': "Project Type", "project_type": "Other"},
diff --git a/erpnext/setup/setup_wizard/sample_data.py b/erpnext/setup/setup_wizard/sample_data.py
index 43911f0..5a2fbd3 100644
--- a/erpnext/setup/setup_wizard/sample_data.py
+++ b/erpnext/setup/setup_wizard/sample_data.py
@@ -38,7 +38,7 @@
"doctype": "Opportunity",
"enquiry_from": "Customer",
"customer": customer,
- "enquiry_type": "Sales",
+ "opportunity_type": _("Sales"),
"with_items": 1
})
@@ -107,16 +107,16 @@
if domain == 'Education':
tasks += [
{
- "title": _("Setup your School in ERPNext"),
+ "title": _("Setup your Institute in ERPNext"),
"start_date": current_date,
"end_date": frappe.utils.add_days(current_date, 1),
- "file": "school_masters.md"
+ "file": "education_masters.md"
},
{
"title": "Setup Master Data",
"start_date": current_date,
"end_date": frappe.utils.add_days(current_date, 1),
- "file": "school_masters.md"
+ "file": "education_masters.md"
}]
else:
diff --git a/erpnext/setup/setup_wizard/setup_wizard.py b/erpnext/setup/setup_wizard/setup_wizard.py
index 766f9b5..ec70c39 100644
--- a/erpnext/setup/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/setup_wizard/setup_wizard.py
@@ -40,7 +40,7 @@
frappe.local.message_log = []
domain_settings = frappe.get_single('Domain Settings')
- domain_settings.set_active_domains([_(args.get('domain'))])
+ domain_settings.set_active_domains([args.get('domain')])
frappe.db.commit()
login_as_first_user(args)
@@ -186,10 +186,6 @@
hr_settings.emp_created_by = "Naming Series"
hr_settings.save()
- domain_settings = frappe.get_doc("Domain Settings")
- domain_settings.append('active_domains', dict(domain=_(args.get('domain'))))
- domain_settings.save()
-
def create_feed_and_todo():
"""update Activity feed and create todo for creation of item, customer, vendor"""
add_info_comment(**{
@@ -258,7 +254,9 @@
accounts = []
for i, name in enumerate(account_name):
- accounts.append(make_tax_account(company, account_name[i], tax_rate[i]))
+ tax_account = make_tax_account(company, account_name[i], tax_rate[i])
+ if tax_account:
+ accounts.append(tax_account)
if accounts:
make_sales_and_purchase_tax_templates(accounts, template_name)
diff --git a/erpnext/setup/setup_wizard/tasks/school_masters.md b/erpnext/setup/setup_wizard/tasks/education_masters.md
similarity index 75%
rename from erpnext/setup/setup_wizard/tasks/school_masters.md
rename to erpnext/setup/setup_wizard/tasks/education_masters.md
index 9103935..d0887d2 100644
--- a/erpnext/setup/setup_wizard/tasks/school_masters.md
+++ b/erpnext/setup/setup_wizard/tasks/education_masters.md
@@ -6,4 +6,4 @@
1. Start adding **Students**
1. Group your students into **Batches**
-Watch this video to learn more about ERPNext Schools: https://www.youtube.com/watch?v=f6foQOyGzdA
+Watch this video to learn more about ERPNext Education: https://www.youtube.com/watch?v=f6foQOyGzdA
diff --git a/erpnext/setup/setup_wizard/tasks/school_import_data.md b/erpnext/setup/setup_wizard/tasks/school_import_data.md
index c465b81..1fbe049 100644
--- a/erpnext/setup/setup_wizard/tasks/school_import_data.md
+++ b/erpnext/setup/setup_wizard/tasks/school_import_data.md
@@ -1,5 +1,5 @@
Lets import some data! 💪💪
-If you are already running a school, you most likely have your Students in some spreadsheet file somewhere. Import it into ERPNext with the Data Import Tool.
+If you are already running a Institute, you most likely have your Students in some spreadsheet file somewhere. Import it into ERPNext with the Data Import Tool.
Watch this video to get started: https://www.youtube.com/watch?v=Ta2Xx3QoK3E
\ No newline at end of file
diff --git a/erpnext/setup/setup_wizard/test_setup_wizard.py b/erpnext/setup/setup_wizard/test_setup_wizard.py
index 97650f2..5e2a303 100644
--- a/erpnext/setup/setup_wizard/test_setup_wizard.py
+++ b/erpnext/setup/setup_wizard/test_setup_wizard.py
@@ -40,6 +40,7 @@
time.sleep(1)
# domain slide
+ # time.sleep(3)
driver.set_select("domain", "Manufacturing")
time.sleep(1)
driver.click(".next-btn")
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index 003a57c..ffb3aa6 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -41,7 +41,7 @@
"email" :"test@erpnext.com",
"password" :"test",
"chart_of_accounts" : "Standard",
- "domain" : "Manufacturing"
+ "domain" : "Manufacturing",
})
frappe.db.sql("delete from `tabLeave Allocation`")
@@ -120,3 +120,18 @@
frappe.get_single('Domain Settings').set_active_domains(\
[d.name for d in domains])
add_all_roles_to('Administrator')
+
+
+def insert_record(records):
+ for r in records:
+ doc = frappe.new_doc(r.get("doctype"))
+ doc.update(r)
+ try:
+ doc.insert(ignore_permissions=True)
+ except frappe.DuplicateEntryError, e:
+ # pass DuplicateEntryError and continue
+ if e.args and e.args[0]==doc.doctype and e.args[1]==doc.name:
+ # make sure DuplicateEntryError is for the exact same doc and not a related doc
+ pass
+ else:
+ raise
diff --git a/erpnext/shopping_cart/cart.py b/erpnext/shopping_cart/cart.py
index 5c7d825..fcbb63c 100644
--- a/erpnext/shopping_cart/cart.py
+++ b/erpnext/shopping_cart/cart.py
@@ -10,8 +10,11 @@
from erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings import get_shopping_cart_settings
from frappe.utils.nestedset import get_root_of
from erpnext.accounts.utils import get_account_name
+from erpnext.utilities.product import get_qty_in_stock
-class WebsitePriceListMissingError(frappe.ValidationError): pass
+
+class WebsitePriceListMissingError(frappe.ValidationError):
+ pass
def set_cart_count(quotation=None):
if cint(frappe.db.get_singles_value("Shopping Cart Settings", "enabled")):
@@ -33,12 +36,15 @@
addresses = get_address_docs(party=party)
+ if not doc.customer_address and addresses:
+ update_cart_address("customer_address", addresses[0].name)
+
return {
"doc": decorate_quotation_doc(doc),
"shipping_addresses": [{"name": address.name, "display": address.display}
- for address in addresses if address.address_type == "Shipping"],
+ for address in addresses],
"billing_addresses": [{"name": address.name, "display": address.display}
- for address in addresses if address.address_type == "Billing"],
+ for address in addresses],
"shipping_rules": get_applicable_shipping_rules(party)
}
@@ -46,9 +52,8 @@
def place_order():
quotation = _get_cart_quotation()
quotation.company = frappe.db.get_value("Shopping Cart Settings", None, "company")
- for fieldname in ["customer_address", "shipping_address_name"]:
- if not quotation.get(fieldname):
- throw(_("{0} is required").format(quotation.meta.get_label(fieldname)))
+ if not quotation.get("customer_address"):
+ throw(_("{0} is required").format(_(quotation.meta.get_label("customer_address"))))
quotation.flags.ignore_permissions = True
quotation.submit()
@@ -61,6 +66,9 @@
sales_order = frappe.get_doc(_make_sales_order(quotation.name, ignore_permissions=True))
for item in sales_order.get("items"):
item.reserved_warehouse = frappe.db.get_value("Item", item.item_code, "website_warehouse") or None
+ item_stock = get_qty_in_stock(item.item_code, "website_warehouse")
+ if item.qty > item_stock.stock_qty[0][0]:
+ throw(_("Only {0} in stock for item {1}").format(item_stock.stock_qty[0][0], item.item_code))
sales_order.flags.ignore_permissions = True
sales_order.insert()
@@ -98,6 +106,7 @@
apply_cart_settings(quotation=quotation)
quotation.flags.ignore_permissions = True
+ quotation.payment_schedule = []
if not empty_card:
quotation.save()
else:
@@ -173,6 +182,7 @@
return doc
+
def _get_cart_quotation(party=None):
'''Return the open Quotation of type "Shopping Cart" or make a new one'''
if not party:
@@ -194,6 +204,7 @@
"status": "Draft",
"docstatus": 0,
"__islocal": 1,
+ "payment_terms_template": "_Test Payment Term Template",
(party.doctype.lower()): party.name
})
diff --git a/erpnext/shopping_cart/test_shopping_cart.py b/erpnext/shopping_cart/test_shopping_cart.py
index 22b2895..0c94cd8 100644
--- a/erpnext/shopping_cart/test_shopping_cart.py
+++ b/erpnext/shopping_cart/test_shopping_cart.py
@@ -8,6 +8,9 @@
from erpnext.shopping_cart.cart import _get_cart_quotation, update_cart, get_party
from erpnext.tests.utils import create_test_contact_and_address
+
+test_dependencies = ['Payment Terms Template']
+
class TestShoppingCart(unittest.TestCase):
"""
Note:
@@ -62,7 +65,6 @@
self.assertEquals(quotation.get("items")[0].qty, 1)
self.assertEquals(quotation.get("items")[0].amount, 10)
-
# add second item
update_cart("_Test Item 2", 1)
quotation = self.test_get_cart_customer()
@@ -127,6 +129,7 @@
"selling_price_list": "_Test Price List Rest of the World",
"currency": "USD",
"taxes_and_charges" : "_Test Tax 1",
+ "conversion_rate":1,
"transaction_date" : nowdate(),
"valid_till" : add_months(nowdate(), 1),
"items": [{
diff --git a/erpnext/stock/doctype/batch/batch.py b/erpnext/stock/doctype/batch/batch.py
index c58a98d..8d72ac3 100644
--- a/erpnext/stock/doctype/batch/batch.py
+++ b/erpnext/stock/doctype/batch/batch.py
@@ -5,7 +5,8 @@
import frappe
from frappe import _
from frappe.model.document import Document
-from frappe.utils import flt
+from frappe.utils import flt, cint
+
class UnableToSelectBatchError(frappe.ValidationError): pass
@@ -53,16 +54,19 @@
from `tabStock Ledger Entry`
where warehouse=%s and batch_no=%s""",
(warehouse, batch_no))[0][0] or 0)
+
if batch_no and not warehouse:
out = frappe.db.sql('''select warehouse, sum(actual_qty) as qty
from `tabStock Ledger Entry`
where batch_no=%s
group by warehouse''', batch_no, as_dict=1)
+
if not batch_no and item_code and warehouse:
out = frappe.db.sql('''select batch_no, sum(actual_qty) as qty
from `tabStock Ledger Entry`
where item_code = %s and warehouse=%s
group by batch_no''', (item_code, warehouse), as_dict=1)
+
return out
@frappe.whitelist()
@@ -114,21 +118,42 @@
if flt(batch_qty) < flt(qty):
frappe.throw(_("Row #{0}: The batch {1} has only {2} qty. Please select another batch which has {3} qty available or split the row into multiple rows, to deliver/issue from multiple batches").format(d.idx, d.batch_no, batch_qty, d.qty))
-def get_batch_no(item_code, warehouse, qty, throw=False):
- '''get the smallest batch with for the given item_code, warehouse and qty'''
+@frappe.whitelist()
+def get_batch_no(item_code, warehouse, qty=1, throw=False):
+ """
+ Get batch number using First Expiring First Out method.
+ :param item_code: `item_code` of Item Document
+ :param warehouse: name of Warehouse to check
+ :param qty: quantity of Items
+ :return: String represent batch number of batch with sufficient quantity else an empty String
+ """
batch_no = None
- batches = get_batch_qty(item_code = item_code, warehouse = warehouse)
- if batches:
- batches = sorted(batches, lambda a, b: 1 if a.qty > b.qty else -1)
- for b in batches:
- if b.qty >= qty:
- batch_no = b.batch_no
- # found!
- break
+ batches = get_batches(item_code, warehouse, qty, throw)
+
+ for batch in batches:
+ if cint(qty) <= cint(batch.qty):
+ batch_no = batch.batch_id
+ break
if not batch_no:
frappe.msgprint(_('Please select a Batch for Item {0}. Unable to find a single batch that fulfills this requirement').format(frappe.bold(item_code)))
- if throw: raise UnableToSelectBatchError
+ if throw:
+ raise UnableToSelectBatchError
return batch_no
+
+
+def get_batches(item_code, warehouse, qty=1, throw=False):
+ batches = frappe.db.sql(
+ 'select batch_id, sum(actual_qty) as qty from `tabBatch` join `tabStock Ledger Entry` '
+ 'on `tabBatch`.batch_id = `tabStock Ledger Entry`.batch_no '
+ 'where `tabStock Ledger Entry`.item_code = %s and `tabStock Ledger Entry`.warehouse = %s '
+ 'and `tabBatch`.expiry_date >= CURDATE() or `tabBatch`.expiry_date IS NULL '
+ 'group by batch_id '
+ 'order by `tabBatch`.expiry_date DESC, `tabBatch`.creation ASC',
+ (item_code, warehouse),
+ as_dict=True
+ )
+
+ return batches
diff --git a/erpnext/stock/doctype/batch/test_batch.py b/erpnext/stock/doctype/batch/test_batch.py
index eb3b48e..a327b2d 100644
--- a/erpnext/stock/doctype/batch/test_batch.py
+++ b/erpnext/stock/doctype/batch/test_batch.py
@@ -6,7 +6,7 @@
from frappe.exceptions import ValidationError
import unittest
-from erpnext.stock.doctype.batch.batch import get_batch_qty, UnableToSelectBatchError
+from erpnext.stock.doctype.batch.batch import get_batch_qty, UnableToSelectBatchError, get_batch_no
class TestBatch(unittest.TestCase):
@@ -28,13 +28,13 @@
self.make_batch_item('ITEM-BATCH-1')
receipt = frappe.get_doc(dict(
- doctype = 'Purchase Receipt',
- supplier = '_Test Supplier',
- items = [
+ doctype='Purchase Receipt',
+ supplier='_Test Supplier',
+ items=[
dict(
- item_code = 'ITEM-BATCH-1',
- qty = batch_qty,
- rate = 10
+ item_code='ITEM-BATCH-1',
+ qty=batch_qty,
+ rate=10
)
]
)).insert()
@@ -74,28 +74,28 @@
'''Test automatic batch selection for outgoing items'''
batch_qty = 15
receipt = self.test_purchase_receipt(batch_qty)
+ item_code = 'ITEM-BATCH-1'
delivery_note = frappe.get_doc(dict(
- doctype = 'Delivery Note',
- customer = '_Test Customer',
- company = receipt.company,
- items = [
+ doctype='Delivery Note',
+ customer='_Test Customer',
+ company=receipt.company,
+ items=[
dict(
- item_code = 'ITEM-BATCH-1',
- qty = batch_qty,
- rate = 10,
- warehouse = receipt.items[0].warehouse
+ item_code=item_code,
+ qty=batch_qty,
+ rate=10,
+ warehouse=receipt.items[0].warehouse
)
]
)).insert()
delivery_note.submit()
- # shipped with same batch
- self.assertEquals(delivery_note.items[0].batch_no, receipt.items[0].batch_no)
-
- # balance is 0
- self.assertEquals(get_batch_qty(receipt.items[0].batch_no,
- receipt.items[0].warehouse), 0)
+ # shipped from FEFO batch
+ self.assertEquals(
+ delivery_note.items[0].batch_no,
+ get_batch_no(item_code, receipt.items[0].warehouse, batch_qty)
+ )
def test_delivery_note_fail(self):
'''Test automatic batch selection for outgoing items'''
@@ -120,27 +120,27 @@
batch_qty = 16
receipt = self.test_purchase_receipt(batch_qty)
+ item_code = 'ITEM-BATCH-1'
stock_entry = frappe.get_doc(dict(
- doctype = 'Stock Entry',
- purpose = 'Material Issue',
- company = receipt.company,
- items = [
+ doctype='Stock Entry',
+ purpose='Material Issue',
+ company=receipt.company,
+ items=[
dict(
- item_code = 'ITEM-BATCH-1',
- qty = batch_qty,
- s_warehouse = receipt.items[0].warehouse,
+ item_code=item_code,
+ qty=batch_qty,
+ s_warehouse=receipt.items[0].warehouse,
)
]
)).insert()
stock_entry.submit()
# assert same batch is selected
- self.assertEqual(stock_entry.items[0].batch_no, receipt.items[0].batch_no)
-
- # balance is 0
- self.assertEquals(get_batch_qty(receipt.items[0].batch_no,
- receipt.items[0].warehouse), 0)
+ self.assertEqual(
+ stock_entry.items[0].batch_no,
+ get_batch_no(item_code, receipt.items[0].warehouse, batch_qty)
+ )
def test_batch_split(self):
'''Test batch splitting'''
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index 9b49b69..626a9db 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -88,10 +88,11 @@
and item.source_warehouse = %s
and pro.status not in ("Stopped", "Completed")''', (self.item_code, self.warehouse))[0][0]
- self.set_projected_qty()
+ if self.reserved_qty_for_production:
+ self.set_projected_qty()
- self.db_set('reserved_qty_for_production', self.reserved_qty_for_production)
- self.db_set('projected_qty', self.projected_qty)
+ self.db_set('reserved_qty_for_production', self.reserved_qty_for_production)
+ self.db_set('projected_qty', self.projected_qty)
def update_item_projected_qty(item_code):
diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
index 24e520c..c3dbb8d 100644
--- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py
@@ -28,6 +28,7 @@
if not frappe.db.exists("Account", target_warehouse):
parent_account = frappe.db.get_value('Account',
{'company': company, 'is_group':1, 'account_type': 'Stock'},'name')
+
account = create_account(account_name="_Test Warehouse 1", \
account_type="Stock", parent_account= parent_account, company=company)
frappe.db.set_value('Warehouse', target_warehouse, 'account', account)
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 656ee69..aed6f41 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -57,9 +57,23 @@
frappe.set_route("List", "Item", {"variant_of": frm.doc.name});
}, __("View"));
- frm.add_custom_button(__("Variant"), function() {
- erpnext.item.make_variant(frm);
- }, __("Make"));
+ frm.add_custom_button(__("Variant Details Report"), function() {
+ frappe.set_route("query-report", "Item Variant Details", {"item": frm.doc.name});
+ }, __("View"));
+
+ if(frm.doc.variant_based_on==="Item Attribute") {
+ frm.add_custom_button(__("Single Variant"), function() {
+ erpnext.item.show_single_variant_dialog(frm);
+ }, __("Make"));
+ frm.add_custom_button(__("Multiple Variants"), function() {
+ erpnext.item.show_multiple_variants_dialog(frm);
+ }, __("Make"));
+ } else {
+ frm.add_custom_button(__("Variant"), function() {
+ erpnext.item.show_modal_for_manufacturers(frm);
+ }, __("Make"));
+ }
+
frm.page.set_inner_btn_group_as_primary(__("Make"));
}
if (frm.doc.variant_of) {
@@ -263,14 +277,6 @@
}
},
- make_variant: function(frm) {
- if(frm.doc.variant_based_on==="Item Attribute") {
- erpnext.item.show_modal_for_item_attribute_selection(frm);
- } else {
- erpnext.item.show_modal_for_manufacturers(frm);
- }
- },
-
show_modal_for_manufacturers: function(frm) {
var dialog = new frappe.ui.Dialog({
fields: [
@@ -301,7 +307,145 @@
dialog.show();
},
- show_modal_for_item_attribute_selection: function(frm) {
+ show_multiple_variants_dialog: function(frm) {
+ var me = this;
+
+ if(me.multiple_variant_dialog) {
+ me.multiple_variant_dialog.show();
+ return;
+ }
+
+ let promises = [];
+ let attr_val_fields = {};
+
+ function make_fields_from_attribute_values(attr_dict) {
+ let fields = [];
+ Object.keys(attr_dict).forEach((name, i) => {
+ if(i % 3 === 0){
+ fields.push({fieldtype: 'Section Break'});
+ }
+ fields.push({fieldtype: 'Column Break', label: name});
+ attr_dict[name].forEach(value => {
+ fields.push({
+ fieldtype: 'Check',
+ label: value,
+ fieldname: value,
+ default: 0,
+ onchange: function() {
+ let selected_attributes = get_selected_attributes();
+ let lengths = [];
+ Object.keys(selected_attributes).map(key => {
+ lengths.push(selected_attributes[key].length);
+ });
+ if(lengths.includes(0)) {
+ me.multiple_variant_dialog.get_primary_btn().html(__("Make Variants"));
+ me.multiple_variant_dialog.disable_primary_action();
+ } else {
+ let no_of_combinations = lengths.reduce((a, b) => a * b, 1);
+ me.multiple_variant_dialog.get_primary_btn()
+ .html(__(
+ `Make ${no_of_combinations} Variant${no_of_combinations === 1 ? '' : 's'}`
+ ));
+ me.multiple_variant_dialog.enable_primary_action();
+ }
+ }
+ });
+ });
+ });
+ return fields;
+ }
+
+ function make_and_show_dialog(fields) {
+ me.multiple_variant_dialog = new frappe.ui.Dialog({
+ title: __("Select Attribute Values"),
+ fields: [
+ {
+ fieldtype: "HTML",
+ fieldname: "help",
+ options: `<label class="control-label">
+ ${__("Select at least one value from each of the attributes.")}
+ </label>`,
+ }
+ ].concat(fields)
+ });
+
+ me.multiple_variant_dialog.set_primary_action(__("Make Variants"), () => {
+ let selected_attributes = get_selected_attributes();
+
+ me.multiple_variant_dialog.hide();
+ frappe.call({
+ method:"erpnext.controllers.item_variant.enqueue_multiple_variant_creation",
+ args: {
+ "item": frm.doc.name,
+ "args": selected_attributes
+ },
+ callback: function() {
+ frappe.show_alert({
+ message: __("Variant creation has been queued."),
+ indicator: 'orange'
+ });
+ }
+ });
+ });
+
+ $($(me.multiple_variant_dialog.$wrapper.find('.form-column'))
+ .find('.frappe-control')).css('margin-bottom', '0px');
+
+ me.multiple_variant_dialog.disable_primary_action();
+ me.multiple_variant_dialog.clear();
+ me.multiple_variant_dialog.show();
+ }
+
+ function get_selected_attributes() {
+ let selected_attributes = {};
+ me.multiple_variant_dialog.$wrapper.find('.form-column').each((i, col) => {
+ if(i===0) return;
+ let attribute_name = $(col).find('label').html();
+ selected_attributes[attribute_name] = [];
+ let checked_opts = $(col).find('.checkbox input');
+ checked_opts.each((i, opt) => {
+ if($(opt).is(':checked')) {
+ selected_attributes[attribute_name].push($(opt).attr('data-fieldname'));
+ }
+ });
+ });
+
+ return selected_attributes;
+ }
+
+ let attribute_names = frm.doc.attributes.map(d => d.attribute);
+
+ attribute_names.forEach(function(attribute) {
+ let p = new Promise(resolve => {
+ frappe.call({
+ method:"frappe.client.get_list",
+ args:{
+ doctype:"Item Attribute Value",
+ filters: [
+ ["parent","=", attribute]
+ ],
+ fields: ["attribute_value"]
+ }
+ }).then((r) => {
+ if(r.message) {
+ attr_val_fields[attribute] = r.message.map(function(d) { return d.attribute_value; });
+ resolve();
+ }
+ });
+ });
+
+ promises.push(p);
+
+ }, this);
+
+ Promise.all(promises).then(() => {
+ let fields = make_fields_from_attribute_values(attr_val_fields);
+ make_and_show_dialog(fields);
+ })
+
+ },
+
+ show_single_variant_dialog: function(frm) {
var fields = []
for(var i=0;i< frm.doc.attributes.length;i++){
diff --git a/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
index dbc6a88..1aaf73f 100644
--- a/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
+++ b/erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
@@ -12,16 +13,18 @@
"engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "description",
- "fieldtype": "Text Editor",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Description",
@@ -39,6 +42,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -49,6 +53,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"length": 0,
@@ -66,6 +71,7 @@
"width": "50%"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -76,6 +82,7 @@
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
+ "in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Amount",
@@ -94,17 +101,17 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2016-12-20 05:44:54.700163",
+ "modified": "2017-11-15 19:27:59.542487",
"modified_by": "Administrator",
"module": "Stock",
"name": "Landed Cost Taxes and Charges",
@@ -114,7 +121,9 @@
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
+ "show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
+ "track_changes": 0,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py
index 59075c5..da310aa 100644
--- a/erpnext/stock/doctype/material_request/material_request.py
+++ b/erpnext/stock/doctype/material_request/material_request.py
@@ -158,7 +158,7 @@
and material_request_item = %s and docstatus = 1""",
(self.name, d.name))[0][0])
- if d.ordered_qty and d.ordered_qty > d.qty:
+ if d.ordered_qty and d.ordered_qty > d.stock_qty:
frappe.throw(_("The total Issue / Transfer quantity {0} in Material Request {1} \
cannot be greater than requested quantity {2} for Item {3}").format(d.ordered_qty, d.parent, d.qty, d.item_code))
@@ -170,11 +170,12 @@
frappe.db.set_value(d.doctype, d.name, "ordered_qty", d.ordered_qty)
+ target_ref_field = 'qty' if self.material_request_type == "Manufacture" else 'stock_qty'
self._update_percent_field({
"target_dt": "Material Request Item",
"target_parent_dt": self.doctype,
"target_parent_field": "per_ordered",
- "target_ref_field": "qty",
+ "target_ref_field": target_ref_field,
"target_field": "ordered_qty",
"name": self.name,
}, update_modified)
@@ -216,9 +217,9 @@
target_doc.run_method("calculate_taxes_and_totals")
def update_item(obj, target, source_parent):
- target.conversion_factor = 1
- target.qty = flt(obj.qty) - flt(obj.ordered_qty)
- target.stock_qty = target.qty
+ target.conversion_factor = obj.conversion_factor
+ target.qty = flt(flt(obj.stock_qty) - flt(obj.ordered_qty))/ target.conversion_factor
+ target.stock_qty = (target.qty * target.conversion_factor)
@frappe.whitelist()
def make_purchase_order(source_name, target_doc=None):
@@ -242,7 +243,7 @@
["uom", "uom"]
],
"postprocess": update_item,
- "condition": lambda doc: doc.ordered_qty < doc.qty
+ "condition": lambda doc: doc.ordered_qty < doc.stock_qty
}
}, target_doc, postprocess)
@@ -353,11 +354,11 @@
@frappe.whitelist()
def make_stock_entry(source_name, target_doc=None):
def update_item(obj, target, source_parent):
- qty = flt(obj.qty) - flt(obj.ordered_qty) \
- if flt(obj.qty) > flt(obj.ordered_qty) else 0
+ qty = flt(flt(obj.stock_qty) - flt(obj.ordered_qty))/ target.conversion_factor \
+ if flt(obj.stock_qty) > flt(obj.ordered_qty) else 0
target.qty = qty
- target.transfer_qty = qty
- target.conversion_factor = 1
+ target.transfer_qty = qty * obj.conversion_factor
+ target.conversion_factor = obj.conversion_factor
if source_parent.material_request_type == "Material Transfer":
target.t_warehouse = obj.warehouse
@@ -384,7 +385,7 @@
"uom": "stock_uom",
},
"postprocess": update_item,
- "condition": lambda doc: doc.ordered_qty < doc.qty
+ "condition": lambda doc: doc.ordered_qty < doc.stock_qty
}
}, target_doc, set_missing_values)
@@ -405,7 +406,7 @@
prod_order.fg_warehouse = d.warehouse
prod_order.wip_warehouse = default_wip_warehouse
prod_order.description = d.description
- prod_order.stock_uom = d.uom
+ prod_order.stock_uom = d.stock_uom
prod_order.expected_delivery_date = d.schedule_date
prod_order.sales_order = d.sales_order
prod_order.bom_no = get_item_details(d.item_code).bom_no
diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py
index a24957e..83971d3 100644
--- a/erpnext/stock/doctype/material_request/test_material_request.py
+++ b/erpnext/stock/doctype/material_request/test_material_request.py
@@ -6,7 +6,7 @@
from __future__ import unicode_literals
import frappe, unittest, erpnext
-from frappe.utils import flt
+from frappe.utils import flt, today
from erpnext.stock.doctype.material_request.material_request import raise_production_orders
class TestMaterialRequest(unittest.TestCase):
@@ -558,5 +558,48 @@
item_code= %s and warehouse= %s """, (mr.items[0].item_code, mr.items[0].warehouse))[0][0]
self.assertEquals(requested_qty, new_requested_qty)
+ def test_multi_uom_for_purchase(self):
+ from erpnext.stock.doctype.material_request.material_request import make_purchase_order
+
+ mr = frappe.copy_doc(test_records[0])
+ mr.material_request_type = 'Purchase'
+ item = mr.items[0]
+ mr.schedule_date = today()
+
+ if not frappe.db.get_value('UOM Conversion Detail',
+ {'parent': item.item_code, 'uom': 'Kg'}):
+ item_doc = frappe.get_doc('Item', item.item_code)
+ item_doc.append('uoms', {
+ 'uom': 'Kg',
+ 'conversion_factor': 5
+ })
+ item_doc.save(ignore_permissions=True)
+
+ item.uom = 'Kg'
+ for item in mr.items:
+ item.schedule_date = mr.schedule_date
+
+ mr.insert()
+ self.assertRaises(frappe.ValidationError, make_purchase_order,
+ mr.name)
+
+ mr = frappe.get_doc("Material Request", mr.name)
+ mr.submit()
+ item = mr.items[0]
+
+ self.assertEquals(item.uom, "Kg")
+ self.assertEquals(item.conversion_factor, 5.0)
+ self.assertEquals(item.stock_qty, flt(item.qty * 5))
+
+ po = make_purchase_order(mr.name)
+ self.assertEquals(po.doctype, "Purchase Order")
+ self.assertEquals(len(po.get("items")), len(mr.get("items")))
+
+ po.supplier = '_Test Supplier'
+ po.insert()
+ po.submit()
+ mr = frappe.get_doc("Material Request", mr.name)
+ self.assertEquals(mr.per_ordered, 100)
+
test_dependencies = ["Currency Exchange", "BOM"]
test_records = frappe.get_test_records('Material Request')
diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.json b/erpnext/stock/doctype/material_request_item/material_request_item.json
index 5bf3f27..3434b4d 100644
--- a/erpnext/stock/doctype/material_request_item/material_request_item.json
+++ b/erpnext/stock/doctype/material_request_item/material_request_item.json
@@ -1,5 +1,6 @@
{
"allow_copy": 0,
+ "allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "hash",
@@ -13,6 +14,7 @@
"engine": "InnoDB",
"fields": [
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -46,6 +48,7 @@
"width": "100px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -73,6 +76,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -105,6 +109,7 @@
"width": "100px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 1,
@@ -134,6 +139,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -166,6 +172,7 @@
"width": "250px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -194,6 +201,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -223,6 +231,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -251,6 +260,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -283,11 +293,12 @@
"width": "80px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "uom",
+ "fieldname": "stock_uom",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
@@ -299,23 +310,21 @@
"label": "Stock UOM",
"length": 0,
"no_copy": 0,
- "oldfieldname": "uom",
- "oldfieldtype": "Link",
"options": "UOM",
"permlevel": 0,
- "print_hide": 0,
+ "precision": "",
+ "print_hide": 1,
"print_hide_if_no_value": 0,
- "print_width": "70px",
"read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
- "unique": 0,
- "width": "70px"
+ "unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -349,6 +358,7 @@
"width": "100px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -376,6 +386,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 1,
"collapsible": 0,
@@ -409,6 +420,101 @@
"width": "100px"
},
{
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "uom",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "UOM",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "uom",
+ "oldfieldtype": "Link",
+ "options": "UOM",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "70px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
+ "width": "70px"
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "conversion_factor",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "UOM Conversion Factor",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "stock_qty",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Stock Qty",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -437,6 +543,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -469,6 +576,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -502,6 +610,7 @@
"width": "100px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -532,6 +641,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -561,6 +671,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -591,6 +702,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -618,6 +730,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -650,6 +763,7 @@
"width": "70px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
@@ -682,6 +796,7 @@
"width": "70px"
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -711,6 +826,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
@@ -741,6 +857,7 @@
"unique": 0
},
{
+ "allow_bulk_edit": 0,
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
@@ -771,17 +888,17 @@
"unique": 0
}
],
+ "has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 1,
"image_view": 0,
"in_create": 0,
- "in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
- "modified": "2017-02-20 13:31:50.143583",
+ "modified": "2017-10-25 17:18:59.974778",
"modified_by": "Administrator",
"module": "Stock",
"name": "Material Request Item",
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
index 21364e7..9f634cd 100755
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
@@ -1,3244 +1,3333 @@
{
- "allow_copy": 0,
- "allow_guest_to_view": 0,
- "allow_import": 1,
- "allow_rename": 0,
- "autoname": "naming_series:",
- "beta": 0,
- "creation": "2013-05-21 16:16:39",
- "custom": 0,
- "docstatus": 0,
- "doctype": "DocType",
- "document_type": "Document",
- "editable_grid": 1,
+ "allow_copy": 0,
+ "allow_guest_to_view": 0,
+ "allow_import": 1,
+ "allow_rename": 0,
+ "autoname": "naming_series:",
+ "beta": 0,
+ "creation": "2013-05-21 16:16:39",
+ "custom": 0,
+ "docstatus": 0,
+ "doctype": "DocType",
+ "document_type": "Document",
+ "editable_grid": 1,
"fields": [
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier_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": "",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-user",
- "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": "supplier_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-user",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break0",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "50%",
- "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,
+ "print_width": "50%",
+ "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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "{supplier_name}",
- "fieldname": "title",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Title",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "{supplier_name}",
+ "fieldname": "title",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Title",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "",
- "fieldname": "naming_series",
- "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": "Series",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "naming_series",
- "oldfieldtype": "Select",
- "options": "PREC-\nPREC-RET-",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 1,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "",
+ "fieldname": "naming_series",
+ "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": "Series",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "naming_series",
+ "oldfieldtype": "Select",
+ "options": "PREC-\nPREC-RET-",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 1,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "supplier",
- "oldfieldtype": "Link",
- "options": "Supplier",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "150px",
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "supplier",
+ "oldfieldtype": "Link",
+ "options": "Supplier",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "150px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
+ "unique": 0,
"width": "150px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 1,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "supplier",
- "fieldname": "supplier_name",
- "fieldtype": "Data",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Name",
- "length": 0,
- "no_copy": 0,
- "options": "supplier.supplier_name",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 1,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "supplier",
+ "fieldname": "supplier_name",
+ "fieldtype": "Data",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Name",
+ "length": 0,
+ "no_copy": 0,
+ "options": "supplier.supplier_name",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplier_delivery_note",
- "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": "Supplier Delivery Note",
- "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": "supplier_delivery_note",
+ "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": "Supplier Delivery Note",
+ "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,
- "print_width": "50%",
- "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,
+ "print_width": "50%",
+ "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,
- "default": "Today",
- "depends_on": "",
- "fieldname": "posting_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Date",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "posting_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "100px",
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Today",
+ "depends_on": "",
+ "fieldname": "posting_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Date",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "posting_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "100px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
+ "unique": 0,
"width": "100px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "description": "Time at which materials were received",
- "fieldname": "posting_time",
- "fieldtype": "Time",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Posting Time",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "posting_time",
- "oldfieldtype": "Time",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "100px",
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "description": "Time at which materials were received",
+ "fieldname": "posting_time",
+ "fieldtype": "Time",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Posting Time",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "posting_time",
+ "oldfieldtype": "Time",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "100px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "100px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "eval:doc.docstatus==0",
- "fieldname": "set_posting_time",
- "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": "Edit Posting Date and Time",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "eval:doc.docstatus==0",
+ "fieldname": "set_posting_time",
+ "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": "Edit Posting Date and Time",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "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": 1,
- "label": "Company",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "company",
- "oldfieldtype": "Link",
- "options": "Company",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "150px",
- "read_only": 0,
- "remember_last_selected_value": 1,
- "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": "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": 1,
+ "label": "Company",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "company",
+ "oldfieldtype": "Link",
+ "options": "Company",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "150px",
+ "read_only": 0,
+ "remember_last_selected_value": 1,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "150px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "is_return",
- "fieldtype": "Check",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Is Return",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "is_return",
+ "fieldtype": "Check",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Is Return",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "is_return",
- "fieldname": "return_against",
- "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": "Return Against Purchase Receipt",
- "length": 0,
- "no_copy": 1,
- "options": "Purchase Receipt",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "is_return",
+ "fieldname": "return_against",
+ "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": "Return Against Purchase Receipt",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Purchase Receipt",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "section_addresses",
- "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": "Address and Contact",
- "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": 1,
+ "columns": 0,
+ "fieldname": "section_addresses",
+ "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": "Address and Contact",
+ "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": "supplier_address",
- "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": "Select Supplier Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplier_address",
+ "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": "Select Supplier Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_person",
- "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": "Contact Person",
- "length": 0,
- "no_copy": 0,
- "options": "Contact",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_person",
+ "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": "Contact Person",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Contact",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "",
- "fieldname": "address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 1,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 1,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_mobile",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Mobile No",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_mobile",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Mobile No",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "contact_email",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Contact Email",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "contact_email",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Contact Email",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "col_break_address",
- "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": "col_break_address",
+ "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": "",
- "fieldname": "shipping_address",
- "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": "Select Shipping Address",
- "length": 0,
- "no_copy": 0,
- "options": "Address",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "",
+ "fieldname": "shipping_address",
+ "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": "Select Shipping Address",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Address",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "shipping_address_display",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Shipping Address",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "shipping_address_display",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Address",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "currency_and_price_list",
- "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": "Currency and Price List",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-tag",
- "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": 1,
+ "columns": 0,
+ "fieldname": "currency_and_price_list",
+ "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": "Currency and Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-tag",
+ "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": "currency",
- "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": "Currency",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "currency",
- "oldfieldtype": "Select",
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "currency",
+ "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": "Currency",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "currency",
+ "oldfieldtype": "Select",
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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": "Rate at which supplier's currency is converted to company's base currency",
- "fieldname": "conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "conversion_rate",
- "oldfieldtype": "Currency",
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "Rate at which supplier's currency is converted to company's base currency",
+ "fieldname": "conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "conversion_rate",
+ "oldfieldtype": "Currency",
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break2",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "50%",
- "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_break2",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Column Break",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "50%",
+ "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": "buying_price_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": "Price List",
- "length": 0,
- "no_copy": 0,
- "options": "Price List",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "buying_price_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": "Price List",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Price List",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "buying_price_list",
- "fieldname": "price_list_currency",
- "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": "Price List Currency",
- "length": 0,
- "no_copy": 0,
- "options": "Currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "buying_price_list",
+ "fieldname": "price_list_currency",
+ "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": "Price List Currency",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "depends_on": "buying_price_list",
- "fieldname": "plc_conversion_rate",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Price List Exchange Rate",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "9",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "depends_on": "buying_price_list",
+ "fieldname": "plc_conversion_rate",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Price List Exchange Rate",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "9",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "ignore_pricing_rule",
- "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": "Ignore Pricing Rule",
- "length": 0,
- "no_copy": 1,
- "permlevel": 1,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "ignore_pricing_rule",
+ "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": "Ignore Pricing Rule",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 1,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "items_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-shopping-cart",
- "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": "items_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-shopping-cart",
+ "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": "items",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Items",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_receipt_details",
- "oldfieldtype": "Table",
- "options": "Purchase Receipt Item",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Items",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_receipt_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Receipt Item",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "get_current_stock",
- "fieldtype": "Button",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Get current stock",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Button",
- "options": "get_current_stock",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "get_current_stock",
+ "fieldtype": "Button",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Get current stock",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Button",
+ "options": "get_current_stock",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break0",
- "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,
- "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": "section_break0",
+ "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,
+ "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": "base_total",
- "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 (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total",
+ "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 (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "net_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "150px",
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 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": "base_net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "net_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "150px",
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "150px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_27",
- "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": "column_break_27",
+ "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": "total",
- "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",
- "length": 0,
- "no_copy": 0,
- "options": "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",
+ "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",
+ "length": 0,
+ "no_copy": 0,
+ "options": "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": "net_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Net Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "net_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "net_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Net Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "net_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "Add / Edit Taxes and Charges",
- "fieldname": "taxes_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": "",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-money",
- "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": "Add / Edit Taxes and Charges",
+ "fieldname": "taxes_charges_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": "",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-money",
+ "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": "taxes_and_charges",
- "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": "Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_other_charges",
- "oldfieldtype": "Link",
- "options": "Purchase Taxes and Charges Template",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "taxes_and_charges",
+ "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": "Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_other_charges",
+ "oldfieldtype": "Link",
+ "options": "Purchase Taxes and Charges Template",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Purchase Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "purchase_tax_details",
- "oldfieldtype": "Table",
- "options": "Purchase Taxes and Charges",
- "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": "shipping_col",
+ "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": 1,
- "columns": 0,
- "fieldname": "sec_tax_breakup",
- "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": "Tax Breakup",
- "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": "shipping_rule",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Shipping Rule",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Shipping Rule",
+ "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": "other_charges_calculation",
- "fieldtype": "Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Taxes and Charges Calculation",
- "length": 0,
- "no_copy": 1,
- "oldfieldtype": "HTML",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_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,
+ "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,
- "description": "",
- "fieldname": "totals",
- "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",
- "options": "fa fa-money",
- "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": "taxes",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Purchase Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "purchase_tax_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Taxes and Charges",
+ "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": "base_taxes_and_charges_added",
- "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": "Taxes and Charges Added (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "sec_tax_breakup",
+ "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": "Tax Breakup",
+ "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": "base_taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "other_charges_calculation",
+ "fieldtype": "Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Taxes and Charges Calculation",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldtype": "HTML",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_total_taxes_and_charges",
- "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 Taxes and Charges (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "total_tax",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "totals",
+ "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",
+ "options": "fa fa-money",
+ "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_break3",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "50%",
- "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": "base_taxes_and_charges_added",
+ "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": "Taxes and Charges Added (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_total_taxes_and_charges",
+ "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 Taxes and Charges (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "total_tax",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "column_break3",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "50%",
+ "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": "taxes_and_charges_added",
- "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": "Taxes and Charges Added",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_added_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_and_charges_added",
+ "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": "Taxes and Charges Added",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_added_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "taxes_and_charges_deducted",
- "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": "Taxes and Charges Deducted",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "other_charges_deducted_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "taxes_and_charges_deducted",
+ "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": "Taxes and Charges Deducted",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "other_charges_deducted_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "total_taxes_and_charges",
- "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 Taxes and Charges",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "total_taxes_and_charges",
+ "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 Taxes and Charges",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "discount_amount",
- "columns": 0,
- "fieldname": "section_break_42",
- "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": "Additional Discount",
- "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": 1,
+ "collapsible_depends_on": "discount_amount",
+ "columns": 0,
+ "fieldname": "section_break_42",
+ "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": "Additional Discount",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "Grand Total",
- "fieldname": "apply_discount_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": "Apply Additional Discount On",
- "length": 0,
- "no_copy": 0,
- "options": "\nGrand Total\nNet Total",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Grand Total",
+ "fieldname": "apply_discount_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": "Apply Additional Discount On",
+ "length": 0,
+ "no_copy": 0,
+ "options": "\nGrand Total\nNet Total",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_44",
- "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_44",
+ "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": "additional_discount_percentage",
- "fieldtype": "Float",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Percentage",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "additional_discount_percentage",
+ "fieldtype": "Float",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Percentage",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "discount_amount",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Additional Discount Amount",
- "length": 0,
- "no_copy": 0,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "discount_amount",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Additional Discount Amount",
+ "length": 0,
+ "no_copy": 0,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "section_break_46",
- "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_46",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_grand_total",
- "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": "Grand Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "grand_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_grand_total",
+ "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": "Grand Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "grand_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounding_adjustment",
- "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": "Rounding Adjustment (Company Currency)",
- "length": 0,
- "no_copy": 1,
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounding_adjustment",
+ "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": "Rounding Adjustment (Company Currency)",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "base_in_words",
- "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": "In Words (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "base_in_words",
+ "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": "In Words (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "base_rounded_total",
- "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": "Rounded Total (Company Currency)",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "rounded_total",
- "oldfieldtype": "Currency",
- "options": "Company:company:default_currency",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "base_rounded_total",
+ "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": "Rounded Total (Company Currency)",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "rounded_total",
+ "oldfieldtype": "Currency",
+ "options": "Company:company:default_currency",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "column_break_50",
- "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_50",
+ "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": "grand_total",
- "fieldtype": "Currency",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 1,
- "in_standard_filter": 0,
- "label": "Grand Total",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "grand_total_import",
- "oldfieldtype": "Currency",
- "options": "currency",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "grand_total",
+ "fieldtype": "Currency",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 1,
+ "in_standard_filter": 0,
+ "label": "Grand Total",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "grand_total_import",
+ "oldfieldtype": "Currency",
+ "options": "currency",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "rounding_adjustment",
- "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": "Rounding Adjustment",
- "length": 0,
- "no_copy": 1,
- "options": "currency",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "rounding_adjustment",
+ "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": "Rounding Adjustment",
+ "length": 0,
+ "no_copy": 1,
+ "options": "currency",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "in_words",
- "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": "In Words",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "in_words_import",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "in_words",
+ "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": "In Words",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "in_words_import",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "terms",
- "columns": 0,
- "fieldname": "terms_section_break",
- "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": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-legal",
- "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": 1,
+ "collapsible_depends_on": "terms",
+ "columns": 0,
+ "fieldname": "terms_section_break",
+ "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": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-legal",
+ "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": "tc_name",
- "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": "Terms",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "tc_name",
- "oldfieldtype": "Link",
- "options": "Terms and Conditions",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "tc_name",
+ "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": "Terms",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "tc_name",
+ "oldfieldtype": "Link",
+ "options": "Terms and Conditions",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "terms",
- "fieldtype": "Text Editor",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Terms and Conditions",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "terms",
- "oldfieldtype": "Text Editor",
- "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": "terms",
+ "fieldtype": "Text Editor",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Terms and Conditions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "terms",
+ "oldfieldtype": "Text Editor",
+ "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": 1,
- "collapsible_depends_on": "supplied_items",
- "columns": 0,
- "description": "",
- "fieldname": "raw_material_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": "Raw Materials Supplied",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-table",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "collapsible_depends_on": "supplied_items",
+ "columns": 0,
+ "description": "",
+ "fieldname": "raw_material_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": "Raw Materials Supplied",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-table",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "No",
- "description": "",
- "fieldname": "is_subcontracted",
- "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": "Raw Materials Supplied",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "is_subcontracted",
- "oldfieldtype": "Select",
- "options": "No\nYes",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "No",
+ "description": "",
+ "fieldname": "is_subcontracted",
+ "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": "Raw Materials Supplied",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "is_subcontracted",
+ "oldfieldtype": "Select",
+ "options": "No\nYes",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "supplier_warehouse",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplier Warehouse",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "supplier_warehouse",
- "oldfieldtype": "Link",
- "options": "Warehouse",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "50px",
- "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": "supplier_warehouse",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplier Warehouse",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "supplier_warehouse",
+ "oldfieldtype": "Link",
+ "options": "Warehouse",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "50px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "50px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "supplied_items",
- "fieldtype": "Table",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Supplied Items",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "pr_raw_material_details",
- "oldfieldtype": "Table",
- "options": "Purchase Receipt Item Supplied",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "supplied_items",
+ "fieldtype": "Table",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Supplied Items",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "pr_raw_material_details",
+ "oldfieldtype": "Table",
+ "options": "Purchase Receipt Item Supplied",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "bill_no",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Bill No",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "bill_no",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "bill_no",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Bill No",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "bill_no",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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": "bill_date",
- "fieldtype": "Date",
- "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": "Bill Date",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "bill_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "bill_date",
+ "fieldtype": "Date",
+ "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": "Bill Date",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "bill_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "more_info",
- "fieldtype": "Section Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "More Information",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Section Break",
- "options": "fa fa-file-text",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 1,
+ "columns": 0,
+ "fieldname": "more_info",
+ "fieldtype": "Section Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "More Information",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Section Break",
+ "options": "fa fa-file-text",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "default": "Draft",
- "fieldname": "status",
- "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": 1,
- "label": "Status",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "status",
- "oldfieldtype": "Select",
- "options": "\nDraft\nTo Bill\nCompleted\nCancelled\nClosed",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "150px",
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 1,
- "search_index": 1,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "default": "Draft",
+ "fieldname": "status",
+ "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": 1,
+ "label": "Status",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "status",
+ "oldfieldtype": "Select",
+ "options": "\nDraft\nTo Bill\nCompleted\nCancelled\nClosed",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "150px",
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 1,
+ "search_index": 1,
+ "set_only_once": 0,
+ "unique": 0,
"width": "150px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "Warehouse where you are maintaining stock of rejected items",
- "fieldname": "rejected_warehouse",
- "fieldtype": "Link",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Rejected Warehouse",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "rejected_warehouse",
- "oldfieldtype": "Link",
- "options": "Warehouse",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "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": "Warehouse where you are maintaining stock of rejected items",
+ "fieldname": "rejected_warehouse",
+ "fieldtype": "Link",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Rejected Warehouse",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "rejected_warehouse",
+ "oldfieldtype": "Link",
+ "options": "Warehouse",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "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": "amended_from",
- "fieldtype": "Link",
- "hidden": 1,
- "ignore_user_permissions": 1,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Amended From",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "amended_from",
- "oldfieldtype": "Data",
- "options": "Purchase Receipt",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "150px",
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "amended_from",
+ "fieldtype": "Link",
+ "hidden": 1,
+ "ignore_user_permissions": 1,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Amended From",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "amended_from",
+ "oldfieldtype": "Data",
+ "options": "Purchase Receipt",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "150px",
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "150px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "range",
- "fieldtype": "Data",
- "hidden": 1,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Range",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "range",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "range",
+ "fieldtype": "Data",
+ "hidden": 1,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Range",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "range",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 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_break4",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "Column Break",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "50%",
- "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_break4",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "Column Break",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "50%",
+ "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": "per_billed",
- "fieldtype": "Percent",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "% Amount Billed",
- "length": 0,
- "no_copy": 1,
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "per_billed",
+ "fieldtype": "Percent",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "% Amount Billed",
+ "length": 0,
+ "no_copy": 1,
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "subscription_detail",
- "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": "Subscription Detail",
- "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": "subscription_detail",
+ "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": "Subscription Detail",
+ "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": "subscription",
- "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": "Subscription",
- "length": 0,
- "no_copy": 1,
- "options": "Subscription",
- "permlevel": 0,
- "precision": "",
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 1,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "subscription",
+ "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": "Subscription",
+ "length": 0,
+ "no_copy": 1,
+ "options": "Subscription",
+ "permlevel": 0,
+ "precision": "",
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 1,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "columns": 0,
- "fieldname": "printing_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": "Printing 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": 1,
+ "columns": 0,
+ "fieldname": "printing_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": "Printing 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": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "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": "Letter Head",
- "length": 0,
- "no_copy": 0,
- "options": "Letter Head",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "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": "Letter Head",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Letter Head",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 1,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "select_print_heading",
- "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": "Print Heading",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "select_print_heading",
- "oldfieldtype": "Link",
- "options": "Print Heading",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 1,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 1,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "select_print_heading",
+ "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": "Print Heading",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "select_print_heading",
+ "oldfieldtype": "Link",
+ "options": "Print Heading",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 1,
+ "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": "language",
- "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": "Print Language",
- "length": 0,
- "no_copy": 0,
- "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": "language",
+ "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": "Print Language",
+ "length": 0,
+ "no_copy": 0,
+ "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": "other_details",
- "fieldtype": "HTML",
- "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": "Other Details",
- "length": 0,
- "no_copy": 0,
- "oldfieldtype": "HTML",
- "options": "<div class=\"columnHeading\">Other Details</div>",
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "print_width": "30%",
- "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": "other_details",
+ "fieldtype": "HTML",
+ "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": "Other Details",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldtype": "HTML",
+ "options": "<div class=\"columnHeading\">Other Details</div>",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "print_width": "30%",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "30%"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "instructions",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Instructions",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "instructions",
- "oldfieldtype": "Text",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "instructions",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Instructions",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "instructions",
+ "oldfieldtype": "Text",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "fieldname": "remarks",
- "fieldtype": "Small Text",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Remarks",
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 1,
- "print_hide_if_no_value": 0,
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "remarks",
+ "fieldtype": "Small Text",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Remarks",
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
"unique": 0
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 1,
- "collapsible_depends_on": "transporter_name",
- "columns": 0,
- "fieldname": "transporter_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": "Transporter Details",
- "length": 0,
- "no_copy": 0,
- "options": "fa fa-truck",
- "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": 1,
+ "collapsible_depends_on": "transporter_name",
+ "columns": 0,
+ "fieldname": "transporter_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": "Transporter Details",
+ "length": 0,
+ "no_copy": 0,
+ "options": "fa fa-truck",
+ "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": "transporter_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": "Transporter Name",
- "length": 0,
- "no_copy": 0,
- "oldfieldname": "transporter_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": 0,
- "search_index": 0,
- "set_only_once": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "transporter_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": "Transporter Name",
+ "length": 0,
+ "no_copy": 0,
+ "oldfieldname": "transporter_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": 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_break5",
- "fieldtype": "Column Break",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "length": 0,
- "no_copy": 0,
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "50%",
- "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_break5",
+ "fieldtype": "Column Break",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "length": 0,
+ "no_copy": 0,
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "50%",
+ "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": "",
- "fieldname": "lr_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": "Vehicle Number",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "lr_no",
- "oldfieldtype": "Data",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "100px",
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "lr_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": "Vehicle Number",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "lr_no",
+ "oldfieldtype": "Data",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "100px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "100px"
- },
+ },
{
- "allow_bulk_edit": 0,
- "allow_on_submit": 0,
- "bold": 0,
- "collapsible": 0,
- "columns": 0,
- "description": "",
- "fieldname": "lr_date",
- "fieldtype": "Date",
- "hidden": 0,
- "ignore_user_permissions": 0,
- "ignore_xss_filter": 0,
- "in_filter": 0,
- "in_global_search": 0,
- "in_list_view": 0,
- "in_standard_filter": 0,
- "label": "Vehicle Date",
- "length": 0,
- "no_copy": 1,
- "oldfieldname": "lr_date",
- "oldfieldtype": "Date",
- "permlevel": 0,
- "print_hide": 0,
- "print_hide_if_no_value": 0,
- "print_width": "100px",
- "read_only": 0,
- "remember_last_selected_value": 0,
- "report_hide": 0,
- "reqd": 0,
- "search_index": 0,
- "set_only_once": 0,
- "unique": 0,
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "description": "",
+ "fieldname": "lr_date",
+ "fieldtype": "Date",
+ "hidden": 0,
+ "ignore_user_permissions": 0,
+ "ignore_xss_filter": 0,
+ "in_filter": 0,
+ "in_global_search": 0,
+ "in_list_view": 0,
+ "in_standard_filter": 0,
+ "label": "Vehicle Date",
+ "length": 0,
+ "no_copy": 1,
+ "oldfieldname": "lr_date",
+ "oldfieldtype": "Date",
+ "permlevel": 0,
+ "print_hide": 0,
+ "print_hide_if_no_value": 0,
+ "print_width": "100px",
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0,
"width": "100px"
}
- ],
- "has_web_view": 0,
- "hide_heading": 0,
- "hide_toolbar": 0,
- "icon": "fa fa-truck",
- "idx": 261,
- "image_view": 0,
- "in_create": 0,
- "is_submittable": 1,
- "issingle": 0,
- "istable": 0,
- "max_attachments": 0,
- "menu_index": 0,
- "modified": "2017-11-15 01:04:31.132077",
- "modified_by": "Administrator",
- "module": "Stock",
- "name": "Purchase Receipt",
- "owner": "Administrator",
+ ],
+ "has_web_view": 0,
+ "hide_heading": 0,
+ "hide_toolbar": 0,
+ "icon": "fa fa-truck",
+ "idx": 261,
+ "image_view": 0,
+ "in_create": 0,
+ "is_submittable": 1,
+ "issingle": 0,
+ "istable": 0,
+ "max_attachments": 0,
+ "menu_index": 0,
+ "modified": "2017-11-15 01:04:31.132077",
+ "modified_by": "Administrator",
+ "module": "Stock",
+ "name": "Purchase Receipt",
+ "owner": "Administrator",
"permissions": [
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Stock Manager",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Stock Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Stock User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Stock User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "amend": 1,
- "apply_user_permissions": 0,
- "cancel": 1,
- "create": 1,
- "delete": 1,
- "email": 1,
- "export": 0,
- "if_owner": 0,
- "import": 0,
- "permlevel": 0,
- "print": 1,
- "read": 1,
- "report": 1,
- "role": "Purchase User",
- "set_user_permissions": 0,
- "share": 1,
- "submit": 1,
+ "amend": 1,
+ "apply_user_permissions": 0,
+ "cancel": 1,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 0,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Purchase User",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 1,
"write": 1
- },
+ },
{
- "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": 1,
- "role": "Accounts 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": 1,
+ "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": 1,
- "print": 0,
- "read": 1,
- "report": 0,
- "role": "Stock Manager",
- "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": 1,
+ "print": 0,
+ "read": 1,
+ "report": 0,
+ "role": "Stock Manager",
+ "set_user_permissions": 0,
+ "share": 0,
+ "submit": 0,
"write": 1
}
- ],
- "quick_entry": 0,
- "read_only": 0,
- "read_only_onload": 1,
- "search_fields": "status, posting_date, supplier",
- "show_name_in_global_search": 1,
- "sort_field": "modified",
- "sort_order": "DESC",
- "timeline_field": "supplier",
- "title_field": "title",
- "track_changes": 1,
+ ],
+ "quick_entry": 0,
+ "read_only": 0,
+ "read_only_onload": 1,
+ "search_fields": "status, posting_date, supplier",
+ "show_name_in_global_search": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "timeline_field": "supplier",
+ "title_field": "title",
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 5315253..853b20d 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -14,8 +14,6 @@
]
}
});
- // },
- // onload_post_render: function(frm) {
frm.set_query('batch_no', 'items', function(doc, cdt, cdn) {
var item = locals[cdt][cdn];
@@ -40,9 +38,8 @@
}
}
});
-
-
},
+
refresh: function(frm) {
if(!frm.doc.docstatus) {
frm.add_custom_button(__('Make Material Request'), function() {
@@ -73,10 +70,12 @@
frm.trigger("toggle_display_account_head");
}
},
+
purpose: function(frm) {
frm.fields_dict.items.grid.refresh();
frm.cscript.toggle_related_fields(frm.doc);
},
+
company: function(frm) {
if(frm.doc.company) {
var company_doc = frappe.get_doc(":Company", frm.doc.company);
@@ -86,6 +85,7 @@
frm.trigger("toggle_display_account_head");
}
},
+
set_serial_no: function(frm, cdt, cdn) {
var d = frappe.model.get_doc(cdt, cdn);
if(!d.item_code && !d.s_warehouse && !d.qty) return;
@@ -104,20 +104,142 @@
}
});
},
+
toggle_display_account_head: function(frm) {
var enabled = erpnext.is_perpetual_inventory_enabled(frm.doc.company);
frm.fields_dict["items"].grid.set_column_disp(["cost_center", "expense_account"], enabled);
- }
+ },
+
+ set_basic_rate: function(frm, cdt, cdn, callback) {
+ const item = locals[cdt][cdn];
+ item.transfer_qty = flt(item.qty) * flt(item.conversion_factor);
+
+ const args = {
+ 'item_code' : item.item_code,
+ 'posting_date' : frm.doc.posting_date,
+ 'posting_time' : frm.doc.posting_time,
+ 'warehouse' : cstr(item.s_warehouse) || cstr(item.t_warehouse),
+ 'serial_no ' : item.serial_no,
+ 'company' : frm.doc.company,
+ 'qty' : item.s_warehouse ? -1*flt(item.transfer_qty) : flt(item.transfer_qty)
+ };
+
+ frappe.call({
+ method: "erpnext.stock.utils.get_incoming_rate",
+ args: {
+ args: args
+ },
+ callback: function(r) {
+ frappe.model.set_value(cdt, cdn, 'basic_rate', r.message);
+ frm.events.calculate_basic_amount(frm, item);
+
+ if (callback) {
+ callback();
+ }
+ }
+ })
+ },
+
+ get_warehouse_details: function(frm, cdt, cdn, callback) {
+ var child = locals[cdt][cdn];
+ if(!child.bom_no) {
+ frappe.call({
+ method: "erpnext.stock.doctype.stock_entry.stock_entry.get_warehouse_details",
+ args: {
+ "args": {
+ 'item_code': child.item_code,
+ 'warehouse': cstr(child.s_warehouse) || cstr(child.t_warehouse),
+ 'transfer_qty': child.transfer_qty,
+ 'serial_no': child.serial_no,
+ 'qty': child.s_warehouse ? -1* child.transfer_qty : child.transfer_qty,
+ 'posting_date': frm.doc.posting_date,
+ 'posting_time': frm.doc.posting_time
+ }
+ },
+ callback: function(r) {
+ if (!r.exc) {
+ $.extend(child, r.message);
+ frm.events.calculate_basic_amount(frm, child);
+ }
+
+ if (callback) {
+ callback();
+ }
+ }
+ });
+ }
+ },
+
+ calculate_basic_amount: function(frm, item) {
+ item.basic_amount = flt(flt(item.transfer_qty) * flt(item.basic_rate),
+ precision("basic_amount", item));
+
+ frm.events.calculate_amount(frm);
+ },
+
+ calculate_amount: function(frm) {
+ frm.events.calculate_total_additional_costs(frm);
+
+ const total_basic_amount = frappe.utils.sum(
+ (frm.doc.items || []).map(function(i) { return i.t_warehouse ? flt(i.basic_amount) : 0; })
+ );
+
+ for (let i in frm.doc.items) {
+ let item = frm.doc.items[i];
+
+ if (item.t_warehouse && total_basic_amount) {
+ item.additional_cost = (flt(item.basic_amount) / total_basic_amount) * frm.doc.total_additional_costs;
+ } else {
+ item.additional_cost = 0;
+ }
+
+ item.amount = flt(item.basic_amount + flt(item.additional_cost),
+ precision("amount", item));
+
+ item.valuation_rate = flt(flt(item.basic_rate)
+ + (flt(item.additional_cost) / flt(item.transfer_qty)),
+ precision("valuation_rate", item));
+ }
+
+ refresh_field('items');
+ },
+
+ calculate_total_additional_costs: function(frm) {
+ const total_additional_costs = frappe.utils.sum(
+ (frm.doc.additional_costs || []).map(function(c) { return flt(c.amount); })
+ );
+
+ frm.set_value("total_additional_costs",
+ flt(total_additional_costs, precision("total_additional_costs")));
+ },
})
frappe.ui.form.on('Stock Entry Detail', {
qty: function(frm, cdt, cdn) {
- frm.events.set_serial_no(frm, cdt, cdn);
+ frm.events.set_basic_rate(frm, cdt, cdn, () => {
+ frm.events.set_serial_no(frm, cdt, cdn);
+ });
+ },
+
+ conversion_factor: function(frm, cdt, cdn) {
+ frm.events.set_basic_rate(frm, cdt, cdn);
},
s_warehouse: function(frm, cdt, cdn) {
- frm.events.set_serial_no(frm, cdt, cdn);
+ frm.events.get_warehouse_details(frm, cdt, cdn, () => {
+ frm.events.set_serial_no(frm, cdt, cdn);
+ });
},
+
+ t_warehouse: function(frm, cdt, cdn) {
+ frm.events.get_warehouse_details(frm, cdt, cdn);
+ },
+
+ basic_rate: function(frm, cdt, cdn) {
+ var item = locals[cdt][cdn];
+ frm.events.calculate_basic_amount(frm, item);
+ },
+
barcode: function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
if (d.barcode) {
@@ -132,6 +254,7 @@
});
}
},
+
uom: function(doc, cdt, cdn) {
var d = locals[cdt][cdn];
if(d.uom && d.item_code){
@@ -150,6 +273,7 @@
});
}
},
+
item_code: function(frm, cdt, cdn) {
var d = locals[cdt][cdn];
if(d.item_code) {
@@ -191,7 +315,7 @@
frappe.ui.form.on('Landed Cost Taxes and Charges', {
amount: function(frm) {
- frm.events.calculate_amount();
+ frm.events.calculate_amount(frm);
}
});
@@ -330,12 +454,6 @@
}
},
- qty: function(doc, cdt, cdn) {
- var d = locals[cdt][cdn];
- d.transfer_qty = flt(d.qty) * flt(d.conversion_factor);
- this.calculate_basic_amount(d);
- },
-
production_order: function() {
var me = this;
this.toggle_enable_bom();
@@ -434,88 +552,6 @@
erpnext.setup_serial_no();
},
- basic_rate: function(doc, cdt, cdn) {
- var item = frappe.model.get_doc(cdt, cdn);
- this.calculate_basic_amount(item);
- },
-
- s_warehouse: function(doc, cdt, cdn) {
- this.get_warehouse_details(doc, cdt, cdn)
- },
-
- t_warehouse: function(doc, cdt, cdn) {
- this.get_warehouse_details(doc, cdt, cdn)
- },
-
- get_warehouse_details: function(doc, cdt, cdn) {
- var me = this;
- var d = locals[cdt][cdn];
- if(!d.bom_no) {
- frappe.call({
- method: "erpnext.stock.doctype.stock_entry.stock_entry.get_warehouse_details",
- args: {
- "args": {
- 'item_code': d.item_code,
- 'warehouse': cstr(d.s_warehouse) || cstr(d.t_warehouse),
- 'transfer_qty': d.transfer_qty,
- 'serial_no': d.serial_no,
- 'qty': d.s_warehouse ? -1* d.qty : d.qty,
- 'posting_date': this.frm.doc.posting_date,
- 'posting_time': this.frm.doc.posting_time
- }
- },
- callback: function(r) {
- if (!r.exc) {
- $.extend(d, r.message);
- me.calculate_basic_amount(d);
- }
- }
- });
- }
- },
-
- calculate_basic_amount: function(item) {
- item.basic_amount = flt(flt(item.transfer_qty) * flt(item.basic_rate),
- precision("basic_amount", item));
-
- this.calculate_amount();
- },
-
- calculate_amount: function() {
- this.calculate_total_additional_costs();
-
- var total_basic_amount = frappe.utils.sum(
- (this.frm.doc.items || []).map(function(i) { return i.t_warehouse ? flt(i.basic_amount) : 0; })
- );
-
- for (var i in this.frm.doc.items) {
- var item = this.frm.doc.items[i];
-
- if (item.t_warehouse && total_basic_amount) {
- item.additional_cost = (flt(item.basic_amount) / total_basic_amount) * this.frm.doc.total_additional_costs;
- } else {
- item.additional_cost = 0;
- }
-
- item.amount = flt(item.basic_amount + flt(item.additional_cost),
- precision("amount", item));
-
- item.valuation_rate = flt(flt(item.basic_rate)
- + (flt(item.additional_cost) / flt(item.transfer_qty)),
- precision("valuation_rate", item));
- }
-
- refresh_field('items');
- },
-
- calculate_total_additional_costs: function() {
- var total_additional_costs = frappe.utils.sum(
- (this.frm.doc.additional_costs || []).map(function(c) { return flt(c.amount); })
- );
-
- this.frm.set_value("total_additional_costs", flt(total_additional_costs, precision("total_additional_costs")));
- },
-
toggle_related_fields: function(doc) {
this.frm.toggle_enable("from_warehouse", doc.purpose!='Material Receipt');
this.frm.toggle_enable("to_warehouse", doc.purpose!='Material Issue');
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index fc45f13..4d79e13 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -517,7 +517,7 @@
args['posting_date'] = self.posting_date
args['posting_time'] = self.posting_time
- stock_and_rate = args.get('warehouse') and get_warehouse_details(args) or {}
+ stock_and_rate = get_warehouse_details(args) if args.get('warehouse') else {}
ret.update(stock_and_rate)
# automatically select batch for outgoing item
diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 539e8a5..e5cd2fe 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -11,6 +11,7 @@
from frappe.model.meta import get_field_precision
from erpnext.stock.doctype.batch.batch import get_batch_no
+
@frappe.whitelist()
def get_item_details(args):
"""
@@ -84,7 +85,6 @@
if out.has_batch_no and not args.get("batch_no"):
out.batch_no = get_batch_no(out.item_code, out.warehouse, out.qty)
-
if args.transaction_date and item.lead_time_days:
out.schedule_date = out.lead_time_date = add_days(args.transaction_date,
item.lead_time_days)
@@ -96,16 +96,6 @@
return out
- # print(frappe._dict({
- # 'has_serial_no' : out.has_serial_no,
- # 'has_batch_no' : out.has_batch_no
- # }))
-
- # return frappe._dict({
- # 'has_serial_no' : out.has_serial_no,
- # 'has_batch_no' : out.has_batch_no
- # })
-
def process_args(args):
if isinstance(args, basestring):
args = json.loads(args)
@@ -123,6 +113,7 @@
set_transaction_type(args)
return args
+
@frappe.whitelist()
def get_item_code(barcode=None, serial_no=None):
if barcode:
@@ -136,6 +127,7 @@
return item_code
+
def validate_item_details(args, item):
if not args.company:
throw(_("Please specify Company"))
@@ -143,14 +135,52 @@
from erpnext.stock.doctype.item.item import validate_end_of_life
validate_end_of_life(item.name, item.end_of_life, item.disabled)
- if args.transaction_type=="selling" and cint(item.has_variants):
+ if args.transaction_type == "selling" and cint(item.has_variants):
throw(_("Item {0} is a template, please select one of its variants").format(item.name))
- elif args.transaction_type=="buying" and args.doctype != "Material Request":
+ elif args.transaction_type == "buying" and args.doctype != "Material Request":
if args.get("is_subcontracted") == "Yes" and item.is_sub_contracted_item != 1:
throw(_("Item {0} must be a Sub-contracted Item").format(item.name))
+
def get_basic_details(args, item):
+ """
+ :param args: {
+ "item_code": "",
+ "warehouse": None,
+ "customer": "",
+ "conversion_rate": 1.0,
+ "selling_price_list": None,
+ "price_list_currency": None,
+ "plc_conversion_rate": 1.0,
+ "doctype": "",
+ "name": "",
+ "supplier": None,
+ "transaction_date": None,
+ "conversion_rate": 1.0,
+ "buying_price_list": None,
+ "is_subcontracted": "Yes" / "No",
+ "ignore_pricing_rule": 0/1
+ "project": "",
+ barcode: "",
+ serial_no: "",
+ warehouse: "",
+ currency: "",
+ update_stock: "",
+ price_list: "",
+ company: "",
+ order_type: "",
+ is_pos: "",
+ ignore_pricing_rule: "",
+ project: "",
+ qty: "",
+ stock_qty: "",
+ conversion_factor: ""
+ }
+ :param item: `item_code` of Item object
+ :return: frappe._dict
+ """
+
if not item:
item = frappe.get_doc("Item", args.get("item_code"))
@@ -160,15 +190,21 @@
from frappe.defaults import get_user_default_as_list
user_default_warehouse_list = get_user_default_as_list('Warehouse')
user_default_warehouse = user_default_warehouse_list[0] \
- if len(user_default_warehouse_list)==1 else ""
+ if len(user_default_warehouse_list) == 1 else ""
warehouse = user_default_warehouse or item.default_warehouse or args.warehouse
+ material_request_type = ''
+ if args.get('doctype') == "Material Request":
+ material_request_type = frappe.db.get_value('Material Request',
+ args.get('name'), 'material_request_type')
+
#Set the UOM to the Default Sales UOM or Default Purchase UOM if configured in the Item Master
if not args.uom:
if args.get('doctype') in ['Quotation', 'Sales Order', 'Delivery Note', 'Sales Invoice']:
args.uom = item.sales_uom if item.sales_uom else item.stock_uom
- elif args.get('doctype') in ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']:
+ elif (args.get('doctype') in ['Purchase Order', 'Purchase Receipt', 'Purchase Invoice']) or \
+ (args.get('doctype') == 'Material Request' and material_request_type == 'Purchase'):
args.uom = item.purchase_uom if item.purchase_uom else item.stock_uom
else:
args.uom = item.stock_uom
@@ -211,7 +247,7 @@
out.conversion_factor = 1.0
else:
out.conversion_factor = args.conversion_factor or \
- get_conversion_factor(item.item_code, args.uom).get("conversion_factor") or 1.0
+ get_conversion_factor(item.item_code, args.uom).get("conversion_factor") or 1.0
args.conversion_factor = out.conversion_factor
out.stock_qty = out.qty * out.conversion_factor
@@ -231,6 +267,7 @@
return out
+
def get_default_income_account(args, item):
return (item.income_account
or args.income_account
@@ -532,8 +569,6 @@
bom = frappe.db.get_value("BOM", {"docstatus": 1, "is_default": 1, "is_active": 1, "item": item_code})
if bom:
return bom
- else:
- frappe.throw(_("No default BOM exists for Item {0}").format(item_code))
def get_valuation_rate(item_code, warehouse=None):
item = frappe.get_doc("Item", item_code)
diff --git a/erpnext/stock/reorder_item.py b/erpnext/stock/reorder_item.py
index 46b8840..9924156 100644
--- a/erpnext/stock/reorder_item.py
+++ b/erpnext/stock/reorder_item.py
@@ -122,22 +122,33 @@
mr.update({
"company": company,
"transaction_date": nowdate(),
- "material_request_type": "Material Transfer" if request_type=="Transfer" else request_type
+ "material_request_type": "Material Transfer" if request_type=="Transfer" else request_type,
+ "schedule_date": add_days(nowdate(), cint(items[0].lead_time_days))
})
for d in items:
d = frappe._dict(d)
item = frappe.get_doc("Item", d.item_code)
+ uom = item.stock_uom
+ conversion_factor = 1.0
+
+ if request_type == 'Purchase':
+ uom = item.purchase_uom or item.stock_uom
+ if uom != item.stock_uom:
+ conversion_factor = frappe.db.get_value("UOM Conversion Detail",
+ {'parent': item.name, 'uom': uom}, 'conversion_factor') or 1.0
+
mr.append("items", {
"doctype": "Material Request Item",
"item_code": d.item_code,
"schedule_date": add_days(nowdate(),cint(item.lead_time_days)),
- "uom": item.stock_uom,
+ "qty": d.reorder_qty / conversion_factor,
+ "uom": uom,
+ "stock_uom": item.stock_uom,
"warehouse": d.warehouse,
"item_name": item.item_name,
"description": item.description,
"item_group": item.item_group,
- "qty": d.reorder_qty,
"brand": item.brand,
})
diff --git a/erpnext/schools/__init__.py b/erpnext/stock/report/item_variant_details/__init__.py
similarity index 100%
copy from erpnext/schools/__init__.py
copy to erpnext/stock/report/item_variant_details/__init__.py
diff --git a/erpnext/stock/report/item_variant_details/item_variant_details.js b/erpnext/stock/report/item_variant_details/item_variant_details.js
new file mode 100644
index 0000000..78eab40
--- /dev/null
+++ b/erpnext/stock/report/item_variant_details/item_variant_details.js
@@ -0,0 +1,21 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+/* eslint-disable */
+
+frappe.query_reports["Item Variant Details"] = {
+ "filters": [
+ {
+ reqd: 1,
+ default: "",
+ options: "Item",
+ label: __("Item"),
+ fieldname: "item",
+ fieldtype: "Link",
+ get_query: () => {
+ return {
+ filters: { "has_variants": 1 }
+ }
+ }
+ }
+ ]
+}
diff --git a/erpnext/stock/report/item_variant_details/item_variant_details.json b/erpnext/stock/report/item_variant_details/item_variant_details.json
new file mode 100644
index 0000000..1d27903
--- /dev/null
+++ b/erpnext/stock/report/item_variant_details/item_variant_details.json
@@ -0,0 +1,44 @@
+{
+ "add_total_row": 0,
+ "apply_user_permissions": 1,
+ "creation": "2017-11-16 06:05:36.132547",
+ "disabled": 0,
+ "docstatus": 0,
+ "doctype": "Report",
+ "idx": 0,
+ "is_standard": "Yes",
+ "modified": "2017-11-16 06:24:10.818276",
+ "modified_by": "Administrator",
+ "module": "Stock",
+ "name": "Item Variant Details",
+ "owner": "Administrator",
+ "ref_doctype": "Item",
+ "report_name": "Item Variant Details",
+ "report_type": "Script Report",
+ "roles": [
+ {
+ "role": "Maintenance User"
+ },
+ {
+ "role": "Accounts User"
+ },
+ {
+ "role": "Stock User"
+ },
+ {
+ "role": "Stock Manager"
+ },
+ {
+ "role": "Purchase User"
+ },
+ {
+ "role": "Sales User"
+ },
+ {
+ "role": "Manufacturing User"
+ },
+ {
+ "role": "Item Manager"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/stock/report/item_variant_details/item_variant_details.py b/erpnext/stock/report/item_variant_details/item_variant_details.py
new file mode 100644
index 0000000..67b6b5f
--- /dev/null
+++ b/erpnext/stock/report/item_variant_details/item_variant_details.py
@@ -0,0 +1,180 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe import _
+
+def execute(filters=None):
+ columns = get_columns(filters.item)
+ data = get_data(filters.item)
+ return columns, data
+
+def get_data(item):
+ if not item:
+ return []
+ item_dicts = []
+
+ 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])
+
+ order_count_map = get_open_sales_orders_map(variants)
+ stock_details_map = get_stock_details_map(variants)
+ buying_price_map = get_buying_price_map(variants)
+ selling_price_map = get_selling_price_map(variants)
+ attr_val_map = get_attribute_values_map(variants)
+
+ attribute_list = [d[0] for d in frappe.db.sql("""select attribute
+ from `tabItem Variant Attribute`
+ where parent in ({variants}) group by attribute""".format(variants=variants))]
+
+ # Prepare dicts
+ variant_dicts = [{"variant_name": d['name']} for d in variant_results]
+ for item_dict in variant_dicts:
+ name = item_dict["variant_name"]
+
+ for d in attribute_list:
+ item_dict[d] = attr_val_map[name][d]
+
+ item_dict["Open Orders"] = order_count_map.get(name) or 0
+
+ if stock_details_map.get(name):
+ item_dict["Inventory"] = stock_details_map.get(name)["Inventory"] or 0
+ item_dict["In Production"] = stock_details_map.get(name)["In Production"] or 0
+ item_dict["Available Selling"] = stock_details_map.get(name)["Available Selling"] or 0
+ else:
+ item_dict["Inventory"] = item_dict["In Production"] = item_dict["Available Selling"] = 0
+
+ item_dict["Avg. Buying Price List Rate"] = buying_price_map.get(name) or 0
+ item_dict["Avg. Selling Price List Rate"] = selling_price_map.get(name) or 0
+
+ item_dicts.append(item_dict)
+
+ return item_dicts
+
+def get_columns(item):
+ columns = [{
+ "fieldname": "variant_name",
+ "label": "Variant",
+ "fieldtype": "Link",
+ "options": "Item",
+ "width": 200
+ }]
+
+ item_doc = frappe.get_doc("Item", item)
+
+ for d in item_doc.attributes:
+ columns.append(d.attribute + ":Data:100")
+
+ columns += [_("Avg. Buying Price List Rate") + ":Currency:110", _("Avg. Selling Price List Rate") + ":Currency:110",
+ _("Inventory") + ":Float:100", _("In Production") + ":Float:100",
+ _("Open Orders") + ":Float:100", _("Available Selling") + ":Float:100"
+ ]
+
+ return columns
+
+def get_open_sales_orders_map(variants):
+ open_sales_orders = frappe.db.sql("""
+ select
+ count(*) as count,
+ item_code
+ from
+ `tabSales Order Item`
+ where
+ docstatus = 1 and
+ qty > ifnull(delivered_qty, 0) and
+ item_code in ({variants})
+ group by
+ item_code
+ """.format(variants=variants), as_dict=1)
+
+ order_count_map = {}
+ for d in open_sales_orders:
+ order_count_map[d["item_code"]] = d["count"]
+
+ return order_count_map
+
+def get_stock_details_map(variants):
+ stock_details = frappe.db.sql("""
+ select
+ sum(planned_qty) as planned_qty,
+ sum(actual_qty) as actual_qty,
+ sum(projected_qty) as projected_qty,
+ item_code
+ from
+ `tabBin`
+ where
+ item_code in ({variants})
+ group by
+ item_code
+ """.format(variants=variants), as_dict=1)
+
+ stock_details_map = {}
+ for d in stock_details:
+ name = d["item_code"]
+ stock_details_map[name] = {
+ "Inventory" :d["actual_qty"],
+ "In Production" :d["planned_qty"],
+ "Available Selling" :d["projected_qty"]
+ }
+
+ return stock_details_map
+
+def get_buying_price_map(variants):
+ buying = frappe.db.sql("""
+ select
+ avg(price_list_rate) as avg_rate,
+ item_code
+ from
+ `tabItem Price`
+ where
+ item_code in ({variants}) and buying=1
+ group by
+ item_code
+ """.format(variants=variants), as_dict=1)
+
+ buying_price_map = {}
+ for d in buying:
+ buying_price_map[d["item_code"]] = d["avg_rate"]
+
+ return buying_price_map
+
+def get_selling_price_map(variants):
+ selling = frappe.db.sql("""
+ select
+ avg(price_list_rate) as avg_rate,
+ item_code
+ from
+ `tabItem Price`
+ where
+ item_code in ({variants}) and selling=1
+ group by
+ item_code
+ """.format(variants=variants), as_dict=1)
+
+ selling_price_map = {}
+ for d in selling:
+ selling_price_map[d["item_code"]] = d["avg_rate"]
+
+ return selling_price_map
+
+def get_attribute_values_map(variants):
+ list_attr = frappe.db.sql("""
+ select
+ attribute, attribute_value, parent
+ from
+ `tabItem Variant Attribute`
+ where
+ parent in ({variants})
+ """.format(variants=variants), as_dict=1)
+
+ attr_val_map = {}
+ for d in list_attr:
+ name = d["parent"]
+ if not attr_val_map.get(name):
+ attr_val_map[name] = {}
+
+ attr_val_map[name][d["attribute"]] = d["attribute_value"]
+
+ return attr_val_map
diff --git a/erpnext/support/doctype/issue/issue.json b/erpnext/support/doctype/issue/issue.json
index 529ae89..137b088 100644
--- a/erpnext/support/doctype/issue/issue.json
+++ b/erpnext/support/doctype/issue/issue.json
@@ -105,11 +105,11 @@
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
- "bold": 1,
+ "bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "mins_to_first_response",
- "fieldtype": "Float",
+ "fieldname": "issue_type",
+ "fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -117,14 +117,15 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Mins to First Response",
+ "label": "Issue Type",
"length": 0,
"no_copy": 0,
+ "options": "Issue Type",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
- "read_only": 1,
+ "read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
@@ -324,10 +325,10 @@
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
- "collapsible": 0,
+ "collapsible": 1,
"columns": 0,
- "fieldname": "column_break_9",
- "fieldtype": "Column Break",
+ "fieldname": "response",
+ "fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -335,6 +336,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
+ "label": "Response",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -352,12 +354,11 @@
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
- "bold": 0,
+ "bold": 1,
"collapsible": 0,
"columns": 0,
- "depends_on": "eval:!doc.__islocal",
- "fieldname": "resolution_date",
- "fieldtype": "Datetime",
+ "fieldname": "mins_to_first_response",
+ "fieldtype": "Float",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -365,12 +366,11 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Resolution Date",
+ "label": "Mins to First Response",
"length": 0,
- "no_copy": 1,
- "oldfieldname": "resolution_date",
- "oldfieldtype": "Date",
+ "no_copy": 0,
"permlevel": 0,
+ "precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1,
@@ -425,7 +425,7 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Contact",
+ "label": "Reference",
"length": 0,
"no_copy": 0,
"options": "fa fa-pushpin",
@@ -595,6 +595,36 @@
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
+ "collapsible": 0,
+ "columns": 0,
+ "fieldname": "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": "Company",
+ "length": 0,
+ "no_copy": 0,
+ "options": "Company",
+ "permlevel": 0,
+ "print_hide": 1,
+ "print_hide_if_no_value": 0,
+ "read_only": 0,
+ "remember_last_selected_value": 0,
+ "report_hide": 0,
+ "reqd": 0,
+ "search_index": 0,
+ "set_only_once": 0,
+ "unique": 0
+ },
+ {
+ "allow_bulk_edit": 0,
+ "allow_on_submit": 0,
+ "bold": 0,
"collapsible": 1,
"columns": 0,
"fieldname": "section_break_19",
@@ -629,7 +659,7 @@
"columns": 0,
"depends_on": "eval:!doc.__islocal",
"fieldname": "resolution_details",
- "fieldtype": "Text Editor",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -752,8 +782,9 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "company",
- "fieldtype": "Link",
+ "depends_on": "eval:!doc.__islocal",
+ "fieldname": "resolution_date",
+ "fieldtype": "Datetime",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@@ -761,14 +792,15 @@
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
- "label": "Company",
+ "label": "Resolution Date",
"length": 0,
- "no_copy": 0,
- "options": "Company",
+ "no_copy": 1,
+ "oldfieldname": "resolution_date",
+ "oldfieldtype": "Date",
"permlevel": 0,
- "print_hide": 1,
+ "print_hide": 0,
"print_hide_if_no_value": 0,
- "read_only": 0,
+ "read_only": 1,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
@@ -847,7 +879,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-13 14:29:19.581715",
+ "modified": "2017-11-15 17:15:40.347362",
"modified_by": "Administrator",
"module": "Support",
"name": "Issue",
diff --git a/erpnext/support/doctype/issue/test_issue.js b/erpnext/support/doctype/issue/test_issue.js
new file mode 100644
index 0000000..c532ea4
--- /dev/null
+++ b/erpnext/support/doctype/issue/test_issue.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Issue", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Issue
+ () => frappe.tests.make('Issue', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/schools/doctype/__init__.py b/erpnext/support/doctype/issue_type/__init__.py
similarity index 100%
copy from erpnext/schools/doctype/__init__.py
copy to erpnext/support/doctype/issue_type/__init__.py
diff --git a/erpnext/schools/doctype/school_settings/school_settings.js b/erpnext/support/doctype/issue_type/issue_type.js
similarity index 79%
rename from erpnext/schools/doctype/school_settings/school_settings.js
rename to erpnext/support/doctype/issue_type/issue_type.js
index 2707c42..2b3d14e 100644
--- a/erpnext/schools/doctype/school_settings/school_settings.js
+++ b/erpnext/support/doctype/issue_type/issue_type.js
@@ -1,7 +1,7 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-frappe.ui.form.on('School Settings', {
+frappe.ui.form.on('Issue Type', {
refresh: function(frm) {
}
diff --git a/erpnext/schools/doctype/school_house/school_house.json b/erpnext/support/doctype/issue_type/issue_type.json
similarity index 65%
copy from erpnext/schools/doctype/school_house/school_house.json
copy to erpnext/support/doctype/issue_type/issue_type.json
index e777939..ee7add8 100644
--- a/erpnext/schools/doctype/school_house/school_house.json
+++ b/erpnext/support/doctype/issue_type/issue_type.json
@@ -1,11 +1,11 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
- "allow_import": 0,
+ "allow_import": 1,
"allow_rename": 0,
- "autoname": "field:house_name",
+ "autoname": "Prompt",
"beta": 0,
- "creation": "2017-03-27 15:19:54.672995",
+ "creation": "2017-10-06 12:53:34.714153",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
@@ -19,16 +19,16 @@
"bold": 0,
"collapsible": 0,
"columns": 0,
- "fieldname": "house_name",
- "fieldtype": "Data",
+ "fieldname": "description",
+ "fieldtype": "Small Text",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
- "in_list_view": 1,
+ "in_list_view": 0,
"in_standard_filter": 0,
- "label": "House Name",
+ "label": "Description",
"length": 0,
"no_copy": 0,
"permlevel": 0,
@@ -38,7 +38,7 @@
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
- "reqd": 1,
+ "reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
@@ -54,11 +54,11 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
- "modified": "2017-06-30 08:21:50.250616",
+ "modified": "2017-11-15 17:27:19.796807",
"modified_by": "Administrator",
- "module": "Schools",
- "name": "School House",
- "name_case": "",
+ "module": "Support",
+ "name": "Issue Type",
+ "name_case": "Title Case",
"owner": "Administrator",
"permissions": [
{
@@ -75,7 +75,27 @@
"print": 1,
"read": 1,
"report": 1,
- "role": "Academics User",
+ "role": "System Manager",
+ "set_user_permissions": 0,
+ "share": 1,
+ "submit": 0,
+ "write": 1
+ },
+ {
+ "amend": 0,
+ "apply_user_permissions": 0,
+ "cancel": 0,
+ "create": 1,
+ "delete": 1,
+ "email": 1,
+ "export": 1,
+ "if_owner": 0,
+ "import": 0,
+ "permlevel": 0,
+ "print": 1,
+ "read": 1,
+ "report": 1,
+ "role": "Support Team",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
@@ -85,10 +105,11 @@
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
- "restrict_to_domain": "Education",
+ "search_fields": "",
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
- "track_changes": 0,
+ "title_field": "",
+ "track_changes": 1,
"track_seen": 0
}
\ No newline at end of file
diff --git a/erpnext/support/doctype/issue_type/issue_type.py b/erpnext/support/doctype/issue_type/issue_type.py
new file mode 100644
index 0000000..f95d09c
--- /dev/null
+++ b/erpnext/support/doctype/issue_type/issue_type.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+from frappe.model.document import Document
+
+class IssueType(Document):
+ pass
diff --git a/erpnext/support/doctype/issue_type/test_issue_type.js b/erpnext/support/doctype/issue_type/test_issue_type.js
new file mode 100644
index 0000000..9ef737b
--- /dev/null
+++ b/erpnext/support/doctype/issue_type/test_issue_type.js
@@ -0,0 +1,23 @@
+/* eslint-disable */
+// rename this file from _test_[name] to test_[name] to activate
+// and remove above this line
+
+QUnit.test("test: Issue Type", function (assert) {
+ let done = assert.async();
+
+ // number of asserts
+ assert.expect(1);
+
+ frappe.run_serially([
+ // insert a new Issue Type
+ () => frappe.tests.make('Issue Type', [
+ // values to be set
+ {key: 'value'}
+ ]),
+ () => {
+ assert.equal(cur_frm.doc.key, 'value');
+ },
+ () => done()
+ ]);
+
+});
diff --git a/erpnext/support/doctype/issue_type/test_issue_type.py b/erpnext/support/doctype/issue_type/test_issue_type.py
new file mode 100644
index 0000000..4e3b66a
--- /dev/null
+++ b/erpnext/support/doctype/issue_type/test_issue_type.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+
+class TestIssueType(unittest.TestCase):
+ pass
diff --git a/erpnext/templates/includes/products_as_grid.html b/erpnext/templates/includes/products_as_grid.html
index 7a15c1f..b2437d3 100644
--- a/erpnext/templates/includes/products_as_grid.html
+++ b/erpnext/templates/includes/products_as_grid.html
@@ -3,8 +3,13 @@
<a class="product-link" href="{{ route|abs_url }}">
<div class="col-sm-4 col-xs-4 product-image-wrapper">
<div class="product-image-img">
- {{ product_image_square(thumbnail or website_image) }}
- <div class="product-text" itemprop="name">{{ item_name }}</div>
+ {{ product_image_square(thumbnail or website_image) }}
+ <div class="product-text" itemprop="name">{{ item_name }}</div>
+ {% if in_stock %}
+ <div style='color: green'> <i class='fa fa-check'></i> {{ _("In stock") }}</div>
+ {% else %}
+ <div style='color: red'> <i class='fa fa-close'></i> {{ _("Not in stock") }}</div>
+ {% endif %}
</div>
</div>
</a>
diff --git a/erpnext/templates/pages/product_search.py b/erpnext/templates/pages/product_search.py
index 49f321d..a872f19 100644
--- a/erpnext/templates/pages/product_search.py
+++ b/erpnext/templates/pages/product_search.py
@@ -17,23 +17,25 @@
# limit = 12 because we show 12 items in the grid view
# base query
- query = """select name, item_name, item_code, route, website_image, thumbnail, item_group,
- description, web_long_description as website_description
- from `tabItem`
- where (show_in_website = 1 or show_variant_in_website = 1)
- and disabled=0
- and (end_of_life is null or end_of_life='0000-00-00' or end_of_life > %(today)s)"""
+ query = """select I.name, I.item_name, I.item_code, I.route, I.website_image, I.thumbnail, I.item_group,
+ I.description, I.web_long_description as website_description,
+ case when (S.actual_qty - S.reserved_qty) > 0 then 1 else 0 end as in_stock
+ from `tabItem` I
+ left join tabBin S on I.item_code = S.item_code and I.website_warehouse = S.warehouse
+ where (I.show_in_website = 1 or I.show_variant_in_website = 1)
+ and I.disabled = 0
+ and (I.end_of_life is null or I.end_of_life='0000-00-00' or I.end_of_life > %(today)s)"""
# search term condition
if search:
- query += """ and (web_long_description like %(search)s
- or description like %(search)s
- or item_name like %(search)s
- or name like %(search)s)"""
+ query += """ and (I.web_long_description like %(search)s
+ or I.description like %(search)s
+ or I.item_name like %(search)s
+ or I.name like %(search)s)"""
search = "%" + cstr(search) + "%"
# order by
- query += """ order by weightage desc, idx desc, modified desc limit %s, %s""" % (cint(start), cint(limit))
+ query += """ order by I.weightage desc, in_stock desc, I.item_name limit %s, %s""" % (cint(start), cint(limit))
data = frappe.db.sql(query, {
"search": search,
diff --git a/erpnext/templates/utils.py b/erpnext/templates/utils.py
index 7ee3960..eb84bcc 100644
--- a/erpnext/templates/utils.py
+++ b/erpnext/templates/utils.py
@@ -9,16 +9,16 @@
@frappe.whitelist(allow_guest=True)
def send_message(subject="Website Query", message="", sender="", status="Open"):
- from frappe.www.contact import send_message as website_send_message
- lead = customer = None
+ from frappe.www.contact import send_message as website_send_message
+ lead = customer = None
- website_send_message(subject, message, sender)
+ website_send_message(subject, message, sender)
- customer = frappe.db.sql("""select distinct dl.link_name from `tabDynamic Link` dl
- left join `tabContact` c on dl.parent=c.name where dl.link_doctype='Customer'
- and c.email_id='{email_id}'""".format(email_id=sender))
+ customer = frappe.db.sql("""select distinct dl.link_name from `tabDynamic Link` dl
+ left join `tabContact` c on dl.parent=c.name where dl.link_doctype='Customer'
+ and c.email_id='{email_id}'""".format(email_id=sender))
- if not customer:
+ if not customer:
lead = frappe.db.get_value('Lead', dict(email_id=sender))
if not lead:
new_lead = frappe.get_doc(dict(
@@ -27,33 +27,33 @@
lead_name = sender.split('@')[0].title()
)).insert(ignore_permissions=True)
- opportunity = frappe.get_doc(dict(
- doctype ='Opportunity',
- enquiry_from = 'Customer' if customer else 'Lead',
- status = 'Open',
- title = subject,
- contact_email = sender,
- to_discuss = message
- ))
+ opportunity = frappe.get_doc(dict(
+ doctype ='Opportunity',
+ enquiry_from = 'Customer' if customer else 'Lead',
+ status = 'Open',
+ title = subject,
+ contact_email = sender,
+ to_discuss = message
+ ))
- if customer:
- opportunity.customer = customer[0][0]
- elif lead:
- opportunity.lead = lead
- else:
- opportunity.lead = new_lead.name
+ if customer:
+ opportunity.customer = customer[0][0]
+ elif lead:
+ opportunity.lead = lead
+ else:
+ opportunity.lead = new_lead.name
- opportunity.insert(ignore_permissions=True)
+ opportunity.insert(ignore_permissions=True)
- comm = frappe.get_doc({
- "doctype":"Communication",
- "subject": subject,
- "content": message,
- "sender": sender,
- "sent_or_received": "Received",
- 'reference_doctype': 'Opportunity',
- 'reference_name': opportunity.name
- })
- comm.insert(ignore_permissions=True)
+ comm = frappe.get_doc({
+ "doctype":"Communication",
+ "subject": subject,
+ "content": message,
+ "sender": sender,
+ "sent_or_received": "Received",
+ 'reference_doctype': 'Opportunity',
+ 'reference_name': opportunity.name
+ })
+ comm.insert(ignore_permissions=True)
- return "okay"
+ return "okay"
diff --git a/erpnext/tests/ui/make_fixtures.js b/erpnext/tests/ui/make_fixtures.js
index 949e92b..8c9e508 100644
--- a/erpnext/tests/ui/make_fixtures.js
+++ b/erpnext/tests/ui/make_fixtures.js
@@ -217,6 +217,25 @@
{price_list: '_Test Price List'},
{price_list_rate: 200}
]
+ },
+ "Payment Term": {
+ "_Test Payment Term": [
+ {payment_term_name: '_Test Payment Term'},
+ {due_date_based_on: 'Day(s) after invoice date'},
+ {invoice_portion: 100},
+ {credit_days: 0}
+ ]
+ },
+ "Payment Terms Template": {
+ "_Test Payment Term Template UI": [
+ {template_name: "_Test Payment Term Template UI"},
+ {terms: [
+ [
+ {payment_term: '_Test Payment Term'},
+ {invoice_portion: 100}
+ ]
+ ]}
+ ]
}
});
diff --git a/erpnext/tests/ui/tests.txt b/erpnext/tests/ui/tests.txt
index 3e40485..edf1d78 100644
--- a/erpnext/tests/ui/tests.txt
+++ b/erpnext/tests/ui/tests.txt
@@ -1,7 +1,8 @@
erpnext/tests/ui/make_fixtures.js #long
erpnext/setup/doctype/company/tests/test_company.js
-erpnext/accounts/doctype/account/test_account.js
-erpnext/accounts/doctype/account/test_make_tax_account.js
+erpnext/accounts/doctype/account/tests/test_account.js
+erpnext/accounts/doctype/account/tests/test_make_tax_account.js
+erpnext/accounts/doctype/account/tests/test_account_with_number.js
erpnext/accounts/doctype/pricing_rule/test_pricing_rule.js
erpnext/accounts/doctype/sales_taxes_and_charges_template/test_sales_taxes_and_charges_template.js
erpnext/accounts/doctype/purchase_taxes_and_charges_template/test_purchase_taxes_and_charges_template.js
@@ -41,13 +42,13 @@
erpnext/hr/doctype/leave_control_panel/test_leave_control_panel.js
erpnext/hr/doctype/leave_allocation/test_leave_allocation.js
erpnext/hr/doctype/leave_application/test_leave_application.js
-erpnext/schools/doctype/academic_year/test_academic_year.js
-erpnext/schools/doctype/academic_term/test_academic_term.js
-erpnext/schools/doctype/school_settings/test_school_settings.js
-erpnext/schools/doctype/student_batch_name/test_student_batch_name.js
-erpnext/schools/doctype/student_category/test_student_category.js
-erpnext/schools/doctype/room/test_room.js
-erpnext/schools/doctype/instructor/test_instructor.js
+erpnext/education/doctype/academic_year/test_academic_year.js
+erpnext/education/doctype/academic_term/test_academic_term.js
+erpnext/education/doctype/education_settings/test_education_settings.js
+erpnext/education/doctype/student_batch_name/test_student_batch_name.js
+erpnext/education/doctype/student_category/test_student_category.js
+erpnext/education/doctype/room/test_room.js
+erpnext/education/doctype/instructor/test_instructor.js
erpnext/stock/doctype/warehouse/test_warehouse.js
erpnext/manufacturing/doctype/production_order/test_production_order.js #long
erpnext/accounts/page/pos/test_pos.js
@@ -95,26 +96,26 @@
erpnext/buying/doctype/purchase_order/tests/test_purchase_order_with_taxes_and_charges.js
erpnext/buying/doctype/purchase_order/tests/test_purchase_order_receipt.js
erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.js
-erpnext/schools/doctype/grading_scale/test_grading_scale.js
-erpnext/schools/doctype/assessment_criteria_group/test_assessment_criteria_group.js
-erpnext/schools/doctype/assessment_criteria/test_assessment_criteria.js
-erpnext/schools/doctype/course/test_course.js
-erpnext/schools/doctype/program/test_program.js
-erpnext/schools/doctype/guardian/test_guardian.js
-erpnext/schools/doctype/student_admission/test_student_admission.js
-erpnext/schools/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
-erpnext/schools/doctype/student_applicant/tests/test_student_applicant.js
-erpnext/schools/doctype/student_applicant/tests/test_student_applicant_options.js
-erpnext/schools/doctype/student_log/test_student_log.js
-erpnext/schools/doctype/student_group/test_student_group.js
-erpnext/schools/doctype/student_group_creation_tool/test_student_group_creation_tool.js
-erpnext/schools/doctype/student_leave_application/test_student_leave_application.js
-erpnext/schools/doctype/student_attendance_tool/test_student_attendance_tool.js
-erpnext/schools/doctype/student_attendance/test_student_attendance.js
-erpnext/schools/doctype/assessment_group/test_assessment_group.js
-erpnext/schools/doctype/assessment_plan/test_assessment_plan.js
-erpnext/schools/doctype/assessment_result/test_assessment_result.js
-erpnext/schools/doctype/assessment_result_tool/test_assessment_result_tool.js
+erpnext/education/doctype/grading_scale/test_grading_scale.js
+erpnext/education/doctype/assessment_criteria_group/test_assessment_criteria_group.js
+erpnext/education/doctype/assessment_criteria/test_assessment_criteria.js
+erpnext/education/doctype/course/test_course.js
+erpnext/education/doctype/program/test_program.js
+erpnext/education/doctype/guardian/test_guardian.js
+erpnext/education/doctype/student_admission/test_student_admission.js
+erpnext/education/doctype/student_applicant/tests/test_student_applicant_dummy_data.js
+erpnext/education/doctype/student_applicant/tests/test_student_applicant.js
+erpnext/education/doctype/student_applicant/tests/test_student_applicant_options.js
+erpnext/education/doctype/student_log/test_student_log.js
+erpnext/education/doctype/student_group/test_student_group.js
+erpnext/education/doctype/student_group_creation_tool/test_student_group_creation_tool.js
+erpnext/education/doctype/student_leave_application/test_student_leave_application.js
+erpnext/education/doctype/student_attendance_tool/test_student_attendance_tool.js
+erpnext/education/doctype/student_attendance/test_student_attendance.js
+erpnext/education/doctype/assessment_group/test_assessment_group.js
+erpnext/education/doctype/assessment_plan/test_assessment_plan.js
+erpnext/education/doctype/assessment_result/test_assessment_result.js
+erpnext/education/doctype/assessment_result_tool/test_assessment_result_tool.js
erpnext/accounts/doctype/journal_entry/test_journal_entry.js
erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.js
erpnext/accounts/doctype/payment_entry/tests/test_payment_entry.js
diff --git a/erpnext/utilities/product.py b/erpnext/utilities/product.py
index 1ad8b6e..10366be 100644
--- a/erpnext/utilities/product.py
+++ b/erpnext/utilities/product.py
@@ -16,7 +16,7 @@
warehouse = frappe.db.get_value("Item", template_item_code, item_warehouse_field)
if warehouse:
- stock_qty = frappe.db.sql("""select actual_qty from tabBin where
+ stock_qty = frappe.db.sql("""select GREATEST(actual_qty - reserved_qty, 0) from tabBin where
item_code=%s and warehouse=%s""", (item_code, warehouse))
if stock_qty:
in_stock = stock_qty[0][0] > 0 and 1 or 0
diff --git a/erpnext/utilities/user_progress.py b/erpnext/utilities/user_progress.py
index 2509511..685624e 100644
--- a/erpnext/utilities/user_progress.py
+++ b/erpnext/utilities/user_progress.py
@@ -140,7 +140,7 @@
]
),
- # School slides begin
+ # Education slides begin
frappe._dict(
action_name='Add Programs',
domains=("Education"),
@@ -219,7 +219,7 @@
done_state_title_route=["List", "Room"],
help_links=[]
),
- # School slides end
+ # Education slides end
frappe._dict(
action_name='Add Users',
diff --git a/erpnext/utilities/user_progress_utils.py b/erpnext/utilities/user_progress_utils.py
index 709da57..1af5364 100644
--- a/erpnext/utilities/user_progress_utils.py
+++ b/erpnext/utilities/user_progress_utils.py
@@ -117,7 +117,7 @@
"price_list_rate": item_price
}).insert()
-# Schools
+# Education
@frappe.whitelist()
def create_program(args_data):
args = json.loads(args_data)
diff --git a/license.txt b/license.txt
index 2a99aee..a238a97 100644
--- a/license.txt
+++ b/license.txt
@@ -663,7 +663,7 @@
use an "about box".
You should also get your employer (if you work as a programmer) or
-school, if any, to sign a "copyright disclaimer" for the program, if
+institute, if any, to sign a "copyright disclaimer" for the program, if
necessary. For more information on this, and how to apply and follow
the GNU GPL, see <http://www.gnu.org/licenses/>.