Merge pull request #29342 from nextchamp-saqib/minor-onboarding-fix
fix: minor onboarding fixes
diff --git a/erpnext/commands/__init__.py b/erpnext/commands/__init__.py
index 5931119..8e12fad 100644
--- a/erpnext/commands/__init__.py
+++ b/erpnext/commands/__init__.py
@@ -1,49 +1,10 @@
-# Copyright (c) 2015, Web Notes Technologies Pvt. Ltd. and Contributors
-# MIT License. See license.txt
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# GPL v3 License. See license.txt
import click
-import frappe
-from frappe.commands import get_site, pass_context
def call_command(cmd, context):
return click.Context(cmd, obj=context).forward(cmd)
-@click.command('make-demo')
-@click.option('--site', help='site name')
-@click.option('--domain', default='Manufacturing')
-@click.option('--days', default=100,
- help='Run the demo for so many days. Default 100')
-@click.option('--resume', default=False, is_flag=True,
- help='Continue running the demo for given days')
-@click.option('--reinstall', default=False, is_flag=True,
- help='Reinstall site before demo')
-@pass_context
-def make_demo(context, site, domain='Manufacturing', days=100,
- resume=False, reinstall=False):
- "Reinstall site and setup demo"
- from frappe.commands.site import _reinstall
- from frappe.installer import install_app
-
- site = get_site(context)
-
- if resume:
- with frappe.init_site(site):
- frappe.connect()
- from erpnext.demo import demo
- demo.simulate(days=days)
- else:
- if reinstall:
- _reinstall(site, yes=True)
- with frappe.init_site(site=site):
- frappe.connect()
- if not 'erpnext' in frappe.get_installed_apps():
- install_app('erpnext')
-
- # import needs site
- from erpnext.demo import demo
- demo.make(domain, days)
-
-commands = [
- make_demo
-]
+commands = []
diff --git a/erpnext/demo/__init__.py b/erpnext/demo/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/demo/__init__.py
+++ /dev/null
diff --git a/erpnext/demo/data/account.json b/erpnext/demo/data/account.json
deleted file mode 100644
index b50b0c9..0000000
--- a/erpnext/demo/data/account.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[{
- "account_name": "Debtors EUR",
- "parent_account": "Accounts Receivable",
- "account_type": "Receivable",
- "account_currency": "EUR"
-},
-{
- "account_name": "Creditors EUR",
- "parent_account": "Accounts Payable",
- "account_type": "Payable",
- "account_currency": "EUR"
-},
-{
- "account_name": "Paypal",
- "parent_account": "Bank Accounts",
- "account_type": "Bank",
- "account_currency": "EUR"
-}]
\ No newline at end of file
diff --git a/erpnext/demo/data/address.json b/erpnext/demo/data/address.json
deleted file mode 100644
index 7618c2c..0000000
--- a/erpnext/demo/data/address.json
+++ /dev/null
@@ -1,218 +0,0 @@
-[
- {
- "address_line1": "254 Theotokopoulou Str.",
- "address_type": "Office",
- "city": "Larnaka",
- "country": "Cyprus",
- "links": [{"link_doctype": "Customer", "link_name": "Adaptas"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "R Patr\u00e3o Caramelho 116",
- "address_type": "Office",
- "city": "Fajozes",
- "country": "Portugal",
- "links": [{"link_doctype": "Customer", "link_name": "Asian Fusion"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "30 Fulford Road",
- "address_type": "Office",
- "city": "PENTRE-PIOD",
- "country": "United Kingdom",
- "links": [{"link_doctype": "Customer", "link_name": "Asian Junction"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Schoenebergerstrasse 13",
- "address_type": "Office",
- "city": "Raschau",
- "country": "Germany",
- "links": [{"link_doctype": "Customer", "link_name": "Big D Supermarkets"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Hoheluftchaussee 43",
- "address_type": "Office",
- "city": "Kieritzsch",
- "country": "Germany",
- "links": [{"link_doctype": "Customer", "link_name": "Buttrey Food & Drug"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "R Cimo Vila 6",
- "address_type": "Office",
- "city": "Rebordosa",
- "country": "Portugal",
- "links": [{"link_doctype": "Customer", "link_name": "Chi-Chis"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "R 5 Outubro 9",
- "address_type": "Office",
- "city": "Quinta Nova S\u00e3o Domingos",
- "country": "Portugal",
- "links": [{"link_doctype": "Customer", "link_name": "Choices"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Avenida Macambira 953",
- "address_type": "Office",
- "city": "Goi\u00e2nia",
- "country": "Brazil",
- "links": [{"link_doctype": "Customer", "link_name": "Consumers and Consumers Express"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "2342 Goyeau Ave",
- "address_type": "Office",
- "city": "Windsor",
- "country": "Canada",
- "links": [{"link_doctype": "Customer", "link_name": "Crafts Canada"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Laukaantie 82",
- "address_type": "Office",
- "city": "KOKKOLA",
- "country": "Finland",
- "links": [{"link_doctype": "Customer", "link_name": "Endicott Shoes"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "9 Brown Street",
- "address_type": "Office",
- "city": "PETERSHAM",
- "country": "Australia",
- "links": [{"link_doctype": "Customer", "link_name": "Fayva"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Via Donnalbina 41",
- "address_type": "Office",
- "city": "Cala Gonone",
- "country": "Italy",
- "links": [{"link_doctype": "Customer", "link_name": "Intelacard"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Liljerum Grenadj\u00e4rtorpet 69",
- "address_type": "Office",
- "city": "TOMTEBODA",
- "country": "Sweden",
- "links": [{"link_doctype": "Customer", "link_name": "Landskip Yard Care"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "72 Bishopgate Street",
- "address_type": "Office",
- "city": "SEAHAM",
- "country": "United Kingdom",
- "links": [{"link_doctype": "Customer", "link_name": "Life Plan Counselling"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "\u03a3\u03ba\u03b1\u03c6\u03af\u03b4\u03b9\u03b1 105",
- "address_type": "Office",
- "city": "\u03a0\u0391\u03a1\u0395\u039a\u039a\u039b\u0397\u03a3\u0399\u0391",
- "country": "Cyprus",
- "links": [{"link_doctype": "Customer", "link_name": "Mr Fables"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Mellemvej 7",
- "address_type": "Office",
- "city": "Aabybro",
- "country": "Denmark",
- "links": [{"link_doctype": "Customer", "link_name": "Nelson Brothers"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "Plougg\u00e5rdsvej 98",
- "address_type": "Office",
- "city": "Karby",
- "country": "Denmark",
- "links": [{"link_doctype": "Customer", "link_name": "Netobill"}],
- "phone": "23566775757"
- },
- {
- "address_line1": "176 Michalakopoulou Street",
- "address_type": "Office",
- "city": "Agio Georgoudi",
- "country": "Cyprus",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Helios Air"}]
- },
- {
- "address_line1": "Fibichova 1102",
- "address_type": "Office",
- "city": "Kokor\u00edn",
- "country": "Czech Republic",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Ks Merchandise"}]
- },
- {
- "address_line1": "Zahradn\u00ed 888",
- "address_type": "Office",
- "city": "Cecht\u00edn",
- "country": "Czech Republic",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "HomeBase"}]
- },
- {
- "address_line1": "ul. Grochowska 94",
- "address_type": "Office",
- "city": "Warszawa",
- "country": "Poland",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Scott Ties"}]
- },
- {
- "address_line1": "Norra Esplanaden 87",
- "address_type": "Office",
- "city": "HELSINKI",
- "country": "Finland",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Reliable Investments"}]
- },
- {
- "address_line1": "2038 Fallon Drive",
- "address_type": "Office",
- "city": "Dresden",
- "country": "Canada",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Nan Duskin"}]
- },
- {
- "address_line1": "77 cours Franklin Roosevelt",
- "address_type": "Office",
- "city": "MARSEILLE",
- "country": "France",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Rainbow Records"}]
- },
- {
- "address_line1": "ul. Tuwima Juliana 85",
- "address_type": "Office",
- "city": "\u0141\u00f3d\u017a",
- "country": "Poland",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "New World Realty"}]
- },
- {
- "address_line1": "Gl. Sygehusvej 41",
- "address_type": "Office",
- "city": "Narsaq",
- "country": "Greenland",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Asiatic Solutions"}]
- },
- {
- "address_line1": "Gosposka ulica 50",
- "address_type": "Office",
- "city": "Nova Gorica",
- "country": "Slovenia",
- "phone": "23566775757",
- "links": [{"link_doctype": "Supplier", "link_name": "Eagle Hardware"}]
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/assessment_criteria.json b/erpnext/demo/data/assessment_criteria.json
deleted file mode 100644
index 8295682..0000000
--- a/erpnext/demo/data/assessment_criteria.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[
- {
- "doctype": "Assessment Criteria",
- "assessment_criteria": "Aptitude"
- },
- {
- "doctype": "Assessment Criteria",
- "assessment_criteria": "Application"
- },
- {
- "doctype": "Assessment Criteria",
- "assessment_criteria": "Understanding"
- },
- {
- "doctype": "Assessment Criteria",
- "assessment_criteria": "Knowledge"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/asset.json b/erpnext/demo/data/asset.json
deleted file mode 100644
index 44db2ae..0000000
--- a/erpnext/demo/data/asset.json
+++ /dev/null
@@ -1,58 +0,0 @@
-[
- {
- "asset_name": "Macbook Pro - 1",
- "item_code": "Computer",
- "gross_purchase_amount": 100000,
- "asset_owner": "Company",
- "available_for_use_date": "2017-01-02",
- "location": "Main Location"
- },
- {
- "asset_name": "Macbook Air - 1",
- "item_code": "Computer",
- "gross_purchase_amount": 60000,
- "asset_owner": "Company",
- "available_for_use_date": "2017-10-02",
- "location": "Avg Location"
- },
- {
- "asset_name": "Conferrence Table",
- "item_code": "Table",
- "gross_purchase_amount": 30000,
- "asset_owner": "Company",
- "available_for_use_date": "2018-10-02",
- "location": "Zany Location"
- },
- {
- "asset_name": "Lunch Table",
- "item_code": "Table",
- "gross_purchase_amount": 20000,
- "asset_owner": "Company",
- "available_for_use_date": "2018-06-02",
- "location": "Fletcher Location"
- },
- {
- "asset_name": "ERPNext",
- "item_code": "ERP",
- "gross_purchase_amount": 100000,
- "asset_owner": "Company",
- "available_for_use_date": "2018-09-02",
- "location":"Main Location"
- },
- {
- "asset_name": "Chair 1",
- "item_code": "Chair",
- "gross_purchase_amount": 10000,
- "asset_owner": "Company",
- "available_for_use_date": "2018-07-02",
- "location": "Zany Location"
- },
- {
- "asset_name": "Chair 2",
- "item_code": "Chair",
- "gross_purchase_amount": 10000,
- "asset_owner": "Company",
- "available_for_use_date": "2018-07-02",
- "location": "Avg Location"
- }
-]
diff --git a/erpnext/demo/data/asset_category.json b/erpnext/demo/data/asset_category.json
deleted file mode 100644
index 54f779d..0000000
--- a/erpnext/demo/data/asset_category.json
+++ /dev/null
@@ -1,38 +0,0 @@
-[
- {
- "asset_category_name": "Furnitures",
- "depreciation_method": "Straight Line",
- "total_number_of_depreciations": 5,
- "frequency_of_depreciation": 12,
- "accounts": [{
- "company_name": "Wind Power LLC",
- "fixed_asset_account": "Furnitures and Fixtures - WPL",
- "accumulated_depreciation_account": "Accumulated Depreciation - WPL",
- "depreciation_expense_account": "Depreciation - WPL"
- }]
- },
- {
- "asset_category_name": "Electronic Equipments",
- "depreciation_method": "Double Declining Balance",
- "total_number_of_depreciations": 10,
- "frequency_of_depreciation": 6,
- "accounts": [{
- "company_name": "Wind Power LLC",
- "fixed_asset_account": "Electronic Equipments - WPL",
- "accumulated_depreciation_account": "Accumulated Depreciation - WPL",
- "depreciation_expense_account": "Depreciation - WPL"
- }]
- },
- {
- "asset_category_name": "Softwares",
- "depreciation_method": "Straight Line",
- "total_number_of_depreciations": 10,
- "frequency_of_depreciation": 12,
- "accounts": [{
- "company_name": "Wind Power LLC",
- "fixed_asset_account": "Softwares - WPL",
- "accumulated_depreciation_account": "Accumulated Depreciation - WPL",
- "depreciation_expense_account": "Depreciation - WPL"
- }]
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/bom.json b/erpnext/demo/data/bom.json
deleted file mode 100644
index 3085435..0000000
--- a/erpnext/demo/data/bom.json
+++ /dev/null
@@ -1,180 +0,0 @@
-[
- {
- "item": "Bearing Assembly",
- "items": [
- {
- "item_code": "Base Bearing Plate",
- "qty": 1.0,
- "rate": 15.0
- },
- {
- "item_code": "Bearing Block",
- "qty": 1.0,
- "rate": 10.0
- },
- {
- "item_code": "Bearing Collar",
- "qty": 2.0,
- "rate": 20.0
- },
- {
- "item_code": "Bearing Pipe",
- "qty": 1.0,
- "rate": 15.0
- },
- {
- "item_code": "Upper Bearing Plate",
- "qty": 1.0,
- "rate": 50.0
- }
- ]
- },
- {
- "item": "Wind Mill A Series",
- "items": [
- {
- "item_code": "Base Bearing Plate",
- "qty": 1.0,
- "rate": 15.0
- },
- {
- "item_code": "Base Plate",
- "qty": 1.0,
- "rate": 20.0
- },
- {
- "item_code": "Bearing Block",
- "qty": 1.0,
- "rate": 10.0
- },
- {
- "item_code": "Bearing Pipe",
- "qty": 1.0,
- "rate": 15.0
- },
- {
- "item_code": "External Disc",
- "qty": 1.0,
- "rate": 45.0
- },
- {
- "item_code": "Shaft",
- "qty": 1.0,
- "rate": 30.0
- },
- {
- "item_code": "Wing Sheet",
- "qty": 4.0,
- "rate": 22.0
- }
- ]
- },
- {
- "item": "Wind MIll C Series",
- "items": [
- {
- "item_code": "Base Plate",
- "qty": 2.0,
- "rate": 20.0
- },
- {
- "item_code": "Internal Disc",
- "qty": 1.0,
- "rate": 33.0
- },
- {
- "item_code": "External Disc",
- "qty": 1.0,
- "rate": 45.0
- },
- {
- "item_code": "Bearing Assembly",
- "qty": 1.0,
- "rate": 130.0
- },
- {
- "item_code": "Wing Sheet",
- "qty": 3.0,
- "rate": 22.0
- }
- ]
- },
- {
- "item": "Wind Turbine-S",
- "with_operations": 1,
- "operations": [
- {
- "operation": "Prepare Frame",
- "time_in_mins": 30.0,
- "workstation": "Drilling Machine 1"
- },
- {
- "operation": "Setup Fixtures",
- "time_in_mins": 15.0,
- "workstation": "Assembly Station 1"
- },
- {
- "operation": "Assembly Operation",
- "time_in_mins": 30.0,
- "workstation": "Assembly Station 1"
- },
- {
- "operation": "Wiring",
- "time_in_mins": 20.0,
- "workstation": "Assembly Station 1"
- },
- {
- "operation": "Testing",
- "time_in_mins": 10.0,
- "workstation": "Packing and Testing Station"
- },
- {
- "operation": "Packing",
- "time_in_mins": 25.0,
- "workstation": "Packing and Testing Station"
- }
- ],
- "items": [
- {
- "item_code": "Base Bearing Plate",
- "qty": 1.0,
- "rate": 15.0
- },
- {
- "item_code": "Base Plate",
- "qty": 1.0,
- "rate": 20.0
- },
- {
- "item_code": "Bearing Collar",
- "qty": 1.0,
- "rate": 20.0
- },
- {
- "item_code": "Blade Rib",
- "qty": 1.0,
- "rate": 10.0
- },
- {
- "item_code": "Shaft",
- "qty": 1.0,
- "rate": 30.0
- },
- {
- "item_code": "Wing Sheet",
- "qty": 2.0,
- "rate": 22.0
- }
- ]
- },
- {
- "item": "Base Plate",
- "items": [
- {
- "item_code": "Base Plate Un Painted",
- "qty": 1.0,
- "rate": 16.0
- }
- ]
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/contact.json b/erpnext/demo/data/contact.json
deleted file mode 100644
index 113b561..0000000
--- a/erpnext/demo/data/contact.json
+++ /dev/null
@@ -1,164 +0,0 @@
-[
- {
- "email_id": "JanVaclavik@example.com",
- "first_name": "January",
- "last_name": "V\u00e1clav\u00edk",
- "links": [{"link_doctype": "Customer", "link_name": "Adaptas"}]
- },
- {
- "email_id": "ChidumagaTobeolisa@example.com",
- "first_name": "Chidumaga",
- "last_name": "Tobeolisa",
- "links": [{"link_doctype": "Customer", "link_name": "Asian Fusion"}]
- },
- {
- "email_id": "JanaKubanova@example.com",
- "first_name": "Jana",
- "last_name": "Kub\u00e1\u0148ov\u00e1",
- "links": [{"link_doctype": "Customer", "link_name": "Asian Junction"}]
- },
- {
- "email_id": "XuChaoXuan@example.com",
- "first_name": "\u7d39\u8431",
- "last_name": "\u4e8e",
- "links": [{"link_doctype": "Customer", "link_name": "Big D Supermarkets"}]
- },
- {
- "email_id": "OzlemVerwijmeren@example.com",
- "first_name": "\u00d6zlem",
- "last_name": "Verwijmeren",
- "links": [{"link_doctype": "Customer", "link_name": "Buttrey Food & Drug"}]
- },
- {
- "email_id": "HansRasmussen@example.com",
- "first_name": "Hans",
- "last_name": "Rasmussen",
- "links": [{"link_doctype": "Customer", "link_name": "Chi-Chis"}]
- },
- {
- "email_id": "SatomiShigeki@example.com",
- "first_name": "Satomi",
- "last_name": "Shigeki",
- "links": [{"link_doctype": "Customer", "link_name": "Choices"}]
- },
- {
- "email_id": "SimonVJessen@example.com",
- "first_name": "Simon",
- "last_name": "Jessen",
- "links": [{"link_doctype": "Customer", "link_name": "Consumers and Consumers Express"}]
- },
- {
- "email_id": "NeguaranShahsaah@example.com",
- "first_name": "\u0646\u06af\u0627\u0631\u06cc\u0646",
- "last_name": "\u0634\u0627\u0647 \u0633\u06cc\u0627\u0647",
- "links": [{"link_doctype": "Customer", "link_name": "Crafts Canada"}]
- },
- {
- "email_id": "Lom-AliBataev@example.com",
- "first_name": "Lom-Ali",
- "last_name": "Bataev",
- "links": [{"link_doctype": "Customer", "link_name": "Endicott Shoes"}]
- },
- {
- "email_id": "VanNgocTien@example.com",
- "first_name": "Ti\u00ean",
- "last_name": "V\u0103n",
- "links": [{"link_doctype": "Customer", "link_name": "Fayva"}]
- },
- {
- "email_id": "QuimeyOsorioRuelas@example.com",
- "first_name": "Quimey",
- "last_name": "Osorio",
- "links": [{"link_doctype": "Customer", "link_name": "Intelacard"}]
- },
- {
- "email_id": "EdgardaSalcedoRaya@example.com",
- "first_name": "Edgarda",
- "last_name": "Salcedo",
- "links": [{"link_doctype": "Customer", "link_name": "Landskip Yard Care"}]
- },
- {
- "email_id": "HafsteinnBjarnarsonar@example.com",
- "first_name": "Hafsteinn",
- "last_name": "Bjarnarsonar",
- "links": [{"link_doctype": "Customer", "link_name": "Life Plan Counselling"}]
- },
- {
- "email_id": "\u0434\u0430\u043d\u0438\u0438\u043b@example.com",
- "first_name": "\u0414\u0430\u043d\u0438\u0438\u043b",
- "last_name": "\u041a\u043e\u043d\u043e\u0432\u0430\u043b\u043e\u0432",
- "links": [{"link_doctype": "Customer", "link_name": "Mr Fables"}]
- },
- {
- "email_id": "SelmaMAndersen@example.com",
- "first_name": "Selma",
- "last_name": "Andersen",
- "links": [{"link_doctype": "Customer", "link_name": "Nelson Brothers"}]
- },
- {
- "email_id": "LadislavKolaja@example.com",
- "first_name": "Ladislav",
- "last_name": "Kolaja",
- "links": [{"link_doctype": "Customer", "link_name": "Netobill"}]
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Helios Air"}],
- "email_id": "TewoldeAbaalom@example.com",
- "first_name": "Tewolde",
- "last_name": "Abaalom"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Ks Merchandise"}],
- "email_id": "LeilaFernandesRodrigues@example.com",
- "first_name": "Leila",
- "last_name": "Rodrigues"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "HomeBase"}],
- "email_id": "DmitryBulgakov@example.com",
- "first_name": "Dmitry",
- "last_name": "Bulgakov"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Scott Ties"}],
- "email_id": "HaiducWhitfoot@example.com",
- "first_name": "Haiduc",
- "last_name": "Whitfoot"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Reliable Investments"}],
- "email_id": "SesseljaPetursdottir@example.com",
- "first_name": "Sesselja",
- "last_name": "P\u00e9tursd\u00f3ttir"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Nan Duskin"}],
- "email_id": "HajdarPignar@example.com",
- "first_name": "Hajdar",
- "last_name": "Pignar"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Rainbow Records"}],
- "email_id": "GustavaLorenzo@example.com",
- "first_name": "Gustava",
- "last_name": "Lorenzo"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "New World Realty"}],
- "email_id": "BethanyWood@example.com",
- "first_name": "Bethany",
- "last_name": "Wood"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Asiatic Solutions"}],
- "email_id": "GlorianaBrownlock@example.com",
- "first_name": "Gloriana",
- "last_name": "Brownlock"
- },
- {
- "links": [{"link_doctype": "Supplier", "link_name": "Eagle Hardware"}],
- "email_id": "JensonFraser@gustr.com",
- "first_name": "Jenson",
- "last_name": "Fraser"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/course.json b/erpnext/demo/data/course.json
deleted file mode 100644
index 15728d5..0000000
--- a/erpnext/demo/data/course.json
+++ /dev/null
@@ -1,134 +0,0 @@
-[
- {
- "doctype": "Course",
- "course_name": "Communication Skiils",
- "course_code": "BCA2040",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Object Oriented Programing - C++",
- "course_code": "BCA2030",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Data Structures and Algorithm",
- "course_code": "BCA2020",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Operating System",
- "course_code": "BCA2010",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Digital Logic",
- "course_code": "BCA1040",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Basic Mathematics",
- "course_code": "BCA1030",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Programing in C",
- "course_code": "BCA1020",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Fundamentals of IT & Programing",
- "course_code": "BCA1010",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Microprocessor",
- "course_code": "MCA4010",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Probability and Statistics",
- "course_code": "MCA4020",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Programing in Java",
- "course_code": "MCA4030",
- "department": "Information Technology"
- },
- {
- "doctype": "Course",
- "course_name": "Communication Skills",
- "course_code": "BBA 101",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Organizational Behavior",
- "course_code": "BBA 102",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Business Environment",
- "course_code": "BBA 103",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Legal and Regulatory Framework",
- "course_code": "BBA 301",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Human Resource Management",
- "course_code": "BBA 302",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Advertising and Sales",
- "course_code": "BBA 304",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Entrepreneurship Management",
- "course_code": "BBA 505",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Visual Merchandising",
- "course_code": "BBR 504",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Warehouse Management",
- "course_code": "BBR 505",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Store Operations and Job Knowledge",
- "course_code": "BBR 501",
- "department": "Management Studies"
- },
- {
- "doctype": "Course",
- "course_name": "Management Development and Skills",
- "course_code": "BBA 602",
- "department": "Management Studies"
- }
-]
diff --git a/erpnext/demo/data/department.json b/erpnext/demo/data/department.json
deleted file mode 100644
index f4355ba..0000000
--- a/erpnext/demo/data/department.json
+++ /dev/null
@@ -1,30 +0,0 @@
-[
- {
- "doctype": "Department",
- "department_name": "Information Technology"
- },
- {
- "doctype": "Department",
- "department_name": "Physics"
- },
- {
- "doctype": "Department",
- "department_name": "Chemistry"
- },
- {
- "doctype": "Department",
- "department_name": "Biology"
- },
- {
- "doctype": "Department",
- "department_name": "Commerce"
- },
- {
- "doctype": "Department",
- "department_name": "English"
- },
- {
- "doctype": "Department",
- "department_name": "Management Studies"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/drug_list.json b/erpnext/demo/data/drug_list.json
deleted file mode 100644
index 3069042..0000000
--- a/erpnext/demo/data/drug_list.json
+++ /dev/null
@@ -1,5111 +0,0 @@
-[
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Atocopherol",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Atocopherol",
- "item_group": "Drug",
- "item_name": "Atocopherol",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
-
-
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.577151",
- "name": "Atocopherol",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Abacavir",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Abacavir",
- "item_group": "Drug",
- "item_name": "Abacavir",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
-
-
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.678257",
- "name": "Abacavir",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Abciximab",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Abciximab",
- "item_group": "Drug",
- "item_name": "Abciximab",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.695413",
- "name": "Abciximab",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Acacia",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Acacia",
- "item_group": "Drug",
- "item_name": "Acacia",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.797774",
- "name": "Acacia",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Acamprosate",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Acamprosate",
- "item_group": "Drug",
- "item_name": "Acamprosate",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.826952",
- "name": "Acamprosate",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Acarbose",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Acarbose",
- "item_group": "Drug",
- "item_name": "Acarbose",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.843890",
- "name": "Acarbose",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Acebrofylline",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Acebrofylline",
- "item_group": "Drug",
- "item_name": "Acebrofylline",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.969984",
- "name": "Acebrofylline",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Acebrofylline (SR)",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Acebrofylline (SR)",
- "item_group": "Drug",
- "item_name": "Acebrofylline (SR)",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:16.987354",
- "name": "Acebrofylline (SR)",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Aceclofenac",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Aceclofenac",
- "item_group": "Drug",
- "item_name": "Aceclofenac",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.004369",
- "name": "Aceclofenac",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Ash",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Ash",
- "item_group": "Drug",
- "item_name": "Ash",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.021192",
- "name": "Ash",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Asparaginase",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Asparaginase",
- "item_group": "Drug",
- "item_name": "Asparaginase",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.038058",
- "name": "Asparaginase",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Aspartame",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Aspartame",
- "item_group": "Drug",
- "item_name": "Aspartame",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.054463",
- "name": "Aspartame",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Aspartic Acid",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Aspartic Acid",
- "item_group": "Drug",
- "item_name": "Aspartic Acid",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.071001",
- "name": "Aspartic Acid",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Bleomycin",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Bleomycin",
- "item_group": "Drug",
- "item_name": "Bleomycin",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.087170",
- "name": "Bleomycin",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Bleomycin Sulphate",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Bleomycin Sulphate",
- "item_group": "Drug",
- "item_name": "Bleomycin Sulphate",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.103691",
- "name": "Bleomycin Sulphate",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Blue cap contains",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Blue cap contains",
- "item_group": "Drug",
- "item_name": "Blue cap contains",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.120040",
- "name": "Blue cap contains",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Boran",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Boran",
- "item_group": "Drug",
- "item_name": "Boran",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.135964",
- "name": "Boran",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Borax",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Borax",
- "item_group": "Drug",
- "item_name": "Borax",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.152575",
- "name": "Borax",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorbutanol",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorbutanol",
- "item_group": "Drug",
- "item_name": "Chlorbutanol",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.168998",
- "name": "Chlorbutanol",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorbutol",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorbutol",
- "item_group": "Drug",
- "item_name": "Chlorbutol",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.185316",
- "name": "Chlorbutol",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlordiazepoxide",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlordiazepoxide",
- "item_group": "Drug",
- "item_name": "Chlordiazepoxide",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.208361",
- "name": "Chlordiazepoxide",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlordiazepoxide and Clidinium Bromide",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlordiazepoxide and Clidinium Bromide",
- "item_group": "Drug",
- "item_name": "Chlordiazepoxide and Clidinium Bromide",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.224341",
- "name": "Chlordiazepoxide and Clidinium Bromide",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorhexidine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorhexidine",
- "item_group": "Drug",
- "item_name": "Chlorhexidine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.240634",
- "name": "Chlorhexidine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorhexidine 40%",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorhexidine 40%",
- "item_group": "Drug",
- "item_name": "Chlorhexidine 40%",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.256922",
- "name": "Chlorhexidine 40%",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorhexidine Acetate",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorhexidine Acetate",
- "item_group": "Drug",
- "item_name": "Chlorhexidine Acetate",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.274789",
- "name": "Chlorhexidine Acetate",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorhexidine Gluconate",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorhexidine Gluconate",
- "item_group": "Drug",
- "item_name": "Chlorhexidine Gluconate",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.295371",
- "name": "Chlorhexidine Gluconate",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorhexidine HCL",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorhexidine HCL",
- "item_group": "Drug",
- "item_name": "Chlorhexidine HCL",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.312916",
- "name": "Chlorhexidine HCL",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chlorhexidine Hydrochloride",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chlorhexidine Hydrochloride",
- "item_group": "Drug",
- "item_name": "Chlorhexidine Hydrochloride",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.329570",
- "name": "Chlorhexidine Hydrochloride",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Chloride",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Chloride",
- "item_group": "Drug",
- "item_name": "Chloride",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.346088",
- "name": "Chloride",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Fosfomycin Tromethamine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Fosfomycin Tromethamine",
- "item_group": "Drug",
- "item_name": "Fosfomycin Tromethamine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.362777",
- "name": "Fosfomycin Tromethamine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Fosinopril",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Fosinopril",
- "item_group": "Drug",
- "item_name": "Fosinopril",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.379465",
- "name": "Fosinopril",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Iodochlorhydroxyquinoline",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Iodochlorhydroxyquinoline",
- "item_group": "Drug",
- "item_name": "Iodochlorhydroxyquinoline",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.396068",
- "name": "Iodochlorhydroxyquinoline",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Iodochlorohydroxyquinoline",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Iodochlorohydroxyquinoline",
- "item_group": "Drug",
- "item_name": "Iodochlorohydroxyquinoline",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.412734",
- "name": "Iodochlorohydroxyquinoline",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Ipratropium",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Ipratropium",
- "item_group": "Drug",
- "item_name": "Ipratropium",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.429333",
- "name": "Ipratropium",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Mebeverine hydrochloride",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Mebeverine hydrochloride",
- "item_group": "Drug",
- "item_name": "Mebeverine hydrochloride",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.445814",
- "name": "Mebeverine hydrochloride",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Mecetronium ethylsulphate",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Mecetronium ethylsulphate",
- "item_group": "Drug",
- "item_name": "Mecetronium ethylsulphate",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.461696",
- "name": "Mecetronium ethylsulphate",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Meclizine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Meclizine",
- "item_group": "Drug",
- "item_name": "Meclizine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.478020",
- "name": "Meclizine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Oxaprozin",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Oxaprozin",
- "item_group": "Drug",
- "item_name": "Oxaprozin",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
-
-
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.496221",
- "name": "Oxaprozin",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Oxazepam",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Oxazepam",
- "item_group": "Drug",
- "item_name": "Oxazepam",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.511933",
- "name": "Oxazepam",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Oxcarbazepine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Oxcarbazepine",
- "item_group": "Drug",
- "item_name": "Oxcarbazepine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.528472",
- "name": "Oxcarbazepine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Oxetacaine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Oxetacaine",
- "item_group": "Drug",
- "item_name": "Oxetacaine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.544177",
- "name": "Oxetacaine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Oxethazaine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Oxethazaine",
- "item_group": "Drug",
- "item_name": "Oxethazaine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.560193",
- "name": "Oxethazaine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Suxamethonium Chloride",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Suxamethonium Chloride",
- "item_group": "Drug",
- "item_name": "Suxamethonium Chloride",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.576447",
- "name": "Suxamethonium Chloride",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Tacrolimus",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Tacrolimus",
- "item_group": "Drug",
- "item_name": "Tacrolimus",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.593481",
- "name": "Tacrolimus",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Ubiquinol",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Ubiquinol",
- "item_group": "Drug",
- "item_name": "Ubiquinol",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.609930",
- "name": "Ubiquinol",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin B12",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin B12",
- "item_group": "Drug",
- "item_name": "Vitamin B12",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.626225",
- "name": "Vitamin B12",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin B1Hydrochloride",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin B1Hydrochloride",
- "item_group": "Drug",
- "item_name": "Vitamin B1Hydrochloride",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.642423",
- "name": "Vitamin B1Hydrochloride",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin B1Monohydrate",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin B1Monohydrate",
- "item_group": "Drug",
- "item_name": "Vitamin B1Monohydrate",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.658946",
- "name": "Vitamin B1Monohydrate",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin B2",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin B2",
- "item_group": "Drug",
- "item_name": "Vitamin B2",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.675234",
- "name": "Vitamin B2",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin B3",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin B3",
- "item_group": "Drug",
- "item_name": "Vitamin B3",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.691598",
- "name": "Vitamin B3",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin D4",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin D4",
- "item_group": "Drug",
- "item_name": "Vitamin D4",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.707840",
- "name": "Vitamin D4",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Vitamin E",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Vitamin E",
- "item_group": "Drug",
- "item_name": "Vitamin E",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.723859",
- "name": "Vitamin E",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Wheat Germ Oil",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Wheat Germ Oil",
- "item_group": "Drug",
- "item_name": "Wheat Germ Oil",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.739829",
- "name": "Wheat Germ Oil",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Wheatgrass extr",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Wheatgrass extr",
- "item_group": "Drug",
- "item_name": "Wheatgrass extr",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.757695",
- "name": "Wheatgrass extr",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Whey Protein",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Whey Protein",
- "item_group": "Drug",
- "item_name": "Whey Protein",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.774098",
- "name": "Whey Protein",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Xylometazoline",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Xylometazoline",
- "item_group": "Drug",
- "item_name": "Xylometazoline",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.790224",
- "name": "Xylometazoline",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Xylometazoline Hydrochloride",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Xylometazoline Hydrochloride",
- "item_group": "Drug",
- "item_name": "Xylometazoline Hydrochloride",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.806359",
- "name": "Xylometazoline Hydrochloride",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Yeast",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Yeast",
- "item_group": "Drug",
- "item_name": "Yeast",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.823305",
- "name": "Yeast",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Yellow Fever Vaccine",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Yellow Fever Vaccine",
- "item_group": "Drug",
- "item_name": "Yellow Fever Vaccine",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.840250",
- "name": "Yellow Fever Vaccine",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Zafirlukast",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Zafirlukast",
- "item_group": "Drug",
- "item_name": "Zafirlukast",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.856856",
- "name": "Zafirlukast",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Zaleplon",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Zaleplon",
- "item_group": "Drug",
- "item_name": "Zaleplon",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.873287",
- "name": "Zaleplon",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Zaltoprofen",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Zaltoprofen",
- "item_group": "Drug",
- "item_name": "Zaltoprofen",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.889263",
- "name": "Zaltoprofen",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- },
- {
- "asset_category": null,
- "attributes": [],
- "barcode": null,
- "brand": null,
- "buying_cost_center": null,
- "country_of_origin": null,
- "create_new_batch": 0,
- "customer_code": "",
- "customer_items": [],
- "customs_tariff_number": null,
- "default_bom": null,
- "default_material_request_type": null,
- "default_supplier": null,
- "default_warehouse": null,
- "delivered_by_supplier": 0,
- "description": "Zanamivir",
- "disabled": 0,
- "docstatus": 0,
- "doctype": "Item",
- "end_of_life": null,
- "expense_account": null,
- "gst_hsn_code": null,
- "has_batch_no": 0,
- "has_serial_no": 0,
- "has_variants": 0,
- "image": null,
- "income_account": null,
- "inspection_required_before_delivery": 0,
- "inspection_required_before_purchase": 0,
- "is_fixed_asset": 0,
- "is_purchase_item": 1,
- "is_sales_item": 1,
- "is_stock_item": 1,
- "is_sub_contracted_item": 0,
- "item_code": "Zanamivir",
- "item_group": "Drug",
- "item_name": "Zanamivir",
- "last_purchase_rate": 0.0,
- "lead_time_days": 0,
- "max_discount": 0.0,
- "min_order_qty": 0.0,
- "modified": "2017-07-06 12:53:17.905022",
- "name": "Zanamivir",
- "naming_series": null,
- "net_weight": 0.0,
- "opening_stock": 0.0,
- "quality_parameters": [],
- "reorder_levels": [],
- "route": null,
- "safety_stock": 0.0,
- "selling_cost_center": null,
- "serial_no_series": null,
- "show_in_website": 0,
- "show_variant_in_website": 0,
- "slideshow": null,
- "standard_rate": 0.0,
- "stock_uom": "Nos",
- "supplier_items": [],
- "taxes": [],
- "thumbnail": null,
- "tolerance": 0.0,
- "uoms": [
- {
- "conversion_factor": 1.0,
- "uom": "Nos"
- }
- ],
- "valuation_method": null,
- "valuation_rate": 0.0,
- "variant_based_on": null,
- "variant_of": null,
- "warranty_period": null,
- "web_long_description": null,
- "website_image": null,
- "website_item_groups": [],
- "website_specifications": [],
- "website_warehouse": null,
- "weight_uom": null,
- "weightage": 0
- }
-]
diff --git a/erpnext/demo/data/employee.json b/erpnext/demo/data/employee.json
deleted file mode 100644
index 2d2dbe8..0000000
--- a/erpnext/demo/data/employee.json
+++ /dev/null
@@ -1,92 +0,0 @@
-[
- {
- "date_of_birth": "1982-01-03",
- "date_of_joining": "2001-10-10",
- "employee_name": "Diana Prince",
- "first_name": "Diana",
- "last_name": "Prince",
- "gender": "Female",
- "user_id": "DianaPrince@example.com"
- },
- {
- "date_of_birth": "1959-02-03",
- "date_of_joining": "1976-09-16",
- "employee_name": "Zatanna Zatara",
- "gender": "Female",
- "user_id": "ZatannaZatara@example.com",
- "first_name": "Zatanna",
- "last_name": "Zatara"
- },
- {
- "date_of_birth": "1982-03-03",
- "date_of_joining": "2000-06-16",
- "employee_name": "Holly Granger",
- "gender": "Female",
- "user_id": "HollyGranger@example.com",
- "first_name": "Holly",
- "last_name": "Granger"
- },
- {
- "date_of_birth": "1945-04-04",
- "date_of_joining": "1969-07-01",
- "employee_name": "Neptunia Aquaria",
- "gender": "Female",
- "user_id": "NeptuniaAquaria@example.com",
- "first_name": "Neptunia",
- "last_name": "Aquaria"
- },
- {
- "date_of_birth": "1978-05-03",
- "date_of_joining": "1999-12-24",
- "employee_name": "Arthur Curry",
- "gender": "Male",
- "user_id": "ArthurCurry@example.com",
- "first_name": "Arthur",
- "last_name": "Curry"
- },
- {
- "date_of_birth": "1964-06-03",
- "date_of_joining": "1981-08-05",
- "employee_name": "Thalia Al Ghul",
- "gender": "Female",
- "user_id": "ThaliaAlGhul@example.com",
- "first_name": "Thalia",
- "last_name": "Al Ghul"
- },
- {
- "date_of_birth": "1982-07-03",
- "date_of_joining": "2006-06-10",
- "employee_name": "Maxwell Lord",
- "gender": "Male",
- "user_id": "MaxwellLord@example.com",
- "first_name": "Maxwell",
- "last_name": "Lord"
- },
- {
- "date_of_birth": "1969-08-03",
- "date_of_joining": "1993-10-21",
- "employee_name": "Grace Choi",
- "gender": "Female",
- "user_id": "GraceChoi@example.com",
- "first_name": "Grace",
- "last_name": "Choi"
- },
- {
- "date_of_birth": "1982-09-03",
- "date_of_joining": "2005-09-06",
- "employee_name": "Vandal Savage",
- "gender": "Male",
- "user_id": "VandalSavage@example.com",
- "first_name": "Vandal",
- "last_name": "Savage"
- },
- {
- "date_of_birth": "1985-10-03",
- "date_of_joining": "2007-12-25",
- "employee_name": "Caitlin Snow",
- "gender": "Female",
- "user_id": "CaitlinSnow@example.com",
- "first_name": "Caitlin",
- "last_name": "Snow"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/grading_scale.json b/erpnext/demo/data/grading_scale.json
deleted file mode 100644
index 0760919..0000000
--- a/erpnext/demo/data/grading_scale.json
+++ /dev/null
@@ -1,17 +0,0 @@
-[
- {
- "doctype": "Grading Scale",
- "grading_scale_name": "Standard Grading",
- "description": "Standard Grading Scale",
- "intervals": [
- {"threshold": 100.0, "grade_code": "A", "grade_description": "Excellent"},
- {"threshold": 89.9, "grade_code": "B+", "grade_description": "Close to Excellence"},
- {"threshold": 80.0, "grade_code": "B", "grade_description": "Good"},
- {"threshold": 69.9, "grade_code": "C+", "grade_description": "Almost Good"},
- {"threshold": 60.0, "grade_code": "C", "grade_description": "Average"},
- {"threshold": 50.0, "grade_code": "D+", "grade_description": "Have to Work"},
- {"threshold": 40.0, "grade_code": "D", "grade_description": "Not met Baseline Expectations"},
- {"threshold": 0.0, "grade_code": "F", "grade_description": "Have to work a lot"}
- ]
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/instructor.json b/erpnext/demo/data/instructor.json
deleted file mode 100644
index a25d163..0000000
--- a/erpnext/demo/data/instructor.json
+++ /dev/null
@@ -1,128 +0,0 @@
-[
- {
- "doctype": "Instructor",
- "instructor_name": "Eddie Jessup",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "William Dyer",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Alastor Moody",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Charles Xavier",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Cuthbert Calculus",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Reed Richards",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Urban Chronotis",
- "naming_series": "INS/",
- "department": "Physics"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "River Song",
- "naming_series": "INS/",
- "department": "Physics"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Yana",
- "naming_series": "INS/",
- "department": "Physics"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Neil Lasrado",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Deepshi Garg",
- "naming_series": "INS/",
- "department": "Chemistry"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Shubham Saxena",
- "naming_series": "INS/",
- "department": "Physics"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Rushabh Mehta",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Umari Syed",
- "naming_series": "INS/",
- "department": "Chemistry"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Aman Singh",
- "naming_series": "INS/",
- "department": "Physics"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Nabin",
- "naming_series": "INS/",
- "department": "Chemistry"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Kanchan Chauhan",
- "naming_series": "INS/",
- "department": "Information Technology"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Valmik Jangla",
- "naming_series": "INS/",
- "department": "Chemistry"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Amit Jain",
- "naming_series": "INS/",
- "department": "Physics"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Shreyas P",
- "naming_series": "INS/",
- "department": "Chemistry"
- },
- {
- "doctype": "Instructor",
- "instructor_name": "Rohit",
- "naming_series": "INS/",
- "department": "Information Technology"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/item.json b/erpnext/demo/data/item.json
deleted file mode 100644
index 1d4ed34..0000000
--- a/erpnext/demo/data/item.json
+++ /dev/null
@@ -1,493 +0,0 @@
-[
- {
- "item_defaults": [
- {
- "default_supplier": "Asiatic Solutions",
- "default_warehouse": "Stores"
- }
- ],
- "description": "For Upper Bearing",
- "image": "/assets/erpnext_demo/images/disc.png",
- "item_code": "Disc Collars",
- "item_group": "Raw Material",
- "item_name": "Disc Collars"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Nan Duskin",
- "default_warehouse": "Stores"
- }
- ],
- "description": "CAST IRON, MCMASTER PART NO. 3710T13",
- "image": "/assets/erpnext_demo/images/bearing.jpg",
- "item_code": "Bearing Block",
- "item_group": "Raw Material",
- "item_name": "Bearing Block"
- },
- {
- "item_defaults": [
- {
- "default_supplier": null,
- "default_warehouse": "Finished Goods"
- }
- ],
- "description": "Wind Mill C Series for Commercial Use 18ft",
- "image": "/assets/erpnext_demo/images/wind-turbine-2.png",
- "item_code": "Wind MIll C Series",
- "item_group": "Products",
- "item_name": "Wind MIll C Series"
- },
- {
- "item_defaults": [
- {
- "default_supplier": null,
- "default_warehouse": "Finished Goods"
- }
- ],
- "description": "Wind Mill A Series for Home Use 9ft",
- "image": "/assets/erpnext_demo/images/wind-turbine.png",
- "item_code": "Wind Mill A Series",
- "item_group": "Products",
- "item_name": "Wind Mill A Series"
- },
- {
- "item_defaults": [
- {
- "default_supplier": null,
- "default_warehouse": "Finished Goods"
- }
- ],
- "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->",
- "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
- "item_code": "Wind Turbine",
- "item_group": "Products",
- "item_name": "Wind Turbine",
- "has_variants": 1,
- "has_serial_no": 1,
- "attributes": [
- {
- "attribute": "Size"
- }
- ]
- },
- {
- "item_defaults": [
- {
- "default_supplier": "HomeBase",
- "default_warehouse": "Stores"
- }
- ],
- "description": "1.5 in. Diameter x 36 in. Mild Steel Tubing",
- "image": null,
- "item_code": "Bearing Pipe",
- "item_group": "Raw Material",
- "item_name": "Bearing Pipe"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "New World Realty",
- "default_warehouse": "Stores"
- }
- ],
- "description": "1/32 in. x 24 in. x 47 in. HDPE Opaque Sheet",
- "image": null,
- "item_code": "Wing Sheet",
- "item_group": "Raw Material",
- "item_name": "Wing Sheet"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Eagle Hardware",
- "default_warehouse": "Stores"
- }
- ],
- "description": "3/16 in. x 6 in. x 6 in. Low Carbon Steel Plate",
- "image": null,
- "item_code": "Upper Bearing Plate",
- "item_group": "Raw Material",
- "item_name": "Upper Bearing Plate"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Asiatic Solutions",
- "default_warehouse": "Stores"
- }
- ],
- "description": "Bearing Assembly",
- "image": null,
- "item_code": "Bearing Assembly",
- "item_group": "Sub Assemblies",
- "item_name": "Bearing Assembly"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "HomeBase",
- "default_warehouse": "Stores"
- }
- ],
- "description": "3/4 in. x 2 ft. x 4 ft. Pine Plywood",
- "image": null,
- "item_code": "Base Plate",
- "item_group": "Raw Material",
- "item_name": "Base Plate",
- "is_sub_contracted_item": 1
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Scott Ties",
- "default_warehouse": "Stores"
- }
- ],
- "description": "N/A",
- "image": null,
- "item_code": "Stand",
- "item_group": "Raw Material",
- "item_name": "Stand"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Eagle Hardware",
- "default_warehouse": "Stores"
- }
- ],
- "description": "1 in. x 3 in. x 1 ft. Multipurpose Al Alloy Bar",
- "image": null,
- "item_code": "Bearing Collar",
- "item_group": "Raw Material",
- "item_name": "Bearing Collar"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Eagle Hardware",
- "default_warehouse": "Stores"
- }
- ],
- "description": "1/4 in. x 6 in. x 6 in. Mild Steel Plate",
- "image": null,
- "item_code": "Base Bearing Plate",
- "item_group": "Raw Material",
- "item_name": "Base Bearing Plate"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "HomeBase",
- "default_warehouse": "Stores"
- }
- ],
- "description": "15/32 in. x 4 ft. x 8 ft. 3-Ply Rtd Sheathing",
- "image": null,
- "item_code": "External Disc",
- "item_group": "Raw Material",
- "item_name": "External Disc"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Eagle Hardware",
- "default_warehouse": "Stores"
- }
- ],
- "description": "1.25 in. Diameter x 6 ft. Mild Steel Tubing",
- "image": null,
- "item_code": "Shaft",
- "item_group": "Raw Material",
- "item_name": "Shaft"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "Ks Merchandise",
- "default_warehouse": "Stores"
- }
- ],
- "description": "1/2 in. x 2 ft. x 4 ft. Pine Plywood",
- "image": null,
- "item_code": "Blade Rib",
- "item_group": "Raw Material",
- "item_name": "Blade Rib"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "HomeBase",
- "default_warehouse": "Stores"
- }
- ],
- "description": "For Bearing Collar",
- "image": null,
- "item_code": "Internal Disc",
- "item_group": "Raw Material",
- "item_name": "Internal Disc"
- },
- {
- "item_defaults": [
- {
- "default_supplier": null,
- "default_warehouse": "Finished Goods"
- }
- ],
- "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->\n<p>Size: Small</p>",
- "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
- "item_code": "Wind Turbine-S",
- "item_group": "Products",
- "item_name": "Wind Turbine-S",
- "variant_of": "Wind Turbine",
- "valuation_rate": 300,
- "attributes": [
- {
- "attribute": "Size",
- "attribute_value": "Small"
- }
- ]
- },
- {
- "item_defaults": [
- {
- "default_supplier": null,
- "default_warehouse": "Finished Goods"
- }
- ],
- "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->\n<p>Size: Medium</p>",
- "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
- "item_code": "Wind Turbine-M",
- "item_group": "Products",
- "item_name": "Wind Turbine-M",
- "variant_of": "Wind Turbine",
- "valuation_rate": 300,
- "attributes": [
- {
- "attribute": "Size",
- "attribute_value": "Medium"
- }
- ]
- },
- {
- "item_defaults": [
- {
- "default_supplier": null,
- "default_warehouse": "Finished Goods"
- }
- ],
- "description": "Small Wind Turbine for Home Use\n\n\n<!-- html -->\n<p>Size: Large</p>",
- "image": "/assets/erpnext_demo/images/wind-turbine-1.jpg",
- "item_code": "Wind Turbine-L",
- "item_group": "Products",
- "item_name": "Wind Turbine-L",
- "variant_of": "Wind Turbine",
- "valuation_rate": 300,
- "attributes": [
- {
- "attribute": "Size",
- "attribute_value": "Large"
- }
- ]
- },
- {
- "is_stock_item": 0,
- "description": "Wind Mill A Series with Spare Bearing",
- "item_code": "Wind Mill A Series with Spare Bearing",
- "item_group": "Products",
- "item_name": "Wind Mill A Series with Spare Bearing"
- },
- {
- "item_defaults": [
- {
- "default_supplier": "HomeBase",
- "default_warehouse": "Stores"
- }
- ],
- "description": "3/4 in. x 2 ft. x 4 ft. Pine Plywood",
- "image": null,
- "item_code": "Base Plate Un Painted",
- "item_group": "Raw Material",
- "item_name": "Base Plate Un Painted"
- },
- {
- "is_fixed_asset": 1,
- "asset_category": "Furnitures",
- "is_stock_item": 0,
- "description": "Table",
- "item_code": "Table",
- "item_name": "Table",
- "item_group": "Products"
- },
- {
- "is_fixed_asset": 1,
- "asset_category": "Furnitures",
- "is_stock_item": 0,
- "description": "Chair",
- "item_code": "Chair",
- "item_name": "Chair",
- "item_group": "Products"
- },
- {
- "is_fixed_asset": 1,
- "asset_category": "Electronic Equipments",
- "is_stock_item": 0,
- "description": "Computer",
- "item_code": "Computer",
- "item_name": "Computer",
- "item_group": "Products"
- },
- {
- "is_fixed_asset": 1,
- "asset_category": "Electronic Equipments",
- "is_stock_item": 0,
- "description": "Mobile",
- "item_code": "Mobile",
- "item_name": "Mobile",
- "item_group": "Products"
- },
- {
- "is_fixed_asset": 1,
- "asset_category": "Softwares",
- "is_stock_item": 0,
- "description": "ERP",
- "item_code": "ERP",
- "item_name": "ERP",
- "item_group": "All Item Groups"
- },
- {
- "is_fixed_asset": 1,
- "asset_category": "Softwares",
- "is_stock_item": 0,
- "description": "Autocad",
- "item_code": "Autocad",
- "item_name": "Autocad",
- "item_group": "All Item Groups"
- },
- {
- "is_stock_item": 1,
- "has_batch_no": 1,
- "create_new_batch": 1,
- "valuation_rate": 200,
- "item_defaults": [
- {
- "default_warehouse": "Stores"
- }
- ],
- "description": "Corrugated Box",
- "item_code": "Corrugated Box",
- "item_name": "Corrugated Box",
- "item_group": "All Item Groups"
- },
- {
- "item_defaults": [
- {
- "default_warehouse": "Finished Goods"
- }
- ],
- "is_stock_item": 1,
- "description": "OnePlus 6",
- "item_code": "OnePlus 6",
- "item_name": "OnePlus 6",
- "item_group": "Products",
- "domain": "Retail"
- },
- {
- "item_defaults": [
- {
- "default_warehouse": "Finished Goods"
- }
- ],
- "is_stock_item": 1,
- "description": "OnePlus 6T",
- "item_code": "OnePlus 6T",
- "item_name": "OnePlus 6T",
- "item_group": "Products",
- "domain": "Retail"
- },
- {
- "item_defaults": [
- {
- "default_warehouse": "Finished Goods"
- }
- ],
- "is_stock_item": 1,
- "description": "Xiaomi Poco F1",
- "item_code": "Xiaomi Poco F1",
- "item_name": "Xiaomi Poco F1",
- "item_group": "Products",
- "domain": "Retail"
- },
- {
- "item_defaults": [
- {
- "default_warehouse": "Finished Goods"
- }
- ],
- "is_stock_item": 1,
- "description": "Iphone XS",
- "item_code": "Iphone XS",
- "item_name": "Iphone XS",
- "item_group": "Products",
- "domain": "Retail"
- },
- {
- "item_defaults": [
- {
- "default_warehouse": "Finished Goods"
- }
- ],
- "is_stock_item": 1,
- "description": "Samsung Galaxy S9",
- "item_code": "Samsung Galaxy S9",
- "item_name": "Samsung Galaxy S9",
- "item_group": "Products",
- "domain": "Retail"
- },
- {
- "item_defaults": [
- {
- "default_warehouse": "Finished Goods"
- }
- ],
- "is_stock_item": 1,
- "description": "Sony Bluetooth Headphone",
- "item_code": "Sony Bluetooth Headphone",
- "item_name": "Sony Bluetooth Headphone",
- "item_group": "Products",
- "domain": "Retail"
- },
- {
- "is_stock_item": 0,
- "description": "Samsung Phone Repair",
- "item_code": "Samsung Phone Repair",
- "item_name": "Samsung Phone Repair",
- "item_group": "Services",
- "domain": "Retail"
- },
- {
- "is_stock_item": 0,
- "description": "OnePlus Phone Repair",
- "item_code": "OnePlus Phone Repair",
- "item_name": "OnePlus Phone Repair",
- "item_group": "Services",
- "domain": "Retail"
- },
- {
- "is_stock_item": 0,
- "description": "Xiaomi Phone Repair",
- "item_code": "Xiaomi Phone Repair",
- "item_name": "Xiaomi Phone Repair",
- "item_group": "Services",
- "domain": "Retail"
- },
- {
- "is_stock_item": 0,
- "description": "Apple Phone Repair",
- "item_code": "Apple Phone Repair",
- "item_name": "Apple Phone Repair",
- "item_group": "Services",
- "domain": "Retail"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/item_education.json b/erpnext/demo/data/item_education.json
deleted file mode 100644
index 40e4701..0000000
--- a/erpnext/demo/data/item_education.json
+++ /dev/null
@@ -1,137 +0,0 @@
-[
- {
- "default_supplier": "Asiatic Solutions",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Books",
- "item_group": "Raw Material",
- "item_name": "Books"
- },
- {
- "default_supplier": "HomeBase",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Pencil",
- "item_group": "Raw Material",
- "item_name": "Pencil"
- },
- {
- "default_supplier": "New World Realty",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Tables",
- "item_group": "Raw Material",
- "item_name": "Tables"
- },
- {
- "default_supplier": "Eagle Hardware",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Chair",
- "item_group": "Raw Material",
- "item_name": "Chair"
- },
- {
- "default_supplier": "Asiatic Solutions",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Black Board",
- "item_group": "Sub Assemblies",
- "item_name": "Black Board"
- },
- {
- "default_supplier": "HomeBase",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Chalk",
- "item_group": "Raw Material",
- "item_name": "Chalk"
- },
- {
- "default_supplier": "HomeBase",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Notepad",
- "item_group": "Raw Material",
- "item_name": "Notepad"
- },
- {
- "default_supplier": "Ks Merchandise",
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Uniform",
- "item_group": "Raw Material",
- "item_name": "Uniform"
- },
- {
- "is_stock_item": 0,
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "description": "Computer",
- "item_code": "Computer",
- "item_name": "Computer",
- "item_group": "Products"
- },
- {
- "is_stock_item": 0,
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "description": "Mobile",
- "item_code": "Mobile",
- "item_name": "Mobile",
- "item_group": "Products"
- },
- {
- "is_stock_item": 0,
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "description": "ERP",
- "item_code": "ERP",
- "item_name": "ERP",
- "item_group": "All Item Groups"
- },
- {
- "is_stock_item": 0,
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "description": "Autocad",
- "item_code": "Autocad",
- "item_name": "Autocad",
- "item_group": "All Item Groups"
- },
- {
- "item_defaults": [{
- "default_warehouse": "Stores",
- "company": "Whitmore College"
- }],
- "item_code": "Service",
- "item_group": "Services",
- "item_name": "Service",
- "has_variants": 0,
- "is_stock_item": 0
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/lead.json b/erpnext/demo/data/lead.json
deleted file mode 100644
index ff78877..0000000
--- a/erpnext/demo/data/lead.json
+++ /dev/null
@@ -1,127 +0,0 @@
-[
- {
- "company_name": "Zany Brainy",
- "email_id": "MartLakeman@example.com",
- "lead_name": "Mart Lakeman"
- },
- {
- "company_name": "Patterson-Fletcher",
- "email_id": "SagaLundqvist@example.com",
- "lead_name": "Saga Lundqvist"
- },
- {
- "company_name": "Griff's Hamburgers",
- "email_id": "AdnaSjoberg@example.com",
- "lead_name": "Adna Sj\u00f6berg"
- },
- {
- "company_name": "Rhodes Furniture",
- "email_id": "IdaDSvendsen@example.com",
- "lead_name": "Ida Svendsen"
- },
- {
- "company_name": "Burger Chef",
- "email_id": "EmppuHameenniemi@example.com",
- "lead_name": "Emppu H\u00e4meenniemi"
- },
- {
- "company_name": "Stratabiz",
- "email_id": "EugenioPisano@example.com",
- "lead_name": "Eugenio Pisano"
- },
- {
- "company_name": "Home Quarters Warehouse",
- "email_id": "SemharHagos@example.com",
- "lead_name": "Semhar Hagos"
- },
- {
- "company_name": "Enviro Architectural Designs",
- "email_id": "BranimiraIvankovic@example.com",
- "lead_name": "Branimira Ivankovi\u0107"
- },
- {
- "company_name": "Ideal Garden Management",
- "email_id": "ShellyLFields@example.com",
- "lead_name": "Shelly Fields"
- },
- {
- "company_name": "Listen Up",
- "email_id": "LeoMikulic@example.com",
- "lead_name": "Leo Mikuli\u0107"
- },
- {
- "company_name": "I. Magnin",
- "email_id": "DenisaJarosova@example.com",
- "lead_name": "Denisa Jaro\u0161ov\u00e1"
- },
- {
- "company_name": "First Rate Choice",
- "email_id": "JanekRutkowski@example.com",
- "lead_name": "Janek Rutkowski"
- },
- {
- "company_name": "Multi Tech Development",
- "email_id": "mm@example.com",
- "lead_name": "\u7f8e\u6708 \u5b87\u85e4"
- },
- {
- "company_name": "National Auto Parts",
- "email_id": "dd@example.com",
- "lead_name": "\u0414\u0430\u043d\u0438\u0438\u043b \u0410\u0444\u0430\u043d\u0430\u0441\u044c\u0435\u0432"
- },
- {
- "company_name": "Integra Investment Plan",
- "email_id": "ZorislavPetkovic@example.com",
- "lead_name": "Zorislav Petkovi\u0107"
- },
- {
- "company_name": "The Lawn Guru",
- "email_id": "NanaoNiwa@example.com",
- "lead_name": "Nanao Niwa"
- },
- {
- "company_name": "Buena Vista Realty Service",
- "email_id": "HreiarJorundsson@example.com",
- "lead_name": "Hrei\u00f0ar J\u00f6rundsson"
- },
- {
- "company_name": "Bountiful Harvest Health Food Store",
- "email_id": "ChuThiBichLai@example.com",
- "lead_name": "Lai Chu"
- },
- {
- "company_name": "P. Samuels Men's Clothiers",
- "email_id": "VictorAksakov@example.com",
- "lead_name": "Victor Aksakov"
- },
- {
- "company_name": "Vinyl Fever",
- "email_id": "SaidalimBisliev@example.com",
- "lead_name": "Saidalim Bisliev"
- },
- {
- "company_name": "Garden Master",
- "email_id": "TotteJakobsson@example.com",
- "lead_name": "Totte Jakobsson"
- },
- {
- "company_name": "Big Apple",
- "email_id": "NanaArmasRobles@example.com",
- "lead_name": "Nan\u00e1 Armas"
- },
- {
- "company_name": "Monk House Sales",
- "email_id": "WalerianDuda@example.com",
- "lead_name": "Walerian Duda"
- },
- {
- "company_name": "ManCharm",
- "email_id": "Moarimikashi@example.com",
- "lead_name": "Moarimikashi"
- },
- {
- "company_name": "Custom Lawn Care",
- "email_id": "DobromilDabrowski@example.com",
- "lead_name": "Dobromi\u0142 D\u0105browski"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/location.json b/erpnext/demo/data/location.json
deleted file mode 100644
index b521aa0..0000000
--- a/erpnext/demo/data/location.json
+++ /dev/null
@@ -1,22 +0,0 @@
-[
- {
- "location_name": "Main Location",
- "latitude": 40.0,
- "longitude": 20.0
- },
- {
- "location_name": "Avg Location",
- "latitude": 63.0,
- "longitude": 99.3
- },
- {
- "location_name": "Zany Location",
- "latitude": 47.5,
- "longitude": 10.0
- },
- {
- "location_name": "Fletcher Location",
- "latitude": 100.90,
- "longitude": 80
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/operation.json b/erpnext/demo/data/operation.json
deleted file mode 100644
index 47f26d1..0000000
--- a/erpnext/demo/data/operation.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
- "description": "Setup Fixtures for Assembly",
- "name": "Setup Fixtures",
- "workstation": "Assembly Station 1"
- },
- {
- "description": "Assemble Unit as per Standard Operating Procedures",
- "name": "Assembly Operation",
- "workstation": "Assembly Station 1"
- },
- {
- "description": "Final Testing Checklist",
- "name": "Testing",
- "workstation": "Packing and Testing Station"
- },
- {
- "description": "Final Packing and add Instructions",
- "name": "Packing",
- "workstation": "Packing and Testing Station"
- },
- {
- "description": "Prepare frame for assembly",
- "name": "Prepare Frame",
- "workstation": "Drilling Machine 1"
- },
- {
- "description": "Connect wires",
- "name": "Wiring",
- "workstation": "Assembly Station 1"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/patient.json b/erpnext/demo/data/patient.json
deleted file mode 100644
index 6d95a20..0000000
--- a/erpnext/demo/data/patient.json
+++ /dev/null
@@ -1,27 +0,0 @@
-[
- {
- "patient_name": "lila",
- "gender": "Female"
- },
- {
- "patient_name": "charline",
- "gender": "Female"
- },
- {
- "patient_name": "soren",
- "last_name": "le gall",
- "gender": "Male"
- },
- {
- "patient_name": "fanny",
- "gender": "Female"
- },
- {
- "patient_name": "julie",
- "gender": "Female"
- },
- {
- "patient_name": "louka",
- "gender": "Male"
- }
-]
diff --git a/erpnext/demo/data/practitioner.json b/erpnext/demo/data/practitioner.json
deleted file mode 100644
index 39c960f..0000000
--- a/erpnext/demo/data/practitioner.json
+++ /dev/null
@@ -1,17 +0,0 @@
-[
- {
- "doctype": "Healthcare Practitioner",
- "first_name": "Eddie Jessup",
- "department": "Pathology"
- },
- {
- "doctype": "Healthcare Practitioner",
- "first_name": "Deepshi Garg",
- "department": "ENT"
- },
- {
- "doctype": "Healthcare Practitioner",
- "first_name": "Amit Jain",
- "department": "Microbiology"
- }
-]
diff --git a/erpnext/demo/data/program.json b/erpnext/demo/data/program.json
deleted file mode 100644
index 9c2ec77..0000000
--- a/erpnext/demo/data/program.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[
- {
- "doctype": "Program",
- "name": "MCA",
- "program_name": "Masters of Computer Applications",
- "program_code": "MCA",
- "department": "Information Technology",
- "courses": [
- { "course": "MCA4010" },
- { "course": "MCA4020" },
- { "course": "MCA4030" }
- ]
- },
- {
- "doctype": "Program",
- "name": "BCA",
- "program_name": "Bachelor of Computer Applications",
- "program_code": "BCA",
- "department": "Information Technology",
- "courses": [
- { "course": "BCA2030" },
- { "course": "BCA1030" },
- { "course": "BCA2020" },
- { "course": "BCA1040" },
- { "course": "BCA1010" },
- { "course": "BCA2010" },
- { "course": "BCA1020" }
- ]
- },
- {
- "doctype": "Program",
- "name": "BBA",
- "program_name": "Bachelor of Business Administration",
- "program_code": "BBA",
- "department": "Management Studies",
- "courses": [
- { "course": "BBA 101" },
- { "course": "BBA 102" },
- { "course": "BBA 103" },
- { "course": "BBA 301" },
- { "course": "BBA 302" },
- { "course": "BBA 304" },
- { "course": "BBA 505" }
- ]
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/random_student_data.json b/erpnext/demo/data/random_student_data.json
deleted file mode 100644
index babcc71..0000000
--- a/erpnext/demo/data/random_student_data.json
+++ /dev/null
@@ -1,1604 +0,0 @@
-[
-{
-"first_name": "amanda",
-"last_name": "edwards",
-"image": "https://randomuser.me/api/portraits/women/55.jpg",
-"gender": "Female"
-},
-{
-"first_name": "abbie",
-"last_name": "johnston",
-"image": "https://randomuser.me/api/portraits/women/46.jpg",
-"gender": "Female"
-},
-{
-"first_name": "heather",
-"last_name": "nelson",
-"image": "https://randomuser.me/api/portraits/women/13.jpg",
-"gender": "Female"
-},
-{
-"first_name": "maxwell",
-"last_name": "gilbert",
-"image": "https://randomuser.me/api/portraits/men/56.jpg",
-"gender": "Male"
-},
-{
-"first_name": "molly",
-"last_name": "ramirez",
-"image": "https://randomuser.me/api/portraits/women/71.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ian",
-"last_name": "barrett",
-"image": "https://randomuser.me/api/portraits/men/68.jpg",
-"gender": "Male"
-},
-{
-"first_name": "kim",
-"last_name": "hudson",
-"image": "https://randomuser.me/api/portraits/women/53.jpg",
-"gender": "Female"
-},
-{
-"first_name": "bruce",
-"last_name": "murray",
-"image": "https://randomuser.me/api/portraits/men/59.jpg",
-"gender": "Male"
-},
-{
-"first_name": "henry",
-"last_name": "powell",
-"image": "https://randomuser.me/api/portraits/men/88.jpg",
-"gender": "Male"
-},
-{
-"first_name": "chris",
-"last_name": "foster",
-"image": "https://randomuser.me/api/portraits/men/5.jpg",
-"gender": "Male"
-},
-{
-"first_name": "billy",
-"last_name": "kim",
-"image": "https://randomuser.me/api/portraits/men/91.jpg",
-"gender": "Male"
-},
-{
-"first_name": "samuel",
-"last_name": "harper",
-"image": "https://randomuser.me/api/portraits/men/56.jpg",
-"gender": "Male"
-},
-{
-"first_name": "jayden",
-"last_name": "kelly",
-"image": "https://randomuser.me/api/portraits/men/31.jpg",
-"gender": "Male"
-},
-{
-"first_name": "grace",
-"last_name": "berry",
-"image": "https://randomuser.me/api/portraits/women/69.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ronnie",
-"last_name": "nelson",
-"image": "https://randomuser.me/api/portraits/men/83.jpg",
-"gender": "Male"
-},
-{
-"first_name": "harvey",
-"last_name": "harper",
-"image": "https://randomuser.me/api/portraits/men/68.jpg",
-"gender": "Male"
-},
-{
-"first_name": "maya",
-"last_name": "fernandez",
-"image": "https://randomuser.me/api/portraits/women/79.jpg",
-"gender": "Female"
-},
-{
-"first_name": "faith",
-"last_name": "lewis",
-"image": "https://randomuser.me/api/portraits/women/84.jpg",
-"gender": "Female"
-},
-{
-"first_name": "kirk",
-"last_name": "macrae",
-"image": "https://randomuser.me/api/portraits/men/13.jpg",
-"gender": "Male"
-},
-{
-"first_name": "tracy",
-"last_name": "holt",
-"image": "https://randomuser.me/api/portraits/women/18.jpg",
-"gender": "Female"
-},
-{
-"first_name": "mandy",
-"last_name": "dean",
-"image": "https://randomuser.me/api/portraits/women/0.jpg",
-"gender": "Female"
-},
-{
-"first_name": "sam",
-"last_name": "dunn",
-"image": "https://randomuser.me/api/portraits/women/12.jpg",
-"gender": "Female"
-},
-{
-"first_name": "zoe",
-"last_name": "fleming",
-"image": "https://randomuser.me/api/portraits/women/9.jpg",
-"gender": "Female"
-},
-{
-"first_name": "jeffrey",
-"last_name": "stewart",
-"image": "https://randomuser.me/api/portraits/men/56.jpg",
-"gender": "Male"
-},
-{
-"first_name": "dick",
-"last_name": "ryan",
-"image": "https://randomuser.me/api/portraits/men/63.jpg",
-"gender": "Male"
-},
-{
-"first_name": "carl",
-"last_name": "neal",
-"image": "https://randomuser.me/api/portraits/men/41.jpg",
-"gender": "Male"
-},
-{
-"first_name": "scarlett",
-"last_name": "ruiz",
-"image": "https://randomuser.me/api/portraits/women/24.jpg",
-"gender": "Female"
-},
-{
-"first_name": "rene",
-"last_name": "hughes",
-"image": "https://randomuser.me/api/portraits/men/3.jpg",
-"gender": "Male"
-},
-{
-"first_name": "greg",
-"last_name": "montgomery",
-"image": "https://randomuser.me/api/portraits/men/12.jpg",
-"gender": "Male"
-},
-{
-"first_name": "matt",
-"last_name": "lane",
-"image": "https://randomuser.me/api/portraits/men/85.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eleanor",
-"last_name": "pearson",
-"image": "https://randomuser.me/api/portraits/women/61.jpg",
-"gender": "Female"
-},
-{
-"first_name": "theodore",
-"last_name": "burton",
-"image": "https://randomuser.me/api/portraits/men/81.jpg",
-"gender": "Male"
-},
-{
-"first_name": "jesus",
-"last_name": "hunt",
-"image": "https://randomuser.me/api/portraits/men/50.jpg",
-"gender": "Male"
-},
-{
-"first_name": "taylor",
-"last_name": "alvarez",
-"image": "https://randomuser.me/api/portraits/men/0.jpg",
-"gender": "Male"
-},
-{
-"first_name": "barbara",
-"last_name": "lucas",
-"image": "https://randomuser.me/api/portraits/women/21.jpg",
-"gender": "Female"
-},
-{
-"first_name": "nicky",
-"last_name": "simmons",
-"image": "https://randomuser.me/api/portraits/women/29.jpg",
-"gender": "Female"
-},
-{
-"first_name": "arthur",
-"last_name": "obrien",
-"image": "https://randomuser.me/api/portraits/men/11.jpg",
-"gender": "Male"
-},
-{
-"first_name": "donna",
-"last_name": "holmes",
-"image": "https://randomuser.me/api/portraits/women/33.jpg",
-"gender": "Female"
-},
-{
-"first_name": "mitchell",
-"last_name": "castro",
-"image": "https://randomuser.me/api/portraits/men/26.jpg",
-"gender": "Male"
-},
-{
-"first_name": "byron",
-"last_name": "marshall",
-"image": "https://randomuser.me/api/portraits/men/57.jpg",
-"gender": "Male"
-},
-{
-"first_name": "larry",
-"last_name": "king",
-"image": "https://randomuser.me/api/portraits/men/58.jpg",
-"gender": "Male"
-},
-{
-"first_name": "deborah",
-"last_name": "fuller",
-"image": "https://randomuser.me/api/portraits/women/50.jpg",
-"gender": "Female"
-},
-{
-"first_name": "eleanor",
-"last_name": "elliott",
-"image": "https://randomuser.me/api/portraits/women/80.jpg",
-"gender": "Female"
-},
-{
-"first_name": "derrick",
-"last_name": "shaw",
-"image": "https://randomuser.me/api/portraits/men/78.jpg",
-"gender": "Male"
-},
-{
-"first_name": "barbara",
-"last_name": "lynch",
-"image": "https://randomuser.me/api/portraits/women/15.jpg",
-"gender": "Female"
-},
-{
-"first_name": "elijah",
-"last_name": "allen",
-"image": "https://randomuser.me/api/portraits/men/43.jpg",
-"gender": "Male"
-},
-{
-"first_name": "nicholas",
-"last_name": "harper",
-"image": "https://randomuser.me/api/portraits/men/2.jpg",
-"gender": "Male"
-},
-{
-"first_name": "sofia",
-"last_name": "riley",
-"image": "https://randomuser.me/api/portraits/women/96.jpg",
-"gender": "Female"
-},
-{
-"first_name": "jar",
-"last_name": "hunt",
-"image": "https://randomuser.me/api/portraits/men/72.jpg",
-"gender": "Male"
-},
-{
-"first_name": "philip",
-"last_name": "rose",
-"image": "https://randomuser.me/api/portraits/men/16.jpg",
-"gender": "Male"
-},
-{
-"first_name": "ella",
-"last_name": "moore",
-"image": "https://randomuser.me/api/portraits/women/83.jpg",
-"gender": "Female"
-},
-{
-"first_name": "seth",
-"last_name": "tucker",
-"image": "https://randomuser.me/api/portraits/men/6.jpg",
-"gender": "Male"
-},
-{
-"first_name": "abby",
-"last_name": "gonzalez",
-"image": "https://randomuser.me/api/portraits/women/18.jpg",
-"gender": "Female"
-},
-{
-"first_name": "noah",
-"last_name": "williamson",
-"image": "https://randomuser.me/api/portraits/men/54.jpg",
-"gender": "Male"
-},
-{
-"first_name": "cathy",
-"last_name": "gray",
-"image": "https://randomuser.me/api/portraits/women/88.jpg",
-"gender": "Female"
-},
-{
-"first_name": "barb",
-"last_name": "snyder",
-"image": "https://randomuser.me/api/portraits/women/49.jpg",
-"gender": "Female"
-},
-{
-"first_name": "rosalyn",
-"last_name": "hale",
-"image": "https://randomuser.me/api/portraits/women/64.jpg",
-"gender": "Female"
-},
-{
-"first_name": "jessica",
-"last_name": "armstrong",
-"image": "https://randomuser.me/api/portraits/women/95.jpg",
-"gender": "Female"
-},
-{
-"first_name": "vicki",
-"last_name": "wheeler",
-"image": "https://randomuser.me/api/portraits/women/49.jpg",
-"gender": "Female"
-},
-{
-"first_name": "luke",
-"last_name": "fisher",
-"image": "https://randomuser.me/api/portraits/men/77.jpg",
-"gender": "Male"
-},
-{
-"first_name": "joey",
-"last_name": "wheeler",
-"image": "https://randomuser.me/api/portraits/men/50.jpg",
-"gender": "Male"
-},
-{
-"first_name": "victoria",
-"last_name": "jimenez",
-"image": "https://randomuser.me/api/portraits/women/25.jpg",
-"gender": "Female"
-},
-{
-"first_name": "daryl",
-"last_name": "patterson",
-"image": "https://randomuser.me/api/portraits/men/30.jpg",
-"gender": "Male"
-},
-{
-"first_name": "dwayne",
-"last_name": "jensen",
-"image": "https://randomuser.me/api/portraits/men/71.jpg",
-"gender": "Male"
-},
-{
-"first_name": "herbert",
-"last_name": "silva",
-"image": "https://randomuser.me/api/portraits/men/83.jpg",
-"gender": "Male"
-},
-{
-"first_name": "walter",
-"last_name": "walker",
-"image": "https://randomuser.me/api/portraits/men/91.jpg",
-"gender": "Male"
-},
-{
-"first_name": "logan",
-"last_name": "banks",
-"image": "https://randomuser.me/api/portraits/men/67.jpg",
-"gender": "Male"
-},
-{
-"first_name": "shawn",
-"last_name": "harvey",
-"image": "https://randomuser.me/api/portraits/men/87.jpg",
-"gender": "Male"
-},
-{
-"first_name": "lawrence",
-"last_name": "bradley",
-"image": "https://randomuser.me/api/portraits/men/40.jpg",
-"gender": "Male"
-},
-{
-"first_name": "jack",
-"last_name": "fleming",
-"image": "https://randomuser.me/api/portraits/men/37.jpg",
-"gender": "Male"
-},
-{
-"first_name": "jackson",
-"last_name": "boyd",
-"image": "https://randomuser.me/api/portraits/men/68.jpg",
-"gender": "Male"
-},
-{
-"first_name": "cecil",
-"last_name": "webb",
-"image": "https://randomuser.me/api/portraits/men/9.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eliza",
-"last_name": "mills",
-"image": "https://randomuser.me/api/portraits/women/20.jpg",
-"gender": "Female"
-},
-{
-"first_name": "jenny",
-"last_name": "frazier",
-"image": "https://randomuser.me/api/portraits/women/61.jpg",
-"gender": "Female"
-},
-{
-"first_name": "kent",
-"last_name": "butler",
-"image": "https://randomuser.me/api/portraits/men/64.jpg",
-"gender": "Male"
-},
-{
-"first_name": "rose",
-"last_name": "perry",
-"image": "https://randomuser.me/api/portraits/women/74.jpg",
-"gender": "Female"
-},
-{
-"first_name": "jack",
-"last_name": "king",
-"image": "https://randomuser.me/api/portraits/men/60.jpg",
-"gender": "Male"
-},
-{
-"first_name": "elmer",
-"last_name": "williams",
-"image": "https://randomuser.me/api/portraits/men/26.jpg",
-"gender": "Male"
-},
-{
-"first_name": "vanessa",
-"last_name": "torres",
-"image": "https://randomuser.me/api/portraits/women/41.jpg",
-"gender": "Female"
-},
-{
-"first_name": "tyrone",
-"last_name": "coleman",
-"image": "https://randomuser.me/api/portraits/men/59.jpg",
-"gender": "Male"
-},
-{
-"first_name": "julie",
-"last_name": "bradley",
-"image": "https://randomuser.me/api/portraits/women/50.jpg",
-"gender": "Female"
-},
-{
-"first_name": "fernando",
-"last_name": "castro",
-"image": "https://randomuser.me/api/portraits/men/44.jpg",
-"gender": "Male"
-},
-{
-"first_name": "sara",
-"last_name": "craig",
-"image": "https://randomuser.me/api/portraits/women/8.jpg",
-"gender": "Female"
-},
-{
-"first_name": "steven",
-"last_name": "stone",
-"image": "https://randomuser.me/api/portraits/men/47.jpg",
-"gender": "Male"
-},
-{
-"first_name": "barb",
-"last_name": "rodriquez",
-"image": "https://randomuser.me/api/portraits/women/73.jpg",
-"gender": "Female"
-},
-{
-"first_name": "charlie",
-"last_name": "king",
-"image": "https://randomuser.me/api/portraits/men/79.jpg",
-"gender": "Male"
-},
-{
-"first_name": "jessica",
-"last_name": "davis",
-"image": "https://randomuser.me/api/portraits/women/26.jpg",
-"gender": "Female"
-},
-{
-"first_name": "lewis",
-"last_name": "watson",
-"image": "https://randomuser.me/api/portraits/men/56.jpg",
-"gender": "Male"
-},
-{
-"first_name": "charlotte",
-"last_name": "johnson",
-"image": "https://randomuser.me/api/portraits/women/46.jpg",
-"gender": "Female"
-},
-{
-"first_name": "danielle",
-"last_name": "bell",
-"image": "https://randomuser.me/api/portraits/women/54.jpg",
-"gender": "Female"
-},
-{
-"first_name": "kristin",
-"last_name": "dixon",
-"image": "https://randomuser.me/api/portraits/women/23.jpg",
-"gender": "Female"
-},
-{
-"first_name": "andrea",
-"last_name": "thompson",
-"image": "https://randomuser.me/api/portraits/women/54.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ashley",
-"last_name": "andrews",
-"image": "https://randomuser.me/api/portraits/women/46.jpg",
-"gender": "Female"
-},
-{
-"first_name": "sharon",
-"last_name": "martinez",
-"image": "https://randomuser.me/api/portraits/women/6.jpg",
-"gender": "Female"
-},
-{
-"first_name": "tristan",
-"last_name": "cunningham",
-"image": "https://randomuser.me/api/portraits/men/62.jpg",
-"gender": "Male"
-},
-{
-"first_name": "carol",
-"last_name": "chavez",
-"image": "https://randomuser.me/api/portraits/women/85.jpg",
-"gender": "Female"
-},
-{
-"first_name": "lauren",
-"last_name": "hudson",
-"image": "https://randomuser.me/api/portraits/women/88.jpg",
-"gender": "Female"
-},
-{
-"first_name": "guy",
-"last_name": "robertson",
-"image": "https://randomuser.me/api/portraits/men/78.jpg",
-"gender": "Male"
-},
-{
-"first_name": "debra",
-"last_name": "long",
-"image": "https://randomuser.me/api/portraits/women/23.jpg",
-"gender": "Female"
-},
-{
-"first_name": "taylor",
-"last_name": "carpenter",
-"image": "https://randomuser.me/api/portraits/men/0.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eetu",
-"last_name": "annala",
-"image": "https://randomuser.me/api/portraits/men/31.jpg",
-"gender": "Male"
-},
-{
-"first_name": "oliver",
-"last_name": "moilanen",
-"image": "https://randomuser.me/api/portraits/men/14.jpg",
-"gender": "Male"
-},
-{
-"first_name": "leo",
-"last_name": "maunu",
-"image": "https://randomuser.me/api/portraits/men/72.jpg",
-"gender": "Male"
-},
-{
-"first_name": "iiris",
-"last_name": "kalas",
-"image": "https://randomuser.me/api/portraits/women/49.jpg",
-"gender": "Female"
-},
-{
-"first_name": "aada",
-"last_name": "kinnunen",
-"image": "https://randomuser.me/api/portraits/women/64.jpg",
-"gender": "Female"
-},
-{
-"first_name": "topias",
-"last_name": "walli",
-"image": "https://randomuser.me/api/portraits/men/58.jpg",
-"gender": "Male"
-},
-{
-"first_name": "viivi",
-"last_name": "toivonen",
-"image": "https://randomuser.me/api/portraits/women/16.jpg",
-"gender": "Female"
-},
-{
-"first_name": "iina",
-"last_name": "makinen",
-"image": "https://randomuser.me/api/portraits/women/44.jpg",
-"gender": "Female"
-},
-{
-"first_name": "lumi",
-"last_name": "tuominen",
-"image": "https://randomuser.me/api/portraits/women/11.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ellen",
-"last_name": "koski",
-"image": "https://randomuser.me/api/portraits/women/22.jpg",
-"gender": "Female"
-},
-{
-"first_name": "onni",
-"last_name": "laurila",
-"image": "https://randomuser.me/api/portraits/men/74.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eevi",
-"last_name": "niskanen",
-"image": "https://randomuser.me/api/portraits/women/72.jpg",
-"gender": "Female"
-},
-{
-"first_name": "julius",
-"last_name": "maijala",
-"image": "https://randomuser.me/api/portraits/men/8.jpg",
-"gender": "Male"
-},
-{
-"first_name": "sofia",
-"last_name": "tuomi",
-"image": "https://randomuser.me/api/portraits/women/1.jpg",
-"gender": "Female"
-},
-{
-"first_name": "oliver",
-"last_name": "jarvela",
-"image": "https://randomuser.me/api/portraits/men/60.jpg",
-"gender": "Male"
-},
-{
-"first_name": "luukas",
-"last_name": "mikkola",
-"image": "https://randomuser.me/api/portraits/men/90.jpg",
-"gender": "Male"
-},
-{
-"first_name": "amanda",
-"last_name": "anttila",
-"image": "https://randomuser.me/api/portraits/women/65.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ella",
-"last_name": "sakala",
-"image": "https://randomuser.me/api/portraits/women/79.jpg",
-"gender": "Female"
-},
-{
-"first_name": "siiri",
-"last_name": "kinnunen",
-"image": "https://randomuser.me/api/portraits/women/37.jpg",
-"gender": "Female"
-},
-{
-"first_name": "joona",
-"last_name": "korhonen",
-"image": "https://randomuser.me/api/portraits/men/87.jpg",
-"gender": "Male"
-},
-{
-"first_name": "topias",
-"last_name": "korpi",
-"image": "https://randomuser.me/api/portraits/men/75.jpg",
-"gender": "Male"
-},
-{
-"first_name": "mikael",
-"last_name": "remes",
-"image": "https://randomuser.me/api/portraits/men/89.jpg",
-"gender": "Male"
-},
-{
-"first_name": "veera",
-"last_name": "peltola",
-"image": "https://randomuser.me/api/portraits/women/69.jpg",
-"gender": "Female"
-},
-{
-"first_name": "emil",
-"last_name": "makela",
-"image": "https://randomuser.me/api/portraits/men/98.jpg",
-"gender": "Male"
-},
-{
-"first_name": "luukas",
-"last_name": "kujala",
-"image": "https://randomuser.me/api/portraits/men/83.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eemil",
-"last_name": "honkala",
-"image": "https://randomuser.me/api/portraits/men/85.jpg",
-"gender": "Male"
-},
-{
-"first_name": "peetu",
-"last_name": "kalm",
-"image": "https://randomuser.me/api/portraits/men/17.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eemeli",
-"last_name": "lehtonen",
-"image": "https://randomuser.me/api/portraits/men/55.jpg",
-"gender": "Male"
-},
-{
-"first_name": "viivi",
-"last_name": "koistinen",
-"image": "https://randomuser.me/api/portraits/women/53.jpg",
-"gender": "Female"
-},
-{
-"first_name": "elli",
-"last_name": "savela",
-"image": "https://randomuser.me/api/portraits/women/77.jpg",
-"gender": "Female"
-},
-{
-"first_name": "venla",
-"last_name": "walli",
-"image": "https://randomuser.me/api/portraits/women/52.jpg",
-"gender": "Female"
-},
-{
-"first_name": "amanda",
-"last_name": "wuollet",
-"image": "https://randomuser.me/api/portraits/women/11.jpg",
-"gender": "Female"
-},
-{
-"first_name": "valtteri",
-"last_name": "hokkanen",
-"image": "https://randomuser.me/api/portraits/men/30.jpg",
-"gender": "Male"
-},
-{
-"first_name": "veera",
-"last_name": "maki",
-"image": "https://randomuser.me/api/portraits/women/34.jpg",
-"gender": "Female"
-},
-{
-"first_name": "kerttu",
-"last_name": "maunu",
-"image": "https://randomuser.me/api/portraits/women/1.jpg",
-"gender": "Female"
-},
-{
-"first_name": "nella",
-"last_name": "hanka",
-"image": "https://randomuser.me/api/portraits/women/70.jpg",
-"gender": "Female"
-},
-{
-"first_name": "iiris",
-"last_name": "hakala",
-"image": "https://randomuser.me/api/portraits/women/33.jpg",
-"gender": "Female"
-},
-{
-"first_name": "viivi",
-"last_name": "ojala",
-"image": "https://randomuser.me/api/portraits/women/69.jpg",
-"gender": "Female"
-},
-{
-"first_name": "iina",
-"last_name": "peura",
-"image": "https://randomuser.me/api/portraits/women/22.jpg",
-"gender": "Female"
-},
-{
-"first_name": "samuel",
-"last_name": "mattila",
-"image": "https://randomuser.me/api/portraits/men/88.jpg",
-"gender": "Male"
-},
-{
-"first_name": "julius",
-"last_name": "kumpula",
-"image": "https://randomuser.me/api/portraits/men/26.jpg",
-"gender": "Male"
-},
-{
-"first_name": "nooa",
-"last_name": "haapala",
-"image": "https://randomuser.me/api/portraits/men/77.jpg",
-"gender": "Male"
-},
-{
-"first_name": "elias",
-"last_name": "leppo",
-"image": "https://randomuser.me/api/portraits/men/50.jpg",
-"gender": "Male"
-},
-{
-"first_name": "niklas",
-"last_name": "elo",
-"image": "https://randomuser.me/api/portraits/men/64.jpg",
-"gender": "Male"
-},
-{
-"first_name": "olivia",
-"last_name": "nurmi",
-"image": "https://randomuser.me/api/portraits/women/82.jpg",
-"gender": "Female"
-},
-{
-"first_name": "milja",
-"last_name": "lassila",
-"image": "https://randomuser.me/api/portraits/women/47.jpg",
-"gender": "Female"
-},
-{
-"first_name": "daniel",
-"last_name": "kalas",
-"image": "https://randomuser.me/api/portraits/men/53.jpg",
-"gender": "Male"
-},
-{
-"first_name": "enni",
-"last_name": "ramo",
-"image": "https://randomuser.me/api/portraits/women/18.jpg",
-"gender": "Female"
-},
-{
-"first_name": "matilda",
-"last_name": "salmi",
-"image": "https://randomuser.me/api/portraits/women/84.jpg",
-"gender": "Female"
-},
-{
-"first_name": "valtteri",
-"last_name": "wirta",
-"image": "https://randomuser.me/api/portraits/men/26.jpg",
-"gender": "Male"
-},
-{
-"first_name": "julius",
-"last_name": "maijala",
-"image": "https://randomuser.me/api/portraits/men/39.jpg",
-"gender": "Male"
-},
-{
-"first_name": "kerttu",
-"last_name": "peltola",
-"image": "https://randomuser.me/api/portraits/women/39.jpg",
-"gender": "Female"
-},
-{
-"first_name": "aada",
-"last_name": "kokko",
-"image": "https://randomuser.me/api/portraits/women/26.jpg",
-"gender": "Female"
-},
-{
-"first_name": "elsa",
-"last_name": "niska",
-"image": "https://randomuser.me/api/portraits/women/26.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ella",
-"last_name": "kalm",
-"image": "https://randomuser.me/api/portraits/women/61.jpg",
-"gender": "Female"
-},
-{
-"first_name": "lilja",
-"last_name": "heinonen",
-"image": "https://randomuser.me/api/portraits/women/65.jpg",
-"gender": "Female"
-},
-{
-"first_name": "akseli",
-"last_name": "laakso",
-"image": "https://randomuser.me/api/portraits/men/64.jpg",
-"gender": "Male"
-},
-{
-"first_name": "lotta",
-"last_name": "saarela",
-"image": "https://randomuser.me/api/portraits/women/69.jpg",
-"gender": "Female"
-},
-{
-"first_name": "leo",
-"last_name": "polon",
-"image": "https://randomuser.me/api/portraits/men/5.jpg",
-"gender": "Male"
-},
-{
-"first_name": "aleksi",
-"last_name": "wuollet",
-"image": "https://randomuser.me/api/portraits/men/87.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eemil",
-"last_name": "kalas",
-"image": "https://randomuser.me/api/portraits/men/6.jpg",
-"gender": "Male"
-},
-{
-"first_name": "emmi",
-"last_name": "koistinen",
-"image": "https://randomuser.me/api/portraits/women/66.jpg",
-"gender": "Female"
-},
-{
-"first_name": "väinö",
-"last_name": "halla",
-"image": "https://randomuser.me/api/portraits/men/65.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eemil",
-"last_name": "heikkila",
-"image": "https://randomuser.me/api/portraits/men/18.jpg",
-"gender": "Male"
-},
-{
-"first_name": "amanda",
-"last_name": "lakso",
-"image": "https://randomuser.me/api/portraits/women/29.jpg",
-"gender": "Female"
-},
-{
-"first_name": "vilho",
-"last_name": "kivela",
-"image": "https://randomuser.me/api/portraits/men/19.jpg",
-"gender": "Male"
-},
-{
-"first_name": "peppi",
-"last_name": "lehtinen",
-"image": "https://randomuser.me/api/portraits/women/80.jpg",
-"gender": "Female"
-},
-{
-"first_name": "onni",
-"last_name": "lehtinen",
-"image": "https://randomuser.me/api/portraits/men/0.jpg",
-"gender": "Male"
-},
-{
-"first_name": "onni",
-"last_name": "ahonen",
-"image": "https://randomuser.me/api/portraits/men/49.jpg",
-"gender": "Male"
-},
-{
-"first_name": "venla",
-"last_name": "ranta",
-"image": "https://randomuser.me/api/portraits/women/0.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ronja",
-"last_name": "korhonen",
-"image": "https://randomuser.me/api/portraits/women/69.jpg",
-"gender": "Female"
-},
-{
-"first_name": "emmi",
-"last_name": "niva",
-"image": "https://randomuser.me/api/portraits/women/65.jpg",
-"gender": "Female"
-},
-{
-"first_name": "oskari",
-"last_name": "leppanen",
-"image": "https://randomuser.me/api/portraits/men/43.jpg",
-"gender": "Male"
-},
-{
-"first_name": "arttu",
-"last_name": "heinonen",
-"image": "https://randomuser.me/api/portraits/men/94.jpg",
-"gender": "Male"
-},
-{
-"first_name": "toivo",
-"last_name": "makela",
-"image": "https://randomuser.me/api/portraits/men/23.jpg",
-"gender": "Male"
-},
-{
-"first_name": "otto",
-"last_name": "leino",
-"image": "https://randomuser.me/api/portraits/men/51.jpg",
-"gender": "Male"
-},
-{
-"first_name": "milla",
-"last_name": "kokko",
-"image": "https://randomuser.me/api/portraits/women/66.jpg",
-"gender": "Female"
-},
-{
-"first_name": "konsta",
-"last_name": "lehto",
-"image": "https://randomuser.me/api/portraits/men/29.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eeli",
-"last_name": "heikkinen",
-"image": "https://randomuser.me/api/portraits/men/50.jpg",
-"gender": "Male"
-},
-{
-"first_name": "matilda",
-"last_name": "tanner",
-"image": "https://randomuser.me/api/portraits/women/2.jpg",
-"gender": "Female"
-},
-{
-"first_name": "elias",
-"last_name": "kivisto",
-"image": "https://randomuser.me/api/portraits/men/40.jpg",
-"gender": "Male"
-},
-{
-"first_name": "akseli",
-"last_name": "wirta",
-"image": "https://randomuser.me/api/portraits/men/90.jpg",
-"gender": "Male"
-},
-{
-"first_name": "leevi",
-"last_name": "kallio",
-"image": "https://randomuser.me/api/portraits/men/89.jpg",
-"gender": "Male"
-},
-{
-"first_name": "emilia",
-"last_name": "pelto",
-"image": "https://randomuser.me/api/portraits/women/0.jpg",
-"gender": "Female"
-},
-{
-"first_name": "niilo",
-"last_name": "keranen",
-"image": "https://randomuser.me/api/portraits/men/29.jpg",
-"gender": "Male"
-},
-{
-"first_name": "mikael",
-"last_name": "wainio",
-"image": "https://randomuser.me/api/portraits/men/85.jpg",
-"gender": "Male"
-},
-{
-"first_name": "elias",
-"last_name": "saksa",
-"image": "https://randomuser.me/api/portraits/men/53.jpg",
-"gender": "Male"
-},
-{
-"first_name": "aatu",
-"last_name": "erkkila",
-"image": "https://randomuser.me/api/portraits/men/6.jpg",
-"gender": "Male"
-},
-{
-"first_name": "arttu",
-"last_name": "jarvela",
-"image": "https://randomuser.me/api/portraits/men/49.jpg",
-"gender": "Male"
-},
-{
-"first_name": "matilda",
-"last_name": "lassila",
-"image": "https://randomuser.me/api/portraits/women/46.jpg",
-"gender": "Female"
-},
-{
-"first_name": "alisa",
-"last_name": "waara",
-"image": "https://randomuser.me/api/portraits/women/67.jpg",
-"gender": "Female"
-},
-{
-"first_name": "emilia",
-"last_name": "saksa",
-"image": "https://randomuser.me/api/portraits/women/66.jpg",
-"gender": "Female"
-},
-{
-"first_name": "valtteri",
-"last_name": "tikkanen",
-"image": "https://randomuser.me/api/portraits/men/88.jpg",
-"gender": "Male"
-},
-{
-"first_name": "konsta",
-"last_name": "rantala",
-"image": "https://randomuser.me/api/portraits/men/50.jpg",
-"gender": "Male"
-},
-{
-"first_name": "minttu",
-"last_name": "murto",
-"image": "https://randomuser.me/api/portraits/women/14.jpg",
-"gender": "Female"
-},
-{
-"first_name": "vilma",
-"last_name": "hatala",
-"image": "https://randomuser.me/api/portraits/women/60.jpg",
-"gender": "Female"
-},
-{
-"first_name": "anni",
-"last_name": "linna",
-"image": "https://randomuser.me/api/portraits/women/59.jpg",
-"gender": "Female"
-},
-{
-"first_name": "niklas",
-"last_name": "hautala",
-"image": "https://randomuser.me/api/portraits/men/7.jpg",
-"gender": "Male"
-},
-{
-"first_name": "niilo",
-"last_name": "lehtinen",
-"image": "https://randomuser.me/api/portraits/men/54.jpg",
-"gender": "Male"
-},
-{
-"first_name": "oona",
-"last_name": "saarinen",
-"image": "https://randomuser.me/api/portraits/women/71.jpg",
-"gender": "Female"
-},
-{
-"first_name": "constance",
-"last_name": "marie",
-"image": "https://randomuser.me/api/portraits/women/40.jpg",
-"gender": "Female"
-},
-{
-"first_name": "charles",
-"last_name": "pierre",
-"image": "https://randomuser.me/api/portraits/men/96.jpg",
-"gender": "Male"
-},
-{
-"first_name": "bérénice",
-"last_name": "leclerc",
-"image": "https://randomuser.me/api/portraits/women/39.jpg",
-"gender": "Female"
-},
-{
-"first_name": "clémence",
-"last_name": "arnaud",
-"image": "https://randomuser.me/api/portraits/women/48.jpg",
-"gender": "Female"
-},
-{
-"first_name": "melvin",
-"last_name": "lemoine",
-"image": "https://randomuser.me/api/portraits/men/47.jpg",
-"gender": "Male"
-},
-{
-"first_name": "marceau",
-"last_name": "joly",
-"image": "https://randomuser.me/api/portraits/men/56.jpg",
-"gender": "Male"
-},
-{
-"first_name": "garance",
-"last_name": "mathieu",
-"image": "https://randomuser.me/api/portraits/women/87.jpg",
-"gender": "Female"
-},
-{
-"first_name": "angèle",
-"last_name": "perrin",
-"image": "https://randomuser.me/api/portraits/women/88.jpg",
-"gender": "Female"
-},
-{
-"first_name": "pauline",
-"last_name": "simon",
-"image": "https://randomuser.me/api/portraits/women/82.jpg",
-"gender": "Female"
-},
-{
-"first_name": "apolline",
-"last_name": "laurent",
-"image": "https://randomuser.me/api/portraits/women/27.jpg",
-"gender": "Female"
-},
-{
-"first_name": "luca",
-"last_name": "lefevre",
-"image": "https://randomuser.me/api/portraits/men/40.jpg",
-"gender": "Male"
-},
-{
-"first_name": "bastien",
-"last_name": "roger",
-"image": "https://randomuser.me/api/portraits/men/73.jpg",
-"gender": "Male"
-},
-{
-"first_name": "marie",
-"last_name": "rodriguez",
-"image": "https://randomuser.me/api/portraits/women/18.jpg",
-"gender": "Female"
-},
-{
-"first_name": "tristan",
-"last_name": "renaud",
-"image": "https://randomuser.me/api/portraits/men/41.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eva",
-"last_name": "philippe",
-"image": "https://randomuser.me/api/portraits/women/26.jpg",
-"gender": "Female"
-},
-{
-"first_name": "coline",
-"last_name": "dufour",
-"image": "https://randomuser.me/api/portraits/women/64.jpg",
-"gender": "Female"
-},
-{
-"first_name": "marilou",
-"last_name": "adam",
-"image": "https://randomuser.me/api/portraits/women/53.jpg",
-"gender": "Female"
-},
-{
-"first_name": "lia",
-"last_name": "renard",
-"image": "https://randomuser.me/api/portraits/women/88.jpg",
-"gender": "Female"
-},
-{
-"first_name": "timothee",
-"last_name": "rolland",
-"image": "https://randomuser.me/api/portraits/men/75.jpg",
-"gender": "Male"
-},
-{
-"first_name": "hélèna",
-"last_name": "boyer",
-"image": "https://randomuser.me/api/portraits/women/8.jpg",
-"gender": "Female"
-},
-{
-"first_name": "mélody",
-"last_name": "andre",
-"image": "https://randomuser.me/api/portraits/women/75.jpg",
-"gender": "Female"
-},
-{
-"first_name": "jeanne",
-"last_name": "duval",
-"image": "https://randomuser.me/api/portraits/women/44.jpg",
-"gender": "Female"
-},
-{
-"first_name": "elias",
-"last_name": "dupont",
-"image": "https://randomuser.me/api/portraits/men/60.jpg",
-"gender": "Male"
-},
-{
-"first_name": "estelle",
-"last_name": "bernard",
-"image": "https://randomuser.me/api/portraits/women/23.jpg",
-"gender": "Female"
-},
-{
-"first_name": "roxane",
-"last_name": "garnier",
-"image": "https://randomuser.me/api/portraits/women/14.jpg",
-"gender": "Female"
-},
-{
-"first_name": "maëva",
-"last_name": "guerin",
-"image": "https://randomuser.me/api/portraits/women/44.jpg",
-"gender": "Female"
-},
-{
-"first_name": "liam",
-"last_name": "carpentier",
-"image": "https://randomuser.me/api/portraits/men/41.jpg",
-"gender": "Male"
-},
-{
-"first_name": "théo",
-"last_name": "gaillard",
-"image": "https://randomuser.me/api/portraits/men/40.jpg",
-"gender": "Male"
-},
-{
-"first_name": "angelina",
-"last_name": "clement",
-"image": "https://randomuser.me/api/portraits/women/53.jpg",
-"gender": "Female"
-},
-{
-"first_name": "emma",
-"last_name": "bertrand",
-"image": "https://randomuser.me/api/portraits/women/86.jpg",
-"gender": "Female"
-},
-{
-"first_name": "charles",
-"last_name": "rolland",
-"image": "https://randomuser.me/api/portraits/men/14.jpg",
-"gender": "Male"
-},
-{
-"first_name": "nolan",
-"last_name": "gautier",
-"image": "https://randomuser.me/api/portraits/men/6.jpg",
-"gender": "Male"
-},
-{
-"first_name": "agathe",
-"last_name": "menard",
-"image": "https://randomuser.me/api/portraits/women/69.jpg",
-"gender": "Female"
-},
-{
-"first_name": "gaëtan",
-"last_name": "leclerc",
-"image": "https://randomuser.me/api/portraits/men/60.jpg",
-"gender": "Male"
-},
-{
-"first_name": "clarisse",
-"last_name": "lemaire",
-"image": "https://randomuser.me/api/portraits/women/21.jpg",
-"gender": "Female"
-},
-{
-"first_name": "samuel",
-"last_name": "garnier",
-"image": "https://randomuser.me/api/portraits/men/16.jpg",
-"gender": "Male"
-},
-{
-"first_name": "eden",
-"last_name": "fontai",
-"image": "https://randomuser.me/api/portraits/women/17.jpg",
-"gender": "Female"
-},
-{
-"first_name": "maëva",
-"last_name": "pierre",
-"image": "https://randomuser.me/api/portraits/women/19.jpg",
-"gender": "Female"
-},
-{
-"first_name": "thomas",
-"last_name": "barbier",
-"image": "https://randomuser.me/api/portraits/men/31.jpg",
-"gender": "Male"
-},
-{
-"first_name": "lily",
-"last_name": "lefebvre",
-"image": "https://randomuser.me/api/portraits/women/76.jpg",
-"gender": "Female"
-},
-{
-"first_name": "lise",
-"last_name": "perez",
-"image": "https://randomuser.me/api/portraits/women/74.jpg",
-"gender": "Female"
-},
-{
-"first_name": "mila",
-"last_name": "moulin",
-"image": "https://randomuser.me/api/portraits/women/43.jpg",
-"gender": "Female"
-},
-{
-"first_name": "dylan",
-"last_name": "picard",
-"image": "https://randomuser.me/api/portraits/men/37.jpg",
-"gender": "Male"
-},
-{
-"first_name": "amandine",
-"last_name": "rodriguez",
-"image": "https://randomuser.me/api/portraits/women/65.jpg",
-"gender": "Female"
-},
-{
-"first_name": "diego",
-"last_name": "girard",
-"image": "https://randomuser.me/api/portraits/men/84.jpg",
-"gender": "Male"
-},
-{
-"first_name": "elouan",
-"last_name": "garnier",
-"image": "https://randomuser.me/api/portraits/men/94.jpg",
-"gender": "Male"
-},
-{
-"first_name": "apolline",
-"last_name": "fleury",
-"image": "https://randomuser.me/api/portraits/women/65.jpg",
-"gender": "Female"
-},
-{
-"first_name": "coline",
-"last_name": "menard",
-"image": "https://randomuser.me/api/portraits/women/83.jpg",
-"gender": "Female"
-},
-{
-"first_name": "maëly",
-"last_name": "le gall",
-"image": "https://randomuser.me/api/portraits/women/60.jpg",
-"gender": "Female"
-},
-{
-"first_name": "justin",
-"last_name": "robert",
-"image": "https://randomuser.me/api/portraits/men/20.jpg",
-"gender": "Male"
-},
-{
-"first_name": "ryan",
-"last_name": "faure",
-"image": "https://randomuser.me/api/portraits/men/16.jpg",
-"gender": "Male"
-},
-{
-"first_name": "ninon",
-"last_name": "brunet",
-"image": "https://randomuser.me/api/portraits/women/68.jpg",
-"gender": "Female"
-},
-{
-"first_name": "tessa",
-"last_name": "garnier",
-"image": "https://randomuser.me/api/portraits/women/54.jpg",
-"gender": "Female"
-},
-{
-"first_name": "ryan",
-"last_name": "bonnet",
-"image": "https://randomuser.me/api/portraits/men/28.jpg",
-"gender": "Male"
-},
-{
-"first_name": "aurélien",
-"last_name": "andre",
-"image": "https://randomuser.me/api/portraits/men/29.jpg",
-"gender": "Male"
-},
-{
-"first_name": "clément",
-"last_name": "dumas",
-"image": "https://randomuser.me/api/portraits/men/10.jpg",
-"gender": "Male"
-},
-{
-"first_name": "alexis",
-"last_name": "fournier",
-"image": "https://randomuser.me/api/portraits/men/83.jpg",
-"gender": "Male"
-},
-{
-"first_name": "valentin",
-"last_name": "lecomte",
-"image": "https://randomuser.me/api/portraits/men/44.jpg",
-"gender": "Male"
-},
-{
-"first_name": "florian",
-"last_name": "olivier",
-"image": "https://randomuser.me/api/portraits/men/36.jpg",
-"gender": "Male"
-},
-{
-"first_name": "ewen",
-"last_name": "lefebvre",
-"image": "https://randomuser.me/api/portraits/men/32.jpg",
-"gender": "Male"
-},
-{
-"first_name": "titouan",
-"last_name": "charles",
-"image": "https://randomuser.me/api/portraits/men/59.jpg",
-"gender": "Male"
-},
-{
-"first_name": "lila",
-"last_name": "aubert",
-"image": "https://randomuser.me/api/portraits/women/6.jpg",
-"gender": "Female"
-},
-{
-"first_name": "charline",
-"last_name": "caron",
-"image": "https://randomuser.me/api/portraits/women/49.jpg",
-"gender": "Female"
-},
-{
-"first_name": "soren",
-"last_name": "le gall",
-"image": "https://randomuser.me/api/portraits/men/77.jpg",
-"gender": "Male"
-},
-{
-"first_name": "fanny",
-"last_name": "louis",
-"image": "https://randomuser.me/api/portraits/women/90.jpg",
-"gender": "Female"
-},
-{
-"first_name": "julie",
-"last_name": "adam",
-"image": "https://randomuser.me/api/portraits/women/34.jpg",
-"gender": "Female"
-},
-{
-"first_name": "louka",
-"last_name": "boyer",
-"image": "https://randomuser.me/api/portraits/men/98.jpg",
-"gender": "Male"
-}
-]
diff --git a/erpnext/demo/data/room.json b/erpnext/demo/data/room.json
deleted file mode 100644
index 82f0868..0000000
--- a/erpnext/demo/data/room.json
+++ /dev/null
@@ -1,122 +0,0 @@
-[
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 1",
- "room_number": "101",
- "seating_capacity": 80
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 2",
- "room_number": "102",
- "seating_capacity": 80
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 3",
- "room_number": "103",
- "seating_capacity": 80
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 4",
- "room_number": "104",
- "seating_capacity": 80
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 4",
- "room_number": "104",
- "seating_capacity": 80
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 5",
- "room_number": "201",
- "seating_capacity": 120
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 6",
- "room_number": "202",
- "seating_capacity": 120
- },
- {
- "doctype": "Room",
- "room_name": "Lecture Hall 7",
- "room_number": "203",
- "seating_capacity": 120
- },
- {
- "doctype": "Room",
- "room_name": "Computer Lab 1",
- "room_number": "301",
- "seating_capacity": 40
- },
- {
- "doctype": "Room",
- "room_name": "Computer Lab 2",
- "room_number": "302",
- "seating_capacity": 60
- },
- {
- "doctype": "Room",
- "room_name": "Seminar Hall 1",
- "room_number": "303",
- "seating_capacity": 240
- },
- {
- "doctype": "Room",
- "room_name": "Auditorium",
- "room_number": "400",
- "seating_capacity": 450
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 1",
- "room_number": "560",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 2",
- "room_number": "561",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 2",
- "room_number": "562",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 3",
- "room_number": "563",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 4",
- "room_number": "564",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 5",
- "room_number": "565",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 6",
- "room_number": "566",
- "seating_capacity": 70
- },
- {
- "doctype": "Room",
- "room_name": "Exam hall 7",
- "room_number": "567",
- "seating_capacity": 70
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/student_batch_name.json b/erpnext/demo/data/student_batch_name.json
deleted file mode 100644
index ef3f18d..0000000
--- a/erpnext/demo/data/student_batch_name.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
- {
- "doctype": "Student Batch Name",
- "batch_name": "Section-A"
- },
- {
- "doctype": "Student Batch Name",
- "batch_name": "Section-B"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/data/user.json b/erpnext/demo/data/user.json
deleted file mode 100644
index 9ee5e78..0000000
--- a/erpnext/demo/data/user.json
+++ /dev/null
@@ -1,112 +0,0 @@
-[
- {
- "email": "test_demo@erpnext.com",
- "first_name": "Test",
- "last_name": "User"
- },
- {
- "email": "DianaPrince@example.com",
- "first_name": "Diana",
- "last_name": "Prince"
- },
- {
- "email": "ZatannaZatara@example.com",
- "first_name": "Zatanna",
- "last_name": "Zatara"
- },
- {
- "email": "HollyGranger@example.com",
- "first_name": "Holly",
- "last_name": "Granger"
- },
- {
- "email": "NeptuniaAquaria@example.com",
- "first_name": "Neptunia",
- "last_name": "Aquaria"
- },
- {
- "email": "ArthurCurry@example.com",
- "first_name": "Arthur",
- "last_name": "Curry"
- },
- {
- "email": "ThaliaAlGhul@example.com",
- "first_name": "Thalia",
- "last_name": "Al Ghul"
- },
- {
- "email": "MaxwellLord@example.com",
- "first_name": "Maxwell",
- "last_name": "Lord"
- },
- {
- "email": "GraceChoi@example.com",
- "first_name": "Grace",
- "last_name": "Choi"
- },
- {
- "email": "VandalSavage@example.com",
- "first_name": "Vandal",
- "last_name": "Savage"
- },
- {
- "email": "CaitlinSnow@example.com",
- "first_name": "Caitlin",
- "last_name": "Snow"
- },
- {
- "email": "RipHunter@example.com",
- "first_name": "Rip",
- "last_name": "Hunter"
- },
- {
- "email": "NicholasFury@example.com",
- "first_name": "Nicholas",
- "last_name": "Fury"
- },
- {
- "email": "PeterParker@example.com",
- "first_name": "Peter",
- "last_name": "Parker"
- },
- {
- "email": "JohnConstantine@example.com",
- "first_name": "John",
- "last_name": "Constantine"
- },
- {
- "email": "HalJordan@example.com",
- "first_name": "Hal",
- "last_name": "Jordan"
- },
- {
- "email": "VictorStone@example.com",
- "first_name": "Victor",
- "last_name": "Stone"
- },
- {
- "email": "BruceWayne@example.com",
- "first_name": "Bruce",
- "last_name": "Wayne"
- },
- {
- "email": "ClarkKent@example.com",
- "first_name": "Clark",
- "last_name": "Kent"
- },
- {
- "email": "BarryAllen@example.com",
- "first_name": "Barry",
- "last_name": "Allen"
- },
- {
- "email": "KaraZorEl@example.com",
- "first_name": "Kara",
- "last_name": "Zor El"
- },
- {
- "email": "demo@erpnext.com",
- "first_name": "Demo",
- "last_name": "User"
- }
-]
\ No newline at end of file
diff --git a/erpnext/demo/demo.py b/erpnext/demo/demo.py
deleted file mode 100644
index 4a18a99..0000000
--- a/erpnext/demo/demo.py
+++ /dev/null
@@ -1,97 +0,0 @@
-import sys
-
-import frappe
-import frappe.utils
-
-import erpnext
-from erpnext.demo.setup import education, manufacture, retail, setup_data
-from erpnext.demo.user import accounts
-from erpnext.demo.user import education as edu
-from erpnext.demo.user import fixed_asset, hr, manufacturing, projects, purchase, sales, stock
-
-"""
-Make a demo
-
-1. Start with a fresh account
-
-bench --site demo.erpnext.dev reinstall
-
-2. Install Demo
-
-bench --site demo.erpnext.dev execute erpnext.demo.demo.make
-
-3. If Demo breaks, to continue
-
-bench --site demo.erpnext.dev execute erpnext.demo.demo.simulate
-
-"""
-
-def make(domain='Manufacturing', days=100):
- frappe.flags.domain = domain
- frappe.flags.mute_emails = True
- setup_data.setup(domain)
- if domain== 'Manufacturing':
- manufacture.setup_data()
- elif domain == "Retail":
- retail.setup_data()
- elif domain== 'Education':
- education.setup_data()
-
- site = frappe.local.site
- frappe.destroy()
- frappe.init(site)
- frappe.connect()
-
- simulate(domain, days)
-
-def simulate(domain='Manufacturing', days=100):
- runs_for = frappe.flags.runs_for or days
- frappe.flags.company = erpnext.get_default_company()
- frappe.flags.mute_emails = True
-
- if not frappe.flags.start_date:
- # start date = 100 days back
- frappe.flags.start_date = frappe.utils.add_days(frappe.utils.nowdate(),
- -1 * runs_for)
-
- current_date = frappe.utils.getdate(frappe.flags.start_date)
-
- # continue?
- demo_last_date = frappe.db.get_global('demo_last_date')
- if demo_last_date:
- current_date = frappe.utils.add_days(frappe.utils.getdate(demo_last_date), 1)
-
- # run till today
- if not runs_for:
- runs_for = frappe.utils.date_diff(frappe.utils.nowdate(), current_date)
- # runs_for = 100
-
- fixed_asset.work()
- for i in range(runs_for):
- sys.stdout.write("\rSimulating {0}: Day {1}".format(
- current_date.strftime("%Y-%m-%d"), i))
- sys.stdout.flush()
- frappe.flags.current_date = current_date
- if current_date.weekday() in (5, 6):
- current_date = frappe.utils.add_days(current_date, 1)
- continue
- try:
- hr.work()
- purchase.work()
- stock.work()
- accounts.work()
- projects.run_projects(current_date)
- sales.work(domain)
- # run_messages()
-
- if domain=='Manufacturing':
- manufacturing.work()
- elif domain=='Education':
- edu.work()
-
- except Exception:
- frappe.db.set_global('demo_last_date', current_date)
- raise
- finally:
- current_date = frappe.utils.add_days(current_date, 1)
- frappe.db.commit()
diff --git a/erpnext/demo/domains.py b/erpnext/demo/domains.py
deleted file mode 100644
index 346787e..0000000
--- a/erpnext/demo/domains.py
+++ /dev/null
@@ -1,20 +0,0 @@
-data = {
- 'Manufacturing': {
- 'company_name': 'Wind Power LLC'
- },
- 'Retail': {
- 'company_name': 'Mobile Next',
- },
- 'Distribution': {
- 'company_name': 'Soltice Hardware',
- },
- 'Services': {
- 'company_name': 'Acme Consulting'
- },
- 'Education': {
- 'company_name': 'Whitmore College'
- },
- 'Non Profit': {
- 'company_name': 'Erpnext Foundation'
- }
-}
diff --git a/erpnext/demo/setup/__init__.py b/erpnext/demo/setup/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/demo/setup/__init__.py
+++ /dev/null
diff --git a/erpnext/demo/setup/education.py b/erpnext/demo/setup/education.py
deleted file mode 100644
index eb833f4..0000000
--- a/erpnext/demo/setup/education.py
+++ /dev/null
@@ -1,181 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-import json
-import random
-from datetime import datetime
-
-import frappe
-from frappe.utils.make_random import get_random
-
-from erpnext.demo.setup.setup_data import import_json
-
-
-def setup_data():
- frappe.flags.mute_emails = True
- make_masters()
- setup_item()
- make_student_applicants()
- make_student_group()
- make_fees_category()
- make_fees_structure()
- make_assessment_groups()
- frappe.db.commit()
- frappe.clear_cache()
-
-def make_masters():
- import_json("Room")
- import_json("Department")
- import_json("Instructor")
- import_json("Course")
- import_json("Program")
- import_json("Student Batch Name")
- import_json("Assessment Criteria")
- import_json("Grading Scale")
- frappe.db.commit()
-
-def setup_item():
- 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)
- item.min_order_qty = random.randint(10, 30)
- item.item_defaults[0].default_warehouse = frappe.get_all('Warehouse',
- filters={'warehouse_name': item.item_defaults[0].default_warehouse}, limit=1)[0].name
- item.insert()
-
-def make_student_applicants():
- blood_group = ["A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"]
- male_names = []
- female_names = []
-
- file_path = get_json_path("Random Student Data")
- with open(file_path, "r") as open_file:
- random_student_data = json.loads(open_file.read())
- count = 1
-
- for d in random_student_data:
- if d.get('gender') == "Male":
- male_names.append(d.get('first_name').title())
-
- if d.get('gender') == "Female":
- female_names.append(d.get('first_name').title())
-
- for idx, d in enumerate(random_student_data):
- student_applicant = frappe.new_doc("Student Applicant")
- student_applicant.first_name = d.get('first_name').title()
- student_applicant.last_name = d.get('last_name').title()
- student_applicant.image = d.get('image')
- student_applicant.gender = d.get('gender')
- student_applicant.program = get_random("Program")
- student_applicant.blood_group = random.choice(blood_group)
- year = random.randint(1990, 1998)
- month = random.randint(1, 12)
- day = random.randint(1, 28)
- student_applicant.date_of_birth = datetime(year, month, day)
- student_applicant.mother_name = random.choice(female_names) + " " + d.get('last_name').title()
- student_applicant.father_name = random.choice(male_names) + " " + d.get('last_name').title()
- if student_applicant.gender == "Male":
- student_applicant.middle_name = random.choice(male_names)
- else:
- student_applicant.middle_name = random.choice(female_names)
- student_applicant.student_email_id = d.get('first_name') + "_" + \
- student_applicant.middle_name + "_" + d.get('last_name') + "@example.com"
- if count <5:
- student_applicant.insert()
- frappe.db.commit()
- else:
- student_applicant.submit()
- frappe.db.commit()
- count+=1
-
-def make_student_group():
- for term in frappe.db.get_list("Academic Term"):
- for program in frappe.db.get_list("Program"):
- sg_tool = frappe.new_doc("Student Group Creation Tool")
- sg_tool.academic_year = "2017-18"
- sg_tool.academic_term = term.name
- sg_tool.program = program.name
- for d in sg_tool.get_courses():
- d = frappe._dict(d)
- student_group = frappe.new_doc("Student Group")
- student_group.student_group_name = d.student_group_name
- student_group.group_based_on = d.group_based_on
- student_group.program = program.name
- student_group.course = d.course
- student_group.batch = d.batch
- student_group.academic_term = term.name
- student_group.academic_year = "2017-18"
- student_group.save()
- frappe.db.commit()
-
-def make_fees_category():
- fee_type = ["Tuition Fee", "Hostel Fee", "Logistics Fee",
- "Medical Fee", "Mess Fee", "Security Deposit"]
-
- fee_desc = {"Tuition Fee" : "Curricular activities which includes books, notebooks and faculty charges" ,
- "Hostel Fee" : "Stay of students in institute premises",
- "Logistics Fee" : "Lodging boarding of the students" ,
- "Medical Fee" : "Medical welfare of the students",
- "Mess Fee" : "Food and beverages for your ward",
- "Security Deposit" : "In case your child is found to have damaged institutes property"
- }
-
- for i in fee_type:
- fee_category = frappe.new_doc("Fee Category")
- fee_category.category_name = i
- fee_category.description = fee_desc[i]
- fee_category.insert()
- frappe.db.commit()
-
-def make_fees_structure():
- for d in frappe.db.get_list("Program"):
- program = frappe.get_doc("Program", d.name)
- for academic_term in ["2017-18 (Semester 1)", "2017-18 (Semester 2)", "2017-18 (Semester 3)"]:
- fee_structure = frappe.new_doc("Fee Structure")
- fee_structure.program = d.name
- fee_structure.academic_term = random.choice(frappe.db.get_list("Academic Term")).name
- for j in range(1,4):
- temp = {"fees_category": random.choice(frappe.db.get_list("Fee Category")).name , "amount" : random.randint(500,1000)}
- fee_structure.append("components", temp)
- fee_structure.insert()
- program.append("fees", {"academic_term": academic_term, "fee_structure": fee_structure.name, "amount": fee_structure.total_amount})
- program.save()
- frappe.db.commit()
-
-def make_assessment_groups():
- for year in frappe.db.get_list("Academic Year"):
- ag = frappe.new_doc('Assessment Group')
- ag.assessment_group_name = year.name
- ag.parent_assessment_group = "All Assessment Groups"
- ag.is_group = 1
- ag.insert()
- for term in frappe.db.get_list("Academic Term", filters = {"academic_year": year.name}):
- ag1 = frappe.new_doc('Assessment Group')
- ag1.assessment_group_name = term.name
- ag1.parent_assessment_group = ag.name
- ag1.is_group = 1
- ag1.insert()
- for assessment_group in ['Term I', 'Term II']:
- ag2 = frappe.new_doc('Assessment Group')
- ag2.assessment_group_name = ag1.name + " " + assessment_group
- ag2.parent_assessment_group = ag1.name
- ag2.insert()
- frappe.db.commit()
-
-
-def get_json_path(doctype):
- return frappe.get_app_path('erpnext', 'demo', 'data', frappe.scrub(doctype) + '.json')
-
-def weighted_choice(weights):
- totals = []
- running_total = 0
-
- for w in weights:
- running_total += w
- totals.append(running_total)
-
- rnd = random.random() * running_total
- for i, total in enumerate(totals):
- if rnd < total:
- return i
diff --git a/erpnext/demo/setup/manufacture.py b/erpnext/demo/setup/manufacture.py
deleted file mode 100644
index fe1a1fb..0000000
--- a/erpnext/demo/setup/manufacture.py
+++ /dev/null
@@ -1,140 +0,0 @@
-import json
-import random
-
-import frappe
-from frappe.utils import add_days, nowdate
-
-from erpnext.demo.domains import data
-from erpnext.demo.setup.setup_data import import_json
-
-
-def setup_data():
- import_json("Location")
- import_json("Asset Category")
- setup_item()
- setup_workstation()
- setup_asset()
- import_json('Operation')
- setup_item_price()
- show_item_groups_in_website()
- import_json('BOM', submit=True)
- frappe.db.commit()
- frappe.clear_cache()
-
-def setup_workstation():
- workstations = [u'Drilling Machine 1', u'Lathe 1', u'Assembly Station 1', u'Assembly Station 2', u'Packing and Testing Station']
- for w in workstations:
- frappe.get_doc({
- "doctype": "Workstation",
- "workstation_name": w,
- "holiday_list": frappe.get_all("Holiday List")[0].name,
- "hour_rate_consumable": int(random.random() * 20),
- "hour_rate_electricity": int(random.random() * 10),
- "hour_rate_labour": int(random.random() * 40),
- "hour_rate_rent": int(random.random() * 10),
- "working_hours": [
- {
- "enabled": 1,
- "start_time": "8:00:00",
- "end_time": "15:00:00"
- }
- ]
- }).insert()
-
-def show_item_groups_in_website():
- """set show_in_website=1 for Item Groups"""
- products = frappe.get_doc("Item Group", "Products")
- products.show_in_website = 1
- products.route = 'products'
- products.save()
-
-def setup_asset():
- assets = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'asset.json')).read())
- for d in assets:
- asset = frappe.new_doc('Asset')
- asset.update(d)
- asset.purchase_date = add_days(nowdate(), -random.randint(20, 1500))
- asset.next_depreciation_date = add_days(asset.purchase_date, 30)
- asset.warehouse = "Stores - WPL"
- asset.set_missing_values()
- asset.make_depreciation_schedule()
- asset.flags.ignore_validate = True
- asset.flags.ignore_mandatory = True
- asset.save()
- asset.submit()
-
-def setup_item():
- items = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'item.json')).read())
- for i in items:
- item = frappe.new_doc('Item')
- item.update(i)
- if hasattr(item, 'item_defaults') and item.item_defaults[0].default_warehouse:
- item.item_defaults[0].company = data.get("Manufacturing").get('company_name')
- warehouse = frappe.get_all('Warehouse', filters={'warehouse_name': item.item_defaults[0].default_warehouse}, limit=1)
- if warehouse:
- item.item_defaults[0].default_warehouse = warehouse[0].name
- item.insert()
-
-def setup_product_bundle():
- frappe.get_doc({
- 'doctype': 'Product Bundle',
- 'new_item_code': 'Wind Mill A Series with Spare Bearing',
- 'items': [
- {'item_code': 'Wind Mill A Series', 'qty': 1},
- {'item_code': 'Bearing Collar', 'qty': 1},
- {'item_code': 'Bearing Assembly', 'qty': 1},
- ]
- }).insert()
-
-def setup_item_price():
- frappe.db.sql("delete from `tabItem Price`")
-
- standard_selling = {
- "Base Bearing Plate": 28,
- "Base Plate": 21,
- "Bearing Assembly": 300,
- "Bearing Block": 14,
- "Bearing Collar": 103.6,
- "Bearing Pipe": 63,
- "Blade Rib": 46.2,
- "Disc Collars": 42,
- "External Disc": 56,
- "Internal Disc": 70,
- "Shaft": 340,
- "Stand": 400,
- "Upper Bearing Plate": 300,
- "Wind Mill A Series": 320,
- "Wind Mill A Series with Spare Bearing": 750,
- "Wind MIll C Series": 400,
- "Wind Turbine": 400,
- "Wing Sheet": 30.8
- }
-
- standard_buying = {
- "Base Bearing Plate": 20,
- "Base Plate": 28,
- "Base Plate Un Painted": 16,
- "Bearing Block": 13,
- "Bearing Collar": 96.4,
- "Bearing Pipe": 55,
- "Blade Rib": 38,
- "Disc Collars": 34,
- "External Disc": 50,
- "Internal Disc": 60,
- "Shaft": 250,
- "Stand": 300,
- "Upper Bearing Plate": 200,
- "Wing Sheet": 25
- }
-
- for price_list in ("standard_buying", "standard_selling"):
- for item, rate in locals().get(price_list).items():
- frappe.get_doc({
- "doctype": "Item Price",
- "price_list": price_list.replace("_", " ").title(),
- "item_code": item,
- "selling": 1 if price_list=="standard_selling" else 0,
- "buying": 1 if price_list=="standard_buying" else 0,
- "price_list_rate": rate,
- "currency": "USD"
- }).insert()
diff --git a/erpnext/demo/setup/retail.py b/erpnext/demo/setup/retail.py
deleted file mode 100644
index 0469264..0000000
--- a/erpnext/demo/setup/retail.py
+++ /dev/null
@@ -1,62 +0,0 @@
-import json
-
-import frappe
-
-from erpnext.demo.domains import data
-
-
-def setup_data():
- setup_item()
- setup_item_price()
- frappe.db.commit()
- frappe.clear_cache()
-
-def setup_item():
- items = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'item.json')).read())
- for i in items:
- if not i.get("domain") == "Retail": continue
- item = frappe.new_doc('Item')
- item.update(i)
- if hasattr(item, 'item_defaults') and item.item_defaults[0].default_warehouse:
- item.item_defaults[0].company = data.get("Retail").get('company_name')
- warehouse = frappe.get_all('Warehouse', filters={'warehouse_name': item.item_defaults[0].default_warehouse}, limit=1)
- if warehouse:
- item.item_defaults[0].default_warehouse = warehouse[0].name
- item.insert()
-
-def setup_item_price():
- frappe.db.sql("delete from `tabItem Price`")
-
- standard_selling = {
- "OnePlus 6": 579,
- "OnePlus 6T": 600,
- "Xiaomi Poco F1": 300,
- "Iphone XS": 999,
- "Samsung Galaxy S9": 720,
- "Sony Bluetooth Headphone": 99,
- "Xiaomi Phone Repair": 10,
- "Samsung Phone Repair": 20,
- "OnePlus Phone Repair": 15,
- "Apple Phone Repair": 30,
- }
-
- standard_buying = {
- "OnePlus 6": 300,
- "OnePlus 6T": 350,
- "Xiaomi Poco F1": 200,
- "Iphone XS": 600,
- "Samsung Galaxy S9": 500,
- "Sony Bluetooth Headphone": 69
- }
-
- for price_list in ("standard_buying", "standard_selling"):
- for item, rate in locals().get(price_list).items():
- frappe.get_doc({
- "doctype": "Item Price",
- "price_list": price_list.replace("_", " ").title(),
- "item_code": item,
- "selling": 1 if price_list=="standard_selling" else 0,
- "buying": 1 if price_list=="standard_buying" else 0,
- "price_list_rate": rate,
- "currency": "USD"
- }).insert()
diff --git a/erpnext/demo/setup/setup_data.py b/erpnext/demo/setup/setup_data.py
deleted file mode 100644
index 7137c6e..0000000
--- a/erpnext/demo/setup/setup_data.py
+++ /dev/null
@@ -1,447 +0,0 @@
-import json
-import random
-
-import frappe
-from frappe import _
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-from frappe.utils import cstr, flt, now_datetime, random_string
-from frappe.utils.make_random import add_random_children, get_random
-from frappe.utils.nestedset import get_root_of
-
-import erpnext
-from erpnext.demo.domains import data
-
-
-def setup(domain):
- frappe.flags.in_demo = 1
- complete_setup(domain)
- setup_demo_page()
- setup_fiscal_year()
- setup_holiday_list()
- setup_user()
- setup_employee()
- setup_user_roles(domain)
- setup_role_permissions()
- setup_custom_field_for_domain()
-
- employees = frappe.get_all('Employee', fields=['name', 'date_of_joining'])
-
- # monthly salary
- setup_salary_structure(employees[:5], 0)
-
- # based on timesheet
- setup_salary_structure(employees[5:], 1)
-
- setup_leave_allocation()
- setup_customer()
- setup_supplier()
- setup_warehouse()
- import_json('Address')
- import_json('Contact')
- import_json('Lead')
- setup_currency_exchange()
- #setup_mode_of_payment()
- setup_account_to_expense_type()
- setup_budget()
- setup_pos_profile()
-
- frappe.db.commit()
- frappe.clear_cache()
-
-def complete_setup(domain='Manufacturing'):
- print("Complete Setup...")
- from frappe.desk.page.setup_wizard.setup_wizard import setup_complete
-
- if not frappe.get_all('Company', limit=1):
- setup_complete({
- "full_name": "Test User",
- "email": "test_demo@erpnext.com",
- "company_tagline": 'Awesome Products and Services',
- "password": "demo",
- "fy_start_date": "2015-01-01",
- "fy_end_date": "2015-12-31",
- "bank_account": "National Bank",
- "domains": [domain],
- "company_name": data.get(domain).get('company_name'),
- "chart_of_accounts": "Standard",
- "company_abbr": ''.join([d[0] for d in data.get(domain).get('company_name').split()]).upper(),
- "currency": 'USD',
- "timezone": 'America/New_York',
- "country": 'United States',
- "language": "english"
- })
-
- company = erpnext.get_default_company()
-
- if company:
- company_doc = frappe.get_doc("Company", company)
- company_doc.db_set('default_payroll_payable_account',
- frappe.db.get_value('Account', dict(account_name='Payroll Payable')))
-
-def setup_demo_page():
- # home page should always be "start"
- website_settings = frappe.get_doc("Website Settings", "Website Settings")
- website_settings.home_page = "demo"
- website_settings.save()
-
-def setup_fiscal_year():
- fiscal_year = None
- for year in range(2010, now_datetime().year + 1, 1):
- try:
- fiscal_year = frappe.get_doc({
- "doctype": "Fiscal Year",
- "year": cstr(year),
- "year_start_date": "{0}-01-01".format(year),
- "year_end_date": "{0}-12-31".format(year)
- }).insert()
- except frappe.DuplicateEntryError:
- pass
-
- # set the last fiscal year (current year) as default
- if fiscal_year:
- fiscal_year.set_as_default()
-
-def setup_holiday_list():
- """Setup Holiday List for the current year"""
- year = now_datetime().year
- holiday_list = frappe.get_doc({
- "doctype": "Holiday List",
- "holiday_list_name": str(year),
- "from_date": "{0}-01-01".format(year),
- "to_date": "{0}-12-31".format(year),
- })
- holiday_list.insert()
- holiday_list.weekly_off = "Saturday"
- holiday_list.get_weekly_off_dates()
- holiday_list.weekly_off = "Sunday"
- holiday_list.get_weekly_off_dates()
- holiday_list.save()
-
- frappe.set_value("Company", erpnext.get_default_company(), "default_holiday_list", holiday_list.name)
-
-
-def setup_user():
- frappe.db.sql('delete from tabUser where name not in ("Guest", "Administrator")')
- for u in json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data', 'user.json')).read()):
- user = frappe.new_doc("User")
- user.update(u)
- user.flags.no_welcome_mail = True
- user.new_password = 'Demo1234567!!!'
- user.insert()
-
-def setup_employee():
- frappe.db.set_value("HR Settings", None, "emp_created_by", "Naming Series")
- frappe.db.commit()
-
- for d in frappe.get_all('Salary Component'):
- salary_component = frappe.get_doc('Salary Component', d.name)
- salary_component.append('accounts', dict(
- company=erpnext.get_default_company(),
- account=frappe.get_value('Account', dict(account_name=('like', 'Salary%')))
- ))
- salary_component.save()
-
- import_json('Employee')
- holiday_list = frappe.db.get_value("Holiday List", {"holiday_list_name": str(now_datetime().year)}, 'name')
- frappe.db.sql('''update tabEmployee set holiday_list={0}'''.format(holiday_list))
-
-def setup_salary_structure(employees, salary_slip_based_on_timesheet=0):
- ss = frappe.new_doc('Salary Structure')
- ss.name = "Sample Salary Structure - " + random_string(5)
- ss.salary_slip_based_on_timesheet = salary_slip_based_on_timesheet
-
- if salary_slip_based_on_timesheet:
- ss.salary_component = 'Basic'
- ss.hour_rate = flt(random.random() * 10, 2)
- else:
- ss.payroll_frequency = 'Monthly'
-
- ss.payment_account = frappe.get_value('Account',
- {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name")
-
- ss.append('earnings', {
- 'salary_component': 'Basic',
- "abbr":'B',
- 'formula': 'base*.2',
- 'amount_based_on_formula': 1,
- "idx": 1
- })
- ss.append('deductions', {
- 'salary_component': 'Income Tax',
- "abbr":'IT',
- 'condition': 'base > 10000',
- 'formula': 'base*.1',
- "idx": 1
- })
- ss.insert()
- ss.submit()
-
- for e in employees:
- sa = frappe.new_doc("Salary Structure Assignment")
- sa.employee = e.name
- sa.salary_structure = ss.name
- sa.from_date = "2015-01-01"
- sa.base = random.random() * 10000
- sa.insert()
- sa.submit()
-
- return ss
-
-def setup_user_roles(domain):
- user = frappe.get_doc('User', 'demo@erpnext.com')
- user.add_roles('HR User', 'HR Manager', 'Accounts User', 'Accounts Manager',
- 'Stock User', 'Stock Manager', 'Sales User', 'Sales Manager', 'Purchase User',
- 'Purchase Manager', 'Projects User', 'Manufacturing User', 'Manufacturing Manager',
- 'Support Team')
-
- if domain == "Education":
- user.add_roles('Academics User')
-
- if not frappe.db.get_global('demo_hr_user'):
- user = frappe.get_doc('User', 'CaitlinSnow@example.com')
- user.add_roles('HR User', 'HR Manager', 'Accounts User')
- frappe.db.set_global('demo_hr_user', user.name)
- update_employee_department(user.name, 'Human Resources')
- for d in frappe.get_all('User Permission', filters={"user": "CaitlinSnow@example.com"}):
- frappe.delete_doc('User Permission', d.name)
-
- if not frappe.db.get_global('demo_sales_user_1'):
- user = frappe.get_doc('User', 'VandalSavage@example.com')
- user.add_roles('Sales User')
- update_employee_department(user.name, 'Sales')
- frappe.db.set_global('demo_sales_user_1', user.name)
-
- if not frappe.db.get_global('demo_sales_user_2'):
- user = frappe.get_doc('User', 'GraceChoi@example.com')
- user.add_roles('Sales User', 'Sales Manager', 'Accounts User')
- update_employee_department(user.name, 'Sales')
- frappe.db.set_global('demo_sales_user_2', user.name)
-
- if not frappe.db.get_global('demo_purchase_user'):
- user = frappe.get_doc('User', 'MaxwellLord@example.com')
- user.add_roles('Purchase User', 'Purchase Manager', 'Accounts User', 'Stock User')
- update_employee_department(user.name, 'Purchase')
- frappe.db.set_global('demo_purchase_user', user.name)
-
- if not frappe.db.get_global('demo_manufacturing_user'):
- user = frappe.get_doc('User', 'NeptuniaAquaria@example.com')
- user.add_roles('Manufacturing User', 'Stock Manager', 'Stock User', 'Purchase User', 'Accounts User')
- update_employee_department(user.name, 'Production')
- frappe.db.set_global('demo_manufacturing_user', user.name)
-
- if not frappe.db.get_global('demo_stock_user'):
- user = frappe.get_doc('User', 'HollyGranger@example.com')
- user.add_roles('Manufacturing User', 'Stock User', 'Purchase User', 'Accounts User')
- update_employee_department(user.name, 'Production')
- frappe.db.set_global('demo_stock_user', user.name)
-
- if not frappe.db.get_global('demo_accounts_user'):
- user = frappe.get_doc('User', 'BarryAllen@example.com')
- user.add_roles('Accounts User', 'Accounts Manager', 'Sales User', 'Purchase User')
- update_employee_department(user.name, 'Accounts')
- frappe.db.set_global('demo_accounts_user', user.name)
-
- if not frappe.db.get_global('demo_projects_user'):
- user = frappe.get_doc('User', 'PeterParker@example.com')
- user.add_roles('HR User', 'Projects User')
- update_employee_department(user.name, 'Management')
- frappe.db.set_global('demo_projects_user', user.name)
-
- if domain == "Education":
- if not frappe.db.get_global('demo_education_user'):
- user = frappe.get_doc('User', 'ArthurCurry@example.com')
- user.add_roles('Academics User')
- update_employee_department(user.name, 'Management')
- frappe.db.set_global('demo_education_user', user.name)
-
- #Add Expense Approver
- user = frappe.get_doc('User', 'ClarkKent@example.com')
- user.add_roles('Expense Approver')
-
-def setup_leave_allocation():
- year = now_datetime().year
- for employee in frappe.get_all('Employee', fields=['name']):
- leave_types = frappe.get_all("Leave Type", fields=['name', 'max_continuous_days_allowed'])
- for leave_type in leave_types:
- if not leave_type.max_continuous_days_allowed:
- leave_type.max_continuous_days_allowed = 10
-
- leave_allocation = frappe.get_doc({
- "doctype": "Leave Allocation",
- "employee": employee.name,
- "from_date": "{0}-01-01".format(year),
- "to_date": "{0}-12-31".format(year),
- "leave_type": leave_type.name,
- "new_leaves_allocated": random.randint(1, int(leave_type.max_continuous_days_allowed))
- })
- leave_allocation.insert()
- leave_allocation.submit()
- frappe.db.commit()
-
-def setup_customer():
- customers = [u'Asian Junction', u'Life Plan Counselling', u'Two Pesos', u'Mr Fables', u'Intelacard', u'Big D Supermarkets', u'Adaptas', u'Nelson Brothers', u'Landskip Yard Care', u'Buttrey Food & Drug', u'Fayva', u'Asian Fusion', u'Crafts Canada', u'Consumers and Consumers Express', u'Netobill', u'Choices', u'Chi-Chis', u'Red Food', u'Endicott Shoes', u'Hind Enterprises']
- for c in customers:
- frappe.get_doc({
- "doctype": "Customer",
- "customer_name": c,
- "customer_group": "Commercial",
- "customer_type": random.choice(["Company", "Individual"]),
- "territory": "Rest Of The World"
- }).insert()
-
-def setup_supplier():
- suppliers = [u'Helios Air', u'Ks Merchandise', u'HomeBase', u'Scott Ties', u'Reliable Investments', u'Nan Duskin', u'Rainbow Records', u'New World Realty', u'Asiatic Solutions', u'Eagle Hardware', u'Modern Electricals']
- for s in suppliers:
- frappe.get_doc({
- "doctype": "Supplier",
- "supplier_name": s,
- "supplier_group": random.choice(["Services", "Raw Material"]),
- }).insert()
-
-def setup_warehouse():
- w = frappe.new_doc('Warehouse')
- w.warehouse_name = 'Supplier'
- w.insert()
-
-def setup_currency_exchange():
- frappe.get_doc({
- 'doctype': 'Currency Exchange',
- 'from_currency': 'EUR',
- 'to_currency': 'USD',
- 'exchange_rate': 1.13
- }).insert()
-
- frappe.get_doc({
- 'doctype': 'Currency Exchange',
- 'from_currency': 'CNY',
- 'to_currency': 'USD',
- 'exchange_rate': 0.16
- }).insert()
-
-def setup_mode_of_payment():
- company_abbr = frappe.get_cached_value('Company', erpnext.get_default_company(), "abbr")
- account_dict = {'Cash': 'Cash - '+ company_abbr , 'Bank': 'National Bank - '+ company_abbr}
- for payment_mode in frappe.get_all('Mode of Payment', fields = ["name", "type"]):
- if payment_mode.type:
- mop = frappe.get_doc('Mode of Payment', payment_mode.name)
- mop.append('accounts', {
- 'company': erpnext.get_default_company(),
- 'default_account': account_dict.get(payment_mode.type)
- })
- mop.save(ignore_permissions=True)
-
-def setup_account():
- frappe.flags.in_import = True
- data = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data',
- 'account.json')).read())
- for d in data:
- doc = frappe.new_doc('Account')
- doc.update(d)
- doc.parent_account = frappe.db.get_value('Account', {'account_name': doc.parent_account})
- doc.insert()
-
- frappe.flags.in_import = False
-
-def setup_account_to_expense_type():
- company_abbr = frappe.get_cached_value('Company', erpnext.get_default_company(), "abbr")
- expense_types = [{'name': _('Calls'), "account": "Sales Expenses - "+ company_abbr},
- {'name': _('Food'), "account": "Entertainment Expenses - "+ company_abbr},
- {'name': _('Medical'), "account": "Utility Expenses - "+ company_abbr},
- {'name': _('Others'), "account": "Miscellaneous Expenses - "+ company_abbr},
- {'name': _('Travel'), "account": "Travel Expenses - "+ company_abbr}]
-
- for expense_type in expense_types:
- doc = frappe.get_doc("Expense Claim Type", expense_type["name"])
- doc.append("accounts", {
- "company" : erpnext.get_default_company(),
- "default_account" : expense_type["account"]
- })
- doc.save(ignore_permissions=True)
-
-def setup_budget():
- fiscal_years = frappe.get_all("Fiscal Year", order_by="year_start_date")[-2:]
-
- for fy in fiscal_years:
- budget = frappe.new_doc("Budget")
- budget.cost_center = get_random("Cost Center")
- budget.fiscal_year = fy.name
- 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")
-
- for d in budget.accounts:
- d.budget_amount = random.randint(5, 100) * 10000
-
- budget.save()
- budget.submit()
-
-def setup_pos_profile():
- company_abbr = frappe.get_cached_value('Company', erpnext.get_default_company(), "abbr")
- pos = frappe.new_doc('POS Profile')
- pos.user = frappe.db.get_global('demo_accounts_user')
- pos.name = "Demo POS Profile"
- pos.naming_series = 'SINV-'
- pos.update_stock = 0
- pos.write_off_account = 'Cost of Goods Sold - '+ company_abbr
- pos.write_off_cost_center = 'Main - '+ company_abbr
- pos.customer_group = get_root_of('Customer Group')
- pos.territory = get_root_of('Territory')
-
- pos.append('payments', {
- 'mode_of_payment': frappe.db.get_value('Mode of Payment', {'type': 'Cash'}, 'name'),
- 'amount': 0.0,
- 'default': 1
- })
-
- pos.insert()
-
-def setup_role_permissions():
- role_permissions = {'Batch': ['Accounts User', 'Item Manager']}
- for doctype, roles in role_permissions.items():
- for role in roles:
- if not frappe.db.get_value('Custom DocPerm',
- {'parent': doctype, 'role': role}):
- frappe.get_doc({
- 'doctype': 'Custom DocPerm',
- 'role': role,
- 'read': 1,
- 'write': 1,
- 'create': 1,
- 'delete': 1,
- 'parent': doctype
- }).insert(ignore_permissions=True)
-
-def import_json(doctype, submit=False, values=None):
- frappe.flags.in_import = True
- data = json.loads(open(frappe.get_app_path('erpnext', 'demo', 'data',
- frappe.scrub(doctype) + '.json')).read())
- for d in data:
- doc = frappe.new_doc(doctype)
- doc.update(d)
- doc.insert()
- if submit:
- doc.submit()
-
- frappe.db.commit()
-
- frappe.flags.in_import = False
-
-def update_employee_department(user_id, department):
- employee = frappe.db.get_value('Employee', {"user_id": user_id}, 'name')
- department = frappe.db.get_value('Department', {'department_name': department}, 'name')
- frappe.db.set_value('Employee', employee, 'department', department)
-
-def setup_custom_field_for_domain():
- field = {
- "Item": [
- dict(fieldname='domain', label='Domain',
- fieldtype='Select', hidden=1, default="Manufacturing",
- options="Manufacturing\nService\nDistribution\nRetail"
- )
- ]
- }
- create_custom_fields(field)
diff --git a/erpnext/demo/user/__init__.py b/erpnext/demo/user/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/erpnext/demo/user/__init__.py
+++ /dev/null
diff --git a/erpnext/demo/user/accounts.py b/erpnext/demo/user/accounts.py
deleted file mode 100644
index 273a3f9..0000000
--- a/erpnext/demo/user/accounts.py
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import random
-
-import frappe
-from frappe.desk import query_report
-from frappe.utils import random_string
-from frappe.utils.make_random import get_random
-
-import erpnext
-from erpnext.accounts.doctype.journal_entry.journal_entry import get_payment_entry_against_invoice
-from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
-from erpnext.accounts.doctype.payment_request.payment_request import (
- make_payment_entry,
- make_payment_request,
-)
-from erpnext.demo.user.sales import make_sales_order
-from erpnext.selling.doctype.sales_order.sales_order import make_sales_invoice
-from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_invoice
-
-
-def work():
- frappe.set_user(frappe.db.get_global('demo_accounts_user'))
-
- if random.random() <= 0.6:
- report = "Ordered Items to be Billed"
- for so in list(set([r[0] for r in query_report.run(report)["result"]
- if r[0]!="Total"]))[:random.randint(1, 5)]:
- try:
- si = frappe.get_doc(make_sales_invoice(so))
- si.posting_date = frappe.flags.current_date
- for d in si.get("items"):
- if not d.income_account:
- d.income_account = "Sales - {}".format(frappe.get_cached_value('Company', si.company, 'abbr'))
- si.insert()
- si.submit()
- frappe.db.commit()
- except frappe.ValidationError:
- pass
-
- if random.random() <= 0.6:
- report = "Received Items to be Billed"
- for pr in list(set([r[0] for r in query_report.run(report)["result"]
- if r[0]!="Total"]))[:random.randint(1, 5)]:
- try:
- pi = frappe.get_doc(make_purchase_invoice(pr))
- pi.posting_date = frappe.flags.current_date
- pi.bill_no = random_string(6)
- pi.insert()
- pi.submit()
- frappe.db.commit()
- except frappe.ValidationError:
- pass
-
-
- if random.random() < 0.5:
- make_payment_entries("Sales Invoice", "Accounts Receivable")
-
- if random.random() < 0.5:
- make_payment_entries("Purchase Invoice", "Accounts Payable")
-
- if random.random() < 0.4:
- #make payment request against sales invoice
- sales_invoice_name = get_random("Sales Invoice", filters={"docstatus": 1})
- if sales_invoice_name:
- si = frappe.get_doc("Sales Invoice", sales_invoice_name)
- if si.outstanding_amount > 0:
- payment_request = make_payment_request(dt="Sales Invoice", dn=si.name, recipient_id=si.contact_email,
- submit_doc=True, mute_email=True, use_dummy_message=True)
-
- payment_entry = frappe.get_doc(make_payment_entry(payment_request.name))
- payment_entry.posting_date = frappe.flags.current_date
- payment_entry.submit()
-
- make_pos_invoice()
-
-def make_payment_entries(ref_doctype, report):
-
- outstanding_invoices = frappe.get_all(ref_doctype, fields=["name"],
- filters={
- "company": erpnext.get_default_company(),
- "outstanding_amount": (">", 0.0)
- })
-
- # make Payment Entry
- for inv in outstanding_invoices[:random.randint(1, 2)]:
- pe = get_payment_entry(ref_doctype, inv.name)
- pe.posting_date = frappe.flags.current_date
- pe.reference_no = random_string(6)
- pe.reference_date = frappe.flags.current_date
- pe.insert()
- pe.submit()
- frappe.db.commit()
- outstanding_invoices.remove(inv)
-
- # make payment via JV
- for inv in outstanding_invoices[:1]:
- jv = frappe.get_doc(get_payment_entry_against_invoice(ref_doctype, inv.name))
- jv.posting_date = frappe.flags.current_date
- jv.cheque_no = random_string(6)
- jv.cheque_date = frappe.flags.current_date
- jv.insert()
- jv.submit()
- frappe.db.commit()
-
-def make_pos_invoice():
- make_sales_order()
-
- for data in frappe.get_all('Sales Order', fields=["name"],
- filters = [["per_billed", "<", "100"]]):
- si = frappe.get_doc(make_sales_invoice(data.name))
- si.is_pos =1
- si.posting_date = frappe.flags.current_date
- for d in si.get("items"):
- if not d.income_account:
- d.income_account = "Sales - {}".format(frappe.get_cached_value('Company', si.company, 'abbr'))
- si.set_missing_values()
- make_payment_entries_for_pos_invoice(si)
- si.insert()
- si.submit()
-
-def make_payment_entries_for_pos_invoice(si):
- for data in si.payments:
- data.amount = si.outstanding_amount
- return
diff --git a/erpnext/demo/user/education.py b/erpnext/demo/user/education.py
deleted file mode 100644
index 47519c1..0000000
--- a/erpnext/demo/user/education.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import random
-from datetime import timedelta
-
-import frappe
-from frappe.utils import cstr
-from frappe.utils.make_random import get_random
-
-from erpnext.education.api import (
- collect_fees,
- enroll_student,
- get_course,
- get_fee_schedule,
- get_student_group_students,
- make_attendance_records,
-)
-
-
-def work():
- frappe.set_user(frappe.db.get_global('demo_education_user'))
- for d in range(20):
- approve_random_student_applicant()
- enroll_random_student(frappe.flags.current_date)
- # if frappe.flags.current_date.weekday()== 0:
- # make_course_schedule(frappe.flags.current_date, frappe.utils.add_days(frappe.flags.current_date, 5))
- mark_student_attendance(frappe.flags.current_date)
- # make_assessment_plan()
- make_fees()
-
-def approve_random_student_applicant():
- random_student = get_random("Student Applicant", {"application_status": "Applied"})
- if random_student:
- status = ["Approved", "Rejected"]
- frappe.db.set_value("Student Applicant", random_student, "application_status", status[weighted_choice([9,3])])
-
-def enroll_random_student(current_date):
- batch = ["Section-A", "Section-B"]
- random_student = get_random("Student Applicant", {"application_status": "Approved"})
- if random_student:
- enrollment = enroll_student(random_student)
- enrollment.academic_year = get_random("Academic Year")
- enrollment.enrollment_date = current_date
- enrollment.student_batch_name = batch[weighted_choice([9,3])]
- fee_schedule = get_fee_schedule(enrollment.program)
- for fee in fee_schedule:
- enrollment.append("fees", fee)
- enrolled_courses = get_course(enrollment.program)
- for course in enrolled_courses:
- enrollment.append("courses", course)
- enrollment.submit()
- frappe.db.commit()
- assign_student_group(enrollment.student, enrollment.student_name, enrollment.program,
- enrolled_courses, enrollment.student_batch_name)
-
-def assign_student_group(student, student_name, program, courses, batch):
- course_list = [d["course"] for d in courses]
- for d in frappe.get_list("Student Group", fields=("name"), filters={"program": program, "course":("in", course_list), "disabled": 0}):
- student_group = frappe.get_doc("Student Group", d.name)
- student_group.append("students", {"student": student, "student_name": student_name,
- "group_roll_number":len(student_group.students)+1, "active":1})
- student_group.save()
- student_batch = frappe.get_list("Student Group", fields=("name"), filters={"program": program, "group_based_on":"Batch", "batch":batch, "disabled": 0})[0]
- student_batch_doc = frappe.get_doc("Student Group", student_batch.name)
- student_batch_doc.append("students", {"student": student, "student_name": student_name,
- "group_roll_number":len(student_batch_doc.students)+1, "active":1})
- student_batch_doc.save()
- frappe.db.commit()
-
-def mark_student_attendance(current_date):
- status = ["Present", "Absent"]
- for d in frappe.db.get_list("Student Group", filters={"group_based_on": "Batch", "disabled": 0}):
- students = get_student_group_students(d.name)
- for stud in students:
- make_attendance_records(stud.student, stud.student_name, status[weighted_choice([9,4])], None, d.name, current_date)
-
-def make_fees():
- for d in range(1,10):
- random_fee = get_random("Fees", {"paid_amount": 0})
- collect_fees(random_fee, frappe.db.get_value("Fees", random_fee, "outstanding_amount"))
-
-def make_assessment_plan(date):
- for d in range(1,4):
- random_group = get_random("Student Group", {"group_based_on": "Course", "disabled": 0}, True)
- doc = frappe.new_doc("Assessment Plan")
- doc.student_group = random_group.name
- doc.course = random_group.course
- doc.assessment_group = get_random("Assessment Group", {"is_group": 0, "parent": "2017-18 (Semester 2)"})
- doc.grading_scale = get_random("Grading Scale")
- doc.maximum_assessment_score = 100
-
-def make_course_schedule(start_date, end_date):
- for d in frappe.db.get_list("Student Group"):
- cs = frappe.new_doc("Scheduling Tool")
- cs.student_group = d.name
- cs.room = get_random("Room")
- cs.instructor = get_random("Instructor")
- cs.course_start_date = cstr(start_date)
- cs.course_end_date = cstr(end_date)
- day = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
- for x in range(3):
- random_day = random.choice(day)
- cs.day = random_day
- cs.from_time = timedelta(hours=(random.randrange(7, 17,1)))
- cs.to_time = cs.from_time + timedelta(hours=1)
- cs.schedule_course()
- day.remove(random_day)
-
-
-def weighted_choice(weights):
- totals = []
- running_total = 0
-
- for w in weights:
- running_total += w
- totals.append(running_total)
-
- rnd = random.random() * running_total
- for i, total in enumerate(totals):
- if rnd < total:
- return i
diff --git a/erpnext/demo/user/fixed_asset.py b/erpnext/demo/user/fixed_asset.py
deleted file mode 100644
index 72cd420..0000000
--- a/erpnext/demo/user/fixed_asset.py
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-from frappe.utils.make_random import get_random
-
-from erpnext.assets.doctype.asset.asset import make_sales_invoice
-from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries, scrap_asset
-
-
-def work():
- frappe.set_user(frappe.db.get_global('demo_accounts_user'))
-
- # Enable booking asset depreciation entry automatically
- frappe.db.set_value("Accounts Settings", None, "book_asset_depreciation_entry_automatically", 1)
-
- # post depreciation entries as on today
- post_depreciation_entries()
-
- # scrap a random asset
- frappe.db.set_value("Company", "Wind Power LLC", "disposal_account", "Gain/Loss on Asset Disposal - WPL")
-
- asset = get_random_asset()
- scrap_asset(asset.name)
-
- # Sell a random asset
- sell_an_asset()
-
-
-def sell_an_asset():
- asset = get_random_asset()
- si = make_sales_invoice(asset.name, asset.item_code, "Wind Power LLC")
- si.customer = get_random("Customer")
- si.get("items")[0].rate = asset.value_after_depreciation * 0.8 \
- if asset.value_after_depreciation else asset.gross_purchase_amount * 0.9
- si.save()
- si.submit()
-
-
-def get_random_asset():
- return frappe.db.sql(""" select name, item_code, value_after_depreciation, gross_purchase_amount
- from `tabAsset`
- where docstatus=1 and status not in ("Scrapped", "Sold") order by rand() limit 1""", as_dict=1)[0]
diff --git a/erpnext/demo/user/hr.py b/erpnext/demo/user/hr.py
deleted file mode 100644
index f84a853..0000000
--- a/erpnext/demo/user/hr.py
+++ /dev/null
@@ -1,223 +0,0 @@
-import datetime
-import random
-
-import frappe
-from frappe.utils import add_days, get_last_day, getdate, random_string
-from frappe.utils.make_random import get_random
-
-import erpnext
-from erpnext.hr.doctype.expense_claim.expense_claim import make_bank_entry
-from erpnext.hr.doctype.expense_claim.test_expense_claim import get_payable_account
-from erpnext.hr.doctype.leave_application.leave_application import (
- AttendanceAlreadyMarkedError,
- OverlapError,
- get_leave_balance_on,
-)
-from erpnext.projects.doctype.timesheet.test_timesheet import make_timesheet
-from erpnext.projects.doctype.timesheet.timesheet import make_salary_slip, make_sales_invoice
-
-
-def work():
- frappe.set_user(frappe.db.get_global('demo_hr_user'))
- year, month = frappe.flags.current_date.strftime("%Y-%m").split("-")
- setup_department_approvers()
- mark_attendance()
- make_leave_application()
-
- # payroll entry
- if not frappe.db.sql('select name from `tabSalary Slip` where month(adddate(start_date, interval 1 month))=month(curdate())'):
- # based on frequency
- payroll_entry = get_payroll_entry()
- payroll_entry.salary_slip_based_on_timesheet = 0
- payroll_entry.save()
- payroll_entry.create_salary_slips()
- payroll_entry.submit_salary_slips()
- payroll_entry.make_accrual_jv_entry()
- payroll_entry.submit()
- # payroll_entry.make_journal_entry(reference_date=frappe.flags.current_date,
- # reference_number=random_string(10))
-
- # based on timesheet
- payroll_entry = get_payroll_entry()
- payroll_entry.salary_slip_based_on_timesheet = 1
- payroll_entry.save()
- payroll_entry.create_salary_slips()
- payroll_entry.submit_salary_slips()
- payroll_entry.make_accrual_jv_entry()
- payroll_entry.submit()
- # payroll_entry.make_journal_entry(reference_date=frappe.flags.current_date,
- # reference_number=random_string(10))
-
- if frappe.db.get_global('demo_hr_user'):
- make_timesheet_records()
-
- #expense claim
- expense_claim = frappe.new_doc("Expense Claim")
- expense_claim.extend('expenses', get_expenses())
- expense_claim.employee = get_random("Employee")
- expense_claim.company = frappe.flags.company
- expense_claim.payable_account = get_payable_account(expense_claim.company)
- expense_claim.posting_date = frappe.flags.current_date
- expense_claim.expense_approver = frappe.db.get_global('demo_hr_user')
- expense_claim.save()
-
- rand = random.random()
-
- if rand < 0.4:
- update_sanctioned_amount(expense_claim)
- expense_claim.approval_status = 'Approved'
- expense_claim.submit()
-
- if random.randint(0, 1):
- #make journal entry against expense claim
- je = frappe.get_doc(make_bank_entry("Expense Claim", expense_claim.name))
- je.posting_date = frappe.flags.current_date
- je.cheque_no = random_string(10)
- je.cheque_date = frappe.flags.current_date
- je.flags.ignore_permissions = 1
- je.submit()
-
-def get_payroll_entry():
- # process payroll for previous month
- payroll_entry = frappe.new_doc("Payroll Entry")
- payroll_entry.company = frappe.flags.company
- payroll_entry.payroll_frequency = 'Monthly'
-
- # select a posting date from the previous month
- payroll_entry.posting_date = get_last_day(getdate(frappe.flags.current_date) - datetime.timedelta(days=10))
- payroll_entry.payment_account = frappe.get_value('Account', {'account_type': 'Cash', 'company': erpnext.get_default_company(),'is_group':0}, "name")
-
- payroll_entry.set_start_end_dates()
- return payroll_entry
-
-def get_expenses():
- expenses = []
- expese_types = frappe.db.sql("""select ect.name, eca.default_account from `tabExpense Claim Type` ect,
- `tabExpense Claim Account` eca where eca.parent=ect.name
- and eca.company=%s """, frappe.flags.company,as_dict=1)
-
- for expense_type in expese_types[:random.randint(1,4)]:
- claim_amount = random.randint(1,20)*10
-
- expenses.append({
- "expense_date": frappe.flags.current_date,
- "expense_type": expense_type.name,
- "default_account": expense_type.default_account or "Miscellaneous Expenses - WPL",
- "amount": claim_amount,
- "sanctioned_amount": claim_amount
- })
-
- return expenses
-
-def update_sanctioned_amount(expense_claim):
- for expense in expense_claim.expenses:
- sanctioned_amount = random.randint(1,20)*10
-
- if sanctioned_amount < expense.amount:
- expense.sanctioned_amount = sanctioned_amount
-
-def get_timesheet_based_salary_slip_employee():
- sal_struct = frappe.db.sql("""
- select name from `tabSalary Structure`
- where salary_slip_based_on_timesheet = 1
- and docstatus != 2""")
- if sal_struct:
- employees = frappe.db.sql("""
- select employee from `tabSalary Structure Assignment`
- where salary_structure IN %(sal_struct)s""", {"sal_struct": sal_struct}, as_dict=True)
- return employees
- else:
- return []
-
-def make_timesheet_records():
- employees = get_timesheet_based_salary_slip_employee()
- for e in employees:
- ts = make_timesheet(e.employee, simulate = True, billable = 1, activity_type=get_random("Activity Type"), company=frappe.flags.company)
- frappe.db.commit()
-
- rand = random.random()
- if rand >= 0.3:
- make_salary_slip_for_timesheet(ts.name)
-
- rand = random.random()
- if rand >= 0.2:
- make_sales_invoice_for_timesheet(ts.name)
-
-def make_salary_slip_for_timesheet(name):
- salary_slip = make_salary_slip(name)
- salary_slip.insert()
- salary_slip.submit()
- frappe.db.commit()
-
-def make_sales_invoice_for_timesheet(name):
- sales_invoice = make_sales_invoice(name)
- sales_invoice.customer = get_random("Customer")
- sales_invoice.append('items', {
- 'item_code': get_random("Item", {"has_variants": 0, "is_stock_item": 0,
- "is_fixed_asset": 0}),
- 'qty': 1,
- 'rate': 1000
- })
- sales_invoice.flags.ignore_permissions = 1
- sales_invoice.set_missing_values()
- sales_invoice.calculate_taxes_and_totals()
- sales_invoice.insert()
- sales_invoice.submit()
- frappe.db.commit()
-
-def make_leave_application():
- allocated_leaves = frappe.get_all("Leave Allocation", fields=['employee', 'leave_type'])
-
- for allocated_leave in allocated_leaves:
- leave_balance = get_leave_balance_on(allocated_leave.employee, allocated_leave.leave_type, frappe.flags.current_date,
- consider_all_leaves_in_the_allocation_period=True)
- if leave_balance != 0:
- if leave_balance == 1:
- to_date = frappe.flags.current_date
- else:
- to_date = add_days(frappe.flags.current_date, random.randint(0, leave_balance-1))
-
- leave_application = frappe.get_doc({
- "doctype": "Leave Application",
- "employee": allocated_leave.employee,
- "from_date": frappe.flags.current_date,
- "to_date": to_date,
- "leave_type": allocated_leave.leave_type,
- })
- try:
- leave_application.insert()
- leave_application.submit()
- frappe.db.commit()
- except (OverlapError, AttendanceAlreadyMarkedError):
- frappe.db.rollback()
-
-def mark_attendance():
- attendance_date = frappe.flags.current_date
- for employee in frappe.get_all('Employee', fields=['name'], filters = {'status': 'Active'}):
-
- if not frappe.db.get_value("Attendance", {"employee": employee.name, "attendance_date": attendance_date}):
- attendance = frappe.get_doc({
- "doctype": "Attendance",
- "employee": employee.name,
- "attendance_date": attendance_date
- })
-
- leave = frappe.db.sql("""select name from `tabLeave Application`
- where employee = %s and %s between from_date and to_date
- and docstatus = 1""", (employee.name, attendance_date))
-
- if leave:
- attendance.status = "Absent"
- else:
- attendance.status = "Present"
- attendance.save()
- attendance.submit()
- frappe.db.commit()
-
-def setup_department_approvers():
- for d in frappe.get_all('Department', filters={'department_name': ['!=', 'All Departments']}):
- doc = frappe.get_doc('Department', d.name)
- doc.append("leave_approvers", {'approver': frappe.session.user})
- doc.append("expense_approvers", {'approver': frappe.session.user})
- doc.flags.ignore_mandatory = True
- doc.save()
diff --git a/erpnext/demo/user/manufacturing.py b/erpnext/demo/user/manufacturing.py
deleted file mode 100644
index 6b61776..0000000
--- a/erpnext/demo/user/manufacturing.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import random
-from datetime import timedelta
-
-import frappe
-from frappe.desk import query_report
-from frappe.utils.make_random import how_many
-
-import erpnext
-from erpnext.manufacturing.doctype.work_order.test_work_order import make_wo_order_test_record
-
-
-def work():
- if random.random() < 0.3: return
-
- frappe.set_user(frappe.db.get_global('demo_manufacturing_user'))
- if not frappe.get_all('Sales Order'): return
-
- ppt = frappe.new_doc("Production Plan")
- ppt.company = erpnext.get_default_company()
- # ppt.use_multi_level_bom = 1 #refactored
- ppt.get_items_from = "Sales Order"
- # ppt.purchase_request_for_warehouse = "Stores - WPL" # refactored
- ppt.run_method("get_open_sales_orders")
- if not ppt.get("sales_orders"): return
- ppt.run_method("get_items")
- ppt.run_method("raise_material_requests")
- ppt.save()
- ppt.submit()
- ppt.run_method("raise_work_orders")
- frappe.db.commit()
-
- # submit work orders
- for pro in frappe.db.get_values("Work Order", {"docstatus": 0}, "name"):
- b = frappe.get_doc("Work Order", pro[0])
- b.wip_warehouse = "Work in Progress - WPL"
- b.submit()
- frappe.db.commit()
-
- # submit material requests
- for pro in frappe.db.get_values("Material Request", {"docstatus": 0}, "name"):
- b = frappe.get_doc("Material Request", pro[0])
- b.submit()
- frappe.db.commit()
-
- # stores -> wip
- if random.random() < 0.4:
- for pro in query_report.run("Open Work Orders")["result"][:how_many("Stock Entry for WIP")]:
- make_stock_entry_from_pro(pro[0], "Material Transfer for Manufacture")
-
- # wip -> fg
- if random.random() < 0.4:
- for pro in query_report.run("Work Orders in Progress")["result"][:how_many("Stock Entry for FG")]:
- make_stock_entry_from_pro(pro[0], "Manufacture")
-
- for bom in frappe.get_all('BOM', fields=['item'], filters = {'with_operations': 1}):
- pro_order = make_wo_order_test_record(item=bom.item, qty=2,
- source_warehouse="Stores - WPL", wip_warehouse = "Work in Progress - WPL",
- fg_warehouse = "Stores - WPL", company = erpnext.get_default_company(),
- stock_uom = frappe.db.get_value('Item', bom.item, 'stock_uom'),
- planned_start_date = frappe.flags.current_date)
-
- # submit job card
- if random.random() < 0.4:
- submit_job_cards()
-
-def make_stock_entry_from_pro(pro_id, purpose):
- from erpnext.manufacturing.doctype.work_order.work_order import make_stock_entry
- from erpnext.stock.doctype.stock_entry.stock_entry import (
- DuplicateEntryForWorkOrderError,
- IncorrectValuationRateError,
- OperationsNotCompleteError,
- )
- from erpnext.stock.stock_ledger import NegativeStockError
-
- try:
- st = frappe.get_doc(make_stock_entry(pro_id, purpose))
- st.posting_date = frappe.flags.current_date
- st.fiscal_year = str(frappe.flags.current_date.year)
- for d in st.get("items"):
- d.cost_center = "Main - " + frappe.get_cached_value('Company', st.company, 'abbr')
- st.insert()
- frappe.db.commit()
- st.submit()
- frappe.db.commit()
- except (NegativeStockError, IncorrectValuationRateError, DuplicateEntryForWorkOrderError,
- OperationsNotCompleteError):
- frappe.db.rollback()
-
-def submit_job_cards():
- work_orders = frappe.get_all("Work Order", ["name", "creation"], {"docstatus": 1, "status": "Not Started"})
- work_order = random.choice(work_orders)
- # for work_order in work_orders:
- start_date = work_order.creation
- work_order = frappe.get_doc("Work Order", work_order.name)
- job = frappe.get_all("Job Card", ["name", "operation", "work_order"],
- {"docstatus": 0, "work_order": work_order.name})
-
- if not job: return
- job_map = {}
- for d in job:
- job_map[d.operation] = frappe.get_doc("Job Card", d.name)
-
- for operation in work_order.operations:
- job = job_map[operation.operation]
- job_time_log = frappe.new_doc("Job Card Time Log")
- job_time_log.from_time = start_date
- minutes = operation.get("time_in_mins")
- job_time_log.time_in_mins = random.randint(int(minutes/2), minutes)
- job_time_log.to_time = job_time_log.from_time + \
- timedelta(minutes=job_time_log.time_in_mins)
- job_time_log.parent = job.name
- job_time_log.parenttype = 'Job Card'
- job_time_log.parentfield = 'time_logs'
- job_time_log.completed_qty = work_order.qty
- job_time_log.save(ignore_permissions=True)
- job.time_logs.append(job_time_log)
- job.save(ignore_permissions=True)
- job.submit()
- start_date = job_time_log.to_time
diff --git a/erpnext/demo/user/projects.py b/erpnext/demo/user/projects.py
deleted file mode 100644
index 1203be4..0000000
--- a/erpnext/demo/user/projects.py
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import frappe
-from frappe.utils import flt
-from frappe.utils.make_random import get_random
-
-import erpnext
-from erpnext.demo.user.hr import make_sales_invoice_for_timesheet
-from erpnext.projects.doctype.timesheet.test_timesheet import make_timesheet
-
-
-def run_projects(current_date):
- frappe.set_user(frappe.db.get_global('demo_projects_user'))
- if frappe.db.get_global('demo_projects_user'):
- make_project(current_date)
- make_timesheet_for_projects(current_date)
- close_tasks(current_date)
-
-def make_timesheet_for_projects(current_date ):
- for data in frappe.get_all("Task", ["name", "project"], {"status": "Open", "exp_end_date": ("<", current_date)}):
- employee = get_random("Employee")
- ts = make_timesheet(employee, simulate = True, billable = 1, company = erpnext.get_default_company(),
- activity_type=get_random("Activity Type"), project=data.project, task =data.name)
-
- if flt(ts.total_billable_amount) > 0.0:
- make_sales_invoice_for_timesheet(ts.name)
- frappe.db.commit()
-
-def close_tasks(current_date):
- for task in frappe.get_all("Task", ["name"], {"status": "Open", "exp_end_date": ("<", current_date)}):
- task = frappe.get_doc("Task", task.name)
- task.status = "Completed"
- task.save()
-
-def make_project(current_date):
- if not frappe.db.exists('Project',
- "New Product Development " + current_date.strftime("%Y-%m-%d")):
- project = frappe.get_doc({
- "doctype": "Project",
- "project_name": "New Product Development " + current_date.strftime("%Y-%m-%d"),
- })
- project.insert()
diff --git a/erpnext/demo/user/purchase.py b/erpnext/demo/user/purchase.py
deleted file mode 100644
index 61f081c..0000000
--- a/erpnext/demo/user/purchase.py
+++ /dev/null
@@ -1,180 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import json
-import random
-
-import frappe
-from frappe.desk import query_report
-from frappe.utils.make_random import get_random, how_many
-
-import erpnext
-from erpnext.accounts.party import get_party_account_currency
-from erpnext.buying.doctype.request_for_quotation.request_for_quotation import (
- make_supplier_quotation_from_rfq,
-)
-from erpnext.exceptions import InvalidCurrency
-from erpnext.setup.utils import get_exchange_rate
-from erpnext.stock.doctype.material_request.material_request import make_request_for_quotation
-
-
-def work():
- frappe.set_user(frappe.db.get_global('demo_purchase_user'))
-
- if random.random() < 0.6:
- report = "Items To Be Requested"
- for row in query_report.run(report)["result"][:random.randint(1, 5)]:
- item_code, qty = row[0], abs(row[-1])
-
- mr = make_material_request(item_code, qty)
-
- if random.random() < 0.6:
- for mr in frappe.get_all('Material Request',
- filters={'material_request_type': 'Purchase', 'status': 'Open'},
- limit=random.randint(1,6)):
- if not frappe.get_all('Request for Quotation',
- filters={'material_request': mr.name}, limit=1):
- rfq = make_request_for_quotation(mr.name)
- rfq.transaction_date = frappe.flags.current_date
- add_suppliers(rfq)
- rfq.save()
- rfq.submit()
-
- # Make suppier quotation from RFQ against each supplier.
- if random.random() < 0.6:
- for rfq in frappe.get_all('Request for Quotation',
- filters={'status': 'Open'}, limit=random.randint(1, 6)):
- if not frappe.get_all('Supplier Quotation',
- filters={'request_for_quotation': rfq.name}, limit=1):
- rfq = frappe.get_doc('Request for Quotation', rfq.name)
-
- for supplier in rfq.suppliers:
- supplier_quotation = make_supplier_quotation_from_rfq(rfq.name, for_supplier=supplier.supplier)
- supplier_quotation.save()
- supplier_quotation.submit()
-
- # get supplier details
- supplier = get_random("Supplier")
-
- company_currency = frappe.get_cached_value('Company', erpnext.get_default_company(), "default_currency")
- party_account_currency = get_party_account_currency("Supplier", supplier, erpnext.get_default_company())
- if company_currency == party_account_currency:
- exchange_rate = 1
- else:
- exchange_rate = get_exchange_rate(party_account_currency, company_currency, args="for_buying")
-
- # make supplier quotations
- if random.random() < 0.5:
- from erpnext.stock.doctype.material_request.material_request import make_supplier_quotation
-
- report = "Material Requests for which Supplier Quotations are not created"
- for row in query_report.run(report)["result"][:random.randint(1, 3)]:
- if row[0] != "Total":
- sq = frappe.get_doc(make_supplier_quotation(row[0]))
- sq.transaction_date = frappe.flags.current_date
- sq.supplier = supplier
- sq.currency = party_account_currency or company_currency
- sq.conversion_rate = exchange_rate
- sq.insert()
- sq.submit()
- frappe.db.commit()
-
- # make purchase orders
- if random.random() < 0.5:
- from erpnext.stock.doctype.material_request.material_request import make_purchase_order
- report = "Requested Items To Be Ordered"
- for row in query_report.run(report)["result"][:how_many("Purchase Order")]:
- if row[0] != "Total":
- try:
- po = frappe.get_doc(make_purchase_order(row[0]))
- po.supplier = supplier
- po.currency = party_account_currency or company_currency
- po.conversion_rate = exchange_rate
- po.transaction_date = frappe.flags.current_date
- po.insert()
- po.submit()
- except Exception:
- pass
- else:
- frappe.db.commit()
-
- if random.random() < 0.5:
- make_subcontract()
-
-def make_material_request(item_code, qty):
- mr = frappe.new_doc("Material Request")
-
- variant_of = frappe.db.get_value('Item', item_code, 'variant_of') or item_code
-
- if frappe.db.get_value('BOM', {'item': variant_of, 'is_default': 1, 'is_active': 1}):
- mr.material_request_type = 'Manufacture'
- else:
- mr.material_request_type = "Purchase"
-
- mr.transaction_date = frappe.flags.current_date
- mr.schedule_date = frappe.utils.add_days(mr.transaction_date, 7)
-
- mr.append("items", {
- "doctype": "Material Request Item",
- "schedule_date": frappe.utils.add_days(mr.transaction_date, 7),
- "item_code": item_code,
- "qty": qty
- })
- mr.insert()
- mr.submit()
- return mr
-
-def add_suppliers(rfq):
- for i in range(2):
- supplier = get_random("Supplier")
- if supplier not in [d.supplier for d in rfq.get('suppliers')]:
- rfq.append("suppliers", { "supplier": supplier })
-
-def make_subcontract():
- from erpnext.buying.doctype.purchase_order.purchase_order import make_rm_stock_entry
- item_code = get_random("Item", {"is_sub_contracted_item": 1})
- if item_code:
- # make sub-contract PO
- po = frappe.new_doc("Purchase Order")
- po.is_subcontracted = "Yes"
- po.supplier = get_random("Supplier")
- po.transaction_date = frappe.flags.current_date # added
- po.schedule_date = frappe.utils.add_days(frappe.flags.current_date, 7)
-
- item_code = get_random("Item", {"is_sub_contracted_item": 1})
-
- po.append("items", {
- "item_code": item_code,
- "schedule_date": frappe.utils.add_days(frappe.flags.current_date, 7),
- "qty": random.randint(10, 30)
- })
- po.set_missing_values()
- try:
- po.insert()
- except InvalidCurrency:
- return
-
- po.submit()
-
- # make material request for
- make_material_request(po.items[0].item_code, po.items[0].qty)
-
- # transfer material for sub-contract
- rm_items = get_rm_item(po.items[0], po.supplied_items[0])
- stock_entry = frappe.get_doc(make_rm_stock_entry(po.name, json.dumps([rm_items])))
- stock_entry.from_warehouse = "Stores - WPL"
- stock_entry.to_warehouse = "Supplier - WPL"
- stock_entry.insert()
-
-def get_rm_item(items, supplied_items):
- return {
- "item_code": items.get("item_code"),
- "rm_item_code": supplied_items.get("rm_item_code"),
- "item_name": supplied_items.get("rm_item_code"),
- "qty": supplied_items.get("required_qty") + random.randint(3,10),
- "amount": supplied_items.get("amount"),
- "warehouse": supplied_items.get("reserve_warehouse"),
- "rate": supplied_items.get("rate"),
- "stock_uom": supplied_items.get("stock_uom")
- }
diff --git a/erpnext/demo/user/sales.py b/erpnext/demo/user/sales.py
deleted file mode 100644
index ef6e4c4..0000000
--- a/erpnext/demo/user/sales.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import random
-
-import frappe
-from frappe.utils import flt
-from frappe.utils.make_random import add_random_children, get_random
-
-import erpnext
-from erpnext.accounts.doctype.payment_request.payment_request import (
- make_payment_entry,
- make_payment_request,
-)
-from erpnext.accounts.party import get_party_account_currency
-from erpnext.setup.utils import get_exchange_rate
-
-
-def work(domain="Manufacturing"):
- frappe.set_user(frappe.db.get_global('demo_sales_user_2'))
-
- for i in range(random.randint(1,7)):
- if random.random() < 0.5:
- make_opportunity(domain)
-
- for i in range(random.randint(1,3)):
- if random.random() < 0.5:
- make_quotation(domain)
-
- try:
- lost_reason = frappe.get_doc({
- "doctype": "Opportunity Lost Reason",
- "lost_reason": "Did not ask"
- })
- lost_reason.save(ignore_permissions=True)
- except frappe.exceptions.DuplicateEntryError:
- pass
-
- # lost quotations / inquiries
- if random.random() < 0.3:
- for i in range(random.randint(1,3)):
- quotation = get_random('Quotation', doc=True)
- if quotation and quotation.status == 'Submitted':
- quotation.declare_order_lost([{'lost_reason': 'Did not ask'}])
-
- for i in range(random.randint(1,3)):
- opportunity = get_random('Opportunity', doc=True)
- if opportunity and opportunity.status in ('Open', 'Replied'):
- opportunity.declare_enquiry_lost([{'lost_reason': 'Did not ask'}])
-
- for i in range(random.randint(1,3)):
- if random.random() < 0.6:
- make_sales_order()
-
- if random.random() < 0.5:
- #make payment request against Sales Order
- sales_order_name = get_random("Sales Order", filters={"docstatus": 1})
- try:
- if sales_order_name:
- so = frappe.get_doc("Sales Order", sales_order_name)
- if flt(so.per_billed) != 100:
- payment_request = make_payment_request(dt="Sales Order", dn=so.name, recipient_id=so.contact_email,
- submit_doc=True, mute_email=True, use_dummy_message=True)
-
- payment_entry = frappe.get_doc(make_payment_entry(payment_request.name))
- payment_entry.posting_date = frappe.flags.current_date
- payment_entry.submit()
- except Exception:
- pass
-
-def make_opportunity(domain):
- b = frappe.get_doc({
- "doctype": "Opportunity",
- "opportunity_from": "Customer",
- "party_name": frappe.get_value("Customer", get_random("Customer"), 'name'),
- "opportunity_type": "Sales",
- "with_items": 1,
- "transaction_date": frappe.flags.current_date,
- })
-
- add_random_children(b, "items", rows=4, randomize = {
- "qty": (1, 5),
- "item_code": ("Item", {"has_variants": 0, "is_fixed_asset": 0, "domain": domain})
- }, unique="item_code")
-
- b.insert()
- frappe.db.commit()
-
-def make_quotation(domain):
- # get open opportunites
- opportunity = get_random("Opportunity", {"status": "Open", "with_items": 1})
-
- if opportunity:
- from erpnext.crm.doctype.opportunity.opportunity import make_quotation
- qtn = frappe.get_doc(make_quotation(opportunity))
- qtn.insert()
- frappe.db.commit()
- qtn.submit()
- frappe.db.commit()
- else:
- # make new directly
-
- # get customer, currency and exchange_rate
- customer = get_random("Customer")
-
- company_currency = frappe.get_cached_value('Company', erpnext.get_default_company(), "default_currency")
- party_account_currency = get_party_account_currency("Customer", customer, erpnext.get_default_company())
- if company_currency == party_account_currency:
- exchange_rate = 1
- else:
- exchange_rate = get_exchange_rate(party_account_currency, company_currency, args="for_selling")
-
- qtn = frappe.get_doc({
- "creation": frappe.flags.current_date,
- "doctype": "Quotation",
- "quotation_to": "Customer",
- "party_name": customer,
- "currency": party_account_currency or company_currency,
- "conversion_rate": exchange_rate,
- "order_type": "Sales",
- "transaction_date": frappe.flags.current_date,
- })
-
- add_random_children(qtn, "items", rows=3, randomize = {
- "qty": (1, 5),
- "item_code": ("Item", {"has_variants": "0", "is_fixed_asset": 0, "domain": domain})
- }, unique="item_code")
-
- qtn.insert()
- frappe.db.commit()
- qtn.submit()
- frappe.db.commit()
-
-def make_sales_order():
- q = get_random("Quotation", {"status": "Submitted"})
- if q:
- from erpnext.selling.doctype.quotation.quotation import make_sales_order as mso
- so = frappe.get_doc(mso(q))
- so.transaction_date = frappe.flags.current_date
- so.delivery_date = frappe.utils.add_days(frappe.flags.current_date, 10)
- so.insert()
- frappe.db.commit()
- so.submit()
- frappe.db.commit()
diff --git a/erpnext/demo/user/stock.py b/erpnext/demo/user/stock.py
deleted file mode 100644
index de37975..0000000
--- a/erpnext/demo/user/stock.py
+++ /dev/null
@@ -1,138 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-
-
-import random
-
-import frappe
-from frappe.desk import query_report
-
-import erpnext
-from erpnext.stock.doctype.batch.batch import UnableToSelectBatchError
-from erpnext.stock.doctype.delivery_note.delivery_note import make_sales_return
-from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_return
-from erpnext.stock.doctype.serial_no.serial_no import SerialNoQtyError, SerialNoRequiredError
-from erpnext.stock.stock_ledger import NegativeStockError
-
-
-def work():
- frappe.set_user(frappe.db.get_global('demo_manufacturing_user'))
-
- make_purchase_receipt()
- make_delivery_note()
- make_stock_reconciliation()
- submit_draft_stock_entries()
- make_sales_return_records()
- make_purchase_return_records()
-
-def make_purchase_receipt():
- if random.random() < 0.6:
- from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_receipt
- report = "Purchase Order Items To Be Received"
- po_list =list(set([r[0] for r in query_report.run(report)["result"] if r[0]!="Total"]))[:random.randint(1, 10)]
- for po in po_list:
- pr = frappe.get_doc(make_purchase_receipt(po))
-
- if pr.is_subcontracted=="Yes":
- pr.supplier_warehouse = "Supplier - WPL"
-
- pr.posting_date = frappe.flags.current_date
- pr.insert()
- try:
- pr.submit()
- except NegativeStockError:
- print('Negative stock for {0}'.format(po))
- pass
- frappe.db.commit()
-
-def make_delivery_note():
- # make purchase requests
-
- # make delivery notes (if possible)
- if random.random() < 0.6:
- from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note
- report = "Ordered Items To Be Delivered"
- for so in list(set([r[0] for r in query_report.run(report)["result"]
- if r[0]!="Total"]))[:random.randint(1, 3)]:
- dn = frappe.get_doc(make_delivery_note(so))
- dn.posting_date = frappe.flags.current_date
- for d in dn.get("items"):
- if not d.expense_account:
- d.expense_account = ("Cost of Goods Sold - {0}".format(
- frappe.get_cached_value('Company', dn.company, 'abbr')))
-
- try:
- dn.insert()
- dn.submit()
- frappe.db.commit()
- except (NegativeStockError, SerialNoRequiredError, SerialNoQtyError, UnableToSelectBatchError):
- frappe.db.rollback()
-
-def make_stock_reconciliation():
- # random set some items as damaged
- from erpnext.stock.doctype.stock_reconciliation.stock_reconciliation import (
- EmptyStockReconciliationItemsError,
- OpeningEntryAccountError,
- )
-
- if random.random() < 0.4:
- stock_reco = frappe.new_doc("Stock Reconciliation")
- stock_reco.posting_date = frappe.flags.current_date
- stock_reco.company = erpnext.get_default_company()
- stock_reco.get_items_for("Stores - WPL")
- if stock_reco.items:
- for item in stock_reco.items:
- if item.qty:
- item.qty = item.qty - round(random.randint(1, item.qty))
- try:
- stock_reco.insert(ignore_permissions=True, ignore_mandatory=True)
- stock_reco.submit()
- frappe.db.commit()
- except OpeningEntryAccountError:
- frappe.db.rollback()
- except EmptyStockReconciliationItemsError:
- frappe.db.rollback()
-
-def submit_draft_stock_entries():
- from erpnext.stock.doctype.stock_entry.stock_entry import (
- DuplicateEntryForWorkOrderError,
- IncorrectValuationRateError,
- OperationsNotCompleteError,
- )
-
- # try posting older drafts (if exists)
- frappe.db.commit()
- for st in frappe.db.get_values("Stock Entry", {"docstatus":0}, "name"):
- try:
- ste = frappe.get_doc("Stock Entry", st[0])
- ste.posting_date = frappe.flags.current_date
- ste.save()
- ste.submit()
- frappe.db.commit()
- except (NegativeStockError, IncorrectValuationRateError, DuplicateEntryForWorkOrderError,
- OperationsNotCompleteError):
- frappe.db.rollback()
-
-def make_sales_return_records():
- if random.random() < 0.1:
- for data in frappe.get_all('Delivery Note', fields=["name"], filters={"docstatus": 1}):
- if random.random() < 0.1:
- try:
- dn = make_sales_return(data.name)
- dn.insert()
- dn.submit()
- frappe.db.commit()
- except Exception:
- frappe.db.rollback()
-
-def make_purchase_return_records():
- if random.random() < 0.1:
- for data in frappe.get_all('Purchase Receipt', fields=["name"], filters={"docstatus": 1}):
- if random.random() < 0.1:
- try:
- pr = make_purchase_return(data.name)
- pr.insert()
- pr.submit()
- frappe.db.commit()
- except Exception:
- frappe.db.rollback()
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
index de8f506..526b6aa 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
@@ -701,7 +701,7 @@
update_response_and_resolution_metrics(parent, for_resolution)
update_agreement_status(parent, for_resolution)
- parent.save()
+ parent.save(ignore_permissions=True)
def reset_expected_response_and_resolution(doc):