diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
index be425ec..e7fa354 100644
--- a/.git-blame-ignore-revs
+++ b/.git-blame-ignore-revs
@@ -8,5 +8,8 @@
 #
 # $ git config blame.ignoreRevsFile .git-blame-ignore-revs
 
+# Replace use of Class.extend with native JS class
+1fe891b287a1b3f225d29ee3d07e7b1824aba9e7
+
 # This commit just changes spaces to tabs for indentation in some files
 5f473611bd6ed57703716244a054d3fb5ba9cd23
diff --git a/.github/helper/documentation.py b/.github/helper/documentation.py
index 9cc4663..b4a4ba1 100644
--- a/.github/helper/documentation.py
+++ b/.github/helper/documentation.py
@@ -32,11 +32,15 @@
 
 	if response.ok:
 		payload = response.json()
-		title = payload.get("title", "").lower()
+		title = payload.get("title", "").lower().strip()
 		head_sha = payload.get("head", {}).get("sha")
 		body = payload.get("body", "").lower()
 
-		if title.startswith("feat") and head_sha and "no-docs" not in body:
+		if (title.startswith("feat")
+			and head_sha
+			and "no-docs" not in body
+			and "backport" not in body
+		):
 			if docs_link_exists(body):
 				print("Documentation Link Found. You're Awesome! 🎉")
 
diff --git a/.github/helper/install.sh b/.github/helper/install.sh
index a6a6069..455ab86 100644
--- a/.github/helper/install.sh
+++ b/.github/helper/install.sh
@@ -44,3 +44,4 @@
 bench get-app erpnext "${GITHUB_WORKSPACE}"
 bench start &> bench_run_logs.txt &
 bench --site test_site reinstall --yes
+bench build --app frappe
diff --git a/.github/stale.yml b/.github/stale.yml
index dabc66eb..9322ae8 100644
--- a/.github/stale.yml
+++ b/.github/stale.yml
@@ -1,11 +1,11 @@
 # Configuration for probot-stale - https://github.com/probot/stale
 
 # Number of days of inactivity before an Issue or Pull Request becomes stale
-daysUntilStale: 30
+daysUntilStale: 15
 
 # Number of days of inactivity before a stale Issue or Pull Request is closed.
 # Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
-daysUntilClose: 7
+daysUntilClose: 3
 
 # Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
 exemptLabels:
diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml
index 1d180f2..bd62227 100644
--- a/.github/workflows/backport.yml
+++ b/.github/workflows/backport.yml
@@ -8,6 +8,7 @@
 jobs:
   main:
     runs-on: ubuntu-latest
+    timeout-minutes: 60
     steps:
       - name: Checkout Actions
         uses: actions/checkout@v2
diff --git a/.github/workflows/docs-checker.yml b/.github/workflows/docs-checker.yml
index cdf676d..db46c56 100644
--- a/.github/workflows/docs-checker.yml
+++ b/.github/workflows/docs-checker.yml
@@ -6,6 +6,7 @@
 jobs:
   build:
     runs-on: ubuntu-latest
+    timeout-minutes: 10
 
     steps:
       - name: 'Setup Environment'
diff --git a/.github/workflows/patch.yml b/.github/workflows/patch.yml
index b96a3d6..72d4028 100644
--- a/.github/workflows/patch.yml
+++ b/.github/workflows/patch.yml
@@ -1,10 +1,17 @@
 name: Patch
 
-on: [pull_request, workflow_dispatch]
+on:
+  pull_request:
+    paths-ignore:
+      - '**.js'
+      - '**.md'
+  workflow_dispatch:
+
 
 jobs:
   test:
     runs-on: ubuntu-18.04
+    timeout-minutes: 60
 
     name: Patch Test
 
diff --git a/.github/workflows/server-tests.yml b/.github/workflows/server-tests.yml
index 92685e2..3a1ecd3 100644
--- a/.github/workflows/server-tests.yml
+++ b/.github/workflows/server-tests.yml
@@ -1,10 +1,21 @@
 name: Server
 
-on: [pull_request, workflow_dispatch]
+on:
+  pull_request:
+    paths-ignore:
+      - '**.js'
+      - '**.md'
+  workflow_dispatch:
+  push:
+    branches: [ develop ]
+    paths-ignore:
+      - '**.js'
+      - '**.md'
 
 jobs:
   test:
     runs-on: ubuntu-18.04
+    timeout-minutes: 60
 
     strategy:
       fail-fast: false
@@ -87,6 +98,7 @@
           coveralls
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
           COVERALLS_FLAG_NAME: run-${{ matrix.container }}
           COVERALLS_SERVICE_NAME: ${{ github.event_name == 'pull_request' && 'github' || 'github-actions' }}
           COVERALLS_PARALLEL: true
diff --git a/.github/workflows/ui-tests.yml b/.github/workflows/ui-tests.yml
index 0f13e65..0be9bd8 100644
--- a/.github/workflows/ui-tests.yml
+++ b/.github/workflows/ui-tests.yml
@@ -2,11 +2,14 @@
 
 on:
   pull_request:
+    paths-ignore:
+      - '**.md'
   workflow_dispatch:
 
 jobs:
   test:
     runs-on: ubuntu-18.04
+    timeout-minutes: 60
 
     strategy:
       fail-fast: false
diff --git a/.gitignore b/.gitignore
index 652fbdc..89f5626 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@
 .wnf-lang-status
 *.egg-info
 dist/
+erpnext/public/dist
 erpnext/docs/current
 *.swp
 *.swo
@@ -15,3 +16,4 @@
 .idea/
 .vscode/
 node_modules/
+.backportrc.json
\ No newline at end of file
diff --git a/README.md b/README.md
index 0a556f5..c6fc251 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
         <p>ERP made simple</p>
     </p>
 
-[![CI](https://github.com/frappe/erpnext/actions/workflows/ci-tests.yml/badge.svg?branch=develop)](https://github.com/frappe/erpnext/actions/workflows/ci-tests.yml)
+[![CI](https://github.com/frappe/erpnext/actions/workflows/server-tests.yml/badge.svg?branch=develop)](https://github.com/frappe/erpnext/actions/workflows/server-tests.yml)
 [![Open Source Helpers](https://www.codetriage.com/frappe/erpnext/badges/users.svg)](https://www.codetriage.com/frappe/erpnext)
 [![Coverage Status](https://coveralls.io/repos/github/frappe/erpnext/badge.svg?branch=develop)](https://coveralls.io/github/frappe/erpnext?branch=develop)
 
diff --git a/cypress.json b/cypress.json
index afcd657..02b10d8 100644
--- a/cypress.json
+++ b/cypress.json
@@ -1,11 +1,11 @@
 {
-    "baseUrl": "http://test_site:8000",
-    "projectId": "da59y9",
-    "adminPassword": "admin",
-    "defaultCommandTimeout": 20000,
-    "pageLoadTimeout": 15000,
-    "retries": {
-      "runMode": 2,
-      "openMode": 2
-    }
-}
\ No newline at end of file
+  "baseUrl": "http://test_site:8000/",
+  "projectId": "da59y9",
+  "adminPassword": "admin",
+  "defaultCommandTimeout": 20000,
+  "pageLoadTimeout": 15000,
+  "retries": {
+    "runMode": 2,
+    "openMode": 2
+  }
+}
diff --git a/cypress/integration/test_item.js b/cypress/integration/test_item.js
new file mode 100644
index 0000000..fcb7533
--- /dev/null
+++ b/cypress/integration/test_item.js
@@ -0,0 +1,44 @@
+describe("Test Item Dashboard", () => {
+	before(() => {
+		cy.login();
+		cy.visit("/app/item");
+		cy.insert_doc(
+			"Item",
+			{
+				item_code: "e2e_test_item",
+				item_group: "All Item Groups",
+				opening_stock: 42,
+				valuation_rate: 100,
+			},
+			true
+		);
+		cy.go_to_doc("item", "e2e_test_item");
+	});
+
+	it("should show dashboard with correct data on first load", () => {
+		cy.get(".stock-levels").contains("Stock Levels").should("be.visible");
+		cy.get(".stock-levels").contains("e2e_test_item").should("exist");
+
+		// reserved and available qty
+		cy.get(".stock-levels .inline-graph-count")
+			.eq(0)
+			.contains("0")
+			.should("exist");
+		cy.get(".stock-levels .inline-graph-count")
+			.eq(1)
+			.contains("42")
+			.should("exist");
+	});
+
+	it("should persist on field change", () => {
+		cy.get('input[data-fieldname="disabled"]').check();
+		cy.wait(500);
+		cy.get(".stock-levels").contains("Stock Levels").should("be.visible");
+		cy.get(".stock-levels").should("have.length", 1);
+	});
+
+	it("should persist on reload", () => {
+		cy.reload();
+		cy.get(".stock-levels").contains("Stock Levels").should("be.visible");
+	});
+});
diff --git a/cypress/integration/test_organizational_chart_desktop.js b/cypress/integration/test_organizational_chart_desktop.js
index fb46bbb..820a23a 100644
--- a/cypress/integration/test_organizational_chart_desktop.js
+++ b/cypress/integration/test_organizational_chart_desktop.js
@@ -3,6 +3,8 @@
 		cy.login();
 		cy.visit('/app/website');
 		cy.awesomebar('Organizational Chart');
+		cy.wait(500);
+		cy.url().should('include', '/organizational-chart');
 
 		cy.window().its('frappe.csrf_token').then(csrf_token => {
 			return cy.request({
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json
index da1d10d..d60c559 100644
--- a/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general.json
@@ -1,1609 +1,1609 @@
 {
-    "country_code": "fr", 
-    "name": "France - Plan Comptable General", 
+    "country_code": "fr",
+    "name": "France - Plan Comptable General",
     "tree": {
         "1-Comptes de Capitaux": {
             "10-Capital et R\u00e9serves": {
                 "101-Capital": {
-                    "1011-Capital souscrit - non appel\u00e9": {}, 
-                    "1012-Capital souscrit - appel\u00e9, non vers\u00e9": {}, 
+                    "1011-Capital souscrit - non appel\u00e9": {},
+                    "1012-Capital souscrit - appel\u00e9, non vers\u00e9": {},
                     "1013-Capital souscrit - appel\u00e9, vers\u00e9": {
-                        "10131-Capital non amorti": {}, 
+                        "10131-Capital non amorti": {},
                         "10132-Capital amorti": {}
-                    }, 
+                    },
                     "1018-Capital souscrit soumis \u00e0 des r\u00e9glementations particuli\u00e8res": {}
-                }, 
-                "102-Fonds fiduciaires": {}, 
+                },
+                "102-Fonds fiduciaires": {},
                 "104-Primes li\u00e9es au capital social": {
-                    "1041-Primes d'\u00e9mission": {}, 
-                    "1042-Primes de fusion": {}, 
-                    "1043-Primes d'apport": {}, 
-                    "1044-Primes de conversion d'obligations en actions": {}, 
+                    "1041-Primes d'\u00e9mission": {},
+                    "1042-Primes de fusion": {},
+                    "1043-Primes d'apport": {},
+                    "1044-Primes de conversion d'obligations en actions": {},
                     "1045-Bons de souscription d'actions": {}
-                }, 
+                },
                 "105-Ecarts de r\u00e9\u00e9valuation": {
-                    "1051-R\u00e9serve sp\u00e9ciale de r\u00e9\u00e9valuation": {}, 
-                    "1052-Ecart de r\u00e9\u00e9valuation libre": {}, 
-                    "1053-R\u00e9serve de r\u00e9\u00e9valuation": {}, 
-                    "1055-Ecarts de r\u00e9\u00e9valuation (autres op\u00e9rations l\u00e9gales)": {}, 
-                    "1057-Autres \u00e9carts de r\u00e9\u00e9valuation en France": {}, 
+                    "1051-R\u00e9serve sp\u00e9ciale de r\u00e9\u00e9valuation": {},
+                    "1052-Ecart de r\u00e9\u00e9valuation libre": {},
+                    "1053-R\u00e9serve de r\u00e9\u00e9valuation": {},
+                    "1055-Ecarts de r\u00e9\u00e9valuation (autres op\u00e9rations l\u00e9gales)": {},
+                    "1057-Autres \u00e9carts de r\u00e9\u00e9valuation en France": {},
                     "1058-Autres \u00e9carts de r\u00e9\u00e9valuation \u00e0 l'\u00e9tranger": {}
-                }, 
+                },
                 "106-R\u00e9serves": {
                     "1061-R\u00e9serve l\u00e9gale": {
-                        "10611-R\u00e9serve l\u00e9gale proprement dite": {}, 
+                        "10611-R\u00e9serve l\u00e9gale proprement dite": {},
                         "10612-Plus-values nettes \u00e0 long terme": {}
-                    }, 
-                    "1062-R\u00e9serves indisponibles": {}, 
-                    "1063-R\u00e9serves statutaires ou contractuelles": {}, 
+                    },
+                    "1062-R\u00e9serves indisponibles": {},
+                    "1063-R\u00e9serves statutaires ou contractuelles": {},
                     "1064-R\u00e9serves r\u00e9glement\u00e9es": {
-                        "10641-Plus-values nettes \u00e0 long terme": {}, 
-                        "10643-R\u00e9serves cons\u00e9cutives \u00e0 l'octroi de subventions d'investissement": {}, 
+                        "10641-Plus-values nettes \u00e0 long terme": {},
+                        "10643-R\u00e9serves cons\u00e9cutives \u00e0 l'octroi de subventions d'investissement": {},
                         "10648-Autres r\u00e9serves r\u00e9glement\u00e9es": {}
-                    }, 
+                    },
                     "1068-Autres r\u00e9serves": {
-                        "10681-R\u00e9serve de propre assureur": {}, 
+                        "10681-R\u00e9serve de propre assureur": {},
                         "10688-R\u00e9serves diverses": {}
                     }
-                }, 
-                "107-Ecarts d'\u00e9quivalence": {}, 
-                "108-Compte de l'exploitant": {}, 
+                },
+                "107-Ecarts d'\u00e9quivalence": {},
+                "108-Compte de l'exploitant": {},
                 "109-Actionnaires: Capital souscrit - non appel\u00e9": {}
-            }, 
+            },
             "11-Report \u00e0 Nouveau": {
-                "110-Report \u00e0 nouveau (solde cr\u00e9diteur)": {}, 
+                "110-Report \u00e0 nouveau (solde cr\u00e9diteur)": {},
                 "119-Report \u00e0 nouveau (solde d\u00e9biteur)": {}
-            }, 
+            },
             "12-R\u00e9sultat de l'Exercice": {
-                "120-R\u00e9sultat de l'exercice (b\u00e9n\u00e9fice)": {}, 
+                "120-R\u00e9sultat de l'exercice (b\u00e9n\u00e9fice)": {},
                 "129-R\u00e9sultat de l'exercice (perte)": {}
-            }, 
+            },
             "13-Subventions d'Investissement": {
                 "131-Subventions d'\u00e9quipement": {
-                    "1311-Etat": {}, 
-                    "1312-R\u00e9gions": {}, 
-                    "1313-D\u00e9partements": {}, 
-                    "1314-Communes": {}, 
-                    "1315-Collectivit\u00e9s publiques": {}, 
-                    "1316-Entreprises publiques": {}, 
-                    "1317-Entreprises et organismes priv\u00e9s": {}, 
+                    "1311-Etat": {},
+                    "1312-R\u00e9gions": {},
+                    "1313-D\u00e9partements": {},
+                    "1314-Communes": {},
+                    "1315-Collectivit\u00e9s publiques": {},
+                    "1316-Entreprises publiques": {},
+                    "1317-Entreprises et organismes priv\u00e9s": {},
                     "1318-Autres": {}
-                }, 
-                "138-Autres subventions d'investissement (m\u00eame ventilation que celle du compte 131)": {}, 
+                },
+                "138-Autres subventions d'investissement (m\u00eame ventilation que celle du compte 131)": {},
                 "139-Subventions d'investissement inscrites au compte de r\u00e9sultat": {
                     "1391-Subventions d'\u00e9quipement": {
-                        "13911-Subventions d'\u00e9quipement": {
-                            "13911-Etat": {}, 
-                            "13912-R\u00e9gions": {}, 
-                            "13913-D\u00e9partements": {}, 
-                            "13914-Communes": {}, 
-                            "13915-Collectivit\u00e9s publiques": {}, 
-                            "13916-Entreprises publiques": {}, 
-                            "13917-Entreprises et organismes priv\u00e9s": {}, 
-                            "13918-Autres": {}
-                        }
-                    }, 
+                        "13911-Etat": {},
+                        "13912-R\u00e9gions": {},
+                        "13913-D\u00e9partements": {},
+                        "13914-Communes": {},
+                        "13915-Collectivit\u00e9s publiques": {},
+                        "13916-Entreprises publiques": {},
+                        "13917-Entreprises et organismes priv\u00e9s": {},
+                        "13918-Autres": {}
+                    },
                     "1398-Autres subventions d'investissement (m\u00eame ventilation que celle du compte 1391)": {}
                 }
-            }, 
+            },
             "14-Provisions R\u00e9glement\u00e9es": {
                 "142-Provisions r\u00e9glement\u00e9es relative aux immobilisations": {
-                    "1423-Provisions pour reconstitution des gisements miniers et p\u00e9troliers": {}, 
+                    "1423-Provisions pour reconstitution des gisements miniers et p\u00e9troliers": {},
                     "1424-Provisions pour investissement (participation des salari\u00e9s)": {}
-                }, 
+                },
                 "143-Provisions r\u00e9glement\u00e9es relatives aux stocks": {
-                    "1431-Hausse des prix": {}, 
+                    "1431-Hausse des prix": {},
                     "1432-Fluctuation des cours": {}
-                }, 
-                "144-Provisions r\u00e9glement\u00e9es relatives aux autres \u00e9l\u00e9ments de l'actif": {}, 
-                "145-Amortissements d\u00e9rogatoires": {}, 
-                "146-Provision sp\u00e9ciale de r\u00e9\u00e9valuation": {}, 
-                "147-Plus-values r\u00e9investies": {}, 
+                },
+                "144-Provisions r\u00e9glement\u00e9es relatives aux autres \u00e9l\u00e9ments de l'actif": {},
+                "145-Amortissements d\u00e9rogatoires": {},
+                "146-Provision sp\u00e9ciale de r\u00e9\u00e9valuation": {},
+                "147-Plus-values r\u00e9investies": {},
                 "148-Autres provisions r\u00e9glement\u00e9es": {}
-            }, 
+            },
             "15-Provisions": {
                 "151-Provisions pour risques": {
-                    "1511-Provisions pour litiges": {}, 
-                    "1512-Provisions pour garanties donn\u00e9es aux clients": {}, 
-                    "1513-Provisions pour pertes sur march\u00e9s \u00e0 terme": {}, 
-                    "1514-Provisions pour amendes et p\u00e9nalit\u00e9s": {}, 
-                    "1515-Provisions pour pertes de change": {}, 
-                    "1516-Provisions pour pertes sur contrats": {}, 
+                    "1511-Provisions pour litiges": {},
+                    "1512-Provisions pour garanties donn\u00e9es aux clients": {},
+                    "1513-Provisions pour pertes sur march\u00e9s \u00e0 terme": {},
+                    "1514-Provisions pour amendes et p\u00e9nalit\u00e9s": {},
+                    "1515-Provisions pour pertes de change": {},
+                    "1516-Provisions pour pertes sur contrats": {},
                     "1518-Autres provisions pour risques": {}
-                }, 
-                "153-Provisions pour pensions et obligations similaires": {}, 
-                "154-Provisions pour restructurations": {}, 
-                "155-Provisions pour imp\u00f4ts": {}, 
-                "156-Provisions pour renouvellement des immobilisations (entreprises concessionnaires) ": {}, 
+                },
+                "153-Provisions pour pensions et obligations similaires": {},
+                "154-Provisions pour restructurations": {},
+                "155-Provisions pour imp\u00f4ts": {},
+                "156-Provisions pour renouvellement des immobilisations (entreprises concessionnaires) ": {},
                 "157-Provisions pour charges \u00e0 r\u00e9partir sur plusieurs exercices": {
                     "1572-Provisions pour gros entretien ou grandes r\u00e9visions": {}
-                }, 
+                },
                 "158-Autres provisions pour charges": {
                     "1581-Provisions pour remises en \u00e9tat": {}
                 }
-            }, 
+            },
             "16-Emprunts et Dettes Assimil\u00e9es": {
-                "161-Emprunts obligataires convertibles": {}, 
-                "162-Obligations repr\u00e9sentatives de passifs nets remis en fiducie": {}, 
-                "163-Autres emprunts obligataires": {}, 
-                "164-Emprunts aupr\u00e8s des \u00e9tablissements de cr\u00e9dit": {}, 
+                "161-Emprunts obligataires convertibles": {},
+                "162-Obligations repr\u00e9sentatives de passifs nets remis en fiducie": {},
+                "163-Autres emprunts obligataires": {},
+                "164-Emprunts aupr\u00e8s des \u00e9tablissements de cr\u00e9dit": {},
                 "165-D\u00e9p\u00f4ts et cautionnements re\u00e7us": {
-                    "1651-D\u00e9p\u00f4ts": {}, 
+                    "1651-D\u00e9p\u00f4ts": {},
                     "1655-Cautionnements": {}
-                }, 
+                },
                 "166-Participation des salari\u00e9s aux r\u00e9sultats": {
-                    "1661-Comptes bloqu\u00e9s": {}, 
+                    "1661-Comptes bloqu\u00e9s": {},
                     "1662-Fonds de participation": {}
-                }, 
+                },
                 "167-Emprunts et dettes assortis de conditions particuli\u00e8res": {
-                    "1671-Emissions de titres participatifs": {}, 
-                    "1674-Avances conditionn\u00e9es de l'Etat": {}, 
+                    "1671-Emissions de titres participatifs": {},
+                    "1674-Avances conditionn\u00e9es de l'Etat": {},
                     "1675-Emprunts participatifs": {}
-                }, 
+                },
                 "168-Autres emprunts et dettes assimil\u00e9es": {
-                    "1681-Autres emprunts": {}, 
-                    "1685-Rentes viag\u00e8res capitalis\u00e9es": {}, 
-                    "1687-Autres dettes": {}, 
+                    "1681-Autres emprunts": {},
+                    "1685-Rentes viag\u00e8res capitalis\u00e9es": {},
+                    "1687-Autres dettes": {},
                     "1688-Int\u00e9r\u00eats courus": {
-                        "16881-Int\u00e9r\u00eats courus sur emprunts obligataires convertibles": {}, 
-                        "16883-Int\u00e9r\u00eats courus sur autres emprunts obligataires": {}, 
-                        "16884-Int\u00e9r\u00eats courus sur emprunts aupr\u00e8s des \u00e9tablissements de cr\u00e9dit": {}, 
-                        "16885-Int\u00e9r\u00eats courus sur d\u00e9p\u00f4ts et cautionnements re\u00e7us": {}, 
-                        "16886-Int\u00e9r\u00eats courus sur participation des salari\u00e9s aux r\u00e9sultats": {}, 
-                        "16887-Int\u00e9r\u00eats courus sur emprunts et dettes assortis de conditions particuli\u00e8res": {}, 
+                        "16881-Int\u00e9r\u00eats courus sur emprunts obligataires convertibles": {},
+                        "16883-Int\u00e9r\u00eats courus sur autres emprunts obligataires": {},
+                        "16884-Int\u00e9r\u00eats courus sur emprunts aupr\u00e8s des \u00e9tablissements de cr\u00e9dit": {},
+                        "16885-Int\u00e9r\u00eats courus sur d\u00e9p\u00f4ts et cautionnements re\u00e7us": {},
+                        "16886-Int\u00e9r\u00eats courus sur participation des salari\u00e9s aux r\u00e9sultats": {},
+                        "16887-Int\u00e9r\u00eats courus sur emprunts et dettes assortis de conditions particuli\u00e8res": {},
                         "16888-Int\u00e9r\u00eats courus sur autres emprunts et dettes assimil\u00e9es": {}
-                    }, 
+                    },
                     "169-Primes de remboursement des obligations": {}
                 }
-            }, 
+            },
             "17-Dettes Rattach\u00e9es \u00e0 des Participations": {
-                "171-Dettes rattach\u00e9es \u00e0 des participations (groupe)": {}, 
-                "174-Dettes rattach\u00e9es \u00e0 des participations (hors groupe)": {}, 
+                "171-Dettes rattach\u00e9es \u00e0 des participations (groupe)": {},
+                "174-Dettes rattach\u00e9es \u00e0 des participations (hors groupe)": {},
                 "178-Dettes rattach\u00e9es \u00e0 des soci\u00e9t\u00e9s en participation": {
-                    "1781-Principal": {}, 
+                    "1781-Principal": {},
                     "1788-Int\u00e9r\u00eats courus": {}
                 }
-            }, 
+            },
             "18-Comptes de liaison des \u00e9tablisssements et soci\u00e9t\u00e9s en participation": {
-                "181-Comptes de liaison des \u00e9tablissements": {}, 
-                "186-Biens et prestations de services \u00e9chang\u00e9s entre \u00e9tablissements (charges)": {}, 
-                "187-Biens et prestations de services \u00e9chang\u00e9s entre \u00e9tablissements (produits)": {}, 
+                "181-Comptes de liaison des \u00e9tablissements": {},
+                "186-Biens et prestations de services \u00e9chang\u00e9s entre \u00e9tablissements (charges)": {},
+                "187-Biens et prestations de services \u00e9chang\u00e9s entre \u00e9tablissements (produits)": {},
                 "188-Comptes de liaison des soci\u00e9t\u00e9s en participation": {}
-            }, 
+            },
             "root_type": "Equity"
-        }, 
+        },
         "2-Comptes d'Immobilisations": {
             "20-Immobilisations incorporelles": {
                 "201-Frais \u00e9tablissement": {
-                    "2011-Frais de constitution": {}, 
+                    "2011-Frais de constitution": {},
                     "2012-Frais de premier \u00e9tablissement": {
-                        "20121-Frais de prospection": {}, 
+                        "20121-Frais de prospection": {},
                         "20122-Frais de publicit\u00e9": {}
-                    }, 
+                    },
                     "2013-Frais d'augmentation de capital et d'op\u00e9rations diverses (fusions, scissions, transformations)": {}
-                }, 
-                "203-Frais de recherche et de d\u00e9veloppement": {}, 
-                "205-Concessions et droits similaires, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {}, 
-                "206-Droit au bail": {}, 
-                "207-Fonds commercial": {}, 
+                },
+                "203-Frais de recherche et de d\u00e9veloppement": {},
+                "205-Concessions et droits similaires, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {},
+                "206-Droit au bail": {},
+                "207-Fonds commercial": {},
                 "208-Autres immobilisations incorporelles": {
                     "2081-Mali de fusion sur actifs incorporels": {}
                 }
-            }, 
+            },
             "21-Immobilisations corporelles": {
                 "211-Terrains": {
                     "2111-Terrains nus": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2112-Terrains am\u00e9nag\u00e9s": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2113-Sous-sols et sur-sols": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2114-Terrains de carri\u00e8res (tr\u00e9fonds)": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2115-Terrains b\u00e2tis": {
                         "21151-Ensembles immobiliers industriels (A, B)": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21155-Ensembles immobiliers administratifs et commerciaux (A, B)": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21158-Autres ensembles immobiliers": {
                             "211581-Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations professionnelles (A, B)": {
                                 "account_type": "Fixed Asset"
-                            }, 
+                            },
                             "211588-Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations non professionnelles (A, B)": {
                                 "account_type": "Fixed Asset"
-                            }, 
+                            },
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "account_type": "Fixed Asset"
-                }, 
+                },
                 "212-Agencements et am\u00e9nagements de terrains (m\u00eame ventilation que celle du compte 211)": {
                     "account_type": "Fixed Asset"
-                }, 
+                },
                 "213-Constructions": {
                     "2131-B\u00e2timents": {
                         "21311-Ensembles immobiliers industriels (A, B)": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21315-Ensembles immobiliers administratifs et commerciaux (A, B)": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21318-Autres ensembles immobiliers": {
                             "213181-Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations professionnelles (A, B)": {
                                 "account_type": "Fixed Asset"
-                            }, 
+                            },
                             "213188-Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations non professionnelles (A, B)": {
                                 "account_type": "Fixed Asset"
-                            }, 
+                            },
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2135-Installations g\u00e9n\u00e9rales, agencements, am\u00e9nagements des constructions": {
                         "21351-Ensembles immobiliers industriels (A, B)": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21355-Ensembles immobiliers administratifs et commerciaux (A, B)": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21358-Autres ensembles immobiliers": {
                             "213581-Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations professionnelles (A, B)": {
                                 "account_type": "Fixed Asset"
-                            }, 
+                            },
                             "213588-Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations non professionnelles (A, B)": {
                                 "account_type": "Fixed Asset"
-                            }, 
+                            },
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2138-Ouvrages d'infrastructure": {
                         "21381-Voies de terre": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21382-Voies de fer": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21383-Voies d'eau": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21384-Barrages": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21385-Pistes d'a\u00e9rodromes": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "account_type": "Fixed Asset"
-                }, 
+                },
                 "214-Constructions sur sol d'autrui (m\u00eame ventilation que celle du compte 213)": {
                     "account_type": "Fixed Asset"
-                }, 
+                },
                 "215-Installations techniques, mat\u00e9riel et outillage industriels": {
                     "2151-Installations complexes sp\u00e9cialis\u00e9es": {
                         "21511-Installations complexes sp\u00e9cialis\u00e9es - sur sol propre": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21514-Installations complexes sp\u00e9cialis\u00e9es - sur sol d'autrui": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2153-Installations \u00e0 caract\u00e8re sp\u00e9cifique": {
                         "21531-Installations \u00e0 caract\u00e8re sp\u00e9cifique - sur sol propre": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "21534-Installations \u00e0 caract\u00e8re sp\u00e9cifique - sur sol d'autrui": {
                             "account_type": "Fixed Asset"
-                        }, 
+                        },
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2154-Mat\u00e9riel industriel": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2155-Outillage industriel": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2157-Agencements et am\u00e9nagements du mat\u00e9riel et outillage industriel": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "account_type": "Fixed Asset"
-                }, 
+                },
                 "218-Autres immobilisations corporelles": {
                     "2181-Installations g\u00e9n\u00e9rales, agencements, am\u00e9nagements divers": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2182-Mat\u00e9riel de transport": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2183-Mat\u00e9riel de bureau et mat\u00e9riel informatique": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2184-Mobilier": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2185-Cheptel": {
                         "account_type": "Fixed Asset"
-                    }, 
+                    },
                     "2186-Emballages r\u00e9cup\u00e9rables": {
                         "account_type": "Fixed Asset"
-                    }, 
-                    "2187-Mali de fusion sur actifs corporels": {}, 
+                    },
+                    "2187-Mali de fusion sur actifs corporels": {},
                     "account_type": "Fixed Asset"
-                }, 
+                },
                 "account_type": "Fixed Asset"
-            }, 
-            "22-Immobilisations mises en concession": {}, 
+            },
+            "22-Immobilisations mises en concession": {},
             "23-Immobilisations en cours": {
                 "231-Immobilisations corporelles en cours": {
-                    "2312-Terrains": {}, 
-                    "2313-Constructions": {}, 
-                    "2315-Installations techniques, mat\u00e9riel et outillage industriels": {}, 
+                    "2312-Terrains": {},
+                    "2313-Constructions": {},
+                    "2315-Installations techniques, mat\u00e9riel et outillage industriels": {},
                     "2318-Autres immobilisations corporelles": {}
-                }, 
-                "232-Immobilisations incorporelles en cours": {}, 
-                "237-Avances et acomptes vers\u00e9s sur commandes d'immobilisations incorporelles": {}, 
+                },
+                "232-Immobilisations incorporelles en cours": {},
+                "237-Avances et acomptes vers\u00e9s sur commandes d'immobilisations incorporelles": {},
                 "238-Avances et acomptes vers\u00e9s sur commandes d'immobilisations corporelles": {
-                    "2382-Terrains": {}, 
-                    "2383-Constructions": {}, 
-                    "2385-Installations techniques, mat\u00e9riel et outillage industriels": {}, 
+                    "2382-Terrains": {},
+                    "2383-Constructions": {},
+                    "2385-Installations techniques, mat\u00e9riel et outillage industriels": {},
                     "2388-Autres immobilisations corporelles": {}
                 }
-            }, 
+            },
             "25-Parts dans des entreprises li\u00e9es et cr\u00e9ances sur des entreprises li\u00e9es": {
                 "is_group": 1
-            }, 
+            },
             "26-Participations et cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
                 "261-Titres de participation": {
-                    "2611-Actions": {}, 
+                    "2611-Actions": {},
                     "2618-Autres titres": {}
-                }, 
+                },
                 "266-Autres formes de participation": {
                     "2661-Droit repr\u00e9sentatifs d'actifs nets remis en fiducie": {}
-                }, 
+                },
                 "267-Cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
-                    "2671-Cr\u00e9ances rattach\u00e9es \u00e0 des participations (groupe)": {}, 
-                    "2674-Cr\u00e9ances rattach\u00e9es \u00e0 des participations (hors groupe)": {}, 
-                    "2675-Versements repr\u00e9sentatifs d'apports non capitalis\u00e9s (appel de fonds)": {}, 
-                    "2676-Avances consolidables": {}, 
-                    "2677-Autres cr\u00e9ances rattach\u00e9es \u00e0 des participations": {}, 
+                    "2671-Cr\u00e9ances rattach\u00e9es \u00e0 des participations (groupe)": {},
+                    "2674-Cr\u00e9ances rattach\u00e9es \u00e0 des participations (hors groupe)": {},
+                    "2675-Versements repr\u00e9sentatifs d'apports non capitalis\u00e9s (appel de fonds)": {},
+                    "2676-Avances consolidables": {},
+                    "2677-Autres cr\u00e9ances rattach\u00e9es \u00e0 des participations": {},
                     "2678-Int\u00e9r\u00eats courus": {}
-                }, 
+                },
                 "268-Cr\u00e9ances rattach\u00e9es \u00e0 des soci\u00e9t\u00e9s en participation": {
-                    "2681-Principal": {}, 
+                    "2681-Principal": {},
                     "2688-Int\u00e9r\u00eats courus": {}
-                }, 
+                },
                 "269-Versements restant \u00e0 effectuer sur titres de participation non lib\u00e9r\u00e9s": {}
-            }, 
+            },
             "27-Autres immobilisations financi\u00e8res": {
                 "271-Titres immobilis\u00e9s autres que les titres immobilis\u00e9s de l'activit\u00e9 de portefeuille (droit de propri\u00e9t\u00e9)": {
-                    "2711-Actions": {}, 
+                    "2711-Actions": {},
                     "2718-Autres titres": {}
-                }, 
+                },
                 "272-Titres immobilis\u00e9s (droit de cr\u00e9ance)": {
-                    "2721-Obligations": {}, 
+                    "2721-Obligations": {},
                     "2722-Bons": {}
-                }, 
-                "273-Titres immobilis\u00e9s de l'activit\u00e9 de portefeuille": {}, 
+                },
+                "273-Titres immobilis\u00e9s de l'activit\u00e9 de portefeuille": {},
                 "274-Pr\u00eats": {
-                    "2741-Pr\u00eats participatifs": {}, 
-                    "2742-Pr\u00eats aux associ\u00e9s": {}, 
-                    "2743-Pr\u00eats au personnel": {}, 
+                    "2741-Pr\u00eats participatifs": {},
+                    "2742-Pr\u00eats aux associ\u00e9s": {},
+                    "2743-Pr\u00eats au personnel": {},
                     "2748-Autres pr\u00eats": {}
-                }, 
+                },
                 "275-D\u00e9p\u00f4ts et cautionnements vers\u00e9s": {
-                    "2751-D\u00e9p\u00f4ts": {}, 
+                    "2751-D\u00e9p\u00f4ts": {},
                     "2755-Cautionnements": {}
-                }, 
+                },
                 "276-Autres cr\u00e9ances immobilis\u00e9es": {
-                    "2761-Cr\u00e9ances diverses": {}, 
+                    "2761-Cr\u00e9ances diverses": {},
                     "2768-Int\u00e9r\u00eats courus": {
-                        "27682-Int\u00e9r\u00eats courus sur titres immobilis\u00e9s (droit de cr\u00e9ance)": {}, 
-                        "27684-Int\u00e9r\u00eats courus sur pr\u00eats": {}, 
-                        "27685-Int\u00e9r\u00eats courus sur d\u00e9p\u00f4ts et cautionnements": {}, 
+                        "27682-Int\u00e9r\u00eats courus sur titres immobilis\u00e9s (droit de cr\u00e9ance)": {},
+                        "27684-Int\u00e9r\u00eats courus sur pr\u00eats": {},
+                        "27685-Int\u00e9r\u00eats courus sur d\u00e9p\u00f4ts et cautionnements": {},
                         "27688-Int\u00e9r\u00eats courus sur cr\u00e9ances diverses": {}
                     }
-                }, 
+                },
                 "277-(Actions propres ou parts propres)": {
-                    "2771-Actions propres ou parts propres": {}, 
+                    "2771-Actions propres ou parts propres": {},
                     "2772-Actions propres ou parts propres en voie d'annulation": {}
-                }, 
-                "278-Mali de fusion sur actifs financiers": {}, 
+                },
+                "278-Mali de fusion sur actifs financiers": {},
                 "279-Versements restant \u00e0 effectuer sur titres immobilis\u00e9s non lib\u00e9r\u00e9s": {}
-            }, 
+            },
             "28-Amortissements des immobilisations": {
                 "280-Amortissements des immobilisations incorporelles": {
                     "2801-Frais d'\u00e9tablissement (m\u00eame ventilation que celle du compte 212)": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2803-Frais de recherche et de d\u00e9veloppement": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2805-Concessions et droits similaires, brevets, licences, logiciels, droits et valeurs similaires": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2807-Fonds commercial": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2808-Autres immobilisations incorporelles": {
                         "28081-Mali de fusion sur actifs incorporels": {
                             "account_type": "Accumulated Depreciation"
-                        }, 
+                        },
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "account_type": "Accumulated Depreciation"
-                }, 
+                },
                 "281-Amortissements des immobilisations corporelles": {
                     "2811-Terrains de gisement": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2812-Agencements, am\u00e9nagements de terrains (m\u00eame ventilation que celle du compte 212)": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2813-Constructions (m\u00eame ventilation que celle du compte 213)": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2814-Constructions sur sol d'autrui (m\u00eame ventilation que celle du compte du 214)": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2815-Installations techniques, mat\u00e9riel et outillage industriels (m\u00eame ventilation que celle du compte 218)": {
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "2818-Autres immobilisations corporelles (m\u00eame ventilation que celle du compte 218)": {
                         "28187-Mali de fusion sur actifs corporels": {
                             "account_type": "Accumulated Depreciation"
-                        }, 
+                        },
                         "account_type": "Accumulated Depreciation"
-                    }, 
+                    },
                     "account_type": "Accumulated Depreciation"
-                }, 
-                "282-Amortissements des immobilisations mises en concession": {}, 
+                },
+                "282-Amortissements des immobilisations mises en concession": {},
                 "account_type": "Accumulated Depreciation"
-            }, 
+            },
             "29-D\u00e9pr\u00e9ciations des immobilisations": {
                 "290-D\u00e9pr\u00e9ciations des immobilisations incorporelles": {
-                    "2905-Marques,  proc\u00e9d\u00e9s, droits et valeurs similaires": {}, 
-                    "2906-Droit au bail": {}, 
-                    "2907-Fonds commercial": {}, 
+                    "2905-Marques,  proc\u00e9d\u00e9s, droits et valeurs similaires": {},
+                    "2906-Droit au bail": {},
+                    "2907-Fonds commercial": {},
                     "2908-Autres immobilisations incorporelles": {
                         "29081-Mali de fusion sur actifs incorporels": {}
                     }
-                }, 
+                },
                 "291-D\u00e9pr\u00e9ciations des immobilisations corporelles (m\u00eame ventilation que celle du compte 21)": {
                     "2911-Terrains (autres que terrains de gisement)": {
                         "29187-Mali de fusion sur actifs corporels": {}
                     }
-                }, 
-                "292-D\u00e9pr\u00e9ciations des immobilisations mises en concession": {}, 
+                },
+                "292-D\u00e9pr\u00e9ciations des immobilisations mises en concession": {},
                 "293-D\u00e9pr\u00e9ciations des immobilisations en cours": {
-                    "2931-Immobilisations corporelles en cours": {}, 
+                    "2931-Immobilisations corporelles en cours": {},
                     "2932-Immobilisations incorporelles en cours": {}
-                }, 
+                },
                 "296-D\u00e9pr\u00e9ciations des participations et cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
-                    "2961-Titres de participation": {}, 
-                    "2966-Autres formes de participation": {}, 
-                    "2967-Cr\u00e9ances rattach\u00e9es \u00e0 des participations (m\u00eame ventilation que celle du compte 267)": {}, 
+                    "2961-Titres de participation": {},
+                    "2966-Autres formes de participation": {},
+                    "2967-Cr\u00e9ances rattach\u00e9es \u00e0 des participations (m\u00eame ventilation que celle du compte 267)": {},
                     "2968-Cr\u00e9ances rattach\u00e9es \u00e0 des soci\u00e9t\u00e9s en participation (m\u00eame ventilation que celle du compte 268)": {}
-                }, 
+                },
                 "297-D\u00e9pr\u00e9ciations des autres immobilisations financi\u00e8res": {
-                    "2971-Titres immobilis\u00e9s autres que les titres immobilis\u00e9s de l'activit\u00e9 de portefeuille - droit de propri\u00e9t\u00e9": {}, 
-                    "2972-Titres immobilis\u00e9s - droit de cr\u00e9ance (m\u00eame ventilation que celle du compte 272)": {}, 
-                    "2973- Titres immobilis\u00e9s de l'activit\u00e9 de portefuille": {}, 
-                    "2974-Pr\u00eats (m\u00eame ventilation que celle du compte 274)": {}, 
-                    "2975-D\u00e9p\u00f4ts et cautionnements vers\u00e9s (m\u00eame ventilation que celle du compte 275)": {}, 
+                    "2971-Titres immobilis\u00e9s autres que les titres immobilis\u00e9s de l'activit\u00e9 de portefeuille - droit de propri\u00e9t\u00e9": {},
+                    "2972-Titres immobilis\u00e9s - droit de cr\u00e9ance (m\u00eame ventilation que celle du compte 272)": {},
+                    "2973- Titres immobilis\u00e9s de l'activit\u00e9 de portefuille": {},
+                    "2974-Pr\u00eats (m\u00eame ventilation que celle du compte 274)": {},
+                    "2975-D\u00e9p\u00f4ts et cautionnements vers\u00e9s (m\u00eame ventilation que celle du compte 275)": {},
                     "2976-Autres cr\u00e9ances immobilis\u00e9es (m\u00eame ventilation que celle du compte 276)": {
                         "29787-Mali de fusion sur actifs financiers": {}
                     }
                 }
-            }, 
+            },
             "root_type": "Asset"
-        }, 
+        },
         "3-Comptes de Stocks et En-Cours": {
             "31-Mati\u00e8res premi\u00e8res (et fournitures)": {
-                "311-Mati\u00e8res (ou groupe) A": {}, 
-                "312-Mati\u00e8res (ou groupe) B": {}, 
+                "311-Mati\u00e8res (ou groupe) A": {},
+                "312-Mati\u00e8res (ou groupe) B": {},
                 "317-Fournitures A, B, C, ...": {}
-            }, 
+            },
             "32-Autres approvisionnements": {
                 "321-Mat\u00e8res consommables": {
-                    "3211-Mati\u00e8res (ou groupe) C": {}, 
+                    "3211-Mati\u00e8res (ou groupe) C": {},
                     "3212-Mati\u00e8res (ou groupe) D": {}
-                }, 
+                },
                 "322-Fournitures consommables": {
-                    "3221-Combustibles": {}, 
-                    "3222-Produits d'entretien": {}, 
-                    "3223-Fournitures d'atelier et d'usine": {}, 
-                    "3224-Fournitures de magasin": {}, 
+                    "3221-Combustibles": {},
+                    "3222-Produits d'entretien": {},
+                    "3223-Fournitures d'atelier et d'usine": {},
+                    "3224-Fournitures de magasin": {},
                     "3225-Fournitures de bureau": {}
-                }, 
+                },
                 "326-Emballages": {
-                    "3261-Emballages perdus": {}, 
-                    "3265-Emballages r\u00e9cup\u00e9rables non identifiables": {}, 
+                    "3261-Emballages perdus": {},
+                    "3265-Emballages r\u00e9cup\u00e9rables non identifiables": {},
                     "3267-Emballages \u00e0 usage mixte": {}
                 }
-            }, 
+            },
             "33-En-cours de production de biens": {
                 "331-Produits en cours": {
-                    "3311-Produits en cours P1": {}, 
+                    "3311-Produits en cours P1": {},
                     "3312-Produits en cours P2": {}
-                }, 
+                },
                 "335-Travaux en cours": {
-                    "Travaux en cours T1": {}, 
-                    "Travaux en cours T2": {}
+                    "3351-Travaux en cours T1": {},
+                    "3352-Travaux en cours T2": {}
                 }
-            }, 
+            },
             "34-En-cours de production de services": {
                 "341-Etudes en cours": {
-                    "3411-Etudes en cours E1": {}, 
+                    "3411-Etudes en cours E1": {},
                     "3412-Etudes en cours E2": {}
-                }, 
+                },
                 "345-Prestations de services en cours": {
-                    "3451-Prestations de services S1": {}, 
+                    "3451-Prestations de services S1": {},
                     "3452-Prestations de services S2": {}
                 }
-            }, 
+            },
             "35-Stocks de produits": {
                 "351-Produits interm\u00e9diaires": {
                     "3511-Produits interm\u00e9diaires (ou groupe) A": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "3512-Produits interm\u00e9diaires (ou groupe) B": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "account_type": "Stock"
-                }, 
+                },
                 "355-Produits finis": {
                     "3551-Produits finis (ou groupe) A": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "3552-Produits finis (ou groupe) B": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "account_type": "Stock"
-                }, 
+                },
                 "358-Produits r\u00e9siduels (ou mati\u00e8res de r\u00e9cup\u00e9ration)": {
                     "3581-D\u00e9chets": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "3585-Rebuts": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "3586-Mati\u00e8res de r\u00e9cup\u00e9ration": {
-                        "account_type": "Stock", 
+                        "account_type": "Stock",
                         "is_group": 1
-                    }, 
+                    },
                     "account_type": "Stock"
-                }, 
+                },
                 "account_type": "Stock"
-            }, 
-            "36-(Compte \u00e0 ouvrir, le cas \u00e9ch\u00e9ant, sous l'intitul\u00e9 \"stocks provenant d'immobilisations\")": {}, 
+            },
+            "36-(Compte \u00e0 ouvrir, le cas \u00e9ch\u00e9ant, sous l'intitul\u00e9 \"stocks provenant d'immobilisations\")": {},
             "37-Stocks de marchandises": {
-                "371-Marchandises (ou groupe) A": {}, 
+                "371-Marchandises (ou groupe) A": {},
                 "372-Marchandises (ou groupe) B": {}
-            }, 
-            "38-Stocks en voie d'acheminement, mis en d\u00e9p\u00f4t ou donn\u00e9s en consignation (en cas d'inventaire permanent en comptabilit\u00e9 g\u00e9n\u00e9rale)": {}, 
+            },
+            "38-Stocks en voie d'acheminement, mis en d\u00e9p\u00f4t ou donn\u00e9s en consignation (en cas d'inventaire permanent en comptabilit\u00e9 g\u00e9n\u00e9rale)": {
+                "account_type": "Stock"
+            },
             "39-D\u00e9pr\u00e9ciations des stocks et en-cours": {
                 "391-D\u00e9pr\u00e9ciations des mati\u00e8res premi\u00e8res (et fournitures)": {
-                    "3911-Mati\u00e8res (ou groupe) A": {}, 
-                    "3912-Mati\u00e8res (ou groupe) B": {}, 
+                    "3911-Mati\u00e8res (ou groupe) A": {},
+                    "3912-Mati\u00e8res (ou groupe) B": {},
                     "3917-Fournitures A, B, C, ...": {}
-                }, 
+                },
                 "392-D\u00e9pr\u00e9ciations des autres approvisionnements": {
-                    "3921-Mati\u00e8res consommables (m\u00eame ventilation que celle du compte 321)": {}, 
-                    "3922-Fournitures consommables (m\u00eame ventilation que celle du compte 322)": {}, 
+                    "3921-Mati\u00e8res consommables (m\u00eame ventilation que celle du compte 321)": {},
+                    "3922-Fournitures consommables (m\u00eame ventilation que celle du compte 322)": {},
                     "3926-Emballages (m\u00eame ventilation que celle du compte 326)": {}
-                }, 
+                },
                 "393-D\u00e9pr\u00e9ciations des en-cours de production de biens": {
-                    "3931-Etudes en cours (m\u00eame ventilation que celle du compte 341)": {}, 
+                    "3931-Etudes en cours (m\u00eame ventilation que celle du compte 341)": {},
                     "3935-Travaux en cours (m\u00eame ventilation que celle du compte 335)": {}
-                }, 
+                },
                 "394-D\u00e9pr\u00e9ciations des en-cours de production de services": {
-                    "3941-Etudes en cours (m\u00eame ventilation que celle du compte 341)": {}, 
+                    "3941-Etudes en cours (m\u00eame ventilation que celle du compte 341)": {},
                     "3945-Prestations de services en cours (m\u00eame ventilation que celle du compte 345)": {}
-                }, 
+                },
                 "395-D\u00e9pr\u00e9ciations des stocks de produits": {
-                    "3951-Produits interm\u00e9diaires (m\u00eame ventilation que celle du compte 351)": {}, 
+                    "3951-Produits interm\u00e9diaires (m\u00eame ventilation que celle du compte 351)": {},
                     "3955-Produits finis (m\u00eame ventilation que celle du compte 355)": {}
-                }, 
+                },
                 "397-D\u00e9pr\u00e9ciations des stocks de marchandises": {
-                    "3971-Marchandise (ou groupe) A": {}, 
+                    "3971-Marchandise (ou groupe) A": {},
                     "3972-Marchandise (ou groupe) B": {}
                 }
-            }, 
+            },
             "root_type": "Asset"
-        }, 
+        },
         "4-Comptes de Tiers (ACTIF)": {
             "40-Fournisseurs et Comptes Rattach\u00e9s (ACTIF)": {
                 "409-Fournisseurs d\u00e9biteurs": {
-                    "4091-Fournisseurs - Avances et acomptes vers\u00e9s sur commandes": {}, 
-                    "4096-Fournisseurs - Cr\u00e9ances pour emballages et mat\u00e9riel \u00e0 rendre": {}, 
+                    "4091-Fournisseurs - Avances et acomptes vers\u00e9s sur commandes": {},
+                    "4096-Fournisseurs - Cr\u00e9ances pour emballages et mat\u00e9riel \u00e0 rendre": {},
                     "4097-Fournisseurs - Autres avoirs": {
-                        "40971-Fournisseurs d'exploitation": {}, 
+                        "40971-Fournisseurs d'exploitation": {},
                         "40974-Fournisseurs d'immobilisation": {}
-                    }, 
+                    },
                     "4098-Rabais, remises, ristournes \u00e0 obtenir et autres avoirs non encore re\u00e7us": {}
                 }
-            }, 
+            },
             "41-Clients et comptes rattach\u00e9s (ACTIF)": {
                 "410-Clients et Comptes rattach\u00e9s": {
                     "account_type": "Receivable"
-                }, 
+                },
                 "411-Clients": {
                     "4111-Clients - Ventes de biens ou de prestations de services": {
                         "account_type": "Receivable"
-                    }, 
+                    },
                     "4117-Clients - Retenues de garantie": {
                         "account_type": "Receivable"
-                    }, 
+                    },
                     "account_type": "Receivable"
-                }, 
+                },
                 "413-Clients - Effets \u00e0 recevoir": {
                     "account_type": "Receivable"
-                }, 
+                },
                 "416-Clients douteux ou litigieux": {
                     "account_type": "Receivable"
-                }, 
+                },
                 "418-Clients - Produits non encore factur\u00e9s": {
                     "4181-Clients - Factures \u00e0 \u00e9tablir": {
                         "account_type": "Receivable"
-                    }, 
+                    },
                     "4188-Clients - Int\u00e9r\u00eats courus": {
                         "account_type": "Receivable"
-                    }, 
+                    },
                     "account_type": "Receivable"
-                }, 
+                },
                 "account_type": "Receivable"
-            }, 
+            },
             "42-Personnel et comptes rattach\u00e9s (ACTIF)": {
                 "425-Personnel - Avances et acomptes": {}
-            }, 
+            },
             "43-S\u00e9curit\u00e9 sociale et autres organismes sociaux (ACTIF)": {
-                "431-S\u00e9curit\u00e9 sociale": {}, 
-                "437-Autres organismes sociaux": {}, 
+                "431-S\u00e9curit\u00e9 sociale": {},
+                "437-Autres organismes sociaux": {},
                 "438-Organismes sociaux - Produits \u00e0 recevoir": {
                     "4387-Produits \u00e0 recevoir": {}
                 }
-            }, 
+            },
             "44-Etat et autres collectivit\u00e9s publiques (ACTIF)": {
                 "441-Etat - Subventions \u00e0 recevoir": {
-                    "4411-Subventions d'investissement": {}, 
-                    "4417-Subventions d'exploitation": {}, 
-                    "4418-Subventions d'\u00e9quilibre": {}, 
+                    "4411-Subventions d'investissement": {},
+                    "4417-Subventions d'exploitation": {},
+                    "4418-Subventions d'\u00e9quilibre": {},
                     "4419-Avances sur subventions": {}
-                }, 
+                },
                 "443-Op\u00e9rations particuli\u00e8res avec l'Etat, les collectivit\u00e9s publiques, les organismes internationaux": {
-                    "4431-Cr\u00e9ances sur l'Etat r\u00e9sultant de la suppression de la r\u00e8gle du d\u00e9calage d'un mois en mati\u00e8re de TVA": {}, 
+                    "4431-Cr\u00e9ances sur l'Etat r\u00e9sultant de la suppression de la r\u00e8gle du d\u00e9calage d'un mois en mati\u00e8re de TVA": {},
                     "4438-Int\u00e9r\u00eats courus sur cr\u00e9ances figurant au compte 4431": {}
-                }, 
+                },
                 "445-Etat - Taxes sur le chiffre d'affaires (ACTIF)": {
-                    "4452-TVA due intracommunautaire": {}, 
+                    "4452-TVA due intracommunautaire": {},
                     "4456-Taxes sur le chiffre d'affaires d\u00e9ductibles": {
-                        "44562-TVA sur immobilisations": {}, 
-                        "44563-TVA transf\u00e9r\u00e9e par d'autres entreprises": {}, 
+                        "44562-TVA sur immobilisations": {},
+                        "44563-TVA transf\u00e9r\u00e9e par d'autres entreprises": {},
                         "44566-TVA sur autres biens et services": {
                             "tax_rate": 20.0
-                        }, 
-                        "44567-Cr\u00e9dit de TVA \u00e0 reporter": {}, 
+                        },
+                        "44567-Cr\u00e9dit de TVA \u00e0 reporter": {},
                         "44568-Taxes assimil\u00e9es \u00e0 la TVA": {}
-                    }, 
+                    },
                     "4458-Taxes sur le chiffre d'affaires \u00e0 r\u00e9gulariser ou en attente (ACTIF)": {
-                        "44581-Acomptes - R\u00e9gime simplifi\u00e9 d'imposition": {}, 
-                        "44582-Acomptes - R\u00e9gime du forfait": {}, 
-                        "44583-Remboursement de taxes sur le chiffre d'affaires demand\u00e9": {}, 
+                        "44581-Acomptes - R\u00e9gime simplifi\u00e9 d'imposition": {},
+                        "44582-Acomptes - R\u00e9gime du forfait": {},
+                        "44583-Remboursement de taxes sur le chiffre d'affaires demand\u00e9": {},
                         "44586-Taxes sur le chiffre d'affaires sur factures non parvenues": {}
                     }
-                }, 
+                },
                 "448-Etat - Charges \u00e0 payer et produits \u00e0 recevoir": {
-                    "4482-Charges fiscales sur cong\u00e9s \u00e0 payer": {}, 
-                    "4486-Charges \u00e0 payer": {}, 
+                    "4482-Charges fiscales sur cong\u00e9s \u00e0 payer": {},
+                    "4486-Charges \u00e0 payer": {},
                     "4487-Produits \u00e0 recevoir": {}
                 }
-            }, 
+            },
             "45-Groupe et associ\u00e9s (ACTIF)": {
                 "456-Associ\u00e9s - Op\u00e9rations sur le capital (ACTIF)": {
                     "4562-Apporteurs - Capital appel\u00e9, non vers\u00e9": {
-                        "45621-Actionnaires - Capital souscrit et appel\u00e9, non vers\u00e9": {}, 
+                        "45621-Actionnaires - Capital souscrit et appel\u00e9, non vers\u00e9": {},
                         "45625-Associ\u00e9s - Capital appel\u00e9, non vers\u00e9": {}
                     }
                 }
-            }, 
+            },
             "46-D\u00e9biteurs divers et cr\u00e9diteurs divers (ACTIF)": {
-                "462-Cr\u00e9ances sur cessions d'immobilisations": {}, 
-                "465-Cr\u00e9ances sur cessions de valeurs mobili\u00e8res de placement": {}, 
-                "467-Autres comptes d\u00e9biteurs ou cr\u00e9diteurs (ACTIF)": {}, 
+                "462-Cr\u00e9ances sur cessions d'immobilisations": {},
+                "465-Cr\u00e9ances sur cessions de valeurs mobili\u00e8res de placement": {},
+                "467-Autres comptes d\u00e9biteurs ou cr\u00e9diteurs (ACTIF)": {},
                 "468-Divers - Charges \u00e0 payer et produits \u00e0 recevoir (ACTIF)": {
                     "4687-Produits \u00e0 recevoir": {}
                 }
-            }, 
+            },
             "47-Comptes transitoires ou d'attente (ACTIF)": {
                 "471-Comptes d'attente (ACTIF)": {
                     "account_type": "Temporary"
-                }, 
+                },
                 "476-Diff\u00e9rences de conversion (ACTIF)": {
-                    "4761-Diminution des cr\u00e9ances": {}, 
-                    "4762-Augmentation des dettes": {}, 
+                    "4761-Diminution des cr\u00e9ances": {},
+                    "4762-Augmentation des dettes": {},
                     "4768-Diff\u00e9rences compens\u00e9es par couverture de change": {}
-                }, 
+                },
                 "478-Autres comptes transitoires (ACTIF)": {
-                    "4781-Mali de fusion sur actif circulant": {}, 
+                    "4781-Mali de fusion sur actif circulant": {},
                     "4786-Diff\u00e9rences d'\u00e9valuation sur instruments de tr\u00e9sorerie (ACTIF)": {}
                 }
-            }, 
+            },
             "48-Comptes de r\u00e9gularisation (ACTIF)": {
                 "481-Charges \u00e0 r\u00e9partir sur plusieurs exercices": {
                     "4816-Frais d'\u00e9mission des emprunts": {}
-                }, 
-                "486-Charges constat\u00e9es d'avance": {}, 
+                },
+                "486-Charges constat\u00e9es d'avance": {},
                 "488-Comptes de r\u00e9partition p\u00e9riodique des charges et des produits (ACTIF)": {
                     "4886-Charges": {}
                 }
-            }, 
+            },
             "49-D\u00e9pr\u00e9ciation des comptes de tiers (ACTIF)": {
-                "491-D\u00e9pr\u00e9ciations des comptes clients": {}, 
+                "491-D\u00e9pr\u00e9ciations des comptes clients": {},
                 "495-D\u00e9pr\u00e9ciations des comptes du groupe et des associ\u00e9s": {
-                    "4951-Comptes du groupe": {}, 
-                    "4955-Comptes courants des associ\u00e9s": {}, 
+                    "4951-Comptes du groupe": {},
+                    "4955-Comptes courants des associ\u00e9s": {},
                     "4958-Op\u00e9rations faites en commun et en GIE": {}
-                }, 
+                },
                 "496-D\u00e9pr\u00e9ciations des comptes de d\u00e9biteurs divers": {
-                    "4962-Cr\u00e9ances sur cessions d'immobilisations": {}, 
-                    "4965-Cr\u00e9ances sur cessions de valeurs mobili\u00e8res de placement": {}, 
+                    "4962-Cr\u00e9ances sur cessions d'immobilisations": {},
+                    "4965-Cr\u00e9ances sur cessions de valeurs mobili\u00e8res de placement": {},
                     "4967-Autres comptes d\u00e9biteurs": {}
                 }
-            }, 
+            },
             "root_type": "Asset"
-        }, 
+        },
         "4-Comptes de Tiers (PASSIF)": {
             "40-Fournisseurs et Comptes Rattach\u00e9s (PASSIF)": {
                 "401-Fournisseurs": {
                     "4011-Fournisseurs - Achats de biens ou de prestations de services": {
                         "account_type": "Payable"
-                    }, 
+                    },
                     "4017-Fournisseurs - Retenues de garantie": {
                         "account_type": "Payable"
-                    }, 
+                    },
                     "account_type": "Payable"
-                }, 
+                },
                 "403-Fournisseurs - Effets \u00e0 payer": {
                     "account_type": "Payable"
-                }, 
+                },
                 "404-Fournisseurs d'immobilisations": {
                     "4041-Fournisseurs - Achats d'immobilisations": {
                         "account_type": "Payable"
-                    }, 
+                    },
                     "4047-Fournisseurs d'immobilisations - Retenues de garantie": {
                         "account_type": "Payable"
-                    }, 
+                    },
                     "account_type": "Payable"
-                }, 
+                },
                 "405-Fournisseurs d'immobilisations - Effets \u00e0 payer": {
                     "account_type": "Payable"
-                }, 
+                },
                 "408-Fournisseurs - Factures non parvenues": {
                     "4081-Fournisseurs": {
                         "account_type": "Stock Received But Not Billed"
-                    }, 
+                    },
                     "4084-Fournisseurs d'immobilisations": {
                         "account_type": "Stock Received But Not Billed"
-                    }, 
+                    },
                     "4088-Fournisseurs - Int\u00e9r\u00eats courus": {
                         "account_type": "Stock Received But Not Billed"
-                    }, 
+                    },
                     "account_type": "Stock Received But Not Billed"
-                }, 
+                },
                 "account_type": "Payable"
-            }, 
+            },
             "41-Clients et comptes rattach\u00e9s (PASSIF)": {
                 "419-Clients cr\u00e9diteurs": {
-                    "4191-Clients - Avances et acomptes re\u00e7us sur commandes": {}, 
-                    "4196-Clients - Dettes pour emballages et mat\u00e9riels consign\u00e9s": {}, 
-                    "4197-Clients - Autres avoirs": {}, 
+                    "4191-Clients - Avances et acomptes re\u00e7us sur commandes": {},
+                    "4196-Clients - Dettes pour emballages et mat\u00e9riels consign\u00e9s": {},
+                    "4197-Clients - Autres avoirs": {},
                     "4198-Rabais, remises, ristournes \u00e0 accorder et autres avoirs \u00e0 \u00e9tablir": {}
                 }
-            }, 
+            },
             "42-Personnel et comptes rattach\u00e9s (PASSIF)": {
-                "421-Personnel - R\u00e9mun\u00e9rations dues": {}, 
-                "422-Comit\u00e9s d'entreprises, d'\u00e9tablissement...": {}, 
+                "421-Personnel - R\u00e9mun\u00e9rations dues": {},
+                "422-Comit\u00e9s d'entreprises, d'\u00e9tablissement...": {},
                 "424-Participation des salari\u00e9s aux r\u00e9sultats": {
-                    "4246-R\u00e9serve sp\u00e9ciale": {}, 
+                    "4246-R\u00e9serve sp\u00e9ciale": {},
                     "4248-Comptes courants": {}
-                }, 
-                "426-Personnel - D\u00e9p\u00f4ts": {}, 
-                "427-Personnel - Oppositions": {}, 
+                },
+                "426-Personnel - D\u00e9p\u00f4ts": {},
+                "427-Personnel - Oppositions": {},
                 "428-Personnel - Charges \u00e0 payer et produits \u00e0 recevoir": {
-                    "4282-Dettes provisionn\u00e9es pour cong\u00e9s \u00e0 payer": {}, 
-                    "4284-Dettes provisionn\u00e9es pour participation des salari\u00e9s aux r\u00e9sultats": {}, 
-                    "4286-Autres charges \u00e0 payer": {}, 
+                    "4282-Dettes provisionn\u00e9es pour cong\u00e9s \u00e0 payer": {},
+                    "4284-Dettes provisionn\u00e9es pour participation des salari\u00e9s aux r\u00e9sultats": {},
+                    "4286-Autres charges \u00e0 payer": {},
                     "4287-Produits \u00e0 recevoir": {}
                 }
-            }, 
+            },
             "43-S\u00e9curit\u00e9 sociale et autres organismes sociaux (PASSIF)": {
                 "438-Organismes sociaux - Charges \u00e0 payer": {
-                    "4382-Charges sociales sur cong\u00e9s \u00e0 payer": {}, 
+                    "4382-Charges sociales sur cong\u00e9s \u00e0 payer": {},
                     "4386-Autres charges \u00e0 payer": {}
                 }
-            }, 
+            },
             "44-Etat et autres collectivit\u00e9s publiques (PASSIF)": {
                 "442-Etat - Imp\u00f4ts et taxes recouvrables sur des tiers": {
-                    "4424-Obligataires": {}, 
+                    "4424-Obligataires": {},
                     "4425-Associ\u00e9s": {}
-                }, 
-                "444-Etat - Imp\u00f4ts sur les b\u00e9n\u00e9fices": {}, 
+                },
+                "444-Etat - Imp\u00f4ts sur les b\u00e9n\u00e9fices": {},
                 "445-Etat - Taxes sur le chiffre d'affaires (PASSIF)": {
                     "4455-Taxes sur le chiffre d'affaires \u00e0 d\u00e9caisser": {
-                        "44551-TVA \u00e0 d\u00e9caisser": {}, 
+                        "44551-TVA \u00e0 d\u00e9caisser": {},
                         "44558-Taxes assimil\u00e9es \u00e0 la TVA": {}
-                    }, 
+                    },
                     "4457-Taxes sur le chiffre d'affaires collect\u00e9es par l'entreprise": {
                         "44571-TVA collect\u00e9e": {
-                            "account_type": "Tax", 
+                            "account_type": "Tax",
                             "is_group": 1
-                        }, 
+                        },
                         "44578-Taxes assimil\u00e9es \u00e0 la TVA": {}
-                    }, 
+                    },
                     "4458-Taxes sur le chiffre d'affaires \u00e0 r\u00e9gulariser ou en attente (PASSIF)": {
-                        "44584-TVA r\u00e9cup\u00e9r\u00e9e  d'avance": {}, 
+                        "44584-TVA r\u00e9cup\u00e9r\u00e9e  d'avance": {},
                         "44587-Taxes sur le chiffre d'affaires sur factures \u00e0 \u00e9tablir": {}
                     }
-                }, 
-                "446-Obligations cautionn\u00e9es": {}, 
-                "447-Autres imp\u00f4ts, taxes et versements assimil\u00e9s": {}, 
+                },
+                "446-Obligations cautionn\u00e9es": {},
+                "447-Autres imp\u00f4ts, taxes et versements assimil\u00e9s": {},
                 "449-Quotas d'\u00e9mission \u00e0 acqu\u00e9rir": {}
-            }, 
+            },
             "45-Groupe et associ\u00e9s (PASSIF)": {
-                "451-Groupe (PASSIF)": {}, 
+                "451-Groupe (PASSIF)": {},
                 "455-Associ\u00e9s - Comptes courants (PASSIF)": {
-                    "4551-Principal (PASSIF)": {}, 
+                    "4551-Principal (PASSIF)": {},
                     "4558-Int\u00e9r\u00eats courus (PASSIF)": {}
-                }, 
+                },
                 "456-Associ\u00e9s - Op\u00e9rations sur le capital (PASSIF)": {
                     "4561-Associ\u00e9s - Comptes d'apport en soci\u00e9t\u00e9": {
-                        "45611-Apports en nature": {}, 
+                        "45611-Apports en nature": {},
                         "45615-Apports en num\u00e9raire": {}
-                    }, 
-                    "4563-Associ\u00e9s - Versements re\u00e7us sur augmentation de capital": {}, 
-                    "4564-Associ\u00e9s - Versements anticip\u00e9s": {}, 
-                    "4566-Actionnaires d\u00e9faillants": {}, 
+                    },
+                    "4563-Associ\u00e9s - Versements re\u00e7us sur augmentation de capital": {},
+                    "4564-Associ\u00e9s - Versements anticip\u00e9s": {},
+                    "4566-Actionnaires d\u00e9faillants": {},
                     "4567-Associ\u00e9s - Capital \u00e0 rembourser": {}
-                }, 
-                "457-Associ\u00e9s - Dividendes \u00e0 payer": {}, 
+                },
+                "457-Associ\u00e9s - Dividendes \u00e0 payer": {},
                 "458-Associ\u00e9s - Op\u00e9rations faites en commun et en GIE": {
-                    "4581-Op\u00e9rations courantes": {}, 
+                    "4581-Op\u00e9rations courantes": {},
                     "4588-Int\u00e9r\u00eats courus": {}
                 }
-            }, 
+            },
             "46-D\u00e9biteurs divers et cr\u00e9diteurs divers (PASSIF)": {
-                "464-Dettes sur acquisitions de valeurs mobili\u00e8res de placement": {}, 
-                "467-Autres comptes d\u00e9biteurs ou cr\u00e9diteurs (PASSIF)": {}, 
+                "464-Dettes sur acquisitions de valeurs mobili\u00e8res de placement": {},
+                "467-Autres comptes d\u00e9biteurs ou cr\u00e9diteurs (PASSIF)": {},
                 "468-Divers - Charges \u00e0 payer et produits \u00e0 recevoir (PASSIF)": {
                     "4686-Charges \u00e0 payer": {}
                 }
-            }, 
+            },
             "47-Comptes transitoires ou d'attente (PASSIF)": {
                 "471-Comptes d'attente (PASSIF)": {
                     "account_type": "Temporary"
-                }, 
+                },
                 "477-Diff\u00e9rences de conversion (PASSIF)": {
-                    "4771-Augmentation des cr\u00e9ances": {}, 
-                    "4772-Diminution des dettes": {}, 
+                    "4771-Augmentation des cr\u00e9ances": {},
+                    "4772-Diminution des dettes": {},
                     "4778-Diff\u00e9rences compens\u00e9es par couverture de change": {}
-                }, 
+                },
                 "478-Autres comptes transitoires (PASSIF)": {
                     "4787-Diff\u00e9rences d'\u00e9valuation sur instruments de tr\u00e9sorerie (PASSIF)": {}
                 }
-            }, 
+            },
             "48-Comptes de r\u00e9gularisation (PASSIF)": {
-                "487-Produits constat\u00e9s d'avance": {}, 
+                "487-Produits constat\u00e9s d'avance": {},
                 "488-Comptes de r\u00e9partition p\u00e9riodique des charges et des produits (PASSIF)": {
                     "4887-Produits": {}
                 }
-            }, 
+            },
             "root_type": "Liability"
-        }, 
+        },
         "5-Comptes Financiers": {
             "50-Valeurs mobili\u00e8res de placement": {
-                "501-Parts dans des entreprises li\u00e9es": {}, 
+                "501-Parts dans des entreprises li\u00e9es": {},
                 "502-Actions propres": {
-                    "5021-Actions destin\u00e9es \u00e0 \u00eatre attribu\u00e9es aux employ\u00e9s et affect\u00e9es \u00e0 des plans d\u00e9termin\u00e9s": {}, 
+                    "5021-Actions destin\u00e9es \u00e0 \u00eatre attribu\u00e9es aux employ\u00e9s et affect\u00e9es \u00e0 des plans d\u00e9termin\u00e9s": {},
                     "5022-Actions disponibles pour \u00eatre attribu\u00e9es aux employ\u00e9s ou pour la r\u00e9gularisation des cours de bourse": {}
-                }, 
+                },
                 "503-Actions": {
-                    "5031-Titres cot\u00e9s": {}, 
+                    "5031-Titres cot\u00e9s": {},
                     "5035-Titres non cot\u00e9s": {}
-                }, 
-                "504-Autres titres conf\u00e9rant un droit de propri\u00e9t\u00e9": {}, 
-                "505-Obligations et bons \u00e9mis par la soci\u00e9t\u00e9 et rachet\u00e9s par elle": {}, 
+                },
+                "504-Autres titres conf\u00e9rant un droit de propri\u00e9t\u00e9": {},
+                "505-Obligations et bons \u00e9mis par la soci\u00e9t\u00e9 et rachet\u00e9s par elle": {},
                 "506-Obligations": {
-                    "5061-Titres cot\u00e9s": {}, 
+                    "5061-Titres cot\u00e9s": {},
                     "5065-Titres non cot\u00e9s": {}
-                }, 
-                "507-Bons du Tr\u00e9sor et bons de caisse \u00e0 court terme": {}, 
+                },
+                "507-Bons du Tr\u00e9sor et bons de caisse \u00e0 court terme": {},
                 "508-Autres valeurs mobili\u00e8res de placement et autres cr\u00e9ances assimil\u00e9es": {
-                    "5081-Autres valeurs mobili\u00e8res": {}, 
-                    "5082-Bons de souscription": {}, 
+                    "5081-Autres valeurs mobili\u00e8res": {},
+                    "5082-Bons de souscription": {},
                     "5088-Int\u00e9r\u00eats courus sur obligations, bons et valeurs assimil\u00e9es": {}
-                }, 
+                },
                 "509-Versements restant \u00e0 effectuer sur valeurs mobili\u00e8res de placement non lib\u00e9r\u00e9es": {}
-            }, 
+            },
             "51-Banques, \u00e9tablissements financiers et assimil\u00e9s": {
                 "511-Valeurs \u00e0 l'encaissement": {
-                    "5111-Coupons \u00e9chus \u00e0 l'encaissement": {}, 
-                    "5112-Ch\u00e8ques \u00e0 encaisser": {}, 
-                    "5113-Effets \u00e0 l'encaissement": {}, 
+                    "5111-Coupons \u00e9chus \u00e0 l'encaissement": {},
+                    "5112-Ch\u00e8ques \u00e0 encaisser": {},
+                    "5113-Effets \u00e0 l'encaissement": {},
                     "5114-Effets \u00e0 l'escompte": {}
-                }, 
+                },
                 "512-Banques": {
                     "5121-Comptes en monnaie nationale": {
                         "account_type": "Bank"
-                    }, 
+                    },
                     "5124-Comptes en devises": {
                         "account_type": "Bank"
-                    }, 
+                    },
                     "account_type": "Bank"
-                }, 
-                "514-Ch\u00e8ques postaux": {}, 
-                "515-\"Caisses\" du Tr\u00e9sor et des \u00e9tablissements publics": {}, 
-                "516-Soci\u00e9t\u00e9s de bourse": {}, 
-                "517-Autres organismes financiers": {}, 
+                },
+                "514-Ch\u00e8ques postaux": {},
+                "515-\"Caisses\" du Tr\u00e9sor et des \u00e9tablissements publics": {},
+                "516-Soci\u00e9t\u00e9s de bourse": {},
+                "517-Autres organismes financiers": {},
                 "518-Int\u00e9r\u00eats courus": {
-                    "5181-Int\u00e9r\u00eats courus \u00e0 payer": {}, 
+                    "5181-Int\u00e9r\u00eats courus \u00e0 payer": {},
                     "5188-Int\u00e9r\u00eats courus \u00e0 recevoir": {}
-                }, 
+                },
                 "519-Concours bancaires courants": {
-                    "5191-Cr\u00e9dit de mobilisation des cr\u00e9ances commerciales (CMCC)": {}, 
-                    "5193-Mobilisation de cr\u00e9ances n\u00e9es \u00e0 l'\u00e9tranger": {}, 
+                    "5191-Cr\u00e9dit de mobilisation des cr\u00e9ances commerciales (CMCC)": {},
+                    "5193-Mobilisation de cr\u00e9ances n\u00e9es \u00e0 l'\u00e9tranger": {},
                     "5198-Int\u00e9r\u00eats courus sur concours bancaires courants": {}
                 }
-            }, 
+            },
             "52-Instruments de tr\u00e9sorerie": {
                 "is_group": 1
-            }, 
+            },
             "53-Caisse": {
                 "531-Caisse si\u00e8ge social": {
                     "5311-Caisse en monnaie nationale": {
                         "account_type": "Cash"
-                    }, 
+                    },
                     "5314-Caisse en devises": {
                         "account_type": "Cash"
-                    }, 
+                    },
                     "account_type": "Cash"
-                }, 
+                },
                 "532-Caisse succursale (ou usine) A": {
                     "account_type": "Cash"
-                }, 
+                },
                 "533-Caisse succursale (ou usine) B": {
                     "account_type": "Cash"
-                }, 
+                },
                 "account_type": "Cash"
-            }, 
+            },
             "54-R\u00e9gies d'avance et accr\u00e9ditifs": {
                 "is_group": 1
-            }, 
+            },
             "58-Virements internes": {
                 "is_group": 1
-            }, 
+            },
             "59-D\u00e9pr\u00e9ciations des comptes financiers": {
                 "590-D\u00e9pr\u00e9ciations des valeurs mobili\u00e8res de placement": {
-                    "5903-Actions": {}, 
-                    "5904-Autres titres conf\u00e9rant un droit de propri\u00e9t\u00e9": {}, 
-                    "5906-Obligations": {}, 
+                    "5903-Actions": {},
+                    "5904-Autres titres conf\u00e9rant un droit de propri\u00e9t\u00e9": {},
+                    "5906-Obligations": {},
                     "5908-Autres valeurs mobili\u00e8res de placement et cr\u00e9ances assimil\u00e9es": {}
                 }
-            }, 
+            },
             "root_type": "Asset"
-        }, 
+        },
         "6-Comptes de Charges": {
             "60-Achats (sauf 603)": {
                 "601-Achats stock\u00e9s - Mati\u00e8res premi\u00e8res (et fournitures)": {
                     "6011-Mati\u00e8res (ou groupe) A": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6012-Mati\u00e8res (ou groupe) B": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6017-Fournitures A, B, C...": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "account_type": "Cost of Goods Sold"
-                }, 
+                },
                 "602-Achats stock\u00e9s - Autres approvisionnements": {
                     "6021-Mati\u00e8res consommables": {
                         "60211-Mati\u00e8res (ou groupe) C": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60212-Mati\u00e8res (ou groupe) D": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6022-Fournitures consommables": {
                         "60221-Combustibles": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60222-Produits d'entretien": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60223-Fournitures d'atelier et d'usine": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60224-Fournitures de magasin": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60225-Fournitures de bureau": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6026-Emballages": {
                         "60261-Emballages perdus": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60265-Emballages r\u00e9cup\u00e9rables non identifiables": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "60267-Emballages \u00e0 usage mixte": {
                             "account_type": "Cost of Goods Sold"
-                        }, 
+                        },
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "account_type": "Cost of Goods Sold"
-                }, 
+                },
                 "603-Variations des stocks (approvisionnements et marchandises)": {
                     "6031-Variation des stocks de mati\u00e8res premi\u00e8res (et fournitures)": {
                         "account_type": "Stock Adjustment"
-                    }, 
+                    },
                     "6032-Variation des stocks des autres approvisionnements": {
                         "account_type": "Stock Adjustment"
-                    }, 
+                    },
                     "6037-Variation des stocks de marchandises": {
                         "account_type": "Stock Adjustment"
-                    }, 
+                    },
                     "account_type": "Stock Adjustment"
-                }, 
+                },
                 "604-Achats d'\u00e9tudes et prestations de service": {
                     "account_type": "Cost of Goods Sold"
-                }, 
+                },
                 "605-Achats de mat\u00e9riel, \u00e9quipements et travaux": {
                     "account_type": "Cost of Goods Sold"
-                }, 
+                },
                 "606-Achats non stock\u00e9s de mati\u00e8res et founitures": {
                     "6061-Fournitures non stockables (eau, \u00e9nergie...)": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6063-Fournitures d'entretien et de petit \u00e9quipement": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6064-Fournitures administratives": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6068-Autres mati\u00e8res et fournitures": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "account_type": "Cost of Goods Sold"
-                }, 
+                },
                 "607-Achats de marchandises": {
                     "6071-Marchandises (ou groupe) A": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "6072-Marchandises (ou groupe) B": {
                         "account_type": "Cost of Goods Sold"
-                    }, 
+                    },
                     "account_type": "Cost of Goods Sold"
-                }, 
+                },
                 "608-(Compte r\u00e9serv\u00e9, le cas \u00e9ch\u00e9ant, \u00e0 la recapitulation des Frais accessoires incorpor\u00e9s aux achats)": {
                     "account_type": "Expenses Included In Valuation"
-                }, 
+                },
                 "609-Rabais, remises et ristournes obtenus sur achats": {
-                    "6091-Rabais, remises et ristournes obtenus sur achats - de mati\u00e8res premi\u00e8res (et fournitures)": {}, 
-                    "6092-Rabais, remises et ristournes obtenus sur achats - d'autres approvisionnements stock\u00e9s": {}, 
-                    "6094-Rabais, remises et ristournes obtenus sur achats - d'\u00e9tudes et prestations de services": {}, 
-                    "6095-Rabais, remises et ristournes obtenus sur achats - de mat\u00e9riel, \u00e9quipements et travaux": {}, 
-                    "6096-Rabais, remises et ristournes obtenus sur achats - d'approvisionnements non stock\u00e9s": {}, 
-                    "6097-Rabais, remises et ristournes obtenus sur achats - de marchandises": {}, 
+                    "6091-Rabais, remises et ristournes obtenus sur achats - de mati\u00e8res premi\u00e8res (et fournitures)": {},
+                    "6092-Rabais, remises et ristournes obtenus sur achats - d'autres approvisionnements stock\u00e9s": {},
+                    "6094-Rabais, remises et ristournes obtenus sur achats - d'\u00e9tudes et prestations de services": {},
+                    "6095-Rabais, remises et ristournes obtenus sur achats - de mat\u00e9riel, \u00e9quipements et travaux": {},
+                    "6096-Rabais, remises et ristournes obtenus sur achats - d'approvisionnements non stock\u00e9s": {},
+                    "6097-Rabais, remises et ristournes obtenus sur achats - de marchandises": {},
                     "6098-Rabais, remises et ristournes non affect\u00e9s": {}
                 }
-            }, 
+            },
             "61-Services ext\u00e9rieurs": {
-                "611-Sous-traitance g\u00e9n\u00e9rale": {}, 
+                "611-Sous-traitance g\u00e9n\u00e9rale": {},
                 "612-Redevances de cr\u00e9dit-bail": {
-                    "6122-Cr\u00e9dit-bail mobilier": {}, 
+                    "6122-Cr\u00e9dit-bail mobilier": {},
                     "6125-Cr\u00e9dit-bail immobilier": {}
-                }, 
+                },
                 "613-Locations": {
-                    "6132-Locations immobili\u00e8res": {}, 
-                    "6135-Locations mobili\u00e8res": {}, 
+                    "6132-Locations immobili\u00e8res": {},
+                    "6135-Locations mobili\u00e8res": {},
                     "6136-Malis sur emballages": {}
-                }, 
-                "614-Charges locatives et de copropri\u00e9t\u00e9": {}, 
+                },
+                "614-Charges locatives et de copropri\u00e9t\u00e9": {},
                 "615-Entretiens et r\u00e9parations": {
-                    "6152-Entretiens et r\u00e9parations - sur biens immobiliers": {}, 
-                    "6155-Entretiens et r\u00e9parations - sur biens mobiliers": {}, 
+                    "6152-Entretiens et r\u00e9parations - sur biens immobiliers": {},
+                    "6155-Entretiens et r\u00e9parations - sur biens mobiliers": {},
                     "6156-Maintenance": {}
-                }, 
+                },
                 "616-Primes d'assurance": {
-                    "6161-Multirisques": {}, 
-                    "6162-Assurance obligatoire dommage construction": {}, 
+                    "6161-Multirisques": {},
+                    "6162-Assurance obligatoire dommage construction": {},
                     "6163-Assurance-transport": {
-                        "61636-Assurance-transport - sur achats": {}, 
-                        "61637-Assurance-transport - sur ventes": {}, 
+                        "61636-Assurance-transport - sur achats": {},
+                        "61637-Assurance-transport - sur ventes": {},
                         "61638-Assurance-transport - sur autres biens": {}
-                    }, 
-                    "6164-Risques d'exploitation": {}, 
+                    },
+                    "6164-Risques d'exploitation": {},
                     "6165-Insolvabilit\u00e9 clients": {}
-                }, 
-                "617-Etudes et recherches": {}, 
+                },
+                "617-Etudes et recherches": {},
                 "618-Divers": {
-                    "6181-Documentation g\u00e9n\u00e9rale": {}, 
-                    "6183-Documentation technique": {}, 
+                    "6181-Documentation g\u00e9n\u00e9rale": {},
+                    "6183-Documentation technique": {},
                     "6185-Frais de colloques, s\u00e9minaires, conf\u00e9rences": {}
-                }, 
+                },
                 "619-Rabais, remises et ristournes obtenus sur services ext\u00e9rieurs": {}
-            }, 
+            },
             "62-Autres services ext\u00e9rieurs": {
                 "621-Personnel ext\u00e9rieur \u00e0 l'entreprise": {
-                    "6211-Personnel int\u00e9rimaire": {}, 
+                    "6211-Personnel int\u00e9rimaire": {},
                     "6214-Personnel d\u00e9tach\u00e9 ou pr\u00eat\u00e9 \u00e0 l'entreprise": {}
-                }, 
+                },
                 "622-R\u00e9mun\u00e9rations d'interm\u00e9diaires et honoraires": {
-                    "6221-Commissions et courtages sur achats": {}, 
-                    "6222-Commissions et courtages sur ventes": {}, 
-                    "6224-R\u00e9mun\u00e9rations des transitaires": {}, 
-                    "6225-R\u00e9mun\u00e9rations d'affacturage": {}, 
-                    "6226-Honoraires": {}, 
-                    "6227-Frais d'actes et de contentieux": {}, 
+                    "6221-Commissions et courtages sur achats": {},
+                    "6222-Commissions et courtages sur ventes": {},
+                    "6224-R\u00e9mun\u00e9rations des transitaires": {},
+                    "6225-R\u00e9mun\u00e9rations d'affacturage": {},
+                    "6226-Honoraires": {},
+                    "6227-Frais d'actes et de contentieux": {},
                     "6228-Divers": {}
-                }, 
+                },
                 "623-Publicit\u00e9, publications, relations publiques": {
-                    "6231-Annonces et insertions": {}, 
-                    "6232-Echantillons": {}, 
-                    "6233-Foires et expositions": {}, 
-                    "6234-Cadeaux \u00e0 la client\u00e8le": {}, 
-                    "6235-Primes": {}, 
-                    "6236-Catalogues et imprim\u00e9s": {}, 
-                    "6237-Publications": {}, 
+                    "6231-Annonces et insertions": {},
+                    "6232-Echantillons": {},
+                    "6233-Foires et expositions": {},
+                    "6234-Cadeaux \u00e0 la client\u00e8le": {},
+                    "6235-Primes": {},
+                    "6236-Catalogues et imprim\u00e9s": {},
+                    "6237-Publications": {},
                     "6238-Divers (pourboires, dons courants...)": {}
-                }, 
+                },
                 "624-Transports de biens et transports collectifs du personnel": {
-                    "6241-Transports sur achats": {}, 
+                    "6241-Transports sur achats": {},
                     "6242-Transports sur ventes": {
                         "account_type": "Chargeable"
-                    }, 
-                    "6243-Transports entre \u00e9tablissements ou chantiers": {}, 
-                    "6244-Transports administratifs": {}, 
-                    "6247-Transports collectifs du personnel": {}, 
+                    },
+                    "6243-Transports entre \u00e9tablissements ou chantiers": {},
+                    "6244-Transports administratifs": {},
+                    "6247-Transports collectifs du personnel": {},
                     "6248-Divers": {}
-                }, 
+                },
                 "625-D\u00e9placements, missions et r\u00e9ceptions": {
-                    "6251-Voyages et d\u00e9placements": {}, 
-                    "6255-Frais de d\u00e9m\u00e9nagement": {}, 
-                    "6256-Missions": {}, 
+                    "6251-Voyages et d\u00e9placements": {},
+                    "6255-Frais de d\u00e9m\u00e9nagement": {},
+                    "6256-Missions": {},
                     "6257-R\u00e9ceptions": {}
-                }, 
-                "626-Frais postaux et de t\u00e9l\u00e9communications": {}, 
+                },
+                "626-Frais postaux et de t\u00e9l\u00e9communications": {},
                 "627-Services bancaires et assimil\u00e9s": {
-                    "6271-Frais sur titres (achat, vente, garde)": {}, 
-                    "6272-Commissions et frais sur \u00e9mission d'emprunts": {}, 
-                    "6275-Frais sur effets": {}, 
-                    "6276-Location de coffres": {}, 
+                    "6271-Frais sur titres (achat, vente, garde)": {},
+                    "6272-Commissions et frais sur \u00e9mission d'emprunts": {},
+                    "6275-Frais sur effets": {},
+                    "6276-Location de coffres": {},
                     "6278-Autres frais et commissions sur prestations de services": {}
-                }, 
+                },
                 "628-Divers": {
-                    "6281-Concours divers (cotisations...)": {}, 
+                    "6281-Concours divers (cotisations...)": {},
                     "6284-Frais de recrutement de personnel": {}
-                }, 
+                },
                 "629-Rabais, remises et ristournes obtenus sur autres services ext\u00e9rieurs": {}
-            }, 
+            },
             "63-Imp\u00f4ts, taxes et versements assimil\u00e9s": {
                 "631-Imp\u00f4ts, taxes et versements assimil\u00e9s sur r\u00e9mun\u00e9rations (administrations des imp\u00f4ts)": {
-                    "6311-Taxes sur les salaires": {}, 
-                    "6312-Taxe d'apprentissage": {}, 
-                    "6313-Participation des employeurs \u00e0 la formation professionnelle continue": {}, 
-                    "6314-Cotisation pour d\u00e9faut d'investissement obligatoire dans la construction": {}, 
+                    "6311-Taxes sur les salaires": {},
+                    "6312-Taxe d'apprentissage": {},
+                    "6313-Participation des employeurs \u00e0 la formation professionnelle continue": {},
+                    "6314-Cotisation pour d\u00e9faut d'investissement obligatoire dans la construction": {},
                     "6318-Autres": {}
-                }, 
+                },
                 "633-Imp\u00f4ts, taxes et versements assimil\u00e9s sur r\u00e9mun\u00e9rations (autres organismes)": {
-                    "6331-Versement de transport": {}, 
-                    "6332-Allocations logement": {}, 
-                    "6333-Participation des employeurs \u00e0 la formation professionnelle continue": {}, 
-                    "6334-Participation des employeurs \u00e0 l'effort de construction": {}, 
-                    "6335-Versements lib\u00e9ratoires ouvrant droit \u00e0 l'\u00e9xon\u00e9ration de la taxe d'apprentissage": {}, 
+                    "6331-Versement de transport": {},
+                    "6332-Allocations logement": {},
+                    "6333-Participation des employeurs \u00e0 la formation professionnelle continue": {},
+                    "6334-Participation des employeurs \u00e0 l'effort de construction": {},
+                    "6335-Versements lib\u00e9ratoires ouvrant droit \u00e0 l'\u00e9xon\u00e9ration de la taxe d'apprentissage": {},
                     "6338-Autres": {}
-                }, 
+                },
                 "635-Autres imp\u00f4ts, taxes et versements assimil\u00e9s (administrations des imp\u00f4ts)": {
                     "6351-Imp\u00f4ts directs (sauf imp\u00f4ts sur les b\u00e9n\u00e9fices)": {
-                        "63511-Contribution \u00e9conomique territoriale": {}, 
-                        "63512-Taxes fonci\u00e8res": {}, 
-                        "63513-Autres imp\u00f4ts locaux": {}, 
+                        "63511-Contribution \u00e9conomique territoriale": {},
+                        "63512-Taxes fonci\u00e8res": {},
+                        "63513-Autres imp\u00f4ts locaux": {},
                         "63514-Taxe sur les v\u00e9hicules des soci\u00e9t\u00e9s": {}
-                    }, 
-                    "6352-Taxes sur le chiffre d'affaires non r\u00e9cup\u00e9rables": {}, 
-                    "6353-Imp\u00f4ts indirects": {}, 
+                    },
+                    "6352-Taxes sur le chiffre d'affaires non r\u00e9cup\u00e9rables": {},
+                    "6353-Imp\u00f4ts indirects": {},
                     "6354-Droits d'enregistrement et de timbre": {
                         "63541-Droits de mutation": {}
-                    }, 
+                    },
                     "6358-Autres droits": {}
-                }, 
+                },
                 "637-Autres imp\u00f4ts, taxes et versements assimil\u00e9s (autres organismes)": {
-                    "6371-Contribution sociale de solidarit\u00e9 \u00e0 la charge des soci\u00e9t\u00e9s": {}, 
-                    "6372-Taxes per\u00e7ues par les organismes publics internationaux": {}, 
-                    "6374-Imp\u00f4ts et taxes exigibles \u00e0 l'\u00e9tranger": {}, 
+                    "6371-Contribution sociale de solidarit\u00e9 \u00e0 la charge des soci\u00e9t\u00e9s": {},
+                    "6372-Taxes per\u00e7ues par les organismes publics internationaux": {},
+                    "6374-Imp\u00f4ts et taxes exigibles \u00e0 l'\u00e9tranger": {},
                     "6378-Taxes diverses": {}
                 }
-            }, 
+            },
             "64-Charges de personnel": {
                 "641-R\u00e9mun\u00e9rations du personnel": {
-                    "6411-Salaires, appointements": {}, 
-                    "6412-Cong\u00e9s pay\u00e9s": {}, 
-                    "6413-Primes et gratifications": {}, 
-                    "6414-Indemnit\u00e9s et avantages divers": {}, 
+                    "6411-Salaires, appointements": {},
+                    "6412-Cong\u00e9s pay\u00e9s": {},
+                    "6413-Primes et gratifications": {},
+                    "6414-Indemnit\u00e9s et avantages divers": {},
                     "6415-Suppl\u00e9ment familial": {}
-                }, 
-                "644-R\u00e9mun\u00e9ration du travail de l'exploitant": {}, 
+                },
+                "644-R\u00e9mun\u00e9ration du travail de l'exploitant": {},
                 "645-Charges de s\u00e9curit\u00e9 sociale et de pr\u00e9voyance": {
-                    "6451-Cotisations \u00e0 l'URSSAF": {}, 
-                    "6452-Cotisations aux mutuelles": {}, 
-                    "6453-Cotisations aux caisses de retraites": {}, 
+                    "6451-Cotisations \u00e0 l'URSSAF": {},
+                    "6452-Cotisations aux mutuelles": {},
+                    "6453-Cotisations aux caisses de retraites": {},
                     "6454-Cotisations aux ASSEDIC": {}
-                }, 
-                "646-Cotisations sociales personnelles de l'exploitant": {}, 
+                },
+                "646-Cotisations sociales personnelles de l'exploitant": {},
                 "647-Autres charges sociales": {
                     "is_group": 1
-                }, 
+                },
                 "648-Autres charges de personnel": {}
-            }, 
+            },
             "65-Autres charges de gestion courante": {
                 "651-Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {
-                    "6511-Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels": {}, 
-                    "6516-Droits d'auteur et de reproduction": {}, 
+                    "6511-Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels": {},
+                    "6516-Droits d'auteur et de reproduction": {},
                     "6518-Autres droits et valeurs similaires": {}
-                }, 
-                "653-Jetons de pr\u00e9sence": {}, 
+                },
+                "653-Jetons de pr\u00e9sence": {},
                 "654-Pertes sur cr\u00e9ances irr\u00e9couvrables": {
-                    "6541-Cr\u00e9ances de l'exercice": {}, 
+                    "6541-Cr\u00e9ances de l'exercice": {},
                     "6544-Cr\u00e9ances des exercices ant\u00e9rieurs": {}
-                }, 
+                },
                 "655-Quotes-parts de r\u00e9sultat sur op\u00e9rations faites en commun": {
-                    "6551-Quote-part de b\u00e9n\u00e9fice transf\u00e9r\u00e9e (comptabilit\u00e9 du g\u00e9rant)": {}, 
+                    "6551-Quote-part de b\u00e9n\u00e9fice transf\u00e9r\u00e9e (comptabilit\u00e9 du g\u00e9rant)": {},
                     "6555-Quote-part de perte support\u00e9e (comptabilit\u00e9 des associ\u00e9s non g\u00e9rants)": {}
-                }, 
-                "656-Pertes de change sur cr\u00e9ances et dettes commerciales": {}, 
+                },
+                "656-Pertes de change sur cr\u00e9ances et dettes commerciales": {},
                 "658-Charges diverses de gestion courante": {}
-            }, 
+            },
             "66-Charges financi\u00e8res": {
                 "661-Charges d'int\u00e9r\u00eats": {
                     "6611-Int\u00e9r\u00eats des emprunts et dettes": {
-                        "66116-Int\u00e9r\u00eats des emprunts et dettes - des emprunts et dettes assimil\u00e9es": {}, 
+                        "66116-Int\u00e9r\u00eats des emprunts et dettes - des emprunts et dettes assimil\u00e9es": {},
                         "66117-Int\u00e9r\u00eats des emprunts et dettes - des dettes rattach\u00e9es \u00e0 des participations": {}
-                    }, 
-                    "6612-Charges de la fiducie, r\u00e9sultat de la p\u00e9riode": {}, 
-                    "6615-Int\u00e9r\u00eats des comptes courants et des d\u00e9p\u00f4ts cr\u00e9diteurs": {}, 
-                    "6616-Int\u00e9r\u00eats bancaires et sur op\u00e9rations de financement (escompte...)": {}, 
-                    "6617-Int\u00e9r\u00eats des obligations cautionn\u00e9es": {}, 
+                    },
+                    "6612-Charges de la fiducie, r\u00e9sultat de la p\u00e9riode": {},
+                    "6615-Int\u00e9r\u00eats des comptes courants et des d\u00e9p\u00f4ts cr\u00e9diteurs": {},
+                    "6616-Int\u00e9r\u00eats bancaires et sur op\u00e9rations de financement (escompte...)": {},
+                    "6617-Int\u00e9r\u00eats des obligations cautionn\u00e9es": {},
                     "6618-Int\u00e9r\u00eats des autres dettes": {
-                        "66181-Int\u00e9r\u00eats des autres dettes - des dettes commerciales": {}, 
+                        "66181-Int\u00e9r\u00eats des autres dettes - des dettes commerciales": {},
                         "66188-Int\u00e9r\u00eats des autres dettes - des dettes diverses": {}
                     }
-                }, 
-                "664-Pertes sur cr\u00e9ances li\u00e9es \u00e0 des participations": {}, 
-                "665-Escomptes accord\u00e9s": {}, 
+                },
+                "664-Pertes sur cr\u00e9ances li\u00e9es \u00e0 des participations": {},
+                "665-Escomptes accord\u00e9s": {},
                 "666-Pertes de change financi\u00e8res": {
                     "account_type": "Round Off"
-                }, 
-                "667-Charges nettes sur cessions de valeurs mobili\u00e8res de placement": {}, 
+                },
+                "667-Charges nettes sur cessions de valeurs mobili\u00e8res de placement": {},
                 "668-Autres charges financi\u00e8res": {}
-            }, 
+            },
             "67-Charges exceptionnelles": {
                 "671-Charges exceptionnelles sur op\u00e9rations de gestion": {
-                    "6711-P\u00e9nalit\u00e9s sur march\u00e9s (et d\u00e9dits pay\u00e9s sur achats et ventes)": {}, 
-                    "6712-P\u00e9nalit\u00e9s, amendes fiscales et p\u00e9nales": {}, 
-                    "6713-Dons, lib\u00e9ralit\u00e9s": {}, 
-                    "6714-Cr\u00e9ances devenues irr\u00e9couvrables dans l'exercice": {}, 
-                    "6715-Subventions accord\u00e9es": {}, 
-                    "6717-Rappel d'imp\u00f4ts (autres qu'imp\u00f4ts sur les b\u00e9n\u00e9fices)": {}, 
+                    "6711-P\u00e9nalit\u00e9s sur march\u00e9s (et d\u00e9dits pay\u00e9s sur achats et ventes)": {},
+                    "6712-P\u00e9nalit\u00e9s, amendes fiscales et p\u00e9nales": {},
+                    "6713-Dons, lib\u00e9ralit\u00e9s": {},
+                    "6714-Cr\u00e9ances devenues irr\u00e9couvrables dans l'exercice": {},
+                    "6715-Subventions accord\u00e9es": {},
+                    "6717-Rappel d'imp\u00f4ts (autres qu'imp\u00f4ts sur les b\u00e9n\u00e9fices)": {},
                     "6718-Autres charges exceptionnelles sur op\u00e9rations de gestion": {}
-                }, 
-                "672-(Compte \u00e0 la disposition des entit\u00e9s pour enregistrer, en cours d'exercice, les charges sur exercices ant\u00e9rieurs)": {}, 
+                },
+                "672-(Compte \u00e0 la disposition des entit\u00e9s pour enregistrer, en cours d'exercice, les charges sur exercices ant\u00e9rieurs)": {},
                 "674-Op\u00e9rations de constitution ou liquidation des fiducies": {
-                    "6741-Op\u00e9rations li\u00e9es \u00e0 la constitution de la fiducie - transfert des \u00e9l\u00e9ments": {}, 
+                    "6741-Op\u00e9rations li\u00e9es \u00e0 la constitution de la fiducie - transfert des \u00e9l\u00e9ments": {},
                     "6742-Op\u00e9rations li\u00e9es \u00e0 la liquidation de la fiducie": {}
-                }, 
+                },
                 "675-Valeurs comptables des \u00e9l\u00e9ments d'actif c\u00e9d\u00e9s": {
-                    "6751-Immobilisations incorporelles": {}, 
-                    "6752-Immobilisations corporelles": {}, 
-                    "6756-Immobilisations financi\u00e8res": {}, 
+                    "6751-Immobilisations incorporelles": {},
+                    "6752-Immobilisations corporelles": {},
+                    "6756-Immobilisations financi\u00e8res": {},
                     "6758-Autres \u00e9l\u00e9ments d'actif": {}
-                }, 
+                },
                 "678-Autres charges exceptionnelles": {
-                    "6781-Mali provenant de clauses d'indexation": {}, 
-                    "6782-Lots": {}, 
-                    "6783-Malis provenant du rachat par l'entreprise d'actions et obligations \u00e9mises par elles-m\u00eame": {}, 
+                    "6781-Mali provenant de clauses d'indexation": {},
+                    "6782-Lots": {},
+                    "6783-Malis provenant du rachat par l'entreprise d'actions et obligations \u00e9mises par elles-m\u00eame": {},
                     "6788-Charges exceptionnelles diverses": {}
                 }
-            }, 
+            },
             "68-Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions": {
                 "681-Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions - Charges d'exploitation": {
                     "6811-Dotations aux amortissements sur immobilisations incorporelles et corporelles": {
                         "68111-Immobilisations incorporelles": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "68112-Immobilisations corporelles": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6812-Dotations aux amortissements des charges d'exploitation \u00e0 r\u00e9partir": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6815-Dotations aux provisions d'exploitation": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6816-Dotations aux d\u00e9pr\u00e9ciations des immobilisations incorporelles et corporelles": {
                         "68161-Immobilisations incorporelles": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "68162-Immobilisations corporelles": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6817-Dotations pour d\u00e9pr\u00e9ciations des actifs circulants": {
                         "68173-Stocks et en-cours": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "68174-Cr\u00e9ances": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "account_type": "Depreciation"
-                }, 
+                },
                 "686-Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions - Charges financi\u00e8res": {
                     "6861-Dotations aux amortissements des primes de remboursement des obligations": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6865-Dotations aux provisions financi\u00e8res": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6866-Dotations aux d\u00e9pr\u00e9ciations des \u00e9l\u00e9ments financiers": {
                         "68662-Immobilisations financi\u00e8res": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "68665-Valeurs mobili\u00e8res de placement": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6868-Autres dotations": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "account_type": "Depreciation"
-                }, 
+                },
                 "687-Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions - Charges exceptionnelles": {
                     "6871-Dotations aux amortissements exceptionnels des immobilisations": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6872-Dotations aux provisions r\u00e9glement\u00e9es (immobilisations)": {
                         "68725-Amortissements d\u00e9rogatoires": {
                             "account_type": "Depreciation"
-                        }, 
+                        },
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6873-Dotations aux provisions r\u00e9glement\u00e9es (stocks)": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6874-Dotations aux autres provisions r\u00e9glement\u00e9es": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6875-Dotations aux provisions exceptionnelles": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "6876-Dotations aux d\u00e9pr\u00e9ciations exceptionnelles": {
                         "account_type": "Depreciation"
-                    }, 
+                    },
                     "account_type": "Depreciation"
-                }, 
+                },
                 "account_type": "Depreciation"
-            }, 
+            },
             "69-Participation des salari\u00e9s, imp\u00f4ts sur les b\u00e9n\u00e9fices et assimil\u00e9s": {
-                "691-Participation des salari\u00e9s aux r\u00e9sultats": {}, 
+                "691-Participation des salari\u00e9s aux r\u00e9sultats": {},
                 "695-Imp\u00f4ts sur les b\u00e9n\u00e9fices": {
-                    "6951-Imp\u00f4ts dus en France": {}, 
-                    "6952-Contribution additionnelle \u00e0 l'imp\u00f4t sur les b\u00e9n\u00e9fices": {}, 
+                    "6951-Imp\u00f4ts dus en France": {},
+                    "6952-Contribution additionnelle \u00e0 l'imp\u00f4t sur les b\u00e9n\u00e9fices": {},
                     "6954-Imp\u00f4ts dus \u00e0 l'\u00e9tranger": {}
-                }, 
-                "696-Suppl\u00e9ments d'imp\u00f4ts sur les soci\u00e9t\u00e9s, li\u00e9s aux distributions": {}, 
+                },
+                "696-Suppl\u00e9ments d'imp\u00f4ts sur les soci\u00e9t\u00e9s, li\u00e9s aux distributions": {},
                 "698-Int\u00e9gration fiscale": {
-                    "6981-Int\u00e9gration fiscale - Charges": {}, 
+                    "6981-Int\u00e9gration fiscale - Charges": {},
                     "6989-Int\u00e9gration fiscale - Produits": {}
-                }, 
+                },
                 "699-Produits - Report en arri\u00e8re des d\u00e9ficits": {}
-            }, 
+            },
             "root_type": "Expense"
-        }, 
+        },
         "7-Comptes de Produits": {
             "70-Ventes de produits fabriqu\u00e9s, prestations de services, marchandises": {
                 "701-Ventes de produits finis": {
-                    "7011-Produits finis (ou groupe) A": {}, 
+                    "7011-Produits finis (ou groupe) A": {},
                     "7012-Produits (ou groupe) B": {}
-                }, 
-                "702-Ventes de produits interm\u00e9diaires": {}, 
-                "703-Ventes de produits r\u00e9siduels": {}, 
+                },
+                "702-Ventes de produits interm\u00e9diaires": {},
+                "703-Ventes de produits r\u00e9siduels": {},
                 "704-Travaux": {
-                    "7041-Travaux de cat\u00e9gorie (ou activit\u00e9) A": {}, 
+                    "7041-Travaux de cat\u00e9gorie (ou activit\u00e9) A": {},
                     "7042-Travaux de cat\u00e9gorie (ou activit\u00e9) B": {}
-                }, 
-                "705-Etudes": {}, 
-                "706-Prestations de services": {}, 
+                },
+                "705-Etudes": {},
+                "706-Prestations de services": {},
                 "707-Ventes de marchandises": {
-                    "7071-Marchandises (ou groupe) A": {}, 
+                    "7071-Marchandises (ou groupe) A": {},
                     "7072-Marchandises (ou groupe) B": {}
-                }, 
+                },
                 "708-Produits des activit\u00e9s annexes": {
-                    "7081-Produits des services exploit\u00e9s dans l'int\u00e9r\u00eat du personnel": {}, 
-                    "7082-Commissions et courtages": {}, 
-                    "7083-Locations diverses": {}, 
-                    "7084-Mise \u00e0 disposition de personnel factur\u00e9e": {}, 
-                    "7085-Ports et frais accessoires factur\u00e9s": {}, 
-                    "7086-Bonis sur reprises d'emballages consign\u00e9s": {}, 
-                    "7087-Bonifications obtenues des clients et primes sur ventes": {}, 
+                    "7081-Produits des services exploit\u00e9s dans l'int\u00e9r\u00eat du personnel": {},
+                    "7082-Commissions et courtages": {},
+                    "7083-Locations diverses": {},
+                    "7084-Mise \u00e0 disposition de personnel factur\u00e9e": {},
+                    "7085-Ports et frais accessoires factur\u00e9s": {},
+                    "7086-Bonis sur reprises d'emballages consign\u00e9s": {},
+                    "7087-Bonifications obtenues des clients et primes sur ventes": {},
                     "7088-Autres produits d'activit\u00e9s annexes (cessions d'approvisionnements...)": {}
-                }, 
+                },
                 "709-Rabais, remises et ristournes accord\u00e9s par l'entreprise": {
-                    "7091-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de produits finis": {}, 
-                    "7092-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de produits interm\u00e9diaires": {}, 
-                    "7094-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur travaux": {}, 
-                    "7095-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur \u00e9tudes": {}, 
-                    "7096-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur prestations de services": {}, 
-                    "7097-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de marchandises": {}, 
+                    "7091-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de produits finis": {},
+                    "7092-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de produits interm\u00e9diaires": {},
+                    "7094-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur travaux": {},
+                    "7095-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur \u00e9tudes": {},
+                    "7096-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur prestations de services": {},
+                    "7097-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de marchandises": {},
                     "7098-Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur produits des activit\u00e9s annexes": {}
                 }
-            }, 
+            },
             "71-Production stock\u00e9e (ou d\u00e9stockage)": {
                 "713-Variation des stocks (en-cours de production, produits)": {
                     "7133-Variation des en-cours de production de biens": {
-                        "71331-Produits en cours": {}, 
+                        "71331-Produits en cours": {},
                         "71335-Travaux en cours": {}
-                    }, 
+                    },
                     "7134-Variation des en-cours de production de services": {
-                        "71341-Etudes en cours": {}, 
+                        "71341-Etudes en cours": {},
                         "71345-Prestations de services en cours": {}
-                    }, 
+                    },
                     "7135-Variation des stocks de produits": {
-                        "71351-Produits interm\u00e9diaires": {}, 
-                        "71355-Produits finis": {}, 
+                        "71351-Produits interm\u00e9diaires": {},
+                        "71355-Produits finis": {},
                         "71358-Produits r\u00e9siduels": {}
                     }
                 }
-            }, 
+            },
             "72-Production immobilis\u00e9e": {
-                "721-Immobilisations incorporelles": {}, 
+                "721-Immobilisations incorporelles": {},
                 "722-Immobilisations corporelles": {}
-            }, 
+            },
             "74-Subventions d'exploitation": {
                 "is_group": 1
-            }, 
+            },
             "75-Autres produits de gestion courante": {
                 "751-Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {
-                    "7511-Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels": {}, 
-                    "7516-Droits d'auteur et de reproduction": {}, 
+                    "7511-Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels": {},
+                    "7516-Droits d'auteur et de reproduction": {},
                     "7518-Autres droits et valeurs similaires": {}
-                }, 
-                "752-Revenus des immeubles non affect\u00e9s aux activit\u00e9s professionnelles": {}, 
-                "753-Jetons de pr\u00e9sence et r\u00e9mun\u00e9rations d'administrateurs, g\u00e9rants...": {}, 
-                "754-Ristournes per\u00e7ues des coop\u00e9ratives (provenant des exc\u00e9dents)": {}, 
+                },
+                "752-Revenus des immeubles non affect\u00e9s aux activit\u00e9s professionnelles": {},
+                "753-Jetons de pr\u00e9sence et r\u00e9mun\u00e9rations d'administrateurs, g\u00e9rants...": {},
+                "754-Ristournes per\u00e7ues des coop\u00e9ratives (provenant des exc\u00e9dents)": {},
                 "755-Quotes-parts de r\u00e9sultats sur op\u00e9rations faites en commun": {
-                    "7551-Quote-part de perte transf\u00e9r\u00e9e (comptabilit\u00e9 du g\u00e9rant)": {}, 
+                    "7551-Quote-part de perte transf\u00e9r\u00e9e (comptabilit\u00e9 du g\u00e9rant)": {},
                     "7555-Quote-part de b\u00e9n\u00e9fice attribu\u00e9 (comptabilit\u00e9 des associ\u00e9s non g\u00e9rants)": {}
-                }, 
-                "756-Gains de change sur cr\u00e9ances et dettes commerciales": {}, 
+                },
+                "756-Gains de change sur cr\u00e9ances et dettes commerciales": {},
                 "758-Produits divers de gestion courante": {}
-            }, 
+            },
             "76-Produits financiers": {
                 "761-Produits de participations": {
-                    "7611-Revenus des titres de participation": {}, 
-                    "7612-Produits de la fiducie, r\u00e9sultat de la p\u00e9riode": {}, 
-                    "7616-Revenus sur autres formes de participation": {}, 
+                    "7611-Revenus des titres de participation": {},
+                    "7612-Produits de la fiducie, r\u00e9sultat de la p\u00e9riode": {},
+                    "7616-Revenus sur autres formes de participation": {},
                     "7617-Revenus des cr\u00e9ances rattach\u00e9es \u00e0 des participations": {}
-                }, 
+                },
                 "762-Produits des autres immobilisations financi\u00e8res": {
-                    "7621-Revenus des titres immobilis\u00e9s": {}, 
-                    "7626-Revenus des pr\u00eats": {}, 
+                    "7621-Revenus des titres immobilis\u00e9s": {},
+                    "7626-Revenus des pr\u00eats": {},
                     "7627-Revenus des cr\u00e9ances immobilis\u00e9es": {}
-                }, 
+                },
                 "763-Revenus des autres cr\u00e9ances": {
-                    "7631-Revenus des cr\u00e9ances commerciales": {}, 
+                    "7631-Revenus des cr\u00e9ances commerciales": {},
                     "7638-Revenus des cr\u00e9ances diverses": {}
-                }, 
-                "764-Revenus des valeurs mobili\u00e8res de placement": {}, 
-                "765-Escomptes obtenus": {}, 
+                },
+                "764-Revenus des valeurs mobili\u00e8res de placement": {},
+                "765-Escomptes obtenus": {},
                 "766-Gains de change financi\u00e8res": {
                     "account_type": "Round Off"
-                }, 
-                "767-Produits nets sur cessions de valeurs mobili\u00e8res de placement": {}, 
+                },
+                "767-Produits nets sur cessions de valeurs mobili\u00e8res de placement": {},
                 "768-Autres produits financiers": {}
-            }, 
+            },
             "77-Produits exceptionnels": {
                 "771-Produits exceptionnels sur op\u00e9rations de gestion": {
-                    "7711-D\u00e9dits et p\u00e9nalit\u00e9s per\u00e7us sur achats et sur ventes": {}, 
-                    "7713-Lib\u00e9ralit\u00e9s re\u00e7ues": {}, 
-                    "7714-Rentr\u00e9es sur cr\u00e9ances amorties": {}, 
-                    "7715-Subventions d'\u00e9quilibre": {}, 
-                    "7717-D\u00e9gr\u00e8vements d'imp\u00f4ts autres qu'imp\u00f4ts sur les b\u00e9n\u00e9fices": {}, 
+                    "7711-D\u00e9dits et p\u00e9nalit\u00e9s per\u00e7us sur achats et sur ventes": {},
+                    "7713-Lib\u00e9ralit\u00e9s re\u00e7ues": {},
+                    "7714-Rentr\u00e9es sur cr\u00e9ances amorties": {},
+                    "7715-Subventions d'\u00e9quilibre": {},
+                    "7717-D\u00e9gr\u00e8vements d'imp\u00f4ts autres qu'imp\u00f4ts sur les b\u00e9n\u00e9fices": {},
                     "7718-Autres produits exceptionnels sur op\u00e9rations de gestion": {}
-                }, 
-                "772-(Compte \u00e0 la disposition des entit\u00e9s pour enregistrer, en cours d'exercice, les Produits sur exercices ant\u00e9rieurs)": {}, 
+                },
+                "772-(Compte \u00e0 la disposition des entit\u00e9s pour enregistrer, en cours d'exercice, les Produits sur exercices ant\u00e9rieurs)": {},
                 "774-Op\u00e9rations de constitution ou liquidation des fiducies": {
-                    "7741-Op\u00e9rations li\u00e9es \u00e0 la constitution de la fiducie - transfert des \u00e9l\u00e9ments": {}, 
+                    "7741-Op\u00e9rations li\u00e9es \u00e0 la constitution de la fiducie - transfert des \u00e9l\u00e9ments": {},
                     "7742-Op\u00e9rations li\u00e9es \u00e0 la liquidation de la fiducie": {}
-                }, 
+                },
                 "775-Produits des cessions d'\u00e9l\u00e9ments d'actif": {
-                    "7751-Immobilisations incorporelles": {}, 
-                    "7752-Immobilisations corporelles": {}, 
-                    "7756-Immobilisations financi\u00e8res": {}, 
+                    "7751-Immobilisations incorporelles": {},
+                    "7752-Immobilisations corporelles": {},
+                    "7756-Immobilisations financi\u00e8res": {},
                     "7758-Autres \u00e9l\u00e9ments d'actif": {}
-                }, 
-                "777-Quote-part des subventions d'investissement vir\u00e9e au r\u00e9sultat de l'exercice": {}, 
+                },
+                "777-Quote-part des subventions d'investissement vir\u00e9e au r\u00e9sultat de l'exercice": {},
                 "778-Autres produits exceptionnels": {
-                    "7781-Bonis provenant de clauses d'indexation": {}, 
-                    "7782-Lots": {}, 
-                    "7783-Bonis provenant du rachat par l'entreprise d'actions et d'obligations \u00e9mises par elle-m\u00eame": {}, 
+                    "7781-Bonis provenant de clauses d'indexation": {},
+                    "7782-Lots": {},
+                    "7783-Bonis provenant du rachat par l'entreprise d'actions et d'obligations \u00e9mises par elle-m\u00eame": {},
                     "7788-Produits exceptionnels divers": {}
                 }
-            }, 
+            },
             "78-Reprises sur amortissements, d\u00e9pr\u00e9ciations et provisions": {
                 "781-Reprises sur amortissements, d\u00e9pr\u00e9ciations et provisions (\u00e0 inscrire dans les produits d'exploitation)": {
                     "7811-Reprises sur amortissements des immobilisations incorporelles et corporelles": {
-                        "78111-Immobilisations incorporelles": {}, 
+                        "78111-Immobilisations incorporelles": {},
                         "78112-Immobilisations corporelles": {}
-                    }, 
-                    "7815-Reprises sur provisions d'exploitation": {}, 
+                    },
+                    "7815-Reprises sur provisions d'exploitation": {},
                     "7816-Reprises sur d\u00e9pr\u00e9ciations des immobilisations corporelles et incorporelles": {
-                        "78161-Immobilisations incorporelles": {}, 
+                        "78161-Immobilisations incorporelles": {},
                         "78162-Immobilisations corporelles": {}
-                    }, 
+                    },
                     "7817-Reprises sur d\u00e9pr\u00e9ciations des actifs circulants": {
-                        "78173-Stocks et en-cours": {}, 
+                        "78173-Stocks et en-cours": {},
                         "78174-Cr\u00e9ances": {}
                     }
-                }, 
+                },
                 "786-Reprises sur d\u00e9pr\u00e9ciations et provisions (\u00e0 inscrire dans les produits financiers)": {
-                    "7865-Reprises sur provisions financi\u00e8res": {}, 
+                    "7865-Reprises sur provisions financi\u00e8res": {},
                     "7866-Reprises sur d\u00e9pr\u00e9ciations des \u00e9l\u00e9ments financiers": {
-                        "78662-Immobilisations financi\u00e8res": {}, 
+                        "78662-Immobilisations financi\u00e8res": {},
                         "78665-Valeurs mobili\u00e8res de placement": {}
                     }
-                }, 
+                },
                 "787-Reprises sur d\u00e9pr\u00e9ciations et provisions (\u00e0 inscrire dans les produits exceptionnels)": {
                     "7872-Reprises sur provisions r\u00e9glement\u00e9es (immobilisations)": {
-                        "78725-Amortissements d\u00e9rogatoires": {}, 
-                        "78726-Provision sp\u00e9ciale de r\u00e9\u00e9valuation": {}, 
+                        "78725-Amortissements d\u00e9rogatoires": {},
+                        "78726-Provision sp\u00e9ciale de r\u00e9\u00e9valuation": {},
                         "78727-Plus-values r\u00e9investies": {}
-                    }, 
-                    "7873-Reprises sur provisions r\u00e9glement\u00e9es (stocks)": {}, 
-                    "7874-Reprises sur autres provisions r\u00e9glement\u00e9es": {}, 
-                    "7875-Reprises sur provisions exceptionnelles": {}, 
+                    },
+                    "7873-Reprises sur provisions r\u00e9glement\u00e9es (stocks)": {},
+                    "7874-Reprises sur autres provisions r\u00e9glement\u00e9es": {},
+                    "7875-Reprises sur provisions exceptionnelles": {},
                     "7876-Reprises sur d\u00e9pr\u00e9ciations exceptionnelles": {}
                 }
-            }, 
+            },
             "79-Transferts de charges": {
-                "791-Transferts de charges d'exploitation": {}, 
-                "796-Transferts de charges financi\u00e8res": {}, 
+                "791-Transferts de charges d'exploitation": {},
+                "796-Transferts de charges financi\u00e8res": {},
                 "797-Transferts de charges exceptionnelles": {}
-            }, 
+            },
             "root_type": "Income"
         }
     }
diff --git a/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general_avec_code.json b/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general_avec_code.json
new file mode 100644
index 0000000..b667379
--- /dev/null
+++ b/erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general_avec_code.json
@@ -0,0 +1,3144 @@
+{
+    "country_code": "fr",
+    "name": "France - Plan Comptable General avec code",
+    "tree": {
+        "Comptes de Capitaux": {
+            "root_type": "Equity",
+            "Capital et R\u00e9serves": {
+                "Capital": {
+                    "Capital souscrit - non appel\u00e9": {
+                        "account_number": "1011"
+                    },
+                    "Capital souscrit - appel\u00e9, non vers\u00e9": {
+                        "account_number": "1012"
+                    },
+                    "Capital souscrit - appel\u00e9, vers\u00e9": {
+                        "Capital non amorti": {
+                            "account_number": "10131"
+                        },
+                        "Capital amorti": {
+                            "account_number": "10132"
+                        },
+                        "account_number": "1013"
+                    },
+                    "Capital souscrit soumis \u00e0 des r\u00e9glementations particuli\u00e8res": {
+                        "account_number": "1018"
+                    },
+                    "account_number": "101"
+                },
+                "Fonds fiduciaires": {
+                    "account_number": "102"
+                },
+                "Primes li\u00e9es au capital social": {
+                    "Primes d'\u00e9mission": {
+                        "account_number": "1041"
+                    },
+                    "Primes de fusion": {
+                        "account_number": "1042"
+                    },
+                    "Primes d'apport": {
+                        "account_number": "1043"
+                    },
+                    "Primes de conversion d'obligations en actions": {
+                        "account_number": "1044"
+                    },
+                    "Bons de souscription d'actions": {
+                        "account_number": "1045"
+                    },
+                    "account_number": "104"
+                },
+                "Ecarts de r\u00e9\u00e9valuation": {
+                    "R\u00e9serve sp\u00e9ciale de r\u00e9\u00e9valuation": {
+                        "account_number": "1051"
+                    },
+                    "Ecart de r\u00e9\u00e9valuation libre": {
+                        "account_number": "1052"
+                    },
+                    "R\u00e9serve de r\u00e9\u00e9valuation": {
+                        "account_number": "1053"
+                    },
+                    "Ecarts de r\u00e9\u00e9valuation (autres op\u00e9rations l\u00e9gales)": {
+                        "account_number": "1055"
+                    },
+                    "Autres \u00e9carts de r\u00e9\u00e9valuation en France": {
+                        "account_number": "1057"
+                    },
+                    "Autres \u00e9carts de r\u00e9\u00e9valuation \u00e0 l'\u00e9tranger": {
+                        "account_number": "1058"
+                    },
+                    "account_number": "105"
+                },
+                "R\u00e9serves": {
+                    "R\u00e9serve l\u00e9gale": {
+                        "R\u00e9serve l\u00e9gale proprement dite": {
+                            "account_number": "10611"
+                        },
+                        "Plus-values nettes \u00e0 long terme": {
+                            "account_number": "10612"
+                        },
+                        "account_number": "1061"
+                    },
+                    "R\u00e9serves indisponibles": {
+                        "account_number": "1062"
+                    },
+                    "R\u00e9serves statutaires ou contractuelles": {
+                        "account_number": "1063"
+                    },
+                    "R\u00e9serves r\u00e9glement\u00e9es": {
+                        "Plus-values nettes \u00e0 long terme": {
+                            "account_number": "10641"
+                        },
+                        "R\u00e9serves cons\u00e9cutives \u00e0 l'octroi de subventions d'investissement": {
+                            "account_number": "10643"
+                        },
+                        "Autres r\u00e9serves r\u00e9glement\u00e9es": {
+                            "account_number": "10648"
+                        },
+                        "account_number": "1064"
+                    },
+                    "Autres r\u00e9serves": {
+                        "R\u00e9serve de propre assureur": {
+                            "account_number": "10681"
+                        },
+                        "R\u00e9serves diverses": {
+                            "account_number": "10688"
+                        },
+                        "account_number": "1068"
+                    },
+                    "account_number": "106"
+                },
+                "Ecarts d'\u00e9quivalence": {
+                    "account_number": "107"
+                },
+                "Compte de l'exploitant": {
+                    "account_number": "108"
+                },
+                "Actionnaires: Capital souscrit - non appel\u00e9": {
+                    "account_number": "109"
+                },
+                "account_number": "10"
+            },
+            "Report \u00e0 Nouveau": {
+                "Report \u00e0 nouveau (solde cr\u00e9diteur)": {
+                    "account_number": "110"
+                },
+                "Report \u00e0 nouveau (solde d\u00e9biteur)": {
+                    "account_number": "119"
+                },
+                "account_number": "11"
+            },
+            "R\u00e9sultat de l'Exercice": {
+                "R\u00e9sultat de l'exercice (b\u00e9n\u00e9fice)": {
+                    "account_number": "120"
+                },
+                "R\u00e9sultat de l'exercice (perte)": {
+                    "account_number": "129"
+                },
+                "account_number": "12"
+            },
+            "Subventions d'Investissement": {
+                "Subventions d'\u00e9quipement": {
+                    "Etat": {
+                        "account_number": "1311"
+                    },
+                    "R\u00e9gions": {
+                        "account_number": "1312"
+                    },
+                    "D\u00e9partements": {
+                        "account_number": "1313"
+                    },
+                    "Communes": {
+                        "account_number": "1314"
+                    },
+                    "Collectivit\u00e9s publiques": {
+                        "account_number": "1315"
+                    },
+                    "Entreprises publiques": {
+                        "account_number": "1316"
+                    },
+                    "Entreprises et organismes priv\u00e9s": {
+                        "account_number": "1317"
+                    },
+                    "Autres": {
+                        "account_number": "1318"
+                    },
+                    "account_number": "131"
+                },
+                "Autres subventions d'investissement (m\u00eame ventilation que celle du compte 131)": {
+                    "account_number": "138"
+                },
+                "Subventions d'investissement inscrites au compte de r\u00e9sultat": {
+                    "Subventions d'\u00e9quipement": {
+                        "Etat": {
+                            "account_number": "13911"
+                        },
+                        "R\u00e9gions": {
+                            "account_number": "13912"
+                        },
+                        "D\u00e9partements": {
+                            "account_number": "13913"
+                        },
+                        "Communes": {
+                            "account_number": "13914"
+                        },
+                        "Collectivit\u00e9s publiques": {
+                            "account_number": "13915"
+                        },
+                        "Entreprises publiques": {
+                            "account_number": "13916"
+                        },
+                        "Entreprises et organismes priv\u00e9s": {
+                            "account_number": "13917"
+                        },
+                        "Autres": {
+                            "account_number": "13918"
+                        },
+                        "account_number": "1391"
+                    },
+                    "Autres subventions d'investissement (m\u00eame ventilation que celle du compte 1391)": {
+                        "account_number": "1398"
+                    },
+                    "account_number": "139"
+                },
+                "account_number": "13"
+            },
+            "Provisions R\u00e9glement\u00e9es": {
+                "Provisions r\u00e9glement\u00e9es relative aux immobilisations": {
+                    "Provisions pour reconstitution des gisements miniers et p\u00e9troliers": {
+                        "account_number": "1423"
+                    },
+                    "Provisions pour investissement (participation des salari\u00e9s)": {
+                        "account_number": "1424"
+                    },
+                    "account_number": "142"
+                },
+                "Provisions r\u00e9glement\u00e9es relatives aux stocks": {
+                    "Hausse des prix": {
+                        "account_number": "1431"
+                    },
+                    "Fluctuation des cours": {
+                        "account_number": "1432"
+                    },
+                    "account_number": "143"
+                },
+                "Provisions r\u00e9glement\u00e9es relatives aux autres \u00e9l\u00e9ments de l'actif": {
+                    "account_number": "144"
+                },
+                "Amortissements d\u00e9rogatoires": {
+                    "account_number": "145"
+                },
+                "Provision sp\u00e9ciale de r\u00e9\u00e9valuation": {
+                    "account_number": "146"
+                },
+                "Plus-values r\u00e9investies": {
+                    "account_number": "147"
+                },
+                "Autres provisions r\u00e9glement\u00e9es": {
+                    "account_number": "148"
+                },
+                "account_number": "14"
+            },
+            "Provisions": {
+                "Provisions pour risques": {
+                    "Provisions pour litiges": {
+                        "account_number": "1511"
+                    },
+                    "Provisions pour garanties donn\u00e9es aux clients": {
+                        "account_number": "1512"
+                    },
+                    "Provisions pour pertes sur march\u00e9s \u00e0 terme": {
+                        "account_number": "1513"
+                    },
+                    "Provisions pour amendes et p\u00e9nalit\u00e9s": {
+                        "account_number": "1514"
+                    },
+                    "Provisions pour pertes de change": {
+                        "account_number": "1515"
+                    },
+                    "Provisions pour pertes sur contrats": {
+                        "account_number": "1516"
+                    },
+                    "Autres provisions pour risques": {
+                        "account_number": "1518"
+                    },
+                    "account_number": "151"
+                },
+                "Provisions pour pensions et obligations similaires": {
+                    "account_number": "153"
+                },
+                "Provisions pour restructurations": {
+                    "account_number": "154"
+                },
+                "Provisions pour imp\u00f4ts": {
+                    "account_number": "155"
+                },
+                "Provisions pour renouvellement des immobilisations (entreprises concessionnaires) ": {
+                    "account_number": "156"
+                },
+                "Provisions pour charges \u00e0 r\u00e9partir sur plusieurs exercices": {
+                    "Provisions pour gros entretien ou grandes r\u00e9visions": {
+                        "account_number": "1572"
+                    },
+                    "account_number": "157"
+                },
+                "Autres provisions pour charges": {
+                    "Provisions pour remises en \u00e9tat": {
+                        "account_number": "1581"
+                    },
+                    "account_number": "158"
+                },
+                "account_number": "15"
+            },
+            "Emprunts et Dettes Assimil\u00e9es": {
+                "Emprunts obligataires convertibles": {
+                    "account_number": "161"
+                },
+                "Obligations repr\u00e9sentatives de passifs nets remis en fiducie": {
+                    "account_number": "162"
+                },
+                "Autres emprunts obligataires": {
+                    "account_number": "163"
+                },
+                "Emprunts aupr\u00e8s des \u00e9tablissements de cr\u00e9dit": {
+                    "account_number": "164"
+                },
+                "D\u00e9p\u00f4ts et cautionnements re\u00e7us": {
+                    "D\u00e9p\u00f4ts": {
+                        "account_number": "1651"
+                    },
+                    "Cautionnements": {
+                        "account_number": "1655"
+                    },
+                    "account_number": "165"
+                },
+                "Participation des salari\u00e9s aux r\u00e9sultats": {
+                    "Comptes bloqu\u00e9s": {
+                        "account_number": "1661"
+                    },
+                    "Fonds de participation": {
+                        "account_number": "1662"
+                    },
+                    "account_number": "166"
+                },
+                "Emprunts et dettes assortis de conditions particuli\u00e8res": {
+                    "Emissions de titres participatifs": {
+                        "account_number": "1671"
+                    },
+                    "Avances conditionn\u00e9es de l'Etat": {
+                        "account_number": "1674"
+                    },
+                    "Emprunts participatifs": {
+                        "account_number": "1675"
+                    },
+                    "account_number": "167"
+                },
+                "Autres emprunts et dettes assimil\u00e9es": {
+                    "Autres emprunts": {
+                        "account_number": "1681"
+                    },
+                    "Rentes viag\u00e8res capitalis\u00e9es": {
+                        "account_number": "1685"
+                    },
+                    "Autres dettes": {
+                        "account_number": "1687"
+                    },
+                    "Int\u00e9r\u00eats courus": {
+                        "Int\u00e9r\u00eats courus sur emprunts obligataires convertibles": {
+                            "account_number": "16881"
+                        },
+                        "Int\u00e9r\u00eats courus sur autres emprunts obligataires": {
+                            "account_number": "16883"
+                        },
+                        "Int\u00e9r\u00eats courus sur emprunts aupr\u00e8s des \u00e9tablissements de cr\u00e9dit": {
+                            "account_number": "16884"
+                        },
+                        "Int\u00e9r\u00eats courus sur d\u00e9p\u00f4ts et cautionnements re\u00e7us": {
+                            "account_number": "16885"
+                        },
+                        "Int\u00e9r\u00eats courus sur participation des salari\u00e9s aux r\u00e9sultats": {
+                            "account_number": "16886"
+                        },
+                        "Int\u00e9r\u00eats courus sur emprunts et dettes assortis de conditions particuli\u00e8res": {
+                            "account_number": "16887"
+                        },
+                        "Int\u00e9r\u00eats courus sur autres emprunts et dettes assimil\u00e9es": {
+                            "account_number": "16888"
+                        },
+                        "account_number": "1688"
+                    },
+                    "Primes de remboursement des obligations": {
+                        "account_number": "169"
+                    },
+                    "account_number": "168"
+                },
+                "account_number": "16"
+            },
+            "Dettes Rattach\u00e9es \u00e0 des Participations": {
+                "Dettes rattach\u00e9es \u00e0 des participations (groupe)": {
+                    "account_number": "171"
+                },
+                "Dettes rattach\u00e9es \u00e0 des participations (hors groupe)": {
+                    "account_number": "174"
+                },
+                "Dettes rattach\u00e9es \u00e0 des soci\u00e9t\u00e9s en participation": {
+                    "Principal": {
+                        "account_number": "1781"
+                    },
+                    "Int\u00e9r\u00eats courus": {
+                        "account_number": "1788"
+                    },
+                    "account_number": "178"
+                },
+                "account_number": "17"
+            },
+            "Comptes de liaison des \u00e9tablisssements et soci\u00e9t\u00e9s en participation": {
+                "Comptes de liaison des \u00e9tablissements": {
+                    "account_number": "181"
+                },
+                "Biens et prestations de services \u00e9chang\u00e9s entre \u00e9tablissements (charges)": {
+                    "account_number": "186"
+                },
+                "Biens et prestations de services \u00e9chang\u00e9s entre \u00e9tablissements (produits)": {
+                    "account_number": "187"
+                },
+                "Comptes de liaison des soci\u00e9t\u00e9s en participation": {
+                    "account_number": "188"
+                },
+                "account_number": "18"
+            },
+            "account_number": "1"
+        },
+        "Comptes d'Immobilisations": {
+            "root_type": "Asset",
+            "Immobilisations incorporelles": {
+                "Frais \u00e9tablissement": {
+                    "Frais de constitution": {
+                        "account_number": "2011"
+                    },
+                    "Frais de premier \u00e9tablissement": {
+                        "Frais de prospection": {
+                            "account_number": "20121"
+                        },
+                        "Frais de publicit\u00e9": {
+                            "account_number": "20122"
+                        },
+                        "account_number": "2012"
+                    },
+                    "Frais d'augmentation de capital et d'op\u00e9rations diverses (fusions, scissions, transformations)": {
+                        "account_number": "2013"
+                    },
+                    "account_number": "201"
+                },
+                "Frais de recherche et de d\u00e9veloppement": {
+                    "account_number": "203"
+                },
+                "Concessions et droits similaires, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {
+                    "account_number": "205"
+                },
+                "Droit au bail": {
+                    "account_number": "206"
+                },
+                "Fonds commercial": {
+                    "account_number": "207"
+                },
+                "Autres immobilisations incorporelles": {
+                    "Mali de fusion sur actifs incorporels": {
+                        "account_number": "2081"
+                    },
+                    "account_number": "208"
+                },
+                "account_number": "20"
+            },
+            "Immobilisations corporelles": {
+                "account_type": "Fixed Asset",
+                "Terrains": {
+                    "account_type": "Fixed Asset",
+                    "Terrains nus": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2111"
+                    },
+                    "Terrains am\u00e9nag\u00e9s": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2112"
+                    },
+                    "Sous-sols et sur-sols": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2113"
+                    },
+                    "Terrains de carri\u00e8res (tr\u00e9fonds)": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2114"
+                    },
+                    "Terrains b\u00e2tis": {
+                        "account_type": "Fixed Asset",
+                        "Ensembles immobiliers industriels (A, B)": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21151"
+                        },
+                        "Ensembles immobiliers administratifs et commerciaux (A, B)": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21155"
+                        },
+                        "Autres ensembles immobiliers": {
+                            "account_type": "Fixed Asset",
+                            "Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations professionnelles (A, B)": {
+                                "account_type": "Fixed Asset",
+                                "account_number": "211581"
+                            },
+                            "Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations non professionnelles (A, B)": {
+                                "account_type": "Fixed Asset",
+                                "account_number": "211588"
+                            },
+                            "account_number": "21158"
+                        },
+                        "account_number": "2115"
+                    },
+                    "account_number": "211"
+                },
+                "Agencements et am\u00e9nagements de terrains (m\u00eame ventilation que celle du compte 211)": {
+                    "account_type": "Fixed Asset",
+                    "account_number": "212"
+                },
+                "Constructions": {
+                    "account_type": "Fixed Asset",
+                    "B\u00e2timents": {
+                        "account_type": "Fixed Asset",
+                        "Ensembles immobiliers industriels (A, B)": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21311"
+                        },
+                        "Ensembles immobiliers administratifs et commerciaux (A, B)": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21315"
+                        },
+                        "Autres ensembles immobiliers": {
+                            "account_type": "Fixed Asset",
+                            "Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations professionnelles (A, B)": {
+                                "account_type": "Fixed Asset",
+                                "account_number": "213181"
+                            },
+                            "Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations non professionnelles (A, B)": {
+                                "account_type": "Fixed Asset",
+                                "account_number": "213188"
+                            },
+                            "account_number": "21318"
+                        },
+                        "account_number": "2131"
+                    },
+                    "Installations g\u00e9n\u00e9rales, agencements, am\u00e9nagements des constructions": {
+                        "account_type": "Fixed Asset",
+                        "Ensembles immobiliers industriels (A, B)": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21351"
+                        },
+                        "Ensembles immobiliers administratifs et commerciaux (A, B)": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21355"
+                        },
+                        "Autres ensembles immobiliers": {
+                            "account_type": "Fixed Asset",
+                            "Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations professionnelles (A, B)": {
+                                "account_type": "Fixed Asset",
+                                "account_number": "213581"
+                            },
+                            "Autres ensembles immobiliers affect\u00e9s aux op\u00e9rations non professionnelles (A, B)": {
+                                "account_type": "Fixed Asset",
+                                "account_number": "213588"
+                            },
+                            "account_number": "21358"
+                        },
+                        "account_number": "2135"
+                    },
+                    "Ouvrages d'infrastructure": {
+                        "account_type": "Fixed Asset",
+                        "Voies de terre": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21381"
+                        },
+                        "Voies de fer": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21382"
+                        },
+                        "Voies d'eau": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21383"
+                        },
+                        "Barrages": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21384"
+                        },
+                        "Pistes d'a\u00e9rodromes": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21385"
+                        },
+                        "account_number": "2138"
+                    },
+                    "account_number": "213"
+                },
+                "Constructions sur sol d'autrui (m\u00eame ventilation que celle du compte 213)": {
+                    "account_type": "Fixed Asset",
+                    "account_number": "214"
+                },
+                "Installations techniques, mat\u00e9riel et outillage industriels": {
+                    "account_type": "Fixed Asset",
+                    "Installations complexes sp\u00e9cialis\u00e9es": {
+                        "account_type": "Fixed Asset",
+                        "Installations complexes sp\u00e9cialis\u00e9es - sur sol propre": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21511"
+                        },
+                        "Installations complexes sp\u00e9cialis\u00e9es - sur sol d'autrui": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21514"
+                        },
+                        "account_number": "2151"
+                    },
+                    "Installations \u00e0 caract\u00e8re sp\u00e9cifique": {
+                        "account_type": "Fixed Asset",
+                        "Installations \u00e0 caract\u00e8re sp\u00e9cifique - sur sol propre": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21531"
+                        },
+                        "Installations \u00e0 caract\u00e8re sp\u00e9cifique - sur sol d'autrui": {
+                            "account_type": "Fixed Asset",
+                            "account_number": "21534"
+                        },
+                        "account_number": "2153"
+                    },
+                    "Mat\u00e9riel industriel": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2154"
+                    },
+                    "Outillage industriel": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2155"
+                    },
+                    "Agencements et am\u00e9nagements du mat\u00e9riel et outillage industriel": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2157"
+                    },
+                    "account_number": "215"
+                },
+                "Autres immobilisations corporelles": {
+                    "account_type": "Fixed Asset",
+                    "Installations g\u00e9n\u00e9rales, agencements, am\u00e9nagements divers": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2181"
+                    },
+                    "Mat\u00e9riel de transport": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2182"
+                    },
+                    "Mat\u00e9riel de bureau et mat\u00e9riel informatique": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2183"
+                    },
+                    "Mobilier": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2184"
+                    },
+                    "Cheptel": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2185"
+                    },
+                    "Emballages r\u00e9cup\u00e9rables": {
+                        "account_type": "Fixed Asset",
+                        "account_number": "2186"
+                    },
+                    "Mali de fusion sur actifs corporels": {
+                        "account_number": "2187"
+                    },
+                    "account_number": "218"
+                },
+                "account_number": "21"
+            },
+            "Immobilisations mises en concession": {
+                "account_number": "22"
+            },
+            "Immobilisations en cours": {
+                "Immobilisations corporelles en cours": {
+                    "Terrains": {
+                        "account_number": "2312"
+                    },
+                    "Constructions": {
+                        "account_number": "2313"
+                    },
+                    "Installations techniques, mat\u00e9riel et outillage industriels": {
+                        "account_number": "2315"
+                    },
+                    "Autres immobilisations corporelles": {
+                        "account_number": "2318"
+                    },
+                    "account_number": "231"
+                },
+                "Immobilisations incorporelles en cours": {
+                    "account_number": "232"
+                },
+                "Avances et acomptes vers\u00e9s sur commandes d'immobilisations incorporelles": {
+                    "account_number": "237"
+                },
+                "Avances et acomptes vers\u00e9s sur commandes d'immobilisations corporelles": {
+                    "Terrains": {
+                        "account_number": "2382"
+                    },
+                    "Constructions": {
+                        "account_number": "2383"
+                    },
+                    "Installations techniques, mat\u00e9riel et outillage industriels": {
+                        "account_number": "2385"
+                    },
+                    "Autres immobilisations corporelles": {
+                        "account_number": "2388"
+                    },
+                    "account_number": "238"
+                },
+                "account_number": "23"
+            },
+            "Parts dans des entreprises li\u00e9es et cr\u00e9ances sur des entreprises li\u00e9es": {
+                "is_group": 1,
+                "account_number": "25"
+            },
+            "Participations et cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
+                "Titres de participation": {
+                    "Actions": {
+                        "account_number": "2611"
+                    },
+                    "Autres titres": {
+                        "account_number": "2618"
+                    },
+                    "account_number": "261"
+                },
+                "Autres formes de participation": {
+                    "Droit repr\u00e9sentatifs d'actifs nets remis en fiducie": {
+                        "account_number": "2661"
+                    },
+                    "account_number": "266"
+                },
+                "Cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
+                    "Cr\u00e9ances rattach\u00e9es \u00e0 des participations (groupe)": {
+                        "account_number": "2671"
+                    },
+                    "Cr\u00e9ances rattach\u00e9es \u00e0 des participations (hors groupe)": {
+                        "account_number": "2674"
+                    },
+                    "Versements repr\u00e9sentatifs d'apports non capitalis\u00e9s (appel de fonds)": {
+                        "account_number": "2675"
+                    },
+                    "Avances consolidables": {
+                        "account_number": "2676"
+                    },
+                    "Autres cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
+                        "account_number": "2677"
+                    },
+                    "Int\u00e9r\u00eats courus": {
+                        "account_number": "2678"
+                    },
+                    "account_number": "267"
+                },
+                "Cr\u00e9ances rattach\u00e9es \u00e0 des soci\u00e9t\u00e9s en participation": {
+                    "Principal": {
+                        "account_number": "2681"
+                    },
+                    "Int\u00e9r\u00eats courus": {
+                        "account_number": "2688"
+                    },
+                    "account_number": "268"
+                },
+                "Versements restant \u00e0 effectuer sur titres de participation non lib\u00e9r\u00e9s": {
+                    "account_number": "269"
+                },
+                "account_number": "26"
+            },
+            "Autres immobilisations financi\u00e8res": {
+                "Titres immobilis\u00e9s autres que les titres immobilis\u00e9s de l'activit\u00e9 de portefeuille (droit de propri\u00e9t\u00e9)": {
+                    "Actions": {
+                        "account_number": "2711"
+                    },
+                    "Autres titres": {
+                        "account_number": "2718"
+                    },
+                    "account_number": "271"
+                },
+                "Titres immobilis\u00e9s (droit de cr\u00e9ance)": {
+                    "Obligations": {
+                        "account_number": "2721"
+                    },
+                    "Bons": {
+                        "account_number": "2722"
+                    },
+                    "account_number": "272"
+                },
+                "Titres immobilis\u00e9s de l'activit\u00e9 de portefeuille": {
+                    "account_number": "273"
+                },
+                "Pr\u00eats": {
+                    "Pr\u00eats participatifs": {
+                        "account_number": "2741"
+                    },
+                    "Pr\u00eats aux associ\u00e9s": {
+                        "account_number": "2742"
+                    },
+                    "Pr\u00eats au personnel": {
+                        "account_number": "2743"
+                    },
+                    "Autres pr\u00eats": {
+                        "account_number": "2748"
+                    },
+                    "account_number": "274"
+                },
+                "D\u00e9p\u00f4ts et cautionnements vers\u00e9s": {
+                    "D\u00e9p\u00f4ts": {
+                        "account_number": "2751"
+                    },
+                    "Cautionnements": {
+                        "account_number": "2755"
+                    },
+                    "account_number": "275"
+                },
+                "Autres cr\u00e9ances immobilis\u00e9es": {
+                    "Cr\u00e9ances diverses": {
+                        "account_number": "2761"
+                    },
+                    "Int\u00e9r\u00eats courus": {
+                        "Int\u00e9r\u00eats courus sur titres immobilis\u00e9s (droit de cr\u00e9ance)": {
+                            "account_number": "27682"
+                        },
+                        "Int\u00e9r\u00eats courus sur pr\u00eats": {
+                            "account_number": "27684"
+                        },
+                        "Int\u00e9r\u00eats courus sur d\u00e9p\u00f4ts et cautionnements": {
+                            "account_number": "27685"
+                        },
+                        "Int\u00e9r\u00eats courus sur cr\u00e9ances diverses": {
+                            "account_number": "27688"
+                        },
+                        "account_number": "2768"
+                    },
+                    "account_number": "276"
+                },
+                "(Actions propres ou parts propres)": {
+                    "Actions propres ou parts propres": {
+                        "account_number": "2771"
+                    },
+                    "Actions propres ou parts propres en voie d'annulation": {
+                        "account_number": "2772"
+                    },
+                    "account_number": "277"
+                },
+                "Mali de fusion sur actifs financiers": {
+                    "account_number": "278"
+                },
+                "Versements restant \u00e0 effectuer sur titres immobilis\u00e9s non lib\u00e9r\u00e9s": {
+                    "account_number": "279"
+                },
+                "account_number": "27"
+            },
+            "Amortissements des immobilisations": {
+                "account_type": "Accumulated Depreciation",
+                "Amortissements des immobilisations incorporelles": {
+                    "account_type": "Accumulated Depreciation",
+                    "Frais d'\u00e9tablissement (m\u00eame ventilation que celle du compte 212)": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2801"
+                    },
+                    "Frais de recherche et de d\u00e9veloppement": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2803"
+                    },
+                    "Concessions et droits similaires, brevets, licences, logiciels, droits et valeurs similaires": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2805"
+                    },
+                    "Fonds commercial": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2807"
+                    },
+                    "Autres immobilisations incorporelles": {
+                        "account_type": "Accumulated Depreciation",
+                        "Mali de fusion sur actifs incorporels": {
+                            "account_type": "Accumulated Depreciation",
+                            "account_number": "28081"
+                        },
+                        "account_number": "2808"
+                    },
+                    "account_number": "280"
+                },
+                "Amortissements des immobilisations corporelles": {
+                    "account_type": "Accumulated Depreciation",
+                    "Terrains de gisement": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2811"
+                    },
+                    "Agencements, am\u00e9nagements de terrains (m\u00eame ventilation que celle du compte 212)": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2812"
+                    },
+                    "Constructions (m\u00eame ventilation que celle du compte 213)": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2813"
+                    },
+                    "Constructions sur sol d'autrui (m\u00eame ventilation que celle du compte du 214)": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2814"
+                    },
+                    "Installations techniques, mat\u00e9riel et outillage industriels (m\u00eame ventilation que celle du compte 218)": {
+                        "account_type": "Accumulated Depreciation",
+                        "account_number": "2815"
+                    },
+                    "Autres immobilisations corporelles (m\u00eame ventilation que celle du compte 218)": {
+                        "account_type": "Accumulated Depreciation",
+                        "Mali de fusion sur actifs corporels": {
+                            "account_type": "Accumulated Depreciation",
+                            "account_number": "28187"
+                        },
+                        "account_number": "2818"
+                    },
+                    "account_number": "281"
+                },
+                "Amortissements des immobilisations mises en concession": {
+                    "account_number": "282"
+                },
+                "account_number": "28"
+            },
+            "D\u00e9pr\u00e9ciations des immobilisations": {
+                "D\u00e9pr\u00e9ciations des immobilisations incorporelles": {
+                    "Marques,  proc\u00e9d\u00e9s, droits et valeurs similaires": {
+                        "account_number": "2905"
+                    },
+                    "Droit au bail": {
+                        "account_number": "2906"
+                    },
+                    "Fonds commercial": {
+                        "account_number": "2907"
+                    },
+                    "Autres immobilisations incorporelles": {
+                        "Mali de fusion sur actifs incorporels": {
+                            "account_number": "29081"
+                        },
+                        "account_number": "2908"
+                    },
+                    "account_number": "290"
+                },
+                "D\u00e9pr\u00e9ciations des immobilisations corporelles (m\u00eame ventilation que celle du compte 21)": {
+                    "Terrains (autres que terrains de gisement)": {
+                        "Mali de fusion sur actifs corporels": {
+                            "account_number": "29187"
+                        },
+                        "account_number": "2911"
+                    },
+                    "account_number": "291"
+                },
+                "D\u00e9pr\u00e9ciations des immobilisations mises en concession": {
+                    "account_number": "292"
+                },
+                "D\u00e9pr\u00e9ciations des immobilisations en cours": {
+                    "Immobilisations corporelles en cours": {
+                        "account_number": "2931"
+                    },
+                    "Immobilisations incorporelles en cours": {
+                        "account_number": "2932"
+                    },
+                    "account_number": "293"
+                },
+                "D\u00e9pr\u00e9ciations des participations et cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
+                    "Titres de participation": {
+                        "account_number": "2961"
+                    },
+                    "Autres formes de participation": {
+                        "account_number": "2966"
+                    },
+                    "Cr\u00e9ances rattach\u00e9es \u00e0 des participations (m\u00eame ventilation que celle du compte 267)": {
+                        "account_number": "2967"
+                    },
+                    "Cr\u00e9ances rattach\u00e9es \u00e0 des soci\u00e9t\u00e9s en participation (m\u00eame ventilation que celle du compte 268)": {
+                        "account_number": "2968"
+                    },
+                    "account_number": "296"
+                },
+                "D\u00e9pr\u00e9ciations des autres immobilisations financi\u00e8res": {
+                    "Titres immobilis\u00e9s autres que les titres immobilis\u00e9s de l'activit\u00e9 de portefeuille - droit de propri\u00e9t\u00e9": {
+                        "account_number": "2971"
+                    },
+                    "Titres immobilis\u00e9s - droit de cr\u00e9ance (m\u00eame ventilation que celle du compte 272)": {
+                        "account_number": "2972"
+                    },
+                    " Titres immobilis\u00e9s de l'activit\u00e9 de portefuille": {
+                        "account_number": "2973"
+                    },
+                    "Pr\u00eats (m\u00eame ventilation que celle du compte 274)": {
+                        "account_number": "2974"
+                    },
+                    "D\u00e9p\u00f4ts et cautionnements vers\u00e9s (m\u00eame ventilation que celle du compte 275)": {
+                        "account_number": "2975"
+                    },
+                    "Autres cr\u00e9ances immobilis\u00e9es (m\u00eame ventilation que celle du compte 276)": {
+                        "Mali de fusion sur actifs financiers": {
+                            "account_number": "29787"
+                        },
+                        "account_number": "2976"
+                    },
+                    "account_number": "297"
+                },
+                "account_number": "29"
+            },
+            "account_number": "2"
+        },
+        "Comptes de Stocks et En-Cours": {
+            "root_type": "Asset",
+            "Mati\u00e8res premi\u00e8res (et fournitures)": {
+                "Mati\u00e8res (ou groupe) A": {
+                    "account_number": "311"
+                },
+                "Mati\u00e8res (ou groupe) B": {
+                    "account_number": "312"
+                },
+                "Fournitures A, B, C, ...": {
+                    "account_number": "317"
+                },
+                "account_number": "31"
+            },
+            "Autres approvisionnements": {
+                "Mat\u00e8res consommables": {
+                    "Mati\u00e8res (ou groupe) C": {
+                        "account_number": "3211"
+                    },
+                    "Mati\u00e8res (ou groupe) D": {
+                        "account_number": "3212"
+                    },
+                    "account_number": "321"
+                },
+                "Fournitures consommables": {
+                    "Combustibles": {
+                        "account_number": "3221"
+                    },
+                    "Produits d'entretien": {
+                        "account_number": "3222"
+                    },
+                    "Fournitures d'atelier et d'usine": {
+                        "account_number": "3223"
+                    },
+                    "Fournitures de magasin": {
+                        "account_number": "3224"
+                    },
+                    "Fournitures de bureau": {
+                        "account_number": "3225"
+                    },
+                    "account_number": "322"
+                },
+                "Emballages": {
+                    "Emballages perdus": {
+                        "account_number": "3261"
+                    },
+                    "Emballages r\u00e9cup\u00e9rables non identifiables": {
+                        "account_number": "3265"
+                    },
+                    "Emballages \u00e0 usage mixte": {
+                        "account_number": "3267"
+                    },
+                    "account_number": "326"
+                },
+                "account_number": "32"
+            },
+            "En-cours de production de biens": {
+                "Produits en cours": {
+                    "Produits en cours P1": {
+                        "account_number": "3311"
+                    },
+                    "Produits en cours P2": {
+                        "account_number": "3312"
+                    },
+                    "account_number": "331"
+                },
+                "Travaux en cours": {
+                    "Travaux en cours T1": {
+                        "account_number": "3351"
+                    },
+                    "Travaux en cours T2": {
+                        "account_number": "3352"
+                    },
+                    "account_number": "335"
+                },
+                "account_number": "33"
+            },
+            "En-cours de production de services": {
+                "Etudes en cours": {
+                    "Etudes en cours E1": {
+                        "account_number": "3411"
+                    },
+                    "Etudes en cours E2": {
+                        "account_number": "3412"
+                    },
+                    "account_number": "341"
+                },
+                "Prestations de services en cours": {
+                    "Prestations de services S1": {
+                        "account_number": "3451"
+                    },
+                    "Prestations de services S2": {
+                        "account_number": "3452"
+                    },
+                    "account_number": "345"
+                },
+                "account_number": "34"
+            },
+            "Stocks de produits": {
+                "account_type": "Stock",
+                "Produits interm\u00e9diaires": {
+                    "account_type": "Stock",
+                    "Produits interm\u00e9diaires (ou groupe) A": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3511"
+                    },
+                    "Produits interm\u00e9diaires (ou groupe) B": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3512"
+                    },
+                    "account_number": "351"
+                },
+                "Produits finis": {
+                    "account_type": "Stock",
+                    "Produits finis (ou groupe) A": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3551"
+                    },
+                    "Produits finis (ou groupe) B": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3552"
+                    },
+                    "account_number": "355"
+                },
+                "Produits r\u00e9siduels (ou mati\u00e8res de r\u00e9cup\u00e9ration)": {
+                    "account_type": "Stock",
+                    "D\u00e9chets": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3581"
+                    },
+                    "Rebuts": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3585"
+                    },
+                    "Mati\u00e8res de r\u00e9cup\u00e9ration": {
+                        "account_type": "Stock",
+                        "is_group": 1,
+                        "account_number": "3586"
+                    },
+                    "account_number": "358"
+                },
+                "account_number": "35"
+            },
+            "(Compte \u00e0 ouvrir, le cas \u00e9ch\u00e9ant, sous l'intitul\u00e9 \"stocks provenant d'immobilisations\")": {
+                "account_number": "36"
+            },
+            "Stocks de marchandises": {
+                "Marchandises (ou groupe) A": {
+                    "account_number": "371"
+                },
+                "Marchandises (ou groupe) B": {
+                    "account_number": "372"
+                },
+                "account_number": "37"
+            },
+            "Stocks en voie d'acheminement, mis en d\u00e9p\u00f4t ou donn\u00e9s en consignation (en cas d'inventaire permanent en comptabilit\u00e9 g\u00e9n\u00e9rale)": {
+                "account_type": "Stock",
+                "account_number": "38"
+            },
+            "D\u00e9pr\u00e9ciations des stocks et en-cours": {
+                "D\u00e9pr\u00e9ciations des mati\u00e8res premi\u00e8res (et fournitures)": {
+                    "Mati\u00e8res (ou groupe) A": {
+                        "account_number": "3911"
+                    },
+                    "Mati\u00e8res (ou groupe) B": {
+                        "account_number": "3912"
+                    },
+                    "Fournitures A, B, C, ...": {
+                        "account_number": "3917"
+                    },
+                    "account_number": "391"
+                },
+                "D\u00e9pr\u00e9ciations des autres approvisionnements": {
+                    "Mati\u00e8res consommables (m\u00eame ventilation que celle du compte 321)": {
+                        "account_number": "3921"
+                    },
+                    "Fournitures consommables (m\u00eame ventilation que celle du compte 322)": {
+                        "account_number": "3922"
+                    },
+                    "Emballages (m\u00eame ventilation que celle du compte 326)": {
+                        "account_number": "3926"
+                    },
+                    "account_number": "392"
+                },
+                "D\u00e9pr\u00e9ciations des en-cours de production de biens": {
+                    "Etudes en cours (m\u00eame ventilation que celle du compte 341)": {
+                        "account_number": "3931"
+                    },
+                    "Travaux en cours (m\u00eame ventilation que celle du compte 335)": {
+                        "account_number": "3935"
+                    },
+                    "account_number": "393"
+                },
+                "D\u00e9pr\u00e9ciations des en-cours de production de services": {
+                    "Etudes en cours (m\u00eame ventilation que celle du compte 341)": {
+                        "account_number": "3941"
+                    },
+                    "Prestations de services en cours (m\u00eame ventilation que celle du compte 345)": {
+                        "account_number": "3945"
+                    },
+                    "account_number": "394"
+                },
+                "D\u00e9pr\u00e9ciations des stocks de produits": {
+                    "Produits interm\u00e9diaires (m\u00eame ventilation que celle du compte 351)": {
+                        "account_number": "3951"
+                    },
+                    "Produits finis (m\u00eame ventilation que celle du compte 355)": {
+                        "account_number": "3955"
+                    },
+                    "account_number": "395"
+                },
+                "D\u00e9pr\u00e9ciations des stocks de marchandises": {
+                    "Marchandise (ou groupe) A": {
+                        "account_number": "3971"
+                    },
+                    "Marchandise (ou groupe) B": {
+                        "account_number": "3972"
+                    },
+                    "account_number": "397"
+                },
+                "account_number": "39"
+            },
+            "account_number": "3"
+        },
+        "4-Comptes de Tiers (ACTIF)": {
+            "root_type": "Asset",
+            "40-Fournisseurs et Comptes Rattach\u00e9s (ACTIF)": {
+                "Fournisseurs d\u00e9biteurs": {
+                    "Fournisseurs - Avances et acomptes vers\u00e9s sur commandes": {
+                        "account_number": "4091"
+                    },
+                    "Fournisseurs - Cr\u00e9ances pour emballages et mat\u00e9riel \u00e0 rendre": {
+                        "account_number": "4096"
+                    },
+                    "Fournisseurs - Autres avoirs": {
+                        "Fournisseurs d'exploitation": {
+                            "account_number": "40971"
+                        },
+                        "Fournisseurs d'immobilisation": {
+                            "account_number": "40974"
+                        },
+                        "account_number": "4097"
+                    },
+                    "Rabais, remises, ristournes \u00e0 obtenir et autres avoirs non encore re\u00e7us": {
+                        "account_number": "4098"
+                    },
+                    "account_number": "409"
+                }
+            },
+            "41-Clients et comptes rattach\u00e9s (ACTIF)": {
+                "account_type": "Receivable",
+                "Clients et Comptes rattach\u00e9s": {
+                    "account_type": "Receivable",
+                    "account_number": "410"
+                },
+                "Clients": {
+                    "account_type": "Receivable",
+                    "Clients - Ventes de biens ou de prestations de services": {
+                        "account_type": "Receivable",
+                        "account_number": "4111"
+                    },
+                    "Clients - Retenues de garantie": {
+                        "account_type": "Receivable",
+                        "account_number": "4117"
+                    },
+                    "account_number": "411"
+                },
+                "Clients - Effets \u00e0 recevoir": {
+                    "account_type": "Receivable",
+                    "account_number": "413"
+                },
+                "Clients douteux ou litigieux": {
+                    "account_type": "Receivable",
+                    "account_number": "416"
+                },
+                "Clients - Produits non encore factur\u00e9s": {
+                    "account_type": "Receivable",
+                    "Clients - Factures \u00e0 \u00e9tablir": {
+                        "account_type": "Receivable",
+                        "account_number": "4181"
+                    },
+                    "Clients - Int\u00e9r\u00eats courus": {
+                        "account_type": "Receivable",
+                        "account_number": "4188"
+                    },
+                    "account_number": "418"
+                }
+            },
+            "42-Personnel et comptes rattach\u00e9s (ACTIF)": {
+                "Personnel - Avances et acomptes": {
+                    "account_number": "425"
+                }
+            },
+            "43-S\u00e9curit\u00e9 sociale et autres organismes sociaux (ACTIF)": {
+                "S\u00e9curit\u00e9 sociale": {
+                    "account_number": "431"
+                },
+                "Autres organismes sociaux": {
+                    "account_number": "437"
+                },
+                "438-Organismes sociaux - Produits \u00e0 recevoir": {
+                    "Produits \u00e0 recevoir": {
+                        "account_number": "4387"
+                    }
+                }
+            },
+            "44-Etat et autres collectivit\u00e9s publiques (ACTIF)": {
+                "Etat - Subventions \u00e0 recevoir": {
+                    "Subventions d'investissement": {
+                        "account_number": "4411"
+                    },
+                    "Subventions d'exploitation": {
+                        "account_number": "4417"
+                    },
+                    "Subventions d'\u00e9quilibre": {
+                        "account_number": "4418"
+                    },
+                    "Avances sur subventions": {
+                        "account_number": "4419"
+                    },
+                    "account_number": "441"
+                },
+                "Op\u00e9rations particuli\u00e8res avec l'Etat, les collectivit\u00e9s publiques, les organismes internationaux": {
+                    "Cr\u00e9ances sur l'Etat r\u00e9sultant de la suppression de la r\u00e8gle du d\u00e9calage d'un mois en mati\u00e8re de TVA": {
+                        "account_number": "4431"
+                    },
+                    "Int\u00e9r\u00eats courus sur cr\u00e9ances figurant au compte 4431": {
+                        "account_number": "4438"
+                    },
+                    "account_number": "443"
+                },
+                "Etat - Taxes sur le chiffre d'affaires (ACTIF)": {
+                    "TVA due intracommunautaire": {
+                        "account_number": "4452"
+                    },
+                    "Taxes sur le chiffre d'affaires d\u00e9ductibles": {
+                        "TVA sur immobilisations": {
+                            "account_number": "44562"
+                        },
+                        "TVA transf\u00e9r\u00e9e par d'autres entreprises": {
+                            "account_number": "44563"
+                        },
+                        "TVA sur autres biens et services": {
+                            "tax_rate": 20,
+                            "account_number": "44566"
+                        },
+                        "Cr\u00e9dit de TVA \u00e0 reporter": {
+                            "account_number": "44567"
+                        },
+                        "Taxes assimil\u00e9es \u00e0 la TVA": {
+                            "account_number": "44568"
+                        },
+                        "account_number": "4456"
+                    },
+                    "4458-Taxes sur le chiffre d'affaires \u00e0 r\u00e9gulariser ou en attente (ACTIF)": {
+                        "Acomptes - R\u00e9gime simplifi\u00e9 d'imposition": {
+                            "account_number": "44581"
+                        },
+                        "Acomptes - R\u00e9gime du forfait": {
+                            "account_number": "44582"
+                        },
+                        "Remboursement de taxes sur le chiffre d'affaires demand\u00e9": {
+                            "account_number": "44583"
+                        },
+                        "Taxes sur le chiffre d'affaires sur factures non parvenues": {
+                            "account_number": "44586"
+                        }
+                    }
+                },
+                "Etat - Charges \u00e0 payer et produits \u00e0 recevoir": {
+                    "Charges fiscales sur cong\u00e9s \u00e0 payer": {
+                        "account_number": "4482"
+                    },
+                    "Charges \u00e0 payer": {
+                        "account_number": "4486"
+                    },
+                    "Produits \u00e0 recevoir": {
+                        "account_number": "4487"
+                    },
+                    "account_number": "448"
+                }
+            },
+            "45-Groupe et associ\u00e9s (ACTIF)": {
+                "Associ\u00e9s - Op\u00e9rations sur le capital (ACTIF)": {
+                    "456-Apporteurs - Capital appel\u00e9, non vers\u00e9": {
+                        "Actionnaires - Capital souscrit et appel\u00e9, non vers\u00e9": {
+                            "account_number": "45621"
+                        },
+                        "Associ\u00e9s - Capital appel\u00e9, non vers\u00e9": {
+                            "account_number": "45625"
+                        },
+                        "account_number": "4562"
+                    }
+                }
+            },
+            "46-D\u00e9biteurs divers et cr\u00e9diteurs divers (ACTIF)": {
+                "Cr\u00e9ances sur cessions d'immobilisations": {
+                    "account_number": "462"
+                },
+                "Cr\u00e9ances sur cessions de valeurs mobili\u00e8res de placement": {
+                    "account_number": "465"
+                },
+                "467-Autres comptes d\u00e9biteurs ou cr\u00e9diteurs (ACTIF)": {},
+                "468-Divers - Charges \u00e0 payer et produits \u00e0 recevoir (ACTIF)": {
+                    "Produits \u00e0 recevoir": {
+                        "account_number": "4687"
+                    }
+                }
+            },
+            "47-Comptes transitoires ou d'attente (ACTIF)": {
+                "471-Comptes d'attente (ACTIF)": {
+                    "account_type": "Temporary"
+                },
+                "Diff\u00e9rences de conversion (ACTIF)": {
+                    "Diminution des cr\u00e9ances": {
+                        "account_number": "4761"
+                    },
+                    "Augmentation des dettes": {
+                        "account_number": "4762"
+                    },
+                    "Diff\u00e9rences compens\u00e9es par couverture de change": {
+                        "account_number": "4768"
+                    },
+                    "account_number": "476"
+                },
+                "Autres comptes transitoires (ACTIF)": {
+                    "Mali de fusion sur actif circulant": {
+                        "account_number": "4781"
+                    },
+                    "478-Diff\u00e9rences d'\u00e9valuation sur instruments de tr\u00e9sorerie (ACTIF)": {
+                        "account_number": "4786"
+                    }
+                }
+            },
+            "48-Comptes de r\u00e9gularisation (ACTIF)": {
+                "Charges \u00e0 r\u00e9partir sur plusieurs exercices": {
+                    "Frais d'\u00e9mission des emprunts": {
+                        "account_number": "4816"
+                    },
+                    "account_number": "481"
+                },
+                "Charges constat\u00e9es d'avance": {
+                    "account_number": "486"
+                },
+                "488-Comptes de r\u00e9partition p\u00e9riodique des charges et des produits (ACTIF)": {
+                    "Charges": {
+                        "account_number": "4886"
+                    }
+                }
+            },
+            "49-D\u00e9pr\u00e9ciation des comptes de tiers (ACTIF)": {
+                "D\u00e9pr\u00e9ciations des comptes clients": {
+                    "account_number": "491"
+                },
+                "D\u00e9pr\u00e9ciations des comptes du groupe et des associ\u00e9s": {
+                    "Comptes du groupe": {
+                        "account_number": "4951"
+                    },
+                    "Comptes courants des associ\u00e9s": {
+                        "account_number": "4955"
+                    },
+                    "Op\u00e9rations faites en commun et en GIE": {
+                        "account_number": "4958"
+                    },
+                    "account_number": "495"
+                },
+                "D\u00e9pr\u00e9ciations des comptes de d\u00e9biteurs divers": {
+                    "Cr\u00e9ances sur cessions d'immobilisations": {
+                        "account_number": "4962"
+                    },
+                    "Cr\u00e9ances sur cessions de valeurs mobili\u00e8res de placement": {
+                        "account_number": "4965"
+                    },
+                    "Autres comptes d\u00e9biteurs": {
+                        "account_number": "4967"
+                    },
+                    "account_number": "496"
+                }
+            }
+        },
+        "4-Comptes de Tiers (PASSIF)": {
+            "root_type": "Liability",
+            "40-Fournisseurs et Comptes Rattach\u00e9s (PASSIF)": {
+                "account_type": "Payable",
+                "Fournisseurs": {
+                    "account_type": "Payable",
+                    "Fournisseurs - Achats de biens ou de prestations de services": {
+                        "account_type": "Payable",
+                        "account_number": "4011"
+                    },
+                    "Fournisseurs - Retenues de garantie": {
+                        "account_type": "Payable",
+                        "account_number": "4017"
+                    },
+                    "account_number": "401"
+                },
+                "Fournisseurs - Effets \u00e0 payer": {
+                    "account_type": "Payable",
+                    "account_number": "403"
+                },
+                "Fournisseurs d'immobilisations": {
+                    "account_type": "Payable",
+                    "Fournisseurs - Achats d'immobilisations": {
+                        "account_type": "Payable",
+                        "account_number": "4041"
+                    },
+                    "Fournisseurs d'immobilisations - Retenues de garantie": {
+                        "account_type": "Payable",
+                        "account_number": "4047"
+                    },
+                    "account_number": "404"
+                },
+                "Fournisseurs d'immobilisations - Effets \u00e0 payer": {
+                    "account_type": "Payable",
+                    "account_number": "405"
+                },
+                "Fournisseurs - Factures non parvenues": {
+                    "account_type": "Stock Received But Not Billed",
+                    "Fournisseurs": {
+                        "account_type": "Stock Received But Not Billed",
+                        "account_number": "4081"
+                    },
+                    "Fournisseurs d'immobilisations": {
+                        "account_type": "Stock Received But Not Billed",
+                        "account_number": "4084"
+                    },
+                    "Fournisseurs - Int\u00e9r\u00eats courus": {
+                        "account_type": "Stock Received But Not Billed",
+                        "account_number": "4088"
+                    },
+                    "account_number": "408"
+                }
+            },
+            "41-Clients et comptes rattach\u00e9s (PASSIF)": {
+                "Clients cr\u00e9diteurs": {
+                    "Clients - Avances et acomptes re\u00e7us sur commandes": {
+                        "account_number": "4191"
+                    },
+                    "Clients - Dettes pour emballages et mat\u00e9riels consign\u00e9s": {
+                        "account_number": "4196"
+                    },
+                    "Clients - Autres avoirs": {
+                        "account_number": "4197"
+                    },
+                    "Rabais, remises, ristournes \u00e0 accorder et autres avoirs \u00e0 \u00e9tablir": {
+                        "account_number": "4198"
+                    },
+                    "account_number": "419"
+                }
+            },
+            "42-Personnel et comptes rattach\u00e9s (PASSIF)": {
+                "Personnel - R\u00e9mun\u00e9rations dues": {
+                    "account_number": "421"
+                },
+                "Comit\u00e9s d'entreprises, d'\u00e9tablissement...": {
+                    "account_number": "422"
+                },
+                "Participation des salari\u00e9s aux r\u00e9sultats": {
+                    "R\u00e9serve sp\u00e9ciale": {
+                        "account_number": "4246"
+                    },
+                    "Comptes courants": {
+                        "account_number": "4248"
+                    },
+                    "account_number": "424"
+                },
+                "Personnel - D\u00e9p\u00f4ts": {
+                    "account_number": "426"
+                },
+                "Personnel - Oppositions": {
+                    "account_number": "427"
+                },
+                "Personnel - Charges \u00e0 payer et produits \u00e0 recevoir": {
+                    "Dettes provisionn\u00e9es pour cong\u00e9s \u00e0 payer": {
+                        "account_number": "4282"
+                    },
+                    "Dettes provisionn\u00e9es pour participation des salari\u00e9s aux r\u00e9sultats": {
+                        "account_number": "4284"
+                    },
+                    "Autres charges \u00e0 payer": {
+                        "account_number": "4286"
+                    },
+                    "Produits \u00e0 recevoir": {
+                        "account_number": "4287"
+                    },
+                    "account_number": "428"
+                }
+            },
+            "43-S\u00e9curit\u00e9 sociale et autres organismes sociaux (PASSIF)": {
+                "438-Organismes sociaux - Charges \u00e0 payer": {
+                    "Charges sociales sur cong\u00e9s \u00e0 payer": {
+                        "account_number": "4382"
+                    },
+                    "Autres charges \u00e0 payer": {
+                        "account_number": "4386"
+                    }
+                }
+            },
+            "44-Etat et autres collectivit\u00e9s publiques (PASSIF)": {
+                "Etat - Imp\u00f4ts et taxes recouvrables sur des tiers": {
+                    "Obligataires": {
+                        "account_number": "4424"
+                    },
+                    "Associ\u00e9s": {
+                        "account_number": "4425"
+                    },
+                    "account_number": "442"
+                },
+                "Etat - Imp\u00f4ts sur les b\u00e9n\u00e9fices": {
+                    "account_number": "444"
+                },
+                "Etat - Taxes sur le chiffre d'affaires (PASSIF)": {
+                    "Taxes sur le chiffre d'affaires \u00e0 d\u00e9caisser": {
+                        "TVA \u00e0 d\u00e9caisser": {
+                            "account_number": "44551"
+                        },
+                        "Taxes assimil\u00e9es \u00e0 la TVA": {
+                            "account_number": "44558"
+                        },
+                        "account_number": "4455"
+                    },
+                    "Taxes sur le chiffre d'affaires collect\u00e9es par l'entreprise": {
+                        "TVA collect\u00e9e": {
+                            "account_type": "Tax",
+                            "is_group": 1,
+                            "account_number": "44571"
+                        },
+                        "Taxes assimil\u00e9es \u00e0 la TVA": {
+                            "account_number": "44578"
+                        },
+                        "account_number": "4457"
+                    },
+                    "4458-Taxes sur le chiffre d'affaires \u00e0 r\u00e9gulariser ou en attente (PASSIF)": {
+                        "TVA r\u00e9cup\u00e9r\u00e9e  d'avance": {
+                            "account_number": "44584"
+                        },
+                        "Taxes sur le chiffre d'affaires sur factures \u00e0 \u00e9tablir": {
+                            "account_number": "44587"
+                        }
+                    }
+                },
+                "Obligations cautionn\u00e9es": {
+                    "account_number": "446"
+                },
+                "Autres imp\u00f4ts, taxes et versements assimil\u00e9s": {
+                    "account_number": "447"
+                },
+                "Quotas d'\u00e9mission \u00e0 acqu\u00e9rir": {
+                    "account_number": "449"
+                }
+            },
+            "45-Groupe et associ\u00e9s (PASSIF)": {
+                "Groupe (PASSIF)": {
+                    "account_number": "451"
+                },
+                "Associ\u00e9s - Comptes courants (PASSIF)": {
+                    "Principal (PASSIF)": {
+                        "account_number": "4551"
+                    },
+                    "Int\u00e9r\u00eats courus (PASSIF)": {
+                        "account_number": "4558"
+                    },
+                    "account_number": "455"
+                },
+                "Associ\u00e9s - Op\u00e9rations sur le capital (PASSIF)": {
+                    "456-Associ\u00e9s - Comptes d'apport en soci\u00e9t\u00e9": {
+                        "Apports en nature": {
+                            "account_number": "45611"
+                        },
+                        "Apports en num\u00e9raire": {
+                            "account_number": "45615"
+                        },
+                        "account_number": "4561"
+                    },
+                    "Associ\u00e9s - Versements re\u00e7us sur augmentation de capital": {
+                        "account_number": "4563"
+                    },
+                    "Associ\u00e9s - Versements anticip\u00e9s": {
+                        "account_number": "4564"
+                    },
+                    "Actionnaires d\u00e9faillants": {
+                        "account_number": "4566"
+                    },
+                    "Associ\u00e9s - Capital \u00e0 rembourser": {
+                        "account_number": "4567"
+                    }
+                },
+                "Associ\u00e9s - Dividendes \u00e0 payer": {
+                    "account_number": "457"
+                },
+                "Associ\u00e9s - Op\u00e9rations faites en commun et en GIE": {
+                    "Op\u00e9rations courantes": {
+                        "account_number": "4581"
+                    },
+                    "Int\u00e9r\u00eats courus": {
+                        "account_number": "4588"
+                    },
+                    "account_number": "458"
+                }
+            },
+            "46-D\u00e9biteurs divers et cr\u00e9diteurs divers (PASSIF)": {
+                "Dettes sur acquisitions de valeurs mobili\u00e8res de placement": {
+                    "account_number": "464"
+                },
+                "467-Autres comptes d\u00e9biteurs ou cr\u00e9diteurs (PASSIF)": {},
+                "468-Divers - Charges \u00e0 payer et produits \u00e0 recevoir (PASSIF)": {
+                    "Charges \u00e0 payer": {
+                        "account_number": "4686"
+                    }
+                }
+            },
+            "47-Comptes transitoires ou d'attente (PASSIF)": {
+                "471-Comptes d'attente (PASSIF)": {
+                    "account_type": "Temporary"
+                },
+                "Diff\u00e9rences de conversion (PASSIF)": {
+                    "Augmentation des cr\u00e9ances": {
+                        "account_number": "4771"
+                    },
+                    "Diminution des dettes": {
+                        "account_number": "4772"
+                    },
+                    "Diff\u00e9rences compens\u00e9es par couverture de change": {
+                        "account_number": "4778"
+                    },
+                    "account_number": "477"
+                },
+                "478-Autres comptes transitoires (PASSIF)": {
+                    "Diff\u00e9rences d'\u00e9valuation sur instruments de tr\u00e9sorerie (PASSIF)": {
+                        "account_number": "4787"
+                    }
+                }
+            },
+            "48-Comptes de r\u00e9gularisation (PASSIF)": {
+                "Produits constat\u00e9s d'avance": {
+                    "account_number": "487"
+                },
+                "448-Comptes de r\u00e9partition p\u00e9riodique des charges et des produits (PASSIF)": {
+                    "Produits": {
+                        "account_number": "4887"
+                    }
+                }
+            }
+        },
+        "Comptes Financiers": {
+            "root_type": "Asset",
+            "Valeurs mobili\u00e8res de placement": {
+                "Parts dans des entreprises li\u00e9es": {
+                    "account_number": "501"
+                },
+                "Actions propres": {
+                    "Actions destin\u00e9es \u00e0 \u00eatre attribu\u00e9es aux employ\u00e9s et affect\u00e9es \u00e0 des plans d\u00e9termin\u00e9s": {
+                        "account_number": "5021"
+                    },
+                    "Actions disponibles pour \u00eatre attribu\u00e9es aux employ\u00e9s ou pour la r\u00e9gularisation des cours de bourse": {
+                        "account_number": "5022"
+                    },
+                    "account_number": "502"
+                },
+                "Actions": {
+                    "Titres cot\u00e9s": {
+                        "account_number": "5031"
+                    },
+                    "Titres non cot\u00e9s": {
+                        "account_number": "5035"
+                    },
+                    "account_number": "503"
+                },
+                "Autres titres conf\u00e9rant un droit de propri\u00e9t\u00e9": {
+                    "account_number": "504"
+                },
+                "Obligations et bons \u00e9mis par la soci\u00e9t\u00e9 et rachet\u00e9s par elle": {
+                    "account_number": "505"
+                },
+                "Obligations": {
+                    "Titres cot\u00e9s": {
+                        "account_number": "5061"
+                    },
+                    "Titres non cot\u00e9s": {
+                        "account_number": "5065"
+                    },
+                    "account_number": "506"
+                },
+                "Bons du Tr\u00e9sor et bons de caisse \u00e0 court terme": {
+                    "account_number": "507"
+                },
+                "Autres valeurs mobili\u00e8res de placement et autres cr\u00e9ances assimil\u00e9es": {
+                    "Autres valeurs mobili\u00e8res": {
+                        "account_number": "5081"
+                    },
+                    "Bons de souscription": {
+                        "account_number": "5082"
+                    },
+                    "Int\u00e9r\u00eats courus sur obligations, bons et valeurs assimil\u00e9es": {
+                        "account_number": "5088"
+                    },
+                    "account_number": "508"
+                },
+                "Versements restant \u00e0 effectuer sur valeurs mobili\u00e8res de placement non lib\u00e9r\u00e9es": {
+                    "account_number": "509"
+                },
+                "account_number": "50"
+            },
+            "Banques, \u00e9tablissements financiers et assimil\u00e9s": {
+                "Valeurs \u00e0 l'encaissement": {
+                    "Coupons \u00e9chus \u00e0 l'encaissement": {
+                        "account_number": "5111"
+                    },
+                    "Ch\u00e8ques \u00e0 encaisser": {
+                        "account_number": "5112"
+                    },
+                    "Effets \u00e0 l'encaissement": {
+                        "account_number": "5113"
+                    },
+                    "Effets \u00e0 l'escompte": {
+                        "account_number": "5114"
+                    },
+                    "account_number": "511"
+                },
+                "Banques": {
+                    "account_type": "Bank",
+                    "Comptes en monnaie nationale": {
+                        "account_type": "Bank",
+                        "account_number": "5121"
+                    },
+                    "Comptes en devises": {
+                        "account_type": "Bank",
+                        "account_number": "5124"
+                    },
+                    "account_number": "512"
+                },
+                "Ch\u00e8ques postaux": {
+                    "account_number": "514"
+                },
+                "\"Caisses\" du Tr\u00e9sor et des \u00e9tablissements publics": {
+                    "account_number": "515"
+                },
+                "Soci\u00e9t\u00e9s de bourse": {
+                    "account_number": "516"
+                },
+                "Autres organismes financiers": {
+                    "account_number": "517"
+                },
+                "Int\u00e9r\u00eats courus": {
+                    "Int\u00e9r\u00eats courus \u00e0 payer": {
+                        "account_number": "5181"
+                    },
+                    "Int\u00e9r\u00eats courus \u00e0 recevoir": {
+                        "account_number": "5188"
+                    },
+                    "account_number": "518"
+                },
+                "Concours bancaires courants": {
+                    "Cr\u00e9dit de mobilisation des cr\u00e9ances commerciales (CMCC)": {
+                        "account_number": "5191"
+                    },
+                    "Mobilisation de cr\u00e9ances n\u00e9es \u00e0 l'\u00e9tranger": {
+                        "account_number": "5193"
+                    },
+                    "Int\u00e9r\u00eats courus sur concours bancaires courants": {
+                        "account_number": "5198"
+                    },
+                    "account_number": "519"
+                },
+                "account_number": "51"
+            },
+            "Instruments de tr\u00e9sorerie": {
+                "is_group": 1,
+                "account_number": "52"
+            },
+            "Caisse": {
+                "account_type": "Cash",
+                "Caisse si\u00e8ge social": {
+                    "account_type": "Cash",
+                    "Caisse en monnaie nationale": {
+                        "account_type": "Cash",
+                        "account_number": "5311"
+                    },
+                    "Caisse en devises": {
+                        "account_type": "Cash",
+                        "account_number": "5314"
+                    },
+                    "account_number": "531"
+                },
+                "Caisse succursale (ou usine) A": {
+                    "account_type": "Cash",
+                    "account_number": "532"
+                },
+                "Caisse succursale (ou usine) B": {
+                    "account_type": "Cash",
+                    "account_number": "533"
+                },
+                "account_number": "53"
+            },
+            "R\u00e9gies d'avance et accr\u00e9ditifs": {
+                "is_group": 1,
+                "account_number": "54"
+            },
+            "Virements internes": {
+                "is_group": 1,
+                "account_number": "58"
+            },
+            "D\u00e9pr\u00e9ciations des comptes financiers": {
+                "D\u00e9pr\u00e9ciations des valeurs mobili\u00e8res de placement": {
+                    "Actions": {
+                        "account_number": "5903"
+                    },
+                    "Autres titres conf\u00e9rant un droit de propri\u00e9t\u00e9": {
+                        "account_number": "5904"
+                    },
+                    "Obligations": {
+                        "account_number": "5906"
+                    },
+                    "Autres valeurs mobili\u00e8res de placement et cr\u00e9ances assimil\u00e9es": {
+                        "account_number": "5908"
+                    },
+                    "account_number": "590"
+                },
+                "account_number": "59"
+            },
+            "account_number": "5"
+        },
+        "Comptes de Charges": {
+            "root_type": "Expense",
+            "Achats (sauf 603)": {
+                "Achats stock\u00e9s - Mati\u00e8res premi\u00e8res (et fournitures)": {
+                    "account_type": "Cost of Goods Sold",
+                    "Mati\u00e8res (ou groupe) A": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6011"
+                    },
+                    "Mati\u00e8res (ou groupe) B": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6012"
+                    },
+                    "Fournitures A, B, C...": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6017"
+                    },
+                    "account_number": "601"
+                },
+                "Achats stock\u00e9s - Autres approvisionnements": {
+                    "account_type": "Cost of Goods Sold",
+                    "Mati\u00e8res consommables": {
+                        "account_type": "Cost of Goods Sold",
+                        "Mati\u00e8res (ou groupe) C": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60211"
+                        },
+                        "Mati\u00e8res (ou groupe) D": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60212"
+                        },
+                        "account_number": "6021"
+                    },
+                    "Fournitures consommables": {
+                        "account_type": "Cost of Goods Sold",
+                        "Combustibles": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60221"
+                        },
+                        "Produits d'entretien": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60222"
+                        },
+                        "Fournitures d'atelier et d'usine": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60223"
+                        },
+                        "Fournitures de magasin": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60224"
+                        },
+                        "Fournitures de bureau": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60225"
+                        },
+                        "account_number": "6022"
+                    },
+                    "Emballages": {
+                        "account_type": "Cost of Goods Sold",
+                        "Emballages perdus": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60261"
+                        },
+                        "Emballages r\u00e9cup\u00e9rables non identifiables": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60265"
+                        },
+                        "Emballages \u00e0 usage mixte": {
+                            "account_type": "Cost of Goods Sold",
+                            "account_number": "60267"
+                        },
+                        "account_number": "6026"
+                    },
+                    "account_number": "602"
+                },
+                "Variations des stocks (approvisionnements et marchandises)": {
+                    "account_type": "Stock Adjustment",
+                    "Variation des stocks de mati\u00e8res premi\u00e8res (et fournitures)": {
+                        "account_type": "Stock Adjustment",
+                        "account_number": "6031"
+                    },
+                    "Variation des stocks des autres approvisionnements": {
+                        "account_type": "Stock Adjustment",
+                        "account_number": "6032"
+                    },
+                    "Variation des stocks de marchandises": {
+                        "account_type": "Stock Adjustment",
+                        "account_number": "6037"
+                    },
+                    "account_number": "603"
+                },
+                "Achats d'\u00e9tudes et prestations de service": {
+                    "account_type": "Cost of Goods Sold",
+                    "account_number": "604"
+                },
+                "Achats de mat\u00e9riel, \u00e9quipements et travaux": {
+                    "account_type": "Cost of Goods Sold",
+                    "account_number": "605"
+                },
+                "Achats non stock\u00e9s de mati\u00e8res et founitures": {
+                    "account_type": "Cost of Goods Sold",
+                    "Fournitures non stockables (eau, \u00e9nergie...)": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6061"
+                    },
+                    "Fournitures d'entretien et de petit \u00e9quipement": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6063"
+                    },
+                    "Fournitures administratives": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6064"
+                    },
+                    "Autres mati\u00e8res et fournitures": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6068"
+                    },
+                    "account_number": "606"
+                },
+                "Achats de marchandises": {
+                    "account_type": "Cost of Goods Sold",
+                    "Marchandises (ou groupe) A": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6071"
+                    },
+                    "Marchandises (ou groupe) B": {
+                        "account_type": "Cost of Goods Sold",
+                        "account_number": "6072"
+                    },
+                    "account_number": "607"
+                },
+                "(Compte r\u00e9serv\u00e9, le cas \u00e9ch\u00e9ant, \u00e0 la recapitulation des Frais accessoires incorpor\u00e9s aux achats)": {
+                    "account_type": "Expenses Included In Valuation",
+                    "account_number": "608"
+                },
+                "Rabais, remises et ristournes obtenus sur achats": {
+                    "Rabais, remises et ristournes obtenus sur achats - de mati\u00e8res premi\u00e8res (et fournitures)": {
+                        "account_number": "6091"
+                    },
+                    "Rabais, remises et ristournes obtenus sur achats - d'autres approvisionnements stock\u00e9s": {
+                        "account_number": "6092"
+                    },
+                    "Rabais, remises et ristournes obtenus sur achats - d'\u00e9tudes et prestations de services": {
+                        "account_number": "6094"
+                    },
+                    "Rabais, remises et ristournes obtenus sur achats - de mat\u00e9riel, \u00e9quipements et travaux": {
+                        "account_number": "6095"
+                    },
+                    "Rabais, remises et ristournes obtenus sur achats - d'approvisionnements non stock\u00e9s": {
+                        "account_number": "6096"
+                    },
+                    "Rabais, remises et ristournes obtenus sur achats - de marchandises": {
+                        "account_number": "6097"
+                    },
+                    "Rabais, remises et ristournes non affect\u00e9s": {
+                        "account_number": "6098"
+                    },
+                    "account_number": "609"
+                },
+                "account_number": "60"
+            },
+            "Services ext\u00e9rieurs": {
+                "Sous-traitance g\u00e9n\u00e9rale": {
+                    "account_number": "611"
+                },
+                "Redevances de cr\u00e9dit-bail": {
+                    "Cr\u00e9dit-bail mobilier": {
+                        "account_number": "6122"
+                    },
+                    "Cr\u00e9dit-bail immobilier": {
+                        "account_number": "6125"
+                    },
+                    "account_number": "612"
+                },
+                "Locations": {
+                    "Locations immobili\u00e8res": {
+                        "account_number": "6132"
+                    },
+                    "Locations mobili\u00e8res": {
+                        "account_number": "6135"
+                    },
+                    "Malis sur emballages": {
+                        "account_number": "6136"
+                    },
+                    "account_number": "613"
+                },
+                "Charges locatives et de copropri\u00e9t\u00e9": {
+                    "account_number": "614"
+                },
+                "Entretiens et r\u00e9parations": {
+                    "Entretiens et r\u00e9parations - sur biens immobiliers": {
+                        "account_number": "6152"
+                    },
+                    "Entretiens et r\u00e9parations - sur biens mobiliers": {
+                        "account_number": "6155"
+                    },
+                    "Maintenance": {
+                        "account_number": "6156"
+                    },
+                    "account_number": "615"
+                },
+                "Primes d'assurance": {
+                    "Multirisques": {
+                        "account_number": "6161"
+                    },
+                    "Assurance obligatoire dommage construction": {
+                        "account_number": "6162"
+                    },
+                    "Assurance-transport": {
+                        "Assurance-transport - sur achats": {
+                            "account_number": "61636"
+                        },
+                        "Assurance-transport - sur ventes": {
+                            "account_number": "61637"
+                        },
+                        "Assurance-transport - sur autres biens": {
+                            "account_number": "61638"
+                        },
+                        "account_number": "6163"
+                    },
+                    "Risques d'exploitation": {
+                        "account_number": "6164"
+                    },
+                    "Insolvabilit\u00e9 clients": {
+                        "account_number": "6165"
+                    },
+                    "account_number": "616"
+                },
+                "Etudes et recherches": {
+                    "account_number": "617"
+                },
+                "Divers": {
+                    "Documentation g\u00e9n\u00e9rale": {
+                        "account_number": "6181"
+                    },
+                    "Documentation technique": {
+                        "account_number": "6183"
+                    },
+                    "Frais de colloques, s\u00e9minaires, conf\u00e9rences": {
+                        "account_number": "6185"
+                    },
+                    "account_number": "618"
+                },
+                "Rabais, remises et ristournes obtenus sur services ext\u00e9rieurs": {
+                    "account_number": "619"
+                },
+                "account_number": "61"
+            },
+            "Autres services ext\u00e9rieurs": {
+                "Personnel ext\u00e9rieur \u00e0 l'entreprise": {
+                    "Personnel int\u00e9rimaire": {
+                        "account_number": "6211"
+                    },
+                    "Personnel d\u00e9tach\u00e9 ou pr\u00eat\u00e9 \u00e0 l'entreprise": {
+                        "account_number": "6214"
+                    },
+                    "account_number": "621"
+                },
+                "R\u00e9mun\u00e9rations d'interm\u00e9diaires et honoraires": {
+                    "Commissions et courtages sur achats": {
+                        "account_number": "6221"
+                    },
+                    "Commissions et courtages sur ventes": {
+                        "account_number": "6222"
+                    },
+                    "R\u00e9mun\u00e9rations des transitaires": {
+                        "account_number": "6224"
+                    },
+                    "R\u00e9mun\u00e9rations d'affacturage": {
+                        "account_number": "6225"
+                    },
+                    "Honoraires": {
+                        "account_number": "6226"
+                    },
+                    "Frais d'actes et de contentieux": {
+                        "account_number": "6227"
+                    },
+                    "Divers": {
+                        "account_number": "6228"
+                    },
+                    "account_number": "622"
+                },
+                "Publicit\u00e9, publications, relations publiques": {
+                    "Annonces et insertions": {
+                        "account_number": "6231"
+                    },
+                    "Echantillons": {
+                        "account_number": "6232"
+                    },
+                    "Foires et expositions": {
+                        "account_number": "6233"
+                    },
+                    "Cadeaux \u00e0 la client\u00e8le": {
+                        "account_number": "6234"
+                    },
+                    "Primes": {
+                        "account_number": "6235"
+                    },
+                    "Catalogues et imprim\u00e9s": {
+                        "account_number": "6236"
+                    },
+                    "Publications": {
+                        "account_number": "6237"
+                    },
+                    "Divers (pourboires, dons courants...)": {
+                        "account_number": "6238"
+                    },
+                    "account_number": "623"
+                },
+                "Transports de biens et transports collectifs du personnel": {
+                    "Transports sur achats": {
+                        "account_number": "6241"
+                    },
+                    "Transports sur ventes": {
+                        "account_type": "Chargeable",
+                        "account_number": "6242"
+                    },
+                    "Transports entre \u00e9tablissements ou chantiers": {
+                        "account_number": "6243"
+                    },
+                    "Transports administratifs": {
+                        "account_number": "6244"
+                    },
+                    "Transports collectifs du personnel": {
+                        "account_number": "6247"
+                    },
+                    "Divers": {
+                        "account_number": "6248"
+                    },
+                    "account_number": "624"
+                },
+                "D\u00e9placements, missions et r\u00e9ceptions": {
+                    "Voyages et d\u00e9placements": {
+                        "account_number": "6251"
+                    },
+                    "Frais de d\u00e9m\u00e9nagement": {
+                        "account_number": "6255"
+                    },
+                    "Missions": {
+                        "account_number": "6256"
+                    },
+                    "R\u00e9ceptions": {
+                        "account_number": "6257"
+                    },
+                    "account_number": "625"
+                },
+                "Frais postaux et de t\u00e9l\u00e9communications": {
+                    "account_number": "626"
+                },
+                "Services bancaires et assimil\u00e9s": {
+                    "Frais sur titres (achat, vente, garde)": {
+                        "account_number": "6271"
+                    },
+                    "Commissions et frais sur \u00e9mission d'emprunts": {
+                        "account_number": "6272"
+                    },
+                    "Frais sur effets": {
+                        "account_number": "6275"
+                    },
+                    "Location de coffres": {
+                        "account_number": "6276"
+                    },
+                    "Autres frais et commissions sur prestations de services": {
+                        "account_number": "6278"
+                    },
+                    "account_number": "627"
+                },
+                "Divers": {
+                    "Concours divers (cotisations...)": {
+                        "account_number": "6281"
+                    },
+                    "Frais de recrutement de personnel": {
+                        "account_number": "6284"
+                    },
+                    "account_number": "628"
+                },
+                "Rabais, remises et ristournes obtenus sur autres services ext\u00e9rieurs": {
+                    "account_number": "629"
+                },
+                "account_number": "62"
+            },
+            "Imp\u00f4ts, taxes et versements assimil\u00e9s": {
+                "Imp\u00f4ts, taxes et versements assimil\u00e9s sur r\u00e9mun\u00e9rations (administrations des imp\u00f4ts)": {
+                    "Taxes sur les salaires": {
+                        "account_number": "6311"
+                    },
+                    "Taxe d'apprentissage": {
+                        "account_number": "6312"
+                    },
+                    "Participation des employeurs \u00e0 la formation professionnelle continue": {
+                        "account_number": "6313"
+                    },
+                    "Cotisation pour d\u00e9faut d'investissement obligatoire dans la construction": {
+                        "account_number": "6314"
+                    },
+                    "Autres": {
+                        "account_number": "6318"
+                    },
+                    "account_number": "631"
+                },
+                "Imp\u00f4ts, taxes et versements assimil\u00e9s sur r\u00e9mun\u00e9rations (autres organismes)": {
+                    "Versement de transport": {
+                        "account_number": "6331"
+                    },
+                    "Allocations logement": {
+                        "account_number": "6332"
+                    },
+                    "Participation des employeurs \u00e0 la formation professionnelle continue": {
+                        "account_number": "6333"
+                    },
+                    "Participation des employeurs \u00e0 l'effort de construction": {
+                        "account_number": "6334"
+                    },
+                    "Versements lib\u00e9ratoires ouvrant droit \u00e0 l'\u00e9xon\u00e9ration de la taxe d'apprentissage": {
+                        "account_number": "6335"
+                    },
+                    "Autres": {
+                        "account_number": "6338"
+                    },
+                    "account_number": "633"
+                },
+                "Autres imp\u00f4ts, taxes et versements assimil\u00e9s (administrations des imp\u00f4ts)": {
+                    "Imp\u00f4ts directs (sauf imp\u00f4ts sur les b\u00e9n\u00e9fices)": {
+                        "Contribution \u00e9conomique territoriale": {
+                            "account_number": "63511"
+                        },
+                        "Taxes fonci\u00e8res": {
+                            "account_number": "63512"
+                        },
+                        "Autres imp\u00f4ts locaux": {
+                            "account_number": "63513"
+                        },
+                        "Taxe sur les v\u00e9hicules des soci\u00e9t\u00e9s": {
+                            "account_number": "63514"
+                        },
+                        "account_number": "6351"
+                    },
+                    "Taxes sur le chiffre d'affaires non r\u00e9cup\u00e9rables": {
+                        "account_number": "6352"
+                    },
+                    "Imp\u00f4ts indirects": {
+                        "account_number": "6353"
+                    },
+                    "Droits d'enregistrement et de timbre": {
+                        "Droits de mutation": {
+                            "account_number": "63541"
+                        },
+                        "account_number": "6354"
+                    },
+                    "Autres droits": {
+                        "account_number": "6358"
+                    },
+                    "account_number": "635"
+                },
+                "Autres imp\u00f4ts, taxes et versements assimil\u00e9s (autres organismes)": {
+                    "Contribution sociale de solidarit\u00e9 \u00e0 la charge des soci\u00e9t\u00e9s": {
+                        "account_number": "6371"
+                    },
+                    "Taxes per\u00e7ues par les organismes publics internationaux": {
+                        "account_number": "6372"
+                    },
+                    "Imp\u00f4ts et taxes exigibles \u00e0 l'\u00e9tranger": {
+                        "account_number": "6374"
+                    },
+                    "Taxes diverses": {
+                        "account_number": "6378"
+                    },
+                    "account_number": "637"
+                },
+                "account_number": "63"
+            },
+            "Charges de personnel": {
+                "R\u00e9mun\u00e9rations du personnel": {
+                    "Salaires, appointements": {
+                        "account_number": "6411"
+                    },
+                    "Cong\u00e9s pay\u00e9s": {
+                        "account_number": "6412"
+                    },
+                    "Primes et gratifications": {
+                        "account_number": "6413"
+                    },
+                    "Indemnit\u00e9s et avantages divers": {
+                        "account_number": "6414"
+                    },
+                    "Suppl\u00e9ment familial": {
+                        "account_number": "6415"
+                    },
+                    "account_number": "641"
+                },
+                "R\u00e9mun\u00e9ration du travail de l'exploitant": {
+                    "account_number": "644"
+                },
+                "Charges de s\u00e9curit\u00e9 sociale et de pr\u00e9voyance": {
+                    "Cotisations \u00e0 l'URSSAF": {
+                        "account_number": "6451"
+                    },
+                    "Cotisations aux mutuelles": {
+                        "account_number": "6452"
+                    },
+                    "Cotisations aux caisses de retraites": {
+                        "account_number": "6453"
+                    },
+                    "Cotisations aux ASSEDIC": {
+                        "account_number": "6454"
+                    },
+                    "account_number": "645"
+                },
+                "Cotisations sociales personnelles de l'exploitant": {
+                    "account_number": "646"
+                },
+                "Autres charges sociales": {
+                    "is_group": 1,
+                    "account_number": "647"
+                },
+                "Autres charges de personnel": {
+                    "account_number": "648"
+                },
+                "account_number": "64"
+            },
+            "Autres charges de gestion courante": {
+                "Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {
+                    "Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels": {
+                        "account_number": "6511"
+                    },
+                    "Droits d'auteur et de reproduction": {
+                        "account_number": "6516"
+                    },
+                    "Autres droits et valeurs similaires": {
+                        "account_number": "6518"
+                    },
+                    "account_number": "651"
+                },
+                "Jetons de pr\u00e9sence": {
+                    "account_number": "653"
+                },
+                "Pertes sur cr\u00e9ances irr\u00e9couvrables": {
+                    "Cr\u00e9ances de l'exercice": {
+                        "account_number": "6541"
+                    },
+                    "Cr\u00e9ances des exercices ant\u00e9rieurs": {
+                        "account_number": "6544"
+                    },
+                    "account_number": "654"
+                },
+                "Quotes-parts de r\u00e9sultat sur op\u00e9rations faites en commun": {
+                    "Quote-part de b\u00e9n\u00e9fice transf\u00e9r\u00e9e (comptabilit\u00e9 du g\u00e9rant)": {
+                        "account_number": "6551"
+                    },
+                    "Quote-part de perte support\u00e9e (comptabilit\u00e9 des associ\u00e9s non g\u00e9rants)": {
+                        "account_number": "6555"
+                    },
+                    "account_number": "655"
+                },
+                "Pertes de change sur cr\u00e9ances et dettes commerciales": {
+                    "account_number": "656"
+                },
+                "Charges diverses de gestion courante": {
+                    "account_number": "658"
+                },
+                "account_number": "65"
+            },
+            "Charges financi\u00e8res": {
+                "Charges d'int\u00e9r\u00eats": {
+                    "Int\u00e9r\u00eats des emprunts et dettes": {
+                        "Int\u00e9r\u00eats des emprunts et dettes - des emprunts et dettes assimil\u00e9es": {
+                            "account_number": "66116"
+                        },
+                        "Int\u00e9r\u00eats des emprunts et dettes - des dettes rattach\u00e9es \u00e0 des participations": {
+                            "account_number": "66117"
+                        },
+                        "account_number": "6611"
+                    },
+                    "Charges de la fiducie, r\u00e9sultat de la p\u00e9riode": {
+                        "account_number": "6612"
+                    },
+                    "Int\u00e9r\u00eats des comptes courants et des d\u00e9p\u00f4ts cr\u00e9diteurs": {
+                        "account_number": "6615"
+                    },
+                    "Int\u00e9r\u00eats bancaires et sur op\u00e9rations de financement (escompte...)": {
+                        "account_number": "6616"
+                    },
+                    "Int\u00e9r\u00eats des obligations cautionn\u00e9es": {
+                        "account_number": "6617"
+                    },
+                    "Int\u00e9r\u00eats des autres dettes": {
+                        "Int\u00e9r\u00eats des autres dettes - des dettes commerciales": {
+                            "account_number": "66181"
+                        },
+                        "Int\u00e9r\u00eats des autres dettes - des dettes diverses": {
+                            "account_number": "66188"
+                        },
+                        "account_number": "6618"
+                    },
+                    "account_number": "661"
+                },
+                "Pertes sur cr\u00e9ances li\u00e9es \u00e0 des participations": {
+                    "account_number": "664"
+                },
+                "Escomptes accord\u00e9s": {
+                    "account_number": "665"
+                },
+                "Pertes de change financi\u00e8res": {
+                    "account_type": "Round Off",
+                    "account_number": "666"
+                },
+                "Charges nettes sur cessions de valeurs mobili\u00e8res de placement": {
+                    "account_number": "667"
+                },
+                "Autres charges financi\u00e8res": {
+                    "account_number": "668"
+                },
+                "account_number": "66"
+            },
+            "Charges exceptionnelles": {
+                "Charges exceptionnelles sur op\u00e9rations de gestion": {
+                    "P\u00e9nalit\u00e9s sur march\u00e9s (et d\u00e9dits pay\u00e9s sur achats et ventes)": {
+                        "account_number": "6711"
+                    },
+                    "P\u00e9nalit\u00e9s, amendes fiscales et p\u00e9nales": {
+                        "account_number": "6712"
+                    },
+                    "Dons, lib\u00e9ralit\u00e9s": {
+                        "account_number": "6713"
+                    },
+                    "Cr\u00e9ances devenues irr\u00e9couvrables dans l'exercice": {
+                        "account_number": "6714"
+                    },
+                    "Subventions accord\u00e9es": {
+                        "account_number": "6715"
+                    },
+                    "Rappel d'imp\u00f4ts (autres qu'imp\u00f4ts sur les b\u00e9n\u00e9fices)": {
+                        "account_number": "6717"
+                    },
+                    "Autres charges exceptionnelles sur op\u00e9rations de gestion": {
+                        "account_number": "6718"
+                    },
+                    "account_number": "671"
+                },
+                "(Compte \u00e0 la disposition des entit\u00e9s pour enregistrer, en cours d'exercice, les charges sur exercices ant\u00e9rieurs)": {
+                    "account_number": "672"
+                },
+                "Op\u00e9rations de constitution ou liquidation des fiducies": {
+                    "Op\u00e9rations li\u00e9es \u00e0 la constitution de la fiducie - transfert des \u00e9l\u00e9ments": {
+                        "account_number": "6741"
+                    },
+                    "Op\u00e9rations li\u00e9es \u00e0 la liquidation de la fiducie": {
+                        "account_number": "6742"
+                    },
+                    "account_number": "674"
+                },
+                "Valeurs comptables des \u00e9l\u00e9ments d'actif c\u00e9d\u00e9s": {
+                    "Immobilisations incorporelles": {
+                        "account_number": "6751"
+                    },
+                    "Immobilisations corporelles": {
+                        "account_number": "6752"
+                    },
+                    "Immobilisations financi\u00e8res": {
+                        "account_number": "6756"
+                    },
+                    "Autres \u00e9l\u00e9ments d'actif": {
+                        "account_number": "6758"
+                    },
+                    "account_number": "675"
+                },
+                "Autres charges exceptionnelles": {
+                    "Mali provenant de clauses d'indexation": {
+                        "account_number": "6781"
+                    },
+                    "Lots": {
+                        "account_number": "6782"
+                    },
+                    "Malis provenant du rachat par l'entreprise d'actions et obligations \u00e9mises par elles-m\u00eame": {
+                        "account_number": "6783"
+                    },
+                    "Charges exceptionnelles diverses": {
+                        "account_number": "6788"
+                    },
+                    "account_number": "678"
+                },
+                "account_number": "67"
+            },
+            "Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions": {
+                "account_type": "Depreciation",
+                "Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions - Charges d'exploitation": {
+                    "account_type": "Depreciation",
+                    "Dotations aux amortissements sur immobilisations incorporelles et corporelles": {
+                        "account_type": "Depreciation",
+                        "Immobilisations incorporelles": {
+                            "account_type": "Depreciation",
+                            "account_number": "68111"
+                        },
+                        "Immobilisations corporelles": {
+                            "account_type": "Depreciation",
+                            "account_number": "68112"
+                        },
+                        "account_number": "6811"
+                    },
+                    "Dotations aux amortissements des charges d'exploitation \u00e0 r\u00e9partir": {
+                        "account_type": "Depreciation",
+                        "account_number": "6812"
+                    },
+                    "Dotations aux provisions d'exploitation": {
+                        "account_type": "Depreciation",
+                        "account_number": "6815"
+                    },
+                    "Dotations aux d\u00e9pr\u00e9ciations des immobilisations incorporelles et corporelles": {
+                        "account_type": "Depreciation",
+                        "Immobilisations incorporelles": {
+                            "account_type": "Depreciation",
+                            "account_number": "68161"
+                        },
+                        "Immobilisations corporelles": {
+                            "account_type": "Depreciation",
+                            "account_number": "68162"
+                        },
+                        "account_number": "6816"
+                    },
+                    "Dotations pour d\u00e9pr\u00e9ciations des actifs circulants": {
+                        "account_type": "Depreciation",
+                        "Stocks et en-cours": {
+                            "account_type": "Depreciation",
+                            "account_number": "68173"
+                        },
+                        "Cr\u00e9ances": {
+                            "account_type": "Depreciation",
+                            "account_number": "68174"
+                        },
+                        "account_number": "6817"
+                    },
+                    "account_number": "681"
+                },
+                "Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions - Charges financi\u00e8res": {
+                    "account_type": "Depreciation",
+                    "Dotations aux amortissements des primes de remboursement des obligations": {
+                        "account_type": "Depreciation",
+                        "account_number": "6861"
+                    },
+                    "Dotations aux provisions financi\u00e8res": {
+                        "account_type": "Depreciation",
+                        "account_number": "6865"
+                    },
+                    "Dotations aux d\u00e9pr\u00e9ciations des \u00e9l\u00e9ments financiers": {
+                        "account_type": "Depreciation",
+                        "Immobilisations financi\u00e8res": {
+                            "account_type": "Depreciation",
+                            "account_number": "68662"
+                        },
+                        "Valeurs mobili\u00e8res de placement": {
+                            "account_type": "Depreciation",
+                            "account_number": "68665"
+                        },
+                        "account_number": "6866"
+                    },
+                    "Autres dotations": {
+                        "account_type": "Depreciation",
+                        "account_number": "6868"
+                    },
+                    "account_number": "686"
+                },
+                "Dotations aux amortissements, d\u00e9pr\u00e9ciations et provisions - Charges exceptionnelles": {
+                    "account_type": "Depreciation",
+                    "Dotations aux amortissements exceptionnels des immobilisations": {
+                        "account_type": "Depreciation",
+                        "account_number": "6871"
+                    },
+                    "Dotations aux provisions r\u00e9glement\u00e9es (immobilisations)": {
+                        "account_type": "Depreciation",
+                        "Amortissements d\u00e9rogatoires": {
+                            "account_type": "Depreciation",
+                            "account_number": "68725"
+                        },
+                        "account_number": "6872"
+                    },
+                    "Dotations aux provisions r\u00e9glement\u00e9es (stocks)": {
+                        "account_type": "Depreciation",
+                        "account_number": "6873"
+                    },
+                    "Dotations aux autres provisions r\u00e9glement\u00e9es": {
+                        "account_type": "Depreciation",
+                        "account_number": "6874"
+                    },
+                    "Dotations aux provisions exceptionnelles": {
+                        "account_type": "Depreciation",
+                        "account_number": "6875"
+                    },
+                    "Dotations aux d\u00e9pr\u00e9ciations exceptionnelles": {
+                        "account_type": "Depreciation",
+                        "account_number": "6876"
+                    },
+                    "account_number": "687"
+                },
+                "account_number": "68"
+            },
+            "Participation des salari\u00e9s, imp\u00f4ts sur les b\u00e9n\u00e9fices et assimil\u00e9s": {
+                "Participation des salari\u00e9s aux r\u00e9sultats": {
+                    "account_number": "691"
+                },
+                "Imp\u00f4ts sur les b\u00e9n\u00e9fices": {
+                    "Imp\u00f4ts dus en France": {
+                        "account_number": "6951"
+                    },
+                    "Contribution additionnelle \u00e0 l'imp\u00f4t sur les b\u00e9n\u00e9fices": {
+                        "account_number": "6952"
+                    },
+                    "Imp\u00f4ts dus \u00e0 l'\u00e9tranger": {
+                        "account_number": "6954"
+                    },
+                    "account_number": "695"
+                },
+                "Suppl\u00e9ments d'imp\u00f4ts sur les soci\u00e9t\u00e9s, li\u00e9s aux distributions": {
+                    "account_number": "696"
+                },
+                "Int\u00e9gration fiscale": {
+                    "Int\u00e9gration fiscale - Charges": {
+                        "account_number": "6981"
+                    },
+                    "Int\u00e9gration fiscale - Produits": {
+                        "account_number": "6989"
+                    },
+                    "account_number": "698"
+                },
+                "Produits - Report en arri\u00e8re des d\u00e9ficits": {
+                    "account_number": "699"
+                },
+                "account_number": "69"
+            },
+            "account_number": "6"
+        },
+        "Comptes de Produits": {
+            "root_type": "Income",
+            "Ventes de produits fabriqu\u00e9s, prestations de services, marchandises": {
+                "Ventes de produits finis": {
+                    "Produits finis (ou groupe) A": {
+                        "account_number": "7011"
+                    },
+                    "Produits (ou groupe) B": {
+                        "account_number": "7012"
+                    },
+                    "account_number": "701"
+                },
+                "Ventes de produits interm\u00e9diaires": {
+                    "account_number": "702"
+                },
+                "Ventes de produits r\u00e9siduels": {
+                    "account_number": "703"
+                },
+                "Travaux": {
+                    "Travaux de cat\u00e9gorie (ou activit\u00e9) A": {
+                        "account_number": "7041"
+                    },
+                    "Travaux de cat\u00e9gorie (ou activit\u00e9) B": {
+                        "account_number": "7042"
+                    },
+                    "account_number": "704"
+                },
+                "Etudes": {
+                    "account_number": "705"
+                },
+                "Prestations de services": {
+                    "account_number": "706"
+                },
+                "Ventes de marchandises": {
+                    "Marchandises (ou groupe) A": {
+                        "account_number": "7071"
+                    },
+                    "Marchandises (ou groupe) B": {
+                        "account_number": "7072"
+                    },
+                    "account_number": "707"
+                },
+                "Produits des activit\u00e9s annexes": {
+                    "Produits des services exploit\u00e9s dans l'int\u00e9r\u00eat du personnel": {
+                        "account_number": "7081"
+                    },
+                    "Commissions et courtages": {
+                        "account_number": "7082"
+                    },
+                    "Locations diverses": {
+                        "account_number": "7083"
+                    },
+                    "Mise \u00e0 disposition de personnel factur\u00e9e": {
+                        "account_number": "7084"
+                    },
+                    "Ports et frais accessoires factur\u00e9s": {
+                        "account_number": "7085"
+                    },
+                    "Bonis sur reprises d'emballages consign\u00e9s": {
+                        "account_number": "7086"
+                    },
+                    "Bonifications obtenues des clients et primes sur ventes": {
+                        "account_number": "7087"
+                    },
+                    "Autres produits d'activit\u00e9s annexes (cessions d'approvisionnements...)": {
+                        "account_number": "7088"
+                    },
+                    "account_number": "708"
+                },
+                "Rabais, remises et ristournes accord\u00e9s par l'entreprise": {
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de produits finis": {
+                        "account_number": "7091"
+                    },
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de produits interm\u00e9diaires": {
+                        "account_number": "7092"
+                    },
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur travaux": {
+                        "account_number": "7094"
+                    },
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur \u00e9tudes": {
+                        "account_number": "7095"
+                    },
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur prestations de services": {
+                        "account_number": "7096"
+                    },
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur ventes de marchandises": {
+                        "account_number": "7097"
+                    },
+                    "Rabais, remises et ristournes accord\u00e9s par l'entreprise - sur produits des activit\u00e9s annexes": {
+                        "account_number": "7098"
+                    },
+                    "account_number": "709"
+                },
+                "account_number": "70"
+            },
+            "Production stock\u00e9e (ou d\u00e9stockage)": {
+                "Variation des stocks (en-cours de production, produits)": {
+                    "Variation des en-cours de production de biens": {
+                        "Produits en cours": {
+                            "account_number": "71331"
+                        },
+                        "Travaux en cours": {
+                            "account_number": "71335"
+                        },
+                        "account_number": "7133"
+                    },
+                    "Variation des en-cours de production de services": {
+                        "Etudes en cours": {
+                            "account_number": "71341"
+                        },
+                        "Prestations de services en cours": {
+                            "account_number": "71345"
+                        },
+                        "account_number": "7134"
+                    },
+                    "Variation des stocks de produits": {
+                        "Produits interm\u00e9diaires": {
+                            "account_number": "71351"
+                        },
+                        "Produits finis": {
+                            "account_number": "71355"
+                        },
+                        "Produits r\u00e9siduels": {
+                            "account_number": "71358"
+                        },
+                        "account_number": "7135"
+                    },
+                    "account_number": "713"
+                },
+                "account_number": "71"
+            },
+            "Production immobilis\u00e9e": {
+                "Immobilisations incorporelles": {
+                    "account_number": "721"
+                },
+                "Immobilisations corporelles": {
+                    "account_number": "722"
+                },
+                "account_number": "72"
+            },
+            "Subventions d'exploitation": {
+                "is_group": 1,
+                "account_number": "74"
+            },
+            "Autres produits de gestion courante": {
+                "Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels, droits et valeurs similaires": {
+                    "Redevances pour concessions, brevets, licences, marques, proc\u00e9d\u00e9s, logiciels": {
+                        "account_number": "7511"
+                    },
+                    "Droits d'auteur et de reproduction": {
+                        "account_number": "7516"
+                    },
+                    "Autres droits et valeurs similaires": {
+                        "account_number": "7518"
+                    },
+                    "account_number": "751"
+                },
+                "Revenus des immeubles non affect\u00e9s aux activit\u00e9s professionnelles": {
+                    "account_number": "752"
+                },
+                "Jetons de pr\u00e9sence et r\u00e9mun\u00e9rations d'administrateurs, g\u00e9rants...": {
+                    "account_number": "753"
+                },
+                "Ristournes per\u00e7ues des coop\u00e9ratives (provenant des exc\u00e9dents)": {
+                    "account_number": "754"
+                },
+                "Quotes-parts de r\u00e9sultats sur op\u00e9rations faites en commun": {
+                    "Quote-part de perte transf\u00e9r\u00e9e (comptabilit\u00e9 du g\u00e9rant)": {
+                        "account_number": "7551"
+                    },
+                    "Quote-part de b\u00e9n\u00e9fice attribu\u00e9 (comptabilit\u00e9 des associ\u00e9s non g\u00e9rants)": {
+                        "account_number": "7555"
+                    },
+                    "account_number": "755"
+                },
+                "Gains de change sur cr\u00e9ances et dettes commerciales": {
+                    "account_number": "756"
+                },
+                "Produits divers de gestion courante": {
+                    "account_number": "758"
+                },
+                "account_number": "75"
+            },
+            "Produits financiers": {
+                "Produits de participations": {
+                    "Revenus des titres de participation": {
+                        "account_number": "7611"
+                    },
+                    "Produits de la fiducie, r\u00e9sultat de la p\u00e9riode": {
+                        "account_number": "7612"
+                    },
+                    "Revenus sur autres formes de participation": {
+                        "account_number": "7616"
+                    },
+                    "Revenus des cr\u00e9ances rattach\u00e9es \u00e0 des participations": {
+                        "account_number": "7617"
+                    },
+                    "account_number": "761"
+                },
+                "Produits des autres immobilisations financi\u00e8res": {
+                    "Revenus des titres immobilis\u00e9s": {
+                        "account_number": "7621"
+                    },
+                    "Revenus des pr\u00eats": {
+                        "account_number": "7626"
+                    },
+                    "Revenus des cr\u00e9ances immobilis\u00e9es": {
+                        "account_number": "7627"
+                    },
+                    "account_number": "762"
+                },
+                "Revenus des autres cr\u00e9ances": {
+                    "Revenus des cr\u00e9ances commerciales": {
+                        "account_number": "7631"
+                    },
+                    "Revenus des cr\u00e9ances diverses": {
+                        "account_number": "7638"
+                    },
+                    "account_number": "763"
+                },
+                "Revenus des valeurs mobili\u00e8res de placement": {
+                    "account_number": "764"
+                },
+                "Escomptes obtenus": {
+                    "account_number": "765"
+                },
+                "Gains de change financi\u00e8res": {
+                    "account_type": "Round Off",
+                    "account_number": "766"
+                },
+                "Produits nets sur cessions de valeurs mobili\u00e8res de placement": {
+                    "account_number": "767"
+                },
+                "Autres produits financiers": {
+                    "account_number": "768"
+                },
+                "account_number": "76"
+            },
+            "Produits exceptionnels": {
+                "Produits exceptionnels sur op\u00e9rations de gestion": {
+                    "D\u00e9dits et p\u00e9nalit\u00e9s per\u00e7us sur achats et sur ventes": {
+                        "account_number": "7711"
+                    },
+                    "Lib\u00e9ralit\u00e9s re\u00e7ues": {
+                        "account_number": "7713"
+                    },
+                    "Rentr\u00e9es sur cr\u00e9ances amorties": {
+                        "account_number": "7714"
+                    },
+                    "Subventions d'\u00e9quilibre": {
+                        "account_number": "7715"
+                    },
+                    "D\u00e9gr\u00e8vements d'imp\u00f4ts autres qu'imp\u00f4ts sur les b\u00e9n\u00e9fices": {
+                        "account_number": "7717"
+                    },
+                    "Autres produits exceptionnels sur op\u00e9rations de gestion": {
+                        "account_number": "7718"
+                    },
+                    "account_number": "771"
+                },
+                "(Compte \u00e0 la disposition des entit\u00e9s pour enregistrer, en cours d'exercice, les Produits sur exercices ant\u00e9rieurs)": {
+                    "account_number": "772"
+                },
+                "Op\u00e9rations de constitution ou liquidation des fiducies": {
+                    "Op\u00e9rations li\u00e9es \u00e0 la constitution de la fiducie - transfert des \u00e9l\u00e9ments": {
+                        "account_number": "7741"
+                    },
+                    "Op\u00e9rations li\u00e9es \u00e0 la liquidation de la fiducie": {
+                        "account_number": "7742"
+                    },
+                    "account_number": "774"
+                },
+                "Produits des cessions d'\u00e9l\u00e9ments d'actif": {
+                    "Immobilisations incorporelles": {
+                        "account_number": "7751"
+                    },
+                    "Immobilisations corporelles": {
+                        "account_number": "7752"
+                    },
+                    "Immobilisations financi\u00e8res": {
+                        "account_number": "7756"
+                    },
+                    "Autres \u00e9l\u00e9ments d'actif": {
+                        "account_number": "7758"
+                    },
+                    "account_number": "775"
+                },
+                "Quote-part des subventions d'investissement vir\u00e9e au r\u00e9sultat de l'exercice": {
+                    "account_number": "777"
+                },
+                "Autres produits exceptionnels": {
+                    "Bonis provenant de clauses d'indexation": {
+                        "account_number": "7781"
+                    },
+                    "Lots": {
+                        "account_number": "7782"
+                    },
+                    "Bonis provenant du rachat par l'entreprise d'actions et d'obligations \u00e9mises par elle-m\u00eame": {
+                        "account_number": "7783"
+                    },
+                    "Produits exceptionnels divers": {
+                        "account_number": "7788"
+                    },
+                    "account_number": "778"
+                },
+                "account_number": "77"
+            },
+            "Reprises sur amortissements, d\u00e9pr\u00e9ciations et provisions": {
+                "Reprises sur amortissements, d\u00e9pr\u00e9ciations et provisions (\u00e0 inscrire dans les produits d'exploitation)": {
+                    "Reprises sur amortissements des immobilisations incorporelles et corporelles": {
+                        "Immobilisations incorporelles": {
+                            "account_number": "78111"
+                        },
+                        "Immobilisations corporelles": {
+                            "account_number": "78112"
+                        },
+                        "account_number": "7811"
+                    },
+                    "Reprises sur provisions d'exploitation": {
+                        "account_number": "7815"
+                    },
+                    "Reprises sur d\u00e9pr\u00e9ciations des immobilisations corporelles et incorporelles": {
+                        "Immobilisations incorporelles": {
+                            "account_number": "78161"
+                        },
+                        "Immobilisations corporelles": {
+                            "account_number": "78162"
+                        },
+                        "account_number": "7816"
+                    },
+                    "Reprises sur d\u00e9pr\u00e9ciations des actifs circulants": {
+                        "Stocks et en-cours": {
+                            "account_number": "78173"
+                        },
+                        "Cr\u00e9ances": {
+                            "account_number": "78174"
+                        },
+                        "account_number": "7817"
+                    },
+                    "account_number": "781"
+                },
+                "Reprises sur d\u00e9pr\u00e9ciations et provisions (\u00e0 inscrire dans les produits financiers)": {
+                    "Reprises sur provisions financi\u00e8res": {
+                        "account_number": "7865"
+                    },
+                    "Reprises sur d\u00e9pr\u00e9ciations des \u00e9l\u00e9ments financiers": {
+                        "Immobilisations financi\u00e8res": {
+                            "account_number": "78662"
+                        },
+                        "Valeurs mobili\u00e8res de placement": {
+                            "account_number": "78665"
+                        },
+                        "account_number": "7866"
+                    },
+                    "account_number": "786"
+                },
+                "Reprises sur d\u00e9pr\u00e9ciations et provisions (\u00e0 inscrire dans les produits exceptionnels)": {
+                    "Reprises sur provisions r\u00e9glement\u00e9es (immobilisations)": {
+                        "Amortissements d\u00e9rogatoires": {
+                            "account_number": "78725"
+                        },
+                        "Provision sp\u00e9ciale de r\u00e9\u00e9valuation": {
+                            "account_number": "78726"
+                        },
+                        "Plus-values r\u00e9investies": {
+                            "account_number": "78727"
+                        },
+                        "account_number": "7872"
+                    },
+                    "Reprises sur provisions r\u00e9glement\u00e9es (stocks)": {
+                        "account_number": "7873"
+                    },
+                    "Reprises sur autres provisions r\u00e9glement\u00e9es": {
+                        "account_number": "7874"
+                    },
+                    "Reprises sur provisions exceptionnelles": {
+                        "account_number": "7875"
+                    },
+                    "Reprises sur d\u00e9pr\u00e9ciations exceptionnelles": {
+                        "account_number": "7876"
+                    },
+                    "account_number": "787"
+                },
+                "account_number": "78"
+            },
+            "Transferts de charges": {
+                "Transferts de charges d'exploitation": {
+                    "account_number": "791"
+                },
+                "Transferts de charges financi\u00e8res": {
+                    "account_number": "796"
+                },
+                "Transferts de charges exceptionnelles": {
+                    "account_number": "797"
+                },
+                "account_number": "79"
+            },
+            "account_number": "7"
+        }
+    }
+}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
index 49a2afe..a246ae5 100644
--- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
+++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.json
@@ -10,6 +10,7 @@
   "accounts_transactions_settings_section",
   "over_billing_allowance",
   "role_allowed_to_over_bill",
+  "credit_controller",
   "make_payment_via_journal_entry",
   "column_break_11",
   "check_supplier_invoice_uniqueness",
@@ -28,7 +29,6 @@
   "acc_frozen_upto",
   "frozen_accounts_modifier",
   "column_break_4",
-  "credit_controller",
   "deferred_accounting_settings_section",
   "book_deferred_entries_based_on",
   "column_break_18",
@@ -74,11 +74,10 @@
    "fieldtype": "Column Break"
   },
   {
-   "description": "This role is allowed to submit transactions that exceed credit limits",
    "fieldname": "credit_controller",
    "fieldtype": "Link",
    "in_list_view": 1,
-   "label": "Credit Controller",
+   "label": "Role allowed to bypass Credit Limit",
    "options": "Role"
   },
   {
@@ -276,7 +275,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2021-07-12 18:54:29.084958",
+ "modified": "2021-08-09 13:08:04.335416",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Accounts Settings",
diff --git a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
index f7d471b..78e7ff6 100644
--- a/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
+++ b/erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
@@ -15,7 +15,7 @@
 	},
 
 	refresh: function (frm) {
-		frappe.require("assets/js/bank-reconciliation-tool.min.js", () =>
+		frappe.require("bank-reconciliation-tool.bundle.js", () =>
 			frm.trigger("make_reconciliation_tool")
 		);
 		frm.upload_statement_button = frm.page.set_secondary_action(
diff --git a/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js b/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
index 016f29a..0a2e0bc 100644
--- a/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
+++ b/erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
@@ -320,7 +320,7 @@
 			return;
 		}
 
-		frappe.require("/assets/js/data_import_tools.min.js", () => {
+		frappe.require("data_import_tools.bundle.js", () => {
 			frm.import_preview = new frappe.data_import.ImportPreview({
 				wrapper: frm.get_field("import_preview").$wrapper,
 				doctype: frm.doc.reference_doctype,
diff --git a/erpnext/accounts/doctype/dunning/test_dunning.py b/erpnext/accounts/doctype/dunning/test_dunning.py
index ed50f78..7fc2e4b 100644
--- a/erpnext/accounts/doctype/dunning/test_dunning.py
+++ b/erpnext/accounts/doctype/dunning/test_dunning.py
@@ -39,7 +39,6 @@
 		self.assertEqual(round(amounts.get('dunning_amount'), 2), 20)
 		self.assertEqual(round(amounts.get('grand_total'), 2), 120)
 
-
 	def test_gl_entries(self):
 		dunning = create_dunning()
 		dunning.submit()
@@ -144,4 +143,4 @@
 			'closing_text': 'We kindly request that you pay the outstanding amount immediately, and late fees.'
 		}
 	)
-	dunning_type.save() 
\ No newline at end of file
+	dunning_type.save() 
diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py
index 11465b7..0844995 100644
--- a/erpnext/accounts/doctype/gl_entry/gl_entry.py
+++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py
@@ -58,8 +58,8 @@
 			if not self.get(k):
 				frappe.throw(_("{0} is required").format(_(self.meta.get_label(k))))
 
-		account_type = frappe.get_cached_value("Account", self.account, "account_type")
 		if not (self.party_type and self.party):
+			account_type = frappe.get_cached_value("Account", self.account, "account_type")
 			if account_type == "Receivable":
 				frappe.throw(_("{0} {1}: Customer is required against Receivable account {2}")
 					.format(self.voucher_type, self.voucher_no, self.account))
@@ -73,15 +73,19 @@
 				.format(self.voucher_type, self.voucher_no, self.account))
 
 	def pl_must_have_cost_center(self):
-		if frappe.get_cached_value("Account", self.account, "report_type") == "Profit and Loss":
-			if not self.cost_center and self.voucher_type != 'Period Closing Voucher':
-				msg = _("{0} {1}: Cost Center is required for 'Profit and Loss' account {2}.").format(
-					self.voucher_type, self.voucher_no, self.account)
-				msg += " "
-				msg += _("Please set the cost center field in {0} or setup a default Cost Center for the Company.").format(
-					self.voucher_type)
+		"""Validate that profit and loss type account GL entries have a cost center."""
 
-				frappe.throw(msg, title=_("Missing Cost Center"))
+		if self.cost_center or self.voucher_type == 'Period Closing Voucher':
+			return
+
+		if frappe.get_cached_value("Account", self.account, "report_type") == "Profit and Loss":
+			msg = _("{0} {1}: Cost Center is required for 'Profit and Loss' account {2}.").format(
+				self.voucher_type, self.voucher_no, self.account)
+			msg += " "
+			msg += _("Please set the cost center field in {0} or setup a default Cost Center for the Company.").format(
+				self.voucher_type)
+
+			frappe.throw(msg, title=_("Missing Cost Center"))
 
 	def validate_dimensions_for_pl_and_bs(self):
 		account_type = frappe.db.get_value("Account", self.account, "report_type")
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js
index d76641d..957a50f 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.js
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js
@@ -194,19 +194,19 @@
 	refresh_field("accounts");
 }
 
-erpnext.accounts.JournalEntry = frappe.ui.form.Controller.extend({
-	onload: function() {
+erpnext.accounts.JournalEntry = class JournalEntry extends frappe.ui.form.Controller {
+	onload() {
 		this.load_defaults();
 		this.setup_queries();
 		this.setup_balance_formatter();
 		erpnext.accounts.dimensions.setup_dimension_filters(this.frm, this.frm.doctype);
-	},
+	}
 
-	onload_post_render: function() {
+	onload_post_render() {
 		cur_frm.get_field("accounts").grid.set_multiple_add("account");
-	},
+	}
 
-	load_defaults: function() {
+	load_defaults() {
 		//this.frm.show_print_first = true;
 		if(this.frm.doc.__islocal && this.frm.doc.company) {
 			frappe.model.set_default_values(this.frm.doc);
@@ -216,9 +216,9 @@
 			var posting_date = this.frm.doc.posting_date;
 			if(!this.frm.doc.amended_from) this.frm.set_value('posting_date', posting_date || frappe.datetime.get_today());
 		}
-	},
+	}
 
-	setup_queries: function() {
+	setup_queries() {
 		var me = this;
 
 		me.frm.set_query("account", "accounts", function(doc, cdt, cdn) {
@@ -324,9 +324,9 @@
 		});
 
 
-	},
+	}
 
-	setup_balance_formatter: function() {
+	setup_balance_formatter() {
 		const formatter = function(value, df, options, doc) {
 			var currency = frappe.meta.get_field_currency(df, doc);
 			var dr_or_cr = value ? ('<label>' + (value > 0.0 ? __("Dr") : __("Cr")) + '</label>') : "";
@@ -337,9 +337,9 @@
 		};
 		this.frm.fields_dict.accounts.grid.update_docfield_property('balance', 'formatter', formatter);
 		this.frm.fields_dict.accounts.grid.update_docfield_property('party_balance', 'formatter', formatter);
-	},
+	}
 
-	reference_name: function(doc, cdt, cdn) {
+	reference_name(doc, cdt, cdn) {
 		var d = frappe.get_doc(cdt, cdn);
 
 		if(d.reference_name) {
@@ -351,9 +351,9 @@
 				this.get_outstanding('Journal Entry', d.reference_name, doc.company, d);
 			}
 		}
-	},
+	}
 
-	get_outstanding: function(doctype, docname, company, child, due_date) {
+	get_outstanding(doctype, docname, company, child, due_date) {
 		var me = this;
 		var args = {
 			"doctype": doctype,
@@ -375,9 +375,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	accounts_add: function(doc, cdt, cdn) {
+	accounts_add(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		$.each(doc.accounts, function(i, d) {
 			if(d.account && d.party && d.party_type) {
@@ -400,9 +400,9 @@
 		cur_frm.cscript.update_totals(doc);
 
 		erpnext.accounts.dimensions.copy_dimension_from_first_row(this.frm, cdt, cdn, 'accounts');
-	},
+	}
 
-});
+};
 
 cur_frm.script_manager.make(erpnext.accounts.JournalEntry);
 
diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js
index b2e8626..a8c07d6 100644
--- a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js
+++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js
@@ -49,7 +49,15 @@
 				doc: frm.doc,
 				btn: $(btn_primary),
 				method: "make_invoices",
-				freeze_message: __("Creating {0} Invoice", [frm.doc.invoice_type])
+				freeze: 1,
+				freeze_message: __("Creating {0} Invoice", [frm.doc.invoice_type]),
+				callback: function(r) {
+					if (r.message.length == 1) {
+						frappe.msgprint(__("{0} Invoice created successfully.", [frm.doc.invoice_type]));
+					} else if (r.message.length < 50) {
+						frappe.msgprint(__("{0} Invoices created successfully.", [frm.doc.invoice_type]));
+					}
+				}
 			});
 		});
 
diff --git a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py
index 29dc96e..d76d909 100644
--- a/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py
+++ b/erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py
@@ -216,7 +216,8 @@
 	return names
 
 def publish(index, total, doctype):
-	if total < 5: return
+	if total < 50:
+		return
 	frappe.publish_realtime(
 		"opening_invoice_creation_progress",
 		dict(
@@ -241,4 +242,3 @@
 
 	return accounts[0].name
 
-
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
index d1523cd..c71a62d 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
@@ -34,8 +34,8 @@
 	}
 });
 
-erpnext.accounts.PaymentReconciliationController = frappe.ui.form.Controller.extend({
-	onload: function() {
+erpnext.accounts.PaymentReconciliationController = class PaymentReconciliationController extends frappe.ui.form.Controller {
+	onload() {
 		var me = this;
 
 		this.frm.set_query("party", function() {
@@ -84,18 +84,18 @@
 				frappe.throw({message: __("Please Select Both Company and Party Type First"), title: title});
 			}
 		};
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		this.frm.disable_save();
 		this.toggle_primary_action();
-	},
+	}
 
-	onload_post_render: function() {
+	onload_post_render() {
 		this.toggle_primary_action();
-	},
+	}
 
-	party: function() {
+	party() {
 		var me = this
 		if (!me.frm.doc.receivable_payable_account && me.frm.doc.party_type && me.frm.doc.party) {
 			return frappe.call({
@@ -112,9 +112,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	get_unreconciled_entries: function() {
+	get_unreconciled_entries() {
 		var me = this;
 		return this.frm.call({
 			doc: me.frm.doc,
@@ -125,9 +125,9 @@
 			}
 		});
 
-	},
+	}
 
-	reconcile: function() {
+	reconcile() {
 		var me = this;
 		var show_dialog = me.frm.doc.payments.filter(d => d.difference_amount && !d.difference_account);
 
@@ -209,9 +209,9 @@
 		} else {
 			this.reconcile_payment_entries();
 		}
-	},
+	}
 
-	reconcile_payment_entries: function() {
+	reconcile_payment_entries() {
 		var me = this;
 
 		return this.frm.call({
@@ -222,9 +222,9 @@
 				me.toggle_primary_action();
 			}
 		});
-	},
+	}
 
-	set_invoice_options: function() {
+	set_invoice_options() {
 		var me = this;
 		var invoices = [];
 
@@ -244,9 +244,9 @@
 		}
 
 		refresh_field("payments");
-	},
+	}
 
-	toggle_primary_action: function() {
+	toggle_primary_action() {
 		if ((this.frm.doc.payments || []).length) {
 			this.frm.fields_dict.reconcile.$input
 				&& this.frm.fields_dict.reconcile.$input.addClass("btn-primary");
@@ -260,6 +260,6 @@
 		}
 	}
 
-});
+};
 
-$.extend(cur_frm.cscript, new erpnext.accounts.PaymentReconciliationController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.accounts.PaymentReconciliationController({frm: cur_frm}));
diff --git a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
index b0a5b04..9cfb478 100644
--- a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
+++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
@@ -142,7 +142,7 @@
 				sum(t1.debit_in_account_currency) - sum(t1.credit_in_account_currency) as bal_in_account_currency,
 				sum(t1.debit) - sum(t1.credit) as bal_in_company_currency
 			from `tabGL Entry` t1, `tabAccount` t2
-			where t1.account = t2.name and t2.report_type = 'Profit and Loss'
+			where t1.is_cancelled = 0 and t1.account = t2.name and t2.report_type = 'Profit and Loss'
 			and t2.docstatus < 2 and t2.company = %s
 			and t1.posting_date between %s and %s
 			group by t1.account, {dimension_fields}
diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.js b/erpnext/accounts/doctype/pos_invoice/pos_invoice.js
index 493bd44..181e9f8 100644
--- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.js
+++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.js
@@ -4,18 +4,18 @@
 {% include 'erpnext/selling/sales_common.js' %};
 frappe.provide("erpnext.accounts");
 
-erpnext.selling.POSInvoiceController = erpnext.selling.SellingController.extend({
+erpnext.selling.POSInvoiceController = class POSInvoiceController extends erpnext.selling.SellingController {
 	setup(doc) {
 		this.setup_posting_date_time_check();
-		this._super(doc);
-	},
+		super.setup(doc);
+	}
 
-	company: function() {
+	company() {
 		erpnext.accounts.dimensions.update_dimension(this.frm, this.frm.doctype);
-	},
+	}
 
 	onload(doc) {
-		this._super();
+		super.onload();
 		this.frm.ignore_doctypes_on_cancel_all = ['POS Invoice Merge Log'];
 		if(doc.__islocal && doc.is_pos && frappe.get_route_str() !== 'point-of-sale') {
 			this.frm.script_manager.trigger("is_pos");
@@ -23,10 +23,10 @@
 		}
 
 		erpnext.accounts.dimensions.setup_dimension_filters(this.frm, this.frm.doctype);
-	},
+	}
 
 	refresh(doc) {
-		this._super();
+		super.refresh();
 		if (doc.docstatus == 1 && !doc.is_return) {
 			this.frm.add_custom_button(__('Return'), this.make_sales_return, __('Create'));
 			this.frm.page.set_inner_btn_group_as_primary(__('Create'));
@@ -36,13 +36,13 @@
 			this.frm.return_print_format = "Sales Invoice Return";
 			this.frm.set_value('consolidated_invoice', '');
 		}
-	},
+	}
 
-	is_pos: function() {
+	is_pos() {
 		this.set_pos_data();
-	},
+	}
 
-	set_pos_data: async function() {
+	async set_pos_data() {
 		if(this.frm.doc.is_pos) {
 			this.frm.set_value("allocate_advances_automatically", 0);
 			if(!this.frm.doc.company) {
@@ -69,7 +69,7 @@
 				}
 			}
 		}
-	},
+	}
 
 	customer() {
 		if (!this.frm.doc.customer) return
@@ -86,13 +86,13 @@
 			}, () => {
 				this.apply_pricing_rule();
 			});
-	},
+	}
 
-	amount: function(){
+	amount(){
 		this.write_off_outstanding_amount_automatically()
-	},
+	}
 
-	change_amount: function(){
+	change_amount(){
 		if(this.frm.doc.paid_amount > this.frm.doc.grand_total){
 			this.calculate_write_off_amount();
 		}else {
@@ -101,16 +101,16 @@
 		}
 
 		this.frm.refresh_fields();
-	},
+	}
 
-	loyalty_amount: function(){
+	loyalty_amount(){
 		this.calculate_outstanding_amount();
 		this.frm.refresh_field("outstanding_amount");
 		this.frm.refresh_field("paid_amount");
 		this.frm.refresh_field("base_paid_amount");
-	},
+	}
 
-	write_off_outstanding_amount_automatically: function() {
+	write_off_outstanding_amount_automatically() {
 		if(cint(this.frm.doc.write_off_outstanding_amount_automatically)) {
 			frappe.model.round_floats_in(this.frm.doc, ["grand_total", "paid_amount"]);
 			// this will make outstanding amount 0
@@ -125,17 +125,17 @@
 
 		this.calculate_outstanding_amount(false);
 		this.frm.refresh_fields();
-	},
+	}
 
-	make_sales_return: function() {
+	make_sales_return() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.accounts.doctype.pos_invoice.pos_invoice.make_sales_return",
 			frm: cur_frm
 		})
-	},
-})
+	}
+}
 
-$.extend(cur_frm.cscript, new erpnext.selling.POSInvoiceController({ frm: cur_frm }))
+extend_cscript(cur_frm.cscript, new erpnext.selling.POSInvoiceController({ frm: cur_frm }))
 
 frappe.ui.form.on('POS Invoice', {
 	redeem_loyalty_points: function(frm) {
@@ -235,4 +235,4 @@
 				});
 		});
 	}
-});
\ No newline at end of file
+});
diff --git a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
index ffe8be1..3173db1 100644
--- a/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
+++ b/erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
@@ -15,6 +15,7 @@
 class TestPricingRule(unittest.TestCase):
 	def setUp(self):
 		delete_existing_pricing_rules()
+		setup_pricing_rule_data()
 
 	def tearDown(self):
 		delete_existing_pricing_rules()
@@ -554,6 +555,8 @@
 		for doc in [si, si1]:
 			doc.delete()
 
+test_dependencies = ["Campaign"]
+
 def make_pricing_rule(**args):
 	args = frappe._dict(args)
 
@@ -600,6 +603,13 @@
 	if args.get(applicable_for):
 		doc.db_set(applicable_for, args.get(applicable_for))
 
+def setup_pricing_rule_data():
+	if not frappe.db.exists('Campaign', '_Test Campaign'):
+		frappe.get_doc({
+			'doctype': 'Campaign',
+			'campaign_name': '_Test Campaign',
+			'name': '_Test Campaign'
+		}).insert()
 
 def delete_existing_pricing_rules():
 	for doctype in ["Pricing Rule", "Pricing Rule Item Code",
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
index 7328f16..f8d191c 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
@@ -106,4 +106,4 @@
 		{{ terms_and_conditions }}
 	</div>
 	{% endif %}
-</div>
\ No newline at end of file
+</div>
diff --git a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json
index 27a5f50..295a3b8 100644
--- a/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json
+++ b/erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json
@@ -286,7 +286,7 @@
   }
  ],
  "links": [],
- "modified": "2021-05-21 10:14:22.426672",
+ "modified": "2021-05-21 11:14:22.426672",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Process Statement Of Accounts",
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index 4a77ef0..3b91118 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -4,10 +4,10 @@
 frappe.provide("erpnext.accounts");
 {% include 'erpnext/public/js/controllers/buying.js' %};
 
-erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
-	setup: function(doc) {
+erpnext.accounts.PurchaseInvoice = class PurchaseInvoice extends erpnext.buying.BuyingController {
+	setup(doc) {
 		this.setup_posting_date_time_check();
-		this._super(doc);
+		super.setup(doc);
 
 		// formatter for purchase invoice item
 		if(this.frm.doc.update_stock) {
@@ -25,10 +25,10 @@
 				}
 			};
 		});
-	},
+	}
 
-	onload: function() {
-		this._super();
+	onload() {
+		super.onload();
 
 		if(!this.frm.doc.__islocal) {
 			// show credit_to in print format
@@ -44,11 +44,11 @@
 		}
 
 		erpnext.accounts.dimensions.setup_dimension_filters(this.frm, this.frm.doctype);
-	},
+	}
 
-	refresh: function(doc) {
+	refresh(doc) {
 		const me = this;
-		this._super();
+		super.refresh();
 
 		hide_fields(this.frm.doc);
 		// Show / Hide button
@@ -157,26 +157,26 @@
 		}
 
 		this.frm.set_df_property("tax_withholding_category", "hidden", doc.apply_tds ? 0 : 1);
-	},
+	}
 
-	unblock_invoice: function() {
+	unblock_invoice() {
 		const me = this;
 		frappe.call({
 			'method': 'erpnext.accounts.doctype.purchase_invoice.purchase_invoice.unblock_invoice',
 			'args': {'name': me.frm.doc.name},
 			'callback': (r) => me.frm.reload_doc()
 		});
-	},
+	}
 
-	block_invoice: function() {
+	block_invoice() {
 		this.make_comment_dialog_and_block_invoice();
-	},
+	}
 
-	change_release_date: function() {
+	change_release_date() {
 		this.make_dialog_and_set_release_date();
-	},
+	}
 
-	can_change_release_date: function(date) {
+	can_change_release_date(date) {
 		const diff = frappe.datetime.get_diff(date, frappe.datetime.nowdate());
 		if (diff < 0) {
 			frappe.throw(__('New release date should be in the future'));
@@ -184,9 +184,9 @@
 		} else {
 			return true;
 		}
-	},
+	}
 
-	make_comment_dialog_and_block_invoice: function(){
+	make_comment_dialog_and_block_invoice(){
 		const me = this;
 
 		const title = __('Block Invoice');
@@ -228,9 +228,9 @@
 		});
 
 		this.dialog.show();
-	},
+	}
 
-	make_dialog_and_set_release_date: function() {
+	make_dialog_and_set_release_date() {
 		const me = this;
 
 		const title = __('Set New Release Date');
@@ -259,23 +259,23 @@
 		});
 
 		this.dialog.show();
-	},
+	}
 
-	set_release_date: function(data) {
+	set_release_date(data) {
 		return frappe.call({
 			'method': 'erpnext.accounts.doctype.purchase_invoice.purchase_invoice.change_release_date',
 			'args': data,
 			'callback': (r) => this.frm.reload_doc()
 		});
-	},
+	}
 
-	supplier: function() {
+	supplier() {
 		var me = this;
 
 		// Do not update if inter company reference is there as the details will already be updated
 		if(this.frm.updating_party_details || this.frm.doc.inter_company_invoice_reference)
 			return;
-		
+
 		erpnext.utils.get_party_details(this.frm, "erpnext.accounts.party.get_party_details",
 			{
 				posting_date: this.frm.doc.posting_date,
@@ -292,9 +292,9 @@
 				me.frm.set_df_property("apply_tds", "read_only", me.frm.supplier_tds ? 0 : 1);
 				me.frm.set_df_property("tax_withholding_category", "hidden", me.frm.supplier_tds ? 0 : 1);
 			})
-	},
+	}
 
-	apply_tds: function(frm) {
+	apply_tds(frm) {
 		var me = this;
 
 		if (!me.frm.doc.apply_tds) {
@@ -304,9 +304,9 @@
 			me.frm.set_value("tax_withholding_category", me.frm.supplier_tds);
 			me.frm.set_df_property("tax_withholding_category", "hidden", 0);
 		}
-	},
+	}
 
-	credit_to: function() {
+	credit_to() {
 		var me = this;
 		if(this.frm.doc.credit_to) {
 			me.frm.call({
@@ -324,16 +324,16 @@
 				}
 			});
 		}
-	},
+	}
 
-	make_inter_company_invoice: function(frm) {
+	make_inter_company_invoice(frm) {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.accounts.doctype.purchase_invoice.purchase_invoice.make_inter_company_sales_invoice",
 			frm: frm
 		});
-	},
+	}
 
-	is_paid: function() {
+	is_paid() {
 		hide_fields(this.frm.doc);
 		if(cint(this.frm.doc.is_paid)) {
 			this.frm.set_value("allocate_advances_automatically", 0);
@@ -344,44 +344,44 @@
 		}
 		this.calculate_outstanding_amount();
 		this.frm.refresh_fields();
-	},
+	}
 
-	write_off_amount: function() {
+	write_off_amount() {
 		this.set_in_company_currency(this.frm.doc, ["write_off_amount"]);
 		this.calculate_outstanding_amount();
 		this.frm.refresh_fields();
-	},
+	}
 
-	paid_amount: function() {
+	paid_amount() {
 		this.set_in_company_currency(this.frm.doc, ["paid_amount"]);
 		this.write_off_amount();
 		this.frm.refresh_fields();
-	},
+	}
 
-	allocated_amount: function() {
+	allocated_amount() {
 		this.calculate_total_advance();
 		this.frm.refresh_fields();
-	},
+	}
 
-	items_add: function(doc, cdt, cdn) {
+	items_add(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		this.frm.script_manager.copy_from_first_row("items", row,
 			["expense_account", "discount_account", "cost_center", "project"]);
-	},
+	}
 
-	on_submit: function() {
+	on_submit() {
 		$.each(this.frm.doc["items"] || [], function(i, row) {
 			if(row.purchase_receipt) frappe.model.clear_doc("Purchase Receipt", row.purchase_receipt)
 		})
-	},
+	}
 
-	make_debit_note: function() {
+	make_debit_note() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.accounts.doctype.purchase_invoice.purchase_invoice.make_debit_note",
 			frm: cur_frm
 		})
-	},
-});
+	}
+};
 
 cur_frm.script_manager.make(erpnext.accounts.PurchaseInvoice);
 
@@ -591,4 +591,4 @@
 	company: function(frm) {
 		erpnext.accounts.dimensions.update_dimension(frm, frm.doctype);
 	},
-})
+})
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 85df225..a16795e 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -27,6 +27,8 @@
 from erpnext.accounts.deferred_revenue import validate_service_stop_date
 from erpnext.stock.doctype.purchase_receipt.purchase_receipt import get_item_account_wise_additional_cost
 
+class WarehouseMissingError(frappe.ValidationError): pass
+
 form_grid_templates = {
 	"items": "templates/form_grid/item_grid.html"
 }
@@ -207,8 +209,8 @@
 		if self.update_stock and for_validate:
 			for d in self.get('items'):
 				if not d.warehouse:
-					frappe.throw(_("Warehouse required at Row No {0}, please set default warehouse for the item {1} for the company {2}").
-						format(d.idx, d.item_code, self.company))
+					frappe.throw(_("Row No {0}: Warehouse is required. Please set a Default Warehouse for Item {1} and Company {2}").
+						format(d.idx, d.item_code, self.company), exc=WarehouseMissingError)
 
 		super(PurchaseInvoice, self).validate_warehouse()
 
@@ -246,7 +248,7 @@
 				and (not item.po_detail or
 					not frappe.db.get_value("Purchase Order Item", item.po_detail, "delivered_by_supplier")):
 
-				if self.update_stock and (not item.from_warehouse):
+				if self.update_stock and item.warehouse and (not item.from_warehouse):
 					if for_validate and item.expense_account and item.expense_account != warehouse_account[item.warehouse]["account"]:
 						msg = _("Row {0}: Expense Head changed to {1} because account {2} is not linked to warehouse {3} or it is not the default inventory account").format(
 							item.idx, frappe.bold(warehouse_account[item.warehouse]["account"]), frappe.bold(item.expense_account), frappe.bold(item.warehouse))
@@ -519,6 +521,8 @@
 			if d.category in ('Valuation', 'Total and Valuation')
 			and flt(d.base_tax_amount_after_discount_amount)]
 
+		exchange_rate_map, net_rate_map = get_purchase_document_details(self)
+
 		enable_discount_accounting = cint(frappe.db.get_single_value('Accounts Settings', 'enable_discount_accounting'))
 
 		for item in self.get("items"):
@@ -638,6 +642,34 @@
 								"project": item.project or self.project
 							}, account_currency, item=item))
 
+						# check if the exchange rate has changed
+						if item.get('purchase_receipt'):
+							if exchange_rate_map[item.purchase_receipt] and \
+								self.conversion_rate != exchange_rate_map[item.purchase_receipt] and \
+								item.net_rate == net_rate_map[item.pr_detail]:
+
+								discrepancy_caused_by_exchange_rate_difference = (item.qty * item.net_rate) * \
+									(exchange_rate_map[item.purchase_receipt] - self.conversion_rate)
+
+								gl_entries.append(
+									self.get_gl_dict({
+										"account": expense_account,
+										"against": self.supplier,
+										"debit": discrepancy_caused_by_exchange_rate_difference,
+										"cost_center": item.cost_center,
+										"project": item.project or self.project
+									}, account_currency, item=item)
+								)
+								gl_entries.append(
+									self.get_gl_dict({
+										"account": self.get_company_default("exchange_gain_loss_account"),
+										"against": self.supplier,
+										"credit": discrepancy_caused_by_exchange_rate_difference,
+										"cost_center": item.cost_center,
+										"project": item.project or self.project
+									}, account_currency, item=item)
+								)
+
 					# If asset is bought through this document and not linked to PR
 					if self.update_stock and item.landed_cost_voucher_amount:
 						expenses_included_in_asset_valuation = self.get_company_default("expenses_included_in_asset_valuation")
@@ -893,6 +925,13 @@
 							"remarks": self.remarks or "Accounting Entry for Stock"
 						}, item=tax))
 
+	@property
+	def enable_discount_accounting(self):
+		if not hasattr(self, "_enable_discount_accounting"):
+			self._enable_discount_accounting = cint(frappe.db.get_single_value('Accounts Settings', 'enable_discount_accounting'))
+
+		return self._enable_discount_accounting
+
 	def make_internal_transfer_gl_entries(self, gl_entries):
 		if self.is_internal_transfer() and flt(self.base_total_taxes_and_charges):
 			account_currency = get_account_currency(self.unrealized_profit_loss_account)
@@ -1150,6 +1189,36 @@
 		if update:
 			self.db_set('status', self.status, update_modified = update_modified)
 
+# to get details of purchase invoice/receipt from which this doc was created for exchange rate difference handling
+def get_purchase_document_details(doc):
+	if doc.doctype == 'Purchase Invoice':
+		doc_reference = 'purchase_receipt'
+		items_reference = 'pr_detail'
+		parent_doctype = 'Purchase Receipt'
+		child_doctype = 'Purchase Receipt Item'
+	else:
+		doc_reference = 'purchase_invoice'
+		items_reference = 'purchase_invoice_item'
+		parent_doctype = 'Purchase Invoice'
+		child_doctype = 'Purchase Invoice Item'
+
+	purchase_receipts_or_invoices = []
+	items = []
+
+	for item in doc.get('items'):
+		if item.get(doc_reference):
+			purchase_receipts_or_invoices.append(item.get(doc_reference))
+		if item.get(items_reference):
+			items.append(item.get(items_reference))
+
+	exchange_rate_map = frappe._dict(frappe.get_all(parent_doctype, filters={'name': ('in',
+		purchase_receipts_or_invoices)}, fields=['name', 'conversion_rate'], as_list=1))
+
+	net_rate_map = frappe._dict(frappe.get_all(child_doctype, filters={'name': ('in',
+		items)}, fields=['name', 'net_rate'], as_list=1))
+
+	return exchange_rate_map, net_rate_map
+
 def get_list_context(context=None):
 	from erpnext.controllers.website_list_for_contact import get_list_context
 	list_context = get_list_context(context)
diff --git a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
index f0f5a58..37ff52c 100644
--- a/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
@@ -230,6 +230,27 @@
 			self.assertEqual(expected_values[gle.account][1], gle.debit)
 			self.assertEqual(expected_values[gle.account][2], gle.credit)
 
+	def test_purchase_invoice_with_exchange_rate_difference(self):
+		from erpnext.stock.doctype.purchase_receipt.purchase_receipt import make_purchase_invoice as create_purchase_invoice
+
+		pr = make_purchase_receipt(company="_Test Company with perpetual inventory", warehouse='Stores - TCP1',
+			currency = "USD", conversion_rate = 70)
+
+		pi = create_purchase_invoice(pr.name)
+		pi.conversion_rate = 80
+
+		pi.insert()
+		pi.submit()
+
+		# Get exchnage gain and loss account
+		exchange_gain_loss_account = frappe.db.get_value('Company', pi.company, 'exchange_gain_loss_account')
+
+		# fetching the latest GL Entry with exchange gain and loss account account
+		amount = frappe.db.get_value('GL Entry', {'account': exchange_gain_loss_account, 'voucher_no': pi.name}, 'debit')
+		discrepancy_caused_by_exchange_rate_diff = abs(pi.items[0].base_net_amount - pr.items[0].base_net_amount)
+
+		self.assertEqual(discrepancy_caused_by_exchange_rate_diff, amount)
+
 	def test_purchase_invoice_with_discount_accounting_enabled(self):
 		enable_discount_accounting()
 
@@ -250,7 +271,7 @@
 		enable_discount_accounting()
 		additional_discount_account = create_account(account_name="Discount Account",
 			parent_account="Indirect Expenses - _TC", company="_Test Company")
-		
+
 		pi = make_purchase_invoice(do_not_save=1, parent_cost_center="Main - _TC")
 		pi.apply_discount_on = "Grand Total"
 		pi.additional_discount_account = additional_discount_account
@@ -1001,7 +1022,7 @@
 		unlink_enabled = frappe.db.get_value(
 			"Accounts Settings", "Accounts Settings",
 			"unlink_payment_on_cancel_of_invoice")
-		
+
 		frappe.db.set_value(
 			"Accounts Settings", "Accounts Settings",
 			"unlink_payment_on_cancel_of_invoice", 1)
@@ -1050,7 +1071,7 @@
 			where voucher_no=%s
 			group by account
 			order by account asc""", (pi.name), as_dict=1)
-		
+
 		for i, gle in enumerate(gl_entries):
 			self.assertEqual(expected_gle[i][0], gle.account)
 			self.assertEqual(expected_gle[i][1], gle.balance)
diff --git a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
index 922b567..a7618e2 100644
--- a/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
+++ b/erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
@@ -502,6 +502,7 @@
   },
   {
    "collapsible": 1,
+   "collapsible_depends_on": "enable_deferred_expense",
    "fieldname": "deferred_expense_section",
    "fieldtype": "Section Break",
    "label": "Deferred Expense"
@@ -861,7 +862,7 @@
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-07-13 02:04:37.787882",
+ "modified": "2021-08-12 20:14:48.506639",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Invoice Item",
diff --git a/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json b/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
index 1fa68e0..d86abad 100644
--- a/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
+++ b/erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
@@ -22,7 +22,7 @@
   "cost_center",
   "dimension_col_break",
   "section_break_9",
-  "currency",
+  "account_currency",
   "tax_amount",
   "tax_amount_after_discount_amount",
   "total",
@@ -209,26 +209,26 @@
    "fieldtype": "Column Break"
   },
   {
-   "fetch_from": "account_head.account_currency",
-   "fieldname": "currency",
-   "fieldtype": "Link",
-   "label": "Account Currency",
-   "options": "Currency",
-   "read_only": 1
-  },
-  {
    "default": "0",
    "depends_on": "eval:['Purchase Taxes and Charges Template', 'Payment Entry'].includes(parent.doctype)",
    "description": "If checked, the tax amount will be considered as already included in the Paid Amount in Payment Entry",
    "fieldname": "included_in_paid_amount",
    "fieldtype": "Check",
    "label": "Considered In Paid Amount"
+  },
+  {
+   "fetch_from": "account_head.account_currency",
+   "fieldname": "account_currency",
+   "fieldtype": "Link",
+   "label": "Account Currency",
+   "options": "Currency",
+   "read_only": 1
   }
  ],
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-06-14 01:43:50.750455",
+ "modified": "2021-08-05 20:04:36.618240",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Taxes and Charges",
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 568e772..7a273c7 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -5,17 +5,17 @@
 frappe.provide("erpnext.accounts");
 
 
-erpnext.accounts.SalesInvoiceController = erpnext.selling.SellingController.extend({
-	setup: function(doc) {
+erpnext.accounts.SalesInvoiceController = class SalesInvoiceController extends erpnext.selling.SellingController {
+	setup(doc) {
 		this.setup_posting_date_time_check();
-		this._super(doc);
-	},
-	company: function() {
+		super.setup(doc);
+	}
+	company() {
 		erpnext.accounts.dimensions.update_dimension(this.frm, this.frm.doctype);
-	},
-	onload: function() {
+	}
+	onload() {
 		var me = this;
-		this._super();
+		super.onload();
 
 		this.frm.ignore_doctypes_on_cancel_all = ['POS Invoice', 'Timesheet', 'POS Invoice Merge Log', 'POS Closing Entry'];
 		if(!this.frm.doc.__islocal && !this.frm.doc.customer && this.frm.doc.debit_to) {
@@ -35,11 +35,11 @@
 		}
 		erpnext.queries.setup_warehouse_query(this.frm);
 		erpnext.accounts.dimensions.setup_dimension_filters(this.frm, this.frm.doctype);
-	},
+	}
 
-	refresh: function(doc, dt, dn) {
+	refresh(doc, dt, dn) {
 		const me = this;
-		this._super();
+		super.refresh();
 		if(cur_frm.msgbox && cur_frm.msgbox.$wrapper.is(":visible")) {
 			// hide new msgbox
 			cur_frm.msgbox.hide();
@@ -138,16 +138,16 @@
 				}, __('Create'));
 			}
 		}
-	},
+	}
 
-	make_maintenance_schedule: function() {
+	make_maintenance_schedule() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.make_maintenance_schedule",
 			frm: cur_frm
 		})
-	},
+	}
 
-	on_submit: function(doc, dt, dn) {
+	on_submit(doc, dt, dn) {
 		var me = this;
 
 		if (frappe.get_route()[0] != 'Form') {
@@ -157,9 +157,9 @@
 		$.each(doc["items"], function(i, row) {
 			if(row.delivery_note) frappe.model.clear_doc("Delivery Note", row.delivery_note)
 		})
-	},
+	}
 
-	set_default_print_format: function() {
+	set_default_print_format() {
 		// set default print format to POS type or Credit Note
 		if(cur_frm.doc.is_pos) {
 			if(cur_frm.pos_print_format) {
@@ -180,9 +180,9 @@
 				cur_frm.meta._default_print_format = null;
 			}
 		}
-	},
+	}
 
-	sales_order_btn: function() {
+	sales_order_btn() {
 		var me = this;
 		this.$sales_order_btn = this.frm.add_custom_button(__('Sales Order'),
 			function() {
@@ -201,9 +201,9 @@
 					}
 				})
 			}, __("Get Items From"));
-	},
+	}
 
-	quotation_btn: function() {
+	quotation_btn() {
 		var me = this;
 		this.$quotation_btn = this.frm.add_custom_button(__('Quotation'),
 			function() {
@@ -225,9 +225,9 @@
 					}
 				})
 			}, __("Get Items From"));
-	},
+	}
 
-	delivery_note_btn: function() {
+	delivery_note_btn() {
 		var me = this;
 		this.$delivery_note_btn = this.frm.add_custom_button(__('Delivery Note'),
 			function() {
@@ -253,12 +253,12 @@
 					}
 				});
 			}, __("Get Items From"));
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
-	customer: function() {
+	}
+	customer() {
 		if (this.frm.doc.is_pos){
 			var pos_profile = this.frm.doc.pos_profile;
 		}
@@ -289,16 +289,16 @@
 				}
 			});
 		}
-	},
+	}
 
-	make_inter_company_invoice: function() {
+	make_inter_company_invoice() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.make_inter_company_purchase_invoice",
 			frm: me.frm
 		});
-	},
+	}
 
-	debit_to: function() {
+	debit_to() {
 		var me = this;
 		if(this.frm.doc.debit_to) {
 			me.frm.call({
@@ -316,14 +316,14 @@
 				}
 			});
 		}
-	},
+	}
 
-	allocated_amount: function() {
+	allocated_amount() {
 		this.calculate_total_advance();
 		this.frm.refresh_fields();
-	},
+	}
 
-	write_off_outstanding_amount_automatically: function() {
+	write_off_outstanding_amount_automatically() {
 		if(cint(this.frm.doc.write_off_outstanding_amount_automatically)) {
 			frappe.model.round_floats_in(this.frm.doc, ["grand_total", "paid_amount"]);
 			// this will make outstanding amount 0
@@ -338,39 +338,39 @@
 
 		this.calculate_outstanding_amount(false);
 		this.frm.refresh_fields();
-	},
+	}
 
-	write_off_amount: function() {
+	write_off_amount() {
 		this.set_in_company_currency(this.frm.doc, ["write_off_amount"]);
 		this.write_off_outstanding_amount_automatically();
-	},
+	}
 
-	items_add: function(doc, cdt, cdn) {
+	items_add(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		this.frm.script_manager.copy_from_first_row("items", row, ["income_account", "discount_account", "cost_center"]);
-	},
+	}
 
-	set_dynamic_labels: function() {
-		this._super();
+	set_dynamic_labels() {
+		super.set_dynamic_labels();
 		this.frm.events.hide_fields(this.frm)
-	},
+	}
 
-	items_on_form_rendered: function() {
+	items_on_form_rendered() {
 		erpnext.setup_serial_or_batch_no();
-	},
+	}
 
-	packed_items_on_form_rendered: function(doc, grid_row) {
+	packed_items_on_form_rendered(doc, grid_row) {
 		erpnext.setup_serial_or_batch_no();
-	},
+	}
 
-	make_sales_return: function() {
+	make_sales_return() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.make_sales_return",
 			frm: cur_frm
 		})
-	},
+	}
 
-	asset: function(frm, cdt, cdn) {
+	asset(frm, cdt, cdn) {
 		var row = locals[cdt][cdn];
 		if(row.asset) {
 			frappe.call({
@@ -384,18 +384,18 @@
 				}
 			})
 		}
-	},
+	}
 
-	is_pos: function(frm){
+	is_pos(frm){
 		this.set_pos_data();
-	},
+	}
 
-	pos_profile: function() {
+	pos_profile() {
 		this.frm.doc.taxes = []
 		this.set_pos_data();
-	},
+	}
 
-	set_pos_data: function() {
+	set_pos_data() {
 		if(this.frm.doc.is_pos) {
 			this.frm.set_value("allocate_advances_automatically", 0);
 			if(!this.frm.doc.company) {
@@ -425,13 +425,13 @@
 			}
 		}
 		else this.frm.trigger("refresh");
-	},
+	}
 
-	amount: function(){
+	amount(){
 		this.write_off_outstanding_amount_automatically()
-	},
+	}
 
-	change_amount: function(){
+	change_amount(){
 		if(this.frm.doc.paid_amount > this.frm.doc.grand_total){
 			this.calculate_write_off_amount();
 		}else {
@@ -440,9 +440,9 @@
 		}
 
 		this.frm.refresh_fields();
-	},
+	}
 
-	loyalty_amount: function(){
+	loyalty_amount(){
 		this.calculate_outstanding_amount();
 		this.frm.refresh_field("outstanding_amount");
 		this.frm.refresh_field("paid_amount");
@@ -457,10 +457,10 @@
 		});
 		calculate_total_billing_amount(cur_frm)
 	}
-});
+};
 
 // for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.accounts.SalesInvoiceController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.accounts.SalesInvoiceController({frm: cur_frm}));
 
 cur_frm.cscript['Make Delivery Note'] = function() {
 	frappe.model.open_mapped_doc({
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
index 545b77a..b2be860 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json
@@ -2342,16 +2342,6 @@
    "options": "Account"
   },
   {
-   "default": "0",
-   "fieldname": "ignore_default_payment_terms_template",
-   "fieldtype": "Check",
-   "hidden": 1,
-   "label": "Ignore Default Payment Terms Template",
-   "read_only": 1,
-   "show_days": 1,
-   "show_seconds": 1
-  },
-  {
    "allow_on_submit": 1,
    "fieldname": "dispatch_address_name",
    "fieldtype": "Link",
@@ -2365,6 +2355,16 @@
    "fieldtype": "Small Text",
    "label": "Dispatch Address",
    "read_only": 1
+  },
+  {
+   "default": "0",
+   "fieldname": "ignore_default_payment_terms_template",
+   "fieldtype": "Check",
+   "hidden": 1,
+   "label": "Ignore Default Payment Terms Template",
+   "read_only": 1,
+   "show_days": 1,
+   "show_seconds": 1
   }
  ],
  "icon": "fa fa-file-text",
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
index ba1e729..5424ef3 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py
@@ -4,7 +4,7 @@
 from __future__ import unicode_literals
 import frappe, erpnext
 import frappe.defaults
-from frappe.utils import cint, flt, getdate, add_days, cstr, nowdate, get_link_to_form, formatdate
+from frappe.utils import cint, flt, getdate, add_days, add_months, cstr, nowdate, get_link_to_form, formatdate
 from frappe import _, msgprint, throw
 from erpnext.accounts.party import get_party_account, get_due_date, get_party_details
 from frappe.model.mapper import get_mapped_doc
@@ -13,7 +13,7 @@
 from erpnext.stock.doctype.delivery_note.delivery_note import update_billed_amount_based_on_so
 from erpnext.projects.doctype.timesheet.timesheet import get_projectwise_timesheet_data
 from erpnext.assets.doctype.asset.depreciation \
-	import get_disposal_account_and_cost_center, get_gl_entries_on_asset_disposal
+	import get_disposal_account_and_cost_center, get_gl_entries_on_asset_disposal, get_gl_entries_on_asset_regain, post_depreciation_entries
 from erpnext.stock.doctype.batch.batch import set_batch_nos
 from erpnext.stock.doctype.serial_no.serial_no import get_serial_nos, get_delivery_note_serial_no
 from erpnext.setup.doctype.company.company import update_company_current_month_sales
@@ -149,7 +149,7 @@
 					if self.update_stock:
 						frappe.throw(_("'Update Stock' cannot be checked for fixed asset sale"))
 
-					elif asset.status in ("Scrapped", "Cancelled", "Sold"):
+					elif asset.status in ("Scrapped", "Cancelled") or (asset.status == "Sold" and not self.is_return):
 						frappe.throw(_("Row #{0}: Asset {1} cannot be submitted, it is already {2}").format(d.idx, d.asset, asset.status))
 
 	def validate_item_cost_centers(self):
@@ -927,22 +927,30 @@
 		for item in self.get("items"):
 			if flt(item.base_net_amount, item.precision("base_net_amount")):
 				if item.is_fixed_asset:
-					asset = frappe.get_doc("Asset", item.asset)
+					asset = self.get_asset(item)
 
-					if (len(asset.finance_books) > 1 and not item.finance_book
-						and asset.finance_books[0].finance_book):
-						frappe.throw(_("Select finance book for the item {0} at row {1}")
-							.format(item.item_code, item.idx))
+					if self.is_return:
+						fixed_asset_gl_entries = get_gl_entries_on_asset_regain(asset,
+							item.base_net_amount, item.finance_book)
+						asset.db_set("disposal_date", None)
 
-					fixed_asset_gl_entries = get_gl_entries_on_asset_disposal(asset,
-						item.base_net_amount, item.finance_book)
+						if asset.calculate_depreciation:
+							self.reset_depreciation_schedule(asset)
+
+					else:
+						fixed_asset_gl_entries = get_gl_entries_on_asset_disposal(asset,
+							item.base_net_amount, item.finance_book)
+						asset.db_set("disposal_date", self.posting_date)
+
+						if asset.calculate_depreciation:
+							self.depreciate_asset(asset)
 
 					for gle in fixed_asset_gl_entries:
 						gle["against"] = self.customer
 						gl_entries.append(self.get_gl_dict(gle, item=item))
 
-					asset.db_set("disposal_date", self.posting_date)
-					asset.set_status("Sold" if self.docstatus==1 else None)
+					self.set_asset_status(asset)
+
 				else:
 					# Do not book income for transfer within same company
 					if not self.is_internal_transfer():
@@ -970,6 +978,96 @@
 			erpnext.is_perpetual_inventory_enabled(self.company):
 			gl_entries += super(SalesInvoice, self).get_gl_entries()
 
+	def get_asset(self, item):
+		if item.get('asset'):
+			asset = frappe.get_doc("Asset", item.asset)
+		else:
+			frappe.throw(_(
+				"Row #{0}: You must select an Asset for Item {1}.").format(item.idx, item.item_name),
+				title=_("Missing Asset")
+			)
+
+		self.check_finance_books(item, asset)
+		return asset
+
+	def check_finance_books(self, item, asset):
+		if (len(asset.finance_books) > 1 and not item.finance_book
+			and asset.finance_books[0].finance_book):
+			frappe.throw(_("Select finance book for the item {0} at row {1}")
+				.format(item.item_code, item.idx))
+
+	def depreciate_asset(self, asset):
+		asset.flags.ignore_validate_update_after_submit = True
+		asset.prepare_depreciation_data(self.posting_date)
+		asset.save()
+
+		post_depreciation_entries(self.posting_date)
+
+	def reset_depreciation_schedule(self, asset):
+		asset.flags.ignore_validate_update_after_submit = True
+
+		# recreate original depreciation schedule of the asset
+		asset.prepare_depreciation_data()
+
+		self.modify_depreciation_schedule_for_asset_repairs(asset)
+		asset.save()
+
+		self.delete_depreciation_entry_made_after_sale(asset)
+
+	def modify_depreciation_schedule_for_asset_repairs(self, asset):
+		asset_repairs = frappe.get_all(
+			'Asset Repair',
+			filters = {'asset': asset.name},
+			fields = ['name', 'increase_in_asset_life']
+		)
+
+		for repair in asset_repairs:
+			if repair.increase_in_asset_life:
+				asset_repair = frappe.get_doc('Asset Repair', repair.name)
+				asset_repair.modify_depreciation_schedule()
+				asset.prepare_depreciation_data()
+
+	def delete_depreciation_entry_made_after_sale(self, asset):
+		from erpnext.accounts.doctype.journal_entry.journal_entry import make_reverse_journal_entry
+
+		posting_date_of_original_invoice = self.get_posting_date_of_sales_invoice()
+
+		row = -1
+		finance_book = asset.get('schedules')[0].get('finance_book')
+		for schedule in asset.get('schedules'):
+			if schedule.finance_book != finance_book:
+				row = 0
+				finance_book = schedule.finance_book
+			else:
+				row += 1
+
+			if schedule.schedule_date == posting_date_of_original_invoice:
+				if not self.sale_was_made_on_original_schedule_date(asset, schedule, row, posting_date_of_original_invoice):
+					reverse_journal_entry = make_reverse_journal_entry(schedule.journal_entry)
+					reverse_journal_entry.posting_date = nowdate()
+					reverse_journal_entry.submit()
+
+	def get_posting_date_of_sales_invoice(self):
+		return frappe.db.get_value('Sales Invoice', self.return_against, 'posting_date')
+
+	# if the invoice had been posted on the date the depreciation was initially supposed to happen, the depreciation shouldn't be undone
+	def sale_was_made_on_original_schedule_date(self, asset, schedule, row, posting_date_of_original_invoice):
+		for finance_book in asset.get('finance_books'):
+			if schedule.finance_book == finance_book.finance_book:
+				orginal_schedule_date = add_months(finance_book.depreciation_start_date,
+					row * cint(finance_book.frequency_of_depreciation))
+
+				if orginal_schedule_date == posting_date_of_original_invoice:
+					return True
+		return False
+
+	@property
+	def enable_discount_accounting(self):
+		if not hasattr(self, "_enable_discount_accounting"):
+			self._enable_discount_accounting = cint(frappe.db.get_single_value('Accounts Settings', 'enable_discount_accounting'))
+
+		return self._enable_discount_accounting
+
 	def set_asset_status(self, asset):
 		if self.is_return:
 			asset.set_status()
diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
index 12f03be..4d1e0c3 100644
--- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -2,14 +2,17 @@
 # License: GNU General Public License v3. See license.txt
 from __future__ import unicode_literals
 
-import frappe
+import frappe, erpnext
 
 import unittest, copy, time
 from frappe.utils import nowdate, flt, getdate, cint, add_days, add_months
 from frappe.model.dynamic_links import get_dynamic_link_map
 from erpnext.stock.doctype.stock_entry.test_stock_entry import make_stock_entry, get_qty_after_transaction
 from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import unlink_payment_on_cancel_of_invoice
+from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import WarehouseMissingError
 from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile
+from erpnext.assets.doctype.asset.test_asset import create_asset, create_asset_data
+from erpnext.assets.doctype.asset.depreciation import post_depreciation_entries
 from erpnext.exceptions import InvalidAccountCurrency, InvalidCurrency
 from erpnext.stock.doctype.serial_no.serial_no import SerialNoWarehouseError
 from frappe.model.naming import make_autoname
@@ -1069,6 +1072,36 @@
 		self.assertFalse(si1.outstanding_amount)
 		self.assertEqual(frappe.db.get_value("Sales Invoice", si.name, "outstanding_amount"), 1500)
 
+	def test_gle_made_when_asset_is_returned(self):
+		create_asset_data()
+		asset = create_asset(item_code="Macbook Pro")
+
+		si = create_sales_invoice(item_code="Macbook Pro", asset=asset.name, qty=1, rate=90000)
+		return_si = create_sales_invoice(is_return=1, return_against=si.name, item_code="Macbook Pro", asset=asset.name, qty=-1, rate=90000)
+
+		disposal_account = frappe.get_cached_value("Company", "_Test Company", "disposal_account")
+
+		# Asset value is 100,000 but it was sold for 90,000, so there should be a loss of 10,000
+		loss_for_si = frappe.get_all(
+			"GL Entry",
+			filters = {
+				"voucher_no": si.name,
+				"account": disposal_account
+			},
+			fields = ["credit", "debit"]
+		)[0]
+
+		loss_for_return_si = frappe.get_all(
+			"GL Entry",
+			filters = {
+				"voucher_no": return_si.name,
+				"account": disposal_account
+			},
+			fields = ["credit", "debit"]
+		)[0]
+
+		self.assertEqual(loss_for_si['credit'], loss_for_return_si['debit'])
+		self.assertEqual(loss_for_si['debit'], loss_for_return_si['credit'])
 
 	def test_discount_on_net_total(self):
 		si = frappe.copy_doc(test_records[2])
@@ -1805,6 +1838,89 @@
 		self.assertEqual(target_doc.company, "_Test Company 1")
 		self.assertEqual(target_doc.supplier, "_Test Internal Supplier")
 
+	def test_inter_company_transaction_without_default_warehouse(self):
+		"Check mapping (expense account) of inter company SI to PI in absence of default warehouse."
+		# setup
+		old_negative_stock = frappe.db.get_single_value("Stock Settings", "allow_negative_stock")
+		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", 1)
+
+		old_perpetual_inventory = erpnext.is_perpetual_inventory_enabled('_Test Company 1')
+		frappe.local.enable_perpetual_inventory['_Test Company 1'] = 1
+
+		frappe.db.set_value("Company", '_Test Company 1', "stock_received_but_not_billed", "Stock Received But Not Billed - _TC1")
+		frappe.db.set_value("Company", '_Test Company 1', "expenses_included_in_valuation", "Expenses Included In Valuation - _TC1")
+
+
+		if not frappe.db.exists("Customer", "_Test Internal Customer"):
+			customer = frappe.get_doc({
+				"customer_group": "_Test Customer Group",
+				"customer_name": "_Test Internal Customer",
+				"customer_type": "Individual",
+				"doctype": "Customer",
+				"territory": "_Test Territory",
+				"is_internal_customer": 1,
+				"represents_company": "_Test Company 1"
+			})
+
+			customer.append("companies", {
+				"company": "Wind Power LLC"
+			})
+
+			customer.insert()
+
+		if not frappe.db.exists("Supplier", "_Test Internal Supplier"):
+			supplier = frappe.get_doc({
+				"supplier_group": "_Test Supplier Group",
+				"supplier_name": "_Test Internal Supplier",
+				"doctype": "Supplier",
+				"is_internal_supplier": 1,
+				"represents_company": "Wind Power LLC"
+			})
+
+			supplier.append("companies", {
+				"company": "_Test Company 1"
+			})
+
+			supplier.insert()
+
+		# begin test
+		si = create_sales_invoice(
+			company = "Wind Power LLC",
+			customer = "_Test Internal Customer",
+			debit_to = "Debtors - WP",
+			warehouse = "Stores - WP",
+			income_account = "Sales - WP",
+			expense_account = "Cost of Goods Sold - WP",
+			cost_center = "Main - WP",
+			currency = "USD",
+			update_stock = 1,
+			do_not_save = 1
+		)
+		si.selling_price_list = "_Test Price List Rest of the World"
+		si.submit()
+
+		target_doc = make_inter_company_transaction("Sales Invoice", si.name)
+
+		# in absence of warehouse Stock Received But Not Billed is set as expense account while mapping
+		# mapping is not obstructed
+		self.assertIsNone(target_doc.items[0].warehouse)
+		self.assertEqual(target_doc.items[0].expense_account, "Stock Received But Not Billed - _TC1")
+
+		target_doc.items[0].update({"cost_center": "Main - _TC1"})
+
+		# missing warehouse is validated on save, after mapping
+		self.assertRaises(WarehouseMissingError, target_doc.save)
+
+		target_doc.items[0].update({"warehouse": "Stores - _TC1"})
+		target_doc.save()
+
+		# after warehouse is set, linked account or default inventory account is set
+		self.assertEqual(target_doc.items[0].expense_account, 'Stock In Hand - _TC1')
+
+		# tear down
+		frappe.local.enable_perpetual_inventory['_Test Company 1'] = old_perpetual_inventory
+		frappe.db.set_value("Stock Settings", None, "allow_negative_stock", old_negative_stock)
+
 	def test_internal_transfer_gl_entry(self):
 		## Create internal transfer account
 		account = create_account(account_name="Unrealized Profit",
@@ -1994,7 +2110,7 @@
 		discount_account = create_account(account_name="Discount Account",
 			parent_account="Indirect Expenses - _TC", company="_Test Company")
 		si = create_sales_invoice(discount_account=discount_account, discount_percentage=10, rate=90)
-		
+
 		expected_gle = [
 			["Debtors - _TC", 90.0, 0.0, nowdate()],
 			["Discount Account - _TC", 10.0, 0.0, nowdate()],
@@ -2010,7 +2126,7 @@
 		enable_discount_accounting()
 		additional_discount_account = create_account(account_name="Discount Account",
 			parent_account="Indirect Expenses - _TC", company="_Test Company")
-		
+
 		si = create_sales_invoice(parent_cost_center='Main - _TC', do_not_save=1)
 		si.apply_discount_on = "Grand Total"
 		si.additional_discount_account = additional_discount_account
@@ -2034,6 +2150,30 @@
 		check_gl_entries(self, si.name, expected_gle, add_days(nowdate(), -1))
 		enable_discount_accounting(enable=0)
 
+	def test_asset_depreciation_on_sale(self):
+		"""
+			Tests if an Asset set to depreciate yearly on June 30, that gets sold on Sept 30, creates an additional depreciation entry on Sept 30.
+		"""
+
+		create_asset_data()
+		asset = create_asset(item_code="Macbook Pro", calculate_depreciation=1, submit=1)
+		post_depreciation_entries(getdate("2021-09-30"))
+
+		create_sales_invoice(item_code="Macbook Pro", asset=asset.name, qty=1, rate=90000, posting_date=getdate("2021-09-30"))
+		asset.load_from_db()
+
+		expected_values = [
+			["2020-06-30", 1311.48, 1311.48],
+			["2021-06-30", 20000.0, 21311.48],
+			["2021-09-30", 3966.76, 25278.24]
+		]
+
+		for i, schedule in enumerate(asset.schedules):
+			self.assertEqual(getdate(expected_values[i][0]), schedule.schedule_date)
+			self.assertEqual(expected_values[i][1], schedule.depreciation_amount)
+			self.assertEqual(expected_values[i][2], schedule.accumulated_depreciation_amount)
+			self.assertTrue(schedule.journal_entry)
+
 def get_sales_invoice_for_e_invoice():
 	si = make_sales_invoice_for_ewaybill()
 	si.naming_series = 'INV-2020-.#####'
@@ -2062,7 +2202,6 @@
 
 	return si
 
-
 def make_test_address_for_ewaybill():
 	if not frappe.db.exists('Address', '_Test Address for Eway bill-Billing'):
 		address = frappe.get_doc({
@@ -2244,6 +2383,7 @@
 		"expense_account": args.expense_account or "Cost of Goods Sold - _TC",
 		"discount_account": args.discount_account or None,
 		"discount_amount": args.discount_amount or 0,
+		"asset": args.asset or None,
 		"cost_center": args.cost_center or "_Test Cost Center - _TC",
 		"serial_no": args.serial_no,
 		"conversion_factor": 1
diff --git a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
index b65903b..c77076c 100644
--- a/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
+++ b/erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
@@ -474,6 +474,7 @@
   },
   {
    "collapsible": 1,
+   "collapsible_depends_on": "enable_deferred_revenue",
    "fieldname": "deferred_revenue",
    "fieldtype": "Section Break",
    "label": "Deferred Revenue"
@@ -744,7 +745,6 @@
    "fieldname": "asset",
    "fieldtype": "Link",
    "label": "Asset",
-   "no_copy": 1,
    "options": "Asset"
   },
   {
@@ -833,7 +833,7 @@
  "idx": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-07-05 15:07:22.857128",
+ "modified": "2021-08-12 20:15:47.668399",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Sales Invoice Item",
diff --git a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
index cfdb167..3a871bf 100644
--- a/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
+++ b/erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
@@ -19,7 +19,7 @@
   "section_break_8",
   "rate",
   "section_break_9",
-  "currency",
+  "account_currency",
   "tax_amount",
   "total",
   "tax_amount_after_discount_amount",
@@ -187,14 +187,6 @@
    "fieldtype": "Column Break"
   },
   {
-   "fetch_from": "account_head.account_currency",
-   "fieldname": "currency",
-   "fieldtype": "Link",
-   "label": "Account Currency",
-   "options": "Currency",
-   "read_only": 1
-  },
-  {
    "default": "0",
    "depends_on": "eval:['Sales Taxes and Charges Template', 'Payment Entry'].includes(parent.doctype)",
    "description": "If checked, the tax amount will be considered as already included in the Paid Amount in Payment Entry",
@@ -210,13 +202,21 @@
    "label": "Dont Recompute tax",
    "print_hide": 1,
    "read_only": 1
+  },
+  {
+   "fetch_from": "account_head.account_currency",
+   "fieldname": "account_currency",
+   "fieldtype": "Link",
+   "label": "Account Currency",
+   "options": "Currency",
+   "read_only": 1
   }
  ],
  "idx": 1,
  "index_web_pages_for_search": 1,
  "istable": 1,
  "links": [],
- "modified": "2021-07-27 12:40:59.051803",
+ "modified": "2021-08-05 20:04:01.726867",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Sales Taxes and Charges",
diff --git a/erpnext/erpnext_integrations/doctype/shopify_tax_account/__init__.py b/erpnext/accounts/doctype/south_africa_vat_account/__init__.py
similarity index 100%
rename from erpnext/erpnext_integrations/doctype/shopify_tax_account/__init__.py
rename to erpnext/accounts/doctype/south_africa_vat_account/__init__.py
diff --git a/erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.json b/erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.json
new file mode 100644
index 0000000..fa1aa7d
--- /dev/null
+++ b/erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.json
@@ -0,0 +1,34 @@
+{
+ "actions": [],
+ "autoname": "account",
+ "creation": "2021-07-08 22:04:24.634967",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+  "account"
+ ],
+ "fields": [
+  {
+   "allow_in_quick_entry": 1,
+   "fieldname": "account",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "in_preview": 1,
+   "label": "Account",
+   "options": "Account"
+  }
+ ],
+ "index_web_pages_for_search": 1,
+ "istable": 1,
+ "links": [],
+ "modified": "2021-07-08 22:35:33.202911",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "South Africa VAT Account",
+ "owner": "Administrator",
+ "permissions": [],
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "track_changes": 1
+}
\ No newline at end of file
diff --git a/erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.py b/erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.py
new file mode 100644
index 0000000..4bd8c65
--- /dev/null
+++ b/erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.py
@@ -0,0 +1,8 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+# import frappe
+from frappe.model.document import Document
+
+class SouthAfricaVATAccount(Document):
+	pass
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 25d2cf1..4c7c567 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -100,8 +100,8 @@
 	return merged_gl_map
 
 def check_if_in_list(gle, gl_map, dimensions=None):
-	account_head_fieldnames = ['party_type', 'party', 'against_voucher', 'against_voucher_type',
-		'cost_center', 'project', 'voucher_detail_no']
+	account_head_fieldnames = ['voucher_detail_no', 'party', 'against_voucher',
+			'cost_center', 'against_voucher_type', 'party_type', 'project']
 
 	if dimensions:
 		account_head_fieldnames = account_head_fieldnames + dimensions
@@ -110,10 +110,12 @@
 		same_head = True
 		if e.account != gle.account:
 			same_head = False
+			continue
 
 		for fieldname in account_head_fieldnames:
 			if cstr(e.get(fieldname)) != cstr(gle.get(fieldname)):
 				same_head = False
+				break
 
 		if same_head:
 			return e
@@ -143,16 +145,19 @@
 		validate_expense_against_budget(args)
 
 def validate_cwip_accounts(gl_map):
-	cwip_enabled = any(cint(ac.enable_cwip_accounting) for ac in frappe.db.get_all("Asset Category","enable_cwip_accounting"))
+	"""Validate that CWIP account are not used in Journal Entry"""
+	if gl_map and gl_map[0].voucher_type != "Journal Entry":
+		return
 
-	if cwip_enabled and gl_map[0].voucher_type == "Journal Entry":
-			cwip_accounts = [d[0] for d in frappe.db.sql("""select name from tabAccount
-				where account_type = 'Capital Work in Progress' and is_group=0""")]
+	cwip_enabled = any(cint(ac.enable_cwip_accounting) for ac in frappe.db.get_all("Asset Category", "enable_cwip_accounting"))
+	if cwip_enabled:
+		cwip_accounts = [d[0] for d in frappe.db.sql("""select name from tabAccount
+			where account_type = 'Capital Work in Progress' and is_group=0""")]
 
-			for entry in gl_map:
-				if entry.account in cwip_accounts:
-					frappe.throw(
-						_("Account: <b>{0}</b> is capital Work in progress and can not be updated by Journal Entry").format(entry.account))
+		for entry in gl_map:
+			if entry.account in cwip_accounts:
+				frappe.throw(
+					_("Account: <b>{0}</b> is capital Work in progress and can not be updated by Journal Entry").format(entry.account))
 
 def round_off_debit_credit(gl_map):
 	precision = get_field_precision(frappe.get_meta("GL Entry").get_field("debit"),
diff --git a/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/__init__.py b/erpnext/accounts/report/tax_detail/__init__.py
similarity index 100%
rename from erpnext/erpnext_integrations/doctype/shopify_webhook_detail/__init__.py
rename to erpnext/accounts/report/tax_detail/__init__.py
diff --git a/erpnext/accounts/report/tax_detail/tax_detail.js b/erpnext/accounts/report/tax_detail/tax_detail.js
new file mode 100644
index 0000000..ed6fac4
--- /dev/null
+++ b/erpnext/accounts/report/tax_detail/tax_detail.js
@@ -0,0 +1,451 @@
+// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+// Contributed by Case Solved and sponsored by Nulight Studios
+/* eslint-disable */
+
+frappe.provide('frappe.query_reports');
+
+frappe.query_reports["Tax Detail"] = {
+	filters: [
+		{
+			fieldname: "company",
+			label: __("Company"),
+			fieldtype: "Link",
+			options: "Company",
+			default: frappe.defaults.get_user_default("company"),
+			reqd: 1
+		},
+		{
+			fieldname: "from_date",
+			label: __("From Date"),
+			fieldtype: "Date",
+			default: frappe.datetime.month_start(frappe.datetime.get_today()),
+			reqd: 1,
+			width: "60px"
+		},
+		{
+			fieldname: "to_date",
+			label: __("To Date"),
+			fieldtype: "Date",
+			default: frappe.datetime.month_end(frappe.datetime.get_today()),
+			reqd: 1,
+			width: "60px"
+		},
+		{
+			fieldname: "report_name",
+			label: __("Report Name"),
+			fieldtype: "Read Only",
+			default: frappe.query_report.report_name,
+			hidden: 1,
+			reqd: 1
+		},
+		{
+			fieldname: "mode",
+			label: __("Mode"),
+			fieldtype: "Read Only",
+			default: "edit",
+			hidden: 1,
+			reqd: 1
+		}
+	],
+	onload: function onload(report) {
+		// Remove Add Column and Save from menu
+		report.page.add_inner_button(__("New Report"), () => new_report(), __("Custom Report"));
+		report.page.add_inner_button(__("Load Report"), () => load_report(), __("Custom Report"));
+		hide_filters(report);
+	}
+};
+
+function hide_filters(report) {
+	report.page.page_form[0].querySelectorAll('.form-group.frappe-control').forEach(function setHidden(field) {
+		if (field.dataset.fieldtype == "Read Only") {
+			field.classList.add("hidden");
+		}
+	});
+}
+
+erpnext.TaxDetail = class TaxDetail {
+	constructor() {
+		this.patch();
+		this.load_report();
+	}
+	// Monkey patch the QueryReport class
+	patch() {
+		this.qr = frappe.query_report;
+		this.super = {
+			refresh_report: this.qr.refresh_report,
+			show_footer_message: this.qr.show_footer_message
+		}
+		this.qr.refresh_report = () => this.refresh_report();
+		this.qr.show_footer_message = () => this.show_footer_message();
+	}
+	show_footer_message() {
+		// The last thing to run after datatable_render in refresh()
+		this.super.show_footer_message.apply(this.qr);
+		if (this.qr.report_name !== 'Tax Detail') {
+			this.show_help();
+			if (this.loading) {
+				this.set_section('');
+			} else {
+				this.reload_component('');
+			}
+		}
+		this.loading = false;
+	}
+	refresh_report() {
+		// Infrequent report build (onload), load filters & data
+		// super function runs a refresh() serially
+		// already run within frappe.run_serially
+		this.loading = true;
+		this.super.refresh_report.apply(this.qr);
+		if (this.qr.report_name !== 'Tax Detail') {
+			frappe.call({
+				method: 'erpnext.accounts.report.tax_detail.tax_detail.get_custom_reports',
+				args: {name: this.qr.report_name}
+			}).then((r) => {
+				const data = JSON.parse(r.message[this.qr.report_name]['json']);
+				this.create_controls();
+				this.sections = data.sections || {};
+				this.controls['show_detail'].set_input(data.show_detail);
+			});
+		}
+	}
+	load_report() {
+		// One-off report build like titles, menu, etc
+		// Run when this object is created which happens in qr.load_report
+		this.qr.menu_items = this.get_menu_items();
+	}
+	get_menu_items() {
+		// Replace Save action
+		let new_items = [];
+		const save = __('Save');
+
+		for (let item of this.qr.menu_items) {
+			if (item.label === save) {
+				new_items.push({
+					label: save,
+					action: () => this.save_report(),
+					standard: false
+				});
+			} else {
+				new_items.push(item);
+			}
+		}
+		return new_items;
+	}
+	save_report() {
+		this.check_datatable();
+		if (this.qr.report_name !== 'Tax Detail') {
+			frappe.call({
+				method:'erpnext.accounts.report.tax_detail.tax_detail.save_custom_report',
+				args: {
+					reference_report: 'Tax Detail',
+					report_name: this.qr.report_name,
+					data: {
+						columns: this.qr.get_visible_columns(),
+						sections: this.sections,
+						show_detail: this.controls['show_detail'].get_input_value()
+					}
+				},
+				freeze: true
+			}).then((r) => {
+				this.set_section('');
+			});
+		}
+	}
+	check_datatable() {
+		if (!this.qr.datatable) {
+			frappe.throw(__('Please change the date range to load data first'));
+		}
+	}
+	set_section(name) {
+		// Sets the given section name and then reloads the data
+		if (name && !this.sections[name]) {
+			this.sections[name] = {};
+		}
+		let options = Object.keys(this.sections);
+		options.unshift('');
+		this.controls['section_name'].$wrapper.find("select").empty().add_options(options);
+		const org_mode = this.qr.get_filter_value('mode');
+		let refresh = false;
+		if (name) {
+			this.controls['section_name'].set_input(name);
+			this.qr.set_filter_value('mode', 'edit');
+			if (org_mode === 'run') {
+				refresh = true;
+			}
+		} else {
+			this.controls['section_name'].set_input('');
+			this.qr.set_filter_value('mode', 'run');
+			if (org_mode === 'edit') {
+				refresh = true;
+			}
+		}
+		if (refresh) {
+			this.qr.refresh();
+		}
+		this.reload_component('');
+	}
+	reload_component(component_name) {
+		const section_name = this.controls['section_name'].get_input_value();
+		if (section_name) {
+			const section = this.sections[section_name];
+			const component_names = Object.keys(section);
+			component_names.unshift('');
+			this.controls['component'].$wrapper.find("select").empty().add_options(component_names);
+			this.controls['component'].set_input(component_name);
+			if (component_name) {
+				this.controls['component_type'].set_input(section[component_name].type);
+			}
+		} else {
+			this.controls['component'].$wrapper.find("select").empty();
+			this.controls['component'].set_input('');
+		}
+		this.set_table_filters();
+	}
+	set_table_filters() {
+		let filters = {};
+		const section_name = this.controls['section_name'].get_input_value();
+		const component_name = this.controls['component'].get_input_value();
+		if (section_name && component_name) {
+			const component_type = this.sections[section_name][component_name].type;
+			if (component_type === 'filter') {
+				filters = this.sections[section_name][component_name]['filters'];
+			}
+		}
+		this.setAppliedFilters(filters);
+	}
+	setAppliedFilters(filters) {
+		if (this.qr.datatable) {
+			Array.from(this.qr.datatable.header.querySelectorAll('.dt-filter')).map(function setFilters(input) {
+				let idx = input.dataset.colIndex;
+				if (filters[idx]) {
+					input.value = filters[idx];
+				} else {
+					input.value = null;
+				}
+			});
+			this.qr.datatable.columnmanager.applyFilter(filters);
+		}
+	}
+	delete(name, type) {
+		if (type === 'section') {
+			delete this.sections[name];
+			const new_section = Object.keys(this.sections)[0] || '';
+			this.set_section(new_section);
+		}
+		if (type === 'component') {
+			const cur_section = this.controls['section_name'].get_input_value();
+			delete this.sections[cur_section][name];
+			this.reload_component('');
+		}
+	}
+	create_controls() {
+		let controls = {};
+		// SELECT in data.js
+		controls['section_name'] = this.qr.page.add_field({
+			label: __('Section'),
+			fieldtype: 'Select',
+			fieldname: 'section_name',
+			change: (e) => {
+				this.set_section(this.controls['section_name'].get_input_value());
+			}
+		});
+		// BUTTON in button.js
+		controls['new_section'] = this.qr.page.add_field({
+			label: __('New Section'),
+			fieldtype: 'Button',
+			fieldname: 'new_section',
+			click: () => {
+				frappe.prompt({
+					label: __('Section Name'),
+					fieldname: 'name',
+					fieldtype: 'Data'
+				}, (values) => {
+					this.set_section(values.name);
+				});
+			}
+		});
+		controls['delete_section'] = this.qr.page.add_field({
+			label: __('Delete Section'),
+			fieldtype: 'Button',
+			fieldname: 'delete_section',
+			click: () => {
+				let cur_section = this.controls['section_name'].get_input_value();
+				if (cur_section) {
+					frappe.confirm(__('Are you sure you want to delete section') + ' ' + cur_section + '?',
+					() => {this.delete(cur_section, 'section')});
+				}
+			}
+		});
+		controls['component'] = this.qr.page.add_field({
+			label: __('Component'),
+			fieldtype: 'Select',
+			fieldname: 'component',
+			change: (e) => {
+				this.reload_component(this.controls['component'].get_input_value());
+			}
+		});
+		controls['component_type'] = this.qr.page.add_field({
+			label: __('Component Type'),
+			fieldtype: 'Select',
+			fieldname: 'component_type',
+			default: 'filter',
+			options: [
+				{label: __('Filtered Row Subtotal'), value: 'filter'},
+				{label: __('Section Subtotal'), value: 'section'}
+			]
+		});
+		controls['add_component'] = this.qr.page.add_field({
+			label: __('Add Component'),
+			fieldtype: 'Button',
+			fieldname: 'add_component',
+			click: () => {
+				this.check_datatable();
+				let section_name = this.controls['section_name'].get_input_value();
+				if (section_name) {
+					const component_type = this.controls['component_type'].get_input_value();
+					let idx = 0;
+					const names = Object.keys(this.sections[section_name]);
+					if (names.length > 0) {
+						const idxs = names.map((key) => parseInt(key.match(/\d+$/)) || 0);
+						idx = Math.max(...idxs) + 1;
+					}
+					const filters = this.qr.datatable.columnmanager.getAppliedFilters();
+					if (component_type === 'filter') {
+						const name = 'Filter' + idx.toString();
+						let data = {
+							type: component_type,
+							filters: filters
+						}
+						this.sections[section_name][name] = data;
+						this.reload_component(name);
+					} else if (component_type === 'section') {
+						if (filters && Object.keys(filters).length !== 0) {
+							frappe.show_alert({
+								message: __('Column filters ignored'),
+								indicator: 'yellow'
+							});
+						}
+						let data = {
+							type: component_type
+						}
+						frappe.prompt({
+							label: __('Section'),
+							fieldname: 'section',
+							fieldtype: 'Select',
+							options: Object.keys(this.sections)
+						}, (values) => {
+							this.sections[section_name][values.section] = data;
+							this.reload_component(values.section);
+						});
+					} else {
+						frappe.throw(__('Please select the Component Type first'));
+					}
+				} else {
+					frappe.throw(__('Please select the Section first'));
+				}
+			}
+		});
+		controls['delete_component'] = this.qr.page.add_field({
+			label: __('Delete Component'),
+			fieldtype: 'Button',
+			fieldname: 'delete_component',
+			click: () => {
+				const component = this.controls['component'].get_input_value();
+				if (component) {
+					frappe.confirm(__('Are you sure you want to delete component') + ' ' + component + '?',
+					() => {this.delete(component, 'component')});
+				}
+			}
+		});
+		controls['save'] = this.qr.page.add_field({
+			label: __('Save & Run'),
+			fieldtype: 'Button',
+			fieldname: 'save',
+			click: () => {
+				this.save_report();
+			}
+		});
+		controls['show_detail'] = this.qr.page.add_field({
+			label: __('Show Detail'),
+			fieldtype: 'Check',
+			fieldname: 'show_detail',
+			default: 1
+		});
+		this.controls = controls;
+	}
+	show_help() {
+		const help = __('Your custom report is built from General Ledger Entries within the date range. You can add multiple sections to the report using the New Section button. Each component added to a section adds a subset of the data into the specified section. Beware of duplicated data rows. The Filtered Row component type saves the datatable column filters to specify the added data. The Section component type refers to the data in a previously defined section, but it cannot refer to its parent section. The Amount column is summed to give the section subtotal. Use the Show Detail box to see the data rows included in each section in the final report. Once finished, hit Save & Run. Report contributed by');
+		this.qr.$report_footer.append('<div class="col-md-12"><strong>' + __('Help') + `: </strong>${help}<a href="https://www.casesolved.co.uk"> Case Solved</a></div>`);
+	}
+}
+
+if (!window.taxdetail) {
+	window.taxdetail = new erpnext.TaxDetail();
+}
+
+function get_reports(cb) {
+	frappe.call({
+		method: 'erpnext.accounts.report.tax_detail.tax_detail.get_custom_reports',
+		freeze: true
+	}).then((r) => {
+		cb(r.message);
+	})
+}
+
+function new_report() {
+	const dialog = new frappe.ui.Dialog({
+		title: __('New Report'),
+		fields: [
+			{
+				fieldname: 'report_name',
+				label: __('Report Name'),
+				fieldtype: 'Data',
+				default: 'VAT Return'
+			}
+		],
+		primary_action_label: __('Create'),
+		primary_action: function new_report_pa(values) {
+			frappe.call({
+				method:'erpnext.accounts.report.tax_detail.tax_detail.save_custom_report',
+				args: {
+					reference_report: 'Tax Detail',
+					report_name: values.report_name,
+					data: {
+						columns: [],
+						sections: {},
+						show_detail: 1
+					}
+				},
+				freeze: true
+			}).then((r) => {
+				frappe.set_route('query-report', values.report_name);
+			});
+			dialog.hide();
+		}
+	});
+	dialog.show();
+}
+
+function load_report() {
+	get_reports(function load_report_cb(reports) {
+		const dialog = new frappe.ui.Dialog({
+			title: __('Load Report'),
+			fields: [
+				{
+					fieldname: 'report_name',
+					label: __('Report Name'),
+					fieldtype: 'Select',
+					options: Object.keys(reports)
+				}
+			],
+			primary_action_label: __('Load'),
+			primary_action: function load_report_pa(values) {
+				dialog.hide();
+				frappe.set_route('query-report', values.report_name);
+			}
+		});
+		dialog.show();
+	});
+}
diff --git a/erpnext/accounts/report/tax_detail/tax_detail.json b/erpnext/accounts/report/tax_detail/tax_detail.json
new file mode 100644
index 0000000..d52ffd0
--- /dev/null
+++ b/erpnext/accounts/report/tax_detail/tax_detail.json
@@ -0,0 +1,32 @@
+{
+ "add_total_row": 0,
+ "columns": [],
+ "creation": "2021-02-19 16:44:21.175113",
+ "disable_prepared_report": 0,
+ "disabled": 0,
+ "docstatus": 0,
+ "doctype": "Report",
+ "filters": [],
+ "idx": 0,
+ "is_standard": "Yes",
+ "modified": "2021-02-19 16:44:21.175113",
+ "modified_by": "Administrator",
+ "module": "Accounts",
+ "name": "Tax Detail",
+ "owner": "Administrator",
+ "prepared_report": 0,
+ "ref_doctype": "GL Entry",
+ "report_name": "Tax Detail",
+ "report_type": "Script Report",
+ "roles": [
+  {
+   "role": "Accounts User"
+  },
+  {
+   "role": "Accounts Manager"
+  },
+  {
+   "role": "Auditor"
+  }
+ ]
+}
\ No newline at end of file
diff --git a/erpnext/accounts/report/tax_detail/tax_detail.py b/erpnext/accounts/report/tax_detail/tax_detail.py
new file mode 100644
index 0000000..18436de
--- /dev/null
+++ b/erpnext/accounts/report/tax_detail/tax_detail.py
@@ -0,0 +1,296 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+# Contributed by Case Solved and sponsored by Nulight Studios
+
+from __future__ import unicode_literals
+import frappe
+import json
+from frappe import _
+
+# NOTE: Payroll is implemented using Journal Entries which are included as GL Entries
+
+# field lists in multiple doctypes will be coalesced
+required_sql_fields = {
+	("GL Entry", 1): ["posting_date"],
+	("Account",): ["root_type", "account_type"],
+	("GL Entry", 2): ["account", "voucher_type", "voucher_no", "debit", "credit"],
+	("Purchase Invoice Item", "Sales Invoice Item"): ["base_net_amount", "item_tax_rate", "item_tax_template", "item_group", "item_name"],
+	("Purchase Invoice", "Sales Invoice"): ["taxes_and_charges", "tax_category"],
+}
+
+
+def execute(filters=None):
+	if not filters:
+		return [], []
+
+	fieldlist = required_sql_fields
+	fieldstr = get_fieldstr(fieldlist)
+
+	gl_entries = frappe.db.sql("""
+		select {fieldstr}
+		from `tabGL Entry` ge
+		inner join `tabAccount` a on
+			ge.account=a.name and ge.company=a.company
+		left join `tabSales Invoice` si on
+			ge.company=si.company and ge.voucher_type='Sales Invoice' and ge.voucher_no=si.name
+		left join `tabSales Invoice Item` sii on
+			a.root_type='Income' and si.name=sii.parent
+		left join `tabPurchase Invoice` pi on
+			ge.company=pi.company and ge.voucher_type='Purchase Invoice' and ge.voucher_no=pi.name
+		left join `tabPurchase Invoice Item` pii on
+			a.root_type='Expense' and pi.name=pii.parent
+		where
+			ge.company=%(company)s and
+			ge.posting_date>=%(from_date)s and
+			ge.posting_date<=%(to_date)s
+		order by ge.posting_date, ge.voucher_no
+		""".format(fieldstr=fieldstr), filters, as_dict=1)
+
+	report_data = modify_report_data(gl_entries)
+	summary = None
+	if filters['mode'] == 'run' and filters['report_name'] != 'Tax Detail':
+		report_data, summary = run_report(filters['report_name'], report_data)
+
+	# return columns, data, message, chart, report_summary
+	return get_columns(fieldlist), report_data, None, None, summary
+
+def run_report(report_name, data):
+	"Applies the sections and filters saved in the custom report"
+	report_config = json.loads(frappe.get_doc('Report', report_name).json)
+	# Columns indexed from 1 wrt colno
+	columns = report_config.get('columns')
+	sections = report_config.get('sections', {})
+	show_detail = report_config.get('show_detail', 1)
+	report = {}
+	new_data = []
+	summary = []
+	for section_name, section in sections.items():
+		report[section_name] = {'rows': [], 'subtotal': 0.0}
+		for component_name, component in section.items():
+			if component['type'] == 'filter':
+				for row in data:
+					matched = True
+					for colno, filter_string in component['filters'].items():
+						filter_field = columns[int(colno) - 1]['fieldname']
+						if not filter_match(row[filter_field], filter_string):
+							matched = False
+							break
+					if matched:
+						report[section_name]['rows'] += [row]
+						report[section_name]['subtotal'] += row['amount']
+			if component['type'] == 'section':
+				if component_name == section_name:
+					frappe.throw(_("A report component cannot refer to its parent section") + ": " + section_name)
+				try:
+					report[section_name]['rows'] += report[component_name]['rows']
+					report[section_name]['subtotal'] += report[component_name]['subtotal']
+				except KeyError:
+					frappe.throw(_("A report component can only refer to an earlier section") + ": " + section_name)
+
+		if show_detail:
+			new_data += report[section_name]['rows']
+		new_data += [{'voucher_no': section_name, 'amount': report[section_name]['subtotal']}]
+		summary += [{'label': section_name, 'datatype': 'Currency', 'value': report[section_name]['subtotal']}]
+		if show_detail:
+			new_data += [{}]
+	return new_data or data, summary or None
+
+def filter_match(value, string):
+	"Approximation to datatable filters"
+	import datetime
+	if string == '':
+		return True
+	if value is None:
+		value = -999999999999999
+	elif isinstance(value, datetime.date):
+		return True
+
+	if isinstance(value, str):
+		value = value.lower()
+		string = string.lower()
+		if string[0] == '<':
+			return True if string[1:].strip() else False
+		elif string[0] == '>':
+			return False if string[1:].strip() else True
+		elif string[0] == '=':
+			return string[1:] in value if string[1:] else False
+		elif string[0:2] == '!=':
+			return string[2:] not in value
+		elif len(string.split(':')) == 2:
+			pre, post = string.split(':')
+			return (True if not pre.strip() and post.strip() in value else False)
+		else:
+			return string in value
+	else:
+		if string[0] in ['<', '>', '=']:
+			operator = string[0]
+			if operator == '=':
+				operator = '=='
+			string = string[1:].strip()
+		elif string[0:2] == '!=':
+			operator = '!='
+			string = string[2:].strip()
+		elif len(string.split(':')) == 2:
+			pre, post = string.split(':')
+			try:
+				return (True if float(pre) <= value and float(post) >= value else False)
+			except ValueError:
+				return (False if pre.strip() else True)
+		else:
+			return string in str(value)
+
+	try:
+		num = float(string) if string.strip() else 0
+		return frappe.safe_eval(f'{value} {operator} {num}')
+	except ValueError:
+		if operator == '<':
+			return True
+		return False
+
+
+def abbrev(dt):
+	return ''.join(l[0].lower() for l in dt.split(' ')) + '.'
+
+def doclist(dt, dfs):
+	return [abbrev(dt) + f for f in dfs]
+
+def as_split(fields):
+	for field in fields:
+		split = field.split(' as ')
+		yield (split[0], split[1] if len(split) > 1 else split[0])
+
+def coalesce(doctypes, fields):
+	coalesce = []
+	for name, new_name in as_split(fields):
+		sharedfields = ', '.join(abbrev(dt) + name for dt in doctypes)
+		coalesce += [f'coalesce({sharedfields}) as {new_name}']
+	return coalesce
+
+def get_fieldstr(fieldlist):
+	fields = []
+	for doctypes, docfields in fieldlist.items():
+		if len(doctypes) == 1 or isinstance(doctypes[1], int):
+			fields += doclist(doctypes[0], docfields)
+		else:
+			fields += coalesce(doctypes, docfields)
+	return ', '.join(fields)
+
+def get_columns(fieldlist):
+	columns = {}
+	for doctypes, docfields in fieldlist.items():
+		fieldmap = {name: new_name for name, new_name in as_split(docfields)}
+		for doctype in doctypes:
+			if isinstance(doctype, int):
+				break
+			meta = frappe.get_meta(doctype)
+			# get column field metadata from the db
+			fieldmeta = {}
+			for field in meta.get('fields'):
+				if field.fieldname in fieldmap.keys():
+					new_name = fieldmap[field.fieldname]
+					fieldmeta[new_name] = {
+						"label": _(field.label),
+						"fieldname": new_name,
+						"fieldtype": field.fieldtype,
+						"options": field.options
+					}
+			# edit the columns to match the modified data
+			for field in fieldmap.values():
+				col = modify_report_columns(doctype, field, fieldmeta[field])
+				if col:
+					columns[col["fieldname"]] = col
+	# use of a dict ensures duplicate columns are removed
+	return list(columns.values())
+
+def modify_report_columns(doctype, field, column):
+	"Because data is rearranged into other columns"
+	if doctype in ["Sales Invoice Item", "Purchase Invoice Item"]:
+		if field in ["item_tax_rate", "base_net_amount"]:
+			return None
+
+	if doctype == "GL Entry" and field in ["debit", "credit"]:
+		column.update({"label": _("Amount"), "fieldname": "amount"})
+
+	if field == "taxes_and_charges":
+		column.update({"label": _("Taxes and Charges Template")})
+	return column
+
+def modify_report_data(data):
+	import json
+	new_data = []
+	for line in data:
+		if line.debit:
+			line.amount = -line.debit
+		else:
+			line.amount = line.credit
+		# Remove Invoice GL Tax Entries and generate Tax entries from the invoice lines
+		if "Invoice" in line.voucher_type:
+			if line.account_type not in ("Tax", "Round Off"):
+				new_data += [line]
+				if line.item_tax_rate:
+					tax_rates = json.loads(line.item_tax_rate)
+					for account, rate in tax_rates.items():
+						tax_line = line.copy()
+						tax_line.account_type = "Tax"
+						tax_line.account = account
+						if line.voucher_type == "Sales Invoice":
+							line.amount = line.base_net_amount
+							tax_line.amount = line.base_net_amount * (rate / 100)
+						if line.voucher_type == "Purchase Invoice":
+							line.amount = -line.base_net_amount
+							tax_line.amount = -line.base_net_amount * (rate / 100)
+						new_data += [tax_line]
+		else:
+			new_data += [line]
+	return new_data
+
+
+# JS client utilities
+
+custom_report_dict = {
+	'ref_doctype': 'GL Entry',
+	'report_type': 'Custom Report',
+	'reference_report': 'Tax Detail'
+}
+
+@frappe.whitelist()
+def get_custom_reports(name=None):
+	filters = custom_report_dict.copy()
+	if name:
+		filters['name'] = name
+	reports = frappe.get_list('Report',
+		filters = filters,
+		fields = ['name', 'json'],
+		as_list=False
+	)
+	reports_dict = {rep.pop('name'): rep for rep in reports}
+	# Prevent custom reports with the same name
+	reports_dict['Tax Detail'] = {'json': None}
+	return reports_dict
+
+@frappe.whitelist()
+def save_custom_report(reference_report, report_name, data):
+	if reference_report != 'Tax Detail':
+		frappe.throw(_("The wrong report is referenced."))
+	if report_name == 'Tax Detail':
+		frappe.throw(_("The parent report cannot be overwritten."))
+
+	doc = {
+		'doctype': 'Report',
+		'report_name': report_name,
+		'is_standard': 'No',
+		'module': 'Accounts',
+		'json': data
+	}
+	doc.update(custom_report_dict)
+
+	try:
+		newdoc = frappe.get_doc(doc)
+		newdoc.insert()
+		frappe.msgprint(_("Report created successfully"))
+	except frappe.exceptions.DuplicateEntryError:
+		dbdoc = frappe.get_doc('Report', report_name)
+		dbdoc.update(doc)
+		dbdoc.save()
+		frappe.msgprint(_("Report updated successfully"))
+	return report_name
diff --git a/erpnext/accounts/report/tax_detail/test_tax_detail.json b/erpnext/accounts/report/tax_detail/test_tax_detail.json
new file mode 100644
index 0000000..3a4b175
--- /dev/null
+++ b/erpnext/accounts/report/tax_detail/test_tax_detail.json
@@ -0,0 +1,840 @@
+[
+ {
+  "account_manager": null,
+  "accounts": [],
+  "companies": [],
+  "credit_limits": [],
+  "customer_details": null,
+  "customer_group": "All Customer Groups",
+  "customer_name": "_Test Customer",
+  "customer_pos_id": null,
+  "customer_primary_address": null,
+  "customer_primary_contact": null,
+  "customer_type": "Company",
+  "default_bank_account": null,
+  "default_commission_rate": 0.0,
+  "default_currency": null,
+  "default_price_list": null,
+  "default_sales_partner": null,
+  "disabled": 0,
+  "dn_required": 0,
+  "docstatus": 0,
+  "doctype": "Customer",
+  "email_id": null,
+  "gender": null,
+  "image": null,
+  "industry": null,
+  "is_frozen": 0,
+  "is_internal_customer": 0,
+  "language": "en",
+  "lead_name": null,
+  "loyalty_program": null,
+  "loyalty_program_tier": null,
+  "market_segment": null,
+  "mobile_no": null,
+  "modified": "2021-02-15 05:18:03.624724",
+  "name": "_Test Customer",
+  "naming_series": "CUST-.YYYY.-",
+  "pan": null,
+  "parent": null,
+  "parentfield": null,
+  "parenttype": null,
+  "payment_terms": null,
+  "primary_address": null,
+  "represents_company": "",
+  "sales_team": [],
+  "salutation": null,
+  "so_required": 0,
+  "tax_category": null,
+  "tax_id": null,
+  "tax_withholding_category": null,
+  "territory": "All Territories",
+  "website": null
+ },{
+  "accounts": [],
+  "allow_purchase_invoice_creation_without_purchase_order": 0,
+  "allow_purchase_invoice_creation_without_purchase_receipt": 0,
+  "companies": [],
+  "country": "United Kingdom",
+  "default_bank_account": null,
+  "default_currency": null,
+  "default_price_list": null,
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Supplier",
+  "hold_type": "",
+  "image": null,
+  "is_frozen": 0,
+  "is_internal_supplier": 0,
+  "is_transporter": 0,
+  "language": "en",
+  "modified": "2021-03-31 16:47:10.109316",
+  "name": "_Test Supplier",
+  "naming_series": "SUP-.YYYY.-",
+  "on_hold": 0,
+  "pan": null,
+  "parent": null,
+  "parentfield": null,
+  "parenttype": null,
+  "payment_terms": null,
+  "prevent_pos": 0,
+  "prevent_rfqs": 0,
+  "release_date": null,
+  "represents_company": null,
+  "supplier_details": null,
+  "supplier_group": "Raw Material",
+  "supplier_name": "_Test Supplier",
+  "supplier_type": "Company",
+  "tax_category": null,
+  "tax_id": null,
+  "tax_withholding_category": null,
+  "warn_pos": 0,
+  "warn_rfqs": 0,
+  "website": null
+ },{
+  "account_currency": "GBP",
+  "account_name": "Debtors",
+  "account_number": "",
+  "account_type": "Receivable",
+  "balance_must_be": "",
+  "company": "_T",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Account",
+  "freeze_account": "No",
+  "include_in_gross": 0,
+  "inter_company_account": 0,
+  "is_group": 0,
+  "lft": 58,
+  "modified": "2021-03-26 04:44:19.955468",
+  "name": "Debtors - _T",
+  "old_parent": null,
+  "parent": null,
+  "parent_account": "Application of Funds (Assets) - _T",
+  "parentfield": null,
+  "parenttype": null,
+  "report_type": "Balance Sheet",
+  "rgt": 59,
+  "root_type": "Asset",
+  "tax_rate": 0.0
+ },{
+  "account_currency": "GBP",
+  "account_name": "Sales",
+  "account_number": "",
+  "account_type": "Income Account",
+  "balance_must_be": "",
+  "company": "_T",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Account",
+  "freeze_account": "No",
+  "include_in_gross": 0,
+  "inter_company_account": 0,
+  "is_group": 0,
+  "lft": 291,
+  "modified": "2021-03-26 04:50:21.697703",
+  "name": "Sales - _T",
+  "old_parent": null,
+  "parent": null,
+  "parent_account": "Income - _T",
+  "parentfield": null,
+  "parenttype": null,
+  "report_type": "Profit and Loss",
+  "rgt": 292,
+  "root_type": "Income",
+  "tax_rate": 0.0
+ },{
+  "account_currency": "GBP",
+  "account_name": "VAT on Sales",
+  "account_number": "",
+  "account_type": "Tax",
+  "balance_must_be": "",
+  "company": "_T",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Account",
+  "freeze_account": "No",
+  "include_in_gross": 0,
+  "inter_company_account": 0,
+  "is_group": 0,
+  "lft": 317,
+  "modified": "2021-03-26 04:50:21.697703",
+  "name": "VAT on Sales - _T",
+  "old_parent": null,
+  "parent": null,
+  "parent_account": "Source of Funds (Liabilities) - _T",
+  "parentfield": null,
+  "parenttype": null,
+  "report_type": "Balance Sheet",
+  "rgt": 318,
+  "root_type": "Liability",
+  "tax_rate": 0.0
+ },{
+  "account_currency": "GBP",
+  "account_name": "Cost of Goods Sold",
+  "account_number": "",
+  "account_type": "Cost of Goods Sold",
+  "balance_must_be": "",
+  "company": "_T",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Account",
+  "freeze_account": "No",
+  "include_in_gross": 0,
+  "inter_company_account": 0,
+  "is_group": 0,
+  "lft": 171,
+  "modified": "2021-03-26 04:44:19.994857",
+  "name": "Cost of Goods Sold - _T",
+  "old_parent": null,
+  "parent": null,
+  "parent_account": "Expenses - _T",
+  "parentfield": null,
+  "parenttype": null,
+  "report_type": "Profit and Loss",
+  "rgt": 172,
+  "root_type": "Expense",
+  "tax_rate": 0.0
+ },{
+  "account_currency": "GBP",
+  "account_name": "VAT on Purchases",
+  "account_number": "",
+  "account_type": "Tax",
+  "balance_must_be": "",
+  "company": "_T",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Account",
+  "freeze_account": "No",
+  "include_in_gross": 0,
+  "inter_company_account": 0,
+  "is_group": 0,
+  "lft": 80,
+  "modified": "2021-03-26 04:44:19.961983",
+  "name": "VAT on Purchases - _T",
+  "old_parent": null,
+  "parent": null,
+  "parent_account": "Application of Funds (Assets) - _T",
+  "parentfield": null,
+  "parenttype": null,
+  "report_type": "Balance Sheet",
+  "rgt": 81,
+  "root_type": "Asset",
+  "tax_rate": 0.0
+ },{
+  "account_currency": "GBP",
+  "account_name": "Creditors",
+  "account_number": "",
+  "account_type": "Payable",
+  "balance_must_be": "",
+  "company": "_T",
+  "disabled": 0,
+  "docstatus": 0,
+  "doctype": "Account",
+  "freeze_account": "No",
+  "include_in_gross": 0,
+  "inter_company_account": 0,
+  "is_group": 0,
+  "lft": 302,
+  "modified": "2021-03-26 04:50:21.697703",
+  "name": "Creditors - _T",
+  "old_parent": null,
+  "parent": null,
+  "parent_account": "Source of Funds (Liabilities) - _T",
+  "parentfield": null,
+  "parenttype": null,
+  "report_type": "Balance Sheet",
+  "rgt": 303,
+  "root_type": "Liability",
+  "tax_rate": 0.0
+ },{
+  "additional_discount_percentage": 0.0,
+  "address_display": null,
+  "adjust_advance_taxes": 0,
+  "advances": [],
+  "against_expense_account": "Cost of Goods Sold - _T",
+  "allocate_advances_automatically": 0,
+  "amended_from": null,
+  "apply_discount_on": "Grand Total",
+  "apply_tds": 0,
+  "auto_repeat": null,
+  "base_discount_amount": 0.0,
+  "base_grand_total": 511.68,
+  "base_in_words": "GBP Five Hundred And Eleven and Sixty Eight Pence only.",
+  "base_net_total": 426.4,
+  "base_paid_amount": 0.0,
+  "base_rounded_total": 511.68,
+  "base_rounding_adjustment": 0.0,
+  "base_taxes_and_charges_added": 85.28,
+  "base_taxes_and_charges_deducted": 0.0,
+  "base_total": 426.4,
+  "base_total_taxes_and_charges": 85.28,
+  "base_write_off_amount": 0.0,
+  "bill_date": null,
+  "bill_no": null,
+  "billing_address": null,
+  "billing_address_display": null,
+  "buying_price_list": "Standard Buying",
+  "cash_bank_account": null,
+  "clearance_date": null,
+  "company": "_T",
+  "contact_display": null,
+  "contact_email": null,
+  "contact_mobile": null,
+  "contact_person": null,
+  "conversion_rate": 1.0,
+  "cost_center": null,
+  "credit_to": "Creditors - _T",
+  "currency": "GBP",
+  "disable_rounded_total": 0,
+  "discount_amount": 0.0,
+  "docstatus": 0,
+  "doctype": "Purchase Invoice",
+  "due_date": null,
+  "from_date": null,
+  "grand_total": 511.68,
+  "group_same_items": 0,
+  "hold_comment": null,
+  "ignore_pricing_rule": 0,
+  "in_words": "GBP Five Hundred And Eleven and Sixty Eight Pence only.",
+  "inter_company_invoice_reference": null,
+  "is_internal_supplier": 0,
+  "is_opening": "No",
+  "is_paid": 0,
+  "is_return": 0,
+  "is_subcontracted": "No",
+  "items": [
+   {
+    "allow_zero_valuation_rate": 0,
+    "amount": 426.4,
+    "asset_category": null,
+    "asset_location": null,
+    "base_amount": 426.4,
+    "base_net_amount": 426.4,
+    "base_net_rate": 5.33,
+    "base_price_list_rate": 5.33,
+    "base_rate": 5.33,
+    "base_rate_with_margin": 0.0,
+    "batch_no": null,
+    "bom": null,
+    "brand": null,
+    "conversion_factor": 0.0,
+    "cost_center": "Main - _T",
+    "deferred_expense_account": null,
+    "description": "<div class=\"ql-editor read-mode\"><p>Fluid to make widgets</p></div>",
+    "discount_amount": 0.0,
+    "discount_percentage": 0.0,
+    "enable_deferred_expense": 0,
+    "expense_account": "Cost of Goods Sold - _T",
+    "from_warehouse": null,
+    "image": null,
+    "include_exploded_items": 0,
+    "is_fixed_asset": 0,
+    "is_free_item": 0,
+    "item_code": null,
+    "item_group": null,
+    "item_name": "Widget Fluid 1Litre",
+    "item_tax_amount": 0.0,
+    "item_tax_rate": "{\"VAT on Purchases - _T\": 20.0}",
+    "item_tax_template": null,
+    "landed_cost_voucher_amount": 0.0,
+    "manufacturer": null,
+    "manufacturer_part_no": null,
+    "margin_rate_or_amount": 0.0,
+    "margin_type": "",
+    "net_amount": 426.4,
+    "net_rate": 5.33,
+    "page_break": 0,
+    "parent": null,
+    "parentfield": "items",
+    "parenttype": "Purchase Invoice",
+    "po_detail": null,
+    "pr_detail": null,
+    "price_list_rate": 5.33,
+    "pricing_rules": null,
+    "project": null,
+    "purchase_invoice_item": null,
+    "purchase_order": null,
+    "purchase_receipt": null,
+    "qty": 80.0,
+    "quality_inspection": null,
+    "rate": 5.33,
+    "rate_with_margin": 0.0,
+    "received_qty": 0.0,
+    "rejected_qty": 0.0,
+    "rejected_serial_no": null,
+    "rejected_warehouse": null,
+    "rm_supp_cost": 0.0,
+    "sales_invoice_item": null,
+    "serial_no": null,
+    "service_end_date": null,
+    "service_start_date": null,
+    "service_stop_date": null,
+    "stock_qty": 0.0,
+    "stock_uom": "Nos",
+    "stock_uom_rate": 0.0,
+    "total_weight": 0.0,
+    "uom": "Nos",
+    "valuation_rate": 0.0,
+    "warehouse": null,
+    "weight_per_unit": 0.0,
+    "weight_uom": null
+   }
+  ],
+  "language": "en",
+  "letter_head": null,
+  "mode_of_payment": null,
+  "modified": "2021-04-03 03:33:09.180453",
+  "name": null,
+  "naming_series": "ACC-PINV-.YYYY.-",
+  "net_total": 426.4,
+  "on_hold": 0,
+  "other_charges_calculation": "<div class=\"tax-break-up\" style=\"overflow-x: auto;\">\n\t<table class=\"table table-bordered table-hover\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"text-left\">Item</th>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"text-right\">Taxable Amount</th>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"text-right\">VAT on Purchases</th>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Widget Fluid 1Litre</td>\n\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u00a3 426.40\n\t\t\t\t\t\t\n\t\t\t\t\t</td>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t(20.0%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\u00a3 85.28\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t</tr>\n\t\t\t\n\t\t</tbody>\n\t</table>\n</div>",
+  "outstanding_amount": 511.68,
+  "paid_amount": 0.0,
+  "parent": null,
+  "parentfield": null,
+  "parenttype": null,
+  "party_account_currency": "GBP",
+  "payment_schedule": [],
+  "payment_terms_template": null,
+  "plc_conversion_rate": 1.0,
+  "posting_date": null,
+  "posting_time": "16:59:56.789522",
+  "price_list_currency": "GBP",
+  "pricing_rules": [],
+  "project": null,
+  "rejected_warehouse": null,
+  "release_date": null,
+  "remarks": "No Remarks",
+  "represents_company": null,
+  "return_against": null,
+  "rounded_total": 511.68,
+  "rounding_adjustment": 0.0,
+  "scan_barcode": null,
+  "select_print_heading": null,
+  "set_from_warehouse": null,
+  "set_posting_time": 0,
+  "set_warehouse": null,
+  "shipping_address": null,
+  "shipping_address_display": "",
+  "shipping_rule": null,
+  "status": "Unpaid",
+  "supplied_items": [],
+  "supplier": "_Test Supplier",
+  "supplier_address": null,
+  "supplier_name": "_Test Supplier",
+  "supplier_warehouse": "Stores - _T",
+  "tax_category": null,
+  "tax_id": null,
+  "tax_withholding_category": null,
+  "taxes": [
+   {
+    "account_head": "VAT on Purchases - _T",
+    "add_deduct_tax": "Add",
+    "base_tax_amount": 85.28,
+    "base_tax_amount_after_discount_amount": 85.28,
+    "base_total": 511.68,
+    "category": "Total",
+    "charge_type": "On Net Total",
+    "cost_center": "Main - _T",
+    "description": "VAT on Purchases",
+    "included_in_print_rate": 0,
+    "item_wise_tax_detail": "{\"Widget Fluid 1Litre\":[20.0,85.28]}",
+    "parent": null,
+    "parentfield": "taxes",
+    "parenttype": "Purchase Invoice",
+    "rate": 0.0,
+    "row_id": null,
+    "tax_amount": 85.28,
+    "tax_amount_after_discount_amount": 85.28,
+    "total": 511.68
+   }
+  ],
+  "taxes_and_charges": null,
+  "taxes_and_charges_added": 85.28,
+  "taxes_and_charges_deducted": 0.0,
+  "tc_name": null,
+  "terms": null,
+  "title": "_Purchase Invoice",
+  "to_date": null,
+  "total": 426.4,
+  "total_advance": 0.0,
+  "total_net_weight": 0.0,
+  "total_qty": 80.0,
+  "total_taxes_and_charges": 85.28,
+  "unrealized_profit_loss_account": null,
+  "update_stock": 0,
+  "write_off_account": null,
+  "write_off_amount": 0.0,
+  "write_off_cost_center": null
+ },{
+  "account_for_change_amount": null,
+  "additional_discount_percentage": 0.0,
+  "address_display": null,
+  "advances": [],
+  "against_income_account": "Sales - _T",
+  "allocate_advances_automatically": 0,
+  "amended_from": null,
+  "apply_discount_on": "Grand Total",
+  "auto_repeat": null,
+  "base_change_amount": 0.0,
+  "base_discount_amount": 0.0,
+  "base_grand_total": 868.25,
+  "base_in_words": "GBP Eight Hundred And Sixty Eight and Twenty Five Pence only.",
+  "base_net_total": 825.0,
+  "base_paid_amount": 0.0,
+  "base_rounded_total": 868.25,
+  "base_rounding_adjustment": 0.0,
+  "base_total": 825.0,
+  "base_total_taxes_and_charges": 43.25,
+  "base_write_off_amount": 0.0,
+  "c_form_applicable": "No",
+  "c_form_no": null,
+  "campaign": null,
+  "cash_bank_account": null,
+  "change_amount": 0.0,
+  "commission_rate": 0.0,
+  "company": "_T",
+  "company_address": null,
+  "company_address_display": null,
+  "company_tax_id": null,
+  "contact_display": null,
+  "contact_email": null,
+  "contact_mobile": null,
+  "contact_person": null,
+  "conversion_rate": 1.0,
+  "cost_center": null,
+  "currency": "GBP",
+  "customer": "_Test Customer",
+  "customer_address": null,
+  "customer_group": "All Customer Groups",
+  "customer_name": "_Test Customer",
+  "debit_to": "Debtors - _T",
+  "discount_amount": 0.0,
+  "docstatus": 0,
+  "doctype": "Sales Invoice",
+  "due_date": null,
+  "from_date": null,
+  "grand_total": 868.25,
+  "group_same_items": 0,
+  "ignore_pricing_rule": 0,
+  "in_words": "GBP Eight Hundred And Sixty Eight and Twenty Five Pence only.",
+  "inter_company_invoice_reference": null,
+  "is_consolidated": 0,
+  "is_discounted": 0,
+  "is_internal_customer": 0,
+  "is_opening": "No",
+  "is_pos": 0,
+  "is_return": 0,
+  "items": [
+   {
+    "actual_batch_qty": 0.0,
+    "actual_qty": 0.0,
+    "allow_zero_valuation_rate": 0,
+    "amount": 200.0,
+    "asset": null,
+    "barcode": null,
+    "base_amount": 200.0,
+    "base_net_amount": 200.0,
+    "base_net_rate": 50.0,
+    "base_price_list_rate": 0.0,
+    "base_rate": 50.0,
+    "base_rate_with_margin": 0.0,
+    "batch_no": null,
+    "brand": null,
+    "conversion_factor": 1.0,
+    "cost_center": "Main - _T",
+    "customer_item_code": null,
+    "deferred_revenue_account": null,
+    "delivered_by_supplier": 0,
+    "delivered_qty": 0.0,
+    "delivery_note": null,
+    "description": "<div class=\"ql-editor read-mode\"><p>Used</p></div>",
+    "discount_amount": 0.0,
+    "discount_percentage": 0.0,
+    "dn_detail": null,
+    "enable_deferred_revenue": 0,
+    "expense_account": null,
+    "finance_book": null,
+    "image": null,
+    "income_account": "Sales - _T",
+    "incoming_rate": 0.0,
+    "is_fixed_asset": 0,
+    "is_free_item": 0,
+    "item_code": null,
+    "item_group": null,
+    "item_name": "Dunlop tyres",
+    "item_tax_rate": "{\"VAT on Sales - _T\": 20.0}",
+    "item_tax_template": null,
+    "margin_rate_or_amount": 0.0,
+    "margin_type": "",
+    "net_amount": 200.0,
+    "net_rate": 50.0,
+    "page_break": 0,
+    "parent": null,
+    "parentfield": "items",
+    "parenttype": "Sales Invoice",
+    "price_list_rate": 0.0,
+    "pricing_rules": null,
+    "project": null,
+    "qty": 4.0,
+    "quality_inspection": null,
+    "rate": 50.0,
+    "rate_with_margin": 0.0,
+    "sales_invoice_item": null,
+    "sales_order": null,
+    "serial_no": null,
+    "service_end_date": null,
+    "service_start_date": null,
+    "service_stop_date": null,
+    "so_detail": null,
+    "stock_qty": 4.0,
+    "stock_uom": "Nos",
+    "stock_uom_rate": 50.0,
+    "target_warehouse": null,
+    "total_weight": 0.0,
+    "uom": "Nos",
+    "warehouse": null,
+    "weight_per_unit": 0.0,
+    "weight_uom": null
+   },
+   {
+    "actual_batch_qty": 0.0,
+    "actual_qty": 0.0,
+    "allow_zero_valuation_rate": 0,
+    "amount": 65.0,
+    "asset": null,
+    "barcode": null,
+    "base_amount": 65.0,
+    "base_net_amount": 65.0,
+    "base_net_rate": 65.0,
+    "base_price_list_rate": 0.0,
+    "base_rate": 65.0,
+    "base_rate_with_margin": 0.0,
+    "batch_no": null,
+    "brand": null,
+    "conversion_factor": 1.0,
+    "cost_center": "Main - _T",
+    "customer_item_code": null,
+    "deferred_revenue_account": null,
+    "delivered_by_supplier": 0,
+    "delivered_qty": 0.0,
+    "delivery_note": null,
+    "description": "<div class=\"ql-editor read-mode\"><p>Used</p></div>",
+    "discount_amount": 0.0,
+    "discount_percentage": 0.0,
+    "dn_detail": null,
+    "enable_deferred_revenue": 0,
+    "expense_account": null,
+    "finance_book": null,
+    "image": null,
+    "income_account": "Sales - _T",
+    "incoming_rate": 0.0,
+    "is_fixed_asset": 0,
+    "is_free_item": 0,
+    "item_code": "",
+    "item_group": null,
+    "item_name": "Continental tyres",
+    "item_tax_rate": "{\"VAT on Sales - _T\": 5.0}",
+    "item_tax_template": null,
+    "margin_rate_or_amount": 0.0,
+    "margin_type": "",
+    "net_amount": 65.0,
+    "net_rate": 65.0,
+    "page_break": 0,
+    "parent": null,
+    "parentfield": "items",
+    "parenttype": "Sales Invoice",
+    "price_list_rate": 0.0,
+    "pricing_rules": null,
+    "project": null,
+    "qty": 1.0,
+    "quality_inspection": null,
+    "rate": 65.0,
+    "rate_with_margin": 0.0,
+    "sales_invoice_item": null,
+    "sales_order": null,
+    "serial_no": null,
+    "service_end_date": null,
+    "service_start_date": null,
+    "service_stop_date": null,
+    "so_detail": null,
+    "stock_qty": 1.0,
+    "stock_uom": null,
+    "stock_uom_rate": 65.0,
+    "target_warehouse": null,
+    "total_weight": 0.0,
+    "uom": "Nos",
+    "warehouse": null,
+    "weight_per_unit": 0.0,
+    "weight_uom": null
+   },
+   {
+    "actual_batch_qty": 0.0,
+    "actual_qty": 0.0,
+    "allow_zero_valuation_rate": 0,
+    "amount": 560.0,
+    "asset": null,
+    "barcode": null,
+    "base_amount": 560.0,
+    "base_net_amount": 560.0,
+    "base_net_rate": 70.0,
+    "base_price_list_rate": 0.0,
+    "base_rate": 70.0,
+    "base_rate_with_margin": 0.0,
+    "batch_no": null,
+    "brand": null,
+    "conversion_factor": 1.0,
+    "cost_center": "Main - _T",
+    "customer_item_code": null,
+    "deferred_revenue_account": null,
+    "delivered_by_supplier": 0,
+    "delivered_qty": 0.0,
+    "delivery_note": null,
+    "description": "<div class=\"ql-editor read-mode\"><p>New</p></div>",
+    "discount_amount": 0.0,
+    "discount_percentage": 0.0,
+    "dn_detail": null,
+    "enable_deferred_revenue": 0,
+    "expense_account": null,
+    "finance_book": null,
+    "image": null,
+    "income_account": "Sales - _T",
+    "incoming_rate": 0.0,
+    "is_fixed_asset": 0,
+    "is_free_item": 0,
+    "item_code": null,
+    "item_group": null,
+    "item_name": "Toyo tyres",
+    "item_tax_rate": "{\"VAT on Sales - _T\": 0.0}",
+    "item_tax_template": null,
+    "margin_rate_or_amount": 0.0,
+    "margin_type": "",
+    "net_amount": 560.0,
+    "net_rate": 70.0,
+    "page_break": 0,
+    "parent": null,
+    "parentfield": "items",
+    "parenttype": "Sales Invoice",
+    "price_list_rate": 0.0,
+    "pricing_rules": null,
+    "project": null,
+    "qty": 8.0,
+    "quality_inspection": null,
+    "rate": 70.0,
+    "rate_with_margin": 0.0,
+    "sales_invoice_item": null,
+    "sales_order": null,
+    "serial_no": null,
+    "service_end_date": null,
+    "service_start_date": null,
+    "service_stop_date": null,
+    "so_detail": null,
+    "stock_qty": 8.0,
+    "stock_uom": null,
+    "stock_uom_rate": 70.0,
+    "target_warehouse": null,
+    "total_weight": 0.0,
+    "uom": "Nos",
+    "warehouse": null,
+    "weight_per_unit": 0.0,
+    "weight_uom": null
+   }
+  ],
+  "language": "en",
+  "letter_head": null,
+  "loyalty_amount": 0.0,
+  "loyalty_points": 0,
+  "loyalty_program": null,
+  "loyalty_redemption_account": null,
+  "loyalty_redemption_cost_center": null,
+  "modified": "2021-02-16 05:18:59.755144",
+  "name": null,
+  "naming_series": "ACC-SINV-.YYYY.-",
+  "net_total": 825.0,
+  "other_charges_calculation": "<div class=\"tax-break-up\" style=\"overflow-x: auto;\">\n\t<table class=\"table table-bordered table-hover\">\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"text-left\">Item</th>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"text-right\">Taxable Amount</th>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t<th class=\"text-right\">VAT on Sales</th>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Dunlop tyres</td>\n\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u00a3 200.00\n\t\t\t\t\t\t\n\t\t\t\t\t</td>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t(20.0%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\u00a3 40.00\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t</tr>\n\t\t\t\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Continental tyres</td>\n\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u00a3 65.00\n\t\t\t\t\t\t\n\t\t\t\t\t</td>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t(5.0%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\u00a3 3.25\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t</tr>\n\t\t\t\n\t\t\t\t<tr>\n\t\t\t\t\t<td>Toyo tyres</td>\n\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\u00a3 560.00\n\t\t\t\t\t\t\n\t\t\t\t\t</td>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t<td class='text-right'>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t(0.0%)\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\u00a3 0.00\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t</tr>\n\t\t\t\n\t\t</tbody>\n\t</table>\n</div>",
+  "outstanding_amount": 868.25,
+  "packed_items": [],
+  "paid_amount": 0.0,
+  "parent": null,
+  "parentfield": null,
+  "parenttype": null,
+  "party_account_currency": "GBP",
+  "payment_schedule": [],
+  "payment_terms_template": null,
+  "payments": [],
+  "plc_conversion_rate": 1.0,
+  "po_date": null,
+  "po_no": "",
+  "pos_profile": null,
+  "posting_date": null,
+  "posting_time": "5:19:02.994077",
+  "price_list_currency": "GBP",
+  "pricing_rules": [],
+  "project": null,
+  "redeem_loyalty_points": 0,
+  "remarks": "No Remarks",
+  "represents_company": "",
+  "return_against": null,
+  "rounded_total": 868.25,
+  "rounding_adjustment": 0.0,
+  "sales_partner": null,
+  "sales_team": [],
+  "scan_barcode": null,
+  "select_print_heading": null,
+  "selling_price_list": "Standard Selling",
+  "set_posting_time": 0,
+  "set_target_warehouse": null,
+  "set_warehouse": null,
+  "shipping_address": null,
+  "shipping_address_name": "",
+  "shipping_rule": null,
+  "source": null,
+  "status": "Overdue",
+  "tax_category": "",
+  "tax_id": null,
+  "taxes": [
+   {
+    "account_head": "VAT on Sales - _T",
+    "base_tax_amount": 43.25,
+    "base_tax_amount_after_discount_amount": 43.25,
+    "base_total": 868.25,
+    "charge_type": "On Net Total",
+    "cost_center": "Main - _T",
+    "description": "VAT on Sales",
+    "included_in_print_rate": 0,
+    "item_wise_tax_detail": "{\"Dunlop tyres\":[20.0,40.0],\"Continental tyres\":[5.0,3.25],\"Toyo tyres\":[0.0,0.0]}",
+    "parent": null,
+    "parentfield": "taxes",
+    "parenttype": "Sales Invoice",
+    "rate": 0.0,
+    "row_id": null,
+    "tax_amount": 43.25,
+    "tax_amount_after_discount_amount": 43.25,
+    "total": 868.25
+   }
+  ],
+  "taxes_and_charges": null,
+  "tc_name": null,
+  "terms": null,
+  "territory": "All Territories",
+  "timesheets": [],
+  "title": "_Sales Invoice",
+  "to_date": null,
+  "total": 825.0,
+  "total_advance": 0.0,
+  "total_billing_amount": 0.0,
+  "total_commission": 0.0,
+  "total_net_weight": 0.0,
+  "total_qty": 13.0,
+  "total_taxes_and_charges": 43.25,
+  "unrealized_profit_loss_account": null,
+  "update_billed_amount_in_sales_order": 0,
+  "update_stock": 0,
+  "write_off_account": null,
+  "write_off_amount": 0.0,
+  "write_off_cost_center": null,
+  "write_off_outstanding_amount_automatically": 0
+ }
+]
diff --git a/erpnext/accounts/report/tax_detail/test_tax_detail.py b/erpnext/accounts/report/tax_detail/test_tax_detail.py
new file mode 100644
index 0000000..743ddba
--- /dev/null
+++ b/erpnext/accounts/report/tax_detail/test_tax_detail.py
@@ -0,0 +1,176 @@
+from __future__ import unicode_literals
+
+import frappe
+import unittest
+import datetime
+import json
+import os
+from frappe.utils import getdate, add_to_date, get_first_day, get_last_day, get_year_start, get_year_ending
+from .tax_detail import filter_match, save_custom_report
+
+class TestTaxDetail(unittest.TestCase):
+	def load_testdocs(self):
+		from erpnext.accounts.utils import get_fiscal_year, FiscalYearError
+		datapath, _ = os.path.splitext(os.path.realpath(__file__))
+		with open(datapath + '.json', 'r') as fp:
+			docs = json.load(fp)
+
+		now = getdate()
+		self.from_date = get_first_day(now)
+		self.to_date = get_last_day(now)
+
+		try:
+			get_fiscal_year(now, company="_T")
+		except FiscalYearError:
+			docs = [{
+				"companies": [{
+					"company": "_T",
+					"parent": "_Test Fiscal",
+					"parentfield": "companies",
+					"parenttype": "Fiscal Year"
+				}],
+				"doctype": "Fiscal Year",
+				"year": "_Test Fiscal",
+				"year_end_date": get_year_ending(now),
+				"year_start_date": get_year_start(now)
+			}] + docs
+
+		docs = [{
+			"abbr": "_T",
+			"company_name": "_T",
+			"country": "United Kingdom",
+			"default_currency": "GBP",
+			"doctype": "Company",
+			"name": "_T"
+		}] + docs
+
+		for doc in docs:
+			try:
+				db_doc = frappe.get_doc(doc)
+				if 'Invoice' in db_doc.doctype:
+					db_doc.due_date = add_to_date(now, days=1)
+					db_doc.insert()
+					# Create GL Entries:
+					db_doc.submit()
+				else:
+					db_doc.insert()
+			except frappe.exceptions.DuplicateEntryError:
+				pass
+
+	def load_defcols(self):
+		self.company = frappe.get_doc('Company', '_T')
+		custom_report = frappe.get_doc('Report', 'Tax Detail')
+		self.default_columns, _ = custom_report.run_query_report(
+			filters={
+				'from_date': '2021-03-01',
+				'to_date': '2021-03-31',
+				'company': self.company.name,
+				'mode': 'run',
+				'report_name': 'Tax Detail'
+			}, user=frappe.session.user)
+
+	def rm_testdocs(self):
+		"Remove the Company and all data"
+		from erpnext.setup.doctype.company.company import create_transaction_deletion_request
+		create_transaction_deletion_request(self.company.name)
+
+	def test_report(self):
+		self.load_testdocs()
+		self.load_defcols()
+		report_name = save_custom_report(
+			'Tax Detail',
+			'_Test Tax Detail',
+			json.dumps({
+				'columns': self.default_columns,
+				'sections': {
+					'Box1':{'Filter0':{'type':'filter','filters':{'4':'VAT on Sales'}}},
+					'Box2':{'Filter0':{'type':'filter','filters':{'4':'Acquisition'}}},
+					'Box3':{'Box1':{'type':'section'},'Box2':{'type':'section'}},
+					'Box4':{'Filter0':{'type':'filter','filters':{'4':'VAT on Purchases'}}},
+					'Box5':{'Box3':{'type':'section'},'Box4':{'type':'section'}},
+					'Box6':{'Filter0':{'type':'filter','filters':{'3':'!=Tax','4':'Sales'}}},
+					'Box7':{'Filter0':{'type':'filter','filters':{'2':'Expense','3':'!=Tax'}}},
+					'Box8':{'Filter0':{'type':'filter','filters':{'3':'!=Tax','4':'Sales','12':'EU'}}},
+					'Box9':{'Filter0':{'type':'filter','filters':{'2':'Expense','3':'!=Tax','12':'EU'}}}
+				},
+				'show_detail': 1
+			}))
+		data = frappe.desk.query_report.run(report_name,
+			filters={
+				'from_date': self.from_date,
+				'to_date': self.to_date,
+				'company': self.company.name,
+				'mode': 'run',
+				'report_name': report_name
+			}, user=frappe.session.user)
+
+		self.assertListEqual(data.get('columns'), self.default_columns)
+		expected = (('Box1', 43.25), ('Box2', 0.0), ('Box3', 43.25), ('Box4', -85.28), ('Box5', -42.03),
+			('Box6', 825.0), ('Box7', -426.40), ('Box8', 0.0), ('Box9', 0.0))
+		exrow = iter(expected)
+		for row in data.get('result'):
+			if row.get('voucher_no') and not row.get('posting_date'):
+				label, value = next(exrow)
+				self.assertDictEqual(row, {'voucher_no': label, 'amount': value})
+		self.assertListEqual(data.get('report_summary'),
+			[{'label': label, 'datatype': 'Currency', 'value': value} for label, value in expected])
+
+		self.rm_testdocs()
+
+	def test_filter_match(self):
+		# None - treated as -inf number except range
+		self.assertTrue(filter_match(None, '!='))
+		self.assertTrue(filter_match(None, '<'))
+		self.assertTrue(filter_match(None, '<jjj'))
+		self.assertTrue(filter_match(None, '  :  '))
+		self.assertTrue(filter_match(None, ':56'))
+		self.assertTrue(filter_match(None, ':de'))
+		self.assertFalse(filter_match(None, '3.4'))
+		self.assertFalse(filter_match(None, '='))
+		self.assertFalse(filter_match(None, '=3.4'))
+		self.assertFalse(filter_match(None, '>3.4'))
+		self.assertFalse(filter_match(None, '   <'))
+		self.assertFalse(filter_match(None, 'ew'))
+		self.assertFalse(filter_match(None, ' '))
+		self.assertFalse(filter_match(None, ' f :'))
+
+		# Numbers
+		self.assertTrue(filter_match(3.4, '3.4'))
+		self.assertTrue(filter_match(3.4, '.4'))
+		self.assertTrue(filter_match(3.4, '3'))
+		self.assertTrue(filter_match(-3.4, '< -3'))
+		self.assertTrue(filter_match(-3.4, '> -4'))
+		self.assertTrue(filter_match(3.4, '= 3.4 '))
+		self.assertTrue(filter_match(3.4, '!=4.5'))
+		self.assertTrue(filter_match(3.4, ' 3 : 4 '))
+		self.assertTrue(filter_match(0.0, '  :  '))
+		self.assertFalse(filter_match(3.4, '=4.5'))
+		self.assertFalse(filter_match(3.4, ' = 3.4 '))
+		self.assertFalse(filter_match(3.4, '!=3.4'))
+		self.assertFalse(filter_match(3.4, '>6'))
+		self.assertFalse(filter_match(3.4, '<-4.5'))
+		self.assertFalse(filter_match(3.4, '4.5'))
+		self.assertFalse(filter_match(3.4, '5:9'))
+
+		# Strings
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', 'SINV'))
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', 'sinv'))
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', '-2021'))
+		self.assertTrue(filter_match(' ACC-SINV-2021-00001', ' acc'))
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', '=2021'))
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', '!=zz'))
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', '<   zzz  '))
+		self.assertTrue(filter_match('ACC-SINV-2021-00001', '  :  sinv  '))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', '  sinv  :'))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', ' acc'))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', '= 2021 '))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', '!=sinv'))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', ' >'))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', '>aa'))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', ' <'))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', '<   '))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', ' ='))
+		self.assertFalse(filter_match('ACC-SINV-2021-00001', '='))
+
+		# Date - always match
+		self.assertTrue(filter_match(datetime.date(2021, 3, 19), ' kdsjkldfs '))
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 9afe365..5b58e87 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -566,10 +566,10 @@
 		frappe.msgprint(_("Payment Entries {0} are un-linked").format("\n".join(linked_pe)))
 
 @frappe.whitelist()
-def get_company_default(company, fieldname):
-	value = frappe.get_cached_value('Company',  company,  fieldname)
+def get_company_default(company, fieldname, ignore_validation=False):
+	value = frappe.get_cached_value('Company', company, fieldname)
 
-	if not value:
+	if not ignore_validation and not value:
 		throw(_("Please set default {0} in Company {1}")
 			.format(frappe.get_meta("Company").get_label(fieldname), company))
 
@@ -920,7 +920,6 @@
 			_delete_gl_entries(voucher_type, voucher_no)
 
 def get_future_stock_vouchers(posting_date, posting_time, for_warehouses=None, for_items=None, company=None):
-	future_stock_vouchers = []
 
 	values = []
 	condition = ""
@@ -936,30 +935,46 @@
 		condition += " and company = %s"
 		values.append(company)
 
-	for d in frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no
+	future_stock_vouchers = frappe.db.sql("""select distinct sle.voucher_type, sle.voucher_no
 		from `tabStock Ledger Entry` sle
 		where
 			timestamp(sle.posting_date, sle.posting_time) >= timestamp(%s, %s)
 			and is_cancelled = 0
 			{condition}
 		order by timestamp(sle.posting_date, sle.posting_time) asc, creation asc for update""".format(condition=condition),
-		tuple([posting_date, posting_time] + values), as_dict=True):
-			future_stock_vouchers.append([d.voucher_type, d.voucher_no])
+		tuple([posting_date, posting_time] + values), as_dict=True)
 
-	return future_stock_vouchers
+	return [(d.voucher_type, d.voucher_no) for d in future_stock_vouchers]
 
 def get_voucherwise_gl_entries(future_stock_vouchers, posting_date):
+	""" Get voucherwise list of GL entries.
+
+	Only fetches GLE fields required for comparing with new GLE.
+	Check compare_existing_and_expected_gle function below.
+	"""
 	gl_entries = {}
-	if future_stock_vouchers:
-		for d in frappe.db.sql("""select * from `tabGL Entry`
-			where posting_date >= %s and voucher_no in (%s)""" %
-			('%s', ', '.join(['%s']*len(future_stock_vouchers))),
-			tuple([posting_date] + [d[1] for d in future_stock_vouchers]), as_dict=1):
-				gl_entries.setdefault((d.voucher_type, d.voucher_no), []).append(d)
+	if not future_stock_vouchers:
+		return gl_entries
+
+	voucher_nos = [d[1] for d in future_stock_vouchers]
+
+	gles = frappe.db.sql("""
+		select name, account, credit, debit, cost_center, project
+			from `tabGL Entry`
+		where
+			posting_date >= %s and voucher_no in (%s)""" %
+		('%s', ', '.join(['%s'] * len(voucher_nos))),
+		tuple([posting_date] + voucher_nos), as_dict=1)
+
+	for d in gles:
+		gl_entries.setdefault((d.voucher_type, d.voucher_no), []).append(d)
 
 	return gl_entries
 
 def compare_existing_and_expected_gle(existing_gle, expected_gle, precision):
+	if len(existing_gle) != len(expected_gle):
+		return False
+
 	matched = True
 	for entry in expected_gle:
 		account_existed = False
diff --git a/erpnext/accounts/workspace/accounting/accounting.json b/erpnext/accounts/workspace/accounting/accounting.json
index 10a4001..b5bd14d 100644
--- a/erpnext/accounts/workspace/accounting/accounting.json
+++ b/erpnext/accounts/workspace/accounting/accounting.json
@@ -1,28 +1,32 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Profit and Loss",
    "label": "Profit and Loss"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Accounts\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Profit and Loss\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Chart of Accounts\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Sales Invoice\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Purchase Invoice\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Journal Entry\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Payment Entry\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Accounts Receivable\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"General Ledger\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Trial Balance\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Accounting Masters\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"General Ledger\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Accounts Receivable\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Accounts Payable\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Financial Statements\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Multi Currency\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Bank Statement\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Subscription Management\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Goods and Services Tax (GST India)\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Share Management\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Cost Center and Budgeting\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Opening and Closing\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Taxes\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Profitability\", \"col\": 4}}]",
  "creation": "2020-03-02 15:41:59.515192",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "accounting",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "Accounting",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounting Masters",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -31,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Company",
+   "link_count": 0,
    "link_to": "Company",
    "link_type": "DocType",
    "onboard": 1,
@@ -41,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chart of Accounts",
+   "link_count": 0,
    "link_to": "Account",
    "link_type": "DocType",
    "onboard": 1,
@@ -51,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounts Settings",
+   "link_count": 0,
    "link_to": "Accounts Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -61,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fiscal Year",
+   "link_count": 0,
    "link_to": "Fiscal Year",
    "link_type": "DocType",
    "onboard": 0,
@@ -71,6 +79,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounting Dimension",
+   "link_count": 0,
    "link_to": "Accounting Dimension",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +90,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Finance Book",
+   "link_count": 0,
    "link_to": "Finance Book",
    "link_type": "DocType",
    "onboard": 0,
@@ -91,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounting Period",
+   "link_count": 0,
    "link_to": "Accounting Period",
    "link_type": "DocType",
    "onboard": 0,
@@ -101,6 +112,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payment Term",
+   "link_count": 0,
    "link_to": "Payment Term",
    "link_type": "DocType",
    "onboard": 0,
@@ -110,6 +122,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "General Ledger",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -118,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Journal Entry",
+   "link_count": 0,
    "link_to": "Journal Entry",
    "link_type": "DocType",
    "onboard": 0,
@@ -128,6 +142,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Journal Entry Template",
+   "link_count": 0,
    "link_to": "Journal Entry Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -138,6 +153,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "General Ledger",
+   "link_count": 0,
    "link_to": "General Ledger",
    "link_type": "Report",
    "onboard": 0,
@@ -148,6 +164,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Customer Ledger Summary",
+   "link_count": 0,
    "link_to": "Customer Ledger Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -158,6 +175,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Supplier Ledger Summary",
+   "link_count": 0,
    "link_to": "Supplier Ledger Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -167,6 +185,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounts Receivable",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -175,6 +194,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Invoice",
+   "link_count": 0,
    "link_to": "Sales Invoice",
    "link_type": "DocType",
    "onboard": 1,
@@ -185,6 +205,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer",
+   "link_count": 0,
    "link_to": "Customer",
    "link_type": "DocType",
    "onboard": 1,
@@ -195,6 +216,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payment Entry",
+   "link_count": 0,
    "link_to": "Payment Entry",
    "link_type": "DocType",
    "onboard": 0,
@@ -205,6 +227,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payment Request",
+   "link_count": 0,
    "link_to": "Payment Request",
    "link_type": "DocType",
    "onboard": 0,
@@ -215,6 +238,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Accounts Receivable",
+   "link_count": 0,
    "link_to": "Accounts Receivable",
    "link_type": "Report",
    "onboard": 0,
@@ -225,6 +249,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Accounts Receivable Summary",
+   "link_count": 0,
    "link_to": "Accounts Receivable Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -235,6 +260,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Register",
+   "link_count": 0,
    "link_to": "Sales Register",
    "link_type": "Report",
    "onboard": 0,
@@ -245,6 +271,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item-wise Sales Register",
+   "link_count": 0,
    "link_to": "Item-wise Sales Register",
    "link_type": "Report",
    "onboard": 0,
@@ -255,6 +282,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Order Analysis",
+   "link_count": 0,
    "link_to": "Sales Order Analysis",
    "link_type": "Report",
    "onboard": 0,
@@ -265,6 +293,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Delivered Items To Be Billed",
+   "link_count": 0,
    "link_to": "Delivered Items To Be Billed",
    "link_type": "Report",
    "onboard": 0,
@@ -274,6 +303,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounts Payable",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -282,6 +312,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Purchase Invoice",
+   "link_count": 0,
    "link_to": "Purchase Invoice",
    "link_type": "DocType",
    "onboard": 1,
@@ -292,6 +323,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier",
+   "link_count": 0,
    "link_to": "Supplier",
    "link_type": "DocType",
    "onboard": 1,
@@ -302,6 +334,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payment Entry",
+   "link_count": 0,
    "link_to": "Payment Entry",
    "link_type": "DocType",
    "onboard": 0,
@@ -312,6 +345,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Accounts Payable",
+   "link_count": 0,
    "link_to": "Accounts Payable",
    "link_type": "Report",
    "onboard": 0,
@@ -322,6 +356,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Accounts Payable Summary",
+   "link_count": 0,
    "link_to": "Accounts Payable Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -332,6 +367,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Register",
+   "link_count": 0,
    "link_to": "Purchase Register",
    "link_type": "Report",
    "onboard": 0,
@@ -342,6 +378,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item-wise Purchase Register",
+   "link_count": 0,
    "link_to": "Item-wise Purchase Register",
    "link_type": "Report",
    "onboard": 0,
@@ -352,6 +389,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Order Analysis",
+   "link_count": 0,
    "link_to": "Purchase Order Analysis",
    "link_type": "Report",
    "onboard": 0,
@@ -362,6 +400,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Received Items To Be Billed",
+   "link_count": 0,
    "link_to": "Received Items To Be Billed",
    "link_type": "Report",
    "onboard": 0,
@@ -371,6 +410,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -379,6 +419,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Trial Balance for Party",
+   "link_count": 0,
    "link_to": "Trial Balance for Party",
    "link_type": "Report",
    "onboard": 0,
@@ -389,6 +430,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Payment Period Based On Invoice Date",
+   "link_count": 0,
    "link_to": "Payment Period Based On Invoice Date",
    "link_type": "Report",
    "onboard": 0,
@@ -399,6 +441,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Partners Commission",
+   "link_count": 0,
    "link_to": "Sales Partners Commission",
    "link_type": "Report",
    "onboard": 0,
@@ -409,6 +452,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Customer Credit Balance",
+   "link_count": 0,
    "link_to": "Customer Credit Balance",
    "link_type": "Report",
    "onboard": 0,
@@ -419,6 +463,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Payment Summary",
+   "link_count": 0,
    "link_to": "Sales Payment Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -429,6 +474,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Address And Contacts",
+   "link_count": 0,
    "link_to": "Address And Contacts",
    "link_type": "Report",
    "onboard": 0,
@@ -438,8 +484,9 @@
    "dependencies": "GL Entry",
    "hidden": 0,
    "is_query_report": 1,
-   "label": "DATEV Export",
-   "link_to": "DATEV",
+   "label": "Tax Detail",
+   "link_count": 0,
+   "link_to": "Tax Detail",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
@@ -448,16 +495,31 @@
    "dependencies": "GL Entry",
    "hidden": 0,
    "is_query_report": 1,
+   "label": "DATEV Export",
+   "link_count": 0,
+   "link_to": "DATEV",
+   "link_type": "Report",
+   "onboard": 0,
+   "only_for": "Germany",
+   "type": "Link"
+  },
+  {
+   "dependencies": "GL Entry",
+   "hidden": 0,
+   "is_query_report": 1,
    "label": "UAE VAT 201",
+   "link_count": 0,
    "link_to": "UAE VAT 201",
    "link_type": "Report",
    "onboard": 0,
+   "only_for": "United Arab Emirates",
    "type": "Link"
   },
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Financial Statements",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -466,6 +528,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Trial Balance",
+   "link_count": 0,
    "link_to": "Trial Balance",
    "link_type": "Report",
    "onboard": 0,
@@ -476,6 +539,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Profit and Loss Statement",
+   "link_count": 0,
    "link_to": "Profit and Loss Statement",
    "link_type": "Report",
    "onboard": 0,
@@ -486,6 +550,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Balance Sheet",
+   "link_count": 0,
    "link_to": "Balance Sheet",
    "link_type": "Report",
    "onboard": 0,
@@ -496,6 +561,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Cash Flow",
+   "link_count": 0,
    "link_to": "Cash Flow",
    "link_type": "Report",
    "onboard": 0,
@@ -506,6 +572,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Consolidated Financial Statement",
+   "link_count": 0,
    "link_to": "Consolidated Financial Statement",
    "link_type": "Report",
    "onboard": 0,
@@ -515,6 +582,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Multi Currency",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -523,6 +591,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Currency",
+   "link_count": 0,
    "link_to": "Currency",
    "link_type": "DocType",
    "onboard": 0,
@@ -533,6 +602,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Currency Exchange",
+   "link_count": 0,
    "link_to": "Currency Exchange",
    "link_type": "DocType",
    "onboard": 0,
@@ -543,6 +613,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Exchange Rate Revaluation",
+   "link_count": 0,
    "link_to": "Exchange Rate Revaluation",
    "link_type": "DocType",
    "onboard": 0,
@@ -552,6 +623,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -560,6 +632,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payment Gateway Account",
+   "link_count": 0,
    "link_to": "Payment Gateway Account",
    "link_type": "DocType",
    "onboard": 0,
@@ -570,6 +643,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Terms and Conditions Template",
+   "link_count": 0,
    "link_to": "Terms and Conditions",
    "link_type": "DocType",
    "onboard": 0,
@@ -580,6 +654,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Mode of Payment",
+   "link_count": 0,
    "link_to": "Mode of Payment",
    "link_type": "DocType",
    "onboard": 0,
@@ -589,6 +664,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bank Statement",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -597,6 +673,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bank",
+   "link_count": 0,
    "link_to": "Bank",
    "link_type": "DocType",
    "onboard": 0,
@@ -607,6 +684,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bank Account",
+   "link_count": 0,
    "link_to": "Bank Account",
    "link_type": "DocType",
    "onboard": 0,
@@ -617,6 +695,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bank Clearance",
+   "link_count": 0,
    "link_to": "Bank Clearance",
    "link_type": "DocType",
    "onboard": 0,
@@ -627,6 +706,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bank Reconciliation Tool",
+   "link_count": 0,
    "link_to": "Bank Reconciliation Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -637,6 +717,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Bank Reconciliation Statement",
+   "link_count": 0,
    "link_to": "Bank Reconciliation Statement",
    "link_type": "Report",
    "onboard": 0,
@@ -646,6 +727,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Subscription Management",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -654,6 +736,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Subscription Plan",
+   "link_count": 0,
    "link_to": "Subscription Plan",
    "link_type": "DocType",
    "onboard": 0,
@@ -664,6 +747,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Subscription",
+   "link_count": 0,
    "link_to": "Subscription",
    "link_type": "DocType",
    "onboard": 0,
@@ -674,6 +758,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Subscription Settings",
+   "link_count": 0,
    "link_to": "Subscription Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -683,6 +768,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Goods and Services Tax (GST India)",
+   "link_count": 0,
    "onboard": 0,
    "only_for": "India",
    "type": "Card Break"
@@ -692,6 +778,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "GST Settings",
+   "link_count": 0,
    "link_to": "GST Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -703,6 +790,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "GST HSN Code",
+   "link_count": 0,
    "link_to": "GST HSN Code",
    "link_type": "DocType",
    "onboard": 0,
@@ -714,6 +802,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "GSTR-1",
+   "link_count": 0,
    "link_to": "GSTR-1",
    "link_type": "Report",
    "onboard": 0,
@@ -725,6 +814,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "GSTR-2",
+   "link_count": 0,
    "link_to": "GSTR-2",
    "link_type": "Report",
    "onboard": 0,
@@ -736,6 +826,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "GSTR 3B Report",
+   "link_count": 0,
    "link_to": "GSTR 3B Report",
    "link_type": "DocType",
    "onboard": 0,
@@ -747,6 +838,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "GST Sales Register",
+   "link_count": 0,
    "link_to": "GST Sales Register",
    "link_type": "Report",
    "onboard": 0,
@@ -758,6 +850,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "GST Purchase Register",
+   "link_count": 0,
    "link_to": "GST Purchase Register",
    "link_type": "Report",
    "onboard": 0,
@@ -769,6 +862,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "GST Itemised Sales Register",
+   "link_count": 0,
    "link_to": "GST Itemised Sales Register",
    "link_type": "Report",
    "onboard": 0,
@@ -780,6 +874,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "GST Itemised Purchase Register",
+   "link_count": 0,
    "link_to": "GST Itemised Purchase Register",
    "link_type": "Report",
    "onboard": 0,
@@ -791,6 +886,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "C-Form",
+   "link_count": 0,
    "link_to": "C-Form",
    "link_type": "DocType",
    "onboard": 0,
@@ -802,6 +898,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lower Deduction Certificate",
+   "link_count": 0,
    "link_to": "Lower Deduction Certificate",
    "link_type": "DocType",
    "onboard": 0,
@@ -812,6 +909,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Share Management",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -820,6 +918,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shareholder",
+   "link_count": 0,
    "link_to": "Shareholder",
    "link_type": "DocType",
    "onboard": 0,
@@ -830,6 +929,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Share Transfer",
+   "link_count": 0,
    "link_to": "Share Transfer",
    "link_type": "DocType",
    "onboard": 0,
@@ -840,6 +940,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Share Ledger",
+   "link_count": 0,
    "link_to": "Share Ledger",
    "link_type": "Report",
    "onboard": 0,
@@ -850,6 +951,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Share Balance",
+   "link_count": 0,
    "link_to": "Share Balance",
    "link_type": "Report",
    "onboard": 0,
@@ -859,6 +961,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Cost Center and Budgeting",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -867,6 +970,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chart of Cost Centers",
+   "link_count": 0,
    "link_to": "Cost Center",
    "link_type": "DocType",
    "onboard": 0,
@@ -877,6 +981,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Budget",
+   "link_count": 0,
    "link_to": "Budget",
    "link_type": "DocType",
    "onboard": 0,
@@ -887,6 +992,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounting Dimension",
+   "link_count": 0,
    "link_to": "Accounting Dimension",
    "link_type": "DocType",
    "onboard": 0,
@@ -897,6 +1003,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Budget Variance Report",
+   "link_count": 0,
    "link_to": "Budget Variance Report",
    "link_type": "Report",
    "onboard": 0,
@@ -907,6 +1014,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Monthly Distribution",
+   "link_count": 0,
    "link_to": "Monthly Distribution",
    "link_type": "DocType",
    "onboard": 0,
@@ -916,6 +1024,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Opening and Closing",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -924,6 +1033,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Opening Invoice Creation Tool",
+   "link_count": 0,
    "link_to": "Opening Invoice Creation Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -934,6 +1044,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chart of Accounts Importer",
+   "link_count": 0,
    "link_to": "Chart of Accounts Importer",
    "link_type": "DocType",
    "onboard": 0,
@@ -944,6 +1055,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Period Closing Voucher",
+   "link_count": 0,
    "link_to": "Period Closing Voucher",
    "link_type": "DocType",
    "onboard": 0,
@@ -953,6 +1065,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Taxes",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -961,6 +1074,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Taxes and Charges Template",
+   "link_count": 0,
    "link_to": "Sales Taxes and Charges Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -971,6 +1085,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Purchase Taxes and Charges Template",
+   "link_count": 0,
    "link_to": "Purchase Taxes and Charges Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -981,6 +1096,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Tax Template",
+   "link_count": 0,
    "link_to": "Item Tax Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -991,6 +1107,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tax Category",
+   "link_count": 0,
    "link_to": "Tax Category",
    "link_type": "DocType",
    "onboard": 0,
@@ -1001,6 +1118,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tax Rule",
+   "link_count": 0,
    "link_to": "Tax Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -1011,6 +1129,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tax Withholding Category",
+   "link_count": 0,
    "link_to": "Tax Withholding Category",
    "link_type": "DocType",
    "onboard": 0,
@@ -1020,6 +1139,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Profitability",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -1028,6 +1148,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Gross Profit",
+   "link_count": 0,
    "link_to": "Gross Profit",
    "link_type": "Report",
    "onboard": 0,
@@ -1038,6 +1159,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Profitability Analysis",
+   "link_count": 0,
    "link_to": "Profitability Analysis",
    "link_type": "Report",
    "onboard": 0,
@@ -1048,6 +1170,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Invoice Trends",
+   "link_count": 0,
    "link_to": "Sales Invoice Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -1058,20 +1181,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Invoice Trends",
+   "link_count": 0,
    "link_to": "Purchase Invoice Trends",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2021-06-10 03:17:31.427945",
+ "modified": "2021-08-05 12:15:52.872470",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Accounting",
  "onboarding": "Accounts",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 2,
  "shortcuts": [
   {
    "label": "Chart of Accounts",
@@ -1118,5 +1247,6 @@
    "link_to": "Accounts",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Accounting"
 }
\ No newline at end of file
diff --git a/erpnext/agriculture/workspace/agriculture/agriculture.json b/erpnext/agriculture/workspace/agriculture/agriculture.json
index 2cc2524..633777e 100644
--- a/erpnext/agriculture/workspace/agriculture/agriculture.json
+++ b/erpnext/agriculture/workspace/agriculture/agriculture.json
@@ -1,22 +1,27 @@
 {
- "category": "Domains",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Crops & Lands\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Analytics\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Diseases & Fertilizers\", \"col\": 4}}]",
  "creation": "2020-03-02 17:23:34.339274",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "agriculture",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Agriculture",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Crops & Lands",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -25,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Crop",
+   "link_count": 0,
    "link_to": "Crop",
    "link_type": "DocType",
    "onboard": 1,
@@ -35,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Crop Cycle",
+   "link_count": 0,
    "link_to": "Crop Cycle",
    "link_type": "DocType",
    "onboard": 1,
@@ -45,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Location",
+   "link_count": 0,
    "link_to": "Location",
    "link_type": "DocType",
    "onboard": 1,
@@ -54,6 +62,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Analytics",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -62,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Plant Analysis",
+   "link_count": 0,
    "link_to": "Plant Analysis",
    "link_type": "DocType",
    "onboard": 0,
@@ -72,6 +82,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Soil Analysis",
+   "link_count": 0,
    "link_to": "Soil Analysis",
    "link_type": "DocType",
    "onboard": 0,
@@ -82,6 +93,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Water Analysis",
+   "link_count": 0,
    "link_to": "Water Analysis",
    "link_type": "DocType",
    "onboard": 0,
@@ -92,6 +104,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Soil Texture",
+   "link_count": 0,
    "link_to": "Soil Texture",
    "link_type": "DocType",
    "onboard": 0,
@@ -102,6 +115,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Weather",
+   "link_count": 0,
    "link_to": "Weather",
    "link_type": "DocType",
    "onboard": 0,
@@ -112,6 +126,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Agriculture Analysis Criteria",
+   "link_count": 0,
    "link_to": "Agriculture Analysis Criteria",
    "link_type": "DocType",
    "onboard": 0,
@@ -121,6 +136,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Diseases & Fertilizers",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -129,6 +145,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Disease",
+   "link_count": 0,
    "link_to": "Disease",
    "link_type": "DocType",
    "onboard": 1,
@@ -139,19 +156,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fertilizer",
+   "link_count": 0,
    "link_to": "Fertilizer",
    "link_type": "DocType",
    "onboard": 1,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:38.477493",
+ "modified": "2021-08-05 12:15:54.595197",
  "modified_by": "Administrator",
  "module": "Agriculture",
  "name": "Agriculture",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
  "restrict_to_domain": "Agriculture",
- "shortcuts": []
+ "roles": [],
+ "sequence_id": 3,
+ "shortcuts": [],
+ "title": "Agriculture"
 }
\ No newline at end of file
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index ecc35b0..7afb43b 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -56,12 +56,12 @@
 		if self.is_existing_asset and self.purchase_invoice:
 			frappe.throw(_("Purchase Invoice cannot be made against an existing asset {0}").format(self.name))
 
-	def prepare_depreciation_data(self):
+	def prepare_depreciation_data(self, date_of_sale=None):
 		if self.calculate_depreciation:
 			self.value_after_depreciation = 0
 			self.set_depreciation_rate()
-			self.make_depreciation_schedule()
-			self.set_accumulated_depreciation()
+			self.make_depreciation_schedule(date_of_sale)
+			self.set_accumulated_depreciation(date_of_sale)
 		else:
 			self.finance_books = []
 			self.value_after_depreciation = (flt(self.gross_purchase_amount) -
@@ -167,7 +167,7 @@
 			d.rate_of_depreciation = flt(self.get_depreciation_rate(d, on_validate=True),
 				d.precision("rate_of_depreciation"))
 
-	def make_depreciation_schedule(self):
+	def make_depreciation_schedule(self, date_of_sale):
 		if 'Manual' not in [d.depreciation_method for d in self.finance_books] and not self.schedules:
 			self.schedules = []
 
@@ -176,16 +176,16 @@
 
 		for d in self.get('finance_books'):
 			self.validate_asset_finance_books(d)
-			
+
 			start = self.clear_depreciation_schedule()
 
 			# value_after_depreciation - current Asset value
 			if d.value_after_depreciation:
 				value_after_depreciation = (flt(d.value_after_depreciation) -
-					flt(self.opening_accumulated_depreciation)) 
+					flt(self.opening_accumulated_depreciation))
 			else:
 				value_after_depreciation = (flt(self.gross_purchase_amount) -
-					flt(self.opening_accumulated_depreciation)) 
+					flt(self.opening_accumulated_depreciation))
 
 			d.value_after_depreciation = value_after_depreciation
 
@@ -212,6 +212,21 @@
 					# so monthly schedule date is calculated by removing 11 months from it
 					monthly_schedule_date = add_months(schedule_date, - d.frequency_of_depreciation + 1)
 
+				# if asset is being sold
+				if date_of_sale:
+					from_date = self.get_from_date(d.finance_book)
+					depreciation_amount, days, months = self.get_pro_rata_amt(d, depreciation_amount,
+						from_date, date_of_sale)
+
+					self.append("schedules", {
+						"schedule_date": date_of_sale,
+						"depreciation_amount": depreciation_amount,
+						"depreciation_method": d.depreciation_method,
+						"finance_book": d.finance_book,
+						"finance_book_id": d.idx
+					})
+					break
+
 				# For first row
 				if has_pro_rata and n==0:
 					depreciation_amount, days, months = self.get_pro_rata_amt(d, depreciation_amount,
@@ -303,6 +318,21 @@
 				break
 		return start
 
+	def get_from_date(self, finance_book):
+		if not self.get('schedules'):
+			return self.available_for_use_date
+
+		if len(self.finance_books) == 1:
+			return self.schedules[-1].schedule_date
+
+		from_date = ""
+		for schedule in self.get('schedules'):
+			if schedule.finance_book == finance_book:
+				from_date = schedule.schedule_date
+
+		if from_date:
+			return from_date
+		return self.available_for_use_date
 
 	# if it returns True, depreciation_amount will not be equal for the first and last rows
 	def check_is_pro_rata(self, row):
@@ -357,7 +387,7 @@
 			frappe.throw(_("Depreciation Row {0}: Next Depreciation Date cannot be before Available-for-use Date")
 				.format(row.idx))
 
-	def set_accumulated_depreciation(self, ignore_booked_entry = False):
+	def set_accumulated_depreciation(self, date_of_sale=None, ignore_booked_entry = False):
 		straight_line_idx = [d.idx for d in self.get("schedules") if d.depreciation_method == 'Straight Line']
 		finance_books = []
 
@@ -365,7 +395,7 @@
 			if ignore_booked_entry and d.journal_entry:
 				continue
 
-			if d.finance_book_id not in finance_books:
+			if int(d.finance_book_id) not in finance_books:
 				accumulated_depreciation = flt(self.opening_accumulated_depreciation)
 				value_after_depreciation = flt(self.get_value_after_depreciation(d.finance_book_id))
 				finance_books.append(int(d.finance_book_id))
@@ -374,7 +404,7 @@
 			value_after_depreciation -= flt(depreciation_amount)
 
 			# for the last row, if depreciation method = Straight Line
-			if straight_line_idx and i == max(straight_line_idx) - 1:
+			if straight_line_idx and i == max(straight_line_idx) - 1 and not date_of_sale:
 				book = self.get('finance_books')[cint(d.finance_book_id) - 1]
 				depreciation_amount += flt(value_after_depreciation -
 					flt(book.expected_value_after_useful_life), d.precision("depreciation_amount"))
diff --git a/erpnext/assets/doctype/asset/depreciation.py b/erpnext/assets/doctype/asset/depreciation.py
index 8f0afb4..8fdbbf9 100644
--- a/erpnext/assets/doctype/asset/depreciation.py
+++ b/erpnext/assets/doctype/asset/depreciation.py
@@ -176,22 +176,34 @@
 
 	asset.set_status()
 
-@frappe.whitelist()
+def get_gl_entries_on_asset_regain(asset, selling_amount=0, finance_book=None):
+	fixed_asset_account, asset, depreciation_cost_center, accumulated_depr_account, accumulated_depr_amount, disposal_account, value_after_depreciation = \
+		get_asset_details(asset, finance_book)
+
+	gl_entries = [
+		{
+			"account": fixed_asset_account,
+			"debit_in_account_currency": asset.gross_purchase_amount,
+			"debit": asset.gross_purchase_amount,
+			"cost_center": depreciation_cost_center
+		},
+		{
+			"account": accumulated_depr_account,
+			"credit_in_account_currency": accumulated_depr_amount,
+			"credit": accumulated_depr_amount,
+			"cost_center": depreciation_cost_center
+		}
+	]
+
+	profit_amount = abs(flt(value_after_depreciation)) - abs(flt(selling_amount))
+	if profit_amount:
+		get_profit_gl_entries(profit_amount, gl_entries, disposal_account, depreciation_cost_center)
+
+	return gl_entries
+
 def get_gl_entries_on_asset_disposal(asset, selling_amount=0, finance_book=None):
-	fixed_asset_account, accumulated_depr_account, depr_expense_account = get_depreciation_accounts(asset)
-	disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(asset.company)
-	depreciation_cost_center = asset.cost_center or depreciation_cost_center
-
-	idx = 1
-	if finance_book:
-		for d in asset.finance_books:
-			if d.finance_book == finance_book:
-				idx = d.idx
-				break
-
-	value_after_depreciation = (asset.finance_books[idx - 1].value_after_depreciation
-		if asset.calculate_depreciation else asset.value_after_depreciation)
-	accumulated_depr_amount = flt(asset.gross_purchase_amount) - flt(value_after_depreciation)
+	fixed_asset_account, asset, depreciation_cost_center, accumulated_depr_account, accumulated_depr_amount, disposal_account, value_after_depreciation = \
+		get_asset_details(asset, finance_book)
 
 	gl_entries = [
 		{
@@ -210,16 +222,37 @@
 
 	profit_amount = flt(selling_amount) - flt(value_after_depreciation)
 	if profit_amount:
-		debit_or_credit = "debit" if profit_amount < 0 else "credit"
-		gl_entries.append({
-			"account": disposal_account,
-			"cost_center": depreciation_cost_center,
-			debit_or_credit: abs(profit_amount),
-			debit_or_credit + "_in_account_currency": abs(profit_amount)
-		})
+		get_profit_gl_entries(profit_amount, gl_entries, disposal_account, depreciation_cost_center)
 
 	return gl_entries
 
+def get_asset_details(asset, finance_book=None):
+	fixed_asset_account, accumulated_depr_account, depr_expense_account = get_depreciation_accounts(asset)
+	disposal_account, depreciation_cost_center = get_disposal_account_and_cost_center(asset.company)
+	depreciation_cost_center = asset.cost_center or depreciation_cost_center
+
+	idx = 1
+	if finance_book:
+		for d in asset.finance_books:
+			if d.finance_book == finance_book:
+				idx = d.idx
+				break
+
+	value_after_depreciation = (asset.finance_books[idx - 1].value_after_depreciation
+		if asset.calculate_depreciation else asset.value_after_depreciation)
+	accumulated_depr_amount = flt(asset.gross_purchase_amount) - flt(value_after_depreciation)
+
+	return fixed_asset_account, asset, depreciation_cost_center, accumulated_depr_account, accumulated_depr_amount, disposal_account, value_after_depreciation
+
+def get_profit_gl_entries(profit_amount, gl_entries, disposal_account, depreciation_cost_center):
+	debit_or_credit = "debit" if profit_amount < 0 else "credit"
+	gl_entries.append({
+		"account": disposal_account,
+		"cost_center": depreciation_cost_center,
+		debit_or_credit: abs(profit_amount),
+		debit_or_credit + "_in_account_currency": abs(profit_amount)
+	})
+
 @frappe.whitelist()
 def get_disposal_account_and_cost_center(company):
 	disposal_account, depreciation_cost_center = frappe.get_cached_value('Company',  company,
diff --git a/erpnext/assets/doctype/asset_movement/test_asset_movement.py b/erpnext/assets/doctype/asset_movement/test_asset_movement.py
index cddee5f..2b2d2b4 100644
--- a/erpnext/assets/doctype/asset_movement/test_asset_movement.py
+++ b/erpnext/assets/doctype/asset_movement/test_asset_movement.py
@@ -15,6 +15,7 @@
 
 class TestAssetMovement(unittest.TestCase):
 	def setUp(self):
+		frappe.db.set_value("Company", "_Test Company", "capital_work_in_progress_account", "CWIP Account - _TC")
 		create_asset_data()
 		make_location()
 
@@ -45,12 +46,12 @@
 				'location_name': 'Test Location 2'
 			}).insert()
 
-		movement1 = create_asset_movement(purpose = 'Transfer', company = asset.company, 
+		movement1 = create_asset_movement(purpose = 'Transfer', company = asset.company,
 			assets = [{ 'asset': asset.name , 'source_location': 'Test Location', 'target_location': 'Test Location 2'}],
 			reference_doctype = 'Purchase Receipt', reference_name = pr.name)
 		self.assertEqual(frappe.db.get_value("Asset", asset.name, "location"), "Test Location 2")
 
-		movement2 = create_asset_movement(purpose = 'Transfer', company = asset.company, 
+		create_asset_movement(purpose = 'Transfer', company = asset.company,
 			assets = [{ 'asset': asset.name , 'source_location': 'Test Location 2', 'target_location': 'Test Location'}],
 			reference_doctype = 'Purchase Receipt', reference_name = pr.name)
 		self.assertEqual(frappe.db.get_value("Asset", asset.name, "location"), "Test Location")
@@ -59,18 +60,18 @@
 		self.assertEqual(frappe.db.get_value("Asset", asset.name, "location"), "Test Location")
 
 		employee = make_employee("testassetmovemp@example.com", company="_Test Company")
-		movement3 = create_asset_movement(purpose = 'Issue', company = asset.company, 
+		create_asset_movement(purpose = 'Issue', company = asset.company,
 			assets = [{ 'asset': asset.name , 'source_location': 'Test Location', 'to_employee': employee}],
 			reference_doctype = 'Purchase Receipt', reference_name = pr.name)
-		
+
 		# after issuing asset should belong to an employee not at a location
 		self.assertEqual(frappe.db.get_value("Asset", asset.name, "location"), None)
 		self.assertEqual(frappe.db.get_value("Asset", asset.name, "custodian"), employee)
-	
+
 	def test_last_movement_cancellation(self):
 		pr = make_purchase_receipt(item_code="Macbook Pro",
 			qty=1, rate=100000.0, location="Test Location")
-		
+
 		asset_name = frappe.db.get_value("Asset", {"purchase_receipt": pr.name}, 'name')
 		asset = frappe.get_doc('Asset', asset_name)
 		asset.calculate_depreciation = 1
@@ -85,17 +86,17 @@
 		})
 		if asset.docstatus == 0:
 			asset.submit()
-		
+
 		if not frappe.db.exists("Location", "Test Location 2"):
 			frappe.get_doc({
 				'doctype': 'Location',
 				'location_name': 'Test Location 2'
 			}).insert()
-		
+
 		movement = frappe.get_doc({'doctype': 'Asset Movement', 'reference_name': pr.name })
 		self.assertRaises(frappe.ValidationError, movement.cancel)
 
-		movement1 = create_asset_movement(purpose = 'Transfer', company = asset.company, 
+		movement1 = create_asset_movement(purpose = 'Transfer', company = asset.company,
 			assets = [{ 'asset': asset.name , 'source_location': 'Test Location', 'target_location': 'Test Location 2'}],
 			reference_doctype = 'Purchase Receipt', reference_name = pr.name)
 		self.assertEqual(frappe.db.get_value("Asset", asset.name, "location"), "Test Location 2")
diff --git a/erpnext/assets/doctype/asset_repair/asset_repair.json b/erpnext/assets/doctype/asset_repair/asset_repair.json
index 19528a2..ba31898 100644
--- a/erpnext/assets/doctype/asset_repair/asset_repair.json
+++ b/erpnext/assets/doctype/asset_repair/asset_repair.json
@@ -176,6 +176,7 @@
    "fieldtype": "Section Break"
   },
   {
+   "collapsible": 1,
    "fieldname": "accounting_dimensions_section",
    "fieldtype": "Section Break",
    "label": "Accounting Dimensions"
diff --git a/erpnext/assets/workspace/assets/assets.json b/erpnext/assets/workspace/assets/assets.json
index c401581..dfbf1a3 100644
--- a/erpnext/assets/workspace/assets/assets.json
+++ b/erpnext/assets/workspace/assets/assets.json
@@ -1,27 +1,32 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Asset Value Analytics",
    "label": "Asset Value Analytics"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Assets\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Asset Value Analytics\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Asset\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Asset Category\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Fixed Asset Register\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Assets\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Maintenance\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}]",
  "creation": "2020-03-02 15:43:27.634865",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "assets",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Assets",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assets",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -30,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset",
+   "link_count": 0,
    "link_to": "Asset",
    "link_type": "DocType",
    "onboard": 1,
@@ -40,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Location",
+   "link_count": 0,
    "link_to": "Location",
    "link_type": "DocType",
    "onboard": 1,
@@ -50,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Category",
+   "link_count": 0,
    "link_to": "Asset Category",
    "link_type": "DocType",
    "onboard": 1,
@@ -60,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Movement",
+   "link_count": 0,
    "link_to": "Asset Movement",
    "link_type": "DocType",
    "onboard": 0,
@@ -69,6 +78,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -77,6 +87,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Maintenance Team",
+   "link_count": 0,
    "link_to": "Asset Maintenance Team",
    "link_type": "DocType",
    "onboard": 1,
@@ -87,6 +98,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Maintenance",
+   "link_count": 0,
    "link_to": "Asset Maintenance",
    "link_type": "DocType",
    "onboard": 1,
@@ -97,6 +109,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Maintenance Log",
+   "link_count": 0,
    "link_to": "Asset Maintenance Log",
    "link_type": "DocType",
    "onboard": 0,
@@ -107,6 +120,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Value Adjustment",
+   "link_count": 0,
    "link_to": "Asset Value Adjustment",
    "link_type": "DocType",
    "onboard": 0,
@@ -117,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Repair",
+   "link_count": 0,
    "link_to": "Asset Repair",
    "link_type": "DocType",
    "onboard": 0,
@@ -126,6 +141,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -134,6 +150,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Asset Depreciation Ledger",
+   "link_count": 0,
    "link_to": "Asset Depreciation Ledger",
    "link_type": "Report",
    "onboard": 0,
@@ -144,6 +161,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Asset Depreciations and Balances",
+   "link_count": 0,
    "link_to": "Asset Depreciations and Balances",
    "link_type": "Report",
    "onboard": 0,
@@ -154,20 +172,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Asset Maintenance",
+   "link_count": 0,
    "link_to": "Asset Maintenance",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:37.977119",
+ "modified": "2021-08-05 12:15:54.839452",
  "modified_by": "Administrator",
  "module": "Assets",
  "name": "Assets",
  "onboarding": "Assets",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 4,
  "shortcuts": [
   {
    "label": "Asset",
@@ -189,5 +213,6 @@
    "link_to": "Asset",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Assets"
 }
\ No newline at end of file
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.js b/erpnext/buying/doctype/purchase_order/purchase_order.js
index 233a9c8..521432d 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order.js
@@ -102,8 +102,8 @@
 	}
 });
 
-erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend({
-	setup: function() {
+erpnext.buying.PurchaseOrderController = class PurchaseOrderController extends erpnext.buying.BuyingController {
+	setup() {
 		this.frm.custom_make_buttons = {
 			'Purchase Receipt': 'Purchase Receipt',
 			'Purchase Invoice': 'Purchase Invoice',
@@ -111,13 +111,13 @@
 			'Payment Entry': 'Payment',
 		}
 
-		this._super();
+		super.setup();
 
-	},
+	}
 
-	refresh: function(doc, cdt, cdn) {
+	refresh(doc, cdt, cdn) {
 		var me = this;
-		this._super();
+		super.refresh();
 		var allow_receipt = false;
 		var is_drop_ship = false;
 
@@ -223,9 +223,9 @@
 		} else if(doc.docstatus===0) {
 			cur_frm.cscript.add_from_mappers();
 		}
-	},
+	}
 
-	get_items_from_open_material_requests: function() {
+	get_items_from_open_material_requests() {
 		erpnext.utils.map_current_doc({
 			method: "erpnext.stock.doctype.material_request.material_request.make_purchase_order_based_on_supplier",
 			args: {
@@ -243,17 +243,17 @@
 			},
 			get_query_method: "erpnext.stock.doctype.material_request.material_request.get_material_requests_based_on_supplier"
 		});
-	},
+	}
 
-	validate: function() {
+	validate() {
 		set_schedule_date(this.frm);
-	},
+	}
 
-	has_unsupplied_items: function() {
-		return this.frm.doc['supplied_items'].some(item => item.required_qty > item.supplied_qty)
-	},
+	has_unsupplied_items() {
+		return this.frm.doc['supplied_items'].some(item => item.required_qty > item.supplied_qty);
+	}
 
-	make_stock_entry: function() {
+	make_stock_entry() {
 		var items = $.map(cur_frm.doc.items, function(d) { return d.bom ? d.item_code : false; });
 		var me = this;
 
@@ -368,9 +368,9 @@
 			me.dialog.hide();
 		});
 
-	},
+	}
 
-	_make_rm_stock_entry: function(rm_items) {
+	_make_rm_stock_entry(rm_items) {
 		frappe.call({
 			method:"erpnext.buying.doctype.purchase_order.purchase_order.make_rm_stock_entry",
 			args: {
@@ -383,31 +383,31 @@
 				frappe.set_route("Form", doclist[0].doctype, doclist[0].name);
 			}
 		});
-	},
+	}
 
-	make_inter_company_order: function(frm) {
+	make_inter_company_order(frm) {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.buying.doctype.purchase_order.purchase_order.make_inter_company_sales_order",
 			frm: frm
 		});
-	},
+	}
 
-	make_purchase_receipt: function() {
+	make_purchase_receipt() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.buying.doctype.purchase_order.purchase_order.make_purchase_receipt",
 			frm: cur_frm,
 			freeze_message: __("Creating Purchase Receipt ...")
 		})
-	},
+	}
 
-	make_purchase_invoice: function() {
+	make_purchase_invoice() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.buying.doctype.purchase_order.purchase_order.make_purchase_invoice",
 			frm: cur_frm
 		})
-	},
+	}
 
-	add_from_mappers: function() {
+	add_from_mappers() {
 		var me = this;
 		this.frm.add_custom_button(__('Material Request'),
 			function() {
@@ -513,13 +513,13 @@
 				}
 			});
 		}, __("Tools"));
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	items_add: function(doc, cdt, cdn) {
+	items_add(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		if(doc.schedule_date) {
 			row.schedule_date = doc.schedule_date;
@@ -527,13 +527,13 @@
 		} else {
 			this.frm.script_manager.copy_from_first_row("items", row, ["schedule_date"]);
 		}
-	},
+	}
 
-	unhold_purchase_order: function(){
+	unhold_purchase_order(){
 		cur_frm.cscript.update_status("Resume", "Draft")
-	},
+	}
 
-	hold_purchase_order: function(){
+	hold_purchase_order(){
 		var me = this;
 		var d = new frappe.ui.Dialog({
 			title: __('Reason for Hold'),
@@ -567,31 +567,31 @@
 			}
 		});
 		d.show();
-	},
+	}
 
-	unclose_purchase_order: function(){
+	unclose_purchase_order(){
 		cur_frm.cscript.update_status('Re-open', 'Submitted')
-	},
+	}
 
-	close_purchase_order: function(){
+	close_purchase_order(){
 		cur_frm.cscript.update_status('Close', 'Closed')
-	},
+	}
 
-	delivered_by_supplier: function(){
+	delivered_by_supplier(){
 		cur_frm.cscript.update_status('Deliver', 'Delivered')
-	},
+	}
 
-	items_on_form_rendered: function() {
-		set_schedule_date(this.frm);
-	},
-
-	schedule_date: function() {
+	items_on_form_rendered() {
 		set_schedule_date(this.frm);
 	}
-});
+
+	schedule_date() {
+		set_schedule_date(this.frm);
+	}
+};
 
 // for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.buying.PurchaseOrderController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.buying.PurchaseOrderController({frm: cur_frm}));
 
 cur_frm.cscript.update_status= function(label, status){
 	frappe.call({
diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
index b76c378..bde00cb 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
@@ -205,10 +205,10 @@
 
 })
 
-erpnext.buying.RequestforQuotationController = erpnext.buying.BuyingController.extend({
-	refresh: function() {
+erpnext.buying.RequestforQuotationController = class RequestforQuotationController extends erpnext.buying.BuyingController {
+	refresh() {
 		var me = this;
-		this._super();
+		super.refresh();
 		if (this.frm.doc.docstatus===0) {
 			this.frm.add_custom_button(__('Material Request'),
 				function() {
@@ -302,17 +302,17 @@
 					me.get_suppliers_button(me.frm);
 				}, __("Tools"));
 		}
-	},
+	}
 
-	calculate_taxes_and_totals: function() {
+	calculate_taxes_and_totals() {
 		return;
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	get_suppliers_button: function (frm) {
+	get_suppliers_button (frm) {
 		var doc = frm.doc;
 		var dialog = new frappe.ui.Dialog({
 			title: __("Get Suppliers"),
@@ -410,8 +410,8 @@
 		});
 
 		dialog.show();
-	},
-});
+	}
+};
 
 // for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.buying.RequestforQuotationController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.buying.RequestforQuotationController({frm: cur_frm}));
diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
index a0187b0..dc9c590 100644
--- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
+++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
@@ -4,19 +4,19 @@
 // attach required files
 {% include 'erpnext/public/js/controllers/buying.js' %};
 
-erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.extend({
-	setup: function() {
+erpnext.buying.SupplierQuotationController = class SupplierQuotationController extends erpnext.buying.BuyingController {
+	setup() {
 		this.frm.custom_make_buttons = {
 			'Purchase Order': 'Purchase Order',
 			'Quotation': 'Quotation'
 		}
 
-		this._super();
-	},
+		super.setup();
+	}
 
-	refresh: function() {
+	refresh() {
 		var me = this;
-		this._super();
+		super.refresh();
 
 		if (this.frm.doc.__islocal && !this.frm.doc.valid_till) {
 			this.frm.set_value('valid_till', frappe.datetime.add_months(this.frm.doc.transaction_date, 1));
@@ -77,25 +77,25 @@
 				})
 			}, __("Get Items From"));
 		}
-	},
+	}
 
-	make_purchase_order: function() {
+	make_purchase_order() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.buying.doctype.supplier_quotation.supplier_quotation.make_purchase_order",
 			frm: cur_frm
 		})
-	},
-	make_quotation: function() {
+	}
+	make_quotation() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.buying.doctype.supplier_quotation.supplier_quotation.make_quotation",
 			frm: cur_frm
 		})
 
 	}
-});
+};
 
 // for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.buying.SupplierQuotationController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.buying.SupplierQuotationController({frm: cur_frm}));
 
 cur_frm.fields_dict['items'].grid.get_field('project').get_query =
 	function(doc, cdt, cdn) {
diff --git a/erpnext/buying/workspace/buying/buying.json b/erpnext/buying/workspace/buying/buying.json
index 6c9c0f3..6c91e81 100644
--- a/erpnext/buying/workspace/buying/buying.json
+++ b/erpnext/buying/workspace/buying/buying.json
@@ -1,6 +1,6 @@
 {
  "cards_label": "",
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Purchase Order Trends",
@@ -8,22 +8,27 @@
   }
  ],
  "charts_label": "",
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Buying\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Purchase Order Trends\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Item\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Material Request\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Purchase Order\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Purchase Analytics\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Purchase Order Analysis\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Buying\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Items & Pricing\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Supplier\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Supplier Scorecard\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Key Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Other Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Regional\", \"col\": 4}}]",
  "creation": "2020-01-28 11:50:26.195467",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "buying",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Buying",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Buying",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -32,6 +37,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Material Request",
+   "link_count": 0,
    "link_to": "Material Request",
    "link_type": "DocType",
    "onboard": 1,
@@ -42,6 +48,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Purchase Order",
+   "link_count": 0,
    "link_to": "Purchase Order",
    "link_type": "DocType",
    "onboard": 1,
@@ -52,6 +59,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Purchase Invoice",
+   "link_count": 0,
    "link_to": "Purchase Invoice",
    "link_type": "DocType",
    "onboard": 1,
@@ -62,6 +70,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Request for Quotation",
+   "link_count": 0,
    "link_to": "Request for Quotation",
    "link_type": "DocType",
    "onboard": 1,
@@ -72,6 +81,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Quotation",
+   "link_count": 0,
    "link_to": "Supplier Quotation",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +91,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Items & Pricing",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -89,6 +100,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item",
+   "link_count": 0,
    "link_to": "Item",
    "link_type": "DocType",
    "onboard": 1,
@@ -99,6 +111,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Price",
+   "link_count": 0,
    "link_to": "Item Price",
    "link_type": "DocType",
    "onboard": 1,
@@ -109,6 +122,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Price List",
+   "link_count": 0,
    "link_to": "Price List",
    "link_type": "DocType",
    "onboard": 1,
@@ -119,6 +133,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Product Bundle",
+   "link_count": 0,
    "link_to": "Product Bundle",
    "link_type": "DocType",
    "onboard": 0,
@@ -129,6 +144,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Group",
+   "link_count": 0,
    "link_to": "Item Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -139,6 +155,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Promotional Scheme",
+   "link_count": 0,
    "link_to": "Promotional Scheme",
    "link_type": "DocType",
    "onboard": 0,
@@ -149,6 +166,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Pricing Rule",
+   "link_count": 0,
    "link_to": "Pricing Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -158,6 +176,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -166,6 +185,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Buying Settings",
+   "link_count": 0,
    "link_to": "Buying Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -176,6 +196,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Purchase Taxes and Charges Template",
+   "link_count": 0,
    "link_to": "Purchase Taxes and Charges Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -186,6 +207,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Terms and Conditions Template",
+   "link_count": 0,
    "link_to": "Terms and Conditions",
    "link_type": "DocType",
    "onboard": 0,
@@ -195,6 +217,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -203,6 +226,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier",
+   "link_count": 0,
    "link_to": "Supplier",
    "link_type": "DocType",
    "onboard": 1,
@@ -213,6 +237,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Group",
+   "link_count": 0,
    "link_to": "Supplier Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -223,6 +248,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Contact",
+   "link_count": 0,
    "link_to": "Contact",
    "link_type": "DocType",
    "onboard": 0,
@@ -233,6 +259,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Address",
+   "link_count": 0,
    "link_to": "Address",
    "link_type": "DocType",
    "onboard": 0,
@@ -242,6 +269,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Scorecard",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -250,6 +278,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Scorecard",
+   "link_count": 0,
    "link_to": "Supplier Scorecard",
    "link_type": "DocType",
    "onboard": 0,
@@ -260,6 +289,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Scorecard Variable",
+   "link_count": 0,
    "link_to": "Supplier Scorecard Variable",
    "link_type": "DocType",
    "onboard": 0,
@@ -270,6 +300,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Scorecard Criteria",
+   "link_count": 0,
    "link_to": "Supplier Scorecard Criteria",
    "link_type": "DocType",
    "onboard": 0,
@@ -280,6 +311,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier Scorecard Standing",
+   "link_count": 0,
    "link_to": "Supplier Scorecard Standing",
    "link_type": "DocType",
    "onboard": 0,
@@ -289,6 +321,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Key Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -297,6 +330,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Analytics",
+   "link_count": 0,
    "link_to": "Purchase Analytics",
    "link_type": "Report",
    "onboard": 1,
@@ -307,6 +341,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Order Analysis",
+   "link_count": 0,
    "link_to": "Purchase Order Analysis",
    "link_type": "Report",
    "onboard": 1,
@@ -317,6 +352,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Supplier-Wise Sales Analytics",
+   "link_count": 0,
    "link_to": "Supplier-Wise Sales Analytics",
    "link_type": "Report",
    "onboard": 1,
@@ -327,6 +363,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Items to Order and Receive",
+   "link_count": 0,
    "link_to": "Requested Items to Order and Receive",
    "link_type": "Report",
    "onboard": 1,
@@ -337,6 +374,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Order Trends",
+   "link_count": 0,
    "link_to": "Purchase Order Trends",
    "link_type": "Report",
    "onboard": 1,
@@ -347,6 +385,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Procurement Tracker",
+   "link_count": 0,
    "link_to": "Procurement Tracker",
    "link_type": "Report",
    "onboard": 1,
@@ -356,6 +395,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Other Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -364,6 +404,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Items To Be Requested",
+   "link_count": 0,
    "link_to": "Items To Be Requested",
    "link_type": "Report",
    "onboard": 1,
@@ -374,6 +415,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item-wise Purchase History",
+   "link_count": 0,
    "link_to": "Item-wise Purchase History",
    "link_type": "Report",
    "onboard": 1,
@@ -384,6 +426,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Receipt Trends",
+   "link_count": 0,
    "link_to": "Purchase Receipt Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -394,6 +437,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Invoice Trends",
+   "link_count": 0,
    "link_to": "Purchase Invoice Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -404,6 +448,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Subcontracted Raw Materials To Be Transferred",
+   "link_count": 0,
    "link_to": "Subcontracted Raw Materials To Be Transferred",
    "link_type": "Report",
    "onboard": 0,
@@ -414,6 +459,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Subcontracted Item To Be Received",
+   "link_count": 0,
    "link_to": "Subcontracted Item To Be Received",
    "link_type": "Report",
    "onboard": 0,
@@ -424,6 +470,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Supplier Quotation Comparison",
+   "link_count": 0,
    "link_to": "Supplier Quotation Comparison",
    "link_type": "Report",
    "onboard": 1,
@@ -434,6 +481,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Material Requests for which Supplier Quotations are not created",
+   "link_count": 0,
    "link_to": "Material Requests for which Supplier Quotations are not created",
    "link_type": "Report",
    "onboard": 0,
@@ -444,6 +492,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Supplier Addresses And Contacts",
+   "link_count": 0,
    "link_to": "Address And Contacts",
    "link_type": "Report",
    "onboard": 0,
@@ -453,6 +502,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Regional",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -461,20 +511,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Import Supplier Invoice",
+   "link_count": 0,
    "link_to": "Import Supplier Invoice",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:38.615167",
+ "modified": "2021-08-05 12:15:56.218427",
  "modified_by": "Administrator",
  "module": "Buying",
  "name": "Buying",
  "onboarding": "Buying",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 6,
  "shortcuts": [
   {
    "color": "Green",
@@ -516,5 +572,6 @@
    "type": "Dashboard"
   }
  ],
- "shortcuts_label": ""
+ "shortcuts_label": "",
+ "title": "Buying"
 }
\ No newline at end of file
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 73d2411..4c79a5c 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -992,9 +992,9 @@
 		frappe.throw(_("Cannot overbill for Item {0} in row {1} more than {2}. To allow over-billing, please set allowance in Accounts Settings")
 			.format(item.item_code, item.idx, max_allowed_amt))
 
-	def get_company_default(self, fieldname):
+	def get_company_default(self, fieldname, ignore_validation=False):
 		from erpnext.accounts.utils import get_company_default
-		return get_company_default(self.company, fieldname)
+		return get_company_default(self.company, fieldname, ignore_validation=ignore_validation)
 
 	def get_stock_items(self):
 		stock_items = []
diff --git a/erpnext/controllers/employee_boarding_controller.py b/erpnext/controllers/employee_boarding_controller.py
new file mode 100644
index 0000000..1898222
--- /dev/null
+++ b/erpnext/controllers/employee_boarding_controller.py
@@ -0,0 +1,127 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+import frappe
+from frappe import _
+from frappe.desk.form import assign_to
+from frappe.model.document import Document
+from frappe.utils import flt, unique
+
+class EmployeeBoardingController(Document):
+	'''
+		Create the project and the task for the boarding process
+		Assign to the concerned person and roles as per the onboarding/separation template
+	'''
+	def validate(self):
+		# remove the task if linked before submitting the form
+		if self.amended_from:
+			for activity in self.activities:
+				activity.task = ''
+
+	def on_submit(self):
+		# create the project for the given employee onboarding
+		project_name = _(self.doctype) + ' : '
+		if self.doctype == 'Employee Onboarding':
+			project_name += self.job_applicant
+		else:
+			project_name += self.employee
+
+		project = frappe.get_doc({
+				'doctype': 'Project',
+				'project_name': project_name,
+				'expected_start_date': self.date_of_joining if self.doctype == 'Employee Onboarding' else self.resignation_letter_date,
+				'department': self.department,
+				'company': self.company
+			}).insert(ignore_permissions=True, ignore_mandatory=True)
+
+		self.db_set('project', project.name)
+		self.db_set('boarding_status', 'Pending')
+		self.reload()
+		self.create_task_and_notify_user()
+
+	def create_task_and_notify_user(self):
+		# create the task for the given project and assign to the concerned person
+		for activity in self.activities:
+			if activity.task:
+				continue
+
+			task = frappe.get_doc({
+				'doctype': 'Task',
+				'project': self.project,
+				'subject': activity.activity_name + ' : ' + self.employee_name,
+				'description': activity.description,
+				'department': self.department,
+				'company': self.company,
+				'task_weight': activity.task_weight
+			}).insert(ignore_permissions=True)
+			activity.db_set('task', task.name)
+
+			users = [activity.user] if activity.user else []
+			if activity.role:
+				user_list = frappe.db.sql_list('''
+					SELECT
+						DISTINCT(has_role.parent)
+					FROM
+						`tabHas Role` has_role
+							LEFT JOIN `tabUser` user
+								ON has_role.parent = user.name
+					WHERE
+						has_role.parenttype = 'User'
+							AND user.enabled = 1
+							AND has_role.role = %s
+				''', activity.role)
+				users = unique(users + user_list)
+
+				if 'Administrator' in users:
+					users.remove('Administrator')
+
+			# assign the task the users
+			if users:
+				self.assign_task_to_users(task, users)
+
+	def assign_task_to_users(self, task, users):
+		for user in users:
+			args = {
+				'assign_to': [user],
+				'doctype': task.doctype,
+				'name': task.name,
+				'description': task.description or task.subject,
+				'notify': self.notify_users_by_email
+			}
+			assign_to.add(args)
+
+	def on_cancel(self):
+		# delete task project
+		for task in frappe.get_all('Task', filters={'project': self.project}):
+			frappe.delete_doc('Task', task.name, force=1)
+		frappe.delete_doc('Project', self.project, force=1)
+		self.db_set('project', '')
+		for activity in self.activities:
+			activity.db_set('task', '')
+
+
+@frappe.whitelist()
+def get_onboarding_details(parent, parenttype):
+	return frappe.get_all('Employee Boarding Activity',
+		fields=['activity_name', 'role', 'user', 'required_for_employee_creation', 'description', 'task_weight'],
+		filters={'parent': parent, 'parenttype': parenttype},
+		order_by= 'idx')
+
+
+def update_employee_boarding_status(project):
+	employee_onboarding = frappe.db.exists('Employee Onboarding', {'project': project.name})
+	employee_separation = frappe.db.exists('Employee Separation', {'project': project.name})
+
+	if not (employee_onboarding or employee_separation):
+		return
+
+	status = 'Pending'
+	if flt(project.percent_complete) > 0.0 and flt(project.percent_complete) < 100.0:
+		status = 'In Process'
+	elif flt(project.percent_complete) == 100.0:
+		status = 'Completed'
+
+	if employee_onboarding:
+		frappe.db.set_value('Employee Onboarding', employee_onboarding, 'boarding_status', status)
+	elif employee_separation:
+		frappe.db.set_value('Employee Separation', employee_separation, 'boarding_status', status)
diff --git a/erpnext/crm/doctype/appointment/appointment.json b/erpnext/crm/doctype/appointment/appointment.json
index 306be7f..fe7b4e1 100644
--- a/erpnext/crm/doctype/appointment/appointment.json
+++ b/erpnext/crm/doctype/appointment/appointment.json
@@ -102,7 +102,7 @@
   }
  ],
  "links": [],
- "modified": "2021-06-29 18:27:02.832979",
+ "modified": "2021-06-30 13:09:14.228756",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Appointment",
diff --git a/erpnext/crm/doctype/appointment/test_appointment.py b/erpnext/crm/doctype/appointment/test_appointment.py
index 50c98c5..c7563e9 100644
--- a/erpnext/crm/doctype/appointment/test_appointment.py
+++ b/erpnext/crm/doctype/appointment/test_appointment.py
@@ -9,7 +9,7 @@
 
 
 def create_test_lead():
-    test_lead = frappe.db.exists({'doctype': 'Lead', 'lead_name': 'Test Lead'})
+    test_lead = frappe.db.exists({'doctype': 'Lead', 'email_id':'test@example.com'})
     if test_lead:
         return frappe.get_doc('Lead', test_lead[0][0])
     test_lead = frappe.get_doc({
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/__init__.py b/erpnext/crm/doctype/campaign/__init__.py
similarity index 100%
rename from erpnext/erpnext_integrations/doctype/shopify_log/__init__.py
rename to erpnext/crm/doctype/campaign/__init__.py
diff --git a/erpnext/crm/doctype/campaign/campaign.js b/erpnext/crm/doctype/campaign/campaign.js
new file mode 100644
index 0000000..11bfa74
--- /dev/null
+++ b/erpnext/crm/doctype/campaign/campaign.js
@@ -0,0 +1,17 @@
+// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('Campaign', {
+	refresh: function(frm) {
+		erpnext.toggle_naming_series();
+
+		if (frm.doc.__islocal) {
+			frm.toggle_display("naming_series", frappe.boot.sysdefaults.campaign_naming_by=="Naming Series");
+		} else {
+			cur_frm.add_custom_button(__("View Leads"), function() {
+				frappe.route_options = {"source": "Campaign", "campaign_name": frm.doc.name};
+				frappe.set_route("List", "Lead");
+			}, "fa fa-list", true);
+		}
+	}
+});
diff --git a/erpnext/selling/doctype/campaign/campaign.json b/erpnext/crm/doctype/campaign/campaign.json
similarity index 95%
rename from erpnext/selling/doctype/campaign/campaign.json
rename to erpnext/crm/doctype/campaign/campaign.json
index 986ac13..f833f4c 100644
--- a/erpnext/selling/doctype/campaign/campaign.json
+++ b/erpnext/crm/doctype/campaign/campaign.json
@@ -1,4 +1,5 @@
 {
+ "actions": [],
  "allow_import": 1,
  "allow_rename": 1,
  "autoname": "naming_series:",
@@ -39,17 +40,9 @@
    "set_only_once": 1
   },
   {
-   "fieldname": "description",
-   "fieldtype": "Text",
-   "in_list_view": 1,
-   "label": "Description",
-   "oldfieldname": "description",
-   "oldfieldtype": "Text",
-   "width": "300px"
-  },
-  {
-   "fieldname": "description_section",
-   "fieldtype": "Section Break"
+   "fieldname": "campaign_schedules_section",
+   "fieldtype": "Section Break",
+   "label": "Campaign Schedules"
   },
   {
    "fieldname": "campaign_schedules",
@@ -58,16 +51,25 @@
    "options": "Campaign Email Schedule"
   },
   {
-   "fieldname": "campaign_schedules_section",
-   "fieldtype": "Section Break",
-   "label": "Campaign Schedules"
+   "fieldname": "description_section",
+   "fieldtype": "Section Break"
+  },
+  {
+   "fieldname": "description",
+   "fieldtype": "Text",
+   "in_list_view": 1,
+   "label": "Description",
+   "oldfieldname": "description",
+   "oldfieldtype": "Text",
+   "width": "300px"
   }
  ],
  "icon": "fa fa-bullhorn",
  "idx": 1,
- "modified": "2019-07-22 12:03:39.832342",
+ "links": [],
+ "modified": "2021-06-30 18:05:06.412712",
  "modified_by": "Administrator",
- "module": "Selling",
+ "module": "CRM",
  "name": "Campaign",
  "owner": "Administrator",
  "permissions": [
diff --git a/erpnext/selling/doctype/campaign/campaign.py b/erpnext/crm/doctype/campaign/campaign.py
similarity index 66%
rename from erpnext/selling/doctype/campaign/campaign.py
rename to erpnext/crm/doctype/campaign/campaign.py
index 1094542..e32799f 100644
--- a/erpnext/selling/doctype/campaign/campaign.py
+++ b/erpnext/crm/doctype/campaign/campaign.py
@@ -1,9 +1,7 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
 
-from __future__ import unicode_literals
 import frappe
-
 from frappe.model.document import Document
 from frappe.model.naming import set_name_by_naming_series
 
diff --git a/erpnext/crm/doctype/campaign/test_campaign.py b/erpnext/crm/doctype/campaign/test_campaign.py
new file mode 100644
index 0000000..7124b8c
--- /dev/null
+++ b/erpnext/crm/doctype/campaign/test_campaign.py
@@ -0,0 +1,8 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+
+# import frappe
+import unittest
+
+class TestCampaign(unittest.TestCase):
+	pass
diff --git a/erpnext/crm/doctype/lead/lead.js b/erpnext/crm/doctype/lead/lead.js
index 0c88d28..75af937 100644
--- a/erpnext/crm/doctype/lead/lead.js
+++ b/erpnext/crm/doctype/lead/lead.js
@@ -4,18 +4,19 @@
 frappe.provide("erpnext");
 cur_frm.email_field = "email_id";
 
-erpnext.LeadController = frappe.ui.form.Controller.extend({
-	setup: function () {
+erpnext.LeadController = class LeadController extends frappe.ui.form.Controller {
+	setup () {
 		this.frm.make_methods = {
 			'Customer': this.make_customer,
 			'Quotation': this.make_quotation,
 			'Opportunity': this.make_opportunity
 		};
 
-		this.frm.toggle_reqd("lead_name", !this.frm.doc.organization_lead);
-	},
+		// For avoiding integration issues.
+		this.frm.set_df_property('first_name', 'reqd', true);
+	}
 
-	onload: function () {
+	onload () {
 		this.frm.set_query("customer", function (doc, cdt, cdn) {
 			return { query: "erpnext.controllers.queries.customer_query" }
 		});
@@ -27,9 +28,9 @@
 		this.frm.set_query("contact_by", function (doc, cdt, cdn) {
 			return { query: "frappe.core.doctype.user.user.user_query" }
 		});
-	},
+	}
 
-	refresh: function () {
+	refresh () {
 		let doc = this.frm.doc;
 		erpnext.toggle_naming_series();
 		frappe.dynamic_link = { doc: doc, fieldname: 'name', doctype: 'Lead' }
@@ -42,50 +43,59 @@
 
 		if (!this.frm.is_new()) {
 			frappe.contacts.render_address_and_contact(this.frm);
+			cur_frm.trigger('render_contact_day_html');
 		} else {
 			frappe.contacts.clear_address_and_contact(this.frm);
 		}
-	},
+	}
 
-	make_customer: function () {
+	make_customer () {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.crm.doctype.lead.lead.make_customer",
 			frm: cur_frm
 		})
-	},
+	}
 
-	make_opportunity: function () {
+	make_opportunity () {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.crm.doctype.lead.lead.make_opportunity",
 			frm: cur_frm
 		})
-	},
+	}
 
-	make_quotation: function () {
+	make_quotation () {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.crm.doctype.lead.lead.make_quotation",
 			frm: cur_frm
 		})
-	},
+	}
 
-	organization_lead: function () {
-		this.frm.toggle_reqd("lead_name", !this.frm.doc.organization_lead);
-		this.frm.toggle_reqd("company_name", this.frm.doc.organization_lead);
-	},
-
-	company_name: function () {
-		if (this.frm.doc.organization_lead && !this.frm.doc.lead_name) {
+	company_name () {
+		if (!this.frm.doc.lead_name) {
 			this.frm.set_value("lead_name", this.frm.doc.company_name);
 		}
-	},
+	}
 
-	contact_date: function () {
+	contact_date () {
 		if (this.frm.doc.contact_date) {
 			let d = moment(this.frm.doc.contact_date);
 			d.add(1, "day");
 			this.frm.set_value("ends_on", d.format(frappe.defaultDatetimeFormat));
 		}
 	}
-});
 
-$.extend(cur_frm.cscript, new erpnext.LeadController({ frm: cur_frm }));
+	render_contact_day_html() {
+		if (cur_frm.doc.contact_date) {
+			let contact_date = frappe.datetime.obj_to_str(cur_frm.doc.contact_date);
+			let diff_days = frappe.datetime.get_day_diff(contact_date, frappe.datetime.get_today());
+			let color = diff_days > 0 ? "orange" : "green";
+			let message = diff_days > 0 ? __("Next Contact Date") : __("Last Contact Date");
+			let html = `<div class="col-xs-12">
+						<span class="indicator whitespace-nowrap ${color}"><span> ${message} : ${frappe.datetime.global_date_format(contact_date)}</span></span>
+					</div>` ;
+			cur_frm.dashboard.set_headline_alert(html);
+		}
+	}
+};
+
+extend_cscript(cur_frm.cscript, new erpnext.LeadController({ frm: cur_frm }));
diff --git a/erpnext/crm/doctype/lead/lead.json b/erpnext/crm/doctype/lead/lead.json
index 1b33fd7..542977e 100644
--- a/erpnext/crm/doctype/lead/lead.json
+++ b/erpnext/crm/doctype/lead/lead.json
@@ -9,71 +9,70 @@
  "email_append_to": 1,
  "engine": "InnoDB",
  "field_order": [
-  "organization_lead",
   "lead_details",
   "naming_series",
-  "lead_name",
-  "company_name",
-  "email_id",
-  "col_break123",
-  "lead_owner",
-  "status",
   "salutation",
+  "first_name",
+  "middle_name",
+  "last_name",
+  "lead_name",
+  "col_break123",
+  "status",
+  "company_name",
   "designation",
   "gender",
-  "source",
-  "customer",
-  "campaign_name",
-  "image",
-  "section_break_12",
-  "contact_by",
-  "column_break_14",
-  "contact_date",
-  "ends_on",
-  "notes_section",
-  "notes",
-  "address_info",
+  "contact_details_section",
+  "email_id",
+  "mobile_no",
+  "whatsapp_no",
+  "column_break_16",
+  "phone",
+  "phone_ext",
+  "additional_information_section",
+  "no_of_employees",
+  "industry",
+  "market_segment",
+  "column_break_22",
+  "fax",
+  "website",
+  "type",
+  "request_type",
+  "address_section",
   "address_html",
-  "address_type",
-  "address_title",
-  "address_line1",
-  "address_line2",
   "city",
+  "pincode",
   "county",
   "column_break2",
   "contact_html",
   "state",
   "country",
-  "pincode",
-  "contact_section",
-  "phone",
-  "mobile_no",
-  "fax",
-  "website",
-  "more_info",
-  "type",
-  "market_segment",
-  "industry",
-  "request_type",
-  "column_break3",
+  "section_break_12",
+  "lead_owner",
+  "ends_on",
+  "column_break_14",
+  "contact_by",
+  "contact_date",
+  "lead_source_details_section",
   "company",
   "territory",
   "language",
+  "column_break_50",
+  "source",
+  "campaign_name",
   "unsubscribed",
   "blog_subscriber",
+  "notes_section",
+  "notes",
+  "other_information_section",
+  "customer",
+  "image",
   "title"
  ],
  "fields": [
   {
-   "default": "0",
-   "fieldname": "organization_lead",
-   "fieldtype": "Check",
-   "label": "Lead is an Organization",
-   "set_only_once": 1
-  },
-  {
    "fieldname": "lead_details",
    "fieldtype": "Section Break",
+   "label": "Lead Details",
    "options": "fa fa-user"
   },
   {
@@ -90,16 +89,19 @@
    "fieldname": "lead_name",
    "fieldtype": "Data",
    "in_global_search": 1,
-   "label": "Person Name",
+   "label": "Full Name",
    "oldfieldname": "lead_name",
    "oldfieldtype": "Data",
+   "read_only": 1,
    "search_index": 1
   },
   {
    "fieldname": "company_name",
    "fieldtype": "Data",
    "in_list_view": 1,
+   "in_standard_filter": 1,
    "label": "Organization Name",
+   "mandatory_depends_on": "eval: !(doc.first_name)",
    "oldfieldname": "company_name",
    "oldfieldtype": "Data"
   },
@@ -121,7 +123,6 @@
    "default": "__user",
    "fieldname": "lead_owner",
    "fieldtype": "Link",
-   "in_list_view": 1,
    "label": "Lead Owner",
    "oldfieldname": "lead_owner",
    "oldfieldtype": "Link",
@@ -143,7 +144,6 @@
    "search_index": 1
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "salutation",
    "fieldtype": "Link",
    "label": "Salutation",
@@ -241,46 +241,22 @@
    "read_only": 1
   },
   {
-   "depends_on": "eval: doc.__islocal",
-   "description": "Home, Work, etc.",
-   "fieldname": "address_title",
-   "fieldtype": "Data",
-   "label": "Address Title"
-  },
-  {
-   "depends_on": "eval: doc.__islocal",
-   "fieldname": "address_line1",
-   "fieldtype": "Data",
-   "label": "Address Line 1",
-   "mandatory_depends_on": "eval: doc.address_title && doc.address_type"
-  },
-  {
-   "depends_on": "eval: doc.__islocal",
-   "fieldname": "address_line2",
-   "fieldtype": "Data",
-   "label": "Address Line 2"
-  },
-  {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "city",
    "fieldtype": "Data",
    "label": "City/Town",
    "mandatory_depends_on": "eval: doc.address_title && doc.address_type"
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "county",
    "fieldtype": "Data",
    "label": "County"
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "state",
    "fieldtype": "Data",
    "label": "State"
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "country",
    "fieldtype": "Link",
    "label": "Country",
@@ -288,7 +264,6 @@
    "options": "Country"
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "pincode",
    "fieldtype": "Data",
    "label": "Postal Code"
@@ -304,7 +279,6 @@
    "read_only": 1
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "phone",
    "fieldtype": "Data",
    "label": "Phone",
@@ -313,7 +287,6 @@
    "options": "Phone"
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "mobile_no",
    "fieldtype": "Data",
    "label": "Mobile No.",
@@ -322,7 +295,6 @@
    "options": "Phone"
   },
   {
-   "depends_on": "eval: doc.__islocal",
    "fieldname": "fax",
    "fieldtype": "Data",
    "label": "Fax",
@@ -330,14 +302,6 @@
    "oldfieldtype": "Data"
   },
   {
-   "collapsible": 1,
-   "fieldname": "more_info",
-   "fieldtype": "Section Break",
-   "label": "More Information",
-   "oldfieldtype": "Section Break",
-   "options": "fa fa-file-text"
-  },
-  {
    "fieldname": "type",
    "fieldtype": "Select",
    "label": "Lead Type",
@@ -370,12 +334,6 @@
    "options": "\nProduct Enquiry\nRequest for Information\nSuggestions\nOther"
   },
   {
-   "fieldname": "column_break3",
-   "fieldtype": "Column Break",
-   "oldfieldtype": "Column Break",
-   "width": "50%"
-  },
-  {
    "fieldname": "company",
    "fieldtype": "Link",
    "label": "Company",
@@ -389,11 +347,14 @@
    "fieldtype": "Data",
    "label": "Website",
    "oldfieldname": "website",
-   "oldfieldtype": "Data"
+   "oldfieldtype": "Data",
+   "options": "URL"
   },
   {
    "fieldname": "territory",
    "fieldtype": "Link",
+   "in_list_view": 1,
+   "in_standard_filter": 1,
    "label": "Territory",
    "oldfieldname": "territory",
    "oldfieldtype": "Link",
@@ -422,45 +383,95 @@
   {
    "fieldname": "designation",
    "fieldtype": "Link",
+   "in_list_view": 1,
+   "in_standard_filter": 1,
    "label": "Designation",
    "options": "Designation"
   },
   {
-   "collapsible": 1,
-   "collapsible_depends_on": "eval: doc.__islocal",
-   "fieldname": "address_info",
-   "fieldtype": "Section Break",
-   "label": "Address & Contact",
-   "oldfieldtype": "Column Break",
-   "options": "fa fa-map-marker"
-  },
-  {
-   "collapsible": 1,
-   "collapsible_depends_on": "eval: doc.__islocal",
-   "fieldname": "contact_section",
-   "fieldtype": "Section Break",
-   "label": "Contact"
-  },
-  {
-   "default": "Billing",
-   "depends_on": "eval: doc.__islocal",
-   "fieldname": "address_type",
-   "fieldtype": "Select",
-   "label": "Address Type",
-   "options": "Billing\nShipping\nOffice\nPersonal\nPlant\nPostal\nShop\nSubsidiary\nWarehouse\nCurrent\nPermanent\nOther"
-  },
-  {
    "fieldname": "language",
    "fieldtype": "Link",
    "label": "Print Language",
    "options": "Language"
+  },
+  {
+   "fieldname": "first_name",
+   "fieldtype": "Data",
+   "label": "First Name",
+   "mandatory_depends_on": "eval: !(doc.company_name)"
+  },
+  {
+   "fieldname": "middle_name",
+   "fieldtype": "Data",
+   "label": "Middle Name"
+  },
+  {
+   "fieldname": "last_name",
+   "fieldtype": "Data",
+   "label": "Last Name"
+  },
+  {
+   "collapsible": 1,
+   "fieldname": "additional_information_section",
+   "fieldtype": "Section Break",
+   "label": "Additional Information"
+  },
+  {
+   "fieldname": "no_of_employees",
+   "fieldtype": "Int",
+   "label": "No. of Employees"
+  },
+  {
+   "fieldname": "column_break_22",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "whatsapp_no",
+   "fieldtype": "Data",
+   "label": "WhatsApp No.",
+   "options": "Phone"
+  },
+  {
+   "collapsible": 1,
+   "depends_on": "eval: !doc.__islocal",
+   "fieldname": "address_section",
+   "fieldtype": "Section Break",
+   "label": "Address"
+  },
+  {
+   "fieldname": "lead_source_details_section",
+   "fieldtype": "Section Break",
+   "label": "Lead Source Details"
+  },
+  {
+   "fieldname": "column_break_50",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "other_information_section",
+   "fieldtype": "Section Break",
+   "label": "Other Information"
+  },
+  {
+   "fieldname": "contact_details_section",
+   "fieldtype": "Section Break",
+   "label": "Contact Details"
+  },
+  {
+   "fieldname": "column_break_16",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "phone_ext",
+   "fieldtype": "Data",
+   "label": "Phone Ext."
   }
  ],
  "icon": "fa fa-user",
  "idx": 5,
  "image_field": "image",
  "links": [],
- "modified": "2021-01-06 19:39:58.748978",
+ "modified": "2021-08-04 00:24:57.208590",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "Lead",
diff --git a/erpnext/crm/doctype/lead/lead.py b/erpnext/crm/doctype/lead/lead.py
index ce3de40..7f028cb 100644
--- a/erpnext/crm/doctype/lead/lead.py
+++ b/erpnext/crm/doctype/lead/lead.py
@@ -21,26 +21,24 @@
 		self.get("__onload").is_customer = customer
 		load_address_and_contact(self)
 
-	def before_insert(self):
-		if self.address_title and self.address_type:
-			self.address_doc = self.create_address()
-		self.contact_doc = self.create_contact()
-
-	def after_insert(self):
-		self.update_links()
-
 	def validate(self):
+		self.set_full_name()
 		self.set_lead_name()
 		self.set_title()
+		self.set_status()
+		self.check_email_id_is_unique()
+		self.validate_email_id()
+		self.validate_contact_date()
 		self._prev = frappe._dict({
 			"contact_date": frappe.db.get_value("Lead", self.name, "contact_date") if (not cint(self.is_new())) else None,
 			"ends_on": frappe.db.get_value("Lead", self.name, "ends_on") if (not cint(self.is_new())) else None,
 			"contact_by": frappe.db.get_value("Lead", self.name, "contact_by") if (not cint(self.is_new())) else None,
 		})
+		
+	def set_full_name(self):
+		self.lead_name = " ".join(filter(None, [self.first_name, self.middle_name, self.last_name]))
 
-		self.set_status()
-		self.check_email_id_is_unique()
-
+	def validate_email_id(self):
 		if self.email_id:
 			if not self.flags.ignore_email_validation:
 				validate_email_address(self.email_id, throw=True)
@@ -54,6 +52,7 @@
 			if self.is_new() or not self.image:
 				self.image = has_gravatar(self.email_id)
 
+	def validate_contact_date(self):
 		if self.contact_date and getdate(self.contact_date) < getdate(nowdate()):
 			frappe.throw(_("Next Contact Date cannot be in the past"))
 
@@ -64,6 +63,22 @@
 	def on_update(self):
 		self.add_calendar_event()
 
+	def before_insert(self):
+		self.contact_doc = self.create_contact()
+
+	def after_insert(self):
+		self.update_links()
+
+	def update_links(self):
+		# update contact links
+		if self.contact_doc:
+			self.contact_doc.append("links", {
+				"link_doctype": "Lead",
+				"link_name": self.name,
+				"link_title": self.lead_name
+			})
+			self.contact_doc.save()
+
 	def add_calendar_event(self, opts=None, force=False):
 		super(Lead, self).add_calendar_event({
 			"owner": self.lead_owner,
@@ -86,8 +101,26 @@
 	def on_trash(self):
 		frappe.db.sql("""update `tabIssue` set lead='' where lead=%s""", self.name)
 
+		self.unlink_dynamic_links()
 		self.delete_events()
 
+	def unlink_dynamic_links(self):
+		links = frappe.get_all('Dynamic Link', filters={'link_doctype': self.doctype, 'link_name': self.name}, fields=['parent', 'parenttype'])
+
+		for link in links:
+			linked_doc = frappe.get_doc(link['parenttype'], link['parent'])
+
+			if len(linked_doc.get('links')) == 1:
+				linked_doc.delete(ignore_permissions=True)
+			else:
+				to_remove = None
+				for d in linked_doc.get('links'):
+					if d.link_doctype == self.doctype and d.link_name == self.name:
+						to_remove = d
+				if to_remove:
+					linked_doc.remove(to_remove)
+					linked_doc.save(ignore_permissions=True)
+
 	def has_customer(self):
 		return frappe.db.get_value("Customer", {"lead_name": self.name})
 
@@ -99,7 +132,6 @@
 			"party_name": self.name,
 			"docstatus": 1,
 			"status": ["!=", "Lost"]
-
 		})
 
 	def has_lost_quotation(self):
@@ -120,40 +152,17 @@
 				self.lead_name = self.email_id.split("@")[0]
 
 	def set_title(self):
-		if self.organization_lead:
-			self.title = self.company_name
-		else:
-			self.title = self.lead_name
-
-	def create_address(self):
-		address_fields = ["address_type", "address_title", "address_line1", "address_line2",
-			"city", "county", "state", "country", "pincode"]
-		info_fields = ["email_id", "phone", "fax"]
-
-		# do not create an address if no fields are available,
-		# skipping country since the system auto-sets it from system defaults
-		address = frappe.new_doc("Address")
-
-		address.update({addr_field: self.get(addr_field) for addr_field in address_fields})
-		address.update({info_field: self.get(info_field) for info_field in info_fields})
-		address.insert()
-
-		return address
+		self.title = self.company_name or self.lead_name
 
 	def create_contact(self):
 		if not self.lead_name:
+			self.set_full_name()
 			self.set_lead_name()
 
-		names = self.lead_name.strip().split(" ")
-		if len(names) > 1:
-			first_name, last_name = names[0], " ".join(names[1:])
-		else:
-			first_name, last_name = self.lead_name, None
-
 		contact = frappe.new_doc("Contact")
 		contact.update({
-			"first_name": first_name,
-			"last_name": last_name,
+			"first_name": self.first_name or self.lead_name,
+			"last_name": self.last_name,
 			"salutation": self.salutation,
 			"gender": self.gender,
 			"designation": self.designation,
@@ -181,25 +190,6 @@
 
 		return contact
 
-	def update_links(self):
-		# update address links
-		if hasattr(self, 'address_doc'):
-			self.address_doc.append("links", {
-				"link_doctype": "Lead",
-				"link_name": self.name,
-				"link_title": self.lead_name
-			})
-			self.address_doc.save()
-
-		# update contact links
-		if self.contact_doc:
-			self.contact_doc.append("links", {
-				"link_doctype": "Lead",
-				"link_name": self.name,
-				"link_title": self.lead_name
-			})
-			self.contact_doc.save()
-
 @frappe.whitelist()
 def make_customer(source_name, target_doc=None):
 	return _make_customer(source_name, target_doc)
diff --git a/erpnext/crm/doctype/lead/test_lead.py b/erpnext/crm/doctype/lead/test_lead.py
index d428a45..d4886d3 100644
--- a/erpnext/crm/doctype/lead/test_lead.py
+++ b/erpnext/crm/doctype/lead/test_lead.py
@@ -4,6 +4,7 @@
 from __future__ import unicode_literals
 
 import frappe
+from frappe.utils import random_string
 import unittest
 
 test_records = frappe.get_test_records('Lead')
@@ -32,3 +33,53 @@
 		customer.company = "_Test Company"
 		customer.customer_group = "_Test Customer Group"
 		customer.insert()
+
+	def test_create_lead_and_unlinking_dynamic_links(self):
+		lead_doc = make_lead(first_name = "Lorem", last_name="Ipsum", email_id="lorem_ipsum@example.com")
+		lead_doc_1 = make_lead()
+		frappe.get_doc({
+			"doctype": "Address",
+			"address_type": "Billing",
+			"city": "Mumbai",
+			"address_line1": "Vidya Vihar West",
+			"country": "India",
+			"links": [{
+				"link_doctype": "Lead",
+				"link_name": lead_doc.name
+			}]
+		}).insert()
+
+		address_1 = frappe.get_doc({
+			"doctype": "Address",
+			"address_type": "Billing",
+			"address_line1": "Baner",
+			"city": "Pune",
+			"country": "India",
+			"links": [
+				{
+					"link_doctype": "Lead",
+					"link_name": lead_doc.name
+				},
+				{
+					"link_doctype": "Lead",
+					"link_name": lead_doc_1.name
+				}
+			]
+		}).insert()
+
+		lead_doc.delete()
+		address_1.reload()
+		self.assertEqual(frappe.db.exists("Lead",lead_doc.name), None)
+		self.assertEqual(len(address_1.get('links')), 1)
+
+def make_lead(**args):
+	args = frappe._dict(args)
+
+	lead_doc = frappe.get_doc({
+		"doctype": "Lead",
+		"first_name": args.first_name or "_Test",
+		"last_name": args.last_name or "Lead",
+		"email_id": args.email_id or "new_lead_{}@example.com".format(random_string(5)),
+	}).insert()
+
+	return lead_doc
\ No newline at end of file
diff --git a/erpnext/crm/doctype/lead/test_records.json b/erpnext/crm/doctype/lead/test_records.json
index 39864e2..3158add 100644
--- a/erpnext/crm/doctype/lead/test_records.json
+++ b/erpnext/crm/doctype/lead/test_records.json
@@ -27,7 +27,6 @@
 {
  "doctype": "Lead",
  "email_id": "test_lead4@example.com",
- "organization_lead": 1,
  "lead_name": "_Test Lead 4",
  "company_name": "_Test Lead 4",
  "status": "Open"
diff --git a/erpnext/crm/doctype/lead/tests/test_lead_organization.js b/erpnext/crm/doctype/lead/tests/test_lead_organization.js
index 4395935..7fb9573 100644
--- a/erpnext/crm/doctype/lead/tests/test_lead_organization.js
+++ b/erpnext/crm/doctype/lead/tests/test_lead_organization.js
@@ -9,7 +9,6 @@
 		() => frappe.set_route("List", "Lead"),
 		() => frappe.new_doc("Lead"),
 		() => frappe.timeout(1),
-		() => cur_frm.set_value("organization_lead", "1"),
 		() => cur_frm.set_value("company_name", lead_name),
 		() => cur_frm.save(),
 		() => frappe.timeout(1),
diff --git a/erpnext/crm/doctype/opportunity/opportunity.js b/erpnext/crm/doctype/opportunity/opportunity.js
index 089a63f..e9a7a95 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.js
+++ b/erpnext/crm/doctype/opportunity/opportunity.js
@@ -147,8 +147,8 @@
 })
 
 // TODO commonify this code
-erpnext.crm.Opportunity = frappe.ui.form.Controller.extend({
-	onload: function() {
+erpnext.crm.Opportunity = class Opportunity extends frappe.ui.form.Controller {
+	onload() {
 
 		if(!this.frm.doc.status) {
 			frm.set_value('status', 'Open');
@@ -161,9 +161,9 @@
 		}
 
 		this.setup_queries();
-	},
+	}
 
-	setup_queries: function() {
+	setup_queries() {
 		var me = this;
 
 		if(this.frm.fields_dict.contact_by.df.options.match(/^User/)) {
@@ -187,17 +187,17 @@
 		else if (me.frm.doc.opportunity_from == "Customer") {
 			me.frm.set_query('party_name', erpnext.queries['customer']);
 		}
-	},
+	}
 
-	create_quotation: function() {
+	create_quotation() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.crm.doctype.opportunity.opportunity.make_quotation",
 			frm: cur_frm
 		})
 	}
-});
+};
 
-$.extend(cur_frm.cscript, new erpnext.crm.Opportunity({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.crm.Opportunity({frm: cur_frm}));
 
 cur_frm.cscript.item_code = function(doc, cdt, cdn) {
 	var d = locals[cdt][cdn];
@@ -215,4 +215,4 @@
 			}
 		})
 	}
-}
\ No newline at end of file
+}
diff --git a/erpnext/crm/workspace/crm/crm.json b/erpnext/crm/workspace/crm/crm.json
index b4fb7d8..c363395 100644
--- a/erpnext/crm/workspace/crm/crm.json
+++ b/erpnext/crm/workspace/crm/crm.json
@@ -1,26 +1,31 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Territory Wise Sales"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"CRM\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": null, \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Lead\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Opportunity\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Customer\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Sales Analytics\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Sales Pipeline\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Maintenance\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Campaign\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}]",
  "creation": "2020-01-23 14:48:30.183272",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "crm",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "CRM",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Pipeline",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -29,6 +34,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lead",
+   "link_count": 0,
    "link_to": "Lead",
    "link_type": "DocType",
    "onboard": 1,
@@ -39,6 +45,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Opportunity",
+   "link_count": 0,
    "link_to": "Opportunity",
    "link_type": "DocType",
    "onboard": 1,
@@ -49,6 +56,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer",
+   "link_count": 0,
    "link_to": "Customer",
    "link_type": "DocType",
    "onboard": 1,
@@ -59,6 +67,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Contact",
+   "link_count": 0,
    "link_to": "Contact",
    "link_type": "DocType",
    "onboard": 1,
@@ -69,6 +78,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Communication",
+   "link_count": 0,
    "link_to": "Communication",
    "link_type": "DocType",
    "onboard": 0,
@@ -79,6 +89,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lead Source",
+   "link_count": 0,
    "link_to": "Lead Source",
    "link_type": "DocType",
    "onboard": 0,
@@ -89,6 +100,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Contract",
+   "link_count": 0,
    "link_to": "Contract",
    "link_type": "DocType",
    "onboard": 0,
@@ -99,6 +111,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Appointment",
+   "link_count": 0,
    "link_to": "Appointment",
    "link_type": "DocType",
    "onboard": 0,
@@ -109,6 +122,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Newsletter",
+   "link_count": 0,
    "link_to": "Newsletter",
    "link_type": "DocType",
    "onboard": 0,
@@ -118,6 +132,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -126,6 +141,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Lead Details",
+   "link_count": 0,
    "link_to": "Lead Details",
    "link_type": "Report",
    "onboard": 1,
@@ -136,6 +152,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Funnel",
+   "link_count": 0,
    "link_to": "sales-funnel",
    "link_type": "Page",
    "onboard": 1,
@@ -146,6 +163,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Prospects Engaged But Not Converted",
+   "link_count": 0,
    "link_to": "Prospects Engaged But Not Converted",
    "link_type": "Report",
    "onboard": 1,
@@ -156,6 +174,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "First Response Time for Opportunity",
+   "link_count": 0,
    "link_to": "First Response Time for Opportunity",
    "link_type": "Report",
    "onboard": 0,
@@ -166,6 +185,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Inactive Customers",
+   "link_count": 0,
    "link_to": "Inactive Customers",
    "link_type": "Report",
    "onboard": 0,
@@ -176,6 +196,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Campaign Efficiency",
+   "link_count": 0,
    "link_to": "Campaign Efficiency",
    "link_type": "Report",
    "onboard": 0,
@@ -186,6 +207,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Lead Owner Efficiency",
+   "link_count": 0,
    "link_to": "Lead Owner Efficiency",
    "link_type": "Report",
    "onboard": 0,
@@ -195,6 +217,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -203,6 +226,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance Schedule",
+   "link_count": 0,
    "link_to": "Maintenance Schedule",
    "link_type": "DocType",
    "onboard": 1,
@@ -213,6 +237,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance Visit",
+   "link_count": 0,
    "link_to": "Maintenance Visit",
    "link_type": "DocType",
    "onboard": 0,
@@ -223,6 +248,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Warranty Claim",
+   "link_count": 0,
    "link_to": "Warranty Claim",
    "link_type": "DocType",
    "onboard": 0,
@@ -232,6 +258,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Campaign",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -240,6 +267,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Campaign",
+   "link_count": 0,
    "link_to": "Campaign",
    "link_type": "DocType",
    "onboard": 0,
@@ -250,6 +278,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Email Campaign",
+   "link_count": 0,
    "link_to": "Email Campaign",
    "link_type": "DocType",
    "onboard": 0,
@@ -260,6 +289,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Social Media Post",
+   "link_count": 0,
    "link_to": "Social Media Post",
    "link_type": "DocType",
    "onboard": 0,
@@ -269,6 +299,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -277,6 +308,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer Group",
+   "link_count": 0,
    "link_to": "Customer Group",
    "link_type": "DocType",
    "onboard": 1,
@@ -287,6 +319,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Territory",
+   "link_count": 0,
    "link_to": "Territory",
    "link_type": "DocType",
    "onboard": 1,
@@ -297,6 +330,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Person",
+   "link_count": 0,
    "link_to": "Sales Person",
    "link_type": "DocType",
    "onboard": 1,
@@ -307,6 +341,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "SMS Center",
+   "link_count": 0,
    "link_to": "SMS Center",
    "link_type": "DocType",
    "onboard": 0,
@@ -317,6 +352,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "SMS Log",
+   "link_count": 0,
    "link_to": "SMS Log",
    "link_type": "DocType",
    "onboard": 0,
@@ -327,6 +363,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "SMS Settings",
+   "link_count": 0,
    "link_to": "SMS Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -337,6 +374,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Email Group",
+   "link_count": 0,
    "link_to": "Email Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -347,6 +385,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Twitter Settings",
+   "link_count": 0,
    "link_to": "Twitter Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -357,20 +396,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "LinkedIn Settings",
+   "link_count": 0,
    "link_to": "LinkedIn Settings",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:36.871352",
+ "modified": "2021-08-05 12:15:56.913091",
  "modified_by": "Administrator",
  "module": "CRM",
  "name": "CRM",
  "onboarding": "CRM",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 7,
  "shortcuts": [
   {
    "color": "Blue",
@@ -403,5 +448,6 @@
    "link_to": "CRM",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "CRM"
 }
\ No newline at end of file
diff --git a/erpnext/education/doctype/course_enrollment/course_enrollment.py b/erpnext/education/doctype/course_enrollment/course_enrollment.py
index 2b3acf1..ce88990 100644
--- a/erpnext/education/doctype/course_enrollment/course_enrollment.py
+++ b/erpnext/education/doctype/course_enrollment/course_enrollment.py
@@ -91,4 +91,4 @@
 	if activity:
 		return activity[0].name
 	else:
-		return None
\ No newline at end of file
+		return None
diff --git a/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
index b59d848..68e7780 100644
--- a/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
+++ b/erpnext/education/doctype/student_attendance_tool/student_attendance_tool.js
@@ -72,8 +72,8 @@
 });
 
 
-education.StudentsEditor = Class.extend({
-	init: function(frm, wrapper, students) {
+education.StudentsEditor = class StudentsEditor {
+	constructor(frm, wrapper, students) {
 		this.wrapper = wrapper;
 		this.frm = frm;
 		if(students.length > 0) {
@@ -81,8 +81,8 @@
 		} else {
 			this.show_empty_state();
 		}
-	},
-	make: function(frm, students) {
+	}
+	make(frm, students) {
 		var me = this;
 
 		$(this.wrapper).empty();
@@ -173,13 +173,13 @@
 		});
 
 		$(htmls.join("")).appendTo(me.wrapper);
-	},
+	}
 
-	show_empty_state: function() {
+	show_empty_state() {
 		$(this.wrapper).html(
 			`<div class="text-center text-muted" style="line-height: 100px;">
 				${__("No Students in")} ${this.frm.doc.student_group}
 			</div>`
 		);
 	}
-});
+};
diff --git a/erpnext/education/workspace/education/education.json b/erpnext/education/workspace/education/education.json
index bf74961..c58ddd6 100644
--- a/erpnext/education/workspace/education/education.json
+++ b/erpnext/education/workspace/education/education.json
@@ -1,27 +1,32 @@
 {
- "category": "Domains",
+ "category": "",
  "charts": [
   {
    "chart_name": "Program Enrollments",
    "label": "Program Enrollments"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Education\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Program Enrollments\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Student\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Instructor\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Program\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Course\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Fees\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Student Monthly Attendance Sheet\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Course Scheduling Tool\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Student Attendance Tool\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Student and Instructor\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Masters\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Content Masters\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Admission\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Fees\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Schedule\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Attendance\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"LMS Activity\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Assessment\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Assessment Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Tools\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Other Reports\", \"col\": 4}}]",
  "creation": "2020-03-02 17:22:57.066401",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "education",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Education",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student and Instructor",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -30,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student",
+   "link_count": 0,
    "link_to": "Student",
    "link_type": "DocType",
    "onboard": 1,
@@ -40,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Instructor",
+   "link_count": 0,
    "link_to": "Instructor",
    "link_type": "DocType",
    "onboard": 1,
@@ -50,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Guardian",
+   "link_count": 0,
    "link_to": "Guardian",
    "link_type": "DocType",
    "onboard": 0,
@@ -60,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Group",
+   "link_count": 0,
    "link_to": "Student Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -70,6 +79,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Log",
+   "link_count": 0,
    "link_to": "Student Log",
    "link_type": "DocType",
    "onboard": 0,
@@ -79,6 +89,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Masters",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -87,6 +98,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Program",
+   "link_count": 0,
    "link_to": "Program",
    "link_type": "DocType",
    "onboard": 0,
@@ -97,6 +109,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course",
+   "link_count": 0,
    "link_to": "Course",
    "link_type": "DocType",
    "onboard": 1,
@@ -107,6 +120,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Topic",
+   "link_count": 0,
    "link_to": "Topic",
    "link_type": "DocType",
    "onboard": 0,
@@ -117,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Room",
+   "link_count": 0,
    "link_to": "Room",
    "link_type": "DocType",
    "onboard": 1,
@@ -126,6 +141,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Content Masters",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -134,6 +150,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Article",
+   "link_count": 0,
    "link_to": "Article",
    "link_type": "DocType",
    "onboard": 0,
@@ -144,6 +161,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Video",
+   "link_count": 0,
    "link_to": "Video",
    "link_type": "DocType",
    "onboard": 0,
@@ -154,6 +172,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quiz",
+   "link_count": 0,
    "link_to": "Quiz",
    "link_type": "DocType",
    "onboard": 0,
@@ -163,6 +182,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -171,6 +191,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Education Settings",
+   "link_count": 0,
    "link_to": "Education Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -181,6 +202,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Category",
+   "link_count": 0,
    "link_to": "Student Category",
    "link_type": "DocType",
    "onboard": 0,
@@ -191,6 +213,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Batch Name",
+   "link_count": 0,
    "link_to": "Student Batch Name",
    "link_type": "DocType",
    "onboard": 0,
@@ -201,6 +224,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Grading Scale",
+   "link_count": 0,
    "link_to": "Grading Scale",
    "link_type": "DocType",
    "onboard": 1,
@@ -211,6 +235,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Academic Term",
+   "link_count": 0,
    "link_to": "Academic Term",
    "link_type": "DocType",
    "onboard": 0,
@@ -221,6 +246,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Academic Year",
+   "link_count": 0,
    "link_to": "Academic Year",
    "link_type": "DocType",
    "onboard": 0,
@@ -230,6 +256,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Admission",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -238,6 +265,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Applicant",
+   "link_count": 0,
    "link_to": "Student Applicant",
    "link_type": "DocType",
    "onboard": 0,
@@ -248,6 +276,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Admission",
+   "link_count": 0,
    "link_to": "Student Admission",
    "link_type": "DocType",
    "onboard": 0,
@@ -258,6 +287,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Program Enrollment",
+   "link_count": 0,
    "link_to": "Program Enrollment",
    "link_type": "DocType",
    "onboard": 0,
@@ -268,6 +298,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course Enrollment",
+   "link_count": 0,
    "link_to": "Course Enrollment",
    "link_type": "DocType",
    "onboard": 0,
@@ -277,6 +308,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fees",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -285,6 +317,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fee Structure",
+   "link_count": 0,
    "link_to": "Fee Structure",
    "link_type": "DocType",
    "onboard": 0,
@@ -295,6 +328,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fee Category",
+   "link_count": 0,
    "link_to": "Fee Category",
    "link_type": "DocType",
    "onboard": 0,
@@ -305,6 +339,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fee Schedule",
+   "link_count": 0,
    "link_to": "Fee Schedule",
    "link_type": "DocType",
    "onboard": 0,
@@ -315,6 +350,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fees",
+   "link_count": 0,
    "link_to": "Fees",
    "link_type": "DocType",
    "onboard": 0,
@@ -325,6 +361,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Student Fee Collection Report",
+   "link_count": 0,
    "link_to": "Student Fee Collection",
    "link_type": "Report",
    "onboard": 0,
@@ -335,6 +372,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Program wise Fee Collection Report",
+   "link_count": 0,
    "link_to": "Program wise Fee Collection",
    "link_type": "Report",
    "onboard": 0,
@@ -344,6 +382,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Schedule",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -352,6 +391,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course Schedule",
+   "link_count": 0,
    "link_to": "Course Schedule",
    "link_type": "DocType",
    "onboard": 0,
@@ -362,6 +402,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course Scheduling Tool",
+   "link_count": 0,
    "link_to": "Course Scheduling Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -371,6 +412,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Attendance",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -379,6 +421,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Attendance",
+   "link_count": 0,
    "link_to": "Student Attendance",
    "link_type": "DocType",
    "onboard": 0,
@@ -389,6 +432,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Leave Application",
+   "link_count": 0,
    "link_to": "Student Leave Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -399,6 +443,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Student Monthly Attendance Sheet",
+   "link_count": 0,
    "link_to": "Student Monthly Attendance Sheet",
    "link_type": "Report",
    "onboard": 0,
@@ -409,6 +454,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Absent Student Report",
+   "link_count": 0,
    "link_to": "Absent Student Report",
    "link_type": "Report",
    "onboard": 0,
@@ -419,6 +465,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Student Batch-Wise Attendance",
+   "link_count": 0,
    "link_to": "Student Batch-Wise Attendance",
    "link_type": "Report",
    "onboard": 0,
@@ -428,6 +475,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "LMS Activity",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -436,6 +484,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course Enrollment",
+   "link_count": 0,
    "link_to": "Course Enrollment",
    "link_type": "DocType",
    "onboard": 0,
@@ -446,6 +495,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course Activity",
+   "link_count": 0,
    "link_to": "Course Activity",
    "link_type": "DocType",
    "onboard": 0,
@@ -456,6 +506,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quiz Activity",
+   "link_count": 0,
    "link_to": "Quiz Activity",
    "link_type": "DocType",
    "onboard": 0,
@@ -465,6 +516,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -473,6 +525,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment Plan",
+   "link_count": 0,
    "link_to": "Assessment Plan",
    "link_type": "DocType",
    "onboard": 0,
@@ -483,6 +536,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment Group",
+   "link_count": 0,
    "link_to": "Assessment Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -493,6 +547,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment Result",
+   "link_count": 0,
    "link_to": "Assessment Result",
    "link_type": "DocType",
    "onboard": 0,
@@ -503,6 +558,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment Criteria",
+   "link_count": 0,
    "link_to": "Assessment Criteria",
    "link_type": "DocType",
    "onboard": 0,
@@ -512,6 +568,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -520,6 +577,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Course wise Assessment Report",
+   "link_count": 0,
    "link_to": "Course wise Assessment Report",
    "link_type": "Report",
    "onboard": 0,
@@ -530,6 +588,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Final Assessment Grades",
+   "link_count": 0,
    "link_to": "Final Assessment Grades",
    "link_type": "Report",
    "onboard": 0,
@@ -540,6 +599,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Assessment Plan Status",
+   "link_count": 0,
    "link_to": "Assessment Plan Status",
    "link_type": "Report",
    "onboard": 0,
@@ -550,6 +610,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Report Generation Tool",
+   "link_count": 0,
    "link_to": "Student Report Generation Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -559,6 +620,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tools",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -567,6 +629,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Attendance Tool",
+   "link_count": 0,
    "link_to": "Student Attendance Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -577,6 +640,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Assessment Result Tool",
+   "link_count": 0,
    "link_to": "Assessment Result Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -587,6 +651,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Student Group Creation Tool",
+   "link_count": 0,
    "link_to": "Student Group Creation Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -597,6 +662,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Program Enrollment Tool",
+   "link_count": 0,
    "link_to": "Program Enrollment Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -607,6 +673,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Course Scheduling Tool",
+   "link_count": 0,
    "link_to": "Course Scheduling Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -616,6 +683,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Other Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -624,21 +692,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Student and Guardian Contact Details",
+   "link_count": 0,
    "link_to": "Student and Guardian Contact Details",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:37.448989",
+ "modified": "2021-08-05 12:15:57.929275",
  "modified_by": "Administrator",
  "module": "Education",
  "name": "Education",
  "onboarding": "Education",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
  "restrict_to_domain": "Education",
+ "roles": [],
+ "sequence_id": 9,
  "shortcuts": [
   {
    "color": "Grey",
@@ -697,5 +770,6 @@
    "link_to": "Education",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Education"
 }
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/connectors/shopify_connection.py b/erpnext/erpnext_integrations/connectors/shopify_connection.py
deleted file mode 100644
index 5d5b2e1..0000000
--- a/erpnext/erpnext_integrations/connectors/shopify_connection.py
+++ /dev/null
@@ -1,353 +0,0 @@
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-import json
-from frappe.utils import cstr, cint, nowdate, getdate, flt, get_request_session, get_datetime
-from erpnext.erpnext_integrations.utils import validate_webhooks_request
-from erpnext.selling.doctype.sales_order.sales_order import make_delivery_note, make_sales_invoice
-from erpnext.erpnext_integrations.doctype.shopify_settings.sync_product import sync_item_from_shopify
-from erpnext.erpnext_integrations.doctype.shopify_settings.sync_customer import create_customer
-from erpnext.erpnext_integrations.doctype.shopify_log.shopify_log import make_shopify_log, dump_request_data
-from erpnext.erpnext_integrations.doctype.shopify_settings.shopify_settings import get_shopify_url, get_header
-
-@frappe.whitelist(allow_guest=True)
-@validate_webhooks_request("Shopify Settings", 'X-Shopify-Hmac-Sha256', secret_key='shared_secret')
-def store_request_data(order=None, event=None):
-	if frappe.request:
-		order = json.loads(frappe.request.data)
-		event = frappe.request.headers.get('X-Shopify-Topic')
-
-	dump_request_data(order, event)
-
-def sync_sales_order(order, request_id=None, old_order_sync=False):
-	frappe.set_user('Administrator')
-	shopify_settings = frappe.get_doc("Shopify Settings")
-	frappe.flags.request_id = request_id
-
-	if not frappe.db.get_value("Sales Order", filters={"shopify_order_id": cstr(order['id'])}):
-		try:
-			validate_customer(order, shopify_settings)
-			validate_item(order, shopify_settings)
-			create_order(order, shopify_settings, old_order_sync=old_order_sync)
-		except Exception as e:
-			make_shopify_log(status="Error", exception=e)
-
-		else:
-			make_shopify_log(status="Success")
-
-def prepare_sales_invoice(order, request_id=None):
-	frappe.set_user('Administrator')
-	shopify_settings = frappe.get_doc("Shopify Settings")
-	frappe.flags.request_id = request_id
-
-	try:
-		sales_order = get_sales_order(cstr(order['id']))
-		if sales_order:
-			create_sales_invoice(order, shopify_settings, sales_order)
-			make_shopify_log(status="Success")
-	except Exception as e:
-		make_shopify_log(status="Error", exception=e, rollback=True)
-
-def prepare_delivery_note(order, request_id=None):
-	frappe.set_user('Administrator')
-	shopify_settings = frappe.get_doc("Shopify Settings")
-	frappe.flags.request_id = request_id
-
-	try:
-		sales_order = get_sales_order(cstr(order['id']))
-		if sales_order:
-			create_delivery_note(order, shopify_settings, sales_order)
-		make_shopify_log(status="Success")
-	except Exception as e:
-		make_shopify_log(status="Error", exception=e, rollback=True)
-
-def get_sales_order(shopify_order_id):
-	sales_order = frappe.db.get_value("Sales Order", filters={"shopify_order_id": shopify_order_id})
-	if sales_order:
-		so = frappe.get_doc("Sales Order", sales_order)
-		return so
-
-def validate_customer(order, shopify_settings):
-	customer_id = order.get("customer", {}).get("id")
-	if customer_id:
-		if not frappe.db.get_value("Customer", {"shopify_customer_id": customer_id}, "name"):
-			create_customer(order.get("customer"), shopify_settings)
-
-def validate_item(order, shopify_settings):
-	for item in order.get("line_items"):
-		if item.get("product_id") and not frappe.db.get_value("Item", {"shopify_product_id": item.get("product_id")}, "name"):
-			sync_item_from_shopify(shopify_settings, item)
-
-def create_order(order, shopify_settings, old_order_sync=False, company=None):
-	so = create_sales_order(order, shopify_settings, company)
-	if so:
-		if order.get("financial_status") == "paid":
-			create_sales_invoice(order, shopify_settings, so, old_order_sync=old_order_sync)
-
-		if order.get("fulfillments") and not old_order_sync:
-			create_delivery_note(order, shopify_settings, so)
-
-def create_sales_order(shopify_order, shopify_settings, company=None):
-	product_not_exists = []
-	customer = frappe.db.get_value("Customer", {"shopify_customer_id": shopify_order.get("customer", {}).get("id")}, "name")
-	so = frappe.db.get_value("Sales Order", {"shopify_order_id": shopify_order.get("id")}, "name")
-
-	if not so:
-		items = get_order_items(shopify_order.get("line_items"), shopify_settings, getdate(shopify_order.get('created_at')))
-
-		if not items:
-			message = 'Following items exists in the shopify order but relevant records were not found in the shopify Product master'
-			message += "\n" + ", ".join(product_not_exists)
-
-			make_shopify_log(status="Error", exception=message, rollback=True)
-
-			return ''
-
-		so = frappe.get_doc({
-			"doctype": "Sales Order",
-			"naming_series": shopify_settings.sales_order_series or "SO-Shopify-",
-			"shopify_order_id": shopify_order.get("id"),
-			"shopify_order_number": shopify_order.get("name"),
-			"customer": customer or shopify_settings.default_customer,
-			"transaction_date": getdate(shopify_order.get("created_at")) or nowdate(),
-			"delivery_date": getdate(shopify_order.get("created_at")) or nowdate(),
-			"company": shopify_settings.company,
-			"selling_price_list": shopify_settings.price_list,
-			"ignore_pricing_rule": 1,
-			"items": items,
-			"taxes": get_order_taxes(shopify_order, shopify_settings),
-			"apply_discount_on": "Grand Total",
-			"discount_amount": get_discounted_amount(shopify_order),
-		})
-
-		if company:
-			so.update({
-				"company": company,
-				"status": "Draft"
-			})
-		so.flags.ignore_mandatory = True
-		so.save(ignore_permissions=True)
-		so.submit()
-
-	else:
-		so = frappe.get_doc("Sales Order", so)
-
-	frappe.db.commit()
-	return so
-
-def create_sales_invoice(shopify_order, shopify_settings, so, old_order_sync=False):
-	if not frappe.db.get_value("Sales Invoice", {"shopify_order_id": shopify_order.get("id")}, "name")\
-		and so.docstatus==1 and not so.per_billed and cint(shopify_settings.sync_sales_invoice):
-
-		if old_order_sync:
-			posting_date = getdate(shopify_order.get('created_at'))
-		else:
-			posting_date = nowdate()
-
-		si = make_sales_invoice(so.name, ignore_permissions=True)
-		si.shopify_order_id = shopify_order.get("id")
-		si.shopify_order_number = shopify_order.get("name")
-		si.set_posting_time = 1
-		si.posting_date = posting_date
-		si.due_date = posting_date
-		si.naming_series = shopify_settings.sales_invoice_series or "SI-Shopify-"
-		si.flags.ignore_mandatory = True
-		set_cost_center(si.items, shopify_settings.cost_center)
-		si.insert(ignore_mandatory=True)
-		si.submit()
-		make_payament_entry_against_sales_invoice(si, shopify_settings, posting_date)
-		frappe.db.commit()
-
-def set_cost_center(items, cost_center):
-	for item in items:
-		item.cost_center = cost_center
-
-def make_payament_entry_against_sales_invoice(doc, shopify_settings, posting_date=None):
-	from erpnext.accounts.doctype.payment_entry.payment_entry import get_payment_entry
-	payment_entry = get_payment_entry(doc.doctype, doc.name, bank_account=shopify_settings.cash_bank_account)
-	payment_entry.flags.ignore_mandatory = True
-	payment_entry.reference_no = doc.name
-	payment_entry.posting_date = posting_date or nowdate()
-	payment_entry.reference_date = posting_date or nowdate()
-	payment_entry.insert(ignore_permissions=True)
-	payment_entry.submit()
-
-def create_delivery_note(shopify_order, shopify_settings, so):
-	if not cint(shopify_settings.sync_delivery_note):
-		return
-
-	for fulfillment in shopify_order.get("fulfillments"):
-		if not frappe.db.get_value("Delivery Note", {"shopify_fulfillment_id": fulfillment.get("id")}, "name")\
-			and so.docstatus==1:
-
-			dn = make_delivery_note(so.name)
-			dn.shopify_order_id = fulfillment.get("order_id")
-			dn.shopify_order_number = shopify_order.get("name")
-			dn.set_posting_time = 1
-			dn.posting_date = getdate(fulfillment.get("created_at"))
-			dn.shopify_fulfillment_id = fulfillment.get("id")
-			dn.naming_series = shopify_settings.delivery_note_series or "DN-Shopify-"
-			dn.items = get_fulfillment_items(dn.items, fulfillment.get("line_items"), shopify_settings)
-			dn.flags.ignore_mandatory = True
-			dn.save()
-			dn.submit()
-			frappe.db.commit()
-
-def get_fulfillment_items(dn_items, fulfillment_items, shopify_settings):
-	return [dn_item.update({"qty": item.get("quantity")}) for item in fulfillment_items for dn_item in dn_items\
-			if get_item_code(item) == dn_item.item_code]
-
-def get_discounted_amount(order):
-	discounted_amount = 0.0
-	for discount in order.get("discount_codes"):
-		discounted_amount += flt(discount.get("amount"))
-	return discounted_amount
-
-def get_order_items(order_items, shopify_settings, delivery_date):
-	items = []
-	all_product_exists = True
-	product_not_exists = []
-
-	for shopify_item in order_items:
-		if not shopify_item.get('product_exists'):
-			all_product_exists = False
-			product_not_exists.append({'title':shopify_item.get('title'),
-				'shopify_order_id': shopify_item.get('id')})
-			continue
-
-		if all_product_exists:
-			item_code = get_item_code(shopify_item)
-			items.append({
-				"item_code": item_code,
-				"item_name": shopify_item.get("name"),
-				"rate": shopify_item.get("price"),
-				"delivery_date": delivery_date,
-				"qty": shopify_item.get("quantity"),
-				"stock_uom": shopify_item.get("uom") or _("Nos"),
-				"warehouse": shopify_settings.warehouse
-			})
-		else:
-			items = []
-
-	return items
-
-def get_item_code(shopify_item):
-	item_code = frappe.db.get_value("Item", {"shopify_variant_id": shopify_item.get("variant_id")}, "item_code")
-	if not item_code:
-		item_code = frappe.db.get_value("Item", {"shopify_product_id": shopify_item.get("product_id")}, "item_code")
-	if not item_code:
-		item_code = frappe.db.get_value("Item", {"item_name": shopify_item.get("title")}, "item_code")
-
-	return item_code
-
-def get_order_taxes(shopify_order, shopify_settings):
-	taxes = []
-	for tax in shopify_order.get("tax_lines"):
-		taxes.append({
-			"charge_type": _("On Net Total"),
-			"account_head": get_tax_account_head(tax),
-			"description": "{0} - {1}%".format(tax.get("title"), tax.get("rate") * 100.0),
-			"rate": tax.get("rate") * 100.00,
-			"included_in_print_rate": 1 if shopify_order.get("taxes_included") else 0,
-			"cost_center": shopify_settings.cost_center
-		})
-
-	taxes = update_taxes_with_shipping_lines(taxes, shopify_order.get("shipping_lines"), shopify_settings)
-
-	return taxes
-
-def update_taxes_with_shipping_lines(taxes, shipping_lines, shopify_settings):
-	"""Shipping lines represents the shipping details,
-		each such shipping detail consists of a list of tax_lines"""
-	for shipping_charge in shipping_lines:
-		if shipping_charge.get("price"):
-			taxes.append({
-				"charge_type": _("Actual"),
-				"account_head": get_tax_account_head(shipping_charge),
-				"description": shipping_charge["title"],
-				"tax_amount": shipping_charge["price"],
-				"cost_center": shopify_settings.cost_center
-			})
-
-		for tax in shipping_charge.get("tax_lines"):
-			taxes.append({
-				"charge_type": _("Actual"),
-				"account_head": get_tax_account_head(tax),
-				"description": tax["title"],
-				"tax_amount": tax["price"],
-				"cost_center": shopify_settings.cost_center
-			})
-
-	return taxes
-
-def get_tax_account_head(tax):
-	tax_title = tax.get("title").encode("utf-8")
-
-	tax_account =  frappe.db.get_value("Shopify Tax Account", \
-		{"parent": "Shopify Settings", "shopify_tax": tax_title}, "tax_account")
-
-	if not tax_account:
-		frappe.throw(_("Tax Account not specified for Shopify Tax {0}").format(tax.get("title")))
-
-	return tax_account
-
-@frappe.whitelist(allow_guest=True)
-def sync_old_orders():
-	frappe.set_user('Administrator')
-	shopify_settings = frappe.get_doc('Shopify Settings')
-
-	if not shopify_settings.sync_missing_orders:
-		return
-
-	url = get_url(shopify_settings)
-	session = get_request_session()
-
-	try:
-		res = session.get(url, headers=get_header(shopify_settings))
-		res.raise_for_status()
-		orders = res.json()["orders"]
-
-		for order in orders:
-			if is_sync_complete(shopify_settings, order):
-				stop_sync(shopify_settings)
-				return
-
-			sync_sales_order(order=order, old_order_sync=True)
-			last_order_id = order.get('id')
-
-		if last_order_id:
-			shopify_settings.load_from_db()
-			shopify_settings.last_order_id = last_order_id
-			shopify_settings.save()
-			frappe.db.commit()
-
-	except Exception as e:
-		raise e
-
-def stop_sync(shopify_settings):
-	shopify_settings.sync_missing_orders = 0
-	shopify_settings.last_order_id = ''
-	shopify_settings.save()
-	frappe.db.commit()
-
-def get_url(shopify_settings):
-	last_order_id = shopify_settings.last_order_id
-
-	if not last_order_id:
-		if shopify_settings.sync_based_on == 'Date':
-			url = get_shopify_url("admin/api/2021-04/orders.json?limit=250&created_at_min={0}&since_id=0".format(
-				get_datetime(shopify_settings.from_date)), shopify_settings)
-		else:
-			url = get_shopify_url("admin/api/2021-04/orders.json?limit=250&since_id={0}".format(
-				shopify_settings.from_order_id), shopify_settings)
-	else:
-		url = get_shopify_url("admin/api/2021-04/orders.json?limit=250&since_id={0}".format(last_order_id), shopify_settings)
-
-	return url
-
-def is_sync_complete(shopify_settings, order):
-	if shopify_settings.sync_based_on == 'Date':
-		return getdate(shopify_settings.to_date) < getdate(order.get('created_at'))
-	else:
-		return cstr(order.get('id')) == cstr(shopify_settings.to_order_id)
-
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.js b/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.js
deleted file mode 100644
index 12faeec..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
-// For license information, please see license.txt
-
-frappe.ui.form.on('Shopify Log', {
-	refresh: function(frm) {
-		if (frm.doc.request_data && frm.doc.status=='Error'){
-			frm.add_custom_button('Resync', function() {
-				frappe.call({
-					method:"erpnext.erpnext_integrations.doctype.shopify_log.shopify_log.resync",
-					args:{
-						method:frm.doc.method,
-						name: frm.doc.name,
-						request_data: frm.doc.request_data
-					},
-					callback: function(r){
-						frappe.msgprint(__("Order rescheduled for sync"))
-					}
-				})
-			}).addClass('btn-primary');
-		}
-
-	let app_link = "<a href='https://frappecloud.com/marketplace/apps/ecommerce-integrations' target='_blank'>Ecommerce Integrations</a>"
-	frm.dashboard.add_comment(__("Shopify Integration will be removed from ERPNext in Version 14. Please install {0} app to continue using it.", [app_link]), "yellow", true);
-	}
-});
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.json b/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.json
deleted file mode 100644
index ab373ee..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.json
+++ /dev/null
@@ -1,268 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "beta": 0, 
- "creation": "2016-03-14 10:02:06.227184", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "System", 
- "editable_grid": 0, 
- "fields": [
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "title", 
-   "fieldtype": "Data", 
-   "hidden": 1, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Title", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "default": "Queued", 
-   "fieldname": "status", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Status", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "method", 
-   "fieldtype": "Small Text", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Method", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "message", 
-   "fieldtype": "Code", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Message", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "traceback", 
-   "fieldtype": "Code", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Traceback", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "request_data", 
-   "fieldtype": "Code", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "label": "Request Data", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }
- ], 
- "has_web_view": 0, 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 1, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 0, 
- "max_attachments": 0, 
- "modified": "2018-04-20 16:23:36.862381", 
- "modified_by": "Administrator", 
- "module": "ERPNext Integrations", 
- "name": "Shopify Log", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [
-  {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "Administrator", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }, 
-  {
-   "amend": 0, 
-   "cancel": 0, 
-   "create": 1, 
-   "delete": 1, 
-   "email": 1, 
-   "export": 1, 
-   "if_owner": 0, 
-   "import": 0, 
-   "permlevel": 0, 
-   "print": 1, 
-   "read": 1, 
-   "report": 1, 
-   "role": "System Manager", 
-   "set_user_permissions": 0, 
-   "share": 1, 
-   "submit": 0, 
-   "write": 1
-  }
- ], 
- "quick_entry": 0, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "title_field": "title", 
- "track_changes": 0, 
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.py b/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.py
deleted file mode 100644
index a2b6af9..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-import json
-from frappe.model.document import Document
-from erpnext.erpnext_integrations.utils import get_webhook_address
-
-class ShopifyLog(Document):
-	pass
-
-
-def make_shopify_log(status="Queued", exception=None, rollback=False):
-	# if name not provided by log calling method then fetch existing queued state log
-	make_new = False
-
-	if not frappe.flags.request_id:
-		make_new = True
-
-	if rollback:
-		frappe.db.rollback()
-
-	if make_new:
-		log = frappe.get_doc({"doctype":"Shopify Log"}).insert(ignore_permissions=True)
-	else:
-		log = log = frappe.get_doc("Shopify Log", frappe.flags.request_id)
-
-	log.message = get_message(exception)
-	log.traceback = frappe.get_traceback()
-	log.status = status
-	log.save(ignore_permissions=True)
-	frappe.db.commit()
-
-def get_message(exception):
-	message = None
-
-	if hasattr(exception, 'message'):
-		message = exception.message
-	elif hasattr(exception, '__str__'):
-		message = exception.__str__()
-	else:
-		message = "Something went wrong while syncing"
-	return message
-
-def dump_request_data(data, event="create/order"):
-	event_mapper = {
-		"orders/create": get_webhook_address(connector_name='shopify_connection', method="sync_sales_order", exclude_uri=True),
-		"orders/paid" : get_webhook_address(connector_name='shopify_connection', method="prepare_sales_invoice", exclude_uri=True),
-		"orders/fulfilled": get_webhook_address(connector_name='shopify_connection', method="prepare_delivery_note", exclude_uri=True)
-	}
-
-	log = frappe.get_doc({
-		"doctype": "Shopify Log",
-		"request_data": json.dumps(data, indent=1),
-		"method": event_mapper[event]
-	}).insert(ignore_permissions=True)
-
-	frappe.db.commit()
-	frappe.enqueue(method=event_mapper[event], queue='short', timeout=300, is_async=True,
-		**{"order": data, "request_id": log.name})
-
-@frappe.whitelist()
-def resync(method, name, request_data):
-	frappe.db.set_value("Shopify Log", name, "status", "Queued", update_modified=False)
-	frappe.enqueue(method=method, queue='short', timeout=300, is_async=True,
-		**{"order": json.loads(request_data), "request_id": name})
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log_list.js b/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log_list.js
deleted file mode 100644
index 0913ce4..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_log/shopify_log_list.js
+++ /dev/null
@@ -1,12 +0,0 @@
-frappe.listview_settings['Shopify Log'] = {
-	add_fields: ["status"],
-	get_indicator: function(doc) {
-		if(doc.status==="Success"){
-			return [__("Success"), "green", "status,=,Success"];
-        } else if(doc.status ==="Error"){
-			return [__("Error"), "red", "status,=,Error"];
-        } else if(doc.status ==="Queued"){
-			return [__("Queued"), "orange", "status,=,Queued"];
-        }
-	}
-}
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/test_shopify_log.js b/erpnext/erpnext_integrations/doctype/shopify_log/test_shopify_log.js
deleted file mode 100644
index d22b6d5..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_log/test_shopify_log.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Shopify Log", function (assert) {
-	let done = assert.async();
-
-	// number of asserts
-	assert.expect(1);
-
-	frappe.run_serially([
-		// insert a new Shopify Log
-		() => frappe.tests.make('Shopify Log', [
-			// values to be set
-			{key: 'value'}
-		]),
-		() => {
-			assert.equal(cur_frm.doc.key, 'value');
-		},
-		() => done()
-	]);
-
-});
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/test_shopify_log.py b/erpnext/erpnext_integrations/doctype/shopify_log/test_shopify_log.py
deleted file mode 100644
index 5892e1d..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_log/test_shopify_log.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-from __future__ import unicode_literals
-
-import frappe
-import unittest
-
-# test_records = frappe.get_test_records('Shopify Log')
-
-class TestShopifyLog(unittest.TestCase):
-	pass
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.js b/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.js
deleted file mode 100644
index a926a7e..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.js
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-frappe.provide("erpnext_integrations.shopify_settings");
-
-frappe.ui.form.on("Shopify Settings", "onload", function(frm){
-	frappe.call({
-		method:"erpnext.erpnext_integrations.doctype.shopify_settings.shopify_settings.get_series",
-		callback:function(r){
-			$.each(r.message, function(key, value){
-				set_field_options(key, value);
-			});
-		}
-	});
-	erpnext_integrations.shopify_settings.setup_queries(frm);
-})
-
-frappe.ui.form.on("Shopify Settings", "app_type", function(frm) {
-	frm.toggle_reqd("api_key", (frm.doc.app_type == "Private"));
-	frm.toggle_reqd("password", (frm.doc.app_type == "Private"));
-})
-
-frappe.ui.form.on("Shopify Settings", "refresh", function(frm){
-	if(!frm.doc.__islocal && frm.doc.enable_shopify === 1){
-		frm.toggle_reqd("price_list", true);
-		frm.toggle_reqd("warehouse", true);
-		frm.toggle_reqd("taxes", true);
-		frm.toggle_reqd("company", true);
-		frm.toggle_reqd("cost_center", true);
-		frm.toggle_reqd("cash_bank_account", true);
-		frm.toggle_reqd("sales_order_series", true);
-		frm.toggle_reqd("customer_group", true);
-		frm.toggle_reqd("shared_secret", true);
-
-		frm.toggle_reqd("sales_invoice_series", frm.doc.sync_sales_invoice);
-		frm.toggle_reqd("delivery_note_series", frm.doc.sync_delivery_note);
-
-	}
-
-	let app_link = "<a href='https://frappecloud.com/marketplace/apps/ecommerce-integrations' target='_blank'>Ecommerce Integrations</a>"
-	frm.dashboard.add_comment(__("Shopify Integration will be removed from ERPNext in Version 14. Please install {0} app to continue using it.", [app_link]), "yellow", true);
-
-})
-
-$.extend(erpnext_integrations.shopify_settings, {
-	setup_queries: function(frm) {
-		frm.fields_dict["warehouse"].get_query = function(doc) {
-			return {
-				filters:{
-					"company": doc.company,
-					"is_group": "No"
-				}
-			}
-		}
-
-		frm.fields_dict["taxes"].grid.get_field("tax_account").get_query = function(doc){
-			return {
-				"query": "erpnext.controllers.queries.tax_account_query",
-				"filters": {
-					"account_type": ["Tax", "Chargeable", "Expense Account"],
-					"company": doc.company
-				}
-			}
-		}
-
-		frm.fields_dict["cash_bank_account"].get_query = function(doc) {
-			return {
-				filters: [
-					["Account", "account_type", "in", ["Cash", "Bank"]],
-					["Account", "root_type", "=", "Asset"],
-					["Account", "is_group", "=",0],
-					["Account", "company", "=", doc.company]
-				]
-			}
-		}
-
-		frm.fields_dict["cost_center"].get_query = function(doc) {
-			return {
-				filters:{
-					"company": doc.company,
-					"is_group": "No"
-				}
-			}
-		}
-
-		frm.fields_dict["price_list"].get_query = function() {
-			return {
-				filters:{
-					"selling": 1
-				}
-			}
-		}
-	}
-})
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.json b/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.json
deleted file mode 100644
index 308e7d1..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.json
+++ /dev/null
@@ -1,353 +0,0 @@
-{
- "actions": [],
- "creation": "2015-05-18 05:21:07.270859",
- "doctype": "DocType",
- "document_type": "System",
- "engine": "InnoDB",
- "field_order": [
-  "status_html",
-  "enable_shopify",
-  "app_type",
-  "column_break_4",
-  "last_sync_datetime",
-  "section_break_2",
-  "shopify_url",
-  "api_key",
-  "column_break_3",
-  "password",
-  "shared_secret",
-  "access_token",
-  "section_break_38",
-  "webhooks",
-  "section_break_15",
-  "default_customer",
-  "column_break_19",
-  "customer_group",
-  "company_dependent_settings",
-  "company",
-  "cash_bank_account",
-  "column_break_20",
-  "cost_center",
-  "erp_settings",
-  "price_list",
-  "update_price_in_erpnext_price_list",
-  "column_break_26",
-  "warehouse",
-  "section_break_25",
-  "sales_order_series",
-  "column_break_27",
-  "sync_delivery_note",
-  "delivery_note_series",
-  "sync_sales_invoice",
-  "sales_invoice_series",
-  "section_break_22",
-  "html_16",
-  "taxes",
-  "syncing_details_section",
-  "sync_missing_orders",
-  "sync_based_on",
-  "column_break_41",
-  "from_date",
-  "to_date",
-  "from_order_id",
-  "to_order_id",
-  "last_order_id"
- ],
- "fields": [
-  {
-   "fieldname": "status_html",
-   "fieldtype": "HTML",
-   "label": "status html",
-   "read_only": 1
-  },
-  {
-   "default": "0",
-   "fieldname": "enable_shopify",
-   "fieldtype": "Check",
-   "label": "Enable Shopify"
-  },
-  {
-   "default": "Private",
-   "fieldname": "app_type",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "App Type",
-   "read_only": 1,
-   "reqd": 1
-  },
-  {
-   "fieldname": "column_break_4",
-   "fieldtype": "Column Break"
-  },
-  {
-   "fieldname": "last_sync_datetime",
-   "fieldtype": "Datetime",
-   "label": "Last Sync Datetime",
-   "read_only": 1
-  },
-  {
-   "fieldname": "section_break_2",
-   "fieldtype": "Section Break"
-  },
-  {
-   "description": "eg: frappe.myshopify.com",
-   "fieldname": "shopify_url",
-   "fieldtype": "Data",
-   "in_list_view": 1,
-   "label": "Shop URL",
-   "reqd": 1
-  },
-  {
-   "depends_on": "eval:doc.app_type==\"Private\"",
-   "fieldname": "api_key",
-   "fieldtype": "Data",
-   "label": "API Key"
-  },
-  {
-   "fieldname": "column_break_3",
-   "fieldtype": "Column Break"
-  },
-  {
-   "depends_on": "eval:doc.app_type==\"Private\"",
-   "fieldname": "password",
-   "fieldtype": "Password",
-   "label": "Password"
-  },
-  {
-   "fieldname": "shared_secret",
-   "fieldtype": "Data",
-   "label": "Shared secret"
-  },
-  {
-   "fieldname": "access_token",
-   "fieldtype": "Data",
-   "hidden": 1,
-   "label": "Access Token",
-   "read_only": 1
-  },
-  {
-   "collapsible": 1,
-   "fieldname": "section_break_38",
-   "fieldtype": "Section Break",
-   "label": "Webhooks Details"
-  },
-  {
-   "fieldname": "webhooks",
-   "fieldtype": "Table",
-   "label": "Webhooks",
-   "options": "Shopify Webhook Detail",
-   "read_only": 1
-  },
-  {
-   "fieldname": "section_break_15",
-   "fieldtype": "Section Break",
-   "label": "Customer Settings"
-  },
-  {
-   "description": "If Shopify does not have a customer in the order, then while syncing the orders, the system will consider the default customer for the order",
-   "fieldname": "default_customer",
-   "fieldtype": "Link",
-   "label": "Default Customer",
-   "options": "Customer"
-  },
-  {
-   "fieldname": "column_break_19",
-   "fieldtype": "Column Break"
-  },
-  {
-   "description": "Customer Group will set to selected group while syncing customers from Shopify",
-   "fieldname": "customer_group",
-   "fieldtype": "Link",
-   "label": "Customer Group",
-   "options": "Customer Group"
-  },
-  {
-   "fieldname": "company_dependent_settings",
-   "fieldtype": "Section Break"
-  },
-  {
-   "fieldname": "company",
-   "fieldtype": "Link",
-   "label": "For Company",
-   "options": "Company"
-  },
-  {
-   "description": "Cash Account will used for Sales Invoice creation",
-   "fieldname": "cash_bank_account",
-   "fieldtype": "Link",
-   "label": "Cash/Bank Account",
-   "options": "Account"
-  },
-  {
-   "fieldname": "column_break_20",
-   "fieldtype": "Column Break"
-  },
-  {
-   "fieldname": "cost_center",
-   "fieldtype": "Link",
-   "label": "Cost Center",
-   "options": "Cost Center"
-  },
-  {
-   "fieldname": "erp_settings",
-   "fieldtype": "Section Break"
-  },
-  {
-   "fieldname": "price_list",
-   "fieldtype": "Link",
-   "label": "Price List",
-   "options": "Price List"
-  },
-  {
-   "default": "0",
-   "fieldname": "update_price_in_erpnext_price_list",
-   "fieldtype": "Check",
-   "label": "Update Price from Shopify To ERPNext Price List"
-  },
-  {
-   "fieldname": "column_break_26",
-   "fieldtype": "Column Break"
-  },
-  {
-   "description": "Default Warehouse to to create Sales Order and Delivery Note",
-   "fieldname": "warehouse",
-   "fieldtype": "Link",
-   "label": "Warehouse",
-   "options": "Warehouse"
-  },
-  {
-   "fieldname": "section_break_25",
-   "fieldtype": "Section Break"
-  },
-  {
-   "fieldname": "sales_order_series",
-   "fieldtype": "Select",
-   "label": "Sales Order Series"
-  },
-  {
-   "fieldname": "column_break_27",
-   "fieldtype": "Column Break"
-  },
-  {
-   "default": "0",
-   "fieldname": "sync_delivery_note",
-   "fieldtype": "Check",
-   "label": "Import Delivery Notes from Shopify on Shipment"
-  },
-  {
-   "depends_on": "eval:doc.sync_delivery_note==1",
-   "fieldname": "delivery_note_series",
-   "fieldtype": "Select",
-   "label": "Delivery Note Series"
-  },
-  {
-   "default": "0",
-   "fieldname": "sync_sales_invoice",
-   "fieldtype": "Check",
-   "label": "Import Sales Invoice from Shopify if Payment is marked"
-  },
-  {
-   "depends_on": "eval:doc.sync_sales_invoice==1",
-   "fieldname": "sales_invoice_series",
-   "fieldtype": "Select",
-   "label": "Sales Invoice Series"
-  },
-  {
-   "fieldname": "section_break_22",
-   "fieldtype": "Section Break"
-  },
-  {
-   "fieldname": "html_16",
-   "fieldtype": "HTML",
-   "options": "Map Shopify Taxes / Shipping Charges to ERPNext Account"
-  },
-  {
-   "fieldname": "taxes",
-   "fieldtype": "Table",
-   "label": "Shopify Tax Account",
-   "options": "Shopify Tax Account"
-  },
-  {
-   "collapsible": 1,
-   "fieldname": "syncing_details_section",
-   "fieldtype": "Section Break",
-   "label": "Syncing Missing Orders"
-  },
-  {
-   "depends_on": "eval:doc.sync_missing_orders",
-   "fieldname": "last_order_id",
-   "fieldtype": "Data",
-   "label": "Last Order Id",
-   "read_only": 1
-  },
-  {
-   "fieldname": "column_break_41",
-   "fieldtype": "Column Break"
-  },
-  {
-   "default": "0",
-   "description": "On checking this Order from the ",
-   "fieldname": "sync_missing_orders",
-   "fieldtype": "Check",
-   "label": "Sync Missing Old Shopify Orders"
-  },
-  {
-   "depends_on": "eval:doc.sync_missing_orders",
-   "fieldname": "sync_based_on",
-   "fieldtype": "Select",
-   "label": "Sync Based On",
-   "mandatory_depends_on": "eval:doc.sync_missing_orders",
-   "options": "\nDate\nShopify Order Id"
-  },
-  {
-   "depends_on": "eval:doc.sync_based_on == 'Date' && doc.sync_missing_orders",
-   "fieldname": "from_date",
-   "fieldtype": "Date",
-   "label": "From Date",
-   "mandatory_depends_on": "eval:doc.sync_based_on == 'Date' && doc.sync_missing_orders"
-  },
-  {
-   "depends_on": "eval:doc.sync_based_on == 'Date' && doc.sync_missing_orders",
-   "fieldname": "to_date",
-   "fieldtype": "Date",
-   "label": "To Date",
-   "mandatory_depends_on": "eval:doc.sync_based_on == 'Date' && doc.sync_missing_orders"
-  },
-  {
-   "depends_on": "eval:doc.sync_based_on == 'Shopify Order Id' && doc.sync_missing_orders",
-   "fieldname": "from_order_id",
-   "fieldtype": "Data",
-   "label": "From Order Id",
-   "mandatory_depends_on": "eval:doc.sync_based_on == 'Shopify Order Id' && doc.sync_missing_orders"
-  },
-  {
-   "depends_on": "eval:doc.sync_based_on == 'Shopify Order Id' && doc.sync_missing_orders",
-   "fieldname": "to_order_id",
-   "fieldtype": "Data",
-   "label": "To Order Id",
-   "mandatory_depends_on": "eval:doc.sync_based_on == 'Shopify Order Id' && doc.sync_missing_orders"
-  }
- ],
- "issingle": 1,
- "links": [],
- "modified": "2021-03-02 17:35:41.953317",
- "modified_by": "Administrator",
- "module": "ERPNext Integrations",
- "name": "Shopify Settings",
- "owner": "Administrator",
- "permissions": [
-  {
-   "create": 1,
-   "delete": 1,
-   "email": 1,
-   "print": 1,
-   "read": 1,
-   "role": "System Manager",
-   "share": 1,
-   "write": 1
-  }
- ],
- "sort_field": "modified",
- "sort_order": "DESC",
- "track_changes": 1
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.py b/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.py
deleted file mode 100644
index 381c5e5..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/shopify_settings.py
+++ /dev/null
@@ -1,144 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-import json
-from frappe import _
-from frappe.model.document import Document
-from frappe.utils import get_request_session
-from requests.exceptions import HTTPError
-from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
-from erpnext.erpnext_integrations.utils import get_webhook_address
-from erpnext.erpnext_integrations.doctype.shopify_log.shopify_log import make_shopify_log
-
-class ShopifySettings(Document):
-	def validate(self):
-		if self.enable_shopify == 1:
-			setup_custom_fields()
-			self.validate_access_credentials()
-			self.register_webhooks()
-		else:
-			self.unregister_webhooks()
-
-	def validate_access_credentials(self):
-		if not (self.get_password(raise_exception=False) and self.api_key and self.shopify_url):
-			frappe.msgprint(_("Missing value for Password, API Key or Shopify URL"), raise_exception=frappe.ValidationError)
-
-	def register_webhooks(self):
-		webhooks = ["orders/create", "orders/paid", "orders/fulfilled"]
-		# url = get_shopify_url('admin/webhooks.json', self)
-		created_webhooks = [d.method for d in self.webhooks]
-		url = get_shopify_url('admin/api/2021-04/webhooks.json', self)
-		for method in webhooks:
-			session = get_request_session()
-			try:
-				res = session.post(url, data=json.dumps({
-					"webhook": {
-						"topic": method,
-						"address": get_webhook_address(connector_name='shopify_connection', method='store_request_data', force_https=True),
-						"format": "json"
-						}
-					}), headers=get_header(self))
-				res.raise_for_status()
-				self.update_webhook_table(method, res.json())
-
-			except HTTPError as e:
-				error_message = res.json().get('errors', e)
-				make_shopify_log(status="Warning", exception=error_message, rollback=True)
-
-			except Exception as e:
-				make_shopify_log(status="Warning", exception=e, rollback=True)
-
-	def unregister_webhooks(self):
-		session = get_request_session()
-		deleted_webhooks = []
-
-		for d in self.webhooks:
-			url = get_shopify_url('admin/api/2021-04/webhooks/{0}.json'.format(d.webhook_id), self)
-			try:
-				res = session.delete(url, headers=get_header(self))
-				res.raise_for_status()
-				deleted_webhooks.append(d)
-
-			except HTTPError as e:
-				error_message = res.json().get('errors', e)
-				make_shopify_log(status="Warning", exception=error_message, rollback=True)
-
-			except Exception as e:
-				frappe.log_error(message=e, title='Shopify Webhooks Issue')
-
-		for d in deleted_webhooks:
-			self.remove(d)
-
-	def update_webhook_table(self, method, res):
-		self.append("webhooks", {
-			"webhook_id": res['webhook']['id'],
-			"method": method
-		})
-
-def get_shopify_url(path, settings):
-	if settings.app_type == "Private":
-		return 'https://{}:{}@{}/{}'.format(settings.api_key, settings.get_password('password'), settings.shopify_url, path)
-	else:
-		return 'https://{}/{}'.format(settings.shopify_url, path)
-
-def get_header(settings):
-	header = {'Content-Type': 'application/json'}
-
-	return header
-
-@frappe.whitelist()
-def get_series():
-	return {
-		"sales_order_series" : frappe.get_meta("Sales Order").get_options("naming_series") or "SO-Shopify-",
-		"sales_invoice_series" : frappe.get_meta("Sales Invoice").get_options("naming_series")  or "SI-Shopify-",
-		"delivery_note_series" : frappe.get_meta("Delivery Note").get_options("naming_series")  or "DN-Shopify-"
-	}
-
-def setup_custom_fields():
-	custom_fields = {
-		"Customer": [
-			dict(fieldname='shopify_customer_id', label='Shopify Customer Id',
-				fieldtype='Data', insert_after='series', read_only=1, print_hide=1)
-		],
-		"Supplier": [
-			dict(fieldname='shopify_supplier_id', label='Shopify Supplier Id',
-				fieldtype='Data', insert_after='supplier_name', read_only=1, print_hide=1)
-		],
-		"Address": [
-			dict(fieldname='shopify_address_id', label='Shopify Address Id',
-				fieldtype='Data', insert_after='fax', read_only=1, print_hide=1)
-		],
-		"Item": [
-			dict(fieldname='shopify_variant_id', label='Shopify Variant Id',
-				fieldtype='Data', insert_after='item_code', read_only=1, print_hide=1),
-			dict(fieldname='shopify_product_id', label='Shopify Product Id',
-				fieldtype='Data', insert_after='item_code', read_only=1, print_hide=1),
-			dict(fieldname='shopify_description', label='Shopify Description',
-				fieldtype='Text Editor', insert_after='description', read_only=1, print_hide=1)
-		],
-		"Sales Order": [
-			dict(fieldname='shopify_order_id', label='Shopify Order Id',
-				fieldtype='Data', insert_after='title', read_only=1, print_hide=1),
-			dict(fieldname='shopify_order_number', label='Shopify Order Number',
-				fieldtype='Data', insert_after='shopify_order_id', read_only=1, print_hide=1)
-		],
-		"Delivery Note":[
-			dict(fieldname='shopify_order_id', label='Shopify Order Id',
-				fieldtype='Data', insert_after='title', read_only=1, print_hide=1),
-			dict(fieldname='shopify_order_number', label='Shopify Order Number',
-				fieldtype='Data', insert_after='shopify_order_id', read_only=1, print_hide=1),
-			dict(fieldname='shopify_fulfillment_id', label='Shopify Fulfillment Id',
-				fieldtype='Data', insert_after='title', read_only=1, print_hide=1)
-		],
-		"Sales Invoice": [
-			dict(fieldname='shopify_order_id', label='Shopify Order Id',
-				fieldtype='Data', insert_after='title', read_only=1, print_hide=1),
-			dict(fieldname='shopify_order_number', label='Shopify Order Number',
-				fieldtype='Data', insert_after='shopify_order_id', read_only=1, print_hide=1)
-		]
-	}
-
-	create_custom_fields(custom_fields)
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/sync_customer.py b/erpnext/erpnext_integrations/doctype/shopify_settings/sync_customer.py
deleted file mode 100644
index 2af57f4..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/sync_customer.py
+++ /dev/null
@@ -1,71 +0,0 @@
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-
-def create_customer(shopify_customer, shopify_settings):
-	import frappe.utils.nestedset
-
-	cust_name = (shopify_customer.get("first_name") + " " + (shopify_customer.get("last_name") \
-		and  shopify_customer.get("last_name") or "")) if shopify_customer.get("first_name")\
-		else shopify_customer.get("email")
-
-	try:
-		customer = frappe.get_doc({
-			"doctype": "Customer",
-			"name": shopify_customer.get("id"),
-			"customer_name" : cust_name,
-			"shopify_customer_id": shopify_customer.get("id"),
-			"sync_with_shopify": 1,
-			"customer_group": shopify_settings.customer_group,
-			"territory": frappe.utils.nestedset.get_root_of("Territory"),
-			"customer_type": _("Individual")
-		})
-		customer.flags.ignore_mandatory = True
-		customer.insert(ignore_permissions=True)
-
-		if customer:
-			create_customer_address(customer, shopify_customer)
-
-		frappe.db.commit()
-
-	except Exception as e:
-		raise e
-
-def create_customer_address(customer, shopify_customer):
-	addresses = shopify_customer.get("addresses", [])
-
-	if not addresses and "default_address" in shopify_customer:
-		addresses.append(shopify_customer["default_address"])
-
-	for i, address in enumerate(addresses):
-		address_title, address_type = get_address_title_and_type(customer.customer_name, i)
-		try :
-			frappe.get_doc({
-				"doctype": "Address",
-				"shopify_address_id": address.get("id"),
-				"address_title": address_title,
-				"address_type": address_type,
-				"address_line1": address.get("address1") or "Address 1",
-				"address_line2": address.get("address2"),
-				"city": address.get("city") or "City",
-				"state": address.get("province"),
-				"pincode": address.get("zip"),
-				"country": address.get("country"),
-				"phone": address.get("phone"),
-				"email_id": shopify_customer.get("email"),
-				"links": [{
-					"link_doctype": "Customer",
-					"link_name": customer.name
-				}]
-			}).insert(ignore_mandatory=True)
-
-		except Exception as e:
-			raise e
-
-def get_address_title_and_type(customer_name, index):
-	address_type = _("Billing")
-	address_title = customer_name
-	if frappe.db.get_value("Address", "{0}-{1}".format(customer_name.strip(), address_type)):
-		address_title = "{0}-{1}".format(customer_name.strip(), index)
-
-	return address_title, address_type
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/sync_product.py b/erpnext/erpnext_integrations/doctype/shopify_settings/sync_product.py
deleted file mode 100644
index 16efb6c..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/sync_product.py
+++ /dev/null
@@ -1,309 +0,0 @@
-from __future__ import unicode_literals
-import frappe
-from frappe import _
-from erpnext import get_default_company
-from frappe.utils import cstr, cint, get_request_session
-from erpnext.erpnext_integrations.doctype.shopify_settings.shopify_settings import get_shopify_url, get_header
-
-shopify_variants_attr_list = ["option1", "option2", "option3"]
-
-def sync_item_from_shopify(shopify_settings, item):
-	url = get_shopify_url("admin/api/2021-04/products/{0}.json".format(item.get("product_id")), shopify_settings)
-	session = get_request_session()
-
-	try:
-		res = session.get(url, headers=get_header(shopify_settings))
-		res.raise_for_status()
-
-		shopify_item = res.json()["product"]
-		make_item(shopify_settings.warehouse, shopify_item)
-	except Exception as e:
-		raise e
-
-def make_item(warehouse, shopify_item):
-	add_item_weight(shopify_item)
-
-	if has_variants(shopify_item):
-		attributes = create_attribute(shopify_item)
-		create_item(shopify_item, warehouse, 1, attributes)
-		create_item_variants(shopify_item, warehouse, attributes, shopify_variants_attr_list)
-
-	else:
-		shopify_item["variant_id"] = shopify_item['variants'][0]["id"]
-		create_item(shopify_item, warehouse)
-
-def add_item_weight(shopify_item):
-	shopify_item["weight"] = shopify_item['variants'][0]["weight"]
-	shopify_item["weight_unit"] = shopify_item['variants'][0]["weight_unit"]
-
-def has_variants(shopify_item):
-	if len(shopify_item.get("options")) >= 1 and "Default Title" not in shopify_item.get("options")[0]["values"]:
-		return True
-	return False
-
-def create_attribute(shopify_item):
-	attribute = []
-	# shopify item dict
-	for attr in shopify_item.get('options'):
-		if not frappe.db.get_value("Item Attribute", attr.get("name"), "name"):
-			frappe.get_doc({
-				"doctype": "Item Attribute",
-				"attribute_name": attr.get("name"),
-				"item_attribute_values": [
-					{
-						"attribute_value": attr_value,
-						"abbr":attr_value
-					}
-					for attr_value in attr.get("values")
-				]
-			}).insert()
-			attribute.append({"attribute": attr.get("name")})
-
-		else:
-			# check for attribute values
-			item_attr = frappe.get_doc("Item Attribute", attr.get("name"))
-			if not item_attr.numeric_values:
-				set_new_attribute_values(item_attr, attr.get("values"))
-				item_attr.save()
-				attribute.append({"attribute": attr.get("name")})
-
-			else:
-				attribute.append({
-					"attribute": attr.get("name"),
-					"from_range": item_attr.get("from_range"),
-					"to_range": item_attr.get("to_range"),
-					"increment": item_attr.get("increment"),
-					"numeric_values": item_attr.get("numeric_values")
-				})
-
-	return attribute
-
-def set_new_attribute_values(item_attr, values):
-	for attr_value in values:
-		if not any((d.abbr.lower() == attr_value.lower() or d.attribute_value.lower() == attr_value.lower())\
-		for d in item_attr.item_attribute_values):
-			item_attr.append("item_attribute_values", {
-				"attribute_value": attr_value,
-				"abbr": attr_value
-			})
-
-def create_item(shopify_item, warehouse, has_variant=0, attributes=None,variant_of=None):
-	item_dict = {
-		"doctype": "Item",
-		"shopify_product_id": shopify_item.get("id"),
-		"shopify_variant_id": shopify_item.get("variant_id"),
-		"variant_of": variant_of,
-		"sync_with_shopify": 1,
-		"is_stock_item": 1,
-		"item_code": cstr(shopify_item.get("item_code")) or cstr(shopify_item.get("id")),
-		"item_name": shopify_item.get("title", '').strip(),
-		"description": shopify_item.get("body_html") or shopify_item.get("title"),
-		"shopify_description": shopify_item.get("body_html") or shopify_item.get("title"),
-		"item_group": get_item_group(shopify_item.get("product_type")),
-		"has_variants": has_variant,
-		"attributes":attributes or [],
-		"stock_uom": shopify_item.get("uom") or _("Nos"),
-		"stock_keeping_unit": shopify_item.get("sku") or get_sku(shopify_item),
-		"default_warehouse": warehouse,
-		"image": get_item_image(shopify_item),
-		"weight_uom": shopify_item.get("weight_unit"),
-		"weight_per_unit": shopify_item.get("weight"),
-		"default_supplier": get_supplier(shopify_item),
-		"item_defaults": [
-			{
-				"company": get_default_company()
-			}
-		]
-	}
-
-	if not is_item_exists(item_dict, attributes, variant_of=variant_of):
-		item_details = get_item_details(shopify_item)
-		name = ''
-
-		if not item_details:
-			new_item = frappe.get_doc(item_dict)
-			new_item.insert(ignore_permissions=True, ignore_mandatory=True)
-			name = new_item.name
-
-		if not name:
-			name = item_details.name
-
-		if not has_variant:
-			add_to_price_list(shopify_item, name)
-
-		frappe.db.commit()
-
-def create_item_variants(shopify_item, warehouse, attributes, shopify_variants_attr_list):
-	template_item = frappe.db.get_value("Item", filters={"shopify_product_id": shopify_item.get("id")},
-		fieldname=["name", "stock_uom"], as_dict=True)
-
-	if template_item:
-		for variant in shopify_item.get("variants"):
-			shopify_item_variant = {
-				"id" : variant.get("id"),
-				"item_code": variant.get("id"),
-				"title": variant.get("title"),
-				"product_type": shopify_item.get("product_type"),
-				"sku": variant.get("sku"),
-				"uom": template_item.stock_uom or _("Nos"),
-				"item_price": variant.get("price"),
-				"variant_id": variant.get("id"),
-				"weight_unit": variant.get("weight_unit"),
-				"weight": variant.get("weight")
-			}
-
-			for i, variant_attr in enumerate(shopify_variants_attr_list):
-				if variant.get(variant_attr):
-					attributes[i].update({"attribute_value": get_attribute_value(variant.get(variant_attr), attributes[i])})
-			create_item(shopify_item_variant, warehouse, 0, attributes, template_item.name)
-
-def get_attribute_value(variant_attr_val, attribute):
-	attribute_value = frappe.db.sql("""select attribute_value from `tabItem Attribute Value`
-		where parent = %s and (abbr = %s or attribute_value = %s)""", (attribute["attribute"], variant_attr_val,
-		variant_attr_val), as_list=1)
-	return attribute_value[0][0] if len(attribute_value)>0 else cint(variant_attr_val)
-
-def get_item_group(product_type=None):
-	import frappe.utils.nestedset
-	parent_item_group = frappe.utils.nestedset.get_root_of("Item Group")
-
-	if product_type:
-		if not frappe.db.get_value("Item Group", product_type, "name"):
-			item_group = frappe.get_doc({
-				"doctype": "Item Group",
-				"item_group_name": product_type,
-				"parent_item_group": parent_item_group,
-				"is_group": "No"
-			}).insert()
-			return item_group.name
-		else:
-			return product_type
-	else:
-		return parent_item_group
-
-
-def get_sku(item):
-	if item.get("variants"):
-		return item.get("variants")[0].get("sku")
-	return ""
-
-def add_to_price_list(item, name):
-	shopify_settings = frappe.db.get_value("Shopify Settings", None, ["price_list", "update_price_in_erpnext_price_list"], as_dict=1)
-	if not shopify_settings.update_price_in_erpnext_price_list:
-		return
-
-	item_price_name = frappe.db.get_value("Item Price",
-		{"item_code": name, "price_list": shopify_settings.price_list}, "name")
-
-	if not item_price_name:
-		frappe.get_doc({
-			"doctype": "Item Price",
-			"price_list": shopify_settings.price_list,
-			"item_code": name,
-			"price_list_rate": item.get("item_price") or item.get("variants")[0].get("price")
-		}).insert()
-	else:
-		item_rate = frappe.get_doc("Item Price", item_price_name)
-		item_rate.price_list_rate = item.get("item_price") or item.get("variants")[0].get("price")
-		item_rate.save()
-
-def get_item_image(shopify_item):
-	if shopify_item.get("image"):
-		return shopify_item.get("image").get("src")
-	return None
-
-def get_supplier(shopify_item):
-	if shopify_item.get("vendor"):
-		supplier = frappe.db.sql("""select name from tabSupplier
-			where name = %s or shopify_supplier_id = %s """, (shopify_item.get("vendor"),
-			shopify_item.get("vendor").lower()), as_list=1)
-
-		if not supplier:
-			supplier = frappe.get_doc({
-				"doctype": "Supplier",
-				"supplier_name": shopify_item.get("vendor"),
-				"shopify_supplier_id": shopify_item.get("vendor").lower(),
-				"supplier_group": get_supplier_group()
-			}).insert()
-			return supplier.name
-		else:
-			return shopify_item.get("vendor")
-	else:
-		return ""
-
-def get_supplier_group():
-	supplier_group = frappe.db.get_value("Supplier Group", _("Shopify Supplier"))
-	if not supplier_group:
-		supplier_group = frappe.get_doc({
-			"doctype": "Supplier Group",
-			"supplier_group_name": _("Shopify Supplier")
-		}).insert()
-		return supplier_group.name
-	return supplier_group
-
-def get_item_details(shopify_item):
-	item_details = {}
-
-	item_details = frappe.db.get_value("Item", {"shopify_product_id": shopify_item.get("id")},
-		["name", "stock_uom", "item_name"], as_dict=1)
-
-	if item_details:
-		return item_details
-
-	else:
-		item_details = frappe.db.get_value("Item", {"shopify_variant_id": shopify_item.get("id")},
-			["name", "stock_uom", "item_name"], as_dict=1)
-		return item_details
-
-def is_item_exists(shopify_item, attributes=None, variant_of=None):
-	if variant_of:
-		name = variant_of
-	else:
-		name = frappe.db.get_value("Item", {"item_name": shopify_item.get("item_name")})
-
-	if name:
-		item = frappe.get_doc("Item", name)
-		item.flags.ignore_mandatory=True
-
-		if not variant_of and not item.shopify_product_id:
-			item.shopify_product_id = shopify_item.get("shopify_product_id")
-			item.shopify_variant_id = shopify_item.get("shopify_variant_id")
-			item.save()
-			return True
-
-		if item.shopify_product_id and attributes and attributes[0].get("attribute_value"):
-			if not variant_of:
-				variant_of = frappe.db.get_value("Item",
-					{"shopify_product_id": item.shopify_product_id}, "variant_of")
-
-			# create conditions for all item attributes,
-			# as we are putting condition basis on OR it will fetch all items matching either of conditions
-			# thus comparing matching conditions with len(attributes)
-			# which will give exact matching variant item.
-
-			conditions = ["(iv.attribute='{0}' and iv.attribute_value = '{1}')"\
-				.format(attr.get("attribute"), attr.get("attribute_value")) for attr in attributes]
-
-			conditions = "( {0} ) and iv.parent = it.name ) = {1}".format(" or ".join(conditions), len(attributes))
-
-			parent = frappe.db.sql(""" select * from tabItem it where
-				( select count(*) from `tabItem Variant Attribute` iv
-					where {conditions} and it.variant_of = %s """.format(conditions=conditions) ,
-				variant_of, as_list=1)
-
-			if parent:
-				variant = frappe.get_doc("Item", parent[0][0])
-				variant.flags.ignore_mandatory = True
-
-				variant.shopify_product_id = shopify_item.get("shopify_product_id")
-				variant.shopify_variant_id = shopify_item.get("shopify_variant_id")
-				variant.save()
-			return False
-
-		if item.shopify_product_id and item.shopify_product_id != shopify_item.get("shopify_product_id"):
-			return False
-
-		return True
-
-	else:
-		return False
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/custom_field.json b/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/custom_field.json
deleted file mode 100644
index db6c3d5..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/custom_field.json
+++ /dev/null
@@ -1,527 +0,0 @@
-[
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Print Settings", 
-  "fieldname": "compact_item_print", 
-  "fieldtype": "Check", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "with_letterhead", 
-  "label": "Compact Item Print", 
-  "modified": "2016-06-06 15:18:17.025602", 
-  "name": "Print Settings-compact_item_print", 
-  "no_copy": 0, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 0, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 0, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Customer", 
-  "fieldname": "shopify_customer_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "naming_series", 
-  "label": "Shopify Customer Id", 
-  "modified": "2016-01-15 17:25:28.991818", 
-  "name": "Customer-shopify_customer_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Address", 
-  "fieldname": "shopify_address_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "fax", 
-  "label": "Shopify Address Id", 
-  "modified": "2016-01-15 17:50:52.213743", 
-  "name": "Address-shopify_address_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Sales Order", 
-  "fieldname": "shopify_order_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "title", 
-  "label": "Shopify Order Id", 
-  "modified": "2016-01-18 09:55:50.764524", 
-  "name": "Sales Order-shopify_order_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Item", 
-  "fieldname": "shopify_product_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "item_code", 
-  "label": "Shopify Product Id", 
-  "modified": "2016-01-19 15:44:16.132952", 
-  "name": "Item-shopify_product_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Sales Invoice", 
-  "fieldname": "shopify_order_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "naming_series", 
-  "label": "Shopify Order Id", 
-  "modified": "2016-01-19 16:30:12.261797", 
-  "name": "Sales Invoice-shopify_order_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Delivery Note", 
-  "fieldname": "shopify_order_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "title", 
-  "label": "Shopify Order Id", 
-  "modified": "2016-01-19 16:30:31.201198", 
-  "name": "Delivery Note-shopify_order_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Item", 
-  "fieldname": "stock_keeping_unit", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "stock_uom", 
-  "label": "Stock Keeping Unit", 
-  "modified": "2015-11-10 09:29:10.854943", 
-  "name": "Item-stock_keeping_unit", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 0, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": "0", 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Item", 
-  "fieldname": "sync_with_shopify", 
-  "fieldtype": "Check", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "is_stock_item", 
-  "label": "Sync With Shopify", 
-  "modified": "2015-10-12 15:54:31.997714", 
-  "name": "Item-sync_with_shopify", 
-  "no_copy": 0, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 0, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 0, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Customer", 
-  "fieldname": "sync_with_shopify", 
-  "fieldtype": "Check", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "is_frozen", 
-  "label": "Sync With Shopify", 
-  "modified": "2015-10-01 17:31:55.758826", 
-  "name": "Customer-sync_with_shopify", 
-  "no_copy": 0, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 0, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 0, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Item", 
-  "fieldname": "shopify_variant_id", 
-  "fieldtype": "Data", 
-  "hidden": 1, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "item_code", 
-  "label": "Variant Id", 
-  "modified": "2015-11-09 18:26:50.825858", 
-  "name": "Item-shopify_variant_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Item", 
-  "fieldname": "sync_qty_with_shopify", 
-  "fieldtype": "Check", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "item_code", 
-  "label": "Sync Quantity With Shopify", 
-  "modified": "2015-12-29 08:37:46.183295", 
-  "name": "Item-sync_qty_with_shopify", 
-  "no_copy": 0, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 0, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 0, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Delivery Note", 
-  "fieldname": "shopify_fulfillment_id", 
-  "fieldtype": "Data", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "title", 
-  "label": "Shopify Fulfillment Id", 
-  "modified": "2016-01-20 23:50:35.609543", 
-  "name": "Delivery Note-shopify_fulfillment_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Supplier", 
-  "fieldname": "shopify_supplier_id", 
-  "fieldtype": "Data", 
-  "hidden": 1, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "supplier_name", 
-  "label": "Shopify Supplier Id", 
-  "modified": "2016-02-01 15:41:25.818306", 
-  "name": "Supplier-shopify_supplier_id", 
-  "no_copy": 1, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 1, 
-  "report_hide": 0, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }, 
- {
-  "allow_on_submit": 0, 
-  "collapsible": 0, 
-  "collapsible_depends_on": null, 
-  "default": null, 
-  "depends_on": null, 
-  "description": null, 
-  "docstatus": 0, 
-  "doctype": "Custom Field", 
-  "dt": "Item", 
-  "fieldname": "shopify_description", 
-  "fieldtype": "Text Editor", 
-  "hidden": 0, 
-  "ignore_user_permissions": 0, 
-  "ignore_xss_filter": 0, 
-  "in_filter": 0, 
-  "in_list_view": 0, 
-  "insert_after": "section_break_11", 
-  "label": "shopify_description", 
-  "modified": "2016-06-15 12:15:36.325581", 
-  "name": "Item-shopify_description", 
-  "no_copy": 0, 
-  "options": null, 
-  "permlevel": 0, 
-  "precision": "", 
-  "print_hide": 1, 
-  "print_hide_if_no_value": 0, 
-  "print_width": null, 
-  "read_only": 0, 
-  "report_hide": 1, 
-  "reqd": 0, 
-  "search_index": 0, 
-  "unique": 0, 
-  "width": null
- }
-]
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_customer.json b/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_customer.json
deleted file mode 100644
index e91ce9a..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_customer.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-    "customer": {
-        "id": 2324518599,
-        "email": "andrew@wyatt.co.in",
-        "accepts_marketing": false,
-        "created_at": "2016-01-20T17:18:35+05:30",
-        "updated_at": "2016-01-20T17:22:23+05:30",
-        "first_name": "Andrew",
-        "last_name": "Wyatt",
-        "orders_count": 0,
-        "state": "disabled",
-        "total_spent": "0.00",
-        "last_order_id": null,
-        "note": "",
-        "verified_email": true,
-        "multipass_identifier": null,
-        "tax_exempt": false,
-        "tags": "",
-        "last_order_name": null,
-        "default_address": {
-            "id": 2476804295,
-            "first_name": "Andrew",
-            "last_name": "Wyatt",
-            "company": "Wyatt Inc.",
-            "address1": "B-11, Betahouse",
-            "address2": "Street 11, Sector 52",
-            "city": "Manhattan",
-            "province": "New York",
-            "country": "United States",
-            "zip": "10027",
-            "phone": "145-112211",
-            "name": "Andrew Wyatt",
-            "province_code": "NY",
-            "country_code": "US",
-            "country_name": "United States",
-            "default": true
-        },
-        "addresses": [
-            {
-                "id": 2476804295,
-                "first_name": "Andrew",
-                "last_name": "Wyatt",
-                "company": "Wyatt Inc.",
-                "address1": "B-11, Betahouse",
-                "address2": "Street 11, Sector 52",
-                "city": "Manhattan",
-                "province": "New York",
-                "country": "United States",
-                "zip": "10027",
-                "phone": "145-112211",
-                "name": "Andrew Wyatt",
-                "province_code": "NY",
-                "country_code": "US",
-                "country_name": "United States",
-                "default": true
-            }
-        ]
-    }
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_item.json b/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_item.json
deleted file mode 100644
index 296dede..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_item.json
+++ /dev/null
@@ -1,125 +0,0 @@
-{
-	"product": {
-		"id": 4059739520,
-		"title": "Shopify Test Item",
-		"body_html": "<div>Hold back Spin Medallion-Set of 2</div>\n<div></div>\n<div>Finish: Plated/ Powder Coated</div>\n<div>Material: Iron</div>\n<div>Color Finish: Satin Silver, Brown Oil Rubbed, Roman Bronze</div>\n<div>Qty: 1 Set</div>",
-		"vendor": "Boa casa",
-		"product_type": "Curtain Accessories",
-		"created_at": "2016-01-18T17:16:37+05:30",
-		"handle": "1001624-01",
-		"updated_at": "2016-01-20T17:26:44+05:30",
-		"published_at": "2016-01-18T17:16:37+05:30",
-		"template_suffix": null,
-		"published_scope": "global",
-		"tags": "Category_Curtain Accessories, Type_Holdback",
-		"variants": [{
-			"id": 13917612359,
-			"product_id": 4059739520,
-			"title": "Test BALCK Item",
-			"price": "499.00",
-			"sku": "",
-			"position": 1,
-			"grams": 0,
-			"inventory_policy": "continue",
-			"compare_at_price": null,
-			"fulfillment_service": "manual",
-			"inventory_management": "shopify",
-			"option1": "BLACK",
-			"option2": null,
-			"option3": null,
-			"created_at": "2016-01-18T17:16:37+05:30",
-			"updated_at": "2016-01-20T17:26:44+05:30",
-			"requires_shipping": true,
-			"taxable": true,
-			"barcode": "",
-			"inventory_quantity": -1,
-			"old_inventory_quantity": -1,
-			"image_id": 8539321735,
-			"weight": 0,
-			"weight_unit": "kg"
-		}, {
-			"id": 13917612423,
-			"product_id": 4059739520,
-			"title": "Test BLUE Item",
-			"price": "499.00",
-			"sku": "",
-			"position": 2,
-			"grams": 0,
-			"inventory_policy": "continue",
-			"compare_at_price": null,
-			"fulfillment_service": "manual",
-			"inventory_management": "shopify",
-			"option1": "BLUE",
-			"option2": null,
-			"option3": null,
-			"created_at": "2016-01-18T17:16:37+05:30",
-			"updated_at": "2016-01-20T17:26:44+05:30",
-			"requires_shipping": true,
-			"taxable": true,
-			"barcode": "",
-			"inventory_quantity": -1,
-			"old_inventory_quantity": -1,
-			"image_id": null,
-			"weight": 0,
-			"weight_unit": "kg"
-		}, {
-			"id": 13917612487,
-			"product_id": 4059739520,
-			"title": "Test White Item",
-			"price": "499.00",
-			"sku": "",
-			"position": 3,
-			"grams": 0,
-			"inventory_policy": "continue",
-			"compare_at_price": null,
-			"fulfillment_service": "manual",
-			"inventory_management": "shopify",
-			"option1": "White",
-			"option2": null,
-			"option3": null,
-			"created_at": "2016-01-18T17:16:37+05:30",
-			"updated_at": "2016-01-18T17:16:37+05:30",
-			"requires_shipping": true,
-			"taxable": true,
-			"barcode": "",
-			"inventory_quantity": 0,
-			"old_inventory_quantity": 0,
-			"image_id": null,
-			"weight": 0,
-			"weight_unit": "kg"
-		}],
-		"options": [{
-			"id": 4985027399,
-			"product_id": 4059739520,
-			"name": "Colour",
-			"position": 1,
-			"values": [
-				"BLACK",
-				"BLUE",
-				"White"
-			]
-		}],
-		"images": [{
-			"id": 8539321735,
-			"product_id": 4059739520,
-			"position": 1,
-			"created_at": "2016-01-18T17:16:37+05:30",
-			"updated_at": "2016-01-18T17:16:37+05:30",
-			"src": "https://cdn.shopify.com/s/files/1/1123/0654/products/2015-12-17_6.png?v=1453117597",
-			"variant_ids": [
-				13917612359
-			]
-		}],
-		"image": {
-			"id": 8539321735,
-			"product_id": 4059739520,
-			"position": 1,
-			"created_at": "2016-01-18T17:16:37+05:30",
-			"updated_at": "2016-01-18T17:16:37+05:30",
-			"src": "https://cdn.shopify.com/s/files/1/1123/0654/products/2015-12-17_6.png?v=1453117597",
-			"variant_ids": [
-				13917612359
-			]
-		}
-	}
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_order.json b/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_order.json
deleted file mode 100644
index 988a2f0..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/test_data/shopify_order.json
+++ /dev/null
@@ -1,270 +0,0 @@
-{
-    "order": {
-        "id": 2414345735,
-        "email": "andrew@wyatt.co.in",
-        "closed_at": null,
-        "created_at": "2016-01-20T17:26:39+05:30",
-        "updated_at": "2016-01-20T17:27:15+05:30",
-        "number": 5,
-        "note": "",
-        "token": "660fed25987517b733644a8c9ec7c8e0",
-        "gateway": "manual",
-        "test": false,
-        "total_price": "1018.00",
-        "subtotal_price": "998.00",
-        "total_weight": 0,
-        "total_tax": "0.00",
-        "taxes_included": false,
-        "currency": "INR",
-        "financial_status": "paid",
-        "confirmed": true,
-        "total_discounts": "0.00",
-        "total_line_items_price": "998.00",
-        "cart_token": null,
-        "buyer_accepts_marketing": false,
-        "name": "#1005",
-        "referring_site": null,
-        "landing_site": null,
-        "cancelled_at": null,
-        "cancel_reason": null,
-        "total_price_usd": "15.02",
-        "checkout_token": null,
-        "reference": null,
-        "user_id": 55391175,
-        "location_id": null,
-        "source_identifier": null,
-        "source_url": null,
-        "processed_at": "2016-01-20T17:26:39+05:30",
-        "device_id": null,
-        "browser_ip": null,
-        "landing_site_ref": null,
-        "order_number": 1005,
-        "discount_codes": [],
-        "note_attributes": [],
-        "payment_gateway_names": [
-            "manual"
-        ],
-        "processing_method": "manual",
-        "checkout_id": null,
-        "source_name": "shopify_draft_order",
-        "fulfillment_status": "fulfilled",
-        "tax_lines": [],
-        "tags": "",
-        "contact_email": "andrew@wyatt.co.in",
-        "line_items": [
-            {
-                "id": 4125768135,
-                "variant_id": 13917612359,
-                "title": "Shopify Test Item",
-                "quantity": 1,
-                "price": "499.00",
-                "grams": 0,
-                "sku": "",
-                "variant_title": "Roman BALCK 1",
-                "vendor": "Boa casa",
-                "fulfillment_service": "manual",
-                "product_id": 4059739527,
-                "requires_shipping": true,
-                "taxable": true,
-                "gift_card": false,
-                "name": "Roman BALCK 1",
-                "variant_inventory_management": "shopify",
-                "properties": [],
-                "product_exists": true,
-                "fulfillable_quantity": 0,
-                "total_discount": "0.00",
-                "fulfillment_status": "fulfilled",
-                "tax_lines": []
-            },
-            {
-                "id": 4125768199,
-                "variant_id": 13917612423,
-                "title": "Shopify Test Item",
-                "quantity": 1,
-                "price": "499.00",
-                "grams": 0,
-                "sku": "",
-                "variant_title": "Satin BLUE 1",
-                "vendor": "Boa casa",
-                "fulfillment_service": "manual",
-                "product_id": 4059739527,
-                "requires_shipping": true,
-                "taxable": true,
-                "gift_card": false,
-                "name": "Satin BLUE 1",
-                "variant_inventory_management": "shopify",
-                "properties": [],
-                "product_exists": true,
-                "fulfillable_quantity": 0,
-                "total_discount": "0.00",
-                "fulfillment_status": "fulfilled",
-                "tax_lines": []
-            }
-        ],
-        "shipping_lines": [
-            {
-                "id": 2108906247,
-                "title": "International Shipping",
-                "price": "20.00",
-                "code": "International Shipping",
-                "source": "shopify",
-                "phone": null,
-                "tax_lines": []
-            }
-        ],
-        "billing_address": {
-            "first_name": "Andrew",
-            "address1": "B-11, Betahouse",
-            "phone": "145-112211",
-            "city": "Manhattan",
-            "zip": "10027",
-            "province": "New York",
-            "country": "United States",
-            "last_name": "Wyatt",
-            "address2": "Street 11, Sector 52",
-            "company": "Wyatt Inc.",
-            "latitude": 40.8138912,
-            "longitude": -73.96243270000001,
-            "name": "Andrew Wyatt",
-            "country_code": "US",
-            "province_code": "NY"
-        },
-        "shipping_address": {
-            "first_name": "Andrew",
-            "address1": "B-11, Betahouse",
-            "phone": "145-112211",
-            "city": "Manhattan",
-            "zip": "10027",
-            "province": "New York",
-            "country": "United States",
-            "last_name": "Wyatt",
-            "address2": "Street 11, Sector 52",
-            "company": "Wyatt Inc.",
-            "latitude": 40.8138912,
-            "longitude": -73.96243270000001,
-            "name": "Andrew Wyatt",
-            "country_code": "US",
-            "province_code": "NY"
-        },
-        "fulfillments": [
-            {
-                "id": 1849629255,
-                "order_id": 2414345735,
-                "status": "success",
-                "created_at": "2016-01-20T17:27:15+05:30",
-                "service": "manual",
-                "updated_at": "2016-01-20T17:27:15+05:30",
-                "tracking_company": null,
-                "tracking_number": null,
-                "tracking_numbers": [],
-                "tracking_url": null,
-                "tracking_urls": [],
-                "receipt": {},
-                "line_items": [
-                    {
-                        "id": 4125768199,
-                        "variant_id": 13917612423,
-                        "title": "1001624/01",
-                        "quantity": 1,
-                        "price": "499.00",
-                        "grams": 0,
-                        "sku": "",
-                        "variant_title": "Satin Silver",
-                        "vendor": "Boa casa",
-                        "fulfillment_service": "manual",
-                        "product_id": 4059739527,
-                        "requires_shipping": true,
-                        "taxable": true,
-                        "gift_card": false,
-                        "name": "1001624/01 - Satin Silver",
-                        "variant_inventory_management": "shopify",
-                        "properties": [],
-                        "product_exists": true,
-                        "fulfillable_quantity": 0,
-                        "total_discount": "0.00",
-                        "fulfillment_status": "fulfilled",
-                        "tax_lines": []
-                    }
-                ]
-            },
-            {
-                "id": 1849628167,
-                "order_id": 2414345735,
-                "status": "success",
-                "created_at": "2016-01-20T17:26:58+05:30",
-                "service": "manual",
-                "updated_at": "2016-01-20T17:26:58+05:30",
-                "tracking_company": null,
-                "tracking_number": null,
-                "tracking_numbers": [],
-                "tracking_url": null,
-                "tracking_urls": [],
-                "receipt": {},
-                "line_items": [
-                    {
-                        "id": 4125768135,
-                        "variant_id": 13917612359,
-                        "title": "1001624/01",
-                        "quantity": 1,
-                        "price": "499.00",
-                        "grams": 0,
-                        "sku": "",
-                        "variant_title": "Roman Bronze",
-                        "vendor": "Boa casa",
-                        "fulfillment_service": "manual",
-                        "product_id": 4059739527,
-                        "requires_shipping": true,
-                        "taxable": true,
-                        "gift_card": false,
-                        "name": "1001624/01 - Roman Bronze",
-                        "variant_inventory_management": "shopify",
-                        "properties": [],
-                        "product_exists": true,
-                        "fulfillable_quantity": 0,
-                        "total_discount": "0.00",
-                        "fulfillment_status": "fulfilled",
-                        "tax_lines": []
-                    }
-                ]
-            }
-        ],
-        "refunds": [],
-        "customer": {
-            "id": 2324518599,
-            "email": "andrew@wyatt.co.in",
-            "accepts_marketing": false,
-            "created_at": "2016-01-20T17:18:35+05:30",
-            "updated_at": "2016-01-20T17:26:39+05:30",
-            "first_name": "Andrew",
-            "last_name": "Wyatt",
-            "orders_count": 1,
-            "state": "disabled",
-            "total_spent": "1018.00",
-            "last_order_id": 2414345735,
-            "note": "",
-            "verified_email": true,
-            "multipass_identifier": null,
-            "tax_exempt": false,
-            "tags": "",
-            "last_order_name": "#1005",
-            "default_address": {
-                "id": 2476804295,
-                "first_name": "Andrew",
-                "last_name": "Wyatt",
-                "company": "Wyatt Inc.",
-                "address1": "B-11, Betahouse",
-                "address2": "Street 11, Sector 52",
-                "city": "Manhattan",
-                "province": "New York",
-                "country": "United States",
-                "zip": "10027",
-                "phone": "145-112211",
-                "name": "Andrew Wyatt",
-                "province_code": "NY",
-                "country_code": "US",
-                "country_name": "United States",
-                "default": true
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/test_shopify_settings.js b/erpnext/erpnext_integrations/doctype/shopify_settings/test_shopify_settings.js
deleted file mode 100644
index b2f82d5..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/test_shopify_settings.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* eslint-disable */
-// rename this file from _test_[name] to test_[name] to activate
-// and remove above this line
-
-QUnit.test("test: Shopify Settings", function (assert) {
-	let done = assert.async();
-
-	// number of asserts
-	assert.expect(1);
-
-	frappe.run_serially([
-		// insert a new Shopify Settings
-		() => frappe.tests.make('Shopify Settings', [
-			// values to be set
-			{key: 'value'}
-		]),
-		() => {
-			assert.equal(cur_frm.doc.key, 'value');
-		},
-		() => done()
-	]);
-
-});
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/test_shopify_settings.py b/erpnext/erpnext_integrations/doctype/shopify_settings/test_shopify_settings.py
deleted file mode 100644
index 6bec301..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_settings/test_shopify_settings.py
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# See license.txt
-from __future__ import unicode_literals
-import frappe
-
-import unittest, os, json
-from frappe.utils import cstr, cint
-from erpnext.erpnext_integrations.connectors.shopify_connection import create_order
-from erpnext.erpnext_integrations.doctype.shopify_settings.sync_product import make_item
-from erpnext.erpnext_integrations.doctype.shopify_settings.sync_customer import create_customer
-from frappe.core.doctype.data_import.data_import import import_doc
-
-
-class ShopifySettings(unittest.TestCase):
-	@classmethod
-	def setUpClass(cls):
-		frappe.set_user("Administrator")
-
-		cls.allow_negative_stock = cint(frappe.db.get_value('Stock Settings', None, 'allow_negative_stock'))
-		if not cls.allow_negative_stock:
-			frappe.db.set_value('Stock Settings', None, 'allow_negative_stock', 1)
-
-		# use the fixture data
-		import_doc(path=frappe.get_app_path("erpnext", "erpnext_integrations/doctype/shopify_settings/test_data/custom_field.json"))
-
-		frappe.reload_doctype("Customer")
-		frappe.reload_doctype("Sales Order")
-		frappe.reload_doctype("Delivery Note")
-		frappe.reload_doctype("Sales Invoice")
-
-		cls.setup_shopify()
-
-	@classmethod
-	def tearDownClass(cls):
-		if not cls.allow_negative_stock:
-			frappe.db.set_value('Stock Settings', None, 'allow_negative_stock', 0)
-
-	@classmethod
-	def setup_shopify(cls):
-		shopify_settings = frappe.get_doc("Shopify Settings")
-		shopify_settings.taxes = []
-
-		shopify_settings.update({
-			"app_type": "Private",
-			"shopify_url": "test.myshopify.com",
-			"api_key": "17702c7c4452b9c5d235240b6e7a39da",
-			"password": "17702c7c4452b9c5d235240b6e7a39da",
-			"shared_secret": "17702c7c4452b9c5d235240b6e7a39da",
-			"price_list": "_Test Price List",
-			"warehouse": "_Test Warehouse - _TC",
-			"cash_bank_account": "Cash - _TC",
-			"account": "Cash - _TC",
-			"customer_group": "_Test Customer Group",
-			"cost_center": "Main - _TC",
-			"taxes": [
-				{
-					"shopify_tax": "International Shipping",
-					"tax_account":"Legal Expenses - _TC"
-				}
-			],
-			"enable_shopify": 0,
-			"sales_order_series": "SO-",
-			"sync_sales_invoice": 1,
-			"sales_invoice_series": "SINV-",
-			"sync_delivery_note": 1,
-			"delivery_note_series": "DN-"
-		}).save(ignore_permissions=True)
-
-		cls.shopify_settings = shopify_settings
-
-	def test_order(self):
-		# Create Customer
-		with open (os.path.join(os.path.dirname(__file__), "test_data", "shopify_customer.json")) as shopify_customer:
-			shopify_customer = json.load(shopify_customer)
-		create_customer(shopify_customer.get("customer"), self.shopify_settings)
-
-		# Create Item
-		with open (os.path.join(os.path.dirname(__file__), "test_data", "shopify_item.json")) as shopify_item:
-			shopify_item = json.load(shopify_item)
-		make_item("_Test Warehouse - _TC", shopify_item.get("product"))
-
-		# Create Order
-		with open (os.path.join(os.path.dirname(__file__), "test_data", "shopify_order.json")) as shopify_order:
-			shopify_order = json.load(shopify_order)
-
-		create_order(shopify_order.get("order"), self.shopify_settings, False, company="_Test Company")
-
-		sales_order = frappe.get_doc("Sales Order", {"shopify_order_id": cstr(shopify_order.get("order").get("id"))})
-
-		self.assertEqual(cstr(shopify_order.get("order").get("id")), sales_order.shopify_order_id)
-
-		# Check for customer
-		shopify_order_customer_id = cstr(shopify_order.get("order").get("customer").get("id"))
-		sales_order_customer_id = frappe.get_value("Customer", sales_order.customer, "shopify_customer_id")
-
-		self.assertEqual(shopify_order_customer_id, sales_order_customer_id)
-
-		# Check sales invoice
-		sales_invoice = frappe.get_doc("Sales Invoice", {"shopify_order_id": sales_order.shopify_order_id})
-		self.assertEqual(sales_invoice.rounded_total, sales_order.rounded_total)
-
-		# Check delivery note
-		delivery_note_count = frappe.db.sql("""select count(*) from `tabDelivery Note`
-			where shopify_order_id = %s""", sales_order.shopify_order_id)[0][0]
-
-		self.assertEqual(delivery_note_count, len(shopify_order.get("order").get("fulfillments")))
diff --git a/erpnext/erpnext_integrations/doctype/shopify_tax_account/shopify_tax_account.json b/erpnext/erpnext_integrations/doctype/shopify_tax_account/shopify_tax_account.json
deleted file mode 100644
index 63c674c..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_tax_account/shopify_tax_account.json
+++ /dev/null
@@ -1,133 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "beta": 0, 
- "creation": "2015-10-05 16:55:20.455371", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 0, 
- "fields": [
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "shopify_tax", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Shopify Tax/Shipping Title", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "column_break_2", 
-   "fieldtype": "Column Break", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 0, 
-   "in_standard_filter": 0, 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "tax_account", 
-   "fieldtype": "Link", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "ERPNext Account", 
-   "length": 0, 
-   "no_copy": 0, 
-   "options": "Account", 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 0, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 1, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }
- ], 
- "has_web_view": 0, 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 1, 
- "max_attachments": 0, 
- "modified": "2018-04-09 11:36:49.272815", 
- "modified_by": "Administrator", 
- "module": "ERPNext Integrations", 
- "name": "Shopify Tax Account", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [], 
- "quick_entry": 0, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_changes": 0, 
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_tax_account/shopify_tax_account.py b/erpnext/erpnext_integrations/doctype/shopify_tax_account/shopify_tax_account.py
deleted file mode 100644
index 74c13c0..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_tax_account/shopify_tax_account.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.model.document import Document
-
-class ShopifyTaxAccount(Document):
-	pass
diff --git a/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/shopify_webhook_detail.json b/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/shopify_webhook_detail.json
deleted file mode 100644
index e47ecdc..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/shopify_webhook_detail.json
+++ /dev/null
@@ -1,103 +0,0 @@
-{
- "allow_copy": 0, 
- "allow_guest_to_view": 0, 
- "allow_import": 0, 
- "allow_rename": 0, 
- "beta": 0, 
- "creation": "2018-04-10 17:06:22.697427", 
- "custom": 0, 
- "docstatus": 0, 
- "doctype": "DocType", 
- "document_type": "", 
- "editable_grid": 0, 
- "engine": "InnoDB", 
- "fields": [
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "webhook_id", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Webhook ID", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }, 
-  {
-   "allow_bulk_edit": 0, 
-   "allow_on_submit": 0, 
-   "bold": 0, 
-   "collapsible": 0, 
-   "columns": 0, 
-   "fieldname": "method", 
-   "fieldtype": "Data", 
-   "hidden": 0, 
-   "ignore_user_permissions": 0, 
-   "ignore_xss_filter": 0, 
-   "in_filter": 0, 
-   "in_global_search": 0, 
-   "in_list_view": 1, 
-   "in_standard_filter": 0, 
-   "label": "Method", 
-   "length": 0, 
-   "no_copy": 0, 
-   "permlevel": 0, 
-   "precision": "", 
-   "print_hide": 0, 
-   "print_hide_if_no_value": 0, 
-   "read_only": 1, 
-   "remember_last_selected_value": 0, 
-   "report_hide": 0, 
-   "reqd": 0, 
-   "search_index": 0, 
-   "set_only_once": 0, 
-   "translatable": 0, 
-   "unique": 0
-  }
- ], 
- "has_web_view": 0, 
- "hide_heading": 0, 
- "hide_toolbar": 0, 
- "idx": 0, 
- "image_view": 0, 
- "in_create": 0, 
- "is_submittable": 0, 
- "issingle": 0, 
- "istable": 1, 
- "max_attachments": 0, 
- "modified": "2018-04-11 12:43:09.456449", 
- "modified_by": "Administrator", 
- "module": "ERPNext Integrations", 
- "name": "Shopify Webhook Detail", 
- "name_case": "", 
- "owner": "Administrator", 
- "permissions": [], 
- "quick_entry": 1, 
- "read_only": 0, 
- "read_only_onload": 0, 
- "show_name_in_global_search": 0, 
- "sort_field": "modified", 
- "sort_order": "DESC", 
- "track_changes": 1, 
- "track_seen": 0
-}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/shopify_webhook_detail.py b/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/shopify_webhook_detail.py
deleted file mode 100644
index e127989..0000000
--- a/erpnext/erpnext_integrations/doctype/shopify_webhook_detail/shopify_webhook_detail.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
-# For license information, please see license.txt
-
-from __future__ import unicode_literals
-import frappe
-from frappe.model.document import Document
-
-class ShopifyWebhookDetail(Document):
-	pass
diff --git a/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json b/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json
index 4a5e54e..9f9204a 100644
--- a/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json
+++ b/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json
@@ -1,22 +1,27 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Marketplace\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Payments\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}]",
  "creation": "2020-08-20 19:30:48.138801",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
- "extends": "Integrations",
- "extends_another_page": 1,
- "hide_custom": 1,
+ "extends": "",
+ "extends_another_page": 0,
+ "for_user": "",
+ "hide_custom": 0,
+ "icon": "integration",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "ERPNext Integrations",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Marketplace",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -25,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Woocommerce Settings",
+   "link_count": 0,
    "link_to": "Woocommerce Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -35,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Amazon MWS Settings",
+   "link_count": 0,
    "link_to": "Amazon MWS Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -45,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shopify Settings",
+   "link_count": 0,
    "link_to": "Shopify Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -54,6 +62,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payments",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -62,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "GoCardless Settings",
+   "link_count": 0,
    "link_to": "GoCardless Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -72,6 +82,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "M-Pesa Settings",
+   "link_count": 0,
    "link_to": "Mpesa Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +92,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -89,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Plaid Settings",
+   "link_count": 0,
    "link_to": "Plaid Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -99,18 +112,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Exotel Settings",
+   "link_count": 0,
    "link_to": "Exotel Settings",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:35.846528",
+ "modified": "2021-08-05 12:15:58.740246",
  "modified_by": "Administrator",
  "module": "ERPNext Integrations",
  "name": "ERPNext Integrations",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
- "shortcuts": []
-}
\ No newline at end of file
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 10,
+ "shortcuts": [],
+ "title": "ERPNext Integrations"
+}
diff --git a/erpnext/erpnext_integrations/workspace/erpnext_integrations_settings/erpnext_integrations_settings.json b/erpnext/erpnext_integrations/workspace/erpnext_integrations_settings/erpnext_integrations_settings.json
index d258d57..fd4afb8 100644
--- a/erpnext/erpnext_integrations/workspace/erpnext_integrations_settings/erpnext_integrations_settings.json
+++ b/erpnext/erpnext_integrations/workspace/erpnext_integrations_settings/erpnext_integrations_settings.json
@@ -1,22 +1,27 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Integrations Settings\", \"col\": 4}}]",
  "creation": "2020-07-31 10:38:54.021237",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
- "extends": "Settings",
- "extends_another_page": 1,
+ "extends": "",
+ "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
+ "icon": "setting",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "ERPNext Integrations Settings",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Integrations Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -25,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Woocommerce Settings",
+   "link_count": 0,
    "link_to": "Woocommerce Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -35,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shopify Settings",
+   "link_count": 0,
    "link_to": "Shopify Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -45,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Amazon MWS Settings",
+   "link_count": 0,
    "link_to": "Amazon MWS Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -55,6 +63,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Plaid Settings",
+   "link_count": 0,
    "link_to": "Plaid Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -65,18 +74,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Exotel Settings",
+   "link_count": 0,
    "link_to": "Exotel Settings",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:34.732552",
+ "modified": "2021-08-05 12:15:58.951704",
  "modified_by": "Administrator",
  "module": "ERPNext Integrations",
  "name": "ERPNext Integrations Settings",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
- "shortcuts": []
-}
\ No newline at end of file
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 11,
+ "shortcuts": [],
+ "title": "ERPNext Integrations Settings"
+}
diff --git a/erpnext/healthcare/doctype/exercise_type/exercise_type.js b/erpnext/healthcare/doctype/exercise_type/exercise_type.js
index b49b00e..0614604 100644
--- a/erpnext/healthcare/doctype/exercise_type/exercise_type.js
+++ b/erpnext/healthcare/doctype/exercise_type/exercise_type.js
@@ -9,14 +9,14 @@
 	}
 });
 
-erpnext.ExerciseEditor = Class.extend({
-	init: function(frm, wrapper) {
+erpnext.ExerciseEditor = class ExerciseEditor {
+	constructor(frm, wrapper) {
 		this.wrapper = wrapper;
 		this.frm = frm;
 		this.make(frm, wrapper);
-	},
+	}
 
-	make: function(frm, wrapper) {
+	make(frm, wrapper) {
 		$(this.wrapper).empty();
 
 		this.exercise_toolbar = $('<p>\
@@ -38,9 +38,9 @@
 			this.make_cards(frm);
 			this.make_buttons(frm);
 		}
-	},
+	}
 
-	make_cards: function(frm) {
+	make_cards(frm) {
 		var me = this;
 		$(me.exercise_cards).empty();
 
@@ -60,9 +60,9 @@
 					</div>
 			</div>`, {image_src: step.image, title: step.title, description: step.description, col_id: "col-"+i, card_id: "card-"+i, id: i})).appendTo(me.row);
 		});
-	},
+	}
 
-	make_buttons: function(frm) {
+	make_buttons(frm) {
 		let me = this;
 		$('.btn-edit').on('click', function() {
 			let id = $(this).attr('data-id');
@@ -82,9 +82,9 @@
 				frm.dirty();
 			}, 300);
 		});
-	},
+	}
 
-	show_add_card_dialog: function(frm) {
+	show_add_card_dialog(frm) {
 		let me = this;
 		let d = new frappe.ui.Dialog({
 			title: __('Add Exercise Step'),
@@ -137,9 +137,9 @@
 			primary_action_label: __('Add')
 		});
 		d.show();
-	},
+	}
 
-	show_edit_card_dialog: function(frm, id) {
+	show_edit_card_dialog(frm, id) {
 		let new_dialog = new frappe.ui.Dialog({
 			title: __("Edit Exercise Step"),
 			fields: [
@@ -183,4 +183,4 @@
 		});
 		new_dialog.show();
 	}
-});
+};
diff --git a/erpnext/healthcare/doctype/patient/patient.py b/erpnext/healthcare/doctype/patient/patient.py
index cebcb20..56a3400 100644
--- a/erpnext/healthcare/doctype/patient/patient.py
+++ b/erpnext/healthcare/doctype/patient/patient.py
@@ -40,7 +40,6 @@
 					customer.customer_group = self.customer_group
 				if self.territory:
 					customer.territory = self.territory
-
 				customer.customer_name = self.patient_name
 				customer.default_price_list = self.default_price_list
 				customer.default_currency = self.default_currency
diff --git a/erpnext/healthcare/doctype/patient_history_settings/test_patient_history_settings.py b/erpnext/healthcare/doctype/patient_history_settings/test_patient_history_settings.py
index c93b788..33119d8 100644
--- a/erpnext/healthcare/doctype/patient_history_settings/test_patient_history_settings.py
+++ b/erpnext/healthcare/doctype/patient_history_settings/test_patient_history_settings.py
@@ -6,7 +6,7 @@
 import frappe
 import unittest
 import json
-from frappe.utils import getdate
+from frappe.utils import getdate, strip_html
 from erpnext.healthcare.doctype.patient_appointment.test_patient_appointment import create_patient
 
 class TestPatientHistorySettings(unittest.TestCase):
@@ -44,9 +44,9 @@
 		self.assertTrue(medical_rec)
 
 		medical_rec = frappe.get_doc("Patient Medical Record", medical_rec)
-		expected_subject = "<b>Date: </b>{0}<br><b>Rating: </b>3<br><b>Feedback: </b>Test Patient History Settings<br>".format(
+		expected_subject = "Date: {0}Rating: 3Feedback: Test Patient History Settings".format(
 			frappe.utils.format_date(getdate()))
-		self.assertEqual(medical_rec.subject, expected_subject)
+		self.assertEqual(strip_html(medical_rec.subject), expected_subject)
 		self.assertEqual(medical_rec.patient, patient)
 		self.assertEqual(medical_rec.communication_date, getdate())
 
@@ -101,4 +101,4 @@
 	}).insert()
 	doc.submit()
 
-	return doc
\ No newline at end of file
+	return doc
diff --git a/erpnext/healthcare/workspace/healthcare/healthcare.json b/erpnext/healthcare/workspace/healthcare/healthcare.json
index b93dda2..55132f3 100644
--- a/erpnext/healthcare/workspace/healthcare/healthcare.json
+++ b/erpnext/healthcare/workspace/healthcare/healthcare.json
@@ -1,5 +1,5 @@
 {
- "category": "Domains",
+ "category": "",
  "charts": [
   {
    "chart_name": "Patient Appointments",
@@ -7,22 +7,27 @@
   }
  ],
  "charts_label": "",
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Healthcare\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Patient Appointments\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Patient Appointment\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Patient\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Healthcare Service Unit\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Healthcare Practitioner\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Patient History\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Masters\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Consultation Setup\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Consultation\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Laboratory Setup\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Laboratory\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Rehabilitation and Physiotherapy\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Records and History\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}]",
  "creation": "2020-03-02 17:23:17.919682",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "healthcare",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Healthcare",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Masters",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -31,6 +36,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient",
+   "link_count": 0,
    "link_to": "Patient",
    "link_type": "DocType",
    "onboard": 1,
@@ -41,6 +47,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Healthcare Practitioner",
+   "link_count": 0,
    "link_to": "Healthcare Practitioner",
    "link_type": "DocType",
    "onboard": 1,
@@ -51,6 +58,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Practitioner Schedule",
+   "link_count": 0,
    "link_to": "Practitioner Schedule",
    "link_type": "DocType",
    "onboard": 1,
@@ -61,6 +69,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Medical Department",
+   "link_count": 0,
    "link_to": "Medical Department",
    "link_type": "DocType",
    "onboard": 0,
@@ -71,6 +80,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Healthcare Service Unit Type",
+   "link_count": 0,
    "link_to": "Healthcare Service Unit Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +91,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Healthcare Service Unit",
+   "link_count": 0,
    "link_to": "Healthcare Service Unit",
    "link_type": "DocType",
    "onboard": 0,
@@ -91,6 +102,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Medical Code Standard",
+   "link_count": 0,
    "link_to": "Medical Code Standard",
    "link_type": "DocType",
    "onboard": 0,
@@ -101,6 +113,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Medical Code",
+   "link_count": 0,
    "link_to": "Medical Code",
    "link_type": "DocType",
    "onboard": 0,
@@ -110,6 +123,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Consultation Setup",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -118,6 +132,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Appointment Type",
+   "link_count": 0,
    "link_to": "Appointment Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -128,6 +143,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Clinical Procedure Template",
+   "link_count": 0,
    "link_to": "Clinical Procedure Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -138,6 +154,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Prescription Dosage",
+   "link_count": 0,
    "link_to": "Prescription Dosage",
    "link_type": "DocType",
    "onboard": 0,
@@ -148,6 +165,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Prescription Duration",
+   "link_count": 0,
    "link_to": "Prescription Duration",
    "link_type": "DocType",
    "onboard": 0,
@@ -158,6 +176,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Antibiotic",
+   "link_count": 0,
    "link_to": "Antibiotic",
    "link_type": "DocType",
    "onboard": 0,
@@ -167,6 +186,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Consultation",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -175,6 +195,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient Appointment",
+   "link_count": 0,
    "link_to": "Patient Appointment",
    "link_type": "DocType",
    "onboard": 0,
@@ -185,6 +206,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Clinical Procedure",
+   "link_count": 0,
    "link_to": "Clinical Procedure",
    "link_type": "DocType",
    "onboard": 0,
@@ -195,6 +217,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient Encounter",
+   "link_count": 0,
    "link_to": "Patient Encounter",
    "link_type": "DocType",
    "onboard": 0,
@@ -205,6 +228,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Vital Signs",
+   "link_count": 0,
    "link_to": "Vital Signs",
    "link_type": "DocType",
    "onboard": 0,
@@ -215,6 +239,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Complaint",
+   "link_count": 0,
    "link_to": "Complaint",
    "link_type": "DocType",
    "onboard": 0,
@@ -225,6 +250,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Diagnosis",
+   "link_count": 0,
    "link_to": "Diagnosis",
    "link_type": "DocType",
    "onboard": 0,
@@ -235,6 +261,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fee Validity",
+   "link_count": 0,
    "link_to": "Fee Validity",
    "link_type": "DocType",
    "onboard": 0,
@@ -244,6 +271,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -252,6 +280,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Healthcare Settings",
+   "link_count": 0,
    "link_to": "Healthcare Settings",
    "link_type": "DocType",
    "onboard": 1,
@@ -261,6 +290,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Laboratory Setup",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -269,6 +299,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lab Test Template",
+   "link_count": 0,
    "link_to": "Lab Test Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -279,6 +310,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lab Test Sample",
+   "link_count": 0,
    "link_to": "Lab Test Sample",
    "link_type": "DocType",
    "onboard": 0,
@@ -289,6 +321,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lab Test UOM",
+   "link_count": 0,
    "link_to": "Lab Test UOM",
    "link_type": "DocType",
    "onboard": 0,
@@ -299,6 +332,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sensitivity",
+   "link_count": 0,
    "link_to": "Sensitivity",
    "link_type": "DocType",
    "onboard": 0,
@@ -308,6 +342,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Laboratory",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -316,6 +351,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lab Test",
+   "link_count": 0,
    "link_to": "Lab Test",
    "link_type": "DocType",
    "onboard": 0,
@@ -326,6 +362,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sample Collection",
+   "link_count": 0,
    "link_to": "Sample Collection",
    "link_type": "DocType",
    "onboard": 0,
@@ -336,6 +373,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Dosage Form",
+   "link_count": 0,
    "link_to": "Dosage Form",
    "link_type": "DocType",
    "onboard": 0,
@@ -345,6 +383,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Rehabilitation and Physiotherapy",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -353,6 +392,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Exercise Type",
+   "link_count": 0,
    "link_to": "Exercise Type",
    "link_type": "DocType",
    "onboard": 1,
@@ -363,6 +403,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Therapy Type",
+   "link_count": 0,
    "link_to": "Therapy Type",
    "link_type": "DocType",
    "onboard": 1,
@@ -373,6 +414,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Therapy Plan",
+   "link_count": 0,
    "link_to": "Therapy Plan",
    "link_type": "DocType",
    "onboard": 0,
@@ -383,6 +425,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Therapy Session",
+   "link_count": 0,
    "link_to": "Therapy Session",
    "link_type": "DocType",
    "onboard": 0,
@@ -393,6 +436,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient Assessment Template",
+   "link_count": 0,
    "link_to": "Patient Assessment Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -403,6 +447,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient Assessment",
+   "link_count": 0,
    "link_to": "Patient Assessment",
    "link_type": "DocType",
    "onboard": 0,
@@ -412,6 +457,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Records and History",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -420,6 +466,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient History",
+   "link_count": 0,
    "link_to": "patient_history",
    "link_type": "Page",
    "onboard": 0,
@@ -430,6 +477,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient Progress",
+   "link_count": 0,
    "link_to": "patient-progress",
    "link_type": "Page",
    "onboard": 0,
@@ -440,6 +488,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Patient Medical Record",
+   "link_count": 0,
    "link_to": "Patient Medical Record",
    "link_type": "DocType",
    "onboard": 0,
@@ -450,6 +499,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Inpatient Record",
+   "link_count": 0,
    "link_to": "Inpatient Record",
    "link_type": "DocType",
    "onboard": 0,
@@ -459,6 +509,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -467,6 +518,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Patient Appointment Analytics",
+   "link_count": 0,
    "link_to": "Patient Appointment Analytics",
    "link_type": "Report",
    "onboard": 0,
@@ -477,21 +529,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Lab Test Report",
+   "link_count": 0,
    "link_to": "Lab Test Report",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:34.841396",
+ "modified": "2021-08-05 12:15:59.434612",
  "modified_by": "Administrator",
  "module": "Healthcare",
  "name": "Healthcare",
  "onboarding": "Healthcare",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
  "restrict_to_domain": "Healthcare",
+ "roles": [],
+ "sequence_id": 13,
  "shortcuts": [
   {
    "color": "Orange",
@@ -532,5 +589,6 @@
    "link_to": "Healthcare",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Healthcare"
 }
\ No newline at end of file
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index e6b6cc4..8f7c7db 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -15,10 +15,11 @@
 
 develop_version = '13.x.x-develop'
 
-app_include_js = "/assets/js/erpnext.min.js"
-app_include_css = "/assets/css/erpnext.css"
-web_include_js = "/assets/js/erpnext-web.min.js"
-web_include_css = "/assets/css/erpnext-web.css"
+app_include_js = "erpnext.bundle.js"
+app_include_css = "erpnext.bundle.css"
+web_include_js = "erpnext-web.bundle.js"
+web_include_css = "erpnext-web.bundle.css"
+email_css = "email_erpnext.bundle.css"
 
 doctype_js = {
 	"Address": "public/js/address.js",
@@ -229,6 +230,7 @@
 
 doc_events = {
 	"*": {
+		"validate": "erpnext.support.doctype.service_level_agreement.service_level_agreement.apply",
 		"on_submit": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.create_medical_record",
 		"on_update_after_submit": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.update_medical_record",
 		"on_cancel": "erpnext.healthcare.doctype.patient_history_settings.patient_history_settings.delete_medical_record"
@@ -243,6 +245,12 @@
 		"on_update": ["erpnext.hr.doctype.employee.employee.update_user_permissions",
 			"erpnext.portal.utils.set_default_role"]
 	},
+	"Communication": {
+		"on_update": [
+			"erpnext.support.doctype.service_level_agreement.service_level_agreement.update_hold_time",
+			"erpnext.support.doctype.issue.issue.set_first_response_time"
+		]
+	},
 	("Sales Taxes and Charges Template", 'Price List'): {
 		"on_update": "erpnext.shopping_cart.doctype.shopping_cart_settings.shopping_cart_settings.validate_cart_settings"
 	},
@@ -333,8 +341,7 @@
 		"erpnext.projects.doctype.project.project.hourly_reminder",
 		"erpnext.projects.doctype.project.project.collect_project_status",
 		"erpnext.hr.doctype.shift_type.shift_type.process_auto_attendance_for_all_shifts",
-		"erpnext.support.doctype.issue.issue.set_service_level_agreement_variance",
-		"erpnext.erpnext_integrations.connectors.shopify_connection.sync_old_orders"
+		"erpnext.support.doctype.service_level_agreement.service_level_agreement.set_service_level_agreement_variance"
 	],
 	"hourly_long": [
 		"erpnext.stock.doctype.repost_item_valuation.repost_item_valuation.repost_entries"
diff --git a/erpnext/hr/doctype/attendance/attendance.py b/erpnext/hr/doctype/attendance/attendance.py
index f79f0fe..c1a7c8f 100644
--- a/erpnext/hr/doctype/attendance/attendance.py
+++ b/erpnext/hr/doctype/attendance/attendance.py
@@ -135,7 +135,7 @@
 def mark_bulk_attendance(data):
 	import json
 	from pprint import pprint
-	if isinstance(data, frappe.string_types):
+	if isinstance(data, str):
 		data = json.loads(data)
 	data = frappe._dict(data)
 	company = frappe.get_value('Employee', data.employee, 'company')
diff --git a/erpnext/hr/doctype/attendance_request/test_attendance_request.py b/erpnext/hr/doctype/attendance_request/test_attendance_request.py
index 3c42bd9..9e668aa 100644
--- a/erpnext/hr/doctype/attendance_request/test_attendance_request.py
+++ b/erpnext/hr/doctype/attendance_request/test_attendance_request.py
@@ -15,7 +15,11 @@
 		for doctype in ["Attendance Request", "Attendance"]:
 			frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
 
+	def tearDown(self):
+		frappe.db.rollback()
+
 	def test_on_duty_attendance_request(self):
+		"Test creation/updation of Attendace from Attendance Request, on duty."
 		today = nowdate()
 		employee = get_employee()
 		attendance_request = frappe.new_doc("Attendance Request")
@@ -26,17 +30,36 @@
 		attendance_request.company = "_Test Company"
 		attendance_request.insert()
 		attendance_request.submit()
-		attendance = frappe.get_doc('Attendance', {
-			'employee': employee.name,
-			'attendance_date': date(date.today().year, 1, 1),
-			'docstatus': 1
-		})
-		self.assertEqual(attendance.status, 'Present')
+
+		attendance = frappe.db.get_value(
+			"Attendance",
+			filters={
+				"attendance_request": attendance_request.name,
+				"attendance_date": date(date.today().year, 1, 1)
+			},
+			fieldname=["status", "docstatus"],
+			as_dict=True
+		)
+		self.assertEqual(attendance.status, "Present")
+		self.assertEqual(attendance.docstatus, 1)
+
+		# cancelling attendance request cancels linked attendances
 		attendance_request.cancel()
-		attendance.reload()
-		self.assertEqual(attendance.docstatus, 2)
+
+		# cancellation alters docname
+		# fetch attendance value again to avoid stale docname
+		attendance_docstatus = frappe.db.get_value(
+			"Attendance",
+			filters={
+				"attendance_request": attendance_request.name,
+				"attendance_date": date(date.today().year, 1, 1)
+			},
+			fieldname="docstatus"
+		)
+		self.assertEqual(attendance_docstatus, 2)
 
 	def test_work_from_home_attendance_request(self):
+		"Test creation/updation of Attendace from Attendance Request, work from home."
 		today = nowdate()
 		employee = get_employee()
 		attendance_request = frappe.new_doc("Attendance Request")
@@ -47,15 +70,30 @@
 		attendance_request.company = "_Test Company"
 		attendance_request.insert()
 		attendance_request.submit()
-		attendance = frappe.get_doc('Attendance', {
-			'employee': employee.name,
-			'attendance_date': date(date.today().year, 1, 1),
-			'docstatus': 1
-		})
-		self.assertEqual(attendance.status, 'Work From Home')
+
+		attendance_status = frappe.db.get_value(
+			"Attendance",
+			filters={
+				"attendance_request": attendance_request.name,
+				"attendance_date": date(date.today().year, 1, 1)
+			},
+			fieldname="status"
+		)
+		self.assertEqual(attendance_status, 'Work From Home')
+
 		attendance_request.cancel()
-		attendance.reload()
-		self.assertEqual(attendance.docstatus, 2)
+
+		# cancellation alters docname
+		# fetch attendance value again to avoid stale docname
+		attendance_docstatus = frappe.db.get_value(
+			"Attendance",
+			filters={
+				"attendance_request": attendance_request.name,
+				"attendance_date": date(date.today().year, 1, 1)
+			},
+			fieldname="docstatus"
+		)
+		self.assertEqual(attendance_docstatus, 2)
 
 def get_employee():
 	return frappe.get_doc("Employee", "_T-Employee-00001")
diff --git a/erpnext/hr/doctype/employee/employee.js b/erpnext/hr/doctype/employee/employee.js
index c21d4b8..5639cc9 100755
--- a/erpnext/hr/doctype/employee/employee.js
+++ b/erpnext/hr/doctype/employee/employee.js
@@ -2,8 +2,8 @@
 // License: GNU General Public License v3. See license.txt
 
 frappe.provide("erpnext.hr");
-erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({
-	setup: function() {
+erpnext.hr.EmployeeController = class EmployeeController extends frappe.ui.form.Controller {
+	setup() {
 		this.frm.fields_dict.user_id.get_query = function(doc, cdt, cdn) {
 			return {
 				query: "frappe.core.doctype.user.user.user_query",
@@ -12,30 +12,30 @@
 		}
 		this.frm.fields_dict.reports_to.get_query = function(doc, cdt, cdn) {
 			return { query: "erpnext.controllers.queries.employee_query"} }
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		var me = this;
 		erpnext.toggle_naming_series();
-	},
+	}
 
-	date_of_birth: function() {
+	date_of_birth() {
 		return cur_frm.call({
 			method: "get_retirement_date",
 			args: {date_of_birth: this.frm.doc.date_of_birth}
 		});
-	},
+	}
 
-	salutation: function() {
+	salutation() {
 		if(this.frm.doc.salutation) {
 			this.frm.set_value("gender", {
 				"Mr": "Male",
 				"Ms": "Female"
 			}[this.frm.doc.salutation]);
 		}
-	},
+	}
 
-});
+};
 frappe.ui.form.on('Employee',{
 	setup: function(frm) {
 		frm.set_query("leave_policy", function() {
diff --git a/erpnext/hr/doctype/employee_attendance_tool/employee_attendance_tool.js b/erpnext/hr/doctype/employee_attendance_tool/employee_attendance_tool.js
index 3205a92..ab965d5 100644
--- a/erpnext/hr/doctype/employee_attendance_tool/employee_attendance_tool.js
+++ b/erpnext/hr/doctype/employee_attendance_tool/employee_attendance_tool.js
@@ -68,13 +68,13 @@
 	}
 }
 
-erpnext.MarkedEmployee = Class.extend({
-	init: function(frm, wrapper, employee) {
+erpnext.MarkedEmployee = class MarkedEmployee {
+	constructor(frm, wrapper, employee) {
 		this.wrapper = wrapper;
 		this.frm = frm;
 		this.make(frm, employee);
-	},
-	make: function(frm, employee) {
+	}
+	make(frm, employee) {
 		var me = this;
 		$(this.wrapper).empty();
 
@@ -104,16 +104,16 @@
 				})).appendTo(row);
 		});
 	}
-});
+};
 
 
-erpnext.EmployeeSelector = Class.extend({
-	init: function(frm, wrapper, employee) {
+erpnext.EmployeeSelector = class EmployeeSelector {
+	constructor(frm, wrapper, employee) {
 		this.wrapper = wrapper;
 		this.frm = frm;
 		this.make(frm, employee);
-	},
-	make: function(frm, employee) {
+	}
+	make(frm, employee) {
 		var me = this;
 
 		$(this.wrapper).empty();
@@ -266,6 +266,6 @@
 
 		mark_employee_toolbar.appendTo($(this.wrapper));
 	}
-});
+};
 
 
diff --git a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.js b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.js
index d6047e1..5d1a024 100644
--- a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.js
+++ b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.js
@@ -50,28 +50,13 @@
 			}, __('Create'));
 			frm.page.set_inner_btn_group_as_primary(__('Create'));
 		}
-		if (frm.doc.docstatus === 1 && frm.doc.project) {
-			frappe.call({
-				method: "erpnext.hr.utils.get_boarding_status",
-				args: {
-					"project": frm.doc.project
-				},
-				callback: function(r) {
-					if (r.message) {
-						frm.set_value('boarding_status', r.message);
-					}
-					refresh_field("boarding_status");
-				}
-			});
-		}
-
 	},
 
 	employee_onboarding_template: function(frm) {
 		frm.set_value("activities" ,"");
 		if (frm.doc.employee_onboarding_template) {
 			frappe.call({
-				method: "erpnext.hr.utils.get_onboarding_details",
+				method: "erpnext.controllers.employee_boarding_controller.get_onboarding_details",
 				args: {
 					"parent": frm.doc.employee_onboarding_template,
 					"parenttype": "Employee Onboarding Template"
diff --git a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.json b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.json
index 783c757..673e228 100644
--- a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.json
+++ b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.json
@@ -30,18 +30,14 @@
    "fieldtype": "Link",
    "label": "Job Applicant",
    "options": "Job Applicant",
-   "reqd": 1,
-   "show_days": 1,
-   "show_seconds": 1
+   "reqd": 1
   },
   {
    "fieldname": "job_offer",
    "fieldtype": "Link",
    "label": "Job Offer",
    "options": "Job Offer",
-   "reqd": 1,
-   "show_days": 1,
-   "show_seconds": 1
+   "reqd": 1
   },
   {
    "fetch_from": "job_applicant.applicant_name",
@@ -49,116 +45,90 @@
    "fieldtype": "Data",
    "in_list_view": 1,
    "label": "Employee Name",
-   "reqd": 1,
-   "show_days": 1,
-   "show_seconds": 1
+   "reqd": 1
   },
   {
    "fieldname": "employee",
    "fieldtype": "Link",
    "label": "Employee",
    "options": "Employee",
-   "read_only": 1,
-   "show_days": 1,
-   "show_seconds": 1
+   "read_only": 1
   },
   {
    "fieldname": "date_of_joining",
    "fieldtype": "Date",
    "in_list_view": 1,
-   "label": "Date of Joining",
-   "show_days": 1,
-   "show_seconds": 1
+   "label": "Date of Joining"
   },
   {
    "allow_on_submit": 1,
+   "default": "Pending",
    "fieldname": "boarding_status",
    "fieldtype": "Select",
    "label": "Status",
-   "options": "\nPending\nIn Process\nCompleted",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Pending\nIn Process\nCompleted",
+   "read_only": 1
   },
   {
    "allow_on_submit": 1,
    "default": "0",
    "fieldname": "notify_users_by_email",
    "fieldtype": "Check",
-   "label": "Notify users by email",
-   "show_days": 1,
-   "show_seconds": 1
+   "label": "Notify users by email"
   },
   {
    "fieldname": "column_break_7",
-   "fieldtype": "Column Break",
-   "show_days": 1,
-   "show_seconds": 1
+   "fieldtype": "Column Break"
   },
   {
    "fieldname": "employee_onboarding_template",
    "fieldtype": "Link",
    "label": "Employee Onboarding Template",
-   "options": "Employee Onboarding Template",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Employee Onboarding Template"
   },
   {
    "fieldname": "company",
    "fieldtype": "Link",
    "label": "Company",
-   "options": "Company",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Company"
   },
   {
    "fieldname": "department",
    "fieldtype": "Link",
    "in_list_view": 1,
    "label": "Department",
-   "options": "Department",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Department"
   },
   {
    "fieldname": "designation",
    "fieldtype": "Link",
    "in_list_view": 1,
    "label": "Designation",
-   "options": "Designation",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Designation"
   },
   {
    "fieldname": "employee_grade",
    "fieldtype": "Link",
    "label": "Employee Grade",
-   "options": "Employee Grade",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Employee Grade"
   },
   {
    "fieldname": "project",
    "fieldtype": "Link",
    "label": "Project",
    "options": "Project",
-   "read_only": 1,
-   "show_days": 1,
-   "show_seconds": 1
+   "read_only": 1
   },
   {
    "fieldname": "table_for_activity",
-   "fieldtype": "Section Break",
-   "show_days": 1,
-   "show_seconds": 1
+   "fieldtype": "Section Break"
   },
   {
    "allow_on_submit": 1,
    "fieldname": "activities",
    "fieldtype": "Table",
    "label": "Activities",
-   "options": "Employee Boarding Activity",
-   "show_days": 1,
-   "show_seconds": 1
+   "options": "Employee Boarding Activity"
   },
   {
    "fieldname": "amended_from",
@@ -167,14 +137,12 @@
    "no_copy": 1,
    "options": "Employee Onboarding",
    "print_hide": 1,
-   "read_only": 1,
-   "show_days": 1,
-   "show_seconds": 1
+   "read_only": 1
   }
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2020-06-25 15:22:24.923835",
+ "modified": "2021-06-03 18:01:51.097927",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Employee Onboarding",
diff --git a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py
index 6cc2bf5..55fe317 100644
--- a/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py
+++ b/erpnext/hr/doctype/employee_onboarding/employee_onboarding.py
@@ -5,7 +5,7 @@
 from __future__ import unicode_literals
 import frappe
 from frappe import _
-from erpnext.hr.utils import EmployeeBoardingController
+from erpnext.controllers.employee_boarding_controller import EmployeeBoardingController
 from frappe.model.mapper import get_mapped_doc
 
 class IncompleteTaskError(frappe.ValidationError): pass
@@ -16,9 +16,9 @@
 		self.validate_duplicate_employee_onboarding()
 
 	def validate_duplicate_employee_onboarding(self):
-		emp_onboarding = frappe.db.exists("Employee Onboarding",{"job_applicant": self.job_applicant})
+		emp_onboarding = frappe.db.exists("Employee Onboarding", {"job_applicant": self.job_applicant})
 		if emp_onboarding and emp_onboarding != self.name:
-			frappe.throw(_("Employee Onboarding: {0} is already for Job Applicant: {1}").format(frappe.bold(emp_onboarding), frappe.bold(self.job_applicant)))
+			frappe.throw(_("Employee Onboarding: {0} already exists for Job Applicant: {1}").format(frappe.bold(emp_onboarding), frappe.bold(self.job_applicant)))
 
 	def validate_employee_creation(self):
 		if self.docstatus != 1:
@@ -30,7 +30,7 @@
 				else:
 					task_status = frappe.db.get_value("Task", activity.task, "status")
 					if task_status not in ["Completed", "Cancelled"]:
-						frappe.throw(_("All the mandatory Task for employee creation hasn't been done yet."), IncompleteTaskError)
+						frappe.throw(_("All the mandatory tasks for employee creation are not completed yet."), IncompleteTaskError)
 
 	def on_submit(self):
 		super(EmployeeOnboarding, self).on_submit()
diff --git a/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py b/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py
index 336e13c..5f7756b 100644
--- a/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py
+++ b/erpnext/hr/doctype/employee_onboarding/test_employee_onboarding.py
@@ -11,39 +11,26 @@
 from erpnext.hr.doctype.job_offer.test_job_offer import create_job_offer
 
 class TestEmployeeOnboarding(unittest.TestCase):
-	def test_employee_onboarding_incomplete_task(self):
+	def setUp(self):
 		if frappe.db.exists('Employee Onboarding', {'employee_name': 'Test Researcher'}):
 			frappe.delete_doc('Employee Onboarding', {'employee_name': 'Test Researcher'})
-		_set_up()
-		applicant = get_job_applicant()
 
-		job_offer = create_job_offer(job_applicant=applicant.name)
-		job_offer.submit()
+		project = "Employee Onboarding : Test Researcher - test@researcher.com"
+		frappe.db.sql("delete from tabProject where name=%s", project)
+		frappe.db.sql("delete from tabTask where project=%s", project)
 
-		onboarding = frappe.new_doc('Employee Onboarding')
-		onboarding.job_applicant = applicant.name
-		onboarding.job_offer = job_offer.name
-		onboarding.company = '_Test Company'
-		onboarding.designation = 'Researcher'
-		onboarding.append('activities', {
-			'activity_name': 'Assign ID Card',
-			'role': 'HR User',
-			'required_for_employee_creation': 1
-		})
-		onboarding.append('activities', {
-			'activity_name': 'Assign a laptop',
-			'role': 'HR User'
-		})
-		onboarding.status = 'Pending'
-		onboarding.insert()
-		onboarding.submit()
+	def test_employee_onboarding_incomplete_task(self):
+		onboarding = create_employee_onboarding()
 
-		project_name = frappe.db.get_value("Project", onboarding.project, "project_name")
+		project_name = frappe.db.get_value('Project', onboarding.project, 'project_name')
 		self.assertEqual(project_name, 'Employee Onboarding : Test Researcher - test@researcher.com')
 
 		# don't allow making employee if onboarding is not complete
 		self.assertRaises(IncompleteTaskError, make_employee, onboarding.name)
 
+		# boarding status
+		self.assertEqual(onboarding.boarding_status, 'Pending')
+
 		# complete the task
 		project = frappe.get_doc('Project', onboarding.project)
 		for task in frappe.get_all('Task', dict(project=project.name)):
@@ -51,6 +38,10 @@
 			task.status = 'Completed'
 			task.save()
 
+		# boarding status
+		onboarding.reload()
+		self.assertEqual(onboarding.boarding_status, 'Completed')
+
 		# make employee
 		onboarding.reload()
 		employee = make_employee(onboarding.name)
@@ -61,6 +52,13 @@
 		employee.insert()
 		self.assertEqual(employee.employee_name, 'Test Researcher')
 
+	def tearDown(self):
+		for entry in frappe.get_all('Employee Onboarding'):
+			doc = frappe.get_doc('Employee Onboarding', entry.name)
+			doc.cancel()
+			doc.delete()
+
+
 def get_job_applicant():
 	if frappe.db.exists('Job Applicant', 'Test Researcher - test@researcher.com'):
 		return frappe.get_doc('Job Applicant', 'Test Researcher - test@researcher.com')
@@ -72,10 +70,35 @@
 	applicant.insert()
 	return applicant
 
-def _set_up():
-	for doctype in ["Employee Onboarding"]:
-		frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
+def get_job_offer(applicant_name):
+	job_offer = frappe.db.exists('Job Offer', {'job_applicant': applicant_name})
+	if job_offer:
+		return frappe.get_doc('Job Offer', job_offer)
 
-	project = "Employee Onboarding : Test Researcher - test@researcher.com"
-	frappe.db.sql("delete from tabProject where name=%s", project)
-	frappe.db.sql("delete from tabTask where project=%s", project)
+	job_offer = create_job_offer(job_applicant=applicant_name)
+	job_offer.submit()
+	return job_offer
+
+def create_employee_onboarding():
+	applicant = get_job_applicant()
+	job_offer = get_job_offer(applicant.name)
+
+	onboarding = frappe.new_doc('Employee Onboarding')
+	onboarding.job_applicant = applicant.name
+	onboarding.job_offer = job_offer.name
+	onboarding.company = '_Test Company'
+	onboarding.designation = 'Researcher'
+	onboarding.append('activities', {
+		'activity_name': 'Assign ID Card',
+		'role': 'HR User',
+		'required_for_employee_creation': 1
+	})
+	onboarding.append('activities', {
+		'activity_name': 'Assign a laptop',
+		'role': 'HR User'
+	})
+	onboarding.status = 'Pending'
+	onboarding.insert()
+	onboarding.submit()
+
+	return onboarding
\ No newline at end of file
diff --git a/erpnext/hr/doctype/employee_referral/employee_referral.json b/erpnext/hr/doctype/employee_referral/employee_referral.json
index bfd404b..3ae73a9 100644
--- a/erpnext/hr/doctype/employee_referral/employee_referral.json
+++ b/erpnext/hr/doctype/employee_referral/employee_referral.json
@@ -9,16 +9,18 @@
   "first_name",
   "last_name",
   "full_name",
-  "email",
-  "contact_no",
-  "resume",
-  "resume_link",
   "column_break_6",
   "date",
   "status",
   "for_designation",
+  "referral_details_section",
+  "email",
+  "contact_no",
+  "resume_link",
+  "column_break_12",
   "current_employer",
   "current_job_title",
+  "resume",
   "referrer_details_section",
   "referrer",
   "referrer_name",
@@ -189,12 +191,21 @@
    "label": "Referral Bonus Payment Status",
    "options": "\nUnpaid\nPaid",
    "read_only": 1
+  },
+  {
+   "fieldname": "referral_details_section",
+   "fieldtype": "Section Break",
+   "label": "Referral Details"
+  },
+  {
+   "fieldname": "column_break_12",
+   "fieldtype": "Column Break"
   }
  ],
  "index_web_pages_for_search": 1,
  "is_submittable": 1,
  "links": [],
- "modified": "2021-04-26 21:21:38.094086",
+ "modified": "2021-05-04 17:03:26.134560",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Employee Referral",
diff --git a/erpnext/hr/doctype/employee_separation/employee_separation.js b/erpnext/hr/doctype/employee_separation/employee_separation.js
index 9a75c16..d9011b2 100644
--- a/erpnext/hr/doctype/employee_separation/employee_separation.js
+++ b/erpnext/hr/doctype/employee_separation/employee_separation.js
@@ -23,27 +23,13 @@
 				frappe.set_route('List', 'Task', {project: frm.doc.project});
 			},__("View"));
 		}
-		if (frm.doc.docstatus === 1 && frm.doc.project) {
-			frappe.call({
-				method: "erpnext.hr.utils.get_boarding_status",
-				args: {
-					"project": frm.doc.project
-				},
-				callback: function(r) {
-					if (r.message) {
-						frm.set_value('boarding_status', r.message);
-					}
-					refresh_field("boarding_status");
-				}
-			});
-		}
 	},
 
 	employee_separation_template: function(frm) {
 		frm.set_value("activities" ,"");
 		if (frm.doc.employee_separation_template) {
 			frappe.call({
-				method: "erpnext.hr.utils.get_onboarding_details",
+				method: "erpnext.controllers.employee_boarding_controller.get_onboarding_details",
 				args: {
 					"parent": frm.doc.employee_separation_template,
 					"parenttype": "Employee Separation Template"
diff --git a/erpnext/hr/doctype/employee_separation/employee_separation.json b/erpnext/hr/doctype/employee_separation/employee_separation.json
index 7af20988..c10da5c 100644
--- a/erpnext/hr/doctype/employee_separation/employee_separation.json
+++ b/erpnext/hr/doctype/employee_separation/employee_separation.json
@@ -50,11 +50,12 @@
   },
   {
    "allow_on_submit": 1,
+   "default": "Pending",
    "fieldname": "boarding_status",
    "fieldtype": "Select",
    "label": "Status",
-   "options": "\nPending\nIn Process\nCompleted",
-   "reqd": 1
+   "options": "Pending\nIn Process\nCompleted",
+   "read_only": 1
   },
   {
    "allow_on_submit": 1,
@@ -147,7 +148,7 @@
  ],
  "is_submittable": 1,
  "links": [],
- "modified": "2021-04-28 15:58:36.020196",
+ "modified": "2021-06-03 18:02:54.007313",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Employee Separation",
diff --git a/erpnext/hr/doctype/employee_separation/employee_separation.py b/erpnext/hr/doctype/employee_separation/employee_separation.py
index b646681..8afee25 100644
--- a/erpnext/hr/doctype/employee_separation/employee_separation.py
+++ b/erpnext/hr/doctype/employee_separation/employee_separation.py
@@ -3,7 +3,7 @@
 # For license information, please see license.txt
 
 from __future__ import unicode_literals
-from erpnext.hr.utils import EmployeeBoardingController
+from erpnext.controllers.employee_boarding_controller import EmployeeBoardingController
 
 class EmployeeSeparation(EmployeeBoardingController):
 	def validate(self):
diff --git a/erpnext/hr/doctype/employee_separation/test_employee_separation.py b/erpnext/hr/doctype/employee_separation/test_employee_separation.py
index 713fcf5..f787d9c 100644
--- a/erpnext/hr/doctype/employee_separation/test_employee_separation.py
+++ b/erpnext/hr/doctype/employee_separation/test_employee_separation.py
@@ -6,21 +6,43 @@
 import frappe
 import unittest
 
-test_dependencies = ["Employee Onboarding"]
+test_dependencies = ['Employee Onboarding']
 
 class TestEmployeeSeparation(unittest.TestCase):
 	def test_employee_separation(self):
-		employee = frappe.db.get_value("Employee", {"status": "Active"})
-		separation = frappe.new_doc('Employee Separation')
-		separation.employee = employee
-		separation.company = '_Test Company'
-		separation.append('activities', {
-			'activity_name': 'Deactivate Employee',
-			'role': 'HR User'
-		})
-		separation.boarding_status = 'Pending'
-		separation.insert()
-		separation.submit()
+		separation = create_employee_separation()
+
 		self.assertEqual(separation.docstatus, 1)
+		self.assertEqual(separation.boarding_status, 'Pending')
+
+		project = frappe.get_doc('Project', separation.project)
+		project.percent_complete_method = 'Manual'
+		project.status = 'Completed'
+		project.save()
+
+		separation.reload()
+		self.assertEqual(separation.boarding_status, 'Completed')
+
 		separation.cancel()
-		self.assertEqual(separation.project, "")
\ No newline at end of file
+		self.assertEqual(separation.project, '')
+
+	def tearDown(self):
+		for entry in frappe.get_all('Employee Separation'):
+			doc = frappe.get_doc('Employee Separation', entry.name)
+			if doc.docstatus == 1:
+				doc.cancel()
+			doc.delete()
+
+def create_employee_separation():
+	employee = frappe.db.get_value('Employee', {'status': 'Active'})
+	separation = frappe.new_doc('Employee Separation')
+	separation.employee = employee
+	separation.company = '_Test Company'
+	separation.append('activities', {
+		'activity_name': 'Deactivate Employee',
+		'role': 'HR User'
+	})
+	separation.boarding_status = 'Pending'
+	separation.insert()
+	separation.submit()
+	return separation
\ No newline at end of file
diff --git a/erpnext/hr/doctype/holiday_list/holiday_list.py b/erpnext/hr/doctype/holiday_list/holiday_list.py
index 8af8cea..f65e6e1 100644
--- a/erpnext/hr/doctype/holiday_list/holiday_list.py
+++ b/erpnext/hr/doctype/holiday_list/holiday_list.py
@@ -23,7 +23,7 @@
 		last_idx = max([cint(d.idx) for d in self.get("holidays")] or [0,])
 		for i, d in enumerate(date_list):
 			ch = self.append('holidays', {})
-			ch.description = self.weekly_off
+			ch.description = _(self.weekly_off)
 			ch.holiday_date = d
 			ch.weekly_off = 1
 			ch.idx = last_idx + i + 1
diff --git a/erpnext/hr/doctype/leave_allocation/test_leave_allocation.py b/erpnext/hr/doctype/leave_allocation/test_leave_allocation.py
index bff06e6..fdcd533 100644
--- a/erpnext/hr/doctype/leave_allocation/test_leave_allocation.py
+++ b/erpnext/hr/doctype/leave_allocation/test_leave_allocation.py
@@ -5,7 +5,6 @@
 from frappe.utils import nowdate, add_months, getdate, add_days
 from erpnext.hr.doctype.leave_type.test_leave_type import create_leave_type
 from erpnext.hr.doctype.leave_ledger_entry.leave_ledger_entry import process_expired_allocation, expire_allocation
-
 class TestLeaveAllocation(unittest.TestCase):
 	@classmethod
 	def setUpClass(cls):
diff --git a/erpnext/hr/doctype/leave_type/leave_type.json b/erpnext/hr/doctype/leave_type/leave_type.json
index fc577ef..8f2ae6e 100644
--- a/erpnext/hr/doctype/leave_type/leave_type.json
+++ b/erpnext/hr/doctype/leave_type/leave_type.json
@@ -214,7 +214,7 @@
  "icon": "fa fa-flag",
  "idx": 1,
  "links": [],
- "modified": "2021-03-02 11:22:33.776320",
+ "modified": "2021-08-12 16:10:36.464690",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "Leave Type",
@@ -248,5 +248,6 @@
   }
  ],
  "sort_field": "modified",
- "sort_order": "DESC"
+ "sort_order": "DESC",
+ "track_changes": 1
 }
\ No newline at end of file
diff --git a/erpnext/hr/doctype/shift_request/test_shift_request.py b/erpnext/hr/doctype/shift_request/test_shift_request.py
index 9c0d8e3..3525540 100644
--- a/erpnext/hr/doctype/shift_request/test_shift_request.py
+++ b/erpnext/hr/doctype/shift_request/test_shift_request.py
@@ -15,24 +15,35 @@
 		for doctype in ["Shift Request", "Shift Assignment"]:
 			frappe.db.sql("delete from `tab{doctype}`".format(doctype=doctype))
 
+	def tearDown(self):
+		frappe.db.rollback()
+
 	def test_make_shift_request(self):
+		"Test creation/updation of Shift Assignment from Shift Request."
 		department = frappe.get_value("Employee", "_T-Employee-00001", 'department')
 		set_shift_approver(department)
 		approver = frappe.db.sql("""select approver from `tabDepartment Approver` where parent= %s and parentfield = 'shift_request_approver'""", (department))[0][0]
 
 		shift_request = make_shift_request(approver)
 
-		shift_assignments = frappe.db.sql('''
-				SELECT shift_request, employee
-				FROM `tabShift Assignment`
-				WHERE shift_request = '{0}'
-			'''.format(shift_request.name), as_dict=1)
-		for d in shift_assignments:
-			employee = d.get('employee')
-			self.assertEqual(shift_request.employee, employee)
-			shift_request.cancel()
-			shift_assignment_doc = frappe.get_doc("Shift Assignment", {"shift_request": d.get('shift_request')})
-			self.assertEqual(shift_assignment_doc.docstatus, 2)
+		# Only one shift assignment is created against a shift request
+		shift_assignment = frappe.db.get_value(
+			"Shift Assignment",
+			filters={"shift_request": shift_request.name},
+			fieldname=["employee", "docstatus"],
+			as_dict=True
+		)
+		self.assertEqual(shift_request.employee, shift_assignment.employee)
+		self.assertEqual(shift_assignment.docstatus, 1)
+
+		shift_request.cancel()
+
+		shift_assignment_docstatus = frappe.db.get_value(
+			"Shift Assignment",
+			filters={"shift_request": shift_request.name},
+			fieldname="docstatus"
+		)
+		self.assertEqual(shift_assignment_docstatus, 2)
 
 	def test_shift_request_approver_perms(self):
 		employee = frappe.get_doc("Employee", "_T-Employee-00001")
diff --git a/erpnext/hr/doctype/staffing_plan/staffing_plan.js b/erpnext/hr/doctype/staffing_plan/staffing_plan.js
index 04af232..228391b 100644
--- a/erpnext/hr/doctype/staffing_plan/staffing_plan.js
+++ b/erpnext/hr/doctype/staffing_plan/staffing_plan.js
@@ -103,4 +103,4 @@
 		})
 		frm.set_value('total_estimated_budget', estimated_budget);
 	}
-}
\ No newline at end of file
+};
diff --git a/erpnext/hr/doctype/training_event/test_training_event.py b/erpnext/hr/doctype/training_event/test_training_event.py
index 313f90e..9b32136 100644
--- a/erpnext/hr/doctype/training_event/test_training_event.py
+++ b/erpnext/hr/doctype/training_event/test_training_event.py
@@ -11,21 +11,34 @@
 class TestTrainingEvent(unittest.TestCase):
 	def setUp(self):
 		create_training_program("Basic Training")
-		self.employee = make_employee("robert_loan@trainig.com")
-		self.employee2 = make_employee("suzie.tan@trainig.com")
+		employee = make_employee("robert_loan@trainig.com")
+		employee2 = make_employee("suzie.tan@trainig.com")
+		self.attendees = [
+			{"employee": employee},
+			{"employee": employee2}
+		]
 
-	def test_create_training_event(self):
-		if not frappe.db.get_value("Training Event", "Basic Training Event"):
-			frappe.get_doc({
-				"doctype": "Training Event",
-				"event_name": "Basic Training Event",
-				"training_program": "Basic Training",
-				"location": "Union Square",
-				"start_time": add_days(today(), 5),
-				"end_time": add_days(today(), 6),
-				"introduction": "Welcome to the Basic Training Event",
-				"employees": get_attendees(self.employee, self.employee2)
-			}).insert()
+	def test_training_event_status_update(self):
+		training_event = create_training_event(self.attendees)
+		training_event.submit()
+
+		training_event.event_status = "Completed"
+		training_event.save()
+		training_event.reload()
+
+		for entry in training_event.employees:
+			self.assertEqual(entry.status, "Completed")
+
+		training_event.event_status = "Scheduled"
+		training_event.save()
+		training_event.reload()
+
+		for entry in training_event.employees:
+			self.assertEqual(entry.status, "Open")
+
+	def tearDown(self):
+		frappe.db.rollback()
+
 
 def create_training_program(training_program):
 	if not frappe.db.get_value("Training Program", training_program):
@@ -35,8 +48,14 @@
 			"description": training_program
 		}).insert()
 
-def get_attendees(employee, employee2):
-	return [
-		{"employee": employee},
-		{"employee": employee2}
-	]
\ No newline at end of file
+def create_training_event(attendees):
+	return frappe.get_doc({
+		"doctype": "Training Event",
+		"event_name": "Basic Training Event",
+		"training_program": "Basic Training",
+		"location": "Union Square",
+		"start_time": add_days(today(), 5),
+		"end_time": add_days(today(), 6),
+		"introduction": "Welcome to the Basic Training Event",
+		"employees": attendees
+	}).insert()
\ No newline at end of file
diff --git a/erpnext/hr/doctype/training_event/training_event.py b/erpnext/hr/doctype/training_event/training_event.py
index 5064f03..e2c30cb 100644
--- a/erpnext/hr/doctype/training_event/training_event.py
+++ b/erpnext/hr/doctype/training_event/training_event.py
@@ -14,10 +14,25 @@
 		self.set_employee_emails()
 		self.validate_period()
 
+	def on_update_after_submit(self):
+		self.set_status_for_attendees()
+
 	def set_employee_emails(self):
 		self.employee_emails = ', '.join(get_employee_emails([d.employee
 			for d in self.employees]))
 
 	def validate_period(self):
 		if time_diff_in_seconds(self.end_time, self.start_time) <= 0:
-			frappe.throw(_('End time cannot be before start time'))
\ No newline at end of file
+			frappe.throw(_('End time cannot be before start time'))
+
+	def set_status_for_attendees(self):
+		if self.event_status == 'Completed':
+			for employee in self.employees:
+				if employee.attendance == 'Present' and employee.status != 'Feedback Submitted':
+					employee.status = 'Completed'
+
+		elif self.event_status == 'Scheduled':
+			for employee in self.employees:
+				employee.status = 'Open'
+
+		self.db_update_all()
diff --git a/erpnext/hr/doctype/training_feedback/test_training_feedback.py b/erpnext/hr/doctype/training_feedback/test_training_feedback.py
index 3455998..c30a3ad 100644
--- a/erpnext/hr/doctype/training_feedback/test_training_feedback.py
+++ b/erpnext/hr/doctype/training_feedback/test_training_feedback.py
@@ -5,8 +5,63 @@
 
 import frappe
 import unittest
-
-# test_records = frappe.get_test_records('Training Feedback')
-
+from erpnext.payroll.doctype.salary_structure.test_salary_structure import make_employee
+from erpnext.hr.doctype.training_event.test_training_event import create_training_program, create_training_event
 class TestTrainingFeedback(unittest.TestCase):
-	pass
+	def setUp(self):
+		create_training_program("Basic Training")
+		self.employee = make_employee("robert_loan@trainig.com")
+		self.employee2 = make_employee("suzie.tan@trainig.com")
+		self.attendees = [{"employee": self.employee}]
+
+	def test_employee_validations_for_feedback(self):
+		training_event = create_training_event(self.attendees)
+		training_event.submit()
+
+		training_event.event_status = "Completed"
+		training_event.save()
+		training_event.reload()
+
+		# should not allow creating feedback since employee2 was not part of the event
+		feedback = create_training_feedback(training_event.name, self.employee2)
+		self.assertRaises(frappe.ValidationError, feedback.save)
+
+		# cannot record feedback for absent employee
+		employee = frappe.db.get_value("Training Event Employee", {
+			"parent": training_event.name,
+			"employee": self.employee
+		}, "name")
+
+		frappe.db.set_value("Training Event Employee", employee, "attendance", "Absent")
+		feedback = create_training_feedback(training_event.name, self.employee)
+		self.assertRaises(frappe.ValidationError, feedback.save)
+
+	def test_training_feedback_status(self):
+		training_event = create_training_event(self.attendees)
+		training_event.submit()
+
+		training_event.event_status = "Completed"
+		training_event.save()
+		training_event.reload()
+
+		feedback = create_training_feedback(training_event.name, self.employee)
+		feedback.submit()
+
+		status = frappe.db.get_value("Training Event Employee", {
+			"parent": training_event.name,
+			"employee": self.employee
+		}, "status")
+
+		self.assertEqual(status, "Feedback Submitted")
+
+	def tearDown(self):
+		frappe.db.rollback()
+
+
+def create_training_feedback(event, employee):
+	return frappe.get_doc({
+		"doctype": "Training Feedback",
+		"training_event": event,
+		"employee": employee,
+		"feedback": "Test"
+	})
\ No newline at end of file
diff --git a/erpnext/hr/doctype/training_feedback/training_feedback.py b/erpnext/hr/doctype/training_feedback/training_feedback.py
index 1a33450..0d32de7 100644
--- a/erpnext/hr/doctype/training_feedback/training_feedback.py
+++ b/erpnext/hr/doctype/training_feedback/training_feedback.py
@@ -11,15 +11,35 @@
 	def validate(self):
 		training_event = frappe.get_doc("Training Event", self.training_event)
 		if training_event.docstatus != 1:
-			frappe.throw(_('{0} must be submitted').format(_('Training Event')))
+			frappe.throw(_("{0} must be submitted").format(_("Training Event")))
+
+		emp_event_details = frappe.db.get_value("Training Event Employee", {
+			"parent": self.training_event,
+			"employee": self.employee
+		}, ["name", "attendance"], as_dict=True)
+
+		if not emp_event_details:
+			frappe.throw(_("Employee {0} not found in Training Event Participants.").format(
+				frappe.bold(self.employee_name)))
+
+		if emp_event_details.attendance == "Absent":
+			frappe.throw(_("Feedback cannot be recorded for an absent Employee."))
 
 	def on_submit(self):
-		training_event = frappe.get_doc("Training Event", self.training_event)
-		event_status = None
-		for e in training_event.employees:
-			if e.employee == self.employee:
-				event_status = 'Feedback Submitted'
-				break
+		employee = frappe.db.get_value("Training Event Employee", {
+			"parent": self.training_event,
+			"employee": self.employee
+		})
 
-		if event_status:
-			frappe.db.set_value("Training Event", self.training_event, "event_status", event_status)
+		if employee:
+			frappe.db.set_value("Training Event Employee", employee, "status", "Feedback Submitted")
+
+	def on_cancel(self):
+		employee = frappe.db.get_value("Training Event Employee", {
+			"parent": self.training_event,
+			"employee": self.employee
+		})
+
+		if employee:
+			frappe.db.set_value("Training Event Employee", employee, "status", "Completed")
+
diff --git a/erpnext/hr/doctype/upload_attendance/upload_attendance.js b/erpnext/hr/doctype/upload_attendance/upload_attendance.js
index 29aa854..bbafc82 100644
--- a/erpnext/hr/doctype/upload_attendance/upload_attendance.js
+++ b/erpnext/hr/doctype/upload_attendance/upload_attendance.js
@@ -5,19 +5,19 @@
 
 frappe.provide("erpnext.hr");
 
-erpnext.hr.AttendanceControlPanel = frappe.ui.form.Controller.extend({
-	onload: function() {
+erpnext.hr.AttendanceControlPanel = class AttendanceControlPanel extends frappe.ui.form.Controller {
+	onload() {
 		this.frm.set_value("att_fr_date", frappe.datetime.get_today());
 		this.frm.set_value("att_to_date", frappe.datetime.get_today());
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		this.frm.disable_save();
 		this.show_upload();
 		this.setup_import_progress();
-	},
+	}
 
-	get_template:function() {
+	get_template() {
 		if(!this.frm.doc.att_fr_date || !this.frm.doc.att_to_date) {
 			frappe.msgprint(__("Attendance From Date and Attendance To Date is mandatory"));
 			return;
@@ -28,7 +28,7 @@
 			from_date: this.frm.doc.att_fr_date,
 			to_date: this.frm.doc.att_to_date,
 		});
-	},
+	}
 
 	show_upload() {
 		var $wrapper = $(cur_frm.fields_dict.upload_html.wrapper).empty();
@@ -36,7 +36,7 @@
 			wrapper: $wrapper,
 			method: 'erpnext.hr.doctype.upload_attendance.upload_attendance.upload'
 		});
-	},
+	}
 
 	setup_import_progress() {
 		var $log_wrapper = $(this.frm.fields_dict.import_log.wrapper).empty();
@@ -64,6 +64,6 @@
 			}
 		});
 	}
-})
+}
 
 cur_frm.cscript = new erpnext.hr.AttendanceControlPanel({frm: cur_frm});
diff --git a/erpnext/hr/page/organizational_chart/organizational_chart.js b/erpnext/hr/page/organizational_chart/organizational_chart.js
index a138886..08f2c94 100644
--- a/erpnext/hr/page/organizational_chart/organizational_chart.js
+++ b/erpnext/hr/page/organizational_chart/organizational_chart.js
@@ -6,7 +6,7 @@
 	});
 
 	$(wrapper).bind('show', () => {
-		frappe.require('/assets/js/hierarchy-chart.min.js', () => {
+		frappe.require('hierarchy-chart.bundle.js', () => {
 			let organizational_chart = undefined;
 			let method = 'erpnext.hr.page.organizational_chart.organizational_chart.get_children';
 
diff --git a/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py b/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py
index 92715d3..e86fa2b 100644
--- a/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py
+++ b/erpnext/hr/report/employee_leave_balance_summary/employee_leave_balance_summary.py
@@ -47,7 +47,7 @@
 	user = frappe.session.user
 	conditions = get_conditions(filters)
 
-	active_employees = frappe.get_all("Employee",
+	active_employees = frappe.get_list("Employee",
 		filters=conditions,
 		fields=["name", "employee_name", "department", "user_id", "leave_approver"])
 
@@ -72,4 +72,4 @@
 
 			data.append(row)
 
-	return data
\ No newline at end of file
+	return data
diff --git a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
index c5929c6..bcb0ee4 100644
--- a/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
+++ b/erpnext/hr/report/monthly_attendance_sheet/monthly_attendance_sheet.py
@@ -57,10 +57,10 @@
 
 	data = []
 
+	leave_types = frappe.db.get_list("Leave Type")
 	leave_list = None
 	if filters.summarized_view:
-		leave_types = frappe.db.sql("""select name from `tabLeave Type`""", as_list=True)
-		leave_list = [d[0] + ":Float:120" for d in leave_types]
+		leave_list = [d.name + ":Float:120" for d in leave_types]
 		columns.extend(leave_list)
 		columns.extend([_("Total Late Entries") + ":Float:120", _("Total Early Exits") + ":Float:120"])
 
@@ -72,11 +72,11 @@
 			if (att_map_set & emp_map_set):
 				parameter_row = ["<b>"+ parameter + "</b>"] + ['' for day in range(filters["total_days_in_month"] + 2)]
 				data.append(parameter_row)
-				record, emp_att_data = add_data(emp_map[parameter], att_map, filters, holiday_map, conditions, default_holiday_list, leave_list=leave_list)
+				record, emp_att_data = add_data(emp_map[parameter], att_map, filters, holiday_map, conditions, default_holiday_list, leave_types=leave_types)
 				emp_att_map.update(emp_att_data)
 				data += record
 	else:
-		record, emp_att_map = add_data(emp_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_list=leave_list)
+		record, emp_att_map = add_data(emp_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_types=leave_types)
 		data += record
 
 	chart_data = get_chart_data(emp_att_map, days)
@@ -126,7 +126,7 @@
 
 	return chart
 
-def add_data(employee_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_list=None):
+def add_data(employee_map, att_map, filters, holiday_map, conditions, default_holiday_list, leave_types=None):
 
 	record = []
 	emp_att_map = {}
@@ -204,9 +204,9 @@
 				else:
 					leaves[d.leave_type] = d.count
 
-			for d in leave_list:
-				if d in leaves:
-					row.append(leaves[d])
+			for d in leave_types:
+				if d.name in leaves:
+					row.append(leaves[d.name])
 				else:
 					row.append("0.0")
 
diff --git a/erpnext/hr/utils.py b/erpnext/hr/utils.py
index a6a8406..992b18d 100644
--- a/erpnext/hr/utils.py
+++ b/erpnext/hr/utils.py
@@ -12,119 +12,6 @@
 
 class DuplicateDeclarationError(frappe.ValidationError): pass
 
-
-class EmployeeBoardingController(Document):
-	'''
-		Create the project and the task for the boarding process
-		Assign to the concerned person and roles as per the onboarding/separation template
-	'''
-	def validate(self):
-		validate_active_employee(self.employee)
-		# remove the task if linked before submitting the form
-		if self.amended_from:
-			for activity in self.activities:
-				activity.task = ''
-
-	def on_submit(self):
-		# create the project for the given employee onboarding
-		project_name = _(self.doctype) + " : "
-		if self.doctype == "Employee Onboarding":
-			project_name += self.job_applicant
-		else:
-			project_name += self.employee
-
-		project = frappe.get_doc({
-				"doctype": "Project",
-				"project_name": project_name,
-				"expected_start_date": self.date_of_joining if self.doctype == "Employee Onboarding" else self.resignation_letter_date,
-				"department": self.department,
-				"company": self.company
-			}).insert(ignore_permissions=True, ignore_mandatory=True)
-
-		self.db_set("project", project.name)
-		self.db_set("boarding_status", "Pending")
-		self.reload()
-		self.create_task_and_notify_user()
-
-	def create_task_and_notify_user(self):
-		# create the task for the given project and assign to the concerned person
-		for activity in self.activities:
-			if activity.task:
-				continue
-
-			task = frappe.get_doc({
-				"doctype": "Task",
-				"project": self.project,
-				"subject": activity.activity_name + " : " + self.employee_name,
-				"description": activity.description,
-				"department": self.department,
-				"company": self.company,
-				"task_weight": activity.task_weight
-			}).insert(ignore_permissions=True)
-			activity.db_set("task", task.name)
-
-			users = [activity.user] if activity.user else []
-			if activity.role:
-				user_list = frappe.db.sql_list('''
-					SELECT
-						DISTINCT(has_role.parent)
-					FROM
-						`tabHas Role` has_role
-							LEFT JOIN `tabUser` user
-								ON has_role.parent = user.name
-					WHERE
-						has_role.parenttype = 'User'
-							AND user.enabled = 1
-							AND has_role.role = %s
-				''', activity.role)
-				users = unique(users + user_list)
-
-				if "Administrator" in users:
-					users.remove("Administrator")
-
-			# assign the task the users
-			if users:
-				self.assign_task_to_users(task, users)
-
-	def assign_task_to_users(self, task, users):
-		for user in users:
-			args = {
-				'assign_to': [user],
-				'doctype': task.doctype,
-				'name': task.name,
-				'description': task.description or task.subject,
-				'notify': self.notify_users_by_email
-			}
-			assign_to.add(args)
-
-	def on_cancel(self):
-		# delete task project
-		for task in frappe.get_all("Task", filters={"project": self.project}):
-			frappe.delete_doc("Task", task.name, force=1)
-		frappe.delete_doc("Project", self.project, force=1)
-		self.db_set('project', '')
-		for activity in self.activities:
-			activity.db_set("task", "")
-
-
-@frappe.whitelist()
-def get_onboarding_details(parent, parenttype):
-	return frappe.get_all("Employee Boarding Activity",
-		fields=["activity_name", "role", "user", "required_for_employee_creation", "description", "task_weight"],
-		filters={"parent": parent, "parenttype": parenttype},
-		order_by= "idx")
-
-@frappe.whitelist()
-def get_boarding_status(project):
-	status = 'Pending'
-	if project:
-		doc = frappe.get_doc('Project', project)
-		if flt(doc.percent_complete) > 0.0 and flt(doc.percent_complete) < 100.0:
-			status = 'In Process'
-		elif flt(doc.percent_complete) == 100.0:
-			status = 'Completed'
-		return status
-
 def set_employee_name(doc):
 	if doc.employee and not doc.employee_name:
 		doc.employee_name = frappe.db.get_value("Employee", doc.employee, "employee_name")
diff --git a/erpnext/hr/workspace/hr/hr.json b/erpnext/hr/workspace/hr/hr.json
index 4500ba4..575fa7b 100644
--- a/erpnext/hr/workspace/hr/hr.json
+++ b/erpnext/hr/workspace/hr/hr.json
@@ -1,28 +1,32 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Outgoing Salary",
    "label": "Outgoing Salary"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Human Resource\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Outgoing Salary\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Employee\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Leave Application\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Attendance\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Job Applicant\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Monthly Attendance Sheet\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Employee\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Employee Lifecycle\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Shift Management\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Leaves\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Attendance\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Expense Claims\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Fleet Management\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Recruitment\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Loans\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Training\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Performance\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Key Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Other Reports\", \"col\": 4}}]",
  "creation": "2020-03-02 15:48:58.322521",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "hr",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "HR",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -31,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee",
+   "link_count": 0,
    "link_to": "Employee",
    "link_type": "DocType",
    "onboard": 1,
@@ -41,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employment Type",
+   "link_count": 0,
    "link_to": "Employment Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -51,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Branch",
+   "link_count": 0,
    "link_to": "Branch",
    "link_type": "DocType",
    "onboard": 0,
@@ -61,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Department",
+   "link_count": 0,
    "link_to": "Department",
    "link_type": "DocType",
    "onboard": 0,
@@ -71,6 +79,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Designation",
+   "link_count": 0,
    "link_to": "Designation",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +90,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Grade",
+   "link_count": 0,
    "link_to": "Employee Grade",
    "link_type": "DocType",
    "onboard": 0,
@@ -91,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Group",
+   "link_count": 0,
    "link_to": "Employee Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -101,6 +112,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Health Insurance",
+   "link_count": 0,
    "link_to": "Employee Health Insurance",
    "link_type": "DocType",
    "onboard": 0,
@@ -110,6 +122,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Lifecycle",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -118,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Onboarding",
+   "link_count": 0,
    "link_to": "Employee Onboarding",
    "link_type": "DocType",
    "onboard": 0,
@@ -128,6 +142,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Skill Map",
+   "link_count": 0,
    "link_to": "Employee Skill Map",
    "link_type": "DocType",
    "onboard": 0,
@@ -138,6 +153,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Promotion",
+   "link_count": 0,
    "link_to": "Employee Promotion",
    "link_type": "DocType",
    "onboard": 0,
@@ -148,6 +164,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Transfer",
+   "link_count": 0,
    "link_to": "Employee Transfer",
    "link_type": "DocType",
    "onboard": 0,
@@ -157,6 +174,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Grievance Type",
+   "link_count": 0,
    "link_to": "Grievance Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -166,6 +184,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Grievance",
+   "link_count": 0,
    "link_to": "Employee Grievance",
    "link_type": "DocType",
    "onboard": 0,
@@ -176,6 +195,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Separation",
+   "link_count": 0,
    "link_to": "Employee Separation",
    "link_type": "DocType",
    "onboard": 0,
@@ -186,6 +206,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Onboarding Template",
+   "link_count": 0,
    "link_to": "Employee Onboarding Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -196,6 +217,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Separation Template",
+   "link_count": 0,
    "link_to": "Employee Separation Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -205,6 +227,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shift Management",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -213,6 +236,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shift Type",
+   "link_count": 0,
    "link_to": "Shift Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -223,6 +247,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shift Request",
+   "link_count": 0,
    "link_to": "Shift Request",
    "link_type": "DocType",
    "onboard": 0,
@@ -233,6 +258,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shift Assignment",
+   "link_count": 0,
    "link_to": "Shift Assignment",
    "link_type": "DocType",
    "onboard": 0,
@@ -242,6 +268,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leaves",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -250,6 +277,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Holiday List",
+   "link_count": 0,
    "link_to": "Holiday List",
    "link_type": "DocType",
    "onboard": 0,
@@ -260,6 +288,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Type",
+   "link_count": 0,
    "link_to": "Leave Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -270,6 +299,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Period",
+   "link_count": 0,
    "link_to": "Leave Period",
    "link_type": "DocType",
    "onboard": 0,
@@ -280,6 +310,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Policy",
+   "link_count": 0,
    "link_to": "Leave Policy",
    "link_type": "DocType",
    "onboard": 0,
@@ -290,6 +321,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Policy Assignment",
+   "link_count": 0,
    "link_to": "Leave Policy Assignment",
    "link_type": "DocType",
    "onboard": 0,
@@ -300,6 +332,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Application",
+   "link_count": 0,
    "link_to": "Leave Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -310,6 +343,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Allocation",
+   "link_count": 0,
    "link_to": "Leave Allocation",
    "link_type": "DocType",
    "onboard": 0,
@@ -320,6 +354,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Encashment",
+   "link_count": 0,
    "link_to": "Leave Encashment",
    "link_type": "DocType",
    "onboard": 0,
@@ -330,6 +365,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Leave Block List",
+   "link_count": 0,
    "link_to": "Leave Block List",
    "link_type": "DocType",
    "onboard": 0,
@@ -340,6 +376,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Compensatory Leave Request",
+   "link_count": 0,
    "link_to": "Compensatory Leave Request",
    "link_type": "DocType",
    "onboard": 0,
@@ -349,6 +386,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Attendance",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -357,6 +395,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Attendance Tool",
+   "link_count": 0,
    "link_to": "Employee Attendance Tool",
    "link_type": "DocType",
    "onboard": 1,
@@ -367,6 +406,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Attendance",
+   "link_count": 0,
    "link_to": "Attendance",
    "link_type": "DocType",
    "onboard": 1,
@@ -377,6 +417,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Attendance Request",
+   "link_count": 0,
    "link_to": "Attendance Request",
    "link_type": "DocType",
    "onboard": 0,
@@ -387,6 +428,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Upload Attendance",
+   "link_count": 0,
    "link_to": "Upload Attendance",
    "link_type": "DocType",
    "onboard": 0,
@@ -397,6 +439,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Checkin",
+   "link_count": 0,
    "link_to": "Employee Checkin",
    "link_type": "DocType",
    "onboard": 0,
@@ -406,6 +449,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Expense Claims",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -414,6 +458,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Expense Claim",
+   "link_count": 0,
    "link_to": "Expense Claim",
    "link_type": "DocType",
    "onboard": 0,
@@ -424,6 +469,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Advance",
+   "link_count": 0,
    "link_to": "Employee Advance",
    "link_type": "DocType",
    "onboard": 0,
@@ -433,6 +479,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Travel Request",
+   "link_count": 0,
    "link_to": "Travel Request",
    "link_type": "DocType",
    "onboard": 0,
@@ -442,6 +489,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -450,6 +498,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "HR Settings",
+   "link_count": 0,
    "link_to": "HR Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -460,6 +509,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Daily Work Summary Group",
+   "link_count": 0,
    "link_to": "Daily Work Summary Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -470,6 +520,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Team Updates",
+   "link_count": 0,
    "link_to": "team-updates",
    "link_type": "Page",
    "onboard": 0,
@@ -479,6 +530,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Fleet Management",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -486,6 +538,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Driver",
+   "link_count": 0,
    "link_to": "Driver",
    "link_type": "DocType",
    "onboard": 0,
@@ -496,6 +549,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Vehicle",
+   "link_count": 0,
    "link_to": "Vehicle",
    "link_type": "DocType",
    "onboard": 0,
@@ -506,6 +560,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Vehicle Log",
+   "link_count": 0,
    "link_to": "Vehicle Log",
    "link_type": "DocType",
    "onboard": 0,
@@ -516,6 +571,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Vehicle Expenses",
+   "link_count": 0,
    "link_to": "Vehicle Expenses",
    "link_type": "Report",
    "onboard": 0,
@@ -525,6 +581,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Recruitment",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -533,6 +590,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Job Opening",
+   "link_count": 0,
    "link_to": "Job Opening",
    "link_type": "DocType",
    "onboard": 1,
@@ -542,6 +600,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Referral",
+   "link_count": 0,
    "link_to": "Employee Referral",
    "link_type": "DocType",
    "onboard": 0,
@@ -552,6 +611,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Job Applicant",
+   "link_count": 0,
    "link_to": "Job Applicant",
    "link_type": "DocType",
    "onboard": 1,
@@ -562,6 +622,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Job Offer",
+   "link_count": 0,
    "link_to": "Job Offer",
    "link_type": "DocType",
    "onboard": 1,
@@ -572,6 +633,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Staffing Plan",
+   "link_count": 0,
    "link_to": "Staffing Plan",
    "link_type": "DocType",
    "onboard": 0,
@@ -581,6 +643,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Appointment Letter",
+   "link_count": 0,
    "link_to": "Appointment Letter",
    "link_type": "DocType",
    "onboard": 0,
@@ -590,6 +653,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Appointment Letter Template",
+   "link_count": 0,
    "link_to": "Appointment Letter Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -599,6 +663,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loans",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -607,6 +672,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Application",
+   "link_count": 0,
    "link_to": "Loan Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -617,6 +683,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan",
+   "link_count": 0,
    "link_to": "Loan",
    "link_type": "DocType",
    "onboard": 0,
@@ -627,6 +694,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Type",
+   "link_count": 0,
    "link_to": "Loan Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -636,6 +704,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Training",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -644,6 +713,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Training Program",
+   "link_count": 0,
    "link_to": "Training Program",
    "link_type": "DocType",
    "onboard": 0,
@@ -654,6 +724,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Training Event",
+   "link_count": 0,
    "link_to": "Training Event",
    "link_type": "DocType",
    "onboard": 0,
@@ -664,6 +735,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Training Result",
+   "link_count": 0,
    "link_to": "Training Result",
    "link_type": "DocType",
    "onboard": 0,
@@ -674,6 +746,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Training Feedback",
+   "link_count": 0,
    "link_to": "Training Feedback",
    "link_type": "DocType",
    "onboard": 0,
@@ -683,6 +756,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Performance",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -691,6 +765,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Appraisal",
+   "link_count": 0,
    "link_to": "Appraisal",
    "link_type": "DocType",
    "onboard": 0,
@@ -701,6 +776,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Appraisal Template",
+   "link_count": 0,
    "link_to": "Appraisal Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -711,6 +787,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Energy Point Rule",
+   "link_count": 0,
    "link_to": "Energy Point Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -721,6 +798,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Energy Point Log",
+   "link_count": 0,
    "link_to": "Energy Point Log",
    "link_type": "DocType",
    "onboard": 0,
@@ -730,6 +808,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Key Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -738,6 +817,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Monthly Attendance Sheet",
+   "link_count": 0,
    "link_to": "Monthly Attendance Sheet",
    "link_type": "Report",
    "onboard": 0,
@@ -748,6 +828,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Recruitment Analytics",
+   "link_count": 0,
    "link_to": "Recruitment Analytics",
    "link_type": "Report",
    "onboard": 0,
@@ -758,6 +839,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employee Analytics",
+   "link_count": 0,
    "link_to": "Employee Analytics",
    "link_type": "Report",
    "onboard": 0,
@@ -768,6 +850,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employee Leave Balance",
+   "link_count": 0,
    "link_to": "Employee Leave Balance",
    "link_type": "Report",
    "onboard": 0,
@@ -778,6 +861,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employee Leave Balance Summary",
+   "link_count": 0,
    "link_to": "Employee Leave Balance Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -788,6 +872,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employee Advance Summary",
+   "link_count": 0,
    "link_to": "Employee Advance Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -797,6 +882,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Other Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -805,6 +891,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Information",
+   "link_count": 0,
    "link_to": "Employee Information",
    "link_type": "Report",
    "onboard": 0,
@@ -815,6 +902,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employee Birthday",
+   "link_count": 0,
    "link_to": "Employee Birthday",
    "link_type": "Report",
    "onboard": 0,
@@ -825,6 +913,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employees Working on a Holiday",
+   "link_count": 0,
    "link_to": "Employees working on a holiday",
    "link_type": "Report",
    "onboard": 0,
@@ -835,20 +924,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Daily Work Summary Replies",
+   "link_count": 0,
    "link_to": "Daily Work Summary Replies",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2021-05-13 17:19:40.524444",
+ "modified": "2021-08-05 12:15:59.842918",
  "modified_by": "Administrator",
  "module": "HR",
  "name": "HR",
  "onboarding": "Human Resource",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 14,
  "shortcuts": [
   {
    "color": "Green",
@@ -889,5 +984,6 @@
    "stats_filter": "{\n    \"status\": \"Open\"\n}",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "HR"
 }
\ No newline at end of file
diff --git a/erpnext/loan_management/doctype/loan_application/loan_application.js b/erpnext/loan_management/doctype/loan_application/loan_application.js
index eccbdc3..5142178 100644
--- a/erpnext/loan_management/doctype/loan_application/loan_application.js
+++ b/erpnext/loan_management/doctype/loan_application/loan_application.js
@@ -23,9 +23,9 @@
 		});
 	},
 	repayment_method: function(frm) {
-		frm.doc.repayment_amount = frm.doc.repayment_periods = ""
-		frm.trigger("toggle_fields")
-		frm.trigger("toggle_required")
+		frm.doc.repayment_amount = frm.doc.repayment_periods = "";
+		frm.trigger("toggle_fields");
+		frm.trigger("toggle_required");
 	},
 	toggle_fields: function(frm) {
 		frm.toggle_enable("repayment_amount", frm.doc.repayment_method=="Repay Fixed Amount per Period")
diff --git a/erpnext/loan_management/workspace/loan_management/loan_management.json b/erpnext/loan_management/workspace/loan_management/loan_management.json
index d0b67f7..ca528ec 100644
--- a/erpnext/loan_management/workspace/loan_management/loan_management.json
+++ b/erpnext/loan_management/workspace/loan_management/loan_management.json
@@ -1,23 +1,27 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Loan Application\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Loan\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Loan\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Loan Processes\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Disbursement and Repayment\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Loan Security\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}]",
  "creation": "2020-03-12 16:35:55.299820",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "loan",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "Loans",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -26,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Type",
+   "link_count": 0,
    "link_to": "Loan Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -36,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Application",
+   "link_count": 0,
    "link_to": "Loan Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -46,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan",
+   "link_count": 0,
    "link_to": "Loan",
    "link_type": "DocType",
    "onboard": 0,
@@ -55,6 +62,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Processes",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -63,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Process Loan Security Shortfall",
+   "link_count": 0,
    "link_to": "Process Loan Security Shortfall",
    "link_type": "DocType",
    "onboard": 0,
@@ -73,6 +82,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Process Loan Interest Accrual",
+   "link_count": 0,
    "link_to": "Process Loan Interest Accrual",
    "link_type": "DocType",
    "onboard": 0,
@@ -82,6 +92,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Disbursement and Repayment",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -90,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Disbursement",
+   "link_count": 0,
    "link_to": "Loan Disbursement",
    "link_type": "DocType",
    "onboard": 0,
@@ -100,6 +112,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Repayment",
+   "link_count": 0,
    "link_to": "Loan Repayment",
    "link_type": "DocType",
    "onboard": 0,
@@ -110,6 +123,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Write Off",
+   "link_count": 0,
    "link_to": "Loan Write Off",
    "link_type": "DocType",
    "onboard": 0,
@@ -120,6 +134,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Interest Accrual",
+   "link_count": 0,
    "link_to": "Loan Interest Accrual",
    "link_type": "DocType",
    "onboard": 0,
@@ -129,6 +144,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -137,6 +153,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security Type",
+   "link_count": 0,
    "link_to": "Loan Security Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -147,6 +164,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security Price",
+   "link_count": 0,
    "link_to": "Loan Security Price",
    "link_type": "DocType",
    "onboard": 0,
@@ -157,6 +175,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security",
+   "link_count": 0,
    "link_to": "Loan Security",
    "link_type": "DocType",
    "onboard": 0,
@@ -167,6 +186,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security Pledge",
+   "link_count": 0,
    "link_to": "Loan Security Pledge",
    "link_type": "DocType",
    "onboard": 0,
@@ -177,6 +197,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security Unpledge",
+   "link_count": 0,
    "link_to": "Loan Security Unpledge",
    "link_type": "DocType",
    "onboard": 0,
@@ -187,6 +208,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Security Shortfall",
+   "link_count": 0,
    "link_to": "Loan Security Shortfall",
    "link_type": "DocType",
    "onboard": 0,
@@ -196,6 +218,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -204,6 +227,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Loan Repayment and Closure",
+   "link_count": 0,
    "link_to": "Loan Repayment and Closure",
    "link_type": "Report",
    "onboard": 0,
@@ -214,19 +238,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Loan Security Status",
+   "link_count": 0,
    "link_to": "Loan Security Status",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2021-05-25 17:31:53.586508",
+ "modified": "2021-08-05 12:18:13.350904",
  "modified_by": "Administrator",
  "module": "Loan Management",
  "name": "Loans",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 16,
  "shortcuts": [
   {
    "color": "Green",
@@ -247,5 +278,6 @@
    "link_to": "Loan Dashboard",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Loans"
 }
\ No newline at end of file
diff --git a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
index 44712d5..546a68f 100644
--- a/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
+++ b/erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
@@ -41,9 +41,9 @@
 })
 
 // TODO commonify this code
-erpnext.maintenance.MaintenanceSchedule = frappe.ui.form.Controller.extend({
-	refresh: function () {
-		frappe.dynamic_link = { doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer' };
+erpnext.maintenance.MaintenanceSchedule = class MaintenanceSchedule extends frappe.ui.form.Controller {
+	refresh() {
+		frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
 
 		var me = this;
 
@@ -138,33 +138,29 @@
 				}, __('Create'));
 			}
 		}
-	},
+	}
 
-	start_date: function (doc, cdt, cdn) {
+	start_date(doc, cdt, cdn) {
 		this.set_no_of_visits(doc, cdt, cdn);
-	},
+	}
 
-	end_date: function (doc, cdt, cdn) {
+	end_date(doc, cdt, cdn) {
 		this.set_no_of_visits(doc, cdt, cdn);
-	},
+	}
 
-	periodicity: function (doc, cdt, cdn) {
+	periodicity(doc, cdt, cdn) {
 		this.set_no_of_visits(doc, cdt, cdn);
+	}
 
-	},
-	no_of_visits: function (doc, cdt, cdn) {
-		this.set_no_of_visits(doc, cdt, cdn);
-	},
-
-	set_no_of_visits: function (doc, cdt, cdn) {
+	set_no_of_visits(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		let me = this;
 		if (item.start_date && item.periodicity) {
 			me.frm.call('validate_end_date_visits');
 			
 		}
-	},
-});
+	}
+};
 
-$.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceSchedule({ frm: cur_frm }));
+extend_cscript(cur_frm.cscript, new erpnext.maintenance.MaintenanceSchedule({frm: cur_frm}));
 
diff --git a/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
index d6105c6..53ecdf5 100644
--- a/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
+++ b/erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.js
@@ -64,9 +64,9 @@
 })
 
 // TODO commonify this code
-erpnext.maintenance.MaintenanceVisit = frappe.ui.form.Controller.extend({
-	refresh: function () {
-		frappe.dynamic_link = { doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer' };
+erpnext.maintenance.MaintenanceVisit = class MaintenanceVisit extends frappe.ui.form.Controller {
+	refresh() {
+		frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
 
 		var me = this;
 
@@ -119,7 +119,7 @@
 					})
 				}, __("Get Items From"));
 		}
-	},
-});
+	}
+};
 
-$.extend(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({ frm: cur_frm }));
\ No newline at end of file
+extend_cscript(cur_frm.cscript, new erpnext.maintenance.MaintenanceVisit({frm: cur_frm}));
diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js
index bfbc679..3f50b41 100644
--- a/erpnext/manufacturing/doctype/bom/bom.js
+++ b/erpnext/manufacturing/doctype/bom/bom.js
@@ -359,16 +359,16 @@
 	}
 });
 
-erpnext.bom.BomController = erpnext.TransactionController.extend({
-	conversion_rate: function(doc) {
+erpnext.bom.BomController = class BomController extends erpnext.TransactionController {
+	conversion_rate(doc) {
 		if(this.frm.doc.currency === this.get_company_currency()) {
 			this.frm.set_value("conversion_rate", 1.0);
 		} else {
 			erpnext.bom.update_cost(doc);
 		}
-	},
+	}
 
-	item_code: function(doc, cdt, cdn){
+	item_code(doc, cdt, cdn){
 		var scrap_items = false;
 		var child = locals[cdt][cdn];
 		if (child.doctype == 'BOM Scrap Item') {
@@ -380,19 +380,19 @@
 		}
 
 		get_bom_material_detail(doc, cdt, cdn, scrap_items);
-	},
+	}
 
-	buying_price_list: function(doc) {
+	buying_price_list(doc) {
 		this.apply_price_list();
-	},
+	}
 
-	plc_conversion_rate: function(doc) {
+	plc_conversion_rate(doc) {
 		if (!this.in_apply_price_list) {
 			this.apply_price_list(null, true);
 		}
-	},
+	}
 
-	conversion_factor: function(doc, cdt, cdn) {
+	conversion_factor(doc, cdt, cdn) {
 		if (frappe.meta.get_docfield(cdt, "stock_qty", cdn)) {
 			var item = frappe.get_doc(cdt, cdn);
 			frappe.model.round_floats_in(item, ["qty", "conversion_factor"]);
@@ -401,10 +401,10 @@
 			this.toggle_conversion_factor(item);
 			this.frm.events.update_cost(this.frm);
 		}
-	},
-});
+	}
+};
 
-$.extend(cur_frm.cscript, new erpnext.bom.BomController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.bom.BomController({frm: cur_frm}));
 
 cur_frm.cscript.hour_rate = function(doc) {
 	erpnext.bom.calculate_op_cost(doc);
@@ -654,4 +654,4 @@
 	if(!cint(frm.doc.with_operations)) {
 		frm.set_value("operations", []);
 	}
-});
\ No newline at end of file
+});
diff --git a/erpnext/manufacturing/doctype/bom/test_bom.py b/erpnext/manufacturing/doctype/bom/test_bom.py
index 57a5458..c89f7d6 100644
--- a/erpnext/manufacturing/doctype/bom/test_bom.py
+++ b/erpnext/manufacturing/doctype/bom/test_bom.py
@@ -8,6 +8,7 @@
 from frappe.utils import cstr, flt
 from frappe.test_runner import make_test_records
 from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import create_stock_reconciliation
+from erpnext.manufacturing.doctype.bom.bom import make_variant_bom
 from erpnext.manufacturing.doctype.bom_update_tool.bom_update_tool import update_cost
 from erpnext.stock.doctype.item.test_item import make_item
 from erpnext.buying.doctype.purchase_order.test_purchase_order import create_purchase_order
@@ -248,6 +249,37 @@
 		for reqd_item, created_item in zip(reqd_order, created_order):
 			self.assertEqual(reqd_item, created_item.item_code)
 
+	def test_generated_variant_bom(self):
+		from erpnext.controllers.item_variant import create_variant
+
+		template_item = make_item(
+			"_TestTemplateItem", {"has_variants": 1, "attributes": [{"attribute": "Test Size"},]}
+		)
+		variant = create_variant(template_item.item_code, {"Test Size": "Large"})
+		variant.insert(ignore_if_duplicate=True)
+
+		bom_tree = {
+			template_item.item_code: {
+				"SubAssembly1": {"ChildPart1": {}, "ChildPart2": {},},
+				"ChildPart5": {},
+			}
+		}
+		template_bom = create_nested_bom(bom_tree, prefix="")
+		variant_bom = make_variant_bom(
+			template_bom.name, template_bom.name, variant.item_code, variant_items=[]
+		)
+		variant_bom.save()
+
+		reqd_order = template_bom.get_tree_representation().level_order_traversal()
+		created_order = variant_bom.get_tree_representation().level_order_traversal()
+
+		self.assertEqual(len(reqd_order), len(created_order))
+
+		for reqd_item, created_item in zip(reqd_order, created_order):
+			self.assertEqual(reqd_item.item_code, created_item.item_code)
+			self.assertEqual(reqd_item.qty, created_item.qty)
+			self.assertEqual(reqd_item.exploded_qty, created_item.exploded_qty)
+
 
 def get_default_bom(item_code="_Test FG Item 2"):
 	return frappe.db.get_value("BOM", {"item": item_code, "is_active": 1, "is_default": 1})
diff --git a/erpnext/manufacturing/doctype/work_order/work_order_preview.html b/erpnext/manufacturing/doctype/work_order/work_order_preview.html
new file mode 100644
index 0000000..a4bf93e
--- /dev/null
+++ b/erpnext/manufacturing/doctype/work_order/work_order_preview.html
@@ -0,0 +1,33 @@
+<div style="padding: 15px;">
+	<div class="row mb-5">
+		<div class="col-md-5" style="max-height: 500px">
+			{% if data.image %}
+				<div class="border image-field " style="overflow: hidden;border-color:#e6e6e6">
+					<img class="responsive" src={{ data.image }}>
+				</div>
+			{% endif %}
+		</div>
+		<div class="col-md-7 h-500">
+			<div style="padding-top: 10px;">
+				<b> Status </b> {{ data.status }}
+			</div>
+			<div style="padding-top: 10px;">
+				<b> Qty to Produce </b> {{ data.qty }}
+			</div>
+			<div style="padding-top: 10px;">
+				<b> Produced Qty </b> {{ data.produced_qty }}
+			</div>
+			<hr style="margin: 15px -15px;">
+			<p>
+				{% if data.value %}
+				<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="#Form/Work Order/{{ data.value }}">
+					{{ __("Open Work Order {0}", [data.value.bold()]) }}</a>
+				{% endif %}
+				{% if data.item_code %}
+				<a class="btn btn-default btn-xs" href="#Form/Item/{{ data.item_code }}">
+					{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
+				{% endif %}
+			</p>
+		</div>
+	</div>
+</div>
\ No newline at end of file
diff --git a/erpnext/manufacturing/workspace/manufacturing/manufacturing.json b/erpnext/manufacturing/workspace/manufacturing/manufacturing.json
index a355203..84eabcd 100644
--- a/erpnext/manufacturing/workspace/manufacturing/manufacturing.json
+++ b/erpnext/manufacturing/workspace/manufacturing/manufacturing.json
@@ -1,26 +1,31 @@
 {
- "category": "Domains",
+ "category": "",
  "charts": [
   {
    "chart_name": "Produced Quantity"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Manufacturing\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": null, \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Item\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"BOM\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Work Order\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Production Plan\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Forecasting\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Work Order Summary\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"BOM Stock Report\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Production Planning Report\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Production\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Bill of Materials\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Tools\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}]",
  "creation": "2020-03-02 17:11:37.032604",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "organization",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Manufacturing",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Production",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -29,6 +34,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Work Order",
+   "link_count": 0,
    "link_to": "Work Order",
    "link_type": "DocType",
    "onboard": 1,
@@ -39,6 +45,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Production Plan",
+   "link_count": 0,
    "link_to": "Production Plan",
    "link_type": "DocType",
    "onboard": 1,
@@ -49,6 +56,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Entry",
+   "link_count": 0,
    "link_to": "Stock Entry",
    "link_type": "DocType",
    "onboard": 1,
@@ -59,6 +67,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Job Card",
+   "link_count": 0,
    "link_to": "Job Card",
    "link_type": "DocType",
    "onboard": 0,
@@ -69,6 +78,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Downtime Entry",
+   "link_count": 0,
    "link_to": "Downtime Entry",
    "link_type": "DocType",
    "onboard": 0,
@@ -78,6 +88,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bill of Materials",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -86,6 +97,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item",
+   "link_count": 0,
    "link_to": "Item",
    "link_type": "DocType",
    "onboard": 1,
@@ -96,6 +108,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Bill of Materials",
+   "link_count": 0,
    "link_to": "BOM",
    "link_type": "DocType",
    "onboard": 1,
@@ -106,6 +119,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Workstation",
+   "link_count": 0,
    "link_to": "Workstation",
    "link_type": "DocType",
    "onboard": 0,
@@ -116,6 +130,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Operation",
+   "link_count": 0,
    "link_to": "Operation",
    "link_type": "DocType",
    "onboard": 0,
@@ -126,6 +141,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Routing",
+   "link_count": 0,
    "link_to": "Routing",
    "link_type": "DocType",
    "onboard": 0,
@@ -135,6 +151,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -143,6 +160,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Production Planning Report",
+   "link_count": 0,
    "link_to": "Production Planning Report",
    "link_type": "Report",
    "onboard": 0,
@@ -153,6 +171,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Work Order Summary",
+   "link_count": 0,
    "link_to": "Work Order Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -163,6 +182,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Quality Inspection Summary",
+   "link_count": 0,
    "link_to": "Quality Inspection Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -173,6 +193,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Downtime Analysis",
+   "link_count": 0,
    "link_to": "Downtime Analysis",
    "link_type": "Report",
    "onboard": 0,
@@ -183,6 +204,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Job Card Summary",
+   "link_count": 0,
    "link_to": "Job Card Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -193,6 +215,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "BOM Search",
+   "link_count": 0,
    "link_to": "BOM Search",
    "link_type": "Report",
    "onboard": 0,
@@ -203,6 +226,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "BOM Stock Report",
+   "link_count": 0,
    "link_to": "BOM Stock Report",
    "link_type": "Report",
    "onboard": 0,
@@ -213,6 +237,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Production Analytics",
+   "link_count": 0,
    "link_to": "Production Analytics",
    "link_type": "Report",
    "onboard": 0,
@@ -223,6 +248,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "BOM Operations Time",
+   "link_count": 0,
    "link_to": "BOM Operations Time",
    "link_type": "Report",
    "onboard": 0,
@@ -232,6 +258,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tools",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -240,6 +267,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "BOM Update Tool",
+   "link_count": 0,
    "link_to": "BOM Update Tool",
    "link_type": "DocType",
    "onboard": 0,
@@ -250,6 +278,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "BOM Comparison Tool",
+   "link_count": 0,
    "link_to": "bom-comparison-tool",
    "link_type": "Page",
    "onboard": 0,
@@ -259,6 +288,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -267,21 +297,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Manufacturing Settings",
+   "link_count": 0,
    "link_to": "Manufacturing Settings",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:39.365928",
+ "modified": "2021-08-05 12:16:00.825741",
  "modified_by": "Administrator",
  "module": "Manufacturing",
  "name": "Manufacturing",
  "onboarding": "Manufacturing",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
  "restrict_to_domain": "Manufacturing",
+ "roles": [],
+ "sequence_id": 17,
  "shortcuts": [
   {
    "color": "Green",
@@ -346,5 +381,6 @@
    "restrict_to_domain": "Manufacturing",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Manufacturing"
 }
\ No newline at end of file
diff --git a/erpnext/non_profit/workspace/non_profit/non_profit.json b/erpnext/non_profit/workspace/non_profit/non_profit.json
index 2557d77..e6d4445 100644
--- a/erpnext/non_profit/workspace/non_profit/non_profit.json
+++ b/erpnext/non_profit/workspace/non_profit/non_profit.json
@@ -1,23 +1,27 @@
 {
- "category": "Domains",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Member\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Non Profit Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Membership\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Chapter\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Chapter Member\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Loan Management\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Grant Application\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Membership\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Volunteer\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Chapter\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Donation\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Tax Exemption Certification (India)\", \"col\": 4}}]",
  "creation": "2020-03-02 17:23:47.811421",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "non-profit",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "Non Profit",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Management",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -26,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Type",
+   "link_count": 0,
    "link_to": "Loan Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -36,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan Application",
+   "link_count": 0,
    "link_to": "Loan Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -46,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loan",
+   "link_count": 0,
    "link_to": "Loan",
    "link_type": "DocType",
    "onboard": 0,
@@ -55,6 +62,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Grant Application",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -63,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Grant Application",
+   "link_count": 0,
    "link_to": "Grant Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -72,6 +81,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Membership",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -80,6 +90,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Member",
+   "link_count": 0,
    "link_to": "Member",
    "link_type": "DocType",
    "onboard": 1,
@@ -90,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Membership",
+   "link_count": 0,
    "link_to": "Membership",
    "link_type": "DocType",
    "onboard": 1,
@@ -100,6 +112,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Membership Type",
+   "link_count": 0,
    "link_to": "Membership Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -110,6 +123,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Membership Settings",
+   "link_count": 0,
    "link_to": "Non Profit Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -119,6 +133,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Volunteer",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -127,6 +142,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Volunteer",
+   "link_count": 0,
    "link_to": "Volunteer",
    "link_type": "DocType",
    "onboard": 1,
@@ -137,6 +153,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Volunteer Type",
+   "link_count": 0,
    "link_to": "Volunteer Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -146,6 +163,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chapter",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -154,6 +172,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chapter",
+   "link_count": 0,
    "link_to": "Chapter",
    "link_type": "DocType",
    "onboard": 1,
@@ -163,6 +182,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Donation",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -171,6 +191,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Donor",
+   "link_count": 0,
    "link_to": "Donor",
    "link_type": "DocType",
    "onboard": 0,
@@ -181,6 +202,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Donor Type",
+   "link_count": 0,
    "link_to": "Donor Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -190,6 +212,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Donation",
+   "link_count": 0,
    "link_to": "Donation",
    "link_type": "DocType",
    "onboard": 0,
@@ -199,6 +222,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tax Exemption Certification (India)",
+   "link_count": 0,
    "link_type": "DocType",
    "onboard": 0,
    "type": "Card Break"
@@ -207,20 +231,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tax Exemption 80G Certificate",
+   "link_count": 0,
    "link_to": "Tax Exemption 80G Certificate",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2021-03-11 11:38:09.140655",
+ "modified": "2021-08-05 12:16:01.146206",
  "modified_by": "Administrator",
  "module": "Non Profit",
  "name": "Non Profit",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
  "restrict_to_domain": "Non Profit",
+ "roles": [],
+ "sequence_id": 18,
  "shortcuts": [
   {
    "label": "Member",
@@ -247,5 +277,6 @@
    "link_to": "Chapter Member",
    "type": "DocType"
   }
- ]
+ ],
+ "title": "Non Profit"
 }
\ No newline at end of file
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index b51777e..776b41d 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -45,7 +45,6 @@
 erpnext.patches.v11_0.make_asset_finance_book_against_old_entries
 erpnext.patches.v11_0.check_buying_selling_in_currency_exchange
 erpnext.patches.v11_0.move_item_defaults_to_child_table_for_multicompany #02-07-2018 #19-06-2019
-erpnext.patches.v11_0.refactor_erpnext_shopify #2018-09-07
 erpnext.patches.v11_0.rename_overproduction_percent_field
 erpnext.patches.v11_0.update_backflush_subcontract_rm_based_on_bom
 erpnext.patches.v11_0.inter_state_field_for_gst
@@ -143,7 +142,6 @@
 erpnext.patches.v12_0.rename_bank_account_field_in_journal_entry_account
 erpnext.patches.v12_0.create_default_energy_point_rules
 erpnext.patches.v12_0.set_produced_qty_field_in_sales_order_for_work_order
-erpnext.patches.v12_0.set_default_shopify_app_type
 erpnext.patches.v12_0.set_cwip_and_delete_asset_settings
 erpnext.patches.v12_0.set_expense_account_in_landed_cost_voucher_taxes
 erpnext.patches.v12_0.replace_accounting_with_accounts_in_home_settings
@@ -244,7 +242,6 @@
 erpnext.patches.v13_0.update_reason_for_resignation_in_employee
 execute:frappe.delete_doc("Report", "Quoted Item Comparison")
 erpnext.patches.v13_0.update_member_email_address
-erpnext.patches.v13_0.update_custom_fields_for_shopify
 erpnext.patches.v13_0.updates_for_multi_currency_payroll
 erpnext.patches.v13_0.create_leave_policy_assignment_based_on_employee_current_leave_policy
 erpnext.patches.v13_0.update_pos_closing_entry_in_merge_log
@@ -286,8 +283,11 @@
 erpnext.patches.v13_0.set_pos_closing_as_failed
 execute:frappe.rename_doc("Workspace", "Loan Management", "Loans", force=True)
 erpnext.patches.v13_0.update_timesheet_changes
+erpnext.patches.v13_0.add_doctype_to_sla #14-06-2021
 erpnext.patches.v13_0.set_training_event_attendance
+erpnext.patches.v13_0.bill_for_rejected_quantity_in_purchase_invoice
 erpnext.patches.v13_0.rename_issue_status_hold_to_on_hold
+erpnext.patches.v13_0.update_response_by_variance
 erpnext.patches.v13_0.bill_for_rejected_quantity_in_purchase_invoice
 erpnext.patches.v13_0.update_job_card_details
 erpnext.patches.v13_0.update_level_in_bom #1234sswef
@@ -298,5 +298,6 @@
 erpnext.patches.v13_0.delete_orphaned_tables
 erpnext.patches.v13_0.update_export_type_for_gst #2021-08-16
 erpnext.patches.v13_0.update_tds_check_field #3
+erpnext.patches.v13_0.add_custom_field_for_south_africa #2
 erpnext.patches.v13_0.update_recipient_email_digest
 erpnext.patches.v13_0.shopify_deprecation_warning
diff --git a/erpnext/patches/v11_0/refactor_erpnext_shopify.py b/erpnext/patches/v11_0/refactor_erpnext_shopify.py
deleted file mode 100644
index 340e9fc..0000000
--- a/erpnext/patches/v11_0/refactor_erpnext_shopify.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from __future__ import unicode_literals
-import frappe
-from frappe.installer import remove_from_installed_apps
-
-def execute():
-	frappe.reload_doc('erpnext_integrations', 'doctype', 'shopify_settings')
-	frappe.reload_doc('erpnext_integrations', 'doctype', 'shopify_tax_account')
-	frappe.reload_doc('erpnext_integrations', 'doctype', 'shopify_log')
-	frappe.reload_doc('erpnext_integrations', 'doctype', 'shopify_webhook_detail')
-
-	if 'erpnext_shopify' in frappe.get_installed_apps():
-		remove_from_installed_apps('erpnext_shopify')
-
-		frappe.delete_doc("Module Def", 'erpnext_shopify')
-
-		frappe.db.commit()
-
-		frappe.db.sql("truncate `tabShopify Log`")
-
-		setup_app_type()
-	else:
-		disable_shopify()
-
-def setup_app_type():
-	try:
-		shopify_settings = frappe.get_doc("Shopify Settings")
-		shopify_settings.app_type = 'Private'
-		shopify_settings.update_price_in_erpnext_price_list = 0 if getattr(shopify_settings, 'push_prices_to_shopify', None) else 1
-		shopify_settings.flags.ignore_mandatory = True
-		shopify_settings.ignore_permissions = True
-		shopify_settings.save()
-	except Exception:
-		frappe.db.set_value("Shopify Settings", None, "enable_shopify", 0)
-		frappe.log_error(frappe.get_traceback())
-
-def disable_shopify():
-	# due to frappe.db.set_value wrongly written and enable_shopify being default 1
-	# Shopify Settings isn't properly configured and leads to error
-	shopify = frappe.get_doc('Shopify Settings')
-
-	if shopify.app_type == "Public" or shopify.app_type == None or \
-		(shopify.enable_shopify and not (shopify.shopify_url or shopify.api_key)):
-		frappe.db.set_value("Shopify Settings", None, "enable_shopify", 0)
diff --git a/erpnext/patches/v12_0/set_default_shopify_app_type.py b/erpnext/patches/v12_0/set_default_shopify_app_type.py
deleted file mode 100644
index d040ea7..0000000
--- a/erpnext/patches/v12_0/set_default_shopify_app_type.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from __future__ import unicode_literals
-import frappe
-
-def execute():
-	frappe.reload_doc('erpnext_integrations', 'doctype', 'shopify_settings')
-	frappe.db.set_value('Shopify Settings', None, 'app_type', 'Private')
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/add_custom_field_for_south_africa.py b/erpnext/patches/v13_0/add_custom_field_for_south_africa.py
new file mode 100644
index 0000000..73ff1ca
--- /dev/null
+++ b/erpnext/patches/v13_0/add_custom_field_for_south_africa.py
@@ -0,0 +1,14 @@
+# Copyright (c) 2020, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+from erpnext.regional.south_africa.setup import make_custom_fields, add_permissions
+
+def execute():
+	company = frappe.get_all('Company', filters = {'country': 'South Africa'})
+	if not company:
+		return
+
+	make_custom_fields()
+	add_permissions()
diff --git a/erpnext/patches/v13_0/add_doctype_to_sla.py b/erpnext/patches/v13_0/add_doctype_to_sla.py
new file mode 100644
index 0000000..e2c7fd2
--- /dev/null
+++ b/erpnext/patches/v13_0/add_doctype_to_sla.py
@@ -0,0 +1,21 @@
+# Copyright (c) 2020, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+import frappe
+from frappe.model.utils.rename_field import rename_field
+
+def execute():
+	frappe.reload_doc('support', 'doctype', 'sla_fulfilled_on_status')
+	frappe.reload_doc('support', 'doctype', 'service_level_agreement')
+	if frappe.db.has_column('Service Level Agreement', 'enable'):
+		rename_field('Service Level Agreement', 'enable', 'enabled')
+
+	for sla in frappe.get_all('Service Level Agreement'):
+		agreement = frappe.get_doc('Service Level Agreement', sla.name)
+		agreement.document_type = 'Issue'
+		agreement.apply_sla_for_resolution = 1
+		agreement.append('sla_fulfilled_on', {'status': 'Resolved'})
+		agreement.append('sla_fulfilled_on', {'status': 'Closed'})
+		agreement.save()
\ No newline at end of file
diff --git a/erpnext/patches/v13_0/bill_for_rejected_quantity_in_purchase_invoice.py b/erpnext/patches/v13_0/bill_for_rejected_quantity_in_purchase_invoice.py
index be85cfd..7de9fa1 100644
--- a/erpnext/patches/v13_0/bill_for_rejected_quantity_in_purchase_invoice.py
+++ b/erpnext/patches/v13_0/bill_for_rejected_quantity_in_purchase_invoice.py
@@ -5,4 +5,4 @@
 	frappe.reload_doctype("Buying Settings")
 	buying_settings = frappe.get_single("Buying Settings")
 	buying_settings.bill_for_rejected_quantity_in_purchase_invoice = 0
-	buying_settings.save()
\ No newline at end of file
+	buying_settings.save()
diff --git a/erpnext/patches/v13_0/update_custom_fields_for_shopify.py b/erpnext/patches/v13_0/update_custom_fields_for_shopify.py
deleted file mode 100644
index f1d2ea2..0000000
--- a/erpnext/patches/v13_0/update_custom_fields_for_shopify.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
-# MIT License. See license.txt
-
-from __future__ import unicode_literals
-import frappe
-from erpnext.erpnext_integrations.doctype.shopify_settings.shopify_settings import setup_custom_fields
-
-def execute():
-	if frappe.db.get_single_value('Shopify Settings', 'enable_shopify'):
-		setup_custom_fields()
diff --git a/erpnext/patches/v13_0/update_response_by_variance.py b/erpnext/patches/v13_0/update_response_by_variance.py
new file mode 100644
index 0000000..ef4d976
--- /dev/null
+++ b/erpnext/patches/v13_0/update_response_by_variance.py
@@ -0,0 +1,31 @@
+# Copyright (c) 2020, Frappe and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	if frappe.db.exists('DocType', 'Issue') and frappe.db.count('Issue'):
+		invalid_issues = frappe.get_all('Issue', {
+			'first_responded_on': ['is', 'set'],
+			'response_by_variance': ['<', 0]
+		}, ["name", "response_by_variance", "timestampdiff(Second, `first_responded_on`, `response_by`) as variance"])
+
+		# issues which has response_by_variance set as -ve
+		# but diff between first_responded_on & response_by is +ve i.e SLA isn't failed
+		invalid_issues = [d for d in invalid_issues if d.get('variance') > 0]
+
+		for issue in invalid_issues:
+			frappe.db.set_value('Issue', issue.get('name'), 'response_by_variance', issue.get('variance'), update_modified=False)
+
+		invalid_issues = frappe.get_all('Issue', {
+			'resolution_date': ['is', 'set'],
+			'resolution_by_variance': ['<', 0]
+		}, ["name", "resolution_by_variance", "timestampdiff(Second, `resolution_date`, `resolution_by`) as variance"])
+
+		# issues which has resolution_by_variance set as -ve
+		# but diff between resolution_date & resolution_by is +ve i.e SLA isn't failed
+		invalid_issues = [d for d in invalid_issues if d.get('variance') > 0]
+
+		for issue in invalid_issues:
+			frappe.db.set_value('Issue', issue.get('name'), 'resolution_by_variance', issue.get('variance'), update_modified=False)
diff --git a/erpnext/payroll/doctype/salary_slip/salary_slip.py b/erpnext/payroll/doctype/salary_slip/salary_slip.py
index 7e1fb06..bd982cf 100644
--- a/erpnext/payroll/doctype/salary_slip/salary_slip.py
+++ b/erpnext/payroll/doctype/salary_slip/salary_slip.py
@@ -646,10 +646,13 @@
 				continue
 
 			if (
-				(not d.additional_salary
-				and (not additional_salary or additional_salary.overwrite))
-				or (additional_salary
-				and additional_salary.name == d.additional_salary)
+				(
+					not d.additional_salary
+					and (not additional_salary or additional_salary.overwrite)
+				) or (
+					additional_salary
+					and additional_salary.name == d.additional_salary
+				)
 			):
 				component_row = d
 				break
@@ -669,19 +672,21 @@
 
 			component_row = self.append(component_type)
 			for attr in (
-				'depends_on_payment_days', 'salary_component',
+				'depends_on_payment_days', 'salary_component', 'abbr',
 				'do_not_include_in_total', 'is_tax_applicable',
 				'is_flexible_benefit', 'variable_based_on_taxable_salary',
 				'exempted_from_income_tax'
 			):
 				component_row.set(attr, component_data.get(attr))
 
-			abbr = component_data.get('abbr') or component_data.get('salary_component_abbr')
-			component_row.set('abbr', abbr)
-
 		if additional_salary:
-			component_row.default_amount = 0
-			component_row.additional_amount = amount
+			component_row.is_recurring_additional_salary = is_recurring
+			if additional_salary.overwrite:
+				component_row.additional_amount = flt(flt(amount) - flt(component_row.get("default_amount", 0)),
+					component_row.precision("additional_amount"))
+			else:
+				component_row.default_amount = 0
+				component_row.additional_amount = amount
 			component_row.additional_salary = additional_salary.name
 			component_row.deduct_full_tax_on_selected_payroll_date = \
 				additional_salary.deduct_full_tax_on_selected_payroll_date
diff --git a/erpnext/payroll/doctype/salary_slip/test_salary_slip.py b/erpnext/payroll/doctype/salary_slip/test_salary_slip.py
index 6e8d3b3..d730fcf 100644
--- a/erpnext/payroll/doctype/salary_slip/test_salary_slip.py
+++ b/erpnext/payroll/doctype/salary_slip/test_salary_slip.py
@@ -481,7 +481,6 @@
 	if not salary_structure:
 		salary_structure = payroll_frequency + " Salary Structure Test for Salary Slip"
 
-
 	employee = frappe.db.get_value("Employee",
 					{
 						"user_id": user
diff --git a/erpnext/payroll/workspace/payroll/payroll.json b/erpnext/payroll/workspace/payroll/payroll.json
index 8149730..b55bdc7 100644
--- a/erpnext/payroll/workspace/payroll/payroll.json
+++ b/erpnext/payroll/workspace/payroll/payroll.json
@@ -1,27 +1,32 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Outgoing Salary",
    "label": "Outgoing Salary"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Payroll\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Outgoing Salary\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Salary Structure\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Payroll Entry\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Salary Slip\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Income Tax Slab\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Salary Register\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Payroll\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Taxation\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Compensations\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}]",
  "creation": "2020-05-27 19:54:23.405607",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "money-coins-1",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Payroll",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payroll",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -30,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Salary Component",
+   "link_count": 0,
    "link_to": "Salary Component",
    "link_type": "DocType",
    "onboard": 1,
@@ -40,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Salary Structure",
+   "link_count": 0,
    "link_to": "Salary Structure",
    "link_type": "DocType",
    "onboard": 1,
@@ -50,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Salary Structure Assignment",
+   "link_count": 0,
    "link_to": "Salary Structure Assignment",
    "link_type": "DocType",
    "onboard": 1,
@@ -60,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payroll Entry",
+   "link_count": 0,
    "link_to": "Payroll Entry",
    "link_type": "DocType",
    "onboard": 1,
@@ -70,6 +79,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Salary Slip",
+   "link_count": 0,
    "link_to": "Salary Slip",
    "link_type": "DocType",
    "onboard": 1,
@@ -79,6 +89,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Taxation",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -87,6 +98,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Payroll Period",
+   "link_count": 0,
    "link_to": "Payroll Period",
    "link_type": "DocType",
    "onboard": 1,
@@ -97,6 +109,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Income Tax Slab",
+   "link_count": 0,
    "link_to": "Income Tax Slab",
    "link_type": "DocType",
    "onboard": 1,
@@ -107,6 +120,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Other Income",
+   "link_count": 0,
    "link_to": "Employee Other Income",
    "link_type": "DocType",
    "onboard": 1,
@@ -117,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Tax Exemption Declaration",
+   "link_count": 0,
    "link_to": "Employee Tax Exemption Declaration",
    "link_type": "DocType",
    "onboard": 1,
@@ -127,6 +142,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Tax Exemption Proof Submission",
+   "link_count": 0,
    "link_to": "Employee Tax Exemption Proof Submission",
    "link_type": "DocType",
    "onboard": 1,
@@ -137,6 +153,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Tax Exemption Category",
+   "link_count": 0,
    "link_to": "Employee Tax Exemption Category",
    "link_type": "DocType",
    "onboard": 0,
@@ -147,6 +164,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Tax Exemption Sub Category",
+   "link_count": 0,
    "link_to": "Employee Tax Exemption Sub Category",
    "link_type": "DocType",
    "onboard": 0,
@@ -156,6 +174,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Compensations",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -164,6 +183,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Additional Salary",
+   "link_count": 0,
    "link_to": "Additional Salary",
    "link_type": "DocType",
    "onboard": 1,
@@ -174,6 +194,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Retention Bonus",
+   "link_count": 0,
    "link_to": "Retention Bonus",
    "link_type": "DocType",
    "onboard": 1,
@@ -184,6 +205,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Incentive",
+   "link_count": 0,
    "link_to": "Employee Incentive",
    "link_type": "DocType",
    "onboard": 1,
@@ -194,6 +216,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Benefit Application",
+   "link_count": 0,
    "link_to": "Employee Benefit Application",
    "link_type": "DocType",
    "onboard": 0,
@@ -204,6 +227,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Benefit Claim",
+   "link_count": 0,
    "link_to": "Employee Benefit Claim",
    "link_type": "DocType",
    "onboard": 0,
@@ -213,6 +237,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -221,6 +246,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Salary Register",
+   "link_count": 0,
    "link_to": "Salary Register",
    "link_type": "Report",
    "onboard": 0,
@@ -231,6 +257,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Salary Payments Based On Payment Mode",
+   "link_count": 0,
    "link_to": "Salary Payments Based On Payment Mode",
    "link_type": "Report",
    "onboard": 0,
@@ -241,6 +268,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Salary Payments via ECS",
+   "link_count": 0,
    "link_to": "Salary Payments via ECS",
    "link_type": "Report",
    "onboard": 0,
@@ -251,6 +279,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Income Tax Deductions",
+   "link_count": 0,
    "link_to": "Income Tax Deductions",
    "link_type": "Report",
    "onboard": 0,
@@ -261,6 +290,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Professional Tax Deductions",
+   "link_count": 0,
    "link_to": "Professional Tax Deductions",
    "link_type": "Report",
    "onboard": 0,
@@ -271,6 +301,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Provident Fund Deductions",
+   "link_count": 0,
    "link_to": "Provident Fund Deductions",
    "link_type": "Report",
    "onboard": 0,
@@ -281,20 +312,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Bank Remittance",
+   "link_count": 0,
    "link_to": "Bank Remittance",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:37.205628",
+ "modified": "2021-08-05 12:16:01.335324",
  "modified_by": "Administrator",
  "module": "Payroll",
  "name": "Payroll",
  "onboarding": "Payroll",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 19,
  "shortcuts": [
   {
    "label": "Salary Structure",
@@ -329,5 +366,6 @@
    "link_to": "Payroll",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Payroll"
 }
\ No newline at end of file
diff --git a/erpnext/portal/doctype/homepage/test_homepage.py b/erpnext/portal/doctype/homepage/test_homepage.py
index b717491..e646775 100644
--- a/erpnext/portal/doctype/homepage/test_homepage.py
+++ b/erpnext/portal/doctype/homepage/test_homepage.py
@@ -6,12 +6,12 @@
 import frappe
 import unittest
 from frappe.utils import set_request
-from frappe.website.render import render
+from frappe.website.serve import get_response
 
 class TestHomepage(unittest.TestCase):
 	def test_homepage_load(self):
 		set_request(method='GET', path='home')
-		response = render()
+		response = get_response()
 
 		self.assertEqual(response.status_code, 200)
 
diff --git a/erpnext/portal/doctype/homepage_section/test_homepage_section.py b/erpnext/portal/doctype/homepage_section/test_homepage_section.py
index f0aa554..5bb9682 100644
--- a/erpnext/portal/doctype/homepage_section/test_homepage_section.py
+++ b/erpnext/portal/doctype/homepage_section/test_homepage_section.py
@@ -7,7 +7,7 @@
 import unittest
 from bs4 import BeautifulSoup
 from frappe.utils import set_request
-from frappe.website.render import render
+from frappe.website.serve import get_response
 
 class TestHomepageSection(unittest.TestCase):
 	def test_homepage_section_card(self):
@@ -26,7 +26,7 @@
 			pass
 
 		set_request(method='GET', path='home')
-		response = render()
+		response = get_response()
 
 		self.assertEqual(response.status_code, 200)
 
@@ -59,7 +59,7 @@
 		}).insert()
 
 		set_request(method='GET', path='home')
-		response = render()
+		response = get_response()
 
 		self.assertEqual(response.status_code, 200)
 
diff --git a/erpnext/portal/product_configurator/test_product_configurator.py b/erpnext/portal/product_configurator/test_product_configurator.py
index daaba67..8aa0734 100644
--- a/erpnext/portal/product_configurator/test_product_configurator.py
+++ b/erpnext/portal/product_configurator/test_product_configurator.py
@@ -2,10 +2,8 @@
 
 from bs4 import BeautifulSoup
 import frappe, unittest
-from frappe.utils import set_request, get_html_for_route
-from frappe.website.render import render
+from frappe.utils import get_html_for_route
 from erpnext.portal.product_configurator.utils import get_products_for_website
-from erpnext.stock.doctype.item.test_item import make_item_variant
 
 test_dependencies = ["Item"]
 
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index c8fbe0b..1e4b2b0 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -14,6 +14,7 @@
 from erpnext.hr.doctype.holiday_list.holiday_list import is_holiday
 from frappe.model.document import Document
 from erpnext.education.doctype.student_attendance.student_attendance import get_holiday_list
+from erpnext.controllers.employee_boarding_controller import update_employee_boarding_status
 
 class Project(Document):
 	def get_feed(self):
@@ -37,6 +38,7 @@
 		self.send_welcome_email()
 		self.update_costing()
 		self.update_percent_complete()
+		update_employee_boarding_status(self)
 
 	def copy_from_template(self):
 		'''
@@ -132,6 +134,7 @@
 	def update_project(self):
 		'''Called externally by Task'''
 		self.update_percent_complete()
+		update_employee_boarding_status(self)
 		self.update_costing()
 		self.db_update()
 
diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py
index 39a6024..5976e01 100755
--- a/erpnext/projects/doctype/task/task.py
+++ b/erpnext/projects/doctype/task/task.py
@@ -77,9 +77,6 @@
 		if flt(self.progress or 0) > 100:
 			frappe.throw(_("Progress % for a task cannot be more than 100."))
 
-		if flt(self.progress) == 100:
-			self.status = 'Completed'
-
 		if self.status == 'Completed':
 			self.progress = 100
 
diff --git a/erpnext/projects/workspace/projects/projects.json b/erpnext/projects/workspace/projects/projects.json
index c023a73..065f1ed 100644
--- a/erpnext/projects/workspace/projects/projects.json
+++ b/erpnext/projects/workspace/projects/projects.json
@@ -1,28 +1,32 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Project Summary",
    "label": "Open Projects"
   }
  ],
+ "content": "[{\"type\": \"chart\", \"data\": {\"chart_name\": \"Open Projects\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Task\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Project\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Timesheet\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Project Billing Summary\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Projects\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Time Tracking\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}]",
  "creation": "2020-03-02 15:46:04.874669",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "project",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "Projects",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Projects",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -31,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Project",
+   "link_count": 0,
    "link_to": "Project",
    "link_type": "DocType",
    "onboard": 1,
@@ -41,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Task",
+   "link_count": 0,
    "link_to": "Task",
    "link_type": "DocType",
    "onboard": 1,
@@ -51,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Project Template",
+   "link_count": 0,
    "link_to": "Project Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -61,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Project Type",
+   "link_count": 0,
    "link_to": "Project Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -71,6 +79,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Project Update",
+   "link_count": 0,
    "link_to": "Project Update",
    "link_type": "DocType",
    "onboard": 0,
@@ -80,6 +89,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Time Tracking",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -88,6 +98,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Timesheet",
+   "link_count": 0,
    "link_to": "Timesheet",
    "link_type": "DocType",
    "onboard": 1,
@@ -98,6 +109,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Activity Type",
+   "link_count": 0,
    "link_to": "Activity Type",
    "link_type": "DocType",
    "onboard": 1,
@@ -108,6 +120,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Activity Cost",
+   "link_count": 0,
    "link_to": "Activity Cost",
    "link_type": "DocType",
    "onboard": 0,
@@ -117,6 +130,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -125,6 +139,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Daily Timesheet Summary",
+   "link_count": 0,
    "link_to": "Daily Timesheet Summary",
    "link_type": "Report",
    "onboard": 1,
@@ -135,6 +150,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Employee Hours Utilization",
+   "link_count": 0,
    "link_to": "Employee Hours Utilization Based On Timesheet",
    "link_type": "Report",
    "onboard": 0,
@@ -145,6 +161,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Project Profitability",
+   "link_count": 0,
    "link_to": "Project Profitability",
    "link_type": "Report",
    "onboard": 0,
@@ -155,6 +172,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Project wise Stock Tracking",
+   "link_count": 0,
    "link_to": "Project wise Stock Tracking",
    "link_type": "Report",
    "onboard": 0,
@@ -165,6 +183,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Project Billing Summary",
+   "link_count": 0,
    "link_to": "Project Billing Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -175,19 +194,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Delayed Tasks Summary",
+   "link_count": 0,
    "link_to": "Delayed Tasks Summary",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2021-04-25 16:27:16.548780",
+ "modified": "2021-08-05 12:16:01.540145",
  "modified_by": "Administrator",
  "module": "Projects",
  "name": "Projects",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 20,
  "shortcuts": [
   {
    "color": "Blue",
@@ -220,5 +246,6 @@
    "link_to": "Project",
    "type": "Dashboard"
   }
- ]
+ ],
+ "title": "Projects"
 }
\ No newline at end of file
diff --git a/erpnext/public/css/email.css b/erpnext/public/css/email.css
deleted file mode 100644
index 8cf1a31..0000000
--- a/erpnext/public/css/email.css
+++ /dev/null
@@ -1,29 +0,0 @@
-.panel-header {
-  background-color: #fafbfc;
-  border: 1px solid #d1d8dd;
-  border-radius: 3px 3px 0 0;
-}
-.panel-body {
-  background-color: #fff;
-  border: 1px solid #d1d8dd;
-  border-top: none;
-  border-radius: 0 0 3px 3px;
-  overflow-wrap: break-word;
-}
-.sender-avatar {
-  width: 24px;
-  height: 24px;
-  border-radius: 3px;
-  vertical-align: middle;
-}
-.sender-avatar-placeholder {
-  width: 24px;
-  height: 24px;
-  border-radius: 3px;
-  vertical-align: middle;
-  line-height: 24px;
-  text-align: center;
-  color: #d1d8dd;
-  border: 1px solid #d1d8dd;
-  background-color: #fff;
-}
diff --git a/erpnext/public/css/erpnext.css b/erpnext/public/css/erpnext.css
deleted file mode 100644
index 6e4efcb..0000000
--- a/erpnext/public/css/erpnext.css
+++ /dev/null
@@ -1,408 +0,0 @@
-.erpnext-footer {
-  margin: 11px auto;
-  text-align: center;
-}
-.show-all-reports {
-  margin-top: 5px;
-  font-size: 11px;
-}
-/* toolbar */
-.toolbar-splash {
-  width: 32px;
-  height: 32px;
-  margin: -10px auto;
-}
-.erpnext-icon {
-  width: 24px;
-  margin-right: 0px;
-  margin-top: -3px;
-}
-.dashboard-list-item {
-  background-color: inherit;
-  padding: 5px 0px;
-  border-bottom: 1px solid #d1d8dd;
-}
-#page-stock-balance .dashboard-list-item {
-  padding: 5px 15px;
-}
-.dashboard-list-item:last-child {
-  border-bottom: none;
-}
-.frappe-control[data-fieldname='result_html'] {
-  overflow: scroll;
-}
-.assessment-result-tool {
-  table-layout: fixed;
-}
-.assessment-result-tool input {
-  width: 100%;
-  border: 0;
-  outline: none;
-  text-align: right;
-}
-.assessment-result-tool th {
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.assessment-result-tool .total-score,
-.assessment-result-tool .grade,
-.assessment-result-tool .score {
-  text-align: right;
-}
-/* pos */
-body[data-route="pos"] .pos-bill-toolbar {
-  padding: 10px 0px;
-  height: 51px;
-}
-body[data-route="pos"] .pos-bill-item:hover,
-body[data-route="pos"] .list-customers-table > .pos-list-row:hover {
-  background-color: #f5f7fa;
-  cursor: pointer;
-}
-body[data-route="pos"] .pos-item-qty {
-  display: inline-block;
-}
-body[data-route="pos"] .pos-qty-row > div {
-  padding: 5px 0px;
-}
-body[data-route="pos"] .pos-qty-btn {
-  margin-top: 3px;
-  cursor: pointer;
-  font-size: 120%;
-}
-body[data-route="pos"] .search-area .form-group {
-  max-width: 100% !important;
-}
-body[data-route="pos"] .tax-table {
-  margin-bottom: 10px;
-}
-body[data-route="pos"] .discount-field-col {
-  padding-left: 24px;
-}
-body[data-route="pos"] .discount-amount-area .input-group:first-child {
-  margin-bottom: 2px;
-}
-body[data-route="pos"] .payment-toolbar .row {
-  width: 323px;
-  margin: 0 auto;
-}
-body[data-route="pos"] .payment-mode {
-  cursor: pointer;
-  font-family: sans-serif;
-  font-size: 15px;
-}
-body[data-route="pos"] .pos-payment-row .col-xs-6 {
-  padding: 15px;
-}
-body[data-route="pos"] .pos-payment-row {
-  border-bottom: 1px solid #d1d8dd;
-  margin: 2px 0px 5px 0px;
-  height: 60px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-}
-body[data-route="pos"] .pos-payment-row:hover,
-body[data-route="pos"] .pos-keyboard-key:hover {
-  background-color: #fafbfc;
-  cursor: pointer;
-}
-body[data-route="pos"] .pos-keyboard-key,
-body[data-route="pos"] .delete-btn {
-  border: 1px solid #d1d8dd;
-  height: 85px;
-  width: 85px;
-  margin: 10px 10px;
-  font-size: 24px;
-  font-weight: 200;
-  background-color: #FDFDFD;
-  border-color: #e8e8e8;
-}
-body[data-route="pos"] .numeric-keypad {
-  border: 1px solid #d1d8dd;
-  height: 69px;
-  width: 69px;
-  font-size: 20px;
-  font-weight: 200;
-  background-color: #FDFDFD;
-  border-color: #e8e8e8;
-  margin-left: -4px;
-}
-body[data-route="pos"] .pos-pay {
-  height: 69px;
-  width: 69px;
-  font-size: 17px;
-  font-weight: 200;
-  margin-left: -4px;
-}
-body[data-route="pos"] .numeric-keypad {
-  height: 60px;
-  width: 60px;
-  font-size: 20px;
-  font-weight: 200;
-  border-radius: 0;
-  background-color: #fff;
-  margin-left: -4px;
-}
-@media (max-width: 1199px) {
-  body[data-route="pos"] .numeric-keypad {
-    height: 45px;
-    width: 45px;
-    font-size: 14px;
-  }
-}
-@media (max-width: 991px) {
-  body[data-route="pos"] .numeric-keypad {
-    height: 40px;
-    width: 40px;
-  }
-}
-body[data-route="pos"] .numeric_keypad {
-  margin-left: -15px;
-}
-body[data-route="pos"] .numeric_keypad > .row > button {
-  border: none;
-  border-right: 1px solid #d1d8dd;
-  border-bottom: 1px solid #d1d8dd;
-}
-body[data-route="pos"] .numeric_keypad > .row > button:first-child {
-  border-left: 1px solid #d1d8dd;
-}
-body[data-route="pos"] .numeric_keypad > .row:first-child > button {
-  border-top: 1px solid #d1d8dd;
-}
-body[data-route="pos"] .pos-pay {
-  background-color: #5E64FF;
-  border: none;
-}
-body[data-route="pos"] .multimode-payments {
-  padding-left: 30px;
-}
-body[data-route="pos"] .payment-toolbar {
-  padding-right: 30px;
-}
-body[data-route="pos"] .list-row-head.pos-invoice-list {
-  border-top: 1px solid #d1d8dd;
-}
-body[data-route="pos"] .modal-dialog {
-  width: 750px;
-}
-@media (max-width: 767px) {
-  body[data-route="pos"] .modal-dialog {
-    width: auto;
-  }
-  body[data-route="pos"] .modal-dialog .modal-content {
-    height: auto;
-  }
-}
-@media (max-width: 767px) {
-  body[data-route="pos"] .amount-row h3 {
-    font-size: 15px;
-  }
-  body[data-route="pos"] .pos-keyboard-key,
-  body[data-route="pos"] .delete-btn {
-    height: 50px;
-  }
-  body[data-route="pos"] .multimode-payments {
-    padding-left: 15px;
-  }
-  body[data-route="pos"] .payment-toolbar {
-    padding-right: 15px;
-  }
-}
-body[data-route="pos"] .amount-label {
-  font-size: 16px;
-}
-body[data-route="pos"] .selected-payment-mode {
-  background-color: #fafbfc;
-  cursor: pointer;
-}
-body[data-route="pos"] .pos-invoice-list {
-  padding: 15px 10px;
-}
-body[data-route="pos"] .write_off_amount,
-body[data-route="pos"] .change_amount {
-  margin: 15px;
-  width: 130px;
-}
-body[data-route="pos"] .pos-list-row {
-  display: table;
-  table-layout: fixed;
-  width: 100%;
-  padding: 9px 15px;
-  font-size: 12px;
-  margin: 0px;
-  border-bottom: 1px solid #d1d8dd;
-}
-body[data-route="pos"] .pos-list-row .cell {
-  display: table-cell;
-  vertical-align: middle;
-}
-body[data-route="pos"] .pos-list-row .cell.price-cell {
-  width: 50%;
-}
-body[data-route="pos"] .pos-list-row .subject {
-  width: 40%;
-}
-body[data-route="pos"] .pos-list-row .list-row-checkbox,
-body[data-route="pos"] .pos-list-row .list-select-all {
-  margin-right: 7px;
-}
-body[data-route="pos"] .pos-bill-header {
-  background-color: #f5f7fa;
-  border: 1px solid #d1d8dd;
-  padding: 13px 15px;
-}
-body[data-route="pos"] .pos-list-row.active {
-  background-color: #fffce7;
-}
-body[data-route="pos"] .totals-area {
-  border-right: 1px solid #d1d8dd;
-  border-left: 1px solid #d1d8dd;
-  margin-bottom: 15px;
-}
-body[data-route="pos"] .tax-area .pos-list-row {
-  border: none;
-}
-body[data-route="pos"] .item-cart-items {
-  height: calc(100vh - 526px);
-  overflow: auto;
-  border: 1px solid #d1d8dd;
-  border-top: none;
-}
-@media (max-width: 767px) {
-  body[data-route="pos"] .item-cart-items {
-    height: 30vh;
-  }
-}
-body[data-route="pos"] .no-items-message {
-  min-height: 200px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  height: 100%;
-}
-body[data-route="pos"] .pos-list-row:last-child {
-  border-bottom: none;
-}
-body[data-route="pos"] .form-section-heading {
-  padding: 0;
-}
-body[data-route="pos"] .item-list {
-  border: 1px solid #d1d8dd;
-  border-top: none;
-  max-height: calc(100vh - 190px);
-  overflow: auto;
-}
-@media (max-width: 767px) {
-  body[data-route="pos"] .item-list {
-    max-height: initial;
-  }
-}
-body[data-route="pos"] .item-list .image-field {
-  height: 140px;
-}
-body[data-route="pos"] .item-list .image-field .placeholder-text {
-  font-size: 50px;
-}
-body[data-route="pos"] .item-list .pos-item-wrapper {
-  position: relative;
-}
-body[data-route="pos"] .pos-bill-toolbar {
-  margin-top: 10px;
-}
-body[data-route="pos"] .search-item .form-group {
-  margin: 0;
-}
-body[data-route="pos"] .item-list-area .pos-bill-header {
-  padding: 5px;
-  padding-left: 15px;
-}
-body[data-route="pos"] .pos-selected-item-action .pos-list-row:first-child {
-  padding-top: 0;
-}
-body[data-route="pos"] .pos-selected-item-action > .pos-list-row {
-  border: none;
-}
-@media (max-width: 1199px) {
-  body[data-route="pos"] .pos-selected-item-action > .pos-list-row {
-    padding: 5px 15px;
-  }
-}
-body[data-route="pos"] .edit-customer-btn {
-  position: absolute;
-  right: 57px;
-  top: 15px;
-  z-index: 100;
-}
-body[data-route="pos"] .btn-more {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-  cursor: pointer;
-  background-color: #fafbfc;
-  min-height: 200px;
-}
-body[data-route="pos"] .collapse-btn {
-  cursor: pointer;
-}
-@media (max-width: 767px) {
-  body[data-route="pos"] .page-actions {
-    max-width: 110px;
-  }
-}
-.price-info {
-  position: absolute;
-  left: 0;
-  bottom: 0;
-  margin: 0 0 15px 15px;
-  background-color: rgba(141, 153, 166, 0.6);
-  padding: 5px 9px;
-  border-radius: 3px;
-  color: #fff;
-}
-.leaderboard .result {
-  border-top: 1px solid #d1d8dd;
-}
-.leaderboard .list-item {
-  padding-left: 45px;
-}
-.leaderboard .list-item_content {
-  padding-right: 45px;
-}
-.exercise-card {
-	box-shadow: 0 1px 3px rgba(0,0,0,0.30);
-	border-radius: 2px;
-	padding: 6px 6px 6px 8px;
-	margin-top: 10px;
-	height: 100% !important;
-}
-.exercise-card .card-img-top {
-	width: 100%;
-	height: 15vw;
-	object-fit: cover;
-}
-.exercise-card .btn-edit {
-	position: absolute;
-	bottom: 10px;
-	left: 20px;
-}
-.exercise-card .btn-del {
-	position: absolute;
-	bottom: 10px;
-	left: 50px;
-}
-.exercise-card .card-body {
-		margin-bottom: 10px;
-}
-.exercise-card .card-footer {
-		padding: 10px;
-}
-.exercise-row {
-	height: 100% !important;
-	display: flex;
-	flex-wrap: wrap;
-}
-.exercise-col {
-	padding: 10px;
-}
diff --git a/erpnext/public/css/leaflet/leaflet.css b/erpnext/public/css/leaflet/leaflet.css
deleted file mode 100755
index 979a8bd..0000000
--- a/erpnext/public/css/leaflet/leaflet.css
+++ /dev/null
@@ -1,611 +0,0 @@
-/* required styles */
-
-.leaflet-pane,
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow,
-.leaflet-tile-container,
-.leaflet-map-pane svg,
-.leaflet-map-pane canvas,
-.leaflet-zoom-box,
-.leaflet-image-layer,
-.leaflet-layer {
-    position: absolute;
-    left: 0;
-    top: 0;
-}
-
-.leaflet-container {
-    overflow: hidden;
-    -ms-touch-action: none;
-    touch-action: none;
-}
-
-.leaflet-tile,
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    user-select: none;
-    -webkit-user-drag: none;
-}
-
-
-/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
-
-.leaflet-safari .leaflet-tile {
-    image-rendering: -webkit-optimize-contrast;
-}
-
-
-/* hack that prevents hw layers "stretching" when loading new tiles */
-
-.leaflet-safari .leaflet-tile-container {
-    width: 1600px;
-    height: 1600px;
-    -webkit-transform-origin: 0 0;
-}
-
-.leaflet-marker-icon,
-.leaflet-marker-shadow {
-    display: block;
-}
-
-
-/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
-
-
-/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
-
-.leaflet-container .leaflet-overlay-pane svg,
-.leaflet-container .leaflet-marker-pane img,
-.leaflet-container .leaflet-tile-pane img,
-.leaflet-container img.leaflet-image-layer {
-    max-width: none !important;
-}
-
-.leaflet-tile {
-    filter: inherit;
-    visibility: hidden;
-}
-
-.leaflet-tile-loaded {
-    visibility: inherit;
-}
-
-.leaflet-zoom-box {
-    width: 0;
-    height: 0;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-    z-index: 800;
-}
-
-
-/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
-
-.leaflet-overlay-pane svg {
-    -moz-user-select: none;
-}
-
-.leaflet-pane {
-    z-index: 400;
-}
-
-.leaflet-tile-pane {
-    z-index: 200;
-}
-
-.leaflet-overlay-pane {
-    z-index: 400;
-}
-
-.leaflet-shadow-pane {
-    z-index: 500;
-}
-
-.leaflet-marker-pane {
-    z-index: 600;
-}
-
-.leaflet-popup-pane {
-    z-index: 700;
-}
-
-.leaflet-map-pane canvas {
-    z-index: 100;
-}
-
-.leaflet-map-pane svg {
-    z-index: 200;
-}
-
-.leaflet-vml-shape {
-    width: 1px;
-    height: 1px;
-}
-
-.lvml {
-    behavior: url(#default#VML);
-    display: inline-block;
-    position: absolute;
-}
-
-
-/* control positioning */
-
-.leaflet-control {
-    position: relative;
-    z-index: 800;
-    pointer-events: auto;
-}
-
-.leaflet-top,
-.leaflet-bottom {
-    position: absolute;
-    z-index: 1000;
-    pointer-events: none;
-}
-
-.leaflet-top {
-    top: 0;
-}
-
-.leaflet-right {
-    right: 0;
-}
-
-.leaflet-bottom {
-    bottom: 0;
-}
-
-.leaflet-left {
-    left: 0;
-}
-
-.leaflet-control {
-    float: left;
-    clear: both;
-}
-
-.leaflet-right .leaflet-control {
-    float: right;
-}
-
-.leaflet-top .leaflet-control {
-    margin-top: 10px;
-}
-
-.leaflet-bottom .leaflet-control {
-    margin-bottom: 10px;
-}
-
-.leaflet-left .leaflet-control {
-    margin-left: 10px;
-}
-
-.leaflet-right .leaflet-control {
-    margin-right: 10px;
-}
-
-
-/* zoom and fade animations */
-
-.leaflet-fade-anim .leaflet-tile {
-    will-change: opacity;
-}
-
-.leaflet-fade-anim .leaflet-popup {
-    opacity: 0;
-    -webkit-transition: opacity 0.2s linear;
-    -moz-transition: opacity 0.2s linear;
-    -o-transition: opacity 0.2s linear;
-    transition: opacity 0.2s linear;
-}
-
-.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
-    opacity: 1;
-}
-
-.leaflet-zoom-animated {
-    -webkit-transform-origin: 0 0;
-    -ms-transform-origin: 0 0;
-    transform-origin: 0 0;
-}
-
-.leaflet-zoom-anim .leaflet-zoom-animated {
-    will-change: transform;
-}
-
-.leaflet-zoom-anim .leaflet-zoom-animated {
-    -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
-    -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
-    -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1);
-    transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1);
-}
-
-.leaflet-zoom-anim .leaflet-tile,
-.leaflet-pan-anim .leaflet-tile {
-    -webkit-transition: none;
-    -moz-transition: none;
-    -o-transition: none;
-    transition: none;
-}
-
-.leaflet-zoom-anim .leaflet-zoom-hide {
-    visibility: hidden;
-}
-
-
-/* cursors */
-
-.leaflet-interactive {
-    cursor: pointer;
-}
-
-.leaflet-grab {
-    cursor: -webkit-grab;
-    cursor: -moz-grab;
-}
-
-.leaflet-crosshair,
-.leaflet-crosshair .leaflet-interactive {
-    cursor: crosshair;
-}
-
-.leaflet-popup-pane,
-.leaflet-control {
-    cursor: auto;
-}
-
-.leaflet-dragging .leaflet-grab,
-.leaflet-dragging .leaflet-grab .leaflet-interactive,
-.leaflet-dragging .leaflet-marker-draggable {
-    cursor: move;
-    cursor: -webkit-grabbing;
-    cursor: -moz-grabbing;
-}
-
-
-/* visual tweaks */
-
-.leaflet-container {
-    background: #ddd;
-    outline: 0;
-}
-
-.leaflet-container a {
-    color: #0078A8;
-}
-
-.leaflet-container a.leaflet-active {
-    outline: 2px solid orange;
-}
-
-.leaflet-zoom-box {
-    border: 2px dotted #38f;
-    background: rgba(255, 255, 255, 0.5);
-}
-
-
-/* general typography */
-
-.leaflet-container {
-    font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
-}
-
-
-/* general toolbar styles */
-
-.leaflet-bar {
-    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65);
-    border-radius: 4px;
-}
-
-.leaflet-bar a,
-.leaflet-bar a:hover {
-    background-color: #fff;
-    border-bottom: 1px solid #ccc;
-    width: 26px;
-    height: 26px;
-    line-height: 26px;
-    display: block;
-    text-align: center;
-    text-decoration: none;
-    color: black;
-}
-
-.leaflet-bar a,
-.leaflet-control-layers-toggle {
-    background-position: 50% 50%;
-    background-repeat: no-repeat;
-    display: block;
-}
-
-.leaflet-bar a:hover {
-    background-color: #f4f4f4;
-}
-
-.leaflet-bar a:first-child {
-    border-top-left-radius: 4px;
-    border-top-right-radius: 4px;
-}
-
-.leaflet-bar a:last-child {
-    border-bottom-left-radius: 4px;
-    border-bottom-right-radius: 4px;
-    border-bottom: none;
-}
-
-.leaflet-bar a.leaflet-disabled {
-    cursor: default;
-    background-color: #f4f4f4;
-    color: #bbb;
-}
-
-.leaflet-touch .leaflet-bar a {
-    width: 30px;
-    height: 30px;
-    line-height: 30px;
-}
-
-
-/* zoom control */
-
-.leaflet-control-zoom-in,
-.leaflet-control-zoom-out {
-    font: bold 18px 'Lucida Console', Monaco, monospace;
-    text-indent: 1px;
-}
-
-.leaflet-control-zoom-out {
-    font-size: 20px;
-}
-
-.leaflet-touch .leaflet-control-zoom-in {
-    font-size: 22px;
-}
-
-.leaflet-touch .leaflet-control-zoom-out {
-    font-size: 24px;
-}
-
-
-/* layers control */
-
-.leaflet-control-layers {
-    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
-    background: #fff;
-    border-radius: 5px;
-}
-
-.leaflet-control-layers-toggle {
-    background-image: url('assets/erpnext/images/leaflet/layers.png');
-    width: 36px;
-    height: 36px;
-}
-
-.leaflet-retina .leaflet-control-layers-toggle {
-    background-image: url('assets/erpnext/images/leaflet/layers-2x.png');
-    background-size: 26px 26px;
-}
-
-.leaflet-touch .leaflet-control-layers-toggle {
-    width: 44px;
-    height: 44px;
-}
-
-.leaflet-control-layers .leaflet-control-layers-list,
-.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
-    display: none;
-}
-
-.leaflet-control-layers-expanded .leaflet-control-layers-list {
-    display: block;
-    position: relative;
-}
-
-.leaflet-control-layers-expanded {
-    padding: 6px 10px 6px 6px;
-    color: #333;
-    background: #fff;
-}
-
-.leaflet-control-layers-scrollbar {
-    overflow-y: scroll;
-    padding-right: 5px;
-}
-
-.leaflet-control-layers-selector {
-    margin-top: 2px;
-    position: relative;
-    top: 1px;
-}
-
-.leaflet-control-layers label {
-    display: block;
-}
-
-.leaflet-control-layers-separator {
-    height: 0;
-    border-top: 1px solid #ddd;
-    margin: 5px -10px 5px -6px;
-}
-
-
-/* attribution and scale controls */
-
-.leaflet-container .leaflet-control-attribution {
-    background: #fff;
-    background: rgba(255, 255, 255, 0.7);
-    margin: 0;
-}
-
-.leaflet-control-attribution,
-.leaflet-control-scale-line {
-    padding: 0 5px;
-    color: #333;
-}
-
-.leaflet-control-attribution a {
-    text-decoration: none;
-}
-
-.leaflet-control-attribution a:hover {
-    text-decoration: underline;
-}
-
-.leaflet-container .leaflet-control-attribution,
-.leaflet-container .leaflet-control-scale {
-    font-size: 11px;
-}
-
-.leaflet-left .leaflet-control-scale {
-    margin-left: 5px;
-}
-
-.leaflet-bottom .leaflet-control-scale {
-    margin-bottom: 5px;
-}
-
-.leaflet-control-scale-line {
-    border: 2px solid #777;
-    border-top: none;
-    line-height: 1.1;
-    padding: 2px 5px 1px;
-    font-size: 11px;
-    white-space: nowrap;
-    overflow: hidden;
-    -moz-box-sizing: border-box;
-    box-sizing: border-box;
-    background: #fff;
-    background: rgba(255, 255, 255, 0.5);
-}
-
-.leaflet-control-scale-line:not(:first-child) {
-    border-top: 2px solid #777;
-    border-bottom: none;
-    margin-top: -2px;
-}
-
-.leaflet-control-scale-line:not(:first-child):not(:last-child) {
-    border-bottom: 2px solid #777;
-}
-
-.leaflet-touch .leaflet-control-attribution,
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
-    box-shadow: none;
-}
-
-.leaflet-touch .leaflet-control-layers,
-.leaflet-touch .leaflet-bar {
-    border: 2px solid rgba(0, 0, 0, 0.2);
-    background-clip: padding-box;
-}
-
-
-/* popup */
-
-.leaflet-popup {
-    position: absolute;
-    text-align: center;
-}
-
-.leaflet-popup-content-wrapper {
-    padding: 1px;
-    text-align: left;
-    border-radius: 12px;
-}
-
-.leaflet-popup-content {
-    margin: 13px 19px;
-    line-height: 1.4;
-}
-
-.leaflet-popup-content p {
-    margin: 18px 0;
-}
-
-.leaflet-popup-tip-container {
-    margin: 0 auto;
-    width: 40px;
-    height: 20px;
-    position: relative;
-    overflow: hidden;
-}
-
-.leaflet-popup-tip {
-    width: 17px;
-    height: 17px;
-    padding: 1px;
-    margin: -10px auto 0;
-    -webkit-transform: rotate(45deg);
-    -moz-transform: rotate(45deg);
-    -ms-transform: rotate(45deg);
-    -o-transform: rotate(45deg);
-    transform: rotate(45deg);
-}
-
-.leaflet-popup-content-wrapper,
-.leaflet-popup-tip {
-    background: white;
-    color: #333;
-    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
-}
-
-.leaflet-container a.leaflet-popup-close-button {
-    position: absolute;
-    top: 0;
-    right: 0;
-    padding: 4px 4px 0 0;
-    border: none;
-    text-align: center;
-    width: 18px;
-    height: 14px;
-    font: 16px/14px Tahoma, Verdana, sans-serif;
-    color: #c3c3c3;
-    text-decoration: none;
-    font-weight: bold;
-    background: transparent;
-}
-
-.leaflet-container a.leaflet-popup-close-button:hover {
-    color: #999;
-}
-
-.leaflet-popup-scrolled {
-    overflow: auto;
-    border-bottom: 1px solid #ddd;
-    border-top: 1px solid #ddd;
-}
-
-.leaflet-oldie .leaflet-popup-content-wrapper {
-    zoom: 1;
-}
-
-.leaflet-oldie .leaflet-popup-tip {
-    width: 24px;
-    margin: 0 auto;
-    -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
-    filter: progid: DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
-}
-
-.leaflet-oldie .leaflet-popup-tip-container {
-    margin-top: -1px;
-}
-
-.leaflet-oldie .leaflet-control-zoom,
-.leaflet-oldie .leaflet-control-layers,
-.leaflet-oldie .leaflet-popup-content-wrapper,
-.leaflet-oldie .leaflet-popup-tip {
-    border: 1px solid #999;
-}
-
-
-/* div icon */
-
-.leaflet-div-icon {
-    background: #fff;
-    border: 1px solid #666;
-}
\ No newline at end of file
diff --git a/erpnext/public/css/leaflet/leaflet.draw.css b/erpnext/public/css/leaflet/leaflet.draw.css
deleted file mode 100755
index 6fb7db0..0000000
--- a/erpnext/public/css/leaflet/leaflet.draw.css
+++ /dev/null
@@ -1,316 +0,0 @@
-/* ================================================================== */
-
-
-/* Toolbars
-/* ================================================================== */
-
-.leaflet-draw-section {
-    position: relative;
-}
-
-.leaflet-draw-toolbar {
-    margin-top: 12px;
-}
-
-.leaflet-draw-toolbar-top {
-    margin-top: 0;
-}
-
-.leaflet-draw-toolbar-notop a:first-child {
-    border-top-right-radius: 0;
-}
-
-.leaflet-draw-toolbar-nobottom a:last-child {
-    border-bottom-right-radius: 0;
-}
-
-.leaflet-draw-toolbar a {
-    background-image: url('assets/erpnext/images/leaflet/spritesheet.png');
-    background-repeat: no-repeat;
-}
-
-.leaflet-retina .leaflet-draw-toolbar a {
-    background-image: url('assets/erpnext/images/leaflet/spritesheet-2x.png');
-    background-size: 270px 30px;
-}
-
-.leaflet-draw a {
-    display: block;
-    text-align: center;
-    text-decoration: none;
-}
-
-
-/* ================================================================== */
-
-
-/* Toolbar actions menu
-/* ================================================================== */
-
-.leaflet-draw-actions {
-    display: none;
-    list-style: none;
-    margin: 0;
-    padding: 0;
-    position: absolute;
-    left: 26px;
-    /* leaflet-draw-toolbar.left + leaflet-draw-toolbar.width */
-    top: 0;
-    white-space: nowrap;
-}
-
-.leaflet-right .leaflet-draw-actions {
-    right: 26px;
-    left: auto;
-}
-
-.leaflet-draw-actions li {
-    display: inline-block;
-}
-
-.leaflet-draw-actions li:first-child a {
-    border-left: none;
-}
-
-.leaflet-draw-actions li:last-child a {
-    -webkit-border-radius: 0 4px 4px 0;
-    border-radius: 0 4px 4px 0;
-}
-
-.leaflet-right .leaflet-draw-actions li:last-child a {
-    -webkit-border-radius: 0;
-    border-radius: 0;
-}
-
-.leaflet-right .leaflet-draw-actions li:first-child a {
-    -webkit-border-radius: 4px 0 0 4px;
-    border-radius: 4px 0 0 4px;
-}
-
-.leaflet-draw-actions a {
-    background-color: #919187;
-    border-left: 1px solid #AAA;
-    color: #FFF;
-    font: 11px/19px "Helvetica Neue", Arial, Helvetica, sans-serif;
-    line-height: 28px;
-    text-decoration: none;
-    padding-left: 10px;
-    padding-right: 10px;
-    height: 28px;
-}
-
-.leaflet-draw-actions-bottom {
-    margin-top: 0;
-}
-
-.leaflet-draw-actions-top {
-    margin-top: 1px;
-}
-
-.leaflet-draw-actions-top a,
-.leaflet-draw-actions-bottom a {
-    height: 27px;
-    line-height: 27px;
-}
-
-.leaflet-draw-actions a:hover {
-    background-color: #A0A098;
-}
-
-.leaflet-draw-actions-top.leaflet-draw-actions-bottom a {
-    height: 26px;
-    line-height: 26px;
-}
-
-
-/* ================================================================== */
-
-
-/* Draw toolbar
-/* ================================================================== */
-
-.leaflet-draw-toolbar .leaflet-draw-draw-polyline {
-    background-position: -2px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-draw-polygon {
-    background-position: -31px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-draw-rectangle {
-    background-position: -62px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-draw-circle {
-    background-position: -92px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-draw-marker {
-    background-position: -122px -2px;
-}
-
-
-/* ================================================================== */
-
-
-/* Edit toolbar
-/* ================================================================== */
-
-.leaflet-draw-toolbar .leaflet-draw-edit-edit {
-    background-position: -152px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-edit-remove {
-    background-position: -182px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-edit-edit.leaflet-disabled {
-    background-position: -212px -2px;
-}
-
-.leaflet-draw-toolbar .leaflet-draw-edit-remove.leaflet-disabled {
-    background-position: -242px -2px;
-}
-
-
-/* ================================================================== */
-
-
-/* Drawing styles
-/* ================================================================== */
-
-.leaflet-mouse-marker {
-    background-color: #fff;
-    cursor: crosshair;
-}
-
-.leaflet-draw-tooltip {
-    background: rgb(54, 54, 54);
-    background: rgba(0, 0, 0, 0.5);
-    border: 1px solid transparent;
-    -webkit-border-radius: 4px;
-    border-radius: 4px;
-    color: #fff;
-    font: 12px/18px "Helvetica Neue", Arial, Helvetica, sans-serif;
-    margin-left: 20px;
-    margin-top: -21px;
-    padding: 4px 8px;
-    position: absolute;
-    visibility: hidden;
-    white-space: nowrap;
-    z-index: 6;
-}
-
-.leaflet-draw-tooltip:before {
-    border-right: 6px solid black;
-    border-right-color: rgba(0, 0, 0, 0.5);
-    border-top: 6px solid transparent;
-    border-bottom: 6px solid transparent;
-    content: "";
-    position: absolute;
-    top: 7px;
-    left: -7px;
-}
-
-.leaflet-error-draw-tooltip {
-    background-color: #F2DEDE;
-    border: 1px solid #E6B6BD;
-    color: #B94A48;
-}
-
-.leaflet-error-draw-tooltip:before {
-    border-right-color: #E6B6BD;
-}
-
-.leaflet-draw-tooltip-single {
-    margin-top: -12px
-}
-
-.leaflet-draw-tooltip-subtext {
-    color: #f8d5e4;
-}
-
-.leaflet-draw-guide-dash {
-    font-size: 1%;
-    opacity: 0.6;
-    position: absolute;
-    width: 5px;
-    height: 5px;
-}
-
-
-/* ================================================================== */
-
-
-/* Edit styles
-/* ================================================================== */
-
-.leaflet-edit-marker-selected {
-    background: rgba(254, 87, 161, 0.1);
-    border: 4px dashed rgba(254, 87, 161, 0.6);
-    -webkit-border-radius: 4px;
-    border-radius: 4px;
-}
-
-.leaflet-edit-move {
-    cursor: move;
-}
-
-.leaflet-edit-resize {
-    cursor: pointer;
-}
-
-
-/* ================================================================== */
-
-
-/* Old IE styles
-/* ================================================================== */
-
-.leaflet-oldie .leaflet-draw-toolbar {
-    border: 3px solid #999;
-}
-
-.leaflet-oldie .leaflet-draw-toolbar a {
-    background-color: #eee;
-}
-
-.leaflet-oldie .leaflet-draw-toolbar a:hover {
-    background-color: #fff;
-}
-
-.leaflet-oldie .leaflet-draw-actions {
-    left: 32px;
-    margin-top: 3px;
-}
-
-.leaflet-oldie .leaflet-draw-actions li {
-    display: inline;
-    zoom: 1;
-}
-
-.leaflet-oldie .leaflet-edit-marker-selected {
-    border: 4px dashed #fe93c2;
-}
-
-.leaflet-oldie .leaflet-draw-actions a {
-    background-color: #999;
-}
-
-.leaflet-oldie .leaflet-draw-actions a:hover {
-    background-color: #a5a5a5;
-}
-
-.leaflet-oldie .leaflet-draw-actions-top a {
-    margin-top: 1px;
-}
-
-.leaflet-oldie .leaflet-draw-actions-bottom a {
-    height: 28px;
-    line-height: 28px;
-}
-
-.leaflet-oldie .leaflet-draw-actions-top.leaflet-draw-actions-bottom a {
-    height: 27px;
-    line-height: 27px;
-}
\ No newline at end of file
diff --git a/erpnext/public/js/account_tree_grid.js b/erpnext/public/js/account_tree_grid.js
index 757f33e..413a5ee 100644
--- a/erpnext/public/js/account_tree_grid.js
+++ b/erpnext/public/js/account_tree_grid.js
@@ -14,9 +14,9 @@
 // You should have received a copy of the GNU General Public License
 // along with this program.	If not, see <http://www.gnu.org/licenses/>.
 
-erpnext.AccountTreeGrid = frappe.views.TreeGridReport.extend({
-	init: function(wrapper, title) {
-		this._super({
+erpnext.AccountTreeGrid = class AccountTreeGrid extends frappe.views.TreeGridReport {
+	constructor(wrapper, title) {
+		super({
 			title: title,
 			parent: $(wrapper).find('.layout-main'),
 			page: wrapper.page,
@@ -33,8 +33,24 @@
 				}
 			},
 		});
-	},
-	setup_columns: function() {
+
+		this.filters = [
+			{fieldtype: "Select", label: __("Company"), link:"Company", fieldname: "company",
+				default_value: __("Select Company..."),
+				filter: function(val, item, opts, me) {
+					if (item.company == val || val == opts.default_value) {
+						return me.apply_zero_filter(val, item, opts, me);
+					}
+					return false;
+				}},
+			{fieldtype: "Select", label: "Fiscal Year", link:"Fiscal Year", fieldname: "fiscal_year",
+				default_value: __("Select Fiscal Year...")},
+			{fieldtype: "Date", label: __("From Date"), fieldname: "from_date"},
+			{fieldtype: "Label", label: __("To")},
+			{fieldtype: "Date", label: __("To Date"), fieldname: "to_date"}
+		]
+	}
+	setup_columns() {
 		this.columns = [
 			{id: "name", name: __("Account"), field: "name", width: 300, cssClass: "cell-title"},
 			{id: "opening_dr", name: __("Opening (Dr)"), field: "opening_dr", width: 100,
@@ -50,25 +66,10 @@
 			{id: "closing_cr", name: __("Closing (Cr)"), field: "closing_cr", width: 100,
 				formatter: this.currency_formatter}
 		];
+	}
 
-	},
-	filters: [
-		{fieldtype: "Select", label: __("Company"), link:"Company", fieldname: "company",
-			default_value: __("Select Company..."),
-			filter: function(val, item, opts, me) {
-				if (item.company == val || val == opts.default_value) {
-					return me.apply_zero_filter(val, item, opts, me);
-				}
-				return false;
-			}},
-		{fieldtype: "Select", label: "Fiscal Year", link:"Fiscal Year", fieldname: "fiscal_year",
-			default_value: __("Select Fiscal Year...")},
-		{fieldtype: "Date", label: __("From Date"), fieldname: "from_date"},
-		{fieldtype: "Label", label: __("To")},
-		{fieldtype: "Date", label: __("To Date"), fieldname: "to_date"}
-	],
-	setup_filters: function() {
-		this._super();
+	setup_filters() {
+		super.setup_filters();
 		var me = this;
 		// default filters
 		this.filter_inputs.fiscal_year.change(function() {
@@ -83,8 +84,8 @@
 		});
 		me.show_zero_check()
 		if(me.ignore_closing_entry) me.ignore_closing_entry();
-	},
-	prepare_data: function() {
+	}
+	prepare_data() {
 		var me = this;
 		if(!this.primary_data) {
 			// make accounts list
@@ -113,12 +114,12 @@
 		this.set_indent();
 		this.prepare_balances();
 
-	},
-	init_account: function(d) {
+	}
+	init_account(d) {
 		this.reset_item_values(d);
-	},
+	}
 
-	prepare_balances: function() {
+	prepare_balances() {
 		var gl = frappe.report_dump.data['GL Entry'];
 		var me = this;
 
@@ -139,8 +140,8 @@
 		});
 
 		this.update_groups();
-	},
-	update_balances: function(account, posting_date, v) {
+	}
+	update_balances(account, posting_date, v) {
 		// opening
 		if (posting_date < this.opening_date || v.is_opening === "Yes") {
 			if (account.report_type === "Profit and Loss" &&
@@ -161,8 +162,8 @@
 		var closing_bal = flt(account.opening_dr) - flt(account.opening_cr) +
 			flt(account.debit) - flt(account.credit);
 		this.set_debit_or_credit(account, "closing", closing_bal);
-	},
-	set_debit_or_credit: function(account, field, balance) {
+	}
+	set_debit_or_credit(account, field, balance) {
 		if(balance > 0) {
 			account[field+"_dr"] = balance;
 			account[field+"_cr"] = 0;
@@ -170,8 +171,8 @@
 			account[field+"_cr"] = Math.abs(balance);
 			account[field+"_dr"] = 0;
 		}
-	},
-	update_groups: function() {
+	}
+	update_groups() {
 		// update groups
 		var me= this;
 		$.each(this.data, function(i, account) {
@@ -202,9 +203,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	set_fiscal_year: function() {
+	set_fiscal_year() {
 		if (this.opening_date > this.closing_date) {
 			frappe.msgprint(__("Opening Date should be before Closing Date"));
 			return;
@@ -223,9 +224,9 @@
 			frappe.msgprint(__("Opening Date and Closing Date should be within same Fiscal Year"));
 			return;
 		}
-	},
+	}
 
-	show_general_ledger: function(account) {
+	show_general_ledger(account) {
 		frappe.route_options = {
 			account: account,
 			company: this.company,
@@ -234,4 +235,4 @@
 		};
 		frappe.set_route("query-report", "General Ledger");
 	}
-});
+};
diff --git a/erpnext/public/js/bank-reconciliation-tool.bundle.js b/erpnext/public/js/bank-reconciliation-tool.bundle.js
new file mode 100644
index 0000000..636ef18
--- /dev/null
+++ b/erpnext/public/js/bank-reconciliation-tool.bundle.js
@@ -0,0 +1,3 @@
+import "./bank_reconciliation_tool/data_table_manager";
+import "./bank_reconciliation_tool/number_card";
+import "./bank_reconciliation_tool/dialog_manager";
diff --git a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
index 142fe79..239fbb9 100644
--- a/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
+++ b/erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
@@ -16,7 +16,7 @@
 				doctype: "Bank Transaction",
 				filters: { name: this.bank_transaction_name },
 				fieldname: [
-					"date",
+					"date as reference_date",
 					"deposit",
 					"withdrawal",
 					"currency",
diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js
index 5c9f5d7..86dadd3 100644
--- a/erpnext/public/js/controllers/buying.js
+++ b/erpnext/public/js/controllers/buying.js
@@ -9,14 +9,14 @@
 
 cur_frm.email_field = "contact_email";
 
-erpnext.buying.BuyingController = erpnext.TransactionController.extend({
-	setup: function() {
-		this._super();
-	},
+erpnext.buying.BuyingController = class BuyingController extends erpnext.TransactionController {
+	setup() {
+		super.setup();
+	}
 
-	onload: function(doc, cdt, cdn) {
+	onload(doc, cdt, cdn) {
 		this.setup_queries(doc, cdt, cdn);
-		this._super();
+		super.onload();
 
 		this.frm.set_query('shipping_rule', function() {
 			return {
@@ -48,9 +48,9 @@
 			});
 		}
 		/* eslint-enable */
-	},
+	}
 
-	setup_queries: function(doc, cdt, cdn) {
+	setup_queries(doc, cdt, cdn) {
 		var me = this;
 
 		if(this.frm.fields_dict.buying_price_list) {
@@ -109,9 +109,9 @@
 				return me.set_query_for_item_tax_template(doc, cdt, cdn)
 			});
 		}
-	},
+	}
 
-	refresh: function(doc) {
+	refresh(doc) {
 		frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'supplier', doctype: 'Supplier'};
 
 		this.frm.toggle_display("supplier_name",
@@ -123,10 +123,10 @@
 		}
 
 		this.toggle_subcontracting_fields();
-		this._super();
-	},
+		super.refresh();
+	}
 
-	toggle_subcontracting_fields: function() {
+	toggle_subcontracting_fields() {
 		if (in_list(['Purchase Receipt', 'Purchase Invoice'], this.frm.doc.doctype)) {
 			this.frm.fields_dict.supplied_items.grid.update_docfield_property('consumed_qty',
 				'read_only', this.frm.doc.__onload && this.frm.doc.__onload.backflush_based_on === 'BOM');
@@ -134,37 +134,37 @@
 			this.frm.set_df_property('supplied_items', 'cannot_add_rows', 1);
 			this.frm.set_df_property('supplied_items', 'cannot_delete_rows', 1);
 		}
-	},
+	}
 
-	supplier: function() {
+	supplier() {
 		var me = this;
 		erpnext.utils.get_party_details(this.frm, null, null, function(){
 			me.apply_price_list();
 		});
-	},
+	}
 
-	supplier_address: function() {
+	supplier_address() {
 		erpnext.utils.get_address_display(this.frm);
 		erpnext.utils.set_taxes_from_address(this.frm, "supplier_address", "supplier_address", "supplier_address");
-	},
+	}
 
-	buying_price_list: function() {
+	buying_price_list() {
 		this.apply_price_list();
-	},
+	}
 
-	discount_percentage: function(doc, cdt, cdn) {
+	discount_percentage(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		item.discount_amount = 0.0;
 		this.price_list_rate(doc, cdt, cdn);
-	},
+	}
 
-	discount_amount: function(doc, cdt, cdn) {
+	discount_amount(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		item.discount_percentage = 0.0;
 		this.price_list_rate(doc, cdt, cdn);
-	},
+	}
 
-	qty: function(doc, cdt, cdn) {
+	qty(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		if ((doc.doctype == "Purchase Receipt") || (doc.doctype == "Purchase Invoice" && (doc.update_stock || doc.is_return))) {
 			frappe.model.round_floats_in(item, ["qty", "received_qty"]);
@@ -179,22 +179,22 @@
 			item.rejected_qty = flt(item.received_qty - item.qty, precision("rejected_qty", item));
 			item.received_stock_qty = flt(item.conversion_factor, precision("conversion_factor", item)) * flt(item.received_qty);
 		}
-		this._super(doc, cdt, cdn);
-	},
+		super.qty(doc, cdt, cdn);
+	}
 
-	batch_no: function(doc, cdt, cdn) {
-		this._super(doc, cdt, cdn);
-	},
+	batch_no(doc, cdt, cdn) {
+		super.batch_no(doc, cdt, cdn);
+	}
 
-	received_qty: function(doc, cdt, cdn) {
+	received_qty(doc, cdt, cdn) {
 		this.calculate_accepted_qty(doc, cdt, cdn)
-	},
+	}
 
-	rejected_qty: function(doc, cdt, cdn) {
+	rejected_qty(doc, cdt, cdn) {
 		this.calculate_accepted_qty(doc, cdt, cdn)
-	},
+	}
 
-	calculate_accepted_qty: function(doc, cdt, cdn){
+	calculate_accepted_qty(doc, cdt, cdn){
 		var item = frappe.get_doc(cdt, cdn);
 		frappe.model.round_floats_in(item, ["received_qty", "rejected_qty"]);
 
@@ -202,9 +202,9 @@
 
 		item.qty = flt(item.received_qty - item.rejected_qty, precision("qty", item));
 		this.qty(doc, cdt, cdn);
-	},
+	}
 
-	validate_negative_quantity: function(cdt, cdn, item, fieldnames){
+	validate_negative_quantity(cdt, cdn, item, fieldnames){
 		if(!item || !fieldnames) { return }
 
 		var is_negative_qty = false;
@@ -217,9 +217,9 @@
 		}
 
 		return is_negative_qty
-	},
+	}
 
-	warehouse: function(doc, cdt, cdn) {
+	warehouse(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		if(item.item_code && item.warehouse) {
 			return this.frm.call({
@@ -232,9 +232,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	project: function(doc, cdt, cdn) {
+	project(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		if(item.project) {
 			$.each(this.frm.doc["items"] || [],
@@ -245,48 +245,48 @@
 					}
 				});
 		}
-	},
+	}
 
-	rejected_warehouse: function(doc, cdt) {
+	rejected_warehouse(doc, cdt) {
 		// trigger autofill_warehouse only if parent rejected_warehouse field is triggered
 		if (["Purchase Invoice", "Purchase Receipt"].includes(cdt)) {
 			this.autofill_warehouse(doc.items, "rejected_warehouse", doc.rejected_warehouse);
 		}
-	},
+	}
 
-	category: function(doc, cdt, cdn) {
+	category(doc, cdt, cdn) {
 		// should be the category field of tax table
 		if(cdt != doc.doctype) {
 			this.calculate_taxes_and_totals();
 		}
-	},
-	add_deduct_tax: function(doc, cdt, cdn) {
+	}
+	add_deduct_tax(doc, cdt, cdn) {
 		this.calculate_taxes_and_totals();
-	},
+	}
 
-	set_from_product_bundle: function() {
+	set_from_product_bundle() {
 		var me = this;
 		this.frm.add_custom_button(__("Product Bundle"), function() {
 			erpnext.buying.get_items_from_product_bundle(me.frm);
 		}, __("Get Items From"));
-	},
+	}
 
-	shipping_address: function(){
+	shipping_address(){
 		var me = this;
 		erpnext.utils.get_address_display(this.frm, "shipping_address",
 			"shipping_address_display", true);
-	},
+	}
 
-	billing_address: function() {
+	billing_address() {
 		erpnext.utils.get_address_display(this.frm, "billing_address",
 			"billing_address_display", true);
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	update_auto_repeat_reference: function(doc) {
+	update_auto_repeat_reference(doc) {
 		if (doc.auto_repeat) {
 			frappe.call({
 				method:"frappe.automation.doctype.auto_repeat.auto_repeat.update_reference",
@@ -303,9 +303,9 @@
 				}
 			})
 		}
-	},
+	}
 
-	manufacturer: function(doc, cdt, cdn) {
+	manufacturer(doc, cdt, cdn) {
 		const row = locals[cdt][cdn];
 
 		if(row.manufacturer) {
@@ -322,9 +322,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	manufacturer_part_no: function(doc, cdt, cdn) {
+	manufacturer_part_no(doc, cdt, cdn) {
 		const row = locals[cdt][cdn];
 
 		if (row.manufacturer_part_no) {
@@ -347,7 +347,7 @@
 
 			}
 		}
-});
+};
 
 cur_frm.add_fetch('project', 'cost_center', 'cost_center');
 
@@ -508,4 +508,4 @@
 	});
 
 	dialog.show();
-}
\ No newline at end of file
+}
diff --git a/erpnext/public/js/controllers/stock_controller.js b/erpnext/public/js/controllers/stock_controller.js
index 87b21b7..d346357 100644
--- a/erpnext/public/js/controllers/stock_controller.js
+++ b/erpnext/public/js/controllers/stock_controller.js
@@ -3,22 +3,22 @@
 
 frappe.provide("erpnext.stock");
 
-erpnext.stock.StockController = frappe.ui.form.Controller.extend({
-	onload: function() {
+erpnext.stock.StockController = class StockController extends frappe.ui.form.Controller {
+	onload() {
 		// warehouse query if company
 		if (this.frm.fields_dict.company) {
 			this.setup_warehouse_query();
 		}
-	},
+	}
 
-	setup_warehouse_query: function() {
+	setup_warehouse_query() {
 		var me = this;
 		erpnext.queries.setup_queries(this.frm, "Warehouse", function() {
 			return erpnext.queries.warehouse(me.frm.doc);
 		});
-	},
+	}
 
-	setup_posting_date_time_check: function() {
+	setup_posting_date_time_check() {
 		// make posting date default and read only unless explictly checked
 		frappe.ui.form.on(this.frm.doctype, 'set_posting_date_and_time_read_only', function(frm) {
 			if(frm.doc.docstatus == 0 && frm.doc.set_posting_time) {
@@ -46,9 +46,9 @@
 				frm.trigger('set_posting_date_and_time_read_only');
 			}
 		});
-	},
+	}
 
-	show_stock_ledger: function() {
+	show_stock_ledger() {
 		var me = this;
 		if(this.frm.doc.docstatus > 0) {
 			cur_frm.add_custom_button(__("Stock Ledger"), function() {
@@ -63,9 +63,9 @@
 			}, __("View"));
 		}
 
-	},
+	}
 
-	show_general_ledger: function() {
+	show_general_ledger() {
 		var me = this;
 		if(this.frm.doc.docstatus > 0) {
 			cur_frm.add_custom_button(__('Accounting Ledger'), function() {
@@ -81,4 +81,4 @@
 			}, __("View"));
 		}
 	}
-});
+};
diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js
index 90cb555..e8f3122 100644
--- a/erpnext/public/js/controllers/taxes_and_totals.js
+++ b/erpnext/public/js/controllers/taxes_and_totals.js
@@ -1,12 +1,12 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-erpnext.taxes_and_totals = erpnext.payments.extend({
-	setup: function() {
+erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments {
+	setup() {
 		this.fetch_round_off_accounts();
-	},
+	}
 
-	apply_pricing_rule_on_item: function(item) {
+	apply_pricing_rule_on_item(item) {
 		let effective_item_rate = item.price_list_rate;
 		let item_rate = item.rate;
 		if (in_list(["Sales Order", "Quotation"], item.parenttype) && item.blanket_order_rate) {
@@ -32,9 +32,9 @@
 		}
 
 		frappe.model.set_value(item.doctype, item.name, "rate", item_rate);
-	},
+	}
 
-	calculate_taxes_and_totals: function(update_paid_amount) {
+	calculate_taxes_and_totals(update_paid_amount) {
 		this.discount_amount_applied = false;
 		this._calculate_taxes_and_totals();
 		this.calculate_discount_amount();
@@ -66,16 +66,16 @@
 		}
 
 		this.frm.refresh_fields();
-	},
+	}
 
-	calculate_discount_amount: function() {
+	calculate_discount_amount() {
 		if (frappe.meta.get_docfield(this.frm.doc.doctype, "discount_amount")) {
 			this.set_discount_amount();
 			this.apply_discount_amount();
 		}
-	},
+	}
 
-	_calculate_taxes_and_totals: function() {
+	_calculate_taxes_and_totals() {
 		this.validate_conversion_rate();
 		this.calculate_item_values();
 		this.initialize_taxes();
@@ -85,9 +85,9 @@
 		this.manipulate_grand_total_for_inclusive_tax();
 		this.calculate_totals();
 		this._cleanup();
-	},
+	}
 
-	validate_conversion_rate: function() {
+	validate_conversion_rate() {
 		this.frm.doc.conversion_rate = flt(this.frm.doc.conversion_rate, (cur_frm) ? precision("conversion_rate") : 9);
 		var conversion_rate_label = frappe.meta.get_label(this.frm.doc.doctype, "conversion_rate",
 			this.frm.doc.name);
@@ -102,10 +102,10 @@
 				frappe.throw(err_message);
 			}
 		}
-	},
+	}
 
-	calculate_item_values: function() {
-		let me = this;
+	calculate_item_values() {
+		var me = this;
 		if (!this.discount_amount_applied) {
 			$.each(this.frm.doc["items"] || [], function(i, item) {
 				frappe.model.round_floats_in(item);
@@ -124,16 +124,16 @@
 				me.set_in_company_currency(item, ["price_list_rate", "rate", "amount", "net_rate", "net_amount"]);
 			});
 		}
-	},
+	}
 
-	set_in_company_currency: function(doc, fields) {
+	set_in_company_currency(doc, fields) {
 		var me = this;
 		$.each(fields, function(i, f) {
 			doc["base_"+f] = flt(flt(doc[f], precision(f, doc)) * me.frm.doc.conversion_rate, precision("base_" + f, doc));
 		});
-	},
+	}
 
-	initialize_taxes: function() {
+	initialize_taxes() {
 		var me = this;
 
 		$.each(this.frm.doc["taxes"] || [], function(i, tax) {
@@ -155,9 +155,9 @@
 			}
 			frappe.model.round_floats_in(tax);
 		});
-	},
+	}
 
-	fetch_round_off_accounts: function() {
+	fetch_round_off_accounts() {
 		let me = this;
 		frappe.flags.round_off_applicable_accounts = [];
 
@@ -168,14 +168,16 @@
 					"company": me.frm.doc.company,
 					"account_list": frappe.flags.round_off_applicable_accounts
 				},
-				callback: function(r) {
-					frappe.flags.round_off_applicable_accounts.push(...r.message);
+				callback(r) {
+					if (r.message) {
+						frappe.flags.round_off_applicable_accounts.push(...r.message);
+					}
 				}
 			});
 		}
-	},
+	}
 
-	determine_exclusive_rate: function() {
+	determine_exclusive_rate() {
 		var me = this;
 
 		var has_inclusive_tax = false;
@@ -213,9 +215,9 @@
 				me.set_in_company_currency(item, ["net_rate", "net_amount"]);
 			}
 		});
-	},
+	}
 
-	get_current_tax_fraction: function(tax, item_tax_map) {
+	get_current_tax_fraction(tax, item_tax_map) {
 		// Get tax fraction for calculating tax exclusive amount
 		// from tax inclusive amount
 		var current_tax_fraction = 0.0;
@@ -244,14 +246,14 @@
 			inclusive_tax_amount_per_qty *= -1;
 		}
 		return [current_tax_fraction, inclusive_tax_amount_per_qty];
-	},
+	}
 
-	_get_tax_rate: function(tax, item_tax_map) {
+	_get_tax_rate(tax, item_tax_map) {
 		return (Object.keys(item_tax_map).indexOf(tax.account_head) != -1) ?
 			flt(item_tax_map[tax.account_head], precision("rate", tax)) : tax.rate;
-	},
+	}
 
-	calculate_net_total: function() {
+	calculate_net_total() {
 		var me = this;
 		this.frm.doc.total_qty = this.frm.doc.total = this.frm.doc.base_total = this.frm.doc.net_total = this.frm.doc.base_net_total = 0.0;
 
@@ -264,9 +266,9 @@
 			});
 
 		frappe.model.round_floats_in(this.frm.doc, ["total", "base_total", "net_total", "base_net_total"]);
-	},
+	}
 
-	add_taxes_from_item_tax_template: function(item_tax_map) {
+	add_taxes_from_item_tax_template(item_tax_map) {
 		let me = this;
 
 		if (item_tax_map && cint(frappe.defaults.get_default("add_taxes_from_item_tax_template"))) {
@@ -284,9 +286,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	calculate_taxes: function() {
+	calculate_taxes() {
 		var me = this;
 		this.frm.doc.rounding_adjustment = 0;
 		var actual_tax_dict = {};
@@ -365,9 +367,9 @@
 				}
 			});
 		});
-	},
+	}
 
-	set_cumulative_total: function(row_idx, tax) {
+	set_cumulative_total(row_idx, tax) {
 		var tax_amount = tax.tax_amount_after_discount_amount;
 		if (tax.category == 'Valuation') {
 			tax_amount = 0;
@@ -380,13 +382,13 @@
 		} else {
 			tax.total = flt(this.frm.doc["taxes"][row_idx-1].total + tax_amount, precision("total", tax));
 		}
-	},
+	}
 
-	_load_item_tax_rate: function(item_tax_rate) {
+	_load_item_tax_rate(item_tax_rate) {
 		return item_tax_rate ? JSON.parse(item_tax_rate) : {};
-	},
+	}
 
-	get_current_tax_amount: function(item, tax, item_tax_map) {
+	get_current_tax_amount(item, tax, item_tax_map) {
 		var tax_rate = this._get_tax_rate(tax, item_tax_map);
 		var current_tax_amount = 0.0;
 
@@ -422,9 +424,9 @@
 		this.set_item_wise_tax(item, tax, tax_rate, current_tax_amount);
 
 		return current_tax_amount;
-	},
+	}
 
-	set_item_wise_tax: function(item, tax, tax_rate, current_tax_amount) {
+	set_item_wise_tax(item, tax, tax_rate, current_tax_amount) {
 		// store tax breakup for each item
 		let tax_detail = tax.item_wise_tax_detail;
 		let key = item.item_code || item.item_name;
@@ -439,9 +441,9 @@
 			item_wise_tax_amount += tax_detail[key][1];
 
 		tax_detail[key] = [tax_rate, flt(item_wise_tax_amount, precision("base_tax_amount", tax))];
-	},
+	}
 
-	round_off_totals: function(tax) {
+	round_off_totals(tax) {
 		if (frappe.flags.round_off_applicable_accounts.includes(tax.account_head)) {
 			tax.tax_amount= Math.round(tax.tax_amount);
 			tax.tax_amount_after_discount_amount = Math.round(tax.tax_amount_after_discount_amount);
@@ -449,16 +451,16 @@
 
 		tax.tax_amount = flt(tax.tax_amount, precision("tax_amount", tax));
 		tax.tax_amount_after_discount_amount = flt(tax.tax_amount_after_discount_amount, precision("tax_amount", tax));
-	},
+	}
 
-	round_off_base_values: function(tax) {
+	round_off_base_values(tax) {
 		if (frappe.flags.round_off_applicable_accounts.includes(tax.account_head)) {
 			tax.base_tax_amount= Math.round(tax.base_tax_amount);
 			tax.base_tax_amount_after_discount_amount = Math.round(tax.base_tax_amount_after_discount_amount);
 		}
-	},
+	}
 
-	manipulate_grand_total_for_inclusive_tax: function() {
+	manipulate_grand_total_for_inclusive_tax() {
 		var me = this;
 		// if fully inclusive taxes and diff
 		if (this.frm.doc["taxes"] && this.frm.doc["taxes"].length) {
@@ -489,10 +491,10 @@
 				}
 			}
 		}
-	},
+	}
 
-	calculate_totals: function() {
-		// Changing sequence can because of rounding adjustment issue and on-screen discrepancy
+	calculate_totals() {
+		// Changing sequence can cause rounding_adjustmentng issue and on-screen discrepency
 		var me = this;
 		var tax_count = this.frm.doc["taxes"] ? this.frm.doc["taxes"].length : 0;
 		this.frm.doc.grand_total = flt(tax_count
@@ -537,9 +539,9 @@
 
 		// rounded totals
 		this.set_rounded_total();
-	},
+	}
 
-	set_rounded_total: function() {
+	set_rounded_total() {
 		var disable_rounded_total = 0;
 		if(frappe.meta.get_docfield(this.frm.doc.doctype, "disable_rounded_total", this.frm.doc.name)) {
 			disable_rounded_total = this.frm.doc.disable_rounded_total;
@@ -561,9 +563,9 @@
 
 			this.set_in_company_currency(this.frm.doc, ["rounding_adjustment", "rounded_total"]);
 		}
-	},
+	}
 
-	_cleanup: function() {
+	_cleanup() {
 		this.frm.doc.base_in_words = this.frm.doc.in_words = "";
 
 		if(this.frm.doc["items"] && this.frm.doc["items"].length) {
@@ -590,16 +592,16 @@
 				tax.item_wise_tax_detail = JSON.stringify(tax.item_wise_tax_detail);
 			});
 		}
-	},
+	}
 
-	set_discount_amount: function() {
+	set_discount_amount() {
 		if(this.frm.doc.additional_discount_percentage) {
 			this.frm.doc.discount_amount = flt(flt(this.frm.doc[frappe.scrub(this.frm.doc.apply_discount_on)])
 				* this.frm.doc.additional_discount_percentage / 100, precision("discount_amount"));
 		}
-	},
+	}
 
-	apply_discount_amount: function() {
+	apply_discount_amount() {
 		var me = this;
 		var distributed_amount = 0.0;
 		this.frm.doc.base_discount_amount = 0.0;
@@ -637,9 +639,9 @@
 				this._calculate_taxes_and_totals();
 			}
 		}
-	},
+	}
 
-	get_total_for_discount_amount: function() {
+	get_total_for_discount_amount() {
 		if(this.frm.doc.apply_discount_on == "Net Total") {
 			return this.frm.doc.net_total;
 		} else {
@@ -663,27 +665,27 @@
 
 			return flt(this.frm.doc.grand_total - total_actual_tax, precision("grand_total"));
 		}
-	},
+	}
 
-	calculate_total_advance: function(update_paid_amount) {
+	calculate_total_advance(update_paid_amount) {
 		var total_allocated_amount = frappe.utils.sum($.map(this.frm.doc["advances"] || [], function(adv) {
 			return flt(adv.allocated_amount, precision("allocated_amount", adv));
 		}));
 		this.frm.doc.total_advance = flt(total_allocated_amount, precision("total_advance"));
 
 		this.calculate_outstanding_amount(update_paid_amount);
-	},
+	}
 
-	is_internal_invoice: function() {
+	is_internal_invoice() {
 		if (['Sales Invoice', 'Purchase Invoice'].includes(this.frm.doc.doctype)) {
 			if (this.frm.doc.company === this.frm.doc.represents_company) {
 				return true;
 			}
 		}
 		return false;
-	},
+	}
 
-	calculate_outstanding_amount: function(update_paid_amount) {
+	calculate_outstanding_amount(update_paid_amount) {
 		// NOTE:
 		// paid_amount and write_off_amount is only for POS/Loyalty Point Redemption Invoice
 		// total_advance is only for non POS Invoice
@@ -731,9 +733,9 @@
 			this.frm.doc.outstanding_amount =  flt(total_amount_to_pay - flt(paid_amount) +
 				flt(this.frm.doc.change_amount * this.frm.doc.conversion_rate), precision("outstanding_amount"));
 		}
-	},
+	}
 
-	set_total_amount_to_default_mop: function() {
+	set_total_amount_to_default_mop() {
 		var grand_total = this.frm.doc.rounded_total || this.frm.doc.grand_total;
 
 		if(this.frm.doc.party_account_currency == this.frm.doc.currency) {
@@ -752,9 +754,11 @@
 			}
 		});
 		this.frm.refresh_fields();
-	},
 
-	set_default_payment: function(total_amount_to_pay, update_paid_amount) {
+		this.calculate_paid_amount();
+	}
+
+	set_default_payment(total_amount_to_pay, update_paid_amount) {
 		var me = this;
 		var payment_status = true;
 		if(this.frm.doc.is_pos && (update_paid_amount===undefined || update_paid_amount)) {
@@ -770,9 +774,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	calculate_paid_amount: function() {
+	calculate_paid_amount() {
 		var me = this;
 		var paid_amount = 0.0;
 		var base_paid_amount = 0.0;
@@ -792,9 +796,9 @@
 
 		this.frm.set_value('paid_amount', flt(paid_amount, precision("paid_amount")));
 		this.frm.set_value('base_paid_amount', flt(base_paid_amount, precision("base_paid_amount")));
-	},
+	}
 
-	calculate_change_amount: function(){
+	calculate_change_amount(){
 		this.frm.doc.change_amount = 0.0;
 		this.frm.doc.base_change_amount = 0.0;
 		if(in_list(["Sales Invoice", "POS Invoice"], this.frm.doc.doctype)
@@ -813,9 +817,9 @@
 					precision("base_change_amount"));
 			}
 		}
-	},
+	}
 
-	calculate_write_off_amount: function(){
+	calculate_write_off_amount(){
 		if(this.frm.doc.paid_amount > this.frm.doc.grand_total){
 			this.frm.doc.write_off_amount = flt(this.frm.doc.grand_total - this.frm.doc.paid_amount
 				+ this.frm.doc.change_amount, precision("write_off_amount"));
@@ -827,4 +831,4 @@
 		}
 		this.calculate_outstanding_amount(false);
 	}
-});
+};
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index b9fa9b7..3c6c347 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -3,9 +3,9 @@
 
 frappe.provide('erpnext.accounts.dimensions');
 
-erpnext.TransactionController = erpnext.taxes_and_totals.extend({
-	setup: function() {
-		this._super();
+erpnext.TransactionController = class TransactionController extends erpnext.taxes_and_totals {
+	setup() {
+		super.setup();
 		let me = this;
 		frappe.flags.hide_serial_batch_dialog = true;
 		frappe.ui.form.on(this.frm.doctype + " Item", "rate", function(frm, cdt, cdn) {
@@ -220,8 +220,8 @@
 			});
 		}
 
-	},
-	onload: function() {
+	}
+	onload() {
 		var me = this;
 
 		if(this.frm.doc.__islocal) {
@@ -247,15 +247,15 @@
 				}
 			]);
 		}
-	},
+	}
 
-	is_return: function() {
+	is_return() {
 		if(!this.frm.doc.is_return && this.frm.doc.return_against) {
 			this.frm.set_value('return_against', '');
 		}
-	},
+	}
 
-	setup_quality_inspection: function() {
+	setup_quality_inspection() {
 		if(!in_list(["Delivery Note", "Sales Invoice", "Purchase Receipt", "Purchase Invoice"], this.frm.doc.doctype)) {
 			return;
 		}
@@ -296,9 +296,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	make_payment_request: function() {
+	make_payment_request() {
 		var me = this;
 		const payment_request_type = (in_list(['Sales Order', 'Sales Invoice'], this.frm.doc.doctype))
 			? "Inward" : "Outward";
@@ -320,9 +320,9 @@
 				}
 			}
 		})
-	},
+	}
 
-	onload_post_render: function() {
+	onload_post_render() {
 		if(this.frm.doc.__islocal && !(this.frm.doc.taxes || []).length
 			&& !(this.frm.doc.__onload ? this.frm.doc.__onload.load_after_mapping : false)) {
 			frappe.after_ajax(() => this.apply_default_taxes());
@@ -334,9 +334,9 @@
 			this.setup_item_selector();
 			this.frm.get_field("items").grid.set_multiple_add("item_code", "qty");
 		}
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		erpnext.toggle_naming_series();
 		erpnext.hide_company();
 		this.set_dynamic_labels();
@@ -366,9 +366,9 @@
 					.appendTo($input_group);
 			}
 		}
-	},
+	}
 
-	scan_barcode: function() {
+	scan_barcode() {
 		let scan_barcode_field = this.frm.fields_dict["scan_barcode"];
 
 		let show_description = function(idx, exist = null) {
@@ -440,9 +440,9 @@
 			});
 		}
 		return false;
-	},
+	}
 
-	apply_default_taxes: function() {
+	apply_default_taxes() {
 		var me = this;
 		var taxes_and_charges_field = frappe.meta.get_docfield(me.frm.doc.doctype, "taxes_and_charges",
 			me.frm.doc.name);
@@ -481,22 +481,22 @@
 				}
 			});
 		}
-	},
+	}
 
-	setup_sms: function() {
+	setup_sms() {
 		var me = this;
 		let blacklist = ['Purchase Invoice', 'BOM'];
 		if(this.frm.doc.docstatus===1 && !in_list(["Lost", "Stopped", "Closed"], this.frm.doc.status)
 			&& !blacklist.includes(this.frm.doctype)) {
 			this.frm.page.add_menu_item(__('Send SMS'), function() { me.send_sms(); });
 		}
-	},
+	}
 
-	send_sms: function() {
+	send_sms() {
 		var sms_man = new erpnext.SMSManager(this.frm.doc);
-	},
+	}
 
-	barcode: function(doc, cdt, cdn) {
+	barcode(doc, cdt, cdn) {
 		var d = locals[cdt][cdn];
 		if(d.barcode=="" || d.barcode==null) {
 			// barcode cleared, remove item
@@ -505,9 +505,9 @@
 
 		this.frm.from_barcode = this.frm.from_barcode ? this.frm.from_barcode + 1 : 1;
 		this.item_code(doc, cdt, cdn);
-	},
+	}
 
-	item_code: function(doc, cdt, cdn) {
+	item_code(doc, cdt, cdn) {
 		var me = this;
 		var item = frappe.get_doc(cdt, cdn);
 		var update_stock = 0, show_batch_dialog = 0;
@@ -658,9 +658,9 @@
 				});
 			}
 		}
-	},
+	}
 
-	price_list_rate: function(doc, cdt, cdn) {
+	price_list_rate(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		frappe.model.round_floats_in(item, ["price_list_rate", "discount_percentage"]);
 
@@ -672,17 +672,17 @@
 				precision("rate", item));
 
 		this.calculate_taxes_and_totals();
-	},
+	}
 
-	margin_rate_or_amount: function(doc, cdt, cdn) {
+	margin_rate_or_amount(doc, cdt, cdn) {
 		// calculated the revised total margin and rate on margin rate changes
 		let item = frappe.get_doc(cdt, cdn);
 		this.apply_pricing_rule_on_item(item);
 		this.calculate_taxes_and_totals();
 		cur_frm.refresh_fields();
-	},
+	}
 
-	margin_type: function(doc, cdt, cdn) {
+	margin_type(doc, cdt, cdn) {
 		// calculate the revised total margin and rate on margin type changes
 		let item = frappe.get_doc(cdt, cdn);
 		if (!item.margin_type) {
@@ -692,9 +692,9 @@
 			this.calculate_taxes_and_totals();
 			cur_frm.refresh_fields();
 		}
-	},
+	}
 
-	get_incoming_rate: function(item, posting_date, posting_time, voucher_type, company) {
+	get_incoming_rate(item, posting_date, posting_time, voucher_type, company) {
 
 		let item_args = {
 			'item_code': item.item_code,
@@ -717,9 +717,29 @@
 				frappe.model.set_value(item.doctype, item.name, 'rate', r.message * item.conversion_factor);
 			}
 		});
-	},
+	}
 
-	serial_no: function(doc, cdt, cdn) {
+	add_taxes_from_item_tax_template(item_tax_map) {
+		let me = this;
+
+		if(item_tax_map && cint(frappe.defaults.get_default("add_taxes_from_item_tax_template"))) {
+			if(typeof (item_tax_map) == "string") {
+				item_tax_map = JSON.parse(item_tax_map);
+			}
+
+			$.each(item_tax_map, function(tax, rate) {
+				let found = (me.frm.doc.taxes || []).find(d => d.account_head === tax);
+				if(!found) {
+					let child = frappe.model.add_child(me.frm.doc, "taxes");
+					child.charge_type = "On Net Total";
+					child.account_head = tax;
+					child.rate = 0;
+				}
+			});
+		}
+	}
+
+	serial_no(doc, cdt, cdn) {
 		var me = this;
 		var item = frappe.get_doc(cdt, cdn);
 
@@ -743,9 +763,9 @@
 				}
 			}
 		}
-	},
+	}
 
-	update_qty: function(cdt, cdn) {
+	update_qty(cdt, cdn) {
 		var valid_serial_nos = [];
 		var serialnos = [];
 		var item = frappe.get_doc(cdt, cdn);
@@ -758,17 +778,17 @@
 		frappe.model.set_value(item.doctype, item.name,
 			"qty", valid_serial_nos.length / item.conversion_factor);
 		frappe.model.set_value(item.doctype, item.name, "stock_qty", valid_serial_nos.length);
-	},
+	}
 
-	validate: function() {
+	validate() {
 		this.calculate_taxes_and_totals(false);
-	},
+	}
 
-	update_stock: function() {
+	update_stock() {
 		this.frm.trigger('set_default_internal_warehouse');
-	},
+	}
 
-	set_default_internal_warehouse: function() {
+	set_default_internal_warehouse() {
 		let me = this;
 		if ((this.frm.doc.doctype === 'Sales Invoice' && me.frm.doc.update_stock)
 			|| this.frm.doc.doctype == 'Delivery Note') {
@@ -787,9 +807,9 @@
 				});
 			}
 		}
-	},
+	}
 
-	company: function() {
+	company() {
 		var me = this;
 		var set_pricing = function() {
 			if(me.frm.doc.company && me.frm.fields_dict.currency) {
@@ -893,16 +913,16 @@
 		if(this.frm.doc.company) {
 			erpnext.last_selected_company = this.frm.doc.company;
 		}
-	},
+	}
 
-	transaction_date: function() {
+	transaction_date() {
 		if (this.frm.doc.transaction_date) {
 			this.frm.transaction_date = this.frm.doc.transaction_date;
 			frappe.ui.form.trigger(this.frm.doc.doctype, "currency");
 		}
-	},
+	}
 
-	posting_date: function() {
+	posting_date() {
 		var me = this;
 		if (this.frm.doc.posting_date) {
 			this.frm.posting_date = this.frm.doc.posting_date;
@@ -931,9 +951,9 @@
 				frappe.ui.form.trigger(me.frm.doc.doctype, "currency");
 			}
 		}
-	},
+	}
 
-	due_date: function() {
+	due_date() {
 		// due_date is to be changed, payment terms template and/or payment schedule must
 		// be removed as due_date is automatically changed based on payment terms
 		if (this.frm.doc.due_date && !this.frm.updating_party_details && !this.frm.doc.is_pos) {
@@ -956,13 +976,13 @@
 				frappe.msgprint(final_message);
 			}
 		}
-	},
+	}
 
-	bill_date: function() {
+	bill_date() {
 		this.posting_date();
-	},
+	}
 
-	recalculate_terms: function() {
+	recalculate_terms() {
 		const doc = this.frm.doc;
 		if (doc.payment_terms_template) {
 			this.payment_terms_template();
@@ -981,17 +1001,17 @@
 				}
 			);
 		}
-	},
+	}
 
-	get_company_currency: function() {
+	get_company_currency() {
 		return erpnext.get_currency(this.frm.doc.company);
-	},
+	}
 
-	contact_person: function() {
+	contact_person() {
 		erpnext.utils.get_contact_details(this.frm);
-	},
+	}
 
-	currency: function() {
+	currency() {
 		/* manqala 19/09/2016: let the translation date be whichever of the transaction_date or posting_date is available */
 		var transaction_date = this.frm.doc.transaction_date || this.frm.doc.posting_date;
 		/* end manqala */
@@ -1013,9 +1033,9 @@
 		} else {
 			this.conversion_rate();
 		}
-	},
+	}
 
-	conversion_rate: function() {
+	conversion_rate() {
 		const me = this.frm;
 		if(this.frm.doc.currency === this.get_company_currency()) {
 			this.frm.set_value("conversion_rate", 1.0);
@@ -1035,9 +1055,9 @@
 		}
 		// Make read only if Accounts Settings doesn't allow stale rates
 		this.frm.set_df_property("conversion_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1);
-	},
+	}
 
-	shipping_rule: function() {
+	shipping_rule() {
 		var me = this;
 		if(this.frm.doc.shipping_rule) {
 			return this.frm.call({
@@ -1053,9 +1073,9 @@
 		else {
 			me.calculate_taxes_and_totals();
 		}
-	},
+	}
 
-	set_margin_amount_based_on_currency: function(exchange_rate) {
+	set_margin_amount_based_on_currency(exchange_rate) {
 		if (in_list(["Quotation", "Sales Order", "Delivery Note", "Sales Invoice", "Purchase Invoice", "Purchase Order", "Purchase Receipt"]), this.frm.doc.doctype) {
 			var me = this;
 			$.each(this.frm.doc.items || [], function(i, d) {
@@ -1065,9 +1085,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	set_actual_charges_based_on_currency: function(exchange_rate) {
+	set_actual_charges_based_on_currency(exchange_rate) {
 		var me = this;
 		$.each(this.frm.doc.taxes || [], function(i, d) {
 			if(d.charge_type == "Actual") {
@@ -1075,9 +1095,9 @@
 					flt(d.tax_amount) / flt(exchange_rate));
 			}
 		});
-	},
+	}
 
-	get_exchange_rate: function(transaction_date, from_currency, to_currency, callback) {
+	get_exchange_rate(transaction_date, from_currency, to_currency, callback) {
 		var args;
 		if (["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"].includes(this.frm.doctype)) {
 			args = "for_selling";
@@ -1101,9 +1121,9 @@
 				callback(flt(r.message));
 			}
 		});
-	},
+	}
 
-	price_list_currency: function() {
+	price_list_currency() {
 		var me=this;
 		this.set_dynamic_labels();
 
@@ -1117,9 +1137,9 @@
 		} else {
 			this.plc_conversion_rate();
 		}
-	},
+	}
 
-	plc_conversion_rate: function() {
+	plc_conversion_rate() {
 		if(this.frm.doc.price_list_currency === this.get_company_currency()) {
 			this.frm.set_value("plc_conversion_rate", 1.0);
 		} else if(this.frm.doc.price_list_currency === this.frm.doc.currency
@@ -1131,9 +1151,9 @@
 		if(!this.in_apply_price_list) {
 			this.apply_price_list(null, true);
 		}
-	},
+	}
 
-	uom: function(doc, cdt, cdn) {
+	uom(doc, cdt, cdn) {
 		var me = this;
 		var item = frappe.get_doc(cdt, cdn);
 		if(item.item_code && item.uom) {
@@ -1151,9 +1171,9 @@
 			});
 		}
 		me.calculate_stock_uom_rate(doc, cdt, cdn);
-	},
+	}
 
-	conversion_factor: function(doc, cdt, cdn, dont_fetch_price_list_rate) {
+	conversion_factor(doc, cdt, cdn, dont_fetch_price_list_rate) {
 		if(frappe.meta.get_docfield(cdt, "stock_qty", cdn)) {
 			var item = frappe.get_doc(cdt, cdn);
 			frappe.model.round_floats_in(item, ["qty", "conversion_factor"]);
@@ -1178,35 +1198,35 @@
 			}
 			this.calculate_stock_uom_rate(doc, cdt, cdn);
 		}
-	},
+	}
 
-	batch_no: function(doc, cdt, cdn) {
+	batch_no(doc, cdt, cdn) {
 		let item = frappe.get_doc(cdt, cdn);
 		this.apply_price_list(item, true);
-	},
+	}
 
-	toggle_conversion_factor: function(item) {
+	toggle_conversion_factor(item) {
 		// toggle read only property for conversion factor field if the uom and stock uom are same
 		if(this.frm.get_field('items').grid.fields_map.conversion_factor) {
 			this.frm.fields_dict.items.grid.toggle_enable("conversion_factor",
 				((item.uom != item.stock_uom) && !frappe.meta.get_docfield(cur_frm.fields_dict.items.grid.doctype, "conversion_factor").read_only)? true: false);
 		}
 
-	},
+	}
 
-	qty: function(doc, cdt, cdn) {
+	qty(doc, cdt, cdn) {
 		let item = frappe.get_doc(cdt, cdn);
 		this.conversion_factor(doc, cdt, cdn, true);
 		this.calculate_stock_uom_rate(doc, cdt, cdn);
 		this.apply_pricing_rule(item, true);
-	},
+	}
 
-	calculate_stock_uom_rate: function(doc, cdt, cdn) {
+	calculate_stock_uom_rate(doc, cdt, cdn) {
 		let item = frappe.get_doc(cdt, cdn);
 		item.stock_uom_rate = flt(item.rate)/flt(item.conversion_factor);
 		refresh_field("stock_uom_rate", item.name, item.parentfield);
-	},
-	service_stop_date: function(frm, cdt, cdn) {
+	}
+	service_stop_date(frm, cdt, cdn) {
 		var child = locals[cdt][cdn];
 
 		if(child.service_stop_date) {
@@ -1222,9 +1242,9 @@
 				frappe.throw(__("Service Stop Date cannot be after Service End Date"));
 			}
 		}
-	},
+	}
 
-	service_start_date: function(frm, cdt, cdn) {
+	service_start_date(frm, cdt, cdn) {
 		var child = locals[cdt][cdn];
 
 		if(child.service_start_date) {
@@ -1236,9 +1256,9 @@
 				}
 			})
 		}
-	},
+	}
 
-	calculate_net_weight: function(){
+	calculate_net_weight(){
 		/* Calculate Total Net Weight then further applied shipping rule to calculate shipping charges.*/
 		var me = this;
 		this.frm.doc.total_net_weight= 0.0;
@@ -1248,9 +1268,9 @@
 		});
 		refresh_field("total_net_weight");
 		this.shipping_rule();
-	},
+	}
 
-	set_dynamic_labels: function() {
+	set_dynamic_labels() {
 		// What TODO? should we make price list system non-mandatory?
 		this.frm.toggle_reqd("plc_conversion_rate",
 			!!(this.frm.doc.price_list_name && this.frm.doc.price_list_currency));
@@ -1259,9 +1279,9 @@
 		this.change_form_labels(company_currency);
 		this.change_grid_labels(company_currency);
 		this.frm.refresh_fields();
-	},
+	}
 
-	change_form_labels: function(company_currency) {
+	change_form_labels(company_currency) {
 		var me = this;
 
 		this.frm.set_currency_labels(["base_total", "base_net_total", "base_total_taxes_and_charges",
@@ -1308,9 +1328,9 @@
 		if(frappe.meta.get_docfield(cur_frm.doctype, "base_net_total"))
 			cur_frm.toggle_display("base_net_total", (show && (me.frm.doc.currency != company_currency)));
 
-	},
+	}
 
-	change_grid_labels: function(company_currency) {
+	change_grid_labels(company_currency) {
 		var me = this;
 
 		this.update_item_grid_labels(company_currency);
@@ -1351,9 +1371,9 @@
 		}
 
 		this.update_payment_schedule_grid_labels(company_currency);
-	},
+	}
 
-	update_item_grid_labels: function(company_currency) {
+	update_item_grid_labels(company_currency) {
 		this.frm.set_currency_labels([
 			"base_rate", "base_net_rate", "base_price_list_rate",
 			"base_amount", "base_net_amount", "base_rate_with_margin"
@@ -1363,9 +1383,9 @@
 			"rate", "net_rate", "price_list_rate", "amount",
 			"net_amount", "stock_uom_rate", "rate_with_margin"
 		], this.frm.doc.currency, "items");
-	},
+	}
 
-	update_payment_schedule_grid_labels: function(company_currency) {
+	update_payment_schedule_grid_labels(company_currency) {
 		const me = this;
 		if (this.frm.doc.payment_schedule && this.frm.doc.payment_schedule.length > 0) {
 			this.frm.set_currency_labels(["base_payment_amount", "base_outstanding", "base_paid_amount"],
@@ -1379,9 +1399,9 @@
 					schedule_grid.set_column_disp(fname, me.frm.doc.currency != company_currency);
 			});
 		}
-	},
+	}
 
-	toggle_item_grid_columns: function(company_currency) {
+	toggle_item_grid_columns(company_currency) {
 		const me = this;
 		// toggle columns
 		var item_grid = this.frm.fields_dict["items"].grid;
@@ -1402,21 +1422,21 @@
 			if(frappe.meta.get_docfield(item_grid.doctype, fname))
 				item_grid.set_column_disp(fname, (show && (me.frm.doc.currency != company_currency)));
 		});
-	},
+	}
 
-	recalculate: function() {
+	recalculate() {
 		this.calculate_taxes_and_totals();
-	},
+	}
 
-	recalculate_values: function() {
+	recalculate_values() {
 		this.calculate_taxes_and_totals();
-	},
+	}
 
-	calculate_charges: function() {
+	calculate_charges() {
 		this.calculate_taxes_and_totals();
-	},
+	}
 
-	ignore_pricing_rule: function() {
+	ignore_pricing_rule() {
 		if(this.frm.doc.ignore_pricing_rule) {
 			var me = this;
 			var item_list = [];
@@ -1450,9 +1470,9 @@
 		} else {
 			this.apply_pricing_rule();
 		}
-	},
+	}
 
-	apply_pricing_rule: function(item, calculate_taxes_and_totals) {
+	apply_pricing_rule(item, calculate_taxes_and_totals) {
 		var me = this;
 		var args = this._get_args(item);
 		if (!(args.items && args.items.length)) {
@@ -1471,9 +1491,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	_get_args: function(item) {
+	_get_args(item) {
 		var me = this;
 		return {
 			"items": this._get_item_list(item),
@@ -1501,9 +1521,9 @@
 			"pos_profile": me.frm.doc.doctype == 'Sales Invoice' ? me.frm.doc.pos_profile : '',
 			"coupon_code": me.frm.doc.coupon_code
 		};
-	},
+	}
 
-	_get_item_list: function(item) {
+	_get_item_list(item) {
 		var item_list = [];
 		var append_item = function(d) {
 			if (d.item_code) {
@@ -1544,9 +1564,9 @@
 			});
 		}
 		return item_list;
-	},
+	}
 
-	_set_values_for_item_list: function(children) {
+	_set_values_for_item_list(children) {
 		var me = this;
 		var price_list_rate_changed = false;
 		var items_rule_dict = {};
@@ -1586,9 +1606,9 @@
 		me.apply_rule_on_other_items(items_rule_dict);
 
 		if(!price_list_rate_changed) me.calculate_taxes_and_totals();
-	},
+	}
 
-	apply_rule_on_other_items: function(args) {
+	apply_rule_on_other_items(args) {
 		const me = this;
 		const fields = ["discount_percentage", "pricing_rules", "discount_amount", "rate"];
 
@@ -1607,9 +1627,9 @@
 				});
 			}
 		}
-	},
+	}
 
-	apply_product_discount: function(args) {
+	apply_product_discount(args) {
 		const items = this.frm.doc.items.filter(d => (d.is_free_item)) || [];
 
 		const exist_items = items.map(row => (row.item_code, row.pricing_rules));
@@ -1634,9 +1654,9 @@
 		// free_item_data is a temporary variable
 		args.free_item_data = '';
 		refresh_field('items');
-	},
+	}
 
-	apply_price_list: function(item, reset_plc_conversion) {
+	apply_price_list(item, reset_plc_conversion) {
 		// We need to reset plc_conversion_rate sometimes because the call to
 		// `erpnext.stock.get_item_details.apply_price_list` is sensitive to its value
 		if (!reset_plc_conversion) {
@@ -1675,9 +1695,9 @@
 		}).always(() => {
 			me.in_apply_price_list = false;
 		});
-	},
+	}
 
-	remove_pricing_rule: function(item) {
+	remove_pricing_rule(item) {
 		let me = this;
 		const fields = ["discount_percentage",
 			"discount_amount", "margin_rate_or_amount", "rate_with_margin"];
@@ -1711,18 +1731,18 @@
 
 			me.trigger_price_list_rate();
 		}
-	},
+	}
 
-	trigger_price_list_rate: function() {
+	trigger_price_list_rate() {
 		var me  = this;
 
 		this.frm.doc.items.forEach(child_row => {
 			me.frm.script_manager.trigger("price_list_rate",
 				child_row.doctype, child_row.name);
 		})
-	},
+	}
 
-	validate_company_and_party: function() {
+	validate_company_and_party() {
 		var me = this;
 		var valid = true;
 
@@ -1737,9 +1757,9 @@
 			}
 		});
 		return valid;
-	},
+	}
 
-	get_terms: function() {
+	get_terms() {
 		var me = this;
 
 		erpnext.utils.get_terms(this.frm.doc.tc_name, this.frm.doc, function(r) {
@@ -1747,9 +1767,9 @@
 				me.frm.set_value("terms", r.message);
 			}
 		});
-	},
+	}
 
-	taxes_and_charges: function() {
+	taxes_and_charges() {
 		var me = this;
 		if(this.frm.doc.taxes_and_charges) {
 			return this.frm.call({
@@ -1775,9 +1795,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	tax_category: function() {
+	tax_category() {
 		var me = this;
 		if(me.frm.updating_party_details) return;
 
@@ -1785,9 +1805,9 @@
 			() => this.update_item_tax_map(),
 			() => erpnext.utils.set_taxes(this.frm, "tax_category"),
 		]);
-	},
+	}
 
-	update_item_tax_map: function() {
+	update_item_tax_map() {
 		let me = this;
 		let item_codes = [];
 		let item_rates = {};
@@ -1825,9 +1845,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	item_tax_template: function(doc, cdt, cdn) {
+	item_tax_template(doc, cdt, cdn) {
 		var me = this;
 		if(me.frm.updating_party_details) return;
 
@@ -1852,11 +1872,10 @@
 			item.item_tax_rate = "{}";
 			me.calculate_taxes_and_totals();
 		}
-	},
+	}
 
 
-
-	is_recurring: function() {
+	is_recurring() {
 		// set default values for recurring documents
 		if(this.frm.doc.is_recurring && this.frm.doc.__islocal) {
 			frappe.msgprint(__("Please set recurring after saving"));
@@ -1879,9 +1898,9 @@
 		}
 
 		refresh_many(["notification_email_address", "repeat_on_day_of_month"]);
-	},
+	}
 
-	from_date: function() {
+	from_date() {
 		// set to_date
 		if(this.frm.doc.from_date) {
 			var recurring_type_map = {'Monthly': 1, 'Quarterly': 3, 'Half-yearly': 6,
@@ -1895,25 +1914,25 @@
 				refresh_field('to_date');
 			}
 		}
-	},
+	}
 
-	set_gross_profit: function(item) {
+	set_gross_profit(item) {
 		if (["Sales Order", "Quotation"].includes(this.frm.doc.doctype) && item.valuation_rate) {
 			var rate = flt(item.rate) * flt(this.frm.doc.conversion_rate || 1);
 			item.gross_profit = flt(((rate - item.valuation_rate) * item.stock_qty), precision("amount", item));
 		}
-	},
+	}
 
-	setup_item_selector: function() {
+	setup_item_selector() {
 		// TODO: remove item selector
 
 		return;
 		// if(!this.item_selector) {
 		// 	this.item_selector = new erpnext.ItemSelector({frm: this.frm});
 		// }
-	},
+	}
 
-	get_advances: function() {
+	get_advances() {
 		if(!this.frm.is_return) {
 			return this.frm.call({
 				method: "set_advances",
@@ -1923,9 +1942,9 @@
 				}
 			})
 		}
-	},
+	}
 
-	make_payment_entry: function() {
+	make_payment_entry() {
 		return frappe.call({
 			method: cur_frm.cscript.get_method_for_payment(),
 			args: {
@@ -1938,9 +1957,9 @@
 				// cur_frm.refresh_fields()
 			}
 		});
-	},
+	}
 
-	make_quality_inspection: function () {
+	make_quality_inspection() {
 		let data = [];
 		const fields = [
 			{
@@ -2062,9 +2081,9 @@
 		} else {
 			dialog.show();
 		}
-	},
+	}
 
-	get_method_for_payment: function(){
+	get_method_for_payment() {
 		var method = "erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry";
 		if(cur_frm.doc.__onload && cur_frm.doc.__onload.make_payment_via_journal_entry){
 			if(in_list(['Sales Invoice', 'Purchase Invoice'],  cur_frm.doc.doctype)){
@@ -2075,9 +2094,9 @@
 		}
 
 		return method
-	},
+	}
 
-	set_query_for_batch: function(doc, cdt, cdn) {
+	set_query_for_batch(doc, cdt, cdn) {
 		// Show item's batches in the dropdown of batch no
 
 		var me = this;
@@ -2107,9 +2126,9 @@
 				filters: filters
 			}
 		}
-	},
+	}
 
-	set_query_for_item_tax_template: function(doc, cdt, cdn) {
+	set_query_for_item_tax_template(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		if(!item.item_code) {
 			return doc.company ? {filters: {company: doc.company}} : {};
@@ -2129,9 +2148,9 @@
 				filters: filters
 			}
 		}
-	},
+	}
 
-	payment_terms_template: function() {
+	payment_terms_template() {
 		var me = this;
 		const doc = this.frm.doc;
 		if(doc.payment_terms_template && doc.doctype !== 'Delivery Note') {
@@ -2154,9 +2173,9 @@
 				}
 			})
 		}
-	},
+	}
 
-	payment_term: function(doc, cdt, cdn) {
+	payment_term(doc, cdt, cdn) {
 		const me = this;
 		var row = locals[cdt][cdn];
 		if(row.payment_term) {
@@ -2180,17 +2199,17 @@
 				}
 			})
 		}
-	},
+	}
 
-	against_blanket_order: function(doc, cdt, cdn) {
+	against_blanket_order(doc, cdt, cdn) {
 		var item = locals[cdt][cdn];
 		if(!item.against_blanket_order) {
 			frappe.model.set_value(this.frm.doctype + " Item", item.name, "blanket_order", null);
 			frappe.model.set_value(this.frm.doctype + " Item", item.name, "blanket_order_rate", 0.00);
 		}
-	},
+	}
 
-	blanket_order: function(doc, cdt, cdn) {
+	blanket_order(doc, cdt, cdn) {
 		var me = this;
 		var item = locals[cdt][cdn];
 		if (item.blanket_order && (item.parenttype=="Sales Order" || item.parenttype=="Purchase Order")) {
@@ -2218,34 +2237,34 @@
 				}
 			})
 		}
-	},
+	}
 
-	set_reserve_warehouse: function() {
+	set_reserve_warehouse() {
 		this.autofill_warehouse(this.frm.doc.supplied_items, "reserve_warehouse", this.frm.doc.set_reserve_warehouse);
-	},
+	}
 
-	set_warehouse: function() {
+	set_warehouse() {
 		this.autofill_warehouse(this.frm.doc.items, "warehouse", this.frm.doc.set_warehouse);
-	},
+	}
 
-	set_target_warehouse: function() {
+	set_target_warehouse() {
 		this.autofill_warehouse(this.frm.doc.items, "target_warehouse", this.frm.doc.set_target_warehouse);
-	},
+	}
 
-	set_from_warehouse: function() {
+	set_from_warehouse() {
 		this.autofill_warehouse(this.frm.doc.items, "from_warehouse", this.frm.doc.set_from_warehouse);
-	},
+	}
 
-	autofill_warehouse : function (child_table, warehouse_field, warehouse) {
+	autofill_warehouse(child_table, warehouse_field, warehouse) {
 		if (warehouse && child_table && child_table.length) {
 			let doctype = child_table[0].doctype;
 			$.each(child_table || [], function(i, item) {
 				frappe.model.set_value(doctype, item.name, warehouse_field, warehouse);
 			});
 		}
-	},
+	}
 
-	coupon_code: function() {
+	coupon_code() {
 		var me = this;
 		frappe.run_serially([
 			() => this.frm.doc.ignore_pricing_rule=1,
@@ -2254,7 +2273,7 @@
 			() => me.apply_pricing_rule()
 		]);
 	}
-});
+};
 
 erpnext.show_serial_batch_selector = function (frm, d, callback, on_close, show_dialog) {
 	let warehouse, receiving_stock, existing_stock;
diff --git a/erpnext/public/js/erpnext-web.bundle.js b/erpnext/public/js/erpnext-web.bundle.js
new file mode 100644
index 0000000..7db6967
--- /dev/null
+++ b/erpnext/public/js/erpnext-web.bundle.js
@@ -0,0 +1,2 @@
+import "./website_utils";
+import "./shopping_cart";
diff --git a/erpnext/public/js/erpnext.bundle.js b/erpnext/public/js/erpnext.bundle.js
new file mode 100644
index 0000000..519cfca
--- /dev/null
+++ b/erpnext/public/js/erpnext.bundle.js
@@ -0,0 +1,27 @@
+import "./conf";
+import "./utils";
+import "./queries";
+import "./sms_manager";
+import "./utils/party";
+import "./controllers/stock_controller";
+import "./payment/payments";
+import "./controllers/taxes_and_totals";
+import "./controllers/transaction";
+import "./templates/item_selector.html";
+import "./templates/employees_to_mark_attendance.html";
+import "./utils/item_selector";
+import "./help_links";
+import "./agriculture/ternary_plot";
+import "./templates/item_quick_entry.html";
+import "./utils/item_quick_entry";
+import "./utils/customer_quick_entry";
+import "./education/student_button.html";
+import "./education/assessment_result_tool.html";
+import "./hub/hub_factory";
+import "./call_popup/call_popup";
+import "./utils/dimension_tree_filter";
+import "./telephony";
+import "./templates/call_link.html";
+
+// import { sum } from 'frappe/public/utils/util.js'
+
diff --git a/erpnext/public/js/hierarchy-chart.bundle.js b/erpnext/public/js/hierarchy-chart.bundle.js
new file mode 100644
index 0000000..26ab6d9
--- /dev/null
+++ b/erpnext/public/js/hierarchy-chart.bundle.js
@@ -0,0 +1,3 @@
+import "./hierarchy_chart/hierarchy_chart_desktop.js";
+import "./hierarchy_chart/hierarchy_chart_mobile.js";
+import "./templates/node_card.html";
\ No newline at end of file
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index 8dab2d6..9c67c1c 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -19,11 +19,7 @@
 	}
 
 	make(page_name) {
-		const assets = [
-			'/assets/js/marketplace.min.js'
-		];
-
-		frappe.require(assets, () => {
+		frappe.require('marketplace.bundle.js', () => {
 			erpnext.hub.marketplace = new erpnext.hub.Marketplace({
 				parent: this.make_page(true, page_name)
 			});
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.bundle.js
similarity index 100%
rename from erpnext/public/js/hub/marketplace.js
rename to erpnext/public/js/hub/marketplace.bundle.js
diff --git a/erpnext/public/js/item-dashboard.bundle.js b/erpnext/public/js/item-dashboard.bundle.js
new file mode 100644
index 0000000..2d329e2
--- /dev/null
+++ b/erpnext/public/js/item-dashboard.bundle.js
@@ -0,0 +1,5 @@
+import "../../stock/dashboard/item_dashboard.html";
+import "../../stock/dashboard/item_dashboard_list.html";
+import "../../stock/dashboard/item_dashboard.js";
+import "../../stock/page/warehouse_capacity_summary/warehouse_capacity_summary.html";
+import "../../stock/page/warehouse_capacity_summary/warehouse_capacity_summary_header.html";
diff --git a/erpnext/public/js/payment/payments.js b/erpnext/public/js/payment/payments.js
index ddf8706..4c23669 100644
--- a/erpnext/public/js/payment/payments.js
+++ b/erpnext/public/js/payment/payments.js
@@ -1,8 +1,8 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-erpnext.payments = erpnext.stock.StockController.extend({
-	make_payment: function() {
+erpnext.payments = class payments extends erpnext.stock.StockController {
+	make_payment() {
 		var me = this;
 
 		this.dialog = new frappe.ui.Dialog({
@@ -14,15 +14,15 @@
 		this.set_payment_primary_action();
 		this.make_keyboard();
 		this.select_text();
-	},
+	}
 
 	select_text() {
 		$(this.$body).find('.form-control').click(function() {
 			$(this).select();
 		});
-	},
+	}
 
-	set_payment_primary_action: function() {
+	set_payment_primary_action() {
 		var me = this;
 
 		this.dialog.set_primary_action(__("Submit"), function() {
@@ -35,18 +35,18 @@
 				}
 			});
 		})
-	},
+	}
 
-	make_keyboard: function() {
+	make_keyboard(){
 		var me = this;
 		$(this.$body).empty();
 		$(this.$body).html(frappe.render_template('pos_payment', this.frm.doc))
 		this.show_payment_details();
-		this.bind_keyboard_event();
-		this.clear_amount();
-	},
+		this.bind_keyboard_event()
+		this.clear_amount()
+	}
 
-	make_multimode_payment: function() {
+	make_multimode_payment(){
 		var me = this;
 
 		if (this.frm.doc.change_amount > 0) {
@@ -56,9 +56,9 @@
 		this.payments = frappe.model.add_child(this.frm.doc, 'Multi Mode Payment', "payments");
 		this.payments.mode_of_payment = this.dialog.fields_dict.mode_of_payment.get_value();
 		this.payments.amount = flt(this.payment_val);
-	},
+	}
 
-	show_payment_details: function() {
+	show_payment_details(){
 		var me = this;
 		var multimode_payments = $(this.$body).find('.multimode-payments').empty();
 		if (this.frm.doc.payments.length) {
@@ -81,9 +81,9 @@
 		}else{
 			$("<p>No payment mode selected in pos profile</p>").appendTo(multimode_payments)
 		}
-	},
+	}
 
-	set_outstanding_amount: function() {
+	set_outstanding_amount(){
 		this.selected_mode = $(this.$body).find(repl("input[idx='%(idx)s']",{'idx': this.idx}));
 		this.highlight_selected_row();
 		this.payment_val = 0.0;
@@ -98,15 +98,16 @@
 		}
 		this.selected_mode.select()
 		this.bind_amount_change_event();
-	},
+	}
 
-	bind_keyboard_event() {
+	bind_keyboard_event(){
+		var me = this;
 		this.payment_val = '';
 		this.bind_form_control_event();
 		this.bind_numeric_keys_event();
-	},
+	}
 
-	bind_form_control_event: function() {
+	bind_form_control_event() {
 		var me = this;
 		$(this.$body).find('.pos-payment-row').click(function() {
 			me.idx = $(this).attr("idx");
@@ -126,7 +127,7 @@
 		$(this.$body).find('.change_amount').change(function() {
 			me.change_amount(flt($(this).val()), precision("change_amount"));
 		});
-	},
+	}
 
 	highlight_selected_row() {
 		var selected_row = $(this.$body).find(repl(".pos-payment-row[idx='%(idx)s']", {'idx': this.idx}));
@@ -134,9 +135,9 @@
 		selected_row.addClass('selected-payment-mode');
 		$(this.$body).find('.amount').attr('disabled', true);
 		this.selected_mode.attr('disabled', false);
-	},
+	}
 
-	bind_numeric_keys_event: function() {
+	bind_numeric_keys_event() {
 		var me = this;
 		$(this.$body).find('.pos-keyboard-key').click(function(){
 			me.payment_val += $(this).text();
@@ -152,7 +153,7 @@
 			me.update_paid_amount();
 		})
 
-	},
+	}
 
 	bind_amount_change_event() {
 		var me = this;
@@ -162,9 +163,9 @@
 			me.idx = me.selected_mode.attr("idx");
 			me.update_payment_amount();
 		});
-	},
+	}
 
-	clear_amount: function() {
+	clear_amount() {
 		var me = this;
 		$(this.$body).find('.clr').click(function(e) {
 			e.stopPropagation();
@@ -175,7 +176,7 @@
 			me.highlight_selected_row();
 			me.update_payment_amount();
 		});
-	},
+	}
 
 	write_off_amount(write_off_amount) {
 		this.frm.doc.write_off_amount = flt(write_off_amount, precision("write_off_amount"));
@@ -183,17 +184,17 @@
 			precision("base_write_off_amount"));
 		this.calculate_outstanding_amount(false);
 		this.show_amounts();
-	},
+	}
 
-	change_amount: function(change_amount) {
+	change_amount(change_amount) {
 		var me = this;
 
 		this.frm.doc.change_amount = flt(change_amount, precision("change_amount"));
 		this.calculate_write_off_amount();
 		this.show_amounts();
-	},
+	}
 
-	update_paid_amount: function(update_write_off) {
+	update_paid_amount(update_write_off) {
 		var me = this;
 		if (in_list(['change_amount', 'write_off_amount'], this.idx)) {
 			var value = me.selected_mode.val();
@@ -208,9 +209,9 @@
 		} else {
 			this.update_payment_amount();
 		}
-	},
+	}
 
-	update_payment_amount: function() {
+	update_payment_amount(){
 		var me = this;
 
 		$.each(this.frm.doc.payments, function(index, data) {
@@ -221,9 +222,9 @@
 
 		this.calculate_outstanding_amount(false);
 		this.show_amounts();
-	},
+	}
 
-	show_amounts: function() {
+	show_amounts(){
 		var me = this;
 		$(this.$body).find(".write_off_amount").val(format_currency(this.frm.doc.write_off_amount, this.frm.doc.currency));
 		$(this.$body).find('.paid_amount').text(format_currency(this.frm.doc.paid_amount, this.frm.doc.currency));
@@ -231,4 +232,4 @@
 		$(this.$body).find('.outstanding_amount').text(format_currency(this.frm.doc.outstanding_amount, frappe.get_doc(":Company", this.frm.doc.company).default_currency));
 		this.update_invoice();
 	}
-})
\ No newline at end of file
+}
diff --git a/erpnext/public/js/point-of-sale.bundle.js b/erpnext/public/js/point-of-sale.bundle.js
new file mode 100644
index 0000000..fbc4bbb
--- /dev/null
+++ b/erpnext/public/js/point-of-sale.bundle.js
@@ -0,0 +1,8 @@
+import "../../selling/page/point_of_sale/pos_item_selector.js";
+import "../../selling/page/point_of_sale/pos_item_cart.js";
+import "../../selling/page/point_of_sale/pos_item_details.js";
+import "../../selling/page/point_of_sale/pos_number_pad.js";
+import "../../selling/page/point_of_sale/pos_payment.js";
+import "../../selling/page/point_of_sale/pos_past_order_list.js";
+import "../../selling/page/point_of_sale/pos_past_order_summary.js";
+import "../../selling/page/point_of_sale/pos_controller.js";
diff --git a/erpnext/public/js/stock_analytics.js b/erpnext/public/js/stock_analytics.js
index 140c9dc..dfe2c88 100644
--- a/erpnext/public/js/stock_analytics.js
+++ b/erpnext/public/js/stock_analytics.js
@@ -2,8 +2,8 @@
 // License: GNU General Public License v3. See license.txt
 
 
-erpnext.StockAnalytics = erpnext.StockGridReport.extend({
-	init: function(wrapper, opts) {
+erpnext.StockAnalytics = class StockAnalytics extends erpnext.StockGridReport {
+	constructor(wrapper, opts) {
 		var args = {
 			title: __("Stock Analytics"),
 			parent: $(wrapper).find('.layout-main'),
@@ -30,9 +30,33 @@
 
 		if(opts) $.extend(args, opts);
 
-		this._super(args);
-	},
-	setup_columns: function() {
+		super(args);
+
+		this.filters = [
+			{fieldtype:"Select", label: __("Value or Qty"), fieldname: "value_or_qty",
+				options:[{label:__("Value"), value:"Value"}, {label:__("Quantity"), value:"Quantity"}],
+				filter: function(val, item, opts, me) {
+					return me.apply_zero_filter(val, item, opts, me);
+				}},
+			{fieldtype:"Select", label: __("Brand"), link:"Brand", fieldname: "brand",
+				default_value: __("Select Brand..."), filter: function(val, item, opts) {
+					return val == opts.default_value || item.brand == val || item._show;
+				}, link_formatter: {filter_input: "brand"}},
+			{fieldtype:"Select", label: __("Warehouse"), link:"Warehouse", fieldname: "warehouse",
+				default_value: __("Select Warehouse...")},
+			{fieldtype:"Date", label: __("From Date"), fieldname: "from_date"},
+			{fieldtype:"Date", label: __("To Date"), fieldname: "to_date"},
+			{fieldtype:"Select", label: __("Range"), fieldname: "range",
+				options:[
+					{label:__("Daily"), value:"Daily"},
+					{label:__("Weekly"), value:"Weekly"},
+					{label:__("Monthly"), value:"Monthly"},
+					{label:__("Quarterly"), value:"Quarterly"},
+					{label:__("Yearly"), value:"Yearly"},
+				]}
+		];
+	}
+	setup_columns() {
 		var std_columns = [
 			{id: "name", name: __("Item"), field: "name", width: 300},
 			{id: "brand", name: __("Brand"), field: "brand", width: 100},
@@ -43,43 +67,21 @@
 
 		this.make_date_range_columns();
 		this.columns = std_columns.concat(this.columns);
-	},
-	filters: [
-		{fieldtype:"Select", label: __("Value or Qty"), fieldname: "value_or_qty",
-			options:[{label:__("Value"), value:"Value"}, {label:__("Quantity"), value:"Quantity"}],
-			filter: function(val, item, opts, me) {
-				return me.apply_zero_filter(val, item, opts, me);
-			}},
-		{fieldtype:"Select", label: __("Brand"), link:"Brand", fieldname: "brand",
-			default_value: __("Select Brand..."), filter: function(val, item, opts) {
-				return val == opts.default_value || item.brand == val || item._show;
-			}, link_formatter: {filter_input: "brand"}},
-		{fieldtype:"Select", label: __("Warehouse"), link:"Warehouse", fieldname: "warehouse",
-			default_value: __("Select Warehouse...")},
-		{fieldtype:"Date", label: __("From Date"), fieldname: "from_date"},
-		{fieldtype:"Date", label: __("To Date"), fieldname: "to_date"},
-		{fieldtype:"Select", label: __("Range"), fieldname: "range",
-			options:[
-				{label:__("Daily"), value:"Daily"},
-				{label:__("Weekly"), value:"Weekly"},
-				{label:__("Monthly"), value:"Monthly"},
-				{label:__("Quarterly"), value:"Quarterly"},
-				{label:__("Yearly"), value:"Yearly"},
-			]}
-	],
-	setup_filters: function() {
+	}
+
+	setup_filters() {
 		var me = this;
-		this._super();
+		super.setup_filters();
 
 		this.trigger_refresh_on_change(["value_or_qty", "brand", "warehouse", "range"]);
 
 		this.show_zero_check();
-	},
-	init_filter_values: function() {
-		this._super();
+	}
+	init_filter_values() {
+		super.init_filter_values();
 		this.filter_inputs.range && this.filter_inputs.range.val('Monthly');
-	},
-	prepare_data: function() {
+	}
+	prepare_data() {
 		var me = this;
 
 		if(!this.data) {
@@ -112,8 +114,8 @@
 		this.prepare_balances();
 		this.update_groups();
 
-	},
-	prepare_balances: function() {
+	}
+	prepare_balances() {
 		var me = this;
 		var from_date = frappe.datetime.str_to_obj(this.from_date);
 		var to_date = frappe.datetime.str_to_obj(this.to_date);
@@ -164,8 +166,8 @@
 				item.closing_qty_value += diff;
 			}
 		}
-	},
-	update_groups: function() {
+	}
+	update_groups() {
 		var me = this;
 		$.each(this.data, function(i, item) {
 			// update groups
@@ -192,8 +194,8 @@
 				}
 			}
 		});
-	},
-	show_stock_ledger: function(item_code) {
+	}
+	show_stock_ledger(item_code) {
 		frappe.route_options = {
 			item_code: item_code,
 			from_date: this.from_date,
@@ -201,5 +203,5 @@
 		};
 		frappe.set_route("query-report", "Stock Ledger");
 	}
-});
+};
 
diff --git a/erpnext/public/js/stock_grid_report.js b/erpnext/public/js/stock_grid_report.js
index 832fd3e..752fafd 100644
--- a/erpnext/public/js/stock_grid_report.js
+++ b/erpnext/public/js/stock_grid_report.js
@@ -1,16 +1,16 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-erpnext.StockGridReport = frappe.views.TreeGridReport.extend({
-	get_item_warehouse: function(warehouse, item) {
+erpnext.StockGridReport = class StockGridReport extends frappe.views.TreeGridReport {
+	get_item_warehouse(warehouse, item) {
 		if(!this.item_warehouse[item]) this.item_warehouse[item] = {};
 		if(!this.item_warehouse[item][warehouse]) this.item_warehouse[item][warehouse] = {
 			balance_qty: 0.0, balance_value: 0.0, fifo_stack: []
 		};
 		return this.item_warehouse[item][warehouse];
-	},
+	}
 
-	get_value_diff: function(wh, sl, is_fifo) {
+	get_value_diff(wh, sl, is_fifo) {
 		// value
 		if(sl.qty > 0) {
 			// incoming - rate is given
@@ -59,8 +59,8 @@
 		wh.balance_qty += sl.qty;
 		wh.balance_value += value_diff;
 		return value_diff;
-	},
-	get_fifo_value_diff: function(wh, sl) {
+	}
+	get_fifo_value_diff(wh, sl) {
 		// get exact rate from fifo stack
 		var fifo_stack = (wh.fifo_stack || []).reverse();
 		var fifo_value_diff = 0.0;
@@ -89,9 +89,9 @@
 		// reset the updated stack
 		wh.fifo_stack = fifo_stack.reverse();
 		return -fifo_value_diff;
-	},
+	}
 
-	get_serialized_value_diff: function(sl) {
+	get_serialized_value_diff(sl) {
 		var me = this;
 
 		var value_diff = 0.0;
@@ -103,9 +103,9 @@
 		});
 
 		return value_diff;
-	},
+	}
 
-	get_serialized_buying_rates: function() {
+	get_serialized_buying_rates() {
 		var serialized_buying_rates = {};
 
 		if (frappe.report_dump.data["Serial No"]) {
@@ -115,5 +115,5 @@
 		}
 
 		return serialized_buying_rates;
-	},
-});
+	}
+};
diff --git a/erpnext/public/js/telephony.js b/erpnext/public/js/telephony.js
index 9548d6c..1c3e314 100644
--- a/erpnext/public/js/telephony.js
+++ b/erpnext/public/js/telephony.js
@@ -1,19 +1,19 @@
-frappe.ui.form.ControlData = frappe.ui.form.ControlData.extend( {
+frappe.ui.form.ControlData = class ControlData extends frappe.ui.form.ControlData  {
 	make_input() {
-		this._super();
+		super.make_input();
 		if (this.df.options == 'Phone') {
 			this.setup_phone();
 		}
 		if (this.frm && this.frm.fields_dict) {
 			Object.values(this.frm.fields_dict).forEach(function(field) {
-				if (field.df.read_only === 1 && field.df.options === 'Phone' 
+				if (field.df.read_only === 1 && field.df.options === 'Phone'
 					&& field.disp_area.style[0] != 'display' && !field.has_icon) {
 					field.setup_phone();
 					field.has_icon = true;
 				}
 			});
 		}
-	},
+	}
 	setup_phone() {
 		if (frappe.phone_call.handler) {
 			let control = this.df.read_only ? '.control-value' : '.control-input';
@@ -30,4 +30,4 @@
 				});
 		}
 	}
-});
+};
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index ce40ced..db7c034 100755
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -749,6 +749,151 @@
 	}
 });
 
+// Show SLA dashboard
+$(document).on('app_ready', function() {
+	frappe.call({
+		method: 'erpnext.support.doctype.service_level_agreement.service_level_agreement.get_sla_doctypes',
+		callback: function(r) {
+			if (!r.message)
+				return;
+
+			$.each(r.message, function(_i, d) {
+				frappe.ui.form.on(d, {
+					onload: function(frm) {
+						if (!frm.doc.service_level_agreement)
+							return;
+
+						frappe.call({
+							method: 'erpnext.support.doctype.service_level_agreement.service_level_agreement.get_service_level_agreement_filters',
+							args: {
+								doctype: frm.doc.doctype,
+								name: frm.doc.service_level_agreement,
+								customer: frm.doc.customer
+							},
+							callback: function (r) {
+								if (r && r.message) {
+									frm.set_query('priority', function() {
+										return {
+											filters: {
+												'name': ['in', r.message.priority],
+											}
+										};
+									});
+									frm.set_query('service_level_agreement', function() {
+										return {
+											filters: {
+												'name': ['in', r.message.service_level_agreements],
+											}
+										};
+									});
+								}
+							}
+						});
+					},
+
+					refresh: function(frm) {
+						if (frm.doc.status !== 'Closed' && frm.doc.service_level_agreement
+							&& frm.doc.agreement_status === 'Ongoing') {
+							frappe.call({
+								'method': 'frappe.client.get',
+								args: {
+									doctype: 'Service Level Agreement',
+									name: frm.doc.service_level_agreement
+								},
+								callback: function(data) {
+									let statuses = data.message.pause_sla_on;
+									const hold_statuses = [];
+									$.each(statuses, (_i, entry) => {
+										hold_statuses.push(entry.status);
+									});
+									if (hold_statuses.includes(frm.doc.status)) {
+										frm.dashboard.clear_headline();
+										let message = {'indicator': 'orange', 'msg': __('SLA is on hold since {0}', [moment(frm.doc.on_hold_since).fromNow(true)])};
+										frm.dashboard.set_headline_alert(
+											'<div class="row">' +
+												'<div class="col-xs-12">' +
+													'<span class="indicator whitespace-nowrap '+ message.indicator +'"><span>'+ message.msg +'</span></span> ' +
+												'</div>' +
+											'</div>'
+										);
+									} else {
+										set_time_to_resolve_and_response(frm, data.message.apply_sla_for_resolution);
+									}
+								}
+							});
+						} else if (frm.doc.service_level_agreement) {
+							frm.dashboard.clear_headline();
+
+							let agreement_status = (frm.doc.agreement_status == 'Fulfilled') ?
+								{'indicator': 'green', 'msg': 'Service Level Agreement has been fulfilled'} :
+								{'indicator': 'red', 'msg': 'Service Level Agreement Failed'};
+
+							frm.dashboard.set_headline_alert(
+								'<div class="row">' +
+									'<div class="col-xs-12">' +
+										'<span class="indicator whitespace-nowrap '+ agreement_status.indicator +'"><span class="hidden-xs">'+ agreement_status.msg +'</span></span> ' +
+									'</div>' +
+								'</div>'
+							);
+						}
+					},
+				});
+			});
+		}
+	});
+});
+
+function set_time_to_resolve_and_response(frm, apply_sla_for_resolution) {
+	frm.dashboard.clear_headline();
+
+	let time_to_respond = get_status(frm.doc.response_by_variance);
+	if (!frm.doc.first_responded_on && frm.doc.agreement_status === 'Ongoing') {
+		time_to_respond = get_time_left(frm.doc.response_by, frm.doc.agreement_status);
+	}
+
+	let alert = `
+		<div class="row">
+			<div class="col-xs-12 col-sm-6">
+				<span class="indicator whitespace-nowrap ${time_to_respond.indicator}">
+					<span>Time to Respond: ${time_to_respond.diff_display}</span>
+				</span>
+			</div>`;
+
+
+	if (apply_sla_for_resolution) {
+		let time_to_resolve = get_status(frm.doc.resolution_by_variance);
+		if (!frm.doc.resolution_date && frm.doc.agreement_status === 'Ongoing') {
+			time_to_resolve = get_time_left(frm.doc.resolution_by, frm.doc.agreement_status);
+		}
+
+		alert += `
+			<div class="col-xs-12 col-sm-6">
+				<span class="indicator whitespace-nowrap ${time_to_resolve.indicator}">
+					<span>Time to Resolve: ${time_to_resolve.diff_display}</span>
+				</span>
+			</div>`;
+	}
+
+	alert += '</div>';
+
+	frm.dashboard.set_headline_alert(alert);
+}
+
+function get_time_left(timestamp, agreement_status) {
+	const diff = moment(timestamp).diff(moment());
+	const diff_display = diff >= 44500 ? moment.duration(diff).humanize() : 'Failed';
+	let indicator = (diff_display == 'Failed' && agreement_status != 'Fulfilled') ? 'red' : 'green';
+	return {'diff_display': diff_display, 'indicator': indicator};
+}
+
+function get_status(variance) {
+	if (variance > 0) {
+		return {'diff_display': 'Fulfilled', 'indicator': 'green'};
+	} else {
+		return {'diff_display': 'Failed', 'indicator': 'red'};
+	}
+}
+
 function attach_selector_button(inner_text, append_loction, context, grid_row) {
 	let $btn_div = $("<div>").css({"margin-bottom": "10px", "margin-top": "10px"})
 		.appendTo(append_loction);
diff --git a/erpnext/public/js/utils/customer_quick_entry.js b/erpnext/public/js/utils/customer_quick_entry.js
index 7bd21df..d2c5c72 100644
--- a/erpnext/public/js/utils/customer_quick_entry.js
+++ b/erpnext/public/js/utils/customer_quick_entry.js
@@ -1,17 +1,17 @@
 frappe.provide('frappe.ui.form');
 
-frappe.ui.form.CustomerQuickEntryForm = frappe.ui.form.QuickEntryForm.extend({
-	init: function(doctype, after_insert, init_callback, doc, force) {
-		this._super(doctype, after_insert, init_callback, doc, force);
+frappe.ui.form.CustomerQuickEntryForm = class CustomerQuickEntryForm extends frappe.ui.form.QuickEntryForm {
+	constructor(doctype, after_insert, init_callback, doc, force) {
+		super(doctype, after_insert, init_callback, doc, force);
 		this.skip_redirect_on_error = true;
-	},
+	}
 
-	render_dialog: function() {
+	render_dialog() {
 		this.mandatory = this.mandatory.concat(this.get_variant_fields());
-		this._super();
-	},
+		super.render_dialog();
+	}
 
-	get_variant_fields: function() {
+	get_variant_fields() {
 		var variant_fields = [{
 			fieldtype: "Section Break",
 			label: __("Primary Contact Details"),
@@ -77,5 +77,5 @@
 		}];
 
 		return variant_fields;
-	},
-})
\ No newline at end of file
+	}
+}
diff --git a/erpnext/public/js/utils/item_quick_entry.js b/erpnext/public/js/utils/item_quick_entry.js
index 27ef107..7e0198d 100644
--- a/erpnext/public/js/utils/item_quick_entry.js
+++ b/erpnext/public/js/utils/item_quick_entry.js
@@ -1,27 +1,27 @@
 frappe.provide('frappe.ui.form');
 
-frappe.ui.form.ItemQuickEntryForm = frappe.ui.form.QuickEntryForm.extend({
-	init: function(doctype, after_insert) {
-		this._super(doctype, after_insert);
-	},
+frappe.ui.form.ItemQuickEntryForm = class ItemQuickEntryForm extends frappe.ui.form.QuickEntryForm {
+	constructor(doctype, after_insert) {
+		super(doctype, after_insert);
+	}
 
-	render_dialog: function() {
+	render_dialog() {
 		this.mandatory = this.get_variant_fields().concat(this.mandatory);
 		this.mandatory = this.mandatory.concat(this.get_attributes_fields());
 		this.check_naming_series_based_on();
-		this._super();
+		super.render_dialog();
 		this.init_post_render_dialog_operations();
 		this.preset_fields_for_template();
 		this.dialog.$wrapper.find('.edit-full').text(__('Edit in full page for more options like assets, serial nos, batches etc.'))
-	},
+	}
 
-	check_naming_series_based_on: function() {
+	check_naming_series_based_on() {
 		if (frappe.defaults.get_default("item_naming_by") === "Naming Series") {
 			this.mandatory = this.mandatory.filter(d => d.fieldname !== "item_code");
 		}
-	},
+	}
 
-	init_post_render_dialog_operations: function() {
+	init_post_render_dialog_operations() {
 		this.dialog.fields_dict.attribute_html.$wrapper.append(frappe.render_template("item_quick_entry"));
 		this.init_for_create_variant_trigger();
 		this.init_for_item_template_trigger();
@@ -29,9 +29,9 @@
 		this.toggle_manufacturer_fields();
 		this.dialog.get_field("item_template").df.hidden = 1;
 		this.dialog.get_field("item_template").refresh();
-	},
+	}
 
-	register_primary_action: function() {
+	register_primary_action() {
 		var me = this;
 		this.dialog.set_primary_action(__('Save'), function() {
 			if (me.dialog.working) return;
@@ -59,9 +59,9 @@
 				me.insert(variant_values);
 			}
 		});
-	},
+	}
 
-	insert: function(variant_values) {
+	insert(variant_values) {
 		let me = this;
 		return new Promise(resolve => {
 			frappe.call({
@@ -94,9 +94,9 @@
 				freeze: true
 			});
 		});
-	},
+	}
 
-	open_doc: function() {
+	open_doc() {
 		this.dialog.hide();
 		this.update_doc();
 		if (this.dialog.fields_dict.create_variant.$input.prop("checked")) {
@@ -106,9 +106,9 @@
 		} else {
 			frappe.set_route('Form', this.doctype, this.doc.name);
 		}
-	},
+	}
 
-	get_variant_fields: function() {
+	get_variant_fields() {
 		var variant_fields = [{
 			fieldname: "create_variant",
 			fieldtype: "Check",
@@ -130,9 +130,9 @@
 		}];
 
 		return variant_fields;
-	},
+	}
 
-	get_manufacturing_fields: function() {
+	get_manufacturing_fields() {
 		this.manufacturer_fields = [{
 			fieldtype: 'Link',
 			options: 'Manufacturer',
@@ -148,9 +148,9 @@
 			reqd: 0
 		}];
 		return this.manufacturer_fields;
-	},
+	}
 
-	get_attributes_fields: function() {
+	get_attributes_fields() {
 		var attribute_fields = [{
 			fieldname: 'attribute_html',
 			fieldtype: 'HTML'
@@ -158,18 +158,18 @@
 
 		attribute_fields = attribute_fields.concat(this.get_manufacturing_fields());
 		return attribute_fields;
-	},
+	}
 
-	init_for_create_variant_trigger: function() {
+	init_for_create_variant_trigger() {
 		var me = this;
 
 		this.dialog.fields_dict.create_variant.$input.on("click", function() {
 			me.preset_fields_for_template();
 			me.init_post_template_trigger_operations(false, [], true);
 		});
-	},
+	}
 
-	preset_fields_for_template: function() {
+	preset_fields_for_template() {
 		var for_variant = this.dialog.get_value('create_variant');
 
 		// setup template field, seen and mandatory if variant
@@ -195,9 +195,9 @@
 			f.refresh();
 		});
 
-	},
+	}
 
-	init_for_item_template_trigger: function() {
+	init_for_item_template_trigger() {
 		var me = this;
 
 		me.dialog.fields_dict["item_template"].df.onchange = () => {
@@ -228,9 +228,9 @@
 				me.init_post_template_trigger_operations(false, [], true);
 			}
 		}
-	},
+	}
 
-	init_post_template_trigger_operations: function(is_manufacturer, attributes, attributes_flag) {
+	init_post_template_trigger_operations(is_manufacturer, attributes, attributes_flag) {
 		this.attributes = attributes;
 		this.attribute_values = {};
 		this.attributes_count = attributes.length;
@@ -240,23 +240,23 @@
 		this.toggle_manufacturer_fields();
 		this.dialog.fields_dict.attribute_html.$wrapper.find(".attributes").toggleClass("hide-control", attributes_flag);
 		this.dialog.fields_dict.attribute_html.$wrapper.find(".attributes-header").toggleClass("hide-control", attributes_flag);
-	},
+	}
 
-	toggle_manufacturer_fields: function() {
+	toggle_manufacturer_fields() {
 		var me = this;
 		$.each(this.manufacturer_fields, function(i, dialog_field) {
 			me.dialog.get_field(dialog_field.fieldname).df.hidden = !me.is_manufacturer;
 			me.dialog.get_field(dialog_field.fieldname).df.reqd = dialog_field.fieldname == 'manufacturer' ? me.is_manufacturer : false;
 			me.dialog.get_field(dialog_field.fieldname).refresh();
 		});
-	},
+	}
 
-	initiate_render_attributes: function() {
+	initiate_render_attributes() {
 		this.dialog.fields_dict.attribute_html.$wrapper.find(".attributes").empty();
 		this.render_attributes(this.attributes);
-	},
+	}
 
-	render_attributes: function(attributes) {
+	render_attributes(attributes) {
 		var me = this;
 
 		this.dialog.get_field('attribute_html').toggle(true);
@@ -291,9 +291,9 @@
 				});
 			}
 		});
-	},
+	}
 
-	init_make_control: function(fieldtype, row) {
+	init_make_control(fieldtype, row) {
 		this[row.attribute] = frappe.ui.form.make_control({
 			df: {
 				"fieldtype": fieldtype,
@@ -305,9 +305,9 @@
 			only_input: false
 		});
 		this[row.attribute].make_input();
-	},
+	}
 
-	init_awesomplete_for_attribute: function(row) {
+	init_awesomplete_for_attribute(row) {
 		var me = this;
 
 		this[row.attribute].input.awesomplete = new Awesomplete(this[row.attribute].input, {
@@ -343,9 +343,9 @@
 			me.attribute_values[$(e.target).attr("data-fieldname")] = e.target.value;
 			$(e.target).closest(".frappe-control").toggleClass("has-error", e.target.value ? false : true);
 		});
-	},
+	}
 
-	get_variant_doc: function() {
+	get_variant_doc() {
 		var me = this;
 		var variant_doc = {};
 		var attribute = this.validate_mandatory_attributes();
@@ -381,9 +381,9 @@
 			})
 		}
 		return variant_doc;
-	},
+	}
 
-	validate_mandatory_attributes: function() {
+	validate_mandatory_attributes() {
 		var me = this;
 		var attribute = {};
 		var mandatory = [];
@@ -404,4 +404,4 @@
 		}
 		return attribute;
 	}
-});
\ No newline at end of file
+};
diff --git a/erpnext/public/js/utils/item_selector.js b/erpnext/public/js/utils/item_selector.js
index d04c488..9fc2640 100644
--- a/erpnext/public/js/utils/item_selector.js
+++ b/erpnext/public/js/utils/item_selector.js
@@ -1,5 +1,5 @@
-erpnext.ItemSelector = Class.extend({
-	init: function(opts) {
+erpnext.ItemSelector = class ItemSelector {
+	constructor(opts) {
 		$.extend(this, opts);
 
 		if (!this.item_field) {
@@ -12,9 +12,9 @@
 
 		this.grid = this.frm.get_field("items").grid;
 		this.setup();
-	},
+	}
 
-	setup: function() {
+	setup() {
 		var me = this;
 		if(!this.grid.add_items_button) {
 			this.grid.add_items_button = this.grid.add_custom_button(__('Add Items'), function() {
@@ -26,9 +26,9 @@
 				setTimeout(function() { me.dialog.input.focus(); }, 1000);
 			});
 		}
-	},
+	}
 
-	make_dialog: function() {
+	make_dialog() {
 		this.dialog = new frappe.ui.Dialog({
 			title: __('Add Items')
 		});
@@ -53,9 +53,9 @@
 				me.timeout_id = undefined;
 			}, 500);
 		});
-	},
+	}
 
-	add_item: function(item_code) {
+	add_item(item_code) {
 		// add row or update qty
 		var added = false;
 
@@ -82,9 +82,9 @@
 			]);
 		}
 
-	},
+	}
 
-	render_items: function() {
+	render_items() {
 		let args = {
 			query: this.item_query,
 			filters: {}
@@ -107,4 +107,4 @@
 			me.dialog.results.html(frappe.render_template('item_selector', {'data':r.values}));
 		});
 	}
-});
\ No newline at end of file
+};
diff --git a/erpnext/public/js/utils/serial_no_batch_selector.js b/erpnext/public/js/utils/serial_no_batch_selector.js
index b5d3981..597d77c 100644
--- a/erpnext/public/js/utils/serial_no_batch_selector.js
+++ b/erpnext/public/js/utils/serial_no_batch_selector.js
@@ -1,6 +1,6 @@
 
-erpnext.SerialNoBatchSelector = Class.extend({
-	init: function(opts, show_dialog) {
+erpnext.SerialNoBatchSelector = class SerialNoBatchSelector {
+	constructor(opts, show_dialog) {
 		$.extend(this, opts);
 		this.show_dialog = show_dialog;
 		// frm, item, warehouse_details, has_batch, oldest
@@ -12,16 +12,16 @@
 		if(d && d.has_serial_no && !(this.show_dialog == false)) this.has_serial_no = 1;
 
 		this.setup();
-	},
+	}
 
-	setup: function() {
+	setup() {
 		this.item_code = this.item.item_code;
 		this.qty = this.item.qty;
 		this.make_dialog();
 		this.on_close_dialog();
-	},
+	}
 
-	make_dialog: function() {
+	make_dialog() {
 		var me = this;
 
 		this.data = this.oldest ? this.oldest : [];
@@ -186,15 +186,15 @@
 		}
 
 		this.dialog.show();
-	},
+	}
 
-	on_close_dialog: function() {
+	on_close_dialog() {
 		this.dialog.get_close_btn().on('click', () => {
 			this.on_close && this.on_close(this.item);
 		});
-	},
+	}
 
-	validate: function() {
+	validate() {
 		let values = this.values;
 		if(!values.warehouse) {
 			frappe.throw(__("Please select a warehouse"));
@@ -220,7 +220,7 @@
 			}
 			return true;
 		}
-	},
+	}
 
 	update_batch_items() {
 		// clones an items if muliple batches are selected.
@@ -243,14 +243,14 @@
 					'selected_qty', this.values.warehouse);
 			});
 		}
-	},
+	}
 
 	update_serial_no_item() {
 		// just updates serial no for the item
 		if(this.has_serial_no && !this.has_batch) {
 			this.map_row_values(this.item, this.values, 'serial_no', 'qty');
 		}
-	},
+	}
 
 	update_batch_serial_no_items() {
 		// if serial no selected is from different batches, adds new rows for each batch.
@@ -291,14 +291,14 @@
 				});
 			})
 		}
-	},
+	}
 
-	batch_exists: function(batch) {
+	batch_exists(batch) {
 		const batches = this.frm.doc.items.map(data => data.batch_no);
 		return (batches && in_list(batches, batch)) ? true : false;
-	},
+	}
 
-	map_row_values: function(row, values, number, qty_field, warehouse) {
+	map_row_values(row, values, number, qty_field, warehouse) {
 		row.qty = values[qty_field];
 		row.transfer_qty = flt(values[qty_field]) * flt(row.conversion_factor);
 		row[number] = values[number];
@@ -311,9 +311,9 @@
 		}
 
 		this.frm.dirty();
-	},
+	}
 
-	update_total_qty: function() {
+	update_total_qty() {
 		let qty_field = this.dialog.fields_dict.qty;
 		let total_qty = 0;
 
@@ -322,8 +322,9 @@
 		});
 
 		qty_field.set_input(total_qty);
-	},
-	update_pending_qtys: function() {
+	}
+
+	update_pending_qtys() {
 		const pending_qty_field = this.dialog.fields_dict.pending_qty;
 		const total_selected_qty_field = this.dialog.fields_dict.total_selected_qty;
 
@@ -337,8 +338,9 @@
 
 		pending_qty_field.set_input(pending_qty);
 		total_selected_qty_field.set_input(total_selected_qty);
-	},
-	get_batch_fields: function() {
+	}
+
+	get_batch_fields() {
 		var me = this;
 
 		return [
@@ -450,9 +452,9 @@
 				},
 			}
 		];
-	},
+	}
 
-	get_serial_no_fields: function() {
+	get_serial_no_fields() {
 		var me = this;
 		this.serial_list = [];
 
@@ -535,7 +537,7 @@
 			}
 		];
 	}
-});
+};
 
 function get_pending_qty_fields(me) {
 	if (!check_can_calculate_pending_qty(me)) return [];
diff --git a/erpnext/public/less/email.less b/erpnext/public/less/email.less
deleted file mode 100644
index 4077c49..0000000
--- a/erpnext/public/less/email.less
+++ /dev/null
@@ -1,32 +0,0 @@
-@import "../../../../frappe/frappe/public/less/variables.less";
-
-.panel-header {
-	background-color: @light-bg;
-	border: 1px solid @border-color;
-	border-radius: 3px 3px 0 0;
-}
-
-.panel-body {
-	background-color: #fff;
-	border: 1px solid @border-color;
-	border-top: none;
-	border-radius: 0 0 3px 3px;
-	overflow-wrap: break-word;
-}
-
-.sender-avatar {
-	width: 24px;
-	height: 24px;
-	border-radius: 3px;
-	vertical-align: middle;
-}
-
-.sender-avatar-placeholder {
-	.sender-avatar;
-
-	line-height: 24px;
-	text-align: center;
-	color: @border-color;
-	border: 1px solid @border-color;
-	background-color: #fff;
-}
\ No newline at end of file
diff --git a/erpnext/public/less/hub.less b/erpnext/public/less/hub.less
deleted file mode 100644
index 29deada..0000000
--- a/erpnext/public/less/hub.less
+++ /dev/null
@@ -1,375 +0,0 @@
-@import "variables.less";
-@import (reference) "desk.less";
-
-body[data-route*="marketplace"] {
-	.layout-side-section {
-		padding-top: 25px;
-		padding-left: 5px;
-		padding-right: 25px;
-	}
-
-	[data-route], [data-action] {
-		cursor: pointer;
-	}
-
-	.layout-main-section {
-		border: none;
-		font-size: @text-medium;
-		padding-top: 25px;
-
-		@media (max-width: @screen-xs) {
-			padding-left: 20px;
-			padding-right: 20px;
-		}
-	}
-
-	input, textarea {
-		font-size: @text-medium;
-	}
-
-	.hub-image {
-		height: 200px;
-	}
-
-	.hub-image-loading, .hub-image-broken {
-		content: " ";
-		position: absolute;
-		left: 0;
-		height: 100%;
-		width: 100%;
-		background-color: var(--bg-light-gray);
-		display: flex;
-		align-items: center;
-		justify-content: center;
-
-		span {
-			font-size: 32px;
-			color: @text-extra-muted;
-		}
-	}
-
-	.progress-bar {
-		background-color: #89da28;
-	}
-
-	.subpage-title.flex {
-		align-items: flex-start;
-		justify-content: space-between;
-	}
-
-	.hub-card {
-		margin-bottom: 25px;
-		position: relative;
-		border: 1px solid @border-color;
-		border-radius: 4px;
-		overflow: hidden;
-
-		&:hover .hub-card-overlay {
-			display: block;
-		}
-	}
-
-	.hub-card.is-local {
-		&.active {
-			.hub-card-header {
-				background-color: #f4ffe5;
-			}
-
-			.octicon-check {
-				display: inline;
-			}
-		}
-
-		.octicon-check {
-			display: none;
-			position: absolute;
-			font-size: 20px;
-			right: 15px;
-			top: 50%;
-			transform: translateY(-50%);
-		}
-	}
-
-	.hub-card-header {
-		position: relative;
-		padding: 12px 15px;
-		height: 60px;
-		border-bottom: 1px solid @border-color;
-	}
-
-	.hub-card-body {
-		position: relative;
-		height: 200px;
-	}
-
-	.hub-card-overlay {
-		display: none;
-		position: absolute;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		background-color: rgba(0, 0, 0, 0.05);
-	}
-
-	.hub-card-overlay-body {
-		position: relative;
-		height: 100%;
-	}
-
-	.hub-card-overlay-button {
-		position: absolute;
-		right: 15px;
-		bottom: 15px;
-	}
-
-	.hub-card-image {
-		position: relative;
-		width: 100%;
-		height: 100%;
-		object-fit: contain;
-	}
-
-	.hub-search-container {
-		margin-bottom: 20px;
-
-		input {
-			height: 32px;
-		}
-	}
-
-	.hub-sidebar {
-		padding-top: 25px;
-		padding-right: 15px;
-	}
-
-	.hub-sidebar-group {
-		margin-bottom: 10px;
-	}
-
-	.hub-sidebar-item {
-		padding: 5px 8px;
-		margin-bottom: 3px;
-		border-radius: 4px;
-		border: 1px solid transparent;
-
-		&.active, &:hover:not(.is-title) {
-			border-color: @border-color;
-		}
-	}
-
-	.hub-item-image {
-		position: relative;
-		border: 1px solid @border-color;
-		border-radius: 4px;
-		overflow: hidden;
-		height: 200px;
-		width: 200px;
-		display: flex;
-		align-items: center;
-	}
-
-	.hub-item-skeleton-image {
-		border-radius: 4px;
-		background-color: @light-bg;
-		overflow: hidden;
-		height: 200px;
-		width: 200px;
-	}
-
-	.hub-skeleton {
-		background-color: @light-bg;
-		color: @light-bg;
-		max-width: 500px;
-	}
-
-	.hub-item-seller img {
-		width: 50px;
-		height: 50px;
-		border-radius: 4px;
-		border: 1px solid @border-color;
-	}
-
-	.register-title {
-		font-size: @text-regular;
-	}
-
-	.register-form {
-		border: 1px solid @border-color;
-		border-radius: 4px;
-		padding: 15px 25px;
-	}
-
-	.publish-area.filled {
-		.empty-items-container {
-			display: none;
-		}
-	}
-
-	.publish-area.empty {
-		.hub-items-container {
-			display: none;
-		}
-	}
-
-	.publish-area-head {
-		display: flex;
-		justify-content: space-between;
-		margin-bottom: 20px;
-	}
-
-	.hub-list-item {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		border: 1px solid @border-color;
-		margin-bottom: -1px;
-		overflow: hidden;
-	}
-
-	.hub-list-item:first-child {
-		border-top-left-radius: 4px;
-		border-top-right-radius: 4px;
-	}
-	.hub-list-item:last-child {
-		border-bottom-left-radius: 4px;
-		border-bottom-right-radius: 4px;
-	}
-
-	.hub-list-left {
-		display: flex;
-		align-items: center;
-		max-width: 90%;
-	}
-
-	.hub-list-right {
-		padding-right: 15px;
-	}
-
-	.hub-list-image {
-		position: relative;
-		width: 58px;
-		height: 58px;
-		border-right: 1px solid @border-color;
-
-		&::after {
-			font-size: 12px;
-		}
-	}
-
-	.hub-list-body {
-		padding: 12px 15px;
-	}
-
-	.hub-list-title {
-		font-weight: bold;
-	}
-
-	.hub-list-subtitle {
-		color: @text-muted;
-	}
-
-	.selling-item-message-card {
-		max-width: 500px;
-		margin-bottom: 15px;
-		border-radius: 3px;
-		border: 1px solid @border-color;
-		.selling-item-detail {
-			overflow: auto;
-			.item-image {
-				float: left;
-				height: 80px;
-				width: 80px;
-				object-fit: contain;
-				margin: 5px;
-			}
-			.item-name {
-				margin-left: 10px;
-			}
-		}
-		.received-message-container {
-			clear: left;
-			background-color: @light-bg;
-			.received-message {
-				border-top: 1px solid @border-color;
-				padding: 10px;
-			}
-			.frappe-timestamp {
-				float: right;
-			}
-		}
-	}
-
-	.form-container {
-		.frappe-control {
-			max-width: 100% !important;
-		}
-	}
-
-	.form-message {
-		padding-top: 0;
-		padding-bottom: 0;
-		border-bottom: none;
-	}
-
-	.hub-items-container {
-		.hub-items-header {
-			justify-content: space-between;
-			align-items: baseline;
-		}
-	}
-
-	.hub-item-container {
-		overflow: hidden;
-	}
-
-	.hub-item-review-container {
-		margin-top: calc(30vh);
-	}
-
-	.hub-item-dropdown {
-		margin-top: 20px;
-	}
-
-	/* messages page */
-
-	.message-list-item {
-		display: flex;
-		align-items: center;
-		padding: 8px 12px;
-
-		&:not(.active) {
-			filter: grayscale(1);
-			color: @text-muted;
-		}
-
-		&:hover {
-			background-color: @light-bg;
-		}
-
-		.list-item-left {
-			width: 30px;
-			border-radius: 4px;
-			overflow: hidden;
-			margin-right: 15px;
-		}
-
-		.list-item-body {
-			font-weight: bold;
-			padding-bottom: 1px;
-		}
-	}
-
-	.message-container {
-		display: flex;
-		flex-direction: column;
-		border: 1px solid @border-color;
-		border-radius: 3px;
-		height: calc(100vh - 300px);
-		justify-content: space-between;
-		padding: 15px;
-	}
-
-	.message-list {
-		overflow: scroll;
-	}
-}
diff --git a/erpnext/public/less/pos.less b/erpnext/public/less/pos.less
deleted file mode 100644
index b081ed4..0000000
--- a/erpnext/public/less/pos.less
+++ /dev/null
@@ -1,229 +0,0 @@
-@import "../../../../frappe/frappe/public/less/variables.less";
-
-[data-route="point-of-sale"] {
-	.layout-main-section-wrapper {
-		margin-bottom: 0;
-	}
-
-	.pos-items-wrapper {
-		max-height: ~"calc(100vh - 210px)";
-	}
-}
-
-.pos {
-	// display: flex;
-	padding: 15px;
-}
-
-.list-item {
-	min-height: 40px;
-	height: auto;
-}
-
-.cart-container {
-	padding: 0 15px;
-	// flex: 2;
-	display: inline-block;
-	width: 39%;
-	vertical-align: top;
-}
-
-.item-container {
-	padding: 0 15px;
-	// flex: 3;
-	display: inline-block;
-	width: 60%;
-	vertical-align: top;
-}
-
-.search-field {
-	width: 60%;
-
-	input::placeholder {
-		font-size: @text-medium;
-	}
-}
-
-.item-group-field {
-	width: 40%;
-	margin-left: 15px;
-}
-
-.cart-wrapper {
-	margin-bottom: 12px;
-	.list-item__content:not(:first-child) {
-		justify-content: flex-end;
-	}
-
-	.list-item--head .list-item__content:nth-child(2) {
-		flex: 1.5;
-	}
-}
-
-.cart-items {
-	height: 150px;
-	overflow: auto;
-
-	.list-item.current-item {
-		background-color: @light-yellow;
-	}
-
-	.list-item.current-item.qty input {
-		border: 1px solid @brand-primary;
-		font-weight: bold;
-	}
-
-	.list-item.current-item.disc .discount {
-		font-weight: bold;
-	}
-
-	.list-item.current-item.rate .rate {
-		font-weight: bold;
-	}
-
-	.list-item .quantity {
-		flex: 1.5;
-	}
-
-	input {
-		text-align: right;
-		height: 22px;
-		font-size: @text-medium;
-	}
-}
-
-.fields {
-	display: flex;
-}
-
-.pos-items-wrapper {
-	max-height: 480px;
-	overflow-y: auto;
-}
-
-.pos-items {
-	overflow: hidden;
-}
-
-.pos-item-wrapper {
-	display: flex;
-	flex-direction: column;
-	position: relative;
-	width: 25%;
-}
-
-.image-view-container {
-	display: block;
-}
-
-.image-view-container .image-field {
-	height: auto;
-}
-
-.empty-state {
-	height: 100%;
-	position: relative;
-
-	span {
-		position: absolute;
-		color: @text-muted;
-		font-size: @text-medium;
-		top: 50%;
-		left: 50%;
-		transform: translate(-50%, -50%);
-	}
-}
-
-@keyframes yellow-fade {
-	0% {background-color: @light-yellow;}
-	100% {background-color: transparent;}
-}
-
-.highlight {
-	animation: yellow-fade 1s ease-in 1;
-}
-
-input[type=number]::-webkit-inner-spin-button,
-input[type=number]::-webkit-outer-spin-button {
-	-webkit-appearance: none;
-	margin: 0;
-}
-
-// number pad
-
-.number-pad {
-	border-collapse: collapse;
-	cursor: pointer;
-	display: table;
-}
-.num-row {
-	display: table-row;
-}
-.num-col {
-	display: table-cell;
-	border: 1px solid @border-color;
-
-	& > div {
-		width: 50px;
-		height: 50px;
-		text-align: center;
-		line-height: 50px;
-	}
-
-	&.active {
-		background-color: @light-yellow;
-	}
-
-	&.brand-primary {
-		background-color: @brand-primary;
-		color: #ffffff;
-	}
-}
-
-// taxes, totals and discount area
-.discount-amount {
-	.discount-inputs {
-		display: flex;
-		flex-direction: column;
-		padding: 15px 0;
-	}
-
-	input:first-child {
-		margin-bottom: 10px;
-	}
-}
-
-.taxes-and-totals {
-	border-top: 1px solid @border-color;
-
-	.taxes {
-		display: flex;
-		flex-direction: column;
-		padding: 15px 0;
-		align-items: flex-end;
-
-		& > div:first-child {
-			margin-bottom: 10px;
-		}
-	}
-}
-
-.grand-total {
-	border-top: 1px solid @border-color;
-
-	.list-item {
-		height: 60px;
-	}
-
-	.grand-total-value {
-		font-size: 18px;
-	}
-}
-
-.rounded-total-value {
-  font-size: 18px;
-}
-
-.quantity-total {
-  font-size: 18px;
-}
\ No newline at end of file
diff --git a/erpnext/public/less/products.less b/erpnext/public/less/products.less
deleted file mode 100644
index 5e744ce..0000000
--- a/erpnext/public/less/products.less
+++ /dev/null
@@ -1,71 +0,0 @@
-@import "variables.less";
-
-.products-list .product-image {
-	display: inline-block;
-	width: 160px;
-	height: 160px;
-	object-fit: contain;
-	margin-right: 1rem;
-}
-
-.product-image.no-image {
-	display: flex;
-	justify-content: center;
-	align-items: center;
-	font-size: 3rem;
-	color: var(--gray);
-	background: var(--light);
-}
-
-.product-image a {
-	text-decoration: none;
-}
-
-.filter-options {
-	margin-left: -5px;
-	padding-left: 5px;
-	max-height: 300px;
-	overflow: auto;
-}
-
-.item-slideshow-image {
-	height: 3rem;
-	width: 3rem;
-	object-fit: contain;
-	padding: 0.5rem;
-	border: 1px solid @border-color;
-	border-radius: 4px;
-	cursor: pointer;
-
-	&:hover, &.active {
-		border-color: var(--primary);
-	}
-}
-
-.address-card {
-	cursor: pointer;
-	position: relative;
-
-	.check {
-		display: none;
-	}
-
-	&.active {
-		border-color: var(--primary);
-
-		.check {
-			display: inline-flex;
-		}
-	}
-}
-
-.check {
-	display: inline-flex;
-    padding: 0.25rem;
-    background: var(--primary);
-    color: white;
-    border-radius: 50%;
-	font-size: 12px;
-	width: 24px;
-	height: 24px;
-}
\ No newline at end of file
diff --git a/erpnext/public/less/website.less b/erpnext/public/less/website.less
deleted file mode 100644
index ac878de..0000000
--- a/erpnext/public/less/website.less
+++ /dev/null
@@ -1,388 +0,0 @@
-@import "variables.less";
-
-.web-long-description {
-	font-size: 18px;
-	line-height: 200%;
-}
-
-.web-page-content {
-	margin-bottom: 30px;
-}
-
-.item-stock {
-	margin-bottom: 10px !important;
-}
-
-.product-link {
-	display: block;
-	text-align: center;
-}
-
-
-.product-image img {
-	max-height: 500px;
-	margin: 0 auto;
-}
-
-@media (max-width: 767px) {
-	.product-image {
-		height: 0px;
-		padding: 0px 0px 100%;
-		overflow: hidden;
-	}
-}
-
-.product-image-square {
-	width: 100%;
-	height: 0;
-	padding: 50% 0px;
-	background-size: cover;
-	background-repeat: no-repeat;
-	background-position: center top;
-}
-
-.product-image.missing-image {
-	.product-image-square;
-	position: relative;
-	background-color: @light-border-color;
-}
-
-.product-image.missing-image .octicon {
-	font-size: 32px;
-	color: @border-color;
-}
-
-.product-search {
-	margin-bottom: 15px;
-}
-
-
-@media (max-width: 767px) {
-	.product-search {
-		width: 100%;
-	}
-}
-
-.borderless td, .borderless th {
-  border-bottom: 1px solid @light-border-color;
-  padding-left:0px !important;
-  line-height: 1.8em !important;
-}
-
-.item-desc {
-	 border-top: 2px solid @light-border-color;
-	 padding-top:10px;
-}
-
-.featured-products {
-	border-top: 1px solid @light-border-color;
-}
-
-.transaction-list-item {
-	.indicator {
-		font-weight: inherit;
-		color: @text-muted;
-	}
-
-	.transaction-time {
-		margin-top: 5px;
-	}
-
-}
-
-// order.html
-.transaction-subheading {
-	.indicator {
-		font-weight: inherit;
-		color: @text-muted;
-	}
-}
-
-.order-container {
-	margin: 50px 0px;
-
-	.order-item-header .h6 {
-		padding: 7px 15px;
-	}
-
-	.order-items {
-		margin: 30px 0px 0px;
-	}
-
-	.order-item-table {
-		margin: 0px -15px;
-	}
-
-	.order-item-header {
-		border-bottom: 1px solid #d1d8dd;
-	}
-
-	.order-image-col {
-		padding-right: 0px;
-	}
-
-	.order-image {
-		max-width: 55px;
-		max-height: 55px;
-		margin-top: -5px;
-	}
-
-	.order-taxes {
-		margin-top: 30px;
-
-		.row {
-			margin-top: 15px;
-		}
-	}
-
-	.tax-grand-total-row {
-		padding-top: 15px;
-		padding-bottom: 30px;
-	}
-
-	.tax-grand-total {
-		display: inline-block;
-		font-size: 16px;
-		font-weight: bold;
-		margin-top: 5px;
-	}
-}
-
-.cart-container {
-	margin: 50px 0px;
-
-	.checkout {
-		margin-bottom:15px;
-	}
-
-	.cart-item-header .h6 {
-		padding: 7px 15px;
-	}
-
-	.cart-items {
-		margin: 30px 0px 0px;
-	}
-
-	.cart-item-table {
-		margin: 0px -15px;
-	}
-
-	.cart-item-header {
-		border-bottom: 1px solid #d1d8dd;
-	}
-
-	.cart-image-col {
-		padding-right: 0px;
-	}
-
-	.cart-image {
-		max-width: 55px;
-		max-height: 55px;
-		margin-top: -5px;
-	}
-
-	.cart-taxes {
-		margin-top: 30px;
-
-		.row {
-			margin-top: 15px;
-		}
-	}
-
-	.tax-grand-total-row {
-		border-top: 1px solid @border-color;
-		padding-top: 15px;
-	}
-
-	.cart-addresses {
-		margin-top: 50px;
-	}
-}
-
-.cart-items-dropdown .cart-dropdown,
-.item_name_dropdown {
-	display: none;
-
-}
-
-.cart-dropdown-container {
-	width: 400px;
-	padding: 15px;
-
-	.item-price {
-		display: block !important;
-		padding-bottom: 10px;
-	}
-
-	.cart-item-header {
-		border-bottom: 1px solid #d1d8dd;
-	}
-
-	.cart-items-dropdown {
-		max-height: 350px;
-	}
-
-	.cart-items-dropdown .cart-dropdown {
-		display:block;
-		margin-top:15px;
-	}
-
-	.item_name_dropdown {
-		display:block;
-	}
-
-	.item-description,
-	.cart-items .checkout,
-	.item_name_and_description {
-		display: none;
-	}
-
-	.checkout-btn {
-		padding-bottom:25px;
-	}
-	.col-name-description {
-		margin-bottom:8px;
-	}
-}
-
-// .number-spinner {
-// 	width:100px;
-// 	margin-top:5px;
-// }
-
-.cart-btn {
-	border-color: #ccc;
-}
-.cart-qty {
-	text-align:center;
-}
-
-.product-list-link {
-	.row {
-		border-bottom: 1px solid @light-border-color;
-	}
-
-	.row:hover {
-		background-color: @light-bg;
-	}
-
-	.row > div {
-		padding-top: 15px;
-		padding-bottom: 15px;
-	}
-}
-
-.product-list-link:first-child .row {
-	border-top: 1px solid @light-border-color;
-}
-
-.item-group-nav-buttons {
-	margin-top: 15px;
-}
-
-.footer-subscribe {
-	.btn-default {
-		background-color: transparent;
-		border: 1px solid @border-color;
-	}
-}
-
-@media (min-width: 992px) {
-	.footer-subscribe {
-		max-width: 350px;
-	}
-}
-
-.item-group-content {
-	margin-top: 30px;
-}
-
-.item-group-slideshow {
-	margin-bottom: 1rem;
-}
-
-.product-image-img {
-	border: 1px solid @light-border-color;
-	border-radius: 3px;
-}
-
-.product-text {
-	word-wrap: break-word;
-	height: 75px;
-	display: block; /* Fallback for non-webkit */
-	display: -webkit-box;
-	max-width: 100%;
-	margin: 0 auto;
-	-webkit-line-clamp: 3;
-	-webkit-box-orient: vertical;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-
-.product-image-wrapper {
-	padding-bottom: 40px;
-}
-
-.duration-bar {
-  display: inline-block;
-  color: white;
-  background: #8FD288;
-  padding: 3px;
-}
-
-.duration-invisible {
-  visibility: hidden;
-}
-
-.duration-value {
-  float: right;
-}
-
-.bar-outer-text {
-  color: #8FD288;
-  background: none;
-  float: none;
-  border: none;
-}
-
-.bom-spec {
-	margin-bottom: 20px;
-}
-
-.modal-title {
-	margin-top: 5px;
-}
-
-.modal-header {
-	padding: 10px 15px;
-}
-// For Item Alternate Image
-.item-alternative-image {
-	padding: 5px;
-	margin-bottom: 5px;
-
-	&:hover {
-		border-color: @brand-primary;
-	}
-}
-
-.item-slideshow-image {
-	height: 3rem;
-	width: 3rem;
-	object-fit: contain;
-	padding: 0.5rem;
-	border: 1px solid @border-color;
-	border-radius: 4px;
-	cursor: pointer;
-
-	&:hover, &.active {
-		border-color: @brand-primary;
-	}
-}
-
-.section-products {
-	.card-img-top {
-		max-height: 300px;
-		object-fit: contain;
-	}
-}
\ No newline at end of file
diff --git a/erpnext/public/scss/erpnext-web.bundle.scss b/erpnext/public/scss/erpnext-web.bundle.scss
new file mode 100644
index 0000000..6ef1892
--- /dev/null
+++ b/erpnext/public/scss/erpnext-web.bundle.scss
@@ -0,0 +1,2 @@
+@import "./shopping_cart";
+@import "./website";
diff --git a/erpnext/public/scss/erpnext.bundle.scss b/erpnext/public/scss/erpnext.bundle.scss
new file mode 100644
index 0000000..b68ddf5
--- /dev/null
+++ b/erpnext/public/scss/erpnext.bundle.scss
@@ -0,0 +1,4 @@
+@import "./erpnext";
+@import "./call_popup";
+@import "./point-of-sale";
+@import "./hierarchy_chart";
diff --git a/erpnext/public/less/erpnext.less b/erpnext/public/scss/erpnext.scss
similarity index 83%
rename from erpnext/public/less/erpnext.less
rename to erpnext/public/scss/erpnext.scss
index 4076ebe..8ab5973 100644
--- a/erpnext/public/less/erpnext.less
+++ b/erpnext/public/scss/erpnext.scss
@@ -1,5 +1,3 @@
-@import "variables.less";
-
 .erpnext-footer {
 	margin: 11px auto;
 	text-align: center;
@@ -141,7 +139,7 @@
 	}
 
 	.pos-payment-row {
-		border-bottom:1px solid @border-color;
+		border-bottom:1px solid var(--border-color);
 		margin: 2px 0px 5px 0px;
 		height: 60px;
 		margin-top: 0px;
@@ -149,12 +147,12 @@
 	}
 
 	.pos-payment-row:hover, .pos-keyboard-key:hover{
-		background-color: @light-bg;
+		background-color: var(--bg-color);
 		cursor: pointer;
 	}
 
 	.pos-keyboard-key, .delete-btn {
-		border: 1px solid @border-color;
+		border: 1px solid var(--border-color);
 		height:85px;
 		width:85px;
 		margin:10px 10px;
@@ -165,7 +163,7 @@
 	}
 
 	.numeric-keypad {
-		border: 1px solid @border-color;
+		border: 1px solid var(--border-color);
 		height:69px;
 		width:69px;
 		font-size:20px;
@@ -192,13 +190,13 @@
 		background-color: #fff;
 		margin-left:-4px;
 
-		@media (max-width: @screen-md) {
+		@media (max-width: var(--xl-width)) {
 			height: 45px;
 			width: 45px;
 			font-size: 14px;
 		}
 
-		@media (max-width: @screen-sm) {
+		@media (max-width: var(--lg-width)) {
 			height: 40px;
 			width: 40px;
 		}
@@ -209,21 +207,21 @@
 
 		& > .row > button {
 			border: none;
-			border-right: 1px solid @border-color;
-			border-bottom: 1px solid @border-color;
+			border-right: 1px solid var(--border-color);
+			border-bottom: 1px solid var(--border-color);
 
 			&:first-child {
-				border-left: 1px solid @border-color;
+				border-left: 1px solid var(--border-color);
 			}
 		}
 
 		& > .row:first-child > button {
-			border-top: 1px solid @border-color;
+			border-top: 1px solid var(--border-color);
 		}
 	}
 
 	.pos-pay {
-		background-color: @brand-primary;
+		background-color: var(--primary);
 		border: none;
 	}
 
@@ -236,13 +234,13 @@
 	}
 
 	.list-row-head.pos-invoice-list {
-		border-top: 1px solid @border-color;
+		border-top: 1px solid var(--border-color);
 	}
 
 	.modal-dialog {
 		width: 750px;
 
-		@media (max-width: @screen-xs) {
+		@media (max-width: var(--md-width)) {
 			width: auto;
 
 			.modal-content {
@@ -251,7 +249,7 @@
 		}
 	}
 
-	@media (max-width: @screen-xs) {
+	@media (max-width: var(--md-width)) {
 		.amount-row h3 {
 			font-size: 15px;
 		}
@@ -271,7 +269,7 @@
 	}
 
 	.selected-payment-mode {
-		background-color: @light-bg;
+		background-color: var(--bg-color);
 		cursor: pointer;
 	}
 
@@ -291,7 +289,7 @@
 		padding: 9px 15px;
 		font-size: 12px;
 		margin: 0px;
-		border-bottom: 1px solid @border-color;
+		border-bottom: 1px solid var(--border-color);
 
 		.cell {
 			display: table-cell;
@@ -313,17 +311,17 @@
 
 	.pos-bill-header {
 		background-color: #f5f7fa;
-		border: 1px solid @border-color;
+		border: 1px solid var(--border-color);
 		padding: 13px 15px;
 	}
 
 	.pos-list-row.active {
-		background-color: @light-yellow;
+		background-color: var(--fg-hover-color);
 	}
 
 	.totals-area {
-		border-right: 1px solid @border-color;
-		border-left: 1px solid @border-color;
+		border-right: 1px solid var(--border-color);
+		border-left: 1px solid var(--border-color);
 		margin-bottom: 15px;
 	}
 
@@ -332,12 +330,12 @@
 	}
 
 	.item-cart-items {
-		height: ~"calc(100vh - 526px)";
+		height: calc(100vh - 526px);
 		overflow: auto;
-		border: 1px solid @border-color;
+		border: 1px solid var(--border-color);
 		border-top: none;
 
-		@media (max-width: @screen-xs) {
+		@media (max-width: var(--md-width)) {
 			height: 30vh;
 		}
 	}
@@ -359,12 +357,12 @@
 	}
 
 	.item-list {
-		border: 1px solid @border-color;
+		border: 1px solid var(--border-color);
 		border-top: none;
-		max-height: ~"calc(100vh - 190px)";
+		max-height: calc(100vh - 190px);
 		overflow: auto;
 
-		@media (max-width: @screen-xs) {
+		@media (max-width: var(--md-width)) {
 			max-height: initial;
 		}
 
@@ -402,7 +400,7 @@
 		&> .pos-list-row {
 			border: none;
 
-			@media (max-width: @screen-md) {
+			@media (max-width: var(--xl-width)) {
 				padding: 5px 15px;
 			}
 		}
@@ -420,7 +418,7 @@
 		justify-content: center;
 		align-items: center;
 		cursor: pointer;
-		background-color: @light-bg;
+		background-color: var(--bg-color);
 		min-height: 200px;
 	}
 
@@ -428,7 +426,7 @@
 		cursor: pointer;
 	}
 
-	@media (max-width: @screen-xs) {
+	@media (max-width: var(--md-width)) {
 		.page-actions {
 			max-width: 110px;
 		}
@@ -491,4 +489,4 @@
 
 .exercise-col {
 	padding: 10px;
-}
\ No newline at end of file
+}
diff --git a/erpnext/public/scss/erpnext_email.bundle.scss b/erpnext/public/scss/erpnext_email.bundle.scss
new file mode 100644
index 0000000..d94e74a
--- /dev/null
+++ b/erpnext/public/scss/erpnext_email.bundle.scss
@@ -0,0 +1,30 @@
+.panel-header {
+	background-color: var(--bg-color);
+	border: 1px solid var(--border-color);
+	border-radius: 3px 3px 0 0;
+}
+
+.panel-body {
+	background-color: white;
+	border: 1px solid var(--border-color);
+	border-top: none;
+	border-radius: 0 0 3px 3px;
+	overflow-wrap: break-word;
+}
+
+.sender-avatar {
+	width: 24px;
+	height: 24px;
+	border-radius: 3px;
+	vertical-align: middle;
+}
+
+.sender-avatar-placeholder {
+	@extend .sender-avatar;
+
+	line-height: 24px;
+	text-align: center;
+	color: var(--border-color);
+	border: 1px solid var(--border-color);
+	background-color: white;
+}
diff --git a/erpnext/quality_management/workspace/quality/quality.json b/erpnext/quality_management/workspace/quality/quality.json
index e5fef43..4dc8129 100644
--- a/erpnext/quality_management/workspace/quality/quality.json
+++ b/erpnext/quality_management/workspace/quality/quality.json
@@ -1,22 +1,27 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Quality Goal\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Quality Procedure\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Quality Inspection\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Quality Review\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Quality Action\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Non Conformance\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Goal and Procedure\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Feedback\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Meeting\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Review and Action\", \"col\": 4}}]",
  "creation": "2020-03-02 15:49:28.632014",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "quality",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Quality",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Goal and Procedure",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -25,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Goal",
+   "link_count": 0,
    "link_to": "Quality Goal",
    "link_type": "DocType",
    "onboard": 1,
@@ -35,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Procedure",
+   "link_count": 0,
    "link_to": "Quality Procedure",
    "link_type": "DocType",
    "onboard": 1,
@@ -45,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tree of Procedures",
+   "link_count": 0,
    "link_to": "Quality Procedure",
    "link_type": "DocType",
    "onboard": 0,
@@ -54,6 +62,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Feedback",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -62,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Feedback",
+   "link_count": 0,
    "link_to": "Quality Feedback",
    "link_type": "DocType",
    "onboard": 1,
@@ -72,6 +82,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Feedback Template",
+   "link_count": 0,
    "link_to": "Quality Feedback Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +92,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Meeting",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -89,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Meeting",
+   "link_count": 0,
    "link_to": "Quality Meeting",
    "link_type": "DocType",
    "onboard": 0,
@@ -98,6 +111,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Review and Action",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -106,6 +120,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Non Conformance",
+   "link_count": 0,
    "link_to": "Non Conformance",
    "link_type": "DocType",
    "onboard": 0,
@@ -116,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Review",
+   "link_count": 0,
    "link_to": "Quality Review",
    "link_type": "DocType",
    "onboard": 0,
@@ -126,19 +142,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Action",
+   "link_count": 0,
    "link_to": "Quality Action",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:35.120213",
+ "modified": "2021-08-05 12:16:01.699912",
  "modified_by": "Administrator",
  "module": "Quality Management",
  "name": "Quality",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 21,
  "shortcuts": [
   {
    "color": "Grey",
@@ -186,5 +209,6 @@
    "stats_filter": "{\"status\": \"Open\"}",
    "type": "DocType"
   }
- ]
+ ],
+ "title": "Quality"
 }
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_settings/__init__.py b/erpnext/regional/doctype/south_africa_vat_settings/__init__.py
similarity index 100%
rename from erpnext/erpnext_integrations/doctype/shopify_settings/__init__.py
rename to erpnext/regional/doctype/south_africa_vat_settings/__init__.py
diff --git a/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.js b/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.js
new file mode 100644
index 0000000..e37a61a
--- /dev/null
+++ b/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.js
@@ -0,0 +1,23 @@
+// Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+
+frappe.ui.form.on('South Africa VAT Settings', {
+	refresh: function(frm) {
+		frm.set_query("company", function() {
+			return {
+				filters: {
+					country: "South Africa",
+				}
+			};
+		});
+		frm.set_query("account", "vat_accounts", function() {
+			return {
+				filters: {
+					company: frm.doc.company,
+					account_type: "Tax",
+					is_group: 0
+				}
+			};
+		});
+	}
+});
diff --git a/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.json b/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.json
new file mode 100644
index 0000000..8a51829
--- /dev/null
+++ b/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.json
@@ -0,0 +1,76 @@
+{
+ "actions": [],
+ "autoname": "field:company",
+ "creation": "2021-07-08 22:34:33.668015",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+  "company",
+  "vat_accounts"
+ ],
+ "fields": [
+  {
+   "fieldname": "company",
+   "fieldtype": "Link",
+   "in_list_view": 1,
+   "label": "Company",
+   "options": "Company",
+   "reqd": 1,
+   "unique": 1
+  },
+  {
+   "fieldname": "vat_accounts",
+   "fieldtype": "Table",
+   "label": "VAT Accounts",
+   "options": "South Africa VAT Account",
+   "reqd": 1
+  }
+ ],
+ "index_web_pages_for_search": 1,
+ "links": [],
+ "modified": "2021-07-14 02:17:52.476762",
+ "modified_by": "Administrator",
+ "module": "Regional",
+ "name": "South Africa VAT Settings",
+ "owner": "Administrator",
+ "permissions": [
+  {
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Accounts Manager",
+   "share": 1,
+   "write": 1
+  },
+  {
+   "create": 1,
+   "delete": 1,
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Accounts User",
+   "share": 1,
+   "write": 1
+  },
+  {
+   "email": 1,
+   "export": 1,
+   "print": 1,
+   "read": 1,
+   "report": 1,
+   "role": "Auditor",
+   "share": 1
+  }
+ ],
+ "quick_entry": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "track_changes": 1
+}
\ No newline at end of file
diff --git a/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.py b/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.py
new file mode 100644
index 0000000..d74154b
--- /dev/null
+++ b/erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.py
@@ -0,0 +1,8 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+# import frappe
+from frappe.model.document import Document
+
+class SouthAfricaVATSettings(Document):
+	pass
diff --git a/erpnext/regional/doctype/south_africa_vat_settings/test_south_africa_vat_settings.py b/erpnext/regional/doctype/south_africa_vat_settings/test_south_africa_vat_settings.py
new file mode 100644
index 0000000..1c36652
--- /dev/null
+++ b/erpnext/regional/doctype/south_africa_vat_settings/test_south_africa_vat_settings.py
@@ -0,0 +1,8 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and Contributors
+# See license.txt
+
+# import frappe
+import unittest
+
+class TestSouthAfricaVATSettings(unittest.TestCase):
+	pass
diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py
index 2373512..fa7e88d 100644
--- a/erpnext/regional/india/e_invoice/utils.py
+++ b/erpnext/regional/india/e_invoice/utils.py
@@ -387,13 +387,16 @@
 	if abs(flt(value_details['AssVal']) - total_item_ass_value) > 1:
 		frappe.throw(_('Total Taxable Value of the items is not equal to the Invoice Net Total. Please check item taxes / discounts for any correction.'))
 
-	if abs(flt(value_details['TotInvVal']) + flt(value_details['Discount']) - flt(value_details['OthChrg']) - total_item_value) > 1:
+	if abs(
+		flt(value_details['TotInvVal']) + flt(value_details['Discount']) - 
+		flt(value_details['OthChrg']) - flt(value_details['RndOffAmt']) -
+		total_item_value) > 1:
 		frappe.throw(_('Total Value of the items is not equal to the Invoice Grand Total. Please check item taxes / discounts for any correction.'))
 
 	calculated_invoice_value = \
 			flt(value_details['AssVal']) + flt(value_details['CgstVal']) \
 			+ flt(value_details['SgstVal']) + flt(value_details['IgstVal']) \
-			+ flt(value_details['OthChrg']) - flt(value_details['Discount'])
+			+ flt(value_details['OthChrg']) + flt(value_details['RndOffAmt']) - flt(value_details['Discount'])
 
 	if abs(flt(value_details['TotInvVal']) - calculated_invoice_value) > 1:
 		frappe.throw(_('Total Item Value + Taxes - Discount is not equal to the Invoice Grand Total. Please check taxes / discounts for any correction.'))
@@ -927,7 +930,7 @@
 
 	def set_einvoice_data(self, res):
 		enc_signed_invoice = res.get('SignedInvoice')
-		dec_signed_invoice = jwt.decode(enc_signed_invoice, verify=False)['data']
+		dec_signed_invoice = jwt.decode(enc_signed_invoice, options={"verify_signature": False})['data']
 
 		self.invoice.irn = res.get('Irn')
 		self.invoice.ewaybill = res.get('EwbNo')
@@ -1125,4 +1128,4 @@
 def job_already_enqueued(job_name):
 	enqueued_jobs = [d.get("job_name") for d in get_info()]
 	if job_name in enqueued_jobs:
-		return True
\ No newline at end of file
+		return True
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/__init__.py b/erpnext/regional/report/vat_audit_report/__init__.py
similarity index 100%
copy from erpnext/erpnext_integrations/doctype/shopify_log/__init__.py
copy to erpnext/regional/report/vat_audit_report/__init__.py
diff --git a/erpnext/regional/report/vat_audit_report/vat_audit_report.js b/erpnext/regional/report/vat_audit_report/vat_audit_report.js
new file mode 100644
index 0000000..39ef9b5
--- /dev/null
+++ b/erpnext/regional/report/vat_audit_report/vat_audit_report.js
@@ -0,0 +1,31 @@
+// Copyright (c) 2016, Frappe Technologies Pvt. Ltd. and contributors
+// For license information, please see license.txt
+/* eslint-disable */
+
+frappe.query_reports["VAT Audit Report"] = {
+	"filters": [
+		{
+			"fieldname": "company",
+			"label": __("Company"),
+			"fieldtype": "Link",
+			"options": "Company",
+			"reqd": 1,
+			"default": frappe.defaults.get_user_default("Company")
+		},
+		{
+			"fieldname": "from_date",
+			"label": __("From Date"),
+			"fieldtype": "Date",
+			"reqd": 1,
+			"default": frappe.datetime.add_months(frappe.datetime.get_today(), -2),
+			"width": "80"
+		},
+		{
+			"fieldname": "to_date",
+			"label": __("To Date"),
+			"fieldtype": "Date",
+			"reqd": 1,
+			"default": frappe.datetime.get_today()
+		}
+	]
+};
diff --git a/erpnext/regional/report/vat_audit_report/vat_audit_report.json b/erpnext/regional/report/vat_audit_report/vat_audit_report.json
new file mode 100644
index 0000000..a8be7bf
--- /dev/null
+++ b/erpnext/regional/report/vat_audit_report/vat_audit_report.json
@@ -0,0 +1,22 @@
+{
+ "add_total_row": 0,
+ "columns": [],
+ "creation": "2021-07-09 11:07:43.473518",
+ "disable_prepared_report": 0,
+ "disabled": 0,
+ "docstatus": 0,
+ "doctype": "Report",
+ "filters": [],
+ "idx": 0,
+ "is_standard": "Yes",
+ "modified": "2021-07-09 11:07:43.473518",
+ "modified_by": "Administrator",
+ "module": "Regional",
+ "name": "VAT Audit Report",
+ "owner": "Administrator",
+ "prepared_report": 0,
+ "ref_doctype": "GL Entry",
+ "report_name": "VAT Audit Report",
+ "report_type": "Script Report",
+ "roles": []
+}
\ No newline at end of file
diff --git a/erpnext/regional/report/vat_audit_report/vat_audit_report.py b/erpnext/regional/report/vat_audit_report/vat_audit_report.py
new file mode 100644
index 0000000..292605e
--- /dev/null
+++ b/erpnext/regional/report/vat_audit_report/vat_audit_report.py
@@ -0,0 +1,269 @@
+# Copyright (c) 2013, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+from __future__ import unicode_literals
+import frappe
+import json
+from frappe import _
+from frappe.utils import formatdate
+
+def execute(filters=None):
+	return VATAuditReport(filters).run()
+
+class VATAuditReport(object):
+
+	def __init__(self, filters=None):
+		self.filters = frappe._dict(filters or {})
+		self.columns = []
+		self.data = []
+		self.doctypes = ["Purchase Invoice", "Sales Invoice"]
+
+	def run(self):
+		self.get_sa_vat_accounts()
+		self.get_columns()
+		for doctype in self.doctypes:
+			self.select_columns = """
+			name as voucher_no,
+			posting_date, remarks"""
+			columns = ", supplier as party, credit_to as account" if doctype=="Purchase Invoice" \
+				else ", customer as party, debit_to as account"
+			self.select_columns += columns
+
+			self.get_invoice_data(doctype)
+
+			if self.invoices:
+				self.get_invoice_items(doctype)
+				self.get_items_based_on_tax_rate(doctype)
+				self.get_data(doctype)
+
+		return self.columns, self.data
+
+	def get_sa_vat_accounts(self):
+		self.sa_vat_accounts = frappe.get_list("South Africa VAT Account",
+			filters = {"parent": self.filters.company}, pluck="account")
+		if not self.sa_vat_accounts and not frappe.flags.in_test and not frappe.flags.in_migrate:
+			frappe.throw(_("Please set VAT Accounts in South Africa VAT Settings"))
+
+	def get_invoice_data(self, doctype):
+		conditions = self.get_conditions()
+		self.invoices = frappe._dict()
+
+		invoice_data = frappe.db.sql("""
+			SELECT
+				{select_columns}
+			FROM
+				`tab{doctype}`
+			WHERE
+				docstatus = 1 {where_conditions}
+				and is_opening = "No"
+			ORDER BY
+				posting_date DESC
+			""".format(select_columns=self.select_columns, doctype=doctype,
+				where_conditions=conditions), self.filters, as_dict=1)
+
+		for d in invoice_data:
+			self.invoices.setdefault(d.voucher_no, d)
+
+	def get_invoice_items(self, doctype):
+		self.invoice_items = frappe._dict()
+
+		items = frappe.db.sql("""
+			SELECT
+				item_code, parent, taxable_value, base_net_amount, is_zero_rated
+			FROM
+				`tab%s Item`
+			WHERE
+				parent in (%s)
+			""" % (doctype, ", ".join(["%s"]*len(self.invoices))), tuple(self.invoices), as_dict=1)
+		for d in items:
+			if d.item_code not in self.invoice_items.get(d.parent, {}):
+				self.invoice_items.setdefault(d.parent, {}).setdefault(d.item_code, {
+					'net_amount': 0.0})
+				self.invoice_items[d.parent][d.item_code]['net_amount'] += d.get('taxable_value', 0) or d.get('base_net_amount', 0)
+				self.invoice_items[d.parent][d.item_code]['is_zero_rated'] = d.is_zero_rated
+
+	def get_items_based_on_tax_rate(self, doctype):
+		self.items_based_on_tax_rate = frappe._dict()
+		self.item_tax_rate = frappe._dict()
+		self.tax_doctype = "Purchase Taxes and Charges" if doctype=="Purchase Invoice" \
+			else "Sales Taxes and Charges"
+
+		self.tax_details = frappe.db.sql("""
+			SELECT
+				parent, account_head, item_wise_tax_detail, base_tax_amount_after_discount_amount
+			FROM
+				`tab%s`
+			WHERE
+				parenttype = %s and docstatus = 1
+				and parent in (%s)
+			ORDER BY
+				account_head
+			""" % (self.tax_doctype, "%s", ", ".join(["%s"]*len(self.invoices.keys()))),
+			tuple([doctype] + list(self.invoices.keys())))
+
+		for parent, account, item_wise_tax_detail, tax_amount in self.tax_details:
+			if item_wise_tax_detail:
+				try:
+					if account in self.sa_vat_accounts:
+						item_wise_tax_detail = json.loads(item_wise_tax_detail)
+					else:
+						continue
+					for item_code, taxes in item_wise_tax_detail.items():
+						is_zero_rated = self.invoice_items.get(parent).get(item_code).get("is_zero_rated")
+						#to skip items with non-zero tax rate in multiple rows
+						if taxes[0] == 0 and not is_zero_rated:
+							continue
+						tax_rate, item_amount_map = self.get_item_amount_map(parent, item_code, taxes)
+
+						if tax_rate is not None:
+							rate_based_dict = self.items_based_on_tax_rate.setdefault(parent, {}) \
+								.setdefault(tax_rate, [])
+							if item_code not in rate_based_dict:
+								rate_based_dict.append(item_code)
+				except ValueError:
+					continue
+
+	def get_item_amount_map(self, parent, item_code, taxes):
+		net_amount = self.invoice_items.get(parent).get(item_code).get("net_amount")
+		tax_rate = taxes[0]
+		tax_amount = taxes[1]
+		gross_amount = net_amount + tax_amount
+		item_amount_map = self.item_tax_rate.setdefault(parent, {}) \
+			.setdefault(item_code, [])
+		amount_dict = {
+			"tax_rate": tax_rate,
+			"gross_amount": gross_amount,
+			"tax_amount": tax_amount,
+			"net_amount": net_amount
+		}
+		item_amount_map.append(amount_dict)
+
+		return tax_rate, item_amount_map
+
+	def get_conditions(self):
+		conditions = ""
+		for opts in (("company", " and company=%(company)s"),
+			("from_date", " and posting_date>=%(from_date)s"),
+			("to_date", " and posting_date<=%(to_date)s")):
+			if self.filters.get(opts[0]):
+				conditions += opts[1]
+
+		return conditions
+
+	def get_data(self, doctype):
+		consolidated_data = self.get_consolidated_data(doctype)
+		section_name = _("Purchases") if doctype == "Purchase Invoice" else _("Sales")
+
+		for rate, section in consolidated_data.items():
+			rate = int(rate)
+			label = frappe.bold(section_name + "- " + "Rate" + " " + str(rate) + "%")
+			section_head = {"posting_date": label}
+			total_gross = total_tax = total_net = 0
+			self.data.append(section_head)
+			for row in section.get("data"):
+				self.data.append(row)
+				total_gross += row["gross_amount"]
+				total_tax += row["tax_amount"]
+				total_net += row["net_amount"]
+
+			total = {
+				"posting_date": frappe.bold(_("Total")),
+				"gross_amount": total_gross,
+				"tax_amount": total_tax,
+				"net_amount": total_net,
+				"bold":1
+			}
+			self.data.append(total)
+			self.data.append({})
+
+	def get_consolidated_data(self, doctype):
+		consolidated_data_map={}
+		for inv, inv_data in self.invoices.items():
+			if self.items_based_on_tax_rate.get(inv):
+				for rate, items in self.items_based_on_tax_rate.get(inv).items():
+					consolidated_data_map.setdefault(rate, {"data": []})
+					for item in items:
+						row = {}
+						item_details = self.item_tax_rate.get(inv).get(item)
+						row["account"] = inv_data.get("account")
+						row["posting_date"] = formatdate(inv_data.get("posting_date"), "dd-mm-yyyy")
+						row["voucher_type"] = doctype
+						row["voucher_no"] = inv
+						row["party_type"] = "Customer" if doctype == "Sales Invoice" else "Supplier" 
+						row["party"] = inv_data.get("party")
+						row["remarks"] = inv_data.get("remarks")
+						row["gross_amount"]= item_details[0].get("gross_amount")
+						row["tax_amount"]= item_details[0].get("tax_amount")
+						row["net_amount"]= item_details[0].get("net_amount")
+						consolidated_data_map[rate]["data"].append(row)
+
+		return consolidated_data_map
+
+	def get_columns(self):
+		self.columns = [
+			{
+				"fieldname": "posting_date",
+				"label": "Posting Date",
+				"fieldtype": "Data",
+				"width": 200
+			},
+			{
+				"fieldname": "account",
+				"label": "Account",
+				"fieldtype": "Link",
+				"options": "Account",
+				"width": 150
+			},
+			{
+				"fieldname": "voucher_type",
+				"label": "Voucher Type",
+				"fieldtype": "Data",
+				"width": 140,
+				"hidden": 1
+			},
+			{
+				"fieldname": "voucher_no",
+				"label": "Reference",
+				"fieldtype": "Dynamic Link",
+				"options": "voucher_type",
+				"width": 150
+			},
+			{
+				"fieldname": "party_type",
+				"label": "Party Type",
+				"fieldtype": "Data",
+				"width": 140,
+				"hidden": 1
+			},
+			{
+				"fieldname": "party",
+				"label": "Party",
+				"fieldtype": "Dynamic Link",
+				"options": "party_type",
+				"width": 150
+			},
+			{
+				"fieldname": "remarks",
+				"label": "Details",
+				"fieldtype": "Data",
+				"width": 150
+			},
+			{
+				"fieldname": "net_amount",
+				"label": "Net Amount",
+				"fieldtype": "Currency",
+				"width": 130
+			},
+			{
+				"fieldname": "tax_amount",
+				"label": "Tax Amount",
+				"fieldtype": "Currency",
+				"width": 130
+			},
+			{
+				"fieldname": "gross_amount",
+				"label": "Gross Amount",
+				"fieldtype": "Currency",
+				"width": 130
+			},
+		]
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/__init__.py b/erpnext/regional/south_africa/__init__.py
similarity index 100%
copy from erpnext/erpnext_integrations/doctype/shopify_log/__init__.py
copy to erpnext/regional/south_africa/__init__.py
diff --git a/erpnext/regional/south_africa/setup.py b/erpnext/regional/south_africa/setup.py
new file mode 100644
index 0000000..4657ff8
--- /dev/null
+++ b/erpnext/regional/south_africa/setup.py
@@ -0,0 +1,50 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+
+import frappe
+from frappe.custom.doctype.custom_field.custom_field import create_custom_fields
+from frappe.permissions import add_permission, update_permission_property
+
+def setup(company=None, patch=True):
+	make_custom_fields()
+	add_permissions()
+
+def make_custom_fields(update=True):
+	is_zero_rated = dict(fieldname='is_zero_rated', label='Is Zero Rated',
+		fieldtype='Check', fetch_from='item_code.is_zero_rated',
+		insert_after='description', print_hide=1)
+	custom_fields = {
+		'Item': [
+			dict(fieldname='is_zero_rated', label='Is Zero Rated',
+				fieldtype='Check', insert_after='item_group',
+				print_hide=1)
+		],
+		'Sales Invoice Item': is_zero_rated,
+		'Purchase Invoice Item': is_zero_rated
+	}
+	
+	create_custom_fields(custom_fields, update=update)
+
+def add_permissions():
+	"""Add Permissions for South Africa VAT Settings and South Africa VAT Account
+		and VAT Audit Report"""
+	for doctype in ('South Africa VAT Settings', 'South Africa VAT Account'):
+		add_permission(doctype, 'All', 0)
+		for role in ('Accounts Manager', 'Accounts User', 'System Manager'):
+			add_permission(doctype, role, 0)
+			update_permission_property(doctype, role, 0, 'write', 1)
+			update_permission_property(doctype, role, 0, 'create', 1)
+	
+
+	if not frappe.db.get_value('Custom Role', dict(report="VAT Audit Report")):
+		frappe.get_doc(dict(
+			doctype='Custom Role',
+			report="VAT Audit Report",
+			roles= [
+				dict(role='Accounts User'),
+				dict(role='Accounts Manager'),
+				dict(role='Auditor')
+			]
+		)).insert()
\ No newline at end of file
diff --git a/erpnext/selling/doctype/campaign/README.md b/erpnext/selling/doctype/campaign/README.md
deleted file mode 100644
index a837318..0000000
--- a/erpnext/selling/doctype/campaign/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Sales campaign / promotion, like special discount, exhibition, newsletter etc.
\ No newline at end of file
diff --git a/erpnext/selling/doctype/campaign/__init__.py b/erpnext/selling/doctype/campaign/__init__.py
deleted file mode 100644
index baffc48..0000000
--- a/erpnext/selling/doctype/campaign/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-from __future__ import unicode_literals
diff --git a/erpnext/selling/doctype/campaign/campaign.js b/erpnext/selling/doctype/campaign/campaign.js
deleted file mode 100644
index 72a90d0..0000000
--- a/erpnext/selling/doctype/campaign/campaign.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-// License: GNU General Public License v3. See license.txt
-
-frappe.ui.form.on("Campaign", "refresh", function(frm) {
-	erpnext.toggle_naming_series();
-	if(frm.doc.__islocal) {
-		frm.toggle_display("naming_series", frappe.boot.sysdefaults.campaign_naming_by=="Naming Series");
-	}
-	else{
-		cur_frm.add_custom_button(__("View Leads"), function() {
-			frappe.route_options = {"source": "Campaign","campaign_name": frm.doc.name}
-			frappe.set_route("List", "Lead");
-		}, "fa fa-list", true);
-	}
-})
diff --git a/erpnext/selling/doctype/campaign/campaign_dashboard.py b/erpnext/selling/doctype/campaign/campaign_dashboard.py
deleted file mode 100644
index 3cef560..0000000
--- a/erpnext/selling/doctype/campaign/campaign_dashboard.py
+++ /dev/null
@@ -1,17 +0,0 @@
-from __future__ import unicode_literals
-from frappe import _
-
-def get_data():
-	return {
-		'fieldname': 'campaign_name',
-		'transactions': [
-			{
-				'label': _('Email Campaigns'),
-				'items': ['Email Campaign']
-			},
-			{
-				'label': _('Social Media Campaigns'),
-				'items': ['Social Media Post']
-			}
-		]
-	}
diff --git a/erpnext/selling/doctype/campaign/test_campaign.py b/erpnext/selling/doctype/campaign/test_campaign.py
deleted file mode 100644
index 4d062ff..0000000
--- a/erpnext/selling/doctype/campaign/test_campaign.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-from __future__ import unicode_literals
-
-
-import frappe
-test_records = frappe.get_test_records('Campaign')
\ No newline at end of file
diff --git a/erpnext/selling/doctype/campaign/test_records.json b/erpnext/selling/doctype/campaign/test_records.json
deleted file mode 100644
index 625d3b3..0000000
--- a/erpnext/selling/doctype/campaign/test_records.json
+++ /dev/null
@@ -1,10 +0,0 @@
-[
- {
-  "campaign_name": "_Test Campaign", 
-  "doctype": "Campaign"
- }, 
- {
-  "campaign_name": "_Test Campaign 1", 
-  "doctype": "Campaign"
- }
-]
\ No newline at end of file
diff --git a/erpnext/selling/doctype/customer/customer.py b/erpnext/selling/doctype/customer/customer.py
index 3080997..abf146c 100644
--- a/erpnext/selling/doctype/customer/customer.py
+++ b/erpnext/selling/doctype/customer/customer.py
@@ -174,12 +174,12 @@
 					address.append('links', dict(link_doctype='Customer', link_name=self.name))
 					address.save(ignore_permissions=self.flags.ignore_permissions)
 
-			lead = frappe.db.get_value("Lead", self.lead_name, ["organization_lead", "lead_name", "email_id", "phone", "mobile_no", "gender", "salutation"], as_dict=True)
+			lead = frappe.db.get_value("Lead", self.lead_name, ["company_name", "lead_name", "email_id", "phone", "mobile_no", "gender", "salutation"], as_dict=True)
 
 			if not lead.lead_name:
 				frappe.throw(_("Please mention the Lead Name in Lead {0}").format(self.lead_name))
 
-			if lead.organization_lead:
+			if lead.company_name:
 				contact_names = frappe.get_all('Dynamic Link', filters={
 									"parenttype":"Contact",
 									"link_doctype":"Lead",
diff --git a/erpnext/selling/doctype/installation_note/installation_note.js b/erpnext/selling/doctype/installation_note/installation_note.js
index 7fd0877..27a3b35 100644
--- a/erpnext/selling/doctype/installation_note/installation_note.js
+++ b/erpnext/selling/doctype/installation_note/installation_note.js
@@ -30,8 +30,8 @@
 frappe.provide("erpnext.selling");
 
 // TODO commonify this code
-erpnext.selling.InstallationNote = frappe.ui.form.Controller.extend({
-	refresh: function() {
+erpnext.selling.InstallationNote = class InstallationNote extends frappe.ui.form.Controller {
+	refresh() {
 		var me = this;
 		if (this.frm.doc.docstatus===0) {
 			this.frm.add_custom_button(__('From Delivery Note'),
@@ -54,7 +54,7 @@
 				}, "fa fa-download", "btn-default"
 			);
 		}
-	},
-});
+	}
+};
 
-$.extend(cur_frm.cscript, new erpnext.selling.InstallationNote({frm: cur_frm}));
\ No newline at end of file
+extend_cscript(cur_frm.cscript, new erpnext.selling.InstallationNote({frm: cur_frm}));
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 5a0d9c9..1223449 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -36,13 +36,12 @@
 	}
 });
 
-erpnext.selling.QuotationController = erpnext.selling.SellingController.extend({
-	onload: function(doc, dt, dn) {
+erpnext.selling.QuotationController = class QuotationController extends erpnext.selling.SellingController {
+	onload(doc, dt, dn) {
 		var me = this;
-		this._super(doc, dt, dn);
-
-	},
-	party_name: function() {
+		super.onload(doc, dt, dn);
+	}
+	party_name() {
 		var me = this;
 		erpnext.utils.get_party_details(this.frm, null, null, function() {
 			me.apply_price_list();
@@ -51,11 +50,14 @@
 		if(me.frm.doc.quotation_to=="Lead" && me.frm.doc.party_name) {
 			me.frm.trigger("get_lead_details");
 		}
-	},
-	refresh: function(doc, dt, dn) {
-		this._super(doc, dt, dn);
-		doctype = doc.quotation_to == 'Customer' ? 'Customer':'Lead';
-		frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'party_name', doctype: doctype}
+	}
+	refresh(doc, dt, dn) {
+		super.refresh(doc, dt, dn);
+		frappe.dynamic_link = {
+			doc: this.frm.doc,
+			fieldname: 'party_name',
+			doctype: doc.quotation_to == 'Customer' ? 'Customer' : 'Lead',
+		};
 
 		var me = this;
 
@@ -121,9 +123,9 @@
 
 		this.toggle_reqd_lead_customer();
 
-	},
+	}
 
-	set_dynamic_field_label: function(){
+	set_dynamic_field_label(){
 		if (this.frm.doc.quotation_to == "Customer")
 		{
 			this.frm.set_df_property("party_name", "label", "Customer");
@@ -138,22 +140,22 @@
 				return{	query: "erpnext.controllers.queries.lead_query" }
 			}
 		}
-	},
+	}
 
-	toggle_reqd_lead_customer: function() {
+	toggle_reqd_lead_customer() {
 		var me = this;
 
 		// to overwrite the customer_filter trigger from queries.js
 		this.frm.toggle_reqd("party_name", this.frm.doc.quotation_to);
 		this.frm.set_query('customer_address', this.address_query);
 		this.frm.set_query('shipping_address_name', this.address_query);
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	address_query: function(doc) {
+	address_query(doc) {
 		return {
 			query: 'frappe.contacts.doctype.address.address.address_query',
 			filters: {
@@ -161,20 +163,20 @@
 				link_name: doc.party_name
 			}
 		};
-	},
+	}
 
-	validate_company_and_party: function(party_field) {
+	validate_company_and_party(party_field) {
 		if(!this.frm.doc.quotation_to) {
 			frappe.msgprint(__("Please select a value for {0} quotation_to {1}", [this.frm.doc.doctype, this.frm.doc.name]));
 			return false;
 		} else if (this.frm.doc.quotation_to == "Lead") {
 			return true;
 		} else {
-			return this._super(party_field);
+			return super.validate_company_and_party(party_field);
 		}
-	},
+	}
 
-	get_lead_details: function() {
+	get_lead_details() {
 		var me = this;
 		if(!this.frm.doc.quotation_to === "Lead") {
 			return;
@@ -198,7 +200,7 @@
 			}
 		})
 	}
-});
+};
 
 cur_frm.script_manager.make(erpnext.selling.QuotationController);
 
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index e3b41e6..b42c615 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -102,14 +102,14 @@
 	}
 });
 
-erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend({
-	onload: function(doc, dt, dn) {
-		this._super();
-	},
+erpnext.selling.SalesOrderController = class SalesOrderController extends erpnext.selling.SellingController {
+	onload(doc, dt, dn) {
+		super.onload(doc, dt, dn);
+	}
 
-	refresh: function(doc, dt, dn) {
+	refresh(doc, dt, dn) {
 		var me = this;
-		this._super();
+		super.refresh();
 		let allow_delivery = false;
 
 		if (doc.docstatus==1) {
@@ -241,14 +241,14 @@
 		}
 
 		this.order_type(doc);
-	},
+	}
 
 	create_pick_list() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.create_pick_list",
 			frm: this.frm
 		})
-	},
+	}
 
 	make_work_order() {
 		var me = this;
@@ -343,33 +343,33 @@
 				}
 			}
 		});
-	},
+	}
 
-	order_type: function() {
+	order_type() {
 		this.toggle_delivery_date();
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	make_material_request: function() {
+	make_material_request() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_material_request",
 			frm: this.frm
 		})
-	},
+	}
 
-	skip_delivery_note: function() {
+	skip_delivery_note() {
 		this.toggle_delivery_date();
-	},
+	}
 
-	toggle_delivery_date: function() {
+	toggle_delivery_date() {
 		this.frm.fields_dict.items.grid.toggle_reqd("delivery_date",
 			(this.frm.doc.order_type == "Sales" && !this.frm.doc.skip_delivery_note));
-	},
+	}
 
-	make_raw_material_request: function() {
+	make_raw_material_request() {
 		var me = this;
 		this.frm.call({
 			doc: this.frm.doc,
@@ -390,9 +390,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	make_raw_material_request_dialog: function(r) {
+	make_raw_material_request_dialog(r) {
 		var fields = [
 			{fieldtype:'Check', fieldname:'include_exploded_items',
 				label: __('Include Exploded Items')},
@@ -447,9 +447,9 @@
 			primary_action_label: __('Create')
 		});
 		d.show();
-	},
+	}
 
-	make_delivery_note_based_on_delivery_date: function() {
+	make_delivery_note_based_on_delivery_date() {
 		var me = this;
 
 		var delivery_dates = [];
@@ -509,51 +509,51 @@
 		} else {
 			this.make_delivery_note();
 		}
-	},
+	}
 
-	make_delivery_note: function() {
+	make_delivery_note() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_delivery_note",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_sales_invoice: function() {
+	make_sales_invoice() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_sales_invoice",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_maintenance_schedule: function() {
+	make_maintenance_schedule() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_maintenance_schedule",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_project: function() {
+	make_project() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_project",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_inter_company_order: function() {
+	make_inter_company_order() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_inter_company_purchase_order",
 			frm: this.frm
 		});
-	},
+	}
 
-	make_maintenance_visit: function() {
+	make_maintenance_visit() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.selling.doctype.sales_order.sales_order.make_maintenance_visit",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_purchase_order: function(){
+	make_purchase_order(){
 		let pending_items = this.frm.doc.items.some((item) =>{
 			let pending_qty = flt(item.stock_qty) - flt(item.ordered_qty);
 			return pending_qty > 0;
@@ -690,9 +690,9 @@
 		dialog.get_field("items_for_po").refresh();
 		dialog.wrapper.find('.grid-heading-row .grid-row-check').click();
 		dialog.show();
-	},
+	}
 
-	hold_sales_order: function(){
+	hold_sales_order(){
 		var me = this;
 		var d = new frappe.ui.Dialog({
 			title: __('Reason for Hold'),
@@ -724,11 +724,11 @@
 			}
 		});
 		d.show();
-	},
-	close_sales_order: function(){
+	}
+	close_sales_order(){
 		this.frm.cscript.update_status("Close", "Closed")
-	},
-	update_status: function(label, status){
+	}
+	update_status(label, status){
 		var doc = this.frm.doc;
 		var me = this;
 		frappe.ui.form.is_saving = true;
@@ -743,5 +743,6 @@
 			}
 		});
 	}
-});
-$.extend(cur_frm.cscript, new erpnext.selling.SalesOrderController({frm: cur_frm}));
+};
+
+extend_cscript(cur_frm.cscript, new erpnext.selling.SalesOrderController({frm: cur_frm}));
diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py
index a226da7..a0a21ee 100644
--- a/erpnext/selling/doctype/sales_order/test_sales_order.py
+++ b/erpnext/selling/doctype/sales_order/test_sales_order.py
@@ -673,6 +673,8 @@
 
 		so.cancel()
 
+		dn.load_from_db()
+
 		self.assertRaises(frappe.CancelledLinkError, dn.submit)
 
 	def test_service_type_product_bundle(self):
diff --git a/erpnext/selling/doctype/selling_settings/selling_settings.json b/erpnext/selling/doctype/selling_settings/selling_settings.json
index f01934b..717fd9b 100644
--- a/erpnext/selling/doctype/selling_settings/selling_settings.json
+++ b/erpnext/selling/doctype/selling_settings/selling_settings.json
@@ -6,24 +6,31 @@
  "document_type": "Other",
  "engine": "InnoDB",
  "field_order": [
+  "customer_defaults_section",
   "cust_master_name",
-  "campaign_naming_by",
   "customer_group",
+  "column_break_4",
   "territory",
-  "selling_price_list",
-  "close_opportunity_after_days",
+  "crm_settings_section",
+  "campaign_naming_by",
   "default_valid_till",
-  "column_break_5",
+  "column_break_9",
+  "close_opportunity_after_days",
+  "item_price_settings_section",
+  "selling_price_list",
+  "column_break_15",
+  "maintain_same_sales_rate",
+  "maintain_same_rate_action",
+  "editable_price_list_rate",
+  "validate_selling_price",
+  "sales_transactions_settings_section",
   "so_required",
   "dn_required",
   "sales_update_frequency",
-  "maintain_same_sales_rate",
-  "maintain_same_rate_action",
+  "column_break_5",
   "role_to_override_stop_action",
-  "editable_price_list_rate",
   "allow_multiple_items",
   "allow_against_multiple_purchase_orders",
-  "validate_selling_price",
   "hide_tax_id"
  ],
  "fields": [
@@ -116,7 +123,7 @@
    "default": "0",
    "fieldname": "allow_multiple_items",
    "fieldtype": "Check",
-   "label": "Allow Item to Be Added Multiple Times in a Transaction"
+   "label": "Allow Item to be Added Multiple Times in a Transaction"
   },
   {
    "default": "0",
@@ -142,7 +149,7 @@
    "description": "Configure the action to stop the transaction or just warn if the same rate is not maintained.",
    "fieldname": "maintain_same_rate_action",
    "fieldtype": "Select",
-   "label": "Action If Same Rate is Not Maintained",
+   "label": "Action if Same Rate is Not Maintained",
    "mandatory_depends_on": "maintain_same_sales_rate",
    "options": "Stop\nWarn"
   },
@@ -152,6 +159,38 @@
    "fieldtype": "Link",
    "label": "Role Allowed to Override Stop Action",
    "options": "Role"
+  },
+  {
+   "fieldname": "customer_defaults_section",
+   "fieldtype": "Section Break",
+   "label": "Customer Defaults"
+  },
+  {
+   "fieldname": "column_break_4",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "crm_settings_section",
+   "fieldtype": "Section Break",
+   "label": "CRM Settings"
+  },
+  {
+   "fieldname": "column_break_9",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "item_price_settings_section",
+   "fieldtype": "Section Break",
+   "label": "Item Price Settings"
+  },
+  {
+   "fieldname": "column_break_15",
+   "fieldtype": "Column Break"
+  },
+  {
+   "fieldname": "sales_transactions_settings_section",
+   "fieldtype": "Section Break",
+   "label": "Transaction Settings"
   }
  ],
  "icon": "fa fa-cog",
@@ -159,7 +198,7 @@
  "index_web_pages_for_search": 1,
  "issingle": 1,
  "links": [],
- "modified": "2021-04-04 20:18:12.814624",
+ "modified": "2021-08-06 22:25:50.119458",
  "modified_by": "Administrator",
  "module": "Selling",
  "name": "Selling Settings",
diff --git a/erpnext/selling/doctype/sms_center/sms_center.js b/erpnext/selling/doctype/sms_center/sms_center.js
index dda2803..974cfc7 100644
--- a/erpnext/selling/doctype/sms_center/sms_center.js
+++ b/erpnext/selling/doctype/sms_center/sms_center.js
@@ -1,7 +1,7 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-$.extend(cur_frm.cscript, {
+extend_cscript(cur_frm.cscript, {
 	message: function () {
 		var total_characters = this.frm.doc.message.length;
 		var total_msg = 1;
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js
index e3405e0..6db4150 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.js
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.js
@@ -7,7 +7,7 @@
 		single_column: true
 	});
 
-	frappe.require('assets/js/point-of-sale.min.js', function() {
+	frappe.require('point-of-sale.bundle.js', function() {
 		wrapper.pos = new erpnext.PointOfSale.Controller(wrapper);
 		window.cur_pos = wrapper.pos;
 	});
@@ -19,4 +19,4 @@
 		wrapper.pos.wrapper.html("");
 		wrapper.pos.check_opening_entry();
 	}
-};
\ No newline at end of file
+};
diff --git a/erpnext/selling/page/sales_funnel/sales_funnel.css b/erpnext/selling/page/sales_funnel/sales_funnel.css
index 89e904f..455d37c 100644
--- a/erpnext/selling/page/sales_funnel/sales_funnel.css
+++ b/erpnext/selling/page/sales_funnel/sales_funnel.css
@@ -1,3 +1,4 @@
 .funnel-wrapper {
 	margin: 15px;
+	width: 100%;
 }
\ No newline at end of file
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 0428573..f515baf 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -9,15 +9,15 @@
 cur_frm.email_field = "contact_email";
 
 frappe.provide("erpnext.selling");
-erpnext.selling.SellingController = erpnext.TransactionController.extend({
-	setup: function() {
-		this._super();
+erpnext.selling.SellingController = class SellingController extends erpnext.TransactionController {
+	setup() {
+		super.setup();
 		this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate");
 		this.frm.add_fetch("sales_person", "commission_rate", "commission_rate");
-	},
+	}
 
-	onload: function() {
-		this._super();
+	onload() {
+		super.onload();
 		this.setup_queries();
 		this.frm.set_query('shipping_rule', function() {
 			return {
@@ -26,9 +26,9 @@
 				}
 			};
 		});
-	},
+	}	
 
-	setup_queries: function() {
+	setup_queries() {
 		var me = this;
 
 		$.each([["customer", "customer"],
@@ -81,11 +81,11 @@
 			});
 		}
 
-	},
+	}
 
-	refresh: function() {
-		this._super();
-
+	refresh() {
+		super.refresh();
+		
 		frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
 
 		this.frm.toggle_display("customer_name",
@@ -95,45 +95,49 @@
 			this.frm.toggle_display("packing_list", packing_list_exists ? true : false);
 		}
 		this.toggle_editable_price_list_rate();
-	},
+	}
 
-	customer: function() {
+	customer() {
 		var me = this;
 		erpnext.utils.get_party_details(this.frm, null, null, function() {
 			me.apply_price_list();
 		});
-	},
+	}
 
-	customer_address: function() {
+	customer_address() {
 		erpnext.utils.get_address_display(this.frm, "customer_address");
 		erpnext.utils.set_taxes_from_address(this.frm, "customer_address", "customer_address", "shipping_address_name");
-	},
+	}
 
-	shipping_address_name: function() {
+	shipping_address_name() {
 		erpnext.utils.get_address_display(this.frm, "shipping_address_name", "shipping_address");
 		erpnext.utils.set_taxes_from_address(this.frm, "shipping_address_name", "customer_address", "shipping_address_name");
-	},
+	}
 
-	sales_partner: function() {
+	dispatch_address_name() {
+		erpnext.utils.get_address_display(this.frm, "dispatch_address_name", "dispatch_address");
+	}
+
+	sales_partner() {
 		this.apply_pricing_rule();
-	},
+	}
 
-	campaign: function() {
+	campaign() {
 		this.apply_pricing_rule();
-	},
+	}
 
-	selling_price_list: function() {
+	selling_price_list() {
 		this.apply_price_list();
 		this.set_dynamic_labels();
-	},
+	}
 
-	discount_percentage: function(doc, cdt, cdn) {
+	discount_percentage(doc, cdt, cdn) {
 		var item = frappe.get_doc(cdt, cdn);
 		item.discount_amount = 0.0;
 		this.apply_discount_on_item(doc, cdt, cdn, 'discount_percentage');
-	},
+	}
 
-	discount_amount: function(doc, cdt, cdn) {
+	discount_amount(doc, cdt, cdn) {
 
 		if(doc.name === cdn) {
 			return;
@@ -142,9 +146,9 @@
 		var item = frappe.get_doc(cdt, cdn);
 		item.discount_percentage = 0.0;
 		this.apply_discount_on_item(doc, cdt, cdn, 'discount_amount');
-	},
+	}
 
-	apply_discount_on_item: function(doc, cdt, cdn, field) {
+	apply_discount_on_item(doc, cdt, cdn, field) {
 		var item = frappe.get_doc(cdt, cdn);
 		if(!item.price_list_rate) {
 			item[field] = 0.0;
@@ -152,14 +156,14 @@
 			this.price_list_rate(doc, cdt, cdn);
 		}
 		this.set_gross_profit(item);
-	},
+	}
 
-	commission_rate: function() {
+	commission_rate() {
 		this.calculate_commission();
 		refresh_field("total_commission");
-	},
+	}
 
-	total_commission: function() {
+	total_commission() {
 		if(this.frm.doc.base_net_total) {
 			frappe.model.round_floats_in(this.frm.doc, ["base_net_total", "total_commission"]);
 
@@ -175,9 +179,9 @@
 			this.frm.set_value("commission_rate",
 				flt(this.frm.doc.total_commission * 100.0 / this.frm.doc.base_net_total));
 		}
-	},
+	}
 
-	allocated_percentage: function(doc, cdt, cdn) {
+	allocated_percentage(doc, cdt, cdn) {
 		var sales_person = frappe.get_doc(cdt, cdn);
 		if(sales_person.allocated_percentage) {
 
@@ -193,15 +197,15 @@
 			refresh_field(["allocated_percentage", "allocated_amount", "commission_rate","incentives"], sales_person.name,
 				sales_person.parentfield);
 		}
-	},
+	}
 
-	sales_person: function(doc, cdt, cdn) {
+	sales_person(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		this.calculate_incentive(row);
 		refresh_field("incentives",row.name,row.parentfield);
-	},
+	}
 
-	warehouse: function(doc, cdt, cdn) {
+	warehouse(doc, cdt, cdn) {
 		var me = this;
 		var item = frappe.get_doc(cdt, cdn);
 
@@ -239,18 +243,18 @@
 				});
 			}
 		})
-	},
+	}
 
-	toggle_editable_price_list_rate: function() {
+	toggle_editable_price_list_rate() {
 		var df = frappe.meta.get_docfield(this.frm.doc.doctype + " Item", "price_list_rate", this.frm.doc.name);
 		var editable_price_list_rate = cint(frappe.defaults.get_default("editable_price_list_rate"));
 
 		if(df && editable_price_list_rate) {
 			df.read_only = 0;
 		}
-	},
+	}
 
-	calculate_commission: function() {
+	calculate_commission() {
 		if(this.frm.fields_dict.commission_rate) {
 			if(this.frm.doc.commission_rate > 100) {
 				var msg = __(frappe.meta.get_label(this.frm.doc.doctype, "commission_rate", this.frm.doc.name)) +
@@ -262,9 +266,9 @@
 			this.frm.doc.total_commission = flt(this.frm.doc.base_net_total * this.frm.doc.commission_rate / 100.0,
 				precision("total_commission"));
 		}
-	},
+	}
 
-	calculate_contribution: function() {
+	calculate_contribution() {
 		var me = this;
 		$.each(this.frm.doc.doctype.sales_team || [], function(i, sales_person) {
 			frappe.model.round_floats_in(sales_person);
@@ -274,18 +278,18 @@
 					precision("allocated_amount", sales_person));
 			}
 		});
-	},
+	}
 
-	calculate_incentive: function(row) {
+	calculate_incentive(row) {
 		if(row.allocated_amount)
 		{
 			row.incentives = flt(
 					row.allocated_amount * row.commission_rate / 100.0,
 					precision("incentives", row));
 		}
-	},
+	}
 
-	batch_no: function(doc, cdt, cdn) {
+	batch_no(doc, cdt, cdn) {
 		var me = this;
 		var item = frappe.get_doc(cdt, cdn);
 
@@ -312,14 +316,14 @@
 				});
 			}
 		})
-	},
+	}
 
-	set_dynamic_labels: function() {
-		this._super();
+	set_dynamic_labels() {
+		super.set_dynamic_labels();
 		this.set_product_bundle_help(this.frm.doc);
-	},
+	}
 
-	set_product_bundle_help: function(doc) {
+	set_product_bundle_help(doc) {
 		if(!cur_frm.fields_dict.packing_list) return;
 		if ((doc.packed_items || []).length) {
 			$(cur_frm.fields_dict.packing_list.row.wrapper).toggle(true);
@@ -337,9 +341,9 @@
 			}
 		}
 		refresh_field('product_bundle_help');
-	},
+	}
 
-	company_address: function() {
+	company_address() {
 		var me = this;
 		if(this.frm.doc.company_address) {
 			frappe.call({
@@ -354,42 +358,42 @@
 		} else {
 			this.frm.set_value("company_address_display", "");
 		}
-	},
+	}
 
-	conversion_factor: function(doc, cdt, cdn, dont_fetch_price_list_rate) {
-	    this._super(doc, cdt, cdn, dont_fetch_price_list_rate);
+	conversion_factor(doc, cdt, cdn, dont_fetch_price_list_rate) {
+	    super.conversion_factor(doc, cdt, cdn, dont_fetch_price_list_rate);
 		if(frappe.meta.get_docfield(cdt, "stock_qty", cdn) &&
 			in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
 				if (doc.doctype === 'Sales Invoice' && (!doc.update_stock)) return;
 				this.set_batch_number(cdt, cdn);
 			}
-	},
+	}
 
-	batch_no: function(doc, cdt, cdn) {
-		this._super(doc, cdt, cdn);
-	},
+	batch_no(doc, cdt, cdn) {
+		super.batch_no(doc, cdt, cdn);
+	}
 
-	qty: function(doc, cdt, cdn) {
-		this._super(doc, cdt, cdn);
+	qty(doc, cdt, cdn) {
+		super.qty(doc, cdt, cdn);
 
 		if(in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
 			if (doc.doctype === 'Sales Invoice' && (!doc.update_stock)) return;
 			this.set_batch_number(cdt, cdn);
 		}
-	},
+	}
 
 	/* Determine appropriate batch number and set it in the form.
 	* @param {string} cdt - Document Doctype
 	* @param {string} cdn - Document name
 	*/
-	set_batch_number: function(cdt, cdn) {
+	set_batch_number(cdt, cdn) {
 		const doc = frappe.get_doc(cdt, cdn);
 		if (doc && doc.has_batch_no && doc.warehouse) {
 			this._set_batch_number(doc);
 		}
-	},
+	}
 
-	_set_batch_number: function(doc) {
+	_set_batch_number(doc) {
 		let args = {'item_code': doc.item_code, 'warehouse': doc.warehouse, 'qty': flt(doc.qty) * flt(doc.conversion_factor)};
 		if (doc.has_serial_no && doc.serial_no) {
 			args['serial_no'] = doc.serial_no
@@ -406,9 +410,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	update_auto_repeat_reference: function(doc) {
+	update_auto_repeat_reference(doc) {
 		if (doc.auto_repeat) {
 			frappe.call({
 				method:"frappe.automation.doctype.auto_repeat.auto_repeat.update_reference",
@@ -426,7 +430,7 @@
 			})
 		}
 	}
-});
+};
 
 frappe.ui.form.on(cur_frm.doctype,"project", function(frm) {
 	if(in_list(["Delivery Note", "Sales Invoice"], frm.doc.doctype)) {
diff --git a/erpnext/selling/workspace/retail/retail.json b/erpnext/selling/workspace/retail/retail.json
index e20f834..9d2e6ca 100644
--- a/erpnext/selling/workspace/retail/retail.json
+++ b/erpnext/selling/workspace/retail/retail.json
@@ -1,22 +1,27 @@
 {
- "category": "Domains",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Point Of Sale\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings & Configurations\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Loyalty Program\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Opening & Closing\", \"col\": 4}}]",
  "creation": "2020-03-02 17:18:32.505616",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "retail",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Retail",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings & Configurations",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -25,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Point-of-Sale Profile",
+   "link_count": 0,
    "link_to": "POS Profile",
    "link_type": "DocType",
    "onboard": 1,
@@ -35,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "POS Settings",
+   "link_count": 0,
    "link_to": "POS Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -44,6 +51,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loyalty Program",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -52,6 +60,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loyalty Program",
+   "link_count": 0,
    "link_to": "Loyalty Program",
    "link_type": "DocType",
    "onboard": 0,
@@ -62,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Loyalty Point Entry",
+   "link_count": 0,
    "link_to": "Loyalty Point Entry",
    "link_type": "DocType",
    "onboard": 0,
@@ -71,6 +81,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Opening & Closing",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -79,6 +90,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "POS Opening Entry",
+   "link_count": 0,
    "link_to": "POS Opening Entry",
    "link_type": "DocType",
    "onboard": 0,
@@ -89,20 +101,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "POS Closing Entry",
+   "link_count": 0,
    "link_to": "POS Closing Entry",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:36.758038",
+ "modified": "2021-08-05 12:16:01.840988",
  "modified_by": "Administrator",
  "module": "Selling",
  "name": "Retail",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
  "restrict_to_domain": "Retail",
+ "roles": [],
+ "sequence_id": 22,
  "shortcuts": [
   {
    "doc_view": "",
@@ -110,5 +128,6 @@
    "link_to": "point-of-sale",
    "type": "Page"
   }
- ]
+ ],
+ "title": "Retail"
 }
\ No newline at end of file
diff --git a/erpnext/selling/workspace/selling/selling.json b/erpnext/selling/workspace/selling/selling.json
index 879034a..345187f 100644
--- a/erpnext/selling/workspace/selling/selling.json
+++ b/erpnext/selling/workspace/selling/selling.json
@@ -1,5 +1,5 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Sales Order Trends",
@@ -7,22 +7,27 @@
   }
  ],
  "charts_label": "Selling ",
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Selling\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": \"Sales Order Trends\", \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Quick Access\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Item\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Sales Order\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Sales Analytics\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Sales Order Analysis\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Selling\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Items and Pricing\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Key Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Other Reports\", \"col\": 4}}]",
  "creation": "2020-01-28 11:49:12.092882",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
- "hide_custom": 1,
+ "for_user": "",
+ "hide_custom": 0,
  "icon": "sell",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Selling",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Selling",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -31,6 +36,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer",
+   "link_count": 0,
    "link_to": "Customer",
    "link_type": "DocType",
    "onboard": 1,
@@ -41,6 +47,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quotation",
+   "link_count": 0,
    "link_to": "Quotation",
    "link_type": "DocType",
    "onboard": 1,
@@ -51,6 +58,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Order",
+   "link_count": 0,
    "link_to": "Sales Order",
    "link_type": "DocType",
    "onboard": 1,
@@ -61,6 +69,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Invoice",
+   "link_count": 0,
    "link_to": "Sales Invoice",
    "link_type": "DocType",
    "onboard": 1,
@@ -71,6 +80,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Blanket Order",
+   "link_count": 0,
    "link_to": "Blanket Order",
    "link_type": "DocType",
    "onboard": 1,
@@ -81,6 +91,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Partner",
+   "link_count": 0,
    "link_to": "Sales Partner",
    "link_type": "DocType",
    "onboard": 0,
@@ -91,6 +102,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Person",
+   "link_count": 0,
    "link_to": "Sales Person",
    "link_type": "DocType",
    "onboard": 0,
@@ -100,6 +112,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Items and Pricing",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -108,6 +121,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item",
+   "link_count": 0,
    "link_to": "Item",
    "link_type": "DocType",
    "onboard": 1,
@@ -118,6 +132,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Price",
+   "link_count": 0,
    "link_to": "Item Price",
    "link_type": "DocType",
    "onboard": 1,
@@ -128,6 +143,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Price List",
+   "link_count": 0,
    "link_to": "Price List",
    "link_type": "DocType",
    "onboard": 1,
@@ -138,6 +154,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Group",
+   "link_count": 0,
    "link_to": "Item Group",
    "link_type": "DocType",
    "onboard": 1,
@@ -148,6 +165,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Product Bundle",
+   "link_count": 0,
    "link_to": "Product Bundle",
    "link_type": "DocType",
    "onboard": 0,
@@ -158,6 +176,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Promotional Scheme",
+   "link_count": 0,
    "link_to": "Promotional Scheme",
    "link_type": "DocType",
    "onboard": 0,
@@ -168,6 +187,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Pricing Rule",
+   "link_count": 0,
    "link_to": "Pricing Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -178,6 +198,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shipping Rule",
+   "link_count": 0,
    "link_to": "Shipping Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -188,6 +209,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Coupon Code",
+   "link_count": 0,
    "link_to": "Coupon Code",
    "link_type": "DocType",
    "onboard": 0,
@@ -197,6 +219,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -205,6 +228,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Selling Settings",
+   "link_count": 0,
    "link_to": "Selling Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -215,6 +239,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Terms and Conditions Template",
+   "link_count": 0,
    "link_to": "Terms and Conditions",
    "link_type": "DocType",
    "onboard": 1,
@@ -225,6 +250,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Taxes and Charges Template",
+   "link_count": 0,
    "link_to": "Sales Taxes and Charges Template",
    "link_type": "DocType",
    "onboard": 1,
@@ -235,6 +261,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lead Source",
+   "link_count": 0,
    "link_to": "Lead Source",
    "link_type": "DocType",
    "onboard": 0,
@@ -245,6 +272,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer Group",
+   "link_count": 0,
    "link_to": "Customer Group",
    "link_type": "DocType",
    "onboard": 0,
@@ -255,6 +283,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Contact",
+   "link_count": 0,
    "link_to": "Contact",
    "link_type": "DocType",
    "onboard": 0,
@@ -265,6 +294,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Address",
+   "link_count": 0,
    "link_to": "Address",
    "link_type": "DocType",
    "onboard": 0,
@@ -275,6 +305,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Territory",
+   "link_count": 0,
    "link_to": "Territory",
    "link_type": "DocType",
    "onboard": 0,
@@ -285,6 +316,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Campaign",
+   "link_count": 0,
    "link_to": "Campaign",
    "link_type": "DocType",
    "onboard": 0,
@@ -294,6 +326,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Key Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -302,6 +335,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Analytics",
+   "link_count": 0,
    "link_to": "Sales Analytics",
    "link_type": "Report",
    "onboard": 1,
@@ -312,6 +346,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Order Analysis",
+   "link_count": 0,
    "link_to": "Sales Order Analysis",
    "link_type": "Report",
    "onboard": 1,
@@ -322,6 +357,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Sales Funnel",
+   "link_count": 0,
    "link_to": "sales-funnel",
    "link_type": "Page",
    "onboard": 1,
@@ -332,6 +368,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Order Trends",
+   "link_count": 0,
    "link_to": "Sales Order Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -342,6 +379,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Quotation Trends",
+   "link_count": 0,
    "link_to": "Quotation Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -352,6 +390,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Customer Acquisition and Loyalty",
+   "link_count": 0,
    "link_to": "Customer Acquisition and Loyalty",
    "link_type": "Report",
    "onboard": 0,
@@ -362,6 +401,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Inactive Customers",
+   "link_count": 0,
    "link_to": "Inactive Customers",
    "link_type": "Report",
    "onboard": 0,
@@ -372,6 +412,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Person-wise Transaction Summary",
+   "link_count": 0,
    "link_to": "Sales Person-wise Transaction Summary",
    "link_type": "Report",
    "onboard": 0,
@@ -382,6 +423,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item-wise Sales History",
+   "link_count": 0,
    "link_to": "Item-wise Sales History",
    "link_type": "Report",
    "onboard": 0,
@@ -391,6 +433,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Other Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -399,6 +442,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Lead Details",
+   "link_count": 0,
    "link_to": "Lead Details",
    "link_type": "Report",
    "onboard": 0,
@@ -409,6 +453,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Customer Addresses And Contacts",
+   "link_count": 0,
    "link_to": "Address And Contacts",
    "link_type": "Report",
    "onboard": 0,
@@ -419,6 +464,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Available Stock for Packing Items",
+   "link_count": 0,
    "link_to": "Available Stock for Packing Items",
    "link_type": "Report",
    "onboard": 0,
@@ -429,6 +475,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Pending SO Items For Purchase Request",
+   "link_count": 0,
    "link_to": "Pending SO Items For Purchase Request",
    "link_type": "Report",
    "onboard": 0,
@@ -439,6 +486,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Delivery Note Trends",
+   "link_count": 0,
    "link_to": "Delivery Note Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -449,6 +497,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Invoice Trends",
+   "link_count": 0,
    "link_to": "Sales Invoice Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -459,6 +508,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Customer Credit Balance",
+   "link_count": 0,
    "link_to": "Customer Credit Balance",
    "link_type": "Report",
    "onboard": 0,
@@ -469,6 +519,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Customers Without Any Sales Transactions",
+   "link_count": 0,
    "link_to": "Customers Without Any Sales Transactions",
    "link_type": "Report",
    "onboard": 0,
@@ -479,6 +530,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Partners Commission",
+   "link_count": 0,
    "link_to": "Sales Partners Commission",
    "link_type": "Report",
    "onboard": 0,
@@ -489,6 +541,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Territory Target Variance Based On Item Group",
+   "link_count": 0,
    "link_to": "Territory Target Variance Based On Item Group",
    "link_type": "Report",
    "onboard": 0,
@@ -499,6 +552,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Person Target Variance Based On Item Group",
+   "link_count": 0,
    "link_to": "Sales Person Target Variance Based On Item Group",
    "link_type": "Report",
    "onboard": 0,
@@ -509,20 +563,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Partner Target Variance Based On Item Group",
+   "link_count": 0,
    "link_to": "Sales Partner Target Variance based on Item Group",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:35.971277",
+ "modified": "2021-08-05 12:16:01.990702",
  "modified_by": "Administrator",
  "module": "Selling",
  "name": "Selling",
  "onboarding": "Selling",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 23,
  "shortcuts": [
   {
    "color": "Grey",
@@ -559,5 +619,6 @@
    "type": "Dashboard"
   }
  ],
- "shortcuts_label": "Quick Access"
+ "shortcuts_label": "Quick Access",
+ "title": "Selling"
 }
\ No newline at end of file
diff --git a/erpnext/setup/doctype/currency_exchange/currency_exchange.js b/erpnext/setup/doctype/currency_exchange/currency_exchange.js
index a8ea55c..85036a1 100644
--- a/erpnext/setup/doctype/currency_exchange/currency_exchange.js
+++ b/erpnext/setup/doctype/currency_exchange/currency_exchange.js
@@ -1,30 +1,30 @@
 // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 // License: GNU General Public License v3. See license.txt
 
-$.extend(cur_frm.cscript, {
+extend_cscript(cur_frm.cscript, {
 	onload: function() {
 		if(cur_frm.doc.__islocal) {
 			cur_frm.set_value("to_currency", frappe.defaults.get_global_default("currency"));
 		}
 	},
-	
+
 	refresh: function() {
 		cur_frm.cscript.set_exchange_rate_label();
 	},
-	
+
 	from_currency: function() {
 		cur_frm.cscript.set_exchange_rate_label();
 	},
-	
+
 	to_currency: function() {
 		cur_frm.cscript.set_exchange_rate_label();
 	},
-	
+
 	set_exchange_rate_label: function() {
 		if(cur_frm.doc.from_currency && cur_frm.doc.to_currency) {
 			var default_label = __(frappe.meta.docfield_map[cur_frm.doctype]["exchange_rate"].label);
-			cur_frm.fields_dict.exchange_rate.set_label(default_label + 
+			cur_frm.fields_dict.exchange_rate.set_label(default_label +
 				repl(" (1 %(from_currency)s = [?] %(to_currency)s)", cur_frm.doc));
 		}
 	}
-});
\ No newline at end of file
+});
diff --git a/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py b/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
index c5c01c5..4ff2dd7 100644
--- a/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
+++ b/erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
@@ -62,12 +62,12 @@
 
 		exchange_rate = get_exchange_rate("USD", "INR", "2016-01-30", "for_selling")
 		self.assertEqual(exchange_rate, 62.9)
-		
-		# Exchange rate as on 15th Dec, 2015, should be fetched from fixer.io
+
+		# Exchange rate as on 15th Dec, 2015
 		self.clear_cache()
 		exchange_rate = get_exchange_rate("USD", "INR", "2015-12-15", "for_selling")
 		self.assertFalse(exchange_rate == 60)
-		self.assertEqual(flt(exchange_rate, 3), 66.894)
+		self.assertEqual(flt(exchange_rate, 3), 66.999)
 
 	def test_exchange_rate_strict(self):
 		# strict currency settings
@@ -77,28 +77,17 @@
 		exchange_rate = get_exchange_rate("USD", "INR", "2016-01-01", "for_buying")
 		self.assertEqual(exchange_rate, 60.0)
 
-		# Will fetch from fixer.io
 		self.clear_cache()
 		exchange_rate = get_exchange_rate("USD", "INR", "2016-01-15", "for_buying")
-		self.assertEqual(flt(exchange_rate, 3), 67.79)
+		self.assertEqual(flt(exchange_rate, 3), 67.235)
 
 		exchange_rate = get_exchange_rate("USD", "INR", "2016-01-30", "for_selling")
 		self.assertEqual(exchange_rate, 62.9)
 
-		# Exchange rate as on 15th Dec, 2015, should be fetched from fixer.io
+		# Exchange rate as on 15th Dec, 2015
 		self.clear_cache()
 		exchange_rate = get_exchange_rate("USD", "INR", "2015-12-15", "for_buying")
-		self.assertEqual(flt(exchange_rate, 3), 66.894)
-
-		exchange_rate = get_exchange_rate("INR", "NGN", "2016-01-10", "for_selling")
-		self.assertEqual(exchange_rate, 65.1)
-
-		# NGN is not available on fixer.io so these should return 0
-		exchange_rate = get_exchange_rate("INR", "NGN", "2016-01-09", "for_selling")
-		self.assertEqual(exchange_rate, 0)
-
-		exchange_rate = get_exchange_rate("INR", "NGN", "2016-01-11", "for_selling")
-		self.assertEqual(exchange_rate, 0)
+		self.assertEqual(flt(exchange_rate, 3), 66.999)
 
 	def test_exchange_rate_strict_switched(self):
 		# Start with allow_stale is True
@@ -111,4 +100,4 @@
 		# Will fetch from fixer.io
 		self.clear_cache()
 		exchange_rate = get_exchange_rate("USD", "INR", "2016-01-15", "for_buying")
-		self.assertEqual(flt(exchange_rate, 3), 67.79)
+		self.assertEqual(flt(exchange_rate, 3), 67.235)
diff --git a/erpnext/setup/doctype/item_group/item_group.py b/erpnext/setup/doctype/item_group/item_group.py
index 5fcad00..c46b6cc 100644
--- a/erpnext/setup/doctype/item_group/item_group.py
+++ b/erpnext/setup/doctype/item_group/item_group.py
@@ -8,7 +8,7 @@
 from frappe.utils import nowdate, cint, cstr
 from frappe.utils.nestedset import NestedSet
 from frappe.website.website_generator import WebsiteGenerator
-from frappe.website.render import clear_cache
+from frappe.website.utils import clear_cache
 from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow
 from erpnext.shopping_cart.product_info import set_product_info_for_website
 from erpnext.utilities.product import get_qty_in_stock
diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
index c3db27f..8a49155 100644
--- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
+++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
@@ -31,7 +31,7 @@
 		clear_notifications()
 		self.delete_company_transactions()
 
-	def populate_doctypes_to_be_ignored_table(self):		
+	def populate_doctypes_to_be_ignored_table(self):
 		doctypes_to_be_ignored_list = get_doctypes_to_be_ignored()
 		for doctype in doctypes_to_be_ignored_list:
 			self.append('doctypes_to_be_ignored', {
@@ -74,7 +74,7 @@
 		doctypes_to_be_ignored_list = self.get_doctypes_to_be_ignored_list()
 		docfields = self.get_doctypes_with_company_field(doctypes_to_be_ignored_list)
 
-		tables = self.get_all_child_doctypes()	
+		tables = self.get_all_child_doctypes()
 		for docfield in docfields:
 			if docfield['parent'] != self.doctype:
 				no_of_docs = self.get_number_of_docs_linked_with_specified_company(docfield['parent'], docfield['fieldname'])
@@ -90,7 +90,7 @@
 					naming_series = frappe.db.get_value('DocType', docfield['parent'], 'autoname')
 					if naming_series:
 						if '#' in naming_series:
-							self.update_naming_series(naming_series, docfield['parent'])	
+							self.update_naming_series(naming_series, docfield['parent'])
 
 	def get_doctypes_to_be_ignored_list(self):
 		singles = frappe.get_all('DocType', filters = {'issingle': 1}, pluck = 'name')
@@ -101,9 +101,9 @@
 		return doctypes_to_be_ignored_list
 
 	def get_doctypes_with_company_field(self, doctypes_to_be_ignored_list):
-		docfields = frappe.get_all('DocField', 
+		docfields = frappe.get_all('DocField',
 			filters = {
-				'fieldtype': 'Link', 
+				'fieldtype': 'Link',
 				'options': 'Company',
 				'parent': ['not in', doctypes_to_be_ignored_list]},
 			fields=['parent', 'fieldname'])
@@ -121,7 +121,7 @@
 			self.append('doctypes', {
 				'doctype_name' : doctype,
 				'no_of_docs' : no_of_docs
-			})		
+			})
 
 	def delete_child_tables(self, doctype, company_fieldname):
 		parent_docs_to_be_deleted = frappe.get_all(doctype, {
@@ -129,7 +129,7 @@
 		}, pluck = 'name')
 
 		child_tables = frappe.get_all('DocField', filters = {
-			'fieldtype': 'Table', 
+			'fieldtype': 'Table',
 			'parent': doctype
 		}, pluck = 'options')
 
diff --git a/erpnext/setup/setup_wizard/operations/taxes_setup.py b/erpnext/setup/setup_wizard/operations/taxes_setup.py
index c69f3d0..bacada9 100644
--- a/erpnext/setup/setup_wizard/operations/taxes_setup.py
+++ b/erpnext/setup/setup_wizard/operations/taxes_setup.py
@@ -87,7 +87,7 @@
 
 	if tax_categories:
 		for tax_category in tax_categories:
-			make_tax_catgory(tax_category)
+			make_tax_category(tax_category)
 
 	if sales_tax_templates:
 		for template in sales_tax_templates:
@@ -184,16 +184,6 @@
 	doc.insert(ignore_permissions=True)
 	return doc
 
-def make_tax_category(tax_category):
-	""" Make tax category based on title if not already created """
-	doctype = 'Tax Category'
-	if not frappe.db.exists(doctype, tax_category['title']):
-		tax_category['doctype'] = doctype
-		doc = frappe.get_doc(tax_category)
-		doc.flags.ignore_links = True
-		doc.flags.ignore_validate = True
-		doc.insert(ignore_permissions=True)
-
 def get_or_create_account(company_name, account):
 	"""
 	Check if account already exists. If not, create it.
@@ -285,7 +275,7 @@
 	return tax_group_name
 
 
-def make_tax_catgory(tax_category):
+def make_tax_category(tax_category):
 	doctype = 'Tax Category'
 	if isinstance(tax_category, str):
 		tax_category = {'title': tax_category}
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index 13269a8..e49259e 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -28,21 +28,21 @@
 	from frappe.desk.page.setup_wizard.setup_wizard import setup_complete
 	if not frappe.get_list("Company"):
 		setup_complete({
-			"currency"			:"USD",
-			"full_name"			:"Test User",
-			"company_name"		:"Wind Power LLC",
-			"timezone"			:"America/New_York",
-			"company_abbr"		:"WP",
-			"industry"			:"Manufacturing",
-			"country"			:"United States",
-			"fy_start_date"		:"2011-01-01",
-			"fy_end_date"		:"2011-12-31",
-			"language"			:"english",
-			"company_tagline"	:"Testing",
-			"email"				:"test@erpnext.com",
-			"password"			:"test",
+			"currency"          :"USD",
+			"full_name"         :"Test User",
+			"company_name"      :"Wind Power LLC",
+			"timezone"          :"America/New_York",
+			"company_abbr"      :"WP",
+			"industry"          :"Manufacturing",
+			"country"           :"United States",
+			"fy_start_date"     :"2021-01-01",
+			"fy_end_date"       :"2021-12-31",
+			"language"          :"english",
+			"company_tagline"   :"Testing",
+			"email"             :"test@erpnext.com",
+			"password"          :"test",
 			"chart_of_accounts" : "Standard",
-			"domains"			: ["Manufacturing"],
+			"domains"           : ["Manufacturing"],
 		})
 
 	frappe.db.sql("delete from `tabLeave Allocation`")
@@ -93,21 +93,21 @@
 
 	try:
 		cache = frappe.cache()
-		key = "currency_exchange_rate_{0}:{1}:{2}".format(transaction_date,from_currency, to_currency)
+		key = "currency_exchange_rate_{0}:{1}:{2}".format(transaction_date, from_currency, to_currency)
 		value = cache.get(key)
 
 		if not value:
 			import requests
-			api_url = "https://frankfurter.app/{0}".format(transaction_date)
+			api_url = "https://api.exchangerate.host/convert"
 			response = requests.get(api_url, params={
-				"base": from_currency,
-				"symbols": to_currency
+				"date": transaction_date,
+				"from": from_currency,
+				"to": to_currency
 			})
 			# expire in 6 hours
 			response.raise_for_status()
-			value = response.json()["rates"][to_currency]
-
-			cache.set_value(key, value, expires_in_sec=6 * 60 * 60)
+			value = response.json()["result"]
+			cache.setex(name=key, time=21600, value=flt(value))
 		return flt(value)
 	except:
 		frappe.log_error(title="Get Exchange Rate")
diff --git a/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json b/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json
index 6ca3d63..ef4b050 100644
--- a/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json
+++ b/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json
@@ -1,27 +1,35 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Projects Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Accounts Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Stock Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"HR Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Selling Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Buying Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Support Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Shopping Cart Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Portal Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Manufacturing Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Education Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Hotel Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Healthcare Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Domain Settings\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Products Settings\", \"col\": 4}}]",
  "creation": "2020-03-12 14:47:51.166455",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
- "extends": "Settings",
- "extends_another_page": 1,
+ "extends": "",
+ "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
- "icon": "settings",
+ "icon": "setting",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "ERPNext Settings",
  "links": [],
- "modified": "2021-06-12 01:58:11.399566",
+ "modified": "2021-08-05 12:15:59.052327",
  "modified_by": "Administrator",
  "module": "Setup",
  "name": "ERPNext Settings",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 12,
  "shortcuts": [
   {
    "icon": "project",
@@ -118,5 +126,6 @@
    "link_to": "Products Settings",
    "type": "DocType"
   }
- ]
-}
+ ],
+ "title": "ERPNext Settings"
+}
\ No newline at end of file
diff --git a/erpnext/setup/workspace/home/home.json b/erpnext/setup/workspace/home/home.json
index 1576d5a..cc9569f 100644
--- a/erpnext/setup/workspace/home/home.json
+++ b/erpnext/setup/workspace/home/home.json
@@ -1,23 +1,27 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"level\":4,\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":4}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Customer\",\"col\":4}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Supplier\",\"col\":4}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":4}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Leaderboard\",\"col\":4}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports &amp; Masters\",\"level\":4,\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Accounting\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Stock\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Human Resources\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"CRM\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Data Import and Settings\",\"col\":4}}]",
  "creation": "2020-01-23 13:46:38.833076",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "getting-started",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "Home",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Accounting",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -26,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chart of Accounts",
+   "link_count": 0,
    "link_to": "Account",
    "link_type": "DocType",
    "onboard": 1,
@@ -36,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Company",
+   "link_count": 0,
    "link_to": "Company",
    "link_type": "DocType",
    "onboard": 1,
@@ -46,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer",
+   "link_count": 0,
    "link_to": "Customer",
    "link_type": "DocType",
    "onboard": 1,
@@ -56,6 +63,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Supplier",
+   "link_count": 0,
    "link_to": "Supplier",
    "link_type": "DocType",
    "onboard": 1,
@@ -65,6 +73,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -73,6 +82,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item",
+   "link_count": 0,
    "link_to": "Item",
    "link_type": "DocType",
    "onboard": 1,
@@ -83,6 +93,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Warehouse",
+   "link_count": 0,
    "link_to": "Warehouse",
    "link_type": "DocType",
    "onboard": 1,
@@ -93,6 +104,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Brand",
+   "link_count": 0,
    "link_to": "Brand",
    "link_type": "DocType",
    "onboard": 1,
@@ -103,6 +115,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Unit of Measure (UOM)",
+   "link_count": 0,
    "link_to": "UOM",
    "link_type": "DocType",
    "onboard": 1,
@@ -113,6 +126,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Reconciliation",
+   "link_count": 0,
    "link_to": "Stock Reconciliation",
    "link_type": "DocType",
    "onboard": 1,
@@ -122,6 +136,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Human Resources",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -130,6 +145,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee",
+   "link_count": 0,
    "link_to": "Employee",
    "link_type": "DocType",
    "onboard": 1,
@@ -140,6 +156,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Employee Attendance Tool",
+   "link_count": 0,
    "link_to": "Employee Attendance Tool",
    "link_type": "DocType",
    "onboard": 1,
@@ -150,6 +167,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Salary Structure",
+   "link_count": 0,
    "link_to": "Salary Structure",
    "link_type": "DocType",
    "onboard": 1,
@@ -159,6 +177,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "CRM",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -167,6 +186,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Lead",
+   "link_count": 0,
    "link_to": "Lead",
    "link_type": "DocType",
    "onboard": 1,
@@ -177,6 +197,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customer Group",
+   "link_count": 0,
    "link_to": "Customer Group",
    "link_type": "DocType",
    "onboard": 1,
@@ -187,6 +208,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Territory",
+   "link_count": 0,
    "link_to": "Territory",
    "link_type": "DocType",
    "onboard": 1,
@@ -196,6 +218,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Data Import and Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -204,6 +227,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Import Data",
+   "link_count": 0,
    "link_to": "Data Import",
    "link_type": "DocType",
    "onboard": 1,
@@ -214,6 +238,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Opening Invoice Creation Tool",
+   "link_count": 0,
    "link_to": "Opening Invoice Creation Tool",
    "link_type": "DocType",
    "onboard": 1,
@@ -224,6 +249,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Chart of Accounts Importer",
+   "link_count": 0,
    "link_to": "Chart of Accounts Importer",
    "link_type": "DocType",
    "onboard": 1,
@@ -234,6 +260,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Letter Head",
+   "link_count": 0,
    "link_to": "Letter Head",
    "link_type": "DocType",
    "onboard": 1,
@@ -244,19 +271,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Email Account",
+   "link_count": 0,
    "link_to": "Email Account",
    "link_type": "DocType",
    "onboard": 1,
    "type": "Link"
   }
  ],
- "modified": "2021-04-19 15:48:44.089927",
+ "modified": "2021-08-10 15:33:20.704740",
  "modified_by": "Administrator",
  "module": "Setup",
  "name": "Home",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
- "pin_to_top": 1,
+ "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 1,
  "shortcuts": [
   {
    "label": "Item",
@@ -283,5 +317,6 @@
    "link_to": "leaderboard",
    "type": "Page"
   }
- ]
+ ],
+ "title": "Home"
 }
\ No newline at end of file
diff --git a/erpnext/stock/dashboard/item_dashboard.js b/erpnext/stock/dashboard/item_dashboard.js
index a657ecf..37e9e89 100644
--- a/erpnext/stock/dashboard/item_dashboard.js
+++ b/erpnext/stock/dashboard/item_dashboard.js
@@ -1,11 +1,11 @@
 frappe.provide('erpnext.stock');
 
-erpnext.stock.ItemDashboard = Class.extend({
-	init: function (opts) {
+erpnext.stock.ItemDashboard = class ItemDashboard {
+	constructor(opts) {
 		$.extend(this, opts);
 		this.make();
-	},
-	make: function () {
+	}
+	make() {
 		var me = this;
 		this.start = 0;
 		if (!this.sort_by) {
@@ -79,9 +79,9 @@
 			me.refresh();
 		});
 
-	},
-	refresh: function () {
-		if (this.before_refresh) {
+	}
+	refresh() {
+		if(this.before_refresh) {
 			this.before_refresh();
 		}
 
@@ -104,9 +104,9 @@
 				me.render(r.message);
 			}
 		});
-	},
-	render: function (data) {
-		if (this.start === 0) {
+	}
+	render(data) {
+		if (this.start===0) {
 			this.max_count = 0;
 			this.result.empty();
 		}
@@ -141,11 +141,11 @@
 			$(`<div class='text-muted' style='margin: 20px 5px;'>
 				${message} </div>`).appendTo(this.result);
 		}
-	},
+	}
 
-	get_item_dashboard_data: function (data, max_count, show_item) {
-		if (!max_count) max_count = 0;
-		if (!data) data = [];
+	get_item_dashboard_data(data, max_count, show_item) {
+		if(!max_count) max_count = 0;
+		if(!data) data = [];
 
 		data.forEach(function (d) {
 			d.actual_or_pending = d.projected_qty + d.reserved_qty + d.reserved_qty_for_production + d.reserved_qty_for_sub_contract;
@@ -170,9 +170,9 @@
 			can_write: can_write,
 			show_item: show_item || false
 		};
-	},
+	}
 
-	get_capacity_dashboard_data: function (data) {
+	get_capacity_dashboard_data(data) {
 		if (!data) data = [];
 
 		data.forEach(function (d) {
@@ -189,7 +189,7 @@
 			can_write: can_write,
 		};
 	}
-});
+};
 
 erpnext.stock.move_item = function (item, source, target, actual_qty, rate, callback) {
 	var dialog = new frappe.ui.Dialog({
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 74cb3fc..36dfa6d 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -126,17 +126,17 @@
 	}
 });
 
-erpnext.stock.DeliveryNoteController = erpnext.selling.SellingController.extend({
-	setup: function(doc) {
+erpnext.stock.DeliveryNoteController = class DeliveryNoteController extends erpnext.selling.SellingController {
+	setup(doc) {
 		this.setup_posting_date_time_check();
-		this._super(doc);
+		super.setup(doc);
 		this.frm.make_methods = {
 			'Delivery Trip': this.make_delivery_trip,
 		};
-	},
-	refresh: function(doc, dt, dn) {
+	}
+	refresh(doc, dt, dn) {
 		var me = this;
-		this._super();
+		super.refresh();
 		if ((!doc.is_return) && (doc.status!="Closed" || this.frm.is_new())) {
 			if (this.frm.doc.docstatus===0) {
 				this.frm.add_custom_button(__('Sales Order'),
@@ -234,64 +234,64 @@
 				erpnext.utils.make_subscription(doc.doctype, doc.name)
 			}, __('Create'))
 		}
-	},
+	}
 
-	make_shipment: function() {
+	make_shipment() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_shipment",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_sales_invoice: function() {
+	make_sales_invoice() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_sales_invoice",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_installation_note: function() {
+	make_installation_note() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_installation_note",
 			frm: this.frm
 		});
-	},
+	}
 
-	make_sales_return: function() {
+	make_sales_return() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_sales_return",
 			frm: this.frm
 		})
-	},
+	}
 
-	make_delivery_trip: function() {
+	make_delivery_trip() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.delivery_note.delivery_note.make_delivery_trip",
 			frm: cur_frm
 		})
-	},
+	}
 
-	tc_name: function() {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	items_on_form_rendered: function(doc, grid_row) {
+	items_on_form_rendered(doc, grid_row) {
 		erpnext.setup_serial_or_batch_no();
-	},
+	}
 
-	packed_items_on_form_rendered: function(doc, grid_row) {
+	packed_items_on_form_rendered(doc, grid_row) {
 		erpnext.setup_serial_or_batch_no();
-	},
+	}
 
-	close_delivery_note: function(doc){
+	close_delivery_note(doc){
 		this.update_status("Closed")
-	},
+	}
 
-	reopen_delivery_note : function() {
+	reopen_delivery_note() {
 		this.update_status("Submitted")
-	},
+	}
 
-	update_status: function(status) {
+	update_status(status) {
 		var me = this;
 		frappe.ui.form.is_saving = true;
 		frappe.call({
@@ -305,10 +305,10 @@
 				frappe.ui.form.is_saving = false;
 			}
 		})
-	},
-});
+	}
+};
 
-$.extend(cur_frm.cscript, new erpnext.stock.DeliveryNoteController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.stock.DeliveryNoteController({frm: cur_frm}));
 
 frappe.ui.form.on('Delivery Note', {
 	setup: function(frm) {
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 6c5ef8b..c5bc9f1 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -376,7 +376,7 @@
 
 		// Show Stock Levels only if is_stock_item
 		if (frm.doc.is_stock_item) {
-			frappe.require('assets/js/item-dashboard.min.js', function() {
+			frappe.require('item-dashboard.bundle.js', function() {
 				frm.dashboard.parent.find('.stock-levels').remove();
 				const section = frm.dashboard.add_section('', __("Stock Levels"), 'stock-levels');
 				erpnext.item.item_dashboard = new erpnext.stock.ItemDashboard({
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index 9bf4dbf..614c53a 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -16,7 +16,7 @@
 from frappe.website.doctype.website_slideshow.website_slideshow import \
 	get_slideshow
 
-from frappe.website.render import clear_cache
+from frappe.website.utils import clear_cache
 from frappe.website.website_generator import WebsiteGenerator
 
 
diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py
index 9ec44d2..7a9985d 100644
--- a/erpnext/stock/doctype/item/test_item.py
+++ b/erpnext/stock/doctype/item/test_item.py
@@ -590,8 +590,8 @@
 test_records = frappe.get_test_records('Item')
 
 def create_item(item_code, is_stock_item=1, valuation_rate=0, warehouse="_Test Warehouse - _TC",
-		is_customer_provided_item=None, customer=None, is_purchase_item=None, opening_stock=0,
-		company="_Test Company"):
+		is_customer_provided_item=None, customer=None, is_purchase_item=None, opening_stock=0, is_fixed_asset=0,
+		asset_category=None, company="_Test Company"):
 	if not frappe.db.exists("Item", item_code):
 		item = frappe.new_doc("Item")
 		item.item_code = item_code
@@ -599,6 +599,8 @@
 		item.description = item_code
 		item.item_group = "All Item Groups"
 		item.is_stock_item = is_stock_item
+		item.is_fixed_asset = is_fixed_asset
+		item.asset_category = asset_category
 		item.opening_stock = opening_stock
 		item.valuation_rate = valuation_rate
 		item.is_purchase_item = is_purchase_item
diff --git a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
index 1abbc35..433f78a 100644
--- a/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
+++ b/erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
@@ -5,8 +5,8 @@
 
 frappe.provide("erpnext.stock");
 
-erpnext.stock.LandedCostVoucher = erpnext.stock.StockController.extend({
-	setup: function() {
+erpnext.stock.LandedCostVoucher = class LandedCostVoucher extends erpnext.stock.StockController {
+	setup() {
 		var me = this;
 		this.frm.fields_dict.purchase_receipts.grid.get_field('receipt_document').get_query =
 			function (doc, cdt, cdn) {
@@ -30,9 +30,9 @@
 		this.frm.add_fetch("receipt_document", "supplier", "supplier");
 		this.frm.add_fetch("receipt_document", "posting_date", "posting_date");
 		this.frm.add_fetch("receipt_document", "base_grand_total", "grand_total");
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		var help_content =
 			`<br><br>
 			<table class="table table-bordered" style="background-color: #f9f9f9;">
@@ -67,9 +67,9 @@
 			let company_currency = frappe.get_doc(":Company", this.frm.doc.company).default_currency;
 			this.frm.set_currency_labels(["total_taxes_and_charges"], company_currency);
 		}
-	},
+	}
 
-	get_items_from_purchase_receipts: function() {
+	get_items_from_purchase_receipts() {
 		var me = this;
 		if(!this.frm.doc.purchase_receipts.length) {
 			frappe.msgprint(__("Please enter Purchase Receipt first"));
@@ -82,22 +82,22 @@
 				}
 			});
 		}
-	},
+	}
 
-	amount: function(frm) {
+	amount(frm) {
 		this.set_total_taxes_and_charges();
 		this.set_applicable_charges_for_item();
-	},
+	}
 
-	set_total_taxes_and_charges: function() {
+	set_total_taxes_and_charges() {
 		var total_taxes_and_charges = 0.0;
 		$.each(this.frm.doc.taxes || [], function(i, d) {
 			total_taxes_and_charges += flt(d.base_amount);
 		});
 		this.frm.set_value("total_taxes_and_charges", total_taxes_and_charges);
-	},
+	}
 
-	set_applicable_charges_for_item: function() {
+	set_applicable_charges_for_item() {
 		var me = this;
 
 		if(this.frm.doc.taxes.length) {
@@ -123,15 +123,15 @@
 				refresh_field("items");
 			}
 		}
-	},
-	distribute_charges_based_on: function (frm) {
+	}
+	distribute_charges_based_on (frm) {
 		this.set_applicable_charges_for_item();
-	},
+	}
 
-	items_remove: () => {
+	items_remove() {
 		this.trigger('set_applicable_charges_for_item');
 	}
-});
+};
 
 cur_frm.script_manager.make(erpnext.stock.LandedCostVoucher);
 
diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js
index 6e66f98..5f53be0 100644
--- a/erpnext/stock/doctype/material_request/material_request.js
+++ b/erpnext/stock/doctype/material_request/material_request.js
@@ -408,33 +408,33 @@
 	}
 });
 
-erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.extend({
-	tc_name: function() {
+erpnext.buying.MaterialRequestController = class MaterialRequestController extends erpnext.buying.BuyingController {
+	tc_name() {
 		this.get_terms();
-	},
+	}
 
-	item_code: function() {
+	item_code() {
 		// to override item code trigger from transaction.js
-	},
+	}
 
-	validate_company_and_party: function() {
+	validate_company_and_party() {
 		return true;
-	},
+	}
 
-	calculate_taxes_and_totals: function() {
+	calculate_taxes_and_totals() {
 		return;
-	},
+	}
 
-	validate: function() {
+	validate() {
 		set_schedule_date(this.frm);
-	},
+	}
 
-	onload: function(doc, cdt, cdn) {
+	onload(doc, cdt, cdn) {
 		this.frm.set_query("item_code", "items", function() {
 			if (doc.material_request_type == "Customer Provided") {
 				return{
 					query: "erpnext.controllers.queries.item_query",
-					filters:{ 
+					filters:{
 						'customer': me.frm.doc.customer,
 						'is_stock_item':1
 					}
@@ -451,9 +451,9 @@
 				}
 			}
 		});
-	},
+	}
 
-	items_add: function(doc, cdt, cdn) {
+	items_add(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 		if(doc.schedule_date) {
 			row.schedule_date = doc.schedule_date;
@@ -461,19 +461,19 @@
 		} else {
 			this.frm.script_manager.copy_from_first_row("items", row, ["schedule_date"]);
 		}
-	},
+	}
 
-	items_on_form_rendered: function() {
-		set_schedule_date(this.frm);
-	},
-
-	schedule_date: function() {
+	items_on_form_rendered() {
 		set_schedule_date(this.frm);
 	}
-});
+
+	schedule_date() {
+		set_schedule_date(this.frm);
+	}
+};
 
 // for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.buying.MaterialRequestController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.buying.MaterialRequestController({frm: cur_frm}));
 
 function set_schedule_date(frm) {
 	if(frm.doc.schedule_date){
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index befdad9..0182ed5 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -114,15 +114,15 @@
 	}
 });
 
-erpnext.stock.PurchaseReceiptController = erpnext.buying.BuyingController.extend({
-	setup: function(doc) {
+erpnext.stock.PurchaseReceiptController = class PurchaseReceiptController extends erpnext.buying.BuyingController {
+	setup(doc) {
 		this.setup_posting_date_time_check();
-		this._super(doc);
-	},
+		super.setup(doc);
+	}
 
-	refresh: function() {
+	refresh() {
 		var me = this;
-		this._super();
+		super.refresh();
 		if(this.frm.doc.docstatus > 0) {
 			this.show_stock_ledger();
 			//removed for temporary
@@ -201,31 +201,31 @@
 		}
 
 		this.frm.toggle_reqd("supplier_warehouse", this.frm.doc.is_subcontracted==="Yes");
-	},
+	}
 
-	make_purchase_invoice: function() {
+	make_purchase_invoice() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.purchase_receipt.purchase_receipt.make_purchase_invoice",
 			frm: cur_frm
 		})
-	},
+	}
 
-	make_purchase_return: function() {
+	make_purchase_return() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.stock.doctype.purchase_receipt.purchase_receipt.make_purchase_return",
 			frm: cur_frm
 		})
-	},
+	}
 
-	close_purchase_receipt: function() {
+	close_purchase_receipt() {
 		cur_frm.cscript.update_status("Closed");
-	},
+	}
 
-	reopen_purchase_receipt: function() {
+	reopen_purchase_receipt() {
 		cur_frm.cscript.update_status("Submitted");
-	},
+	}
 
-	make_retention_stock_entry: function() {
+	make_retention_stock_entry() {
 		frappe.call({
 			method: "erpnext.stock.doctype.stock_entry.stock_entry.move_sample_to_retention_warehouse",
 			args:{
@@ -242,16 +242,16 @@
 				}
 			}
 		});
-	},
+	}
 
-	apply_putaway_rule: function() {
+	apply_putaway_rule() {
 		if (this.frm.doc.apply_putaway_rule) erpnext.apply_putaway_rule(this.frm);
 	}
 
-});
+};
 
 // for backward compatibility: combine new and previous states
-$.extend(cur_frm.cscript, new erpnext.stock.PurchaseReceiptController({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.stock.PurchaseReceiptController({frm: cur_frm}));
 
 cur_frm.cscript.update_status = function(status) {
 	frappe.ui.form.is_saving = true;
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
index 4a4514f..ece6d6f 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
@@ -254,6 +254,8 @@
 		return process_gl_map(gl_entries)
 
 	def make_item_gl_entries(self, gl_entries, warehouse_account=None):
+		from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import get_purchase_document_details
+
 		stock_rbnb = self.get_company_default("stock_received_but_not_billed")
 		landed_cost_entries = get_item_account_wise_additional_cost(self.name)
 		expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
@@ -262,6 +264,8 @@
 		warehouse_with_no_account = []
 		stock_items = self.get_stock_items()
 
+		exchange_rate_map, net_rate_map = get_purchase_document_details(self)
+
 		for d in self.get("items"):
 			if d.item_code in stock_items and flt(d.valuation_rate) and flt(d.qty):
 				if warehouse_account.get(d.warehouse):
@@ -320,6 +324,39 @@
 							account_currency=credit_currency,
 							item=d)
 
+						# check if the exchange rate has changed
+						if d.get('purchase_invoice'):
+							if exchange_rate_map[d.purchase_invoice] and \
+								self.conversion_rate != exchange_rate_map[d.purchase_invoice] and \
+								d.net_rate == net_rate_map[d.purchase_invoice_item]:
+
+								discrepancy_caused_by_exchange_rate_difference = (d.qty * d.net_rate) * \
+									(exchange_rate_map[d.purchase_invoice] - self.conversion_rate)
+
+								self.add_gl_entry(
+									gl_entries=gl_entries,
+									account=account,
+									cost_center=d.cost_center,
+									debit=0.0,
+									credit=discrepancy_caused_by_exchange_rate_difference,
+									remarks=remarks,
+									against_account=self.supplier,
+									debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference,
+									account_currency=credit_currency,
+									item=d)
+
+								self.add_gl_entry(
+									gl_entries=gl_entries,
+									account=self.get_company_default("exchange_gain_loss_account"),
+									cost_center=d.cost_center,
+									debit=discrepancy_caused_by_exchange_rate_difference,
+									credit=0.0,
+									remarks=remarks,
+									against_account=self.supplier,
+									debit_in_account_currency=-1 * discrepancy_caused_by_exchange_rate_difference,
+									account_currency=credit_currency,
+									item=d)
+
 					# Amount added through landed-cos-voucher
 					if d.landed_cost_voucher_amount and landed_cost_entries:
 						for account, amount in iteritems(landed_cost_entries[(d.item_code, d.name)]):
@@ -364,7 +401,7 @@
 						if self.is_return or flt(d.item_tax_amount):
 							loss_account = expenses_included_in_valuation
 						else:
-							loss_account = self.get_company_default("default_expense_account")
+							loss_account = self.get_company_default("default_expense_account", ignore_validation=True) or stock_rbnb
 
 						cost_center = d.cost_center or frappe.get_cached_value("Company", self.company, "cost_center")
 
diff --git a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
index 0210702..2314508 100644
--- a/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
+++ b/erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
@@ -759,8 +759,8 @@
 		pr1.items[0].purchase_receipt_item = pr.items[0].name
 		pr1.submit()
 
-		pi = make_purchase_invoice(pr.name)
-		self.assertEqual(pi.items[0].qty, 3)
+		pi1 = make_purchase_invoice(pr.name)
+		self.assertEqual(pi1.items[0].qty, 3)
 
 		pr1.cancel()
 		pr.reload()
@@ -1037,6 +1037,33 @@
 
 		frappe.db.set_value('Company', company, 'enable_perpetual_inventory_for_non_stock_items', before_test_value)
 
+	def test_purchase_receipt_with_exchange_rate_difference(self):
+		from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice as create_purchase_invoice
+		from erpnext.accounts.doctype.purchase_invoice.purchase_invoice import make_purchase_receipt as create_purchase_receipt
+
+		pi = create_purchase_invoice(company="_Test Company with perpetual inventory",
+			cost_center = "Main - TCP1",
+			warehouse = "Stores - TCP1",
+			expense_account ="_Test Account Cost for Goods Sold - TCP1",
+			currency = "USD", conversion_rate = 70)
+
+		pr = create_purchase_receipt(pi.name)
+		pr.conversion_rate = 80
+		pr.items[0].purchase_invoice = pi.name
+		pr.items[0].purchase_invoice_item = pi.items[0].name
+
+		pr.save()
+		pr.submit()
+
+		# Get exchnage gain and loss account
+		exchange_gain_loss_account = frappe.db.get_value('Company', pr.company, 'exchange_gain_loss_account')
+
+		# fetching the latest GL Entry with exchange gain and loss account account
+		amount = frappe.db.get_value('GL Entry', {'account': exchange_gain_loss_account, 'voucher_no': pr.name}, 'credit')
+		discrepancy_caused_by_exchange_rate_diff = abs(pi.items[0].base_net_amount - pr.items[0].base_net_amount)
+
+		self.assertEqual(discrepancy_caused_by_exchange_rate_diff, amount)
+
 	def test_payment_terms_are_fetched_when_creating_purchase_invoice(self):
 		from erpnext.accounts.doctype.payment_entry.test_payment_entry import create_payment_terms_template
 		from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
diff --git a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
index 2e454a5..b22759d 100644
--- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
+++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
@@ -80,8 +80,8 @@
 
 def repost_sl_entries(doc):
 	if doc.based_on == 'Transaction':
-		repost_future_sle(doc=doc, voucher_type=doc.voucher_type, voucher_no=doc.voucher_no,
-			allow_negative_stock=doc.allow_negative_stock, via_landed_cost_voucher=doc.via_landed_cost_voucher)
+		repost_future_sle(voucher_type=doc.voucher_type, voucher_no=doc.voucher_no,
+			allow_negative_stock=doc.allow_negative_stock, via_landed_cost_voucher=doc.via_landed_cost_voucher, doc=doc)
 	else:
 		repost_future_sle(args=[frappe._dict({
 			"item_code": doc.item_code,
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 6708393..908020d 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -793,8 +793,8 @@
 	}
 });
 
-erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
-	setup: function() {
+erpnext.stock.StockEntry = class StockEntry extends erpnext.stock.StockController {
+	setup() {
 		var me = this;
 
 		this.setup_posting_date_time_check();
@@ -841,9 +841,9 @@
 
 		frappe.dynamic_link = { doc: this.frm.doc, fieldname: 'supplier', doctype: 'Supplier' }
 		this.frm.set_query("supplier_address", erpnext.queries.address_query)
-	},
+	}
 
-	onload_post_render: function() {
+	onload_post_render() {
 		var me = this;
 		this.set_default_account(function() {
 			if(me.frm.doc.__islocal && me.frm.doc.company && !me.frm.doc.amended_from) {
@@ -852,9 +852,9 @@
 		});
 
 		this.frm.get_field("items").grid.set_multiple_add("item_code", "qty");
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		var me = this;
 		erpnext.toggle_naming_series();
 		this.toggle_related_fields(this.frm.doc);
@@ -865,22 +865,22 @@
 		}
 		erpnext.hide_company();
 		erpnext.utils.add_item(this.frm);
-	},
+	}
 
-	scan_barcode: function() {
+	scan_barcode() {
 		let transaction_controller= new erpnext.TransactionController({frm:this.frm});
 		transaction_controller.scan_barcode();
-	},
+	}
 
-	on_submit: function() {
+	on_submit() {
 		this.clean_up();
-	},
+	}
 
-	after_cancel: function() {
+	after_cancel() {
 		this.clean_up();
-	},
+	}
 
-	set_default_account: function(callback) {
+	set_default_account(callback) {
 		var me = this;
 
 		if(this.frm.doc.company && erpnext.is_perpetual_inventory_enabled(this.frm.doc.company)) {
@@ -900,9 +900,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	clean_up: function() {
+	clean_up() {
 		// Clear Work Order record from locals, because it is updated via Stock Entry
 		if(this.frm.doc.work_order &&
 			in_list(["Manufacture", "Material Transfer for Manufacture", "Material Consumption for Manufacture"],
@@ -910,13 +910,13 @@
 			frappe.model.remove_from_locals("Work Order",
 				this.frm.doc.work_order);
 		}
-	},
+	}
 
-	fg_completed_qty: function() {
+	fg_completed_qty() {
 		this.get_items();
-	},
+	}
 
-	get_items: function() {
+	get_items() {
 		var me = this;
 		if(!this.frm.doc.fg_completed_qty || !this.frm.doc.bom_no)
 			frappe.throw(__("BOM and Manufacturing Quantity are required"));
@@ -933,9 +933,9 @@
 				}
 			});
 		}
-	},
+	}
 
-	work_order: function() {
+	work_order() {
 		var me = this;
 		this.toggle_enable_bom();
 		if(!me.frm.doc.work_order || me.frm.doc.job_card) {
@@ -968,13 +968,13 @@
 				}
 			}
 		});
-	},
+	}
 
-	toggle_enable_bom: function() {
+	toggle_enable_bom() {
 		this.frm.toggle_enable("bom_no", !!!this.frm.doc.work_order);
-	},
+	}
 
-	add_excise_button: function() {
+	add_excise_button() {
 		if(frappe.boot.sysdefaults.country === "India")
 			this.frm.add_custom_button(__("Excise Invoice"), function() {
 				var excise = frappe.model.make_new_doc_and_get_name('Journal Entry');
@@ -982,9 +982,9 @@
 				excise.voucher_type = 'Excise Entry';
 				frappe.set_route('Form', 'Journal Entry', excise.name);
 			}, __('Create'));
-	},
+	}
 
-	items_add: function(doc, cdt, cdn) {
+	items_add(doc, cdt, cdn) {
 		var row = frappe.get_doc(cdt, cdn);
 
 		if (!(row.expense_account && row.cost_center)) {
@@ -993,27 +993,27 @@
 
 		if(!row.s_warehouse) row.s_warehouse = this.frm.doc.from_warehouse;
 		if(!row.t_warehouse) row.t_warehouse = this.frm.doc.to_warehouse;
-	},
+	}
 
-	from_warehouse: function(doc) {
+	from_warehouse(doc) {
 		this.frm.trigger('set_transit_warehouse');
 		this.set_warehouse_in_children(doc.items, "s_warehouse", doc.from_warehouse);
-	},
+	}
 
-	to_warehouse: function(doc) {
+	to_warehouse(doc) {
 		this.set_warehouse_in_children(doc.items, "t_warehouse", doc.to_warehouse);
-	},
+	}
 
-	set_warehouse_in_children: function(child_table, warehouse_field, warehouse) {
+	set_warehouse_in_children(child_table, warehouse_field, warehouse) {
 		let transaction_controller = new erpnext.TransactionController();
 		transaction_controller.autofill_warehouse(child_table, warehouse_field, warehouse);
-	},
+	}
 
-	items_on_form_rendered: function(doc, grid_row) {
+	items_on_form_rendered(doc, grid_row) {
 		erpnext.setup_serial_or_batch_no();
-	},
+	}
 
-	toggle_related_fields: function(doc) {
+	toggle_related_fields(doc) {
 		this.frm.toggle_enable("from_warehouse", doc.purpose!='Material Receipt');
 		this.frm.toggle_enable("to_warehouse", doc.purpose!='Material Issue');
 
@@ -1040,12 +1040,12 @@
 			doc.purpose!='Material Issue');
 
 		this.frm.fields_dict["items"].grid.set_column_disp("additional_cost", doc.purpose!='Material Issue');
-	},
+	}
 
-	supplier: function(doc) {
+	supplier(doc) {
 		erpnext.utils.get_party_details(this.frm, null, null, null);
 	}
-});
+};
 
 erpnext.stock.select_batch_and_serial_no = (frm, item) => {
 	let get_warehouse_type_and_name = (item) => {
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 3ff42bf..7b31d2f 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -72,7 +72,7 @@
 		self.validate_with_material_request()
 		self.validate_batch()
 		self.validate_inspection()
-		self.validate_fg_completed_qty()
+		# self.validate_fg_completed_qty()
 		self.validate_difference_account()
 		self.set_job_card_data()
 		self.set_purpose_for_stock_entry()
@@ -1185,7 +1185,7 @@
 		wo = frappe.get_doc("Work Order", self.work_order)
 		wo_items = frappe.get_all('Work Order Item',
 			filters={'parent': self.work_order},
-			fields=["item_code", "required_qty", "consumed_qty", "transferred_qty"]
+			fields=["item_code", "source_warehouse", "required_qty", "consumed_qty", "transferred_qty"]
 			)
 
 		work_order_qty = wo.material_transferred_for_manufacturing or wo.qty
@@ -1205,7 +1205,7 @@
 			if qty > 0:
 				self.add_to_stock_entry_detail({
 					item.item_code: {
-						"from_warehouse": wo.wip_warehouse,
+						"from_warehouse": wo.wip_warehouse or item.source_warehouse,
 						"to_warehouse": "",
 						"qty": qty,
 						"item_name": item.item_name,
@@ -1857,4 +1857,4 @@
 
 		supplied_item.total_supplied_qty = flt(supplied_item.supplied_qty) - flt(supplied_item.returned_qty)
 
-	return supplied_item_details
\ No newline at end of file
+	return supplied_item_details
diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
index b4f4583..be1f00e 100644
--- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
+++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
@@ -55,8 +55,8 @@
 				"sum(actual_qty)") or 0
 			frappe.db.set_value("Batch", self.batch_no, "batch_qty", batch_qty)
 
-	#check for item quantity available in stock
 	def actual_amt_check(self):
+		"""Validate that qty at warehouse for selected batch is >=0"""
 		if self.batch_no and not self.get("allow_negative_stock"):
 			batch_bal_after_transaction = flt(frappe.db.sql("""select sum(actual_qty)
 				from `tabStock Ledger Entry`
@@ -107,7 +107,7 @@
 		self.stock_uom = item_det.stock_uom
 
 	def check_stock_frozen_date(self):
-		stock_settings = frappe.get_doc('Stock Settings', 'Stock Settings')
+		stock_settings = frappe.get_cached_doc('Stock Settings')
 
 		if stock_settings.stock_frozen_upto:
 			if (getdate(self.posting_date) <= getdate(stock_settings.stock_frozen_upto)
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
index 349e59f..84f65a0 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
@@ -56,25 +56,40 @@
 	},
 
 	get_items: function(frm) {
-		let fields = [{
-			label: 'Warehouse', fieldname: 'warehouse', fieldtype: 'Link', options: 'Warehouse', reqd: 1,
-			"get_query": function() {
-				return {
-					"filters": {
-						"company": frm.doc.company,
-					}
-				};
+		let fields = [
+			{
+				label: 'Warehouse',
+				fieldname: 'warehouse',
+				fieldtype: 'Link',
+				options: 'Warehouse',
+				reqd: 1,
+				"get_query": function() {
+					return {
+						"filters": {
+							"company": frm.doc.company,
+						}
+					};
+				}
+			},
+			{
+				label: "Item Code",
+				fieldname: "item_code",
+				fieldtype: "Link",
+				options: "Item",
+				"get_query": function() {
+					return {
+						"filters": {
+							"disabled": 0,
+						}
+					};
+				}
+			},
+			{
+				label: __("Ignore Empty Stock"),
+				fieldname: "ignore_empty_stock",
+				fieldtype: "Check"
 			}
-		}, {
-			label: "Item Code", fieldname: "item_code", fieldtype: "Link", options: "Item",
-			"get_query": function() {
-				return {
-					"filters": {
-						"disabled": 0,
-					}
-				};
-			}
-		}];
+		];
 
 		frappe.prompt(fields, function(data) {
 			frappe.call({
@@ -84,22 +99,21 @@
 					posting_date: frm.doc.posting_date,
 					posting_time: frm.doc.posting_time,
 					company: frm.doc.company,
-					item_code: data.item_code
+					item_code: data.item_code,
+					ignore_empty_stock: data.ignore_empty_stock
 				},
 				callback: function(r) {
+					if (r.exc || !r.message || !r.message.length) return;
+
 					frm.clear_table("items");
-					for (var i=0; i<r.message.length; i++) {
-						var d = frm.add_child("items");
-						$.extend(d, r.message[i]);
 
-						if (!d.qty) {
-							d.qty = 0;
-						}
+					r.message.forEach((row) => {
+						let item = frm.add_child("items");
+						$.extend(item, row);
 
-						if (!d.valuation_rate) {
-							d.valuation_rate = 0;
-						}
-					}
+						item.qty = item.qty || 0;
+						item.valuation_rate = item.valuation_rate || 0;
+					});
 					frm.refresh_field("items");
 				}
 			});
@@ -245,8 +259,8 @@
 
 });
 
-erpnext.stock.StockReconciliation = erpnext.stock.StockController.extend({
-	setup: function() {
+erpnext.stock.StockReconciliation = class StockReconciliation extends erpnext.stock.StockController {
+	setup() {
 		var me = this;
 
 		this.setup_posting_date_time_check();
@@ -274,17 +288,17 @@
 				}
 			}
 		}
-	},
+	}
 
-	refresh: function() {
+	refresh() {
 		if(this.frm.doc.docstatus > 0) {
 			this.show_stock_ledger();
 			if (erpnext.is_perpetual_inventory_enabled(this.frm.doc.company)) {
 				this.show_general_ledger();
 			}
 		}
-	},
+	}
 
-});
+};
 
 cur_frm.cscript = new erpnext.stock.StockReconciliation({frm: cur_frm});
diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
index 324bb7a..cda7c1d 100644
--- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
+++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
@@ -472,7 +472,7 @@
 	def submit(self):
 		if len(self.items) > 100:
 			msgprint(_("The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage"))
-			self.queue_action('submit', timeout=2000)
+			self.queue_action('submit', timeout=4600)
 		else:
 			self._submit()
 
@@ -484,7 +484,8 @@
 			self._cancel()
 
 @frappe.whitelist()
-def get_items(warehouse, posting_date, posting_time, company, item_code=None):
+def get_items(warehouse, posting_date, posting_time, company, item_code=None, ignore_empty_stock=False):
+	ignore_empty_stock = cint(ignore_empty_stock)
 	items = [frappe._dict({
 		'item_code': item_code,
 		'warehouse': warehouse
@@ -498,18 +499,24 @@
 
 	for d in items:
 		if d.item_code in itemwise_batch_data:
-			stock_bal = get_stock_balance(d.item_code, d.warehouse,
-				posting_date, posting_time, with_valuation_rate=True)
+			valuation_rate = get_stock_balance(d.item_code, d.warehouse,
+				posting_date, posting_time, with_valuation_rate=True)[1]
 
 			for row in itemwise_batch_data.get(d.item_code):
-				args = get_item_data(row, row.qty, stock_bal[1])
+				if ignore_empty_stock and not row.qty:
+					continue
+
+				args = get_item_data(row, row.qty, valuation_rate)
 				res.append(args)
 		else:
 			stock_bal = get_stock_balance(d.item_code, d.warehouse, posting_date, posting_time,
 				with_valuation_rate=True , with_serial_no=cint(d.has_serial_no))
+			qty, valuation_rate, serial_no = stock_bal[0], stock_bal[1], stock_bal[2] if cint(d.has_serial_no) else ''
 
-			args = get_item_data(d, stock_bal[0], stock_bal[1],
-				stock_bal[2] if cint(d.has_serial_no) else '')
+			if ignore_empty_stock and not stock_bal[0]:
+					continue
+
+			args = get_item_data(d, qty, valuation_rate, serial_no)
 
 			res.append(args)
 
@@ -517,24 +524,44 @@
 
 def get_items_for_stock_reco(warehouse, company):
 	lft, rgt = frappe.db.get_value("Warehouse", warehouse, ["lft", "rgt"])
-	items = frappe.db.sql("""
-		select i.name as item_code, i.item_name, bin.warehouse as warehouse, i.has_serial_no, i.has_batch_no
-		from tabBin bin, tabItem i
-		where i.name=bin.item_code and IFNULL(i.disabled, 0) = 0 and i.is_stock_item = 1
-		and i.has_variants = 0 and exists(
-			select name from `tabWarehouse` where lft >= %s and rgt <= %s and name=bin.warehouse
-		)
-	""", (lft, rgt), as_dict=1)
+	items = frappe.db.sql(f"""
+		select
+			i.name as item_code, i.item_name, bin.warehouse as warehouse, i.has_serial_no, i.has_batch_no
+		from
+			tabBin bin, tabItem i
+		where
+			i.name = bin.item_code
+			and IFNULL(i.disabled, 0) = 0
+			and i.is_stock_item = 1
+			and i.has_variants = 0
+			and exists(
+				select name from `tabWarehouse` where lft >= {lft} and rgt <= {rgt} and name = bin.warehouse
+			)
+	""", as_dict=1)
 
 	items += frappe.db.sql("""
-		select i.name as item_code, i.item_name, id.default_warehouse as warehouse, i.has_serial_no, i.has_batch_no
-		from tabItem i, `tabItem Default` id
-		where i.name = id.parent
-			and exists(select name from `tabWarehouse` where lft >= %s and rgt <= %s and name=id.default_warehouse)
-			and i.is_stock_item = 1 and i.has_variants = 0 and IFNULL(i.disabled, 0) = 0 and id.company=%s
+		select
+			i.name as item_code, i.item_name, id.default_warehouse as warehouse, i.has_serial_no, i.has_batch_no
+		from
+			tabItem i, `tabItem Default` id
+		where
+			i.name = id.parent
+			and exists(
+				select name from `tabWarehouse` where lft >= %s and rgt <= %s and name=id.default_warehouse
+			)
+			and i.is_stock_item = 1
+			and i.has_variants = 0
+			and IFNULL(i.disabled, 0) = 0
+			and id.company = %s
 		group by i.name
 	""", (lft, rgt, company), as_dict=1)
 
+	# remove duplicates
+	# check if item-warehouse key extracted from each entry exists in set iw_keys
+	# and update iw_keys
+	iw_keys = set()
+	items = [item for item in items if [(item.item_code, item.warehouse) not in iw_keys, iw_keys.add((item.item_code, item.warehouse))][0]]
+
 	return items
 
 def get_item_data(row, qty, valuation_rate, serial_no=None):
diff --git a/erpnext/stock/page/stock_balance/stock_balance.js b/erpnext/stock/page/stock_balance/stock_balance.js
index bddffd4..f00dd3e 100644
--- a/erpnext/stock/page/stock_balance/stock_balance.js
+++ b/erpnext/stock/page/stock_balance/stock_balance.js
@@ -62,7 +62,7 @@
 
 	// page.sort_selector.wrapper.css({'margin-right': '15px', 'margin-top': '4px'});
 
-	frappe.require('assets/js/item-dashboard.min.js', function() {
+	frappe.require('item-dashboard.bundle.js', function() {
 		page.item_dashboard = new erpnext.stock.ItemDashboard({
 			parent: page.main,
 			page_length: 20,
diff --git a/erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js b/erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js
index b610e7d..c0ffdc9 100644
--- a/erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js
+++ b/erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js
@@ -79,7 +79,7 @@
 		}
 	});
 
-	frappe.require('assets/js/item-dashboard.min.js', function() {
+	frappe.require('item-dashboard.bundle.js', function() {
 		$(frappe.render_template('warehouse_capacity_summary_header')).appendTo(page.main);
 
 		page.capacity_dashboard = new erpnext.stock.ItemDashboard({
@@ -117,4 +117,4 @@
 		setup_click('Item');
 		setup_click('Warehouse');
 	});
-};
\ No newline at end of file
+};
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index 8f9ec46..eddd048 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -127,7 +127,7 @@
 	sle.submit()
 	return sle
 
-def repost_future_sle(args=None, doc=None, voucher_type=None, voucher_no=None, allow_negative_stock=None, via_landed_cost_voucher=False):
+def repost_future_sle(args=None, voucher_type=None, voucher_no=None, allow_negative_stock=None, via_landed_cost_voucher=False, doc=None):
 	if not args and voucher_type and voucher_no:
 		args = get_items_to_be_repost(voucher_type, voucher_no, doc)
 
@@ -135,13 +135,15 @@
 
 	i = get_current_index(doc) or 0
 	while i < len(args):
+		validate_item_warehouse(args[i])
+
 		obj = update_entries_after({
-			"item_code": args[i].get('item_code'),
-			"warehouse": args[i].get('warehouse'),
-			"posting_date": args[i].get('posting_date'),
-			"posting_time": args[i].get('posting_time'),
-			"creation": args[i].get("creation"),
-			"distinct_item_warehouses": distinct_item_warehouses
+			'item_code': args[i].get('item_code'),
+			'warehouse': args[i].get('warehouse'),
+			'posting_date': args[i].get('posting_date'),
+			'posting_time': args[i].get('posting_time'),
+			'creation': args[i].get('creation'),
+			'distinct_item_warehouses': distinct_item_warehouses
 		}, allow_negative_stock=allow_negative_stock, via_landed_cost_voucher=via_landed_cost_voucher)
 
 		distinct_item_warehouses[(args[i].get('item_code'), args[i].get('warehouse'))].reposting_status = True
@@ -163,6 +165,12 @@
 	if doc and args:
 		update_args_in_repost_item_valuation(doc, i, args, distinct_item_warehouses)
 
+def validate_item_warehouse(args):
+	for field in ['item_code', 'warehouse', 'posting_date', 'posting_time']:
+		if not args.get(field):
+			validation_msg = f'The field {frappe.unscrub(args.get(field))} is required for the reposting'
+			frappe.throw(_(validation_msg))
+
 def update_args_in_repost_item_valuation(doc, index, args, distinct_item_warehouses):
 	frappe.db.set_value(doc.doctype, doc.name, {
 		'items_to_be_repost': json.dumps(args, default=str),
@@ -271,15 +279,13 @@
 			}
 
 		"""
-		self.data.setdefault(args.warehouse, frappe._dict())
-		warehouse_dict = self.data[args.warehouse]
 		previous_sle = get_previous_sle_of_current_voucher(args)
-		warehouse_dict.previous_sle = previous_sle
 
-		for key in ("qty_after_transaction", "valuation_rate", "stock_value"):
-			setattr(warehouse_dict, key, flt(previous_sle.get(key)))
-
-		warehouse_dict.update({
+		self.data[args.warehouse] = frappe._dict({
+			"previous_sle": previous_sle,
+			"qty_after_transaction": flt(previous_sle.qty_after_transaction),
+			"valuation_rate": flt(previous_sle.valuation_rate),
+			"stock_value": flt(previous_sle.stock_value),
 			"prev_stock_value": previous_sle.stock_value or 0.0,
 			"stock_queue": json.loads(previous_sle.stock_queue or "[]"),
 			"stock_value_difference": 0.0
diff --git a/erpnext/stock/utils.py b/erpnext/stock/utils.py
index b57b2aa..9f6d0a8 100644
--- a/erpnext/stock/utils.py
+++ b/erpnext/stock/utils.py
@@ -224,7 +224,7 @@
 
 def get_valuation_method(item_code):
 	"""get valuation method from item or default"""
-	val_method = frappe.db.get_value('Item', item_code, 'valuation_method')
+	val_method = frappe.db.get_value('Item', item_code, 'valuation_method', cache=True)
 	if not val_method:
 		val_method = frappe.db.get_value("Stock Settings", None, "valuation_method") or "FIFO"
 	return val_method
@@ -275,17 +275,17 @@
 	return valid_serial_nos
 
 def validate_warehouse_company(warehouse, company):
-	warehouse_company = frappe.db.get_value("Warehouse", warehouse, "company")
+	warehouse_company = frappe.db.get_value("Warehouse", warehouse, "company", cache=True)
 	if warehouse_company and warehouse_company != company:
 		frappe.throw(_("Warehouse {0} does not belong to company {1}").format(warehouse, company),
 			InvalidWarehouseCompany)
 
 def is_group_warehouse(warehouse):
-	if frappe.db.get_value("Warehouse", warehouse, "is_group"):
+	if frappe.db.get_value("Warehouse", warehouse, "is_group", cache=True):
 		frappe.throw(_("Group node warehouse is not allowed to select for transactions"))
 
 def validate_disabled_warehouse(warehouse):
-	if frappe.db.get_value("Warehouse", warehouse, "disabled"):
+	if frappe.db.get_value("Warehouse", warehouse, "disabled", cache=True):
 		frappe.throw(_("Disabled Warehouse {0} cannot be used for this transaction.").format(get_link_to_form('Warehouse', warehouse)))
 
 def update_included_uom_in_report(columns, result, include_uom, conversion_factors):
diff --git a/erpnext/stock/workspace/stock/stock.json b/erpnext/stock/workspace/stock/stock.json
index 529ce8e..26d10ce 100644
--- a/erpnext/stock/workspace/stock/stock.json
+++ b/erpnext/stock/workspace/stock/stock.json
@@ -1,28 +1,32 @@
 {
  "cards_label": "Masters & Reports",
- "category": "Modules",
+ "category": "",
  "charts": [
   {
    "chart_name": "Warehouse wise Stock Value"
   }
  ],
+ "content": "[{\"type\": \"onboarding\", \"data\": {\"onboarding_name\":\"Stock\", \"col\": 12}}, {\"type\": \"chart\", \"data\": {\"chart_name\": null, \"col\": 12}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Quick Access\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Item\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Material Request\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Stock Entry\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Purchase Receipt\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Delivery Note\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Stock Ledger\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Stock Balance\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Dashboard\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Masters & Reports\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Items and Pricing\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Stock Transactions\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Stock Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Serial No and Batch\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Tools\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Key Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Other Reports\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Incorrect Data Report\", \"col\": 4}}]",
  "creation": "2020-03-02 15:43:10.096528",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "stock",
  "idx": 0,
  "is_default": 0,
- "is_standard": 1,
+ "is_standard": 0,
  "label": "Stock",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Items and Pricing",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -31,6 +35,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item",
+   "link_count": 0,
    "link_to": "Item",
    "link_type": "DocType",
    "onboard": 1,
@@ -41,6 +46,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Group",
+   "link_count": 0,
    "link_to": "Item Group",
    "link_type": "DocType",
    "onboard": 1,
@@ -51,6 +57,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Product Bundle",
+   "link_count": 0,
    "link_to": "Product Bundle",
    "link_type": "DocType",
    "onboard": 1,
@@ -61,6 +68,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Price List",
+   "link_count": 0,
    "link_to": "Price List",
    "link_type": "DocType",
    "onboard": 0,
@@ -71,6 +79,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Price",
+   "link_count": 0,
    "link_to": "Item Price",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +90,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Shipping Rule",
+   "link_count": 0,
    "link_to": "Shipping Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -91,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Pricing Rule",
+   "link_count": 0,
    "link_to": "Pricing Rule",
    "link_type": "DocType",
    "onboard": 0,
@@ -101,6 +112,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Alternative",
+   "link_count": 0,
    "link_to": "Item Alternative",
    "link_type": "DocType",
    "onboard": 0,
@@ -111,6 +123,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Manufacturer",
+   "link_count": 0,
    "link_to": "Item Manufacturer",
    "link_type": "DocType",
    "onboard": 0,
@@ -121,6 +134,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Customs Tariff Number",
+   "link_count": 0,
    "link_to": "Customs Tariff Number",
    "link_type": "DocType",
    "onboard": 0,
@@ -130,6 +144,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Transactions",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -138,6 +153,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Material Request",
+   "link_count": 0,
    "link_to": "Material Request",
    "link_type": "DocType",
    "onboard": 1,
@@ -148,6 +164,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Entry",
+   "link_count": 0,
    "link_to": "Stock Entry",
    "link_type": "DocType",
    "onboard": 1,
@@ -158,6 +175,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Delivery Note",
+   "link_count": 0,
    "link_to": "Delivery Note",
    "link_type": "DocType",
    "onboard": 1,
@@ -168,6 +186,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Purchase Receipt",
+   "link_count": 0,
    "link_to": "Purchase Receipt",
    "link_type": "DocType",
    "onboard": 1,
@@ -178,6 +197,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Pick List",
+   "link_count": 0,
    "link_to": "Pick List",
    "link_type": "DocType",
    "onboard": 1,
@@ -188,6 +208,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Delivery Trip",
+   "link_count": 0,
    "link_to": "Delivery Trip",
    "link_type": "DocType",
    "onboard": 0,
@@ -197,6 +218,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -205,6 +227,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock Ledger",
+   "link_count": 0,
    "link_to": "Stock Ledger",
    "link_type": "Report",
    "onboard": 1,
@@ -215,6 +238,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock Balance",
+   "link_count": 0,
    "link_to": "Stock Balance",
    "link_type": "Report",
    "onboard": 1,
@@ -225,6 +249,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock Projected Qty",
+   "link_count": 0,
    "link_to": "Stock Projected Qty",
    "link_type": "Report",
    "onboard": 1,
@@ -235,6 +260,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Summary",
+   "link_count": 0,
    "link_to": "stock-balance",
    "link_type": "Page",
    "onboard": 0,
@@ -245,6 +271,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock Ageing",
+   "link_count": 0,
    "link_to": "Stock Ageing",
    "link_type": "Report",
    "onboard": 0,
@@ -255,6 +282,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item Price Stock",
+   "link_count": 0,
    "link_to": "Item Price Stock",
    "link_type": "Report",
    "onboard": 0,
@@ -264,6 +292,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -272,6 +301,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Settings",
+   "link_count": 0,
    "link_to": "Stock Settings",
    "link_type": "DocType",
    "onboard": 1,
@@ -282,6 +312,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Warehouse",
+   "link_count": 0,
    "link_to": "Warehouse",
    "link_type": "DocType",
    "onboard": 1,
@@ -292,6 +323,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Unit of Measure (UOM)",
+   "link_count": 0,
    "link_to": "UOM",
    "link_type": "DocType",
    "onboard": 1,
@@ -302,6 +334,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Variant Settings",
+   "link_count": 0,
    "link_to": "Item Variant Settings",
    "link_type": "DocType",
    "onboard": 1,
@@ -312,6 +345,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Brand",
+   "link_count": 0,
    "link_to": "Brand",
    "link_type": "DocType",
    "onboard": 1,
@@ -322,6 +356,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item Attribute",
+   "link_count": 0,
    "link_to": "Item Attribute",
    "link_type": "DocType",
    "onboard": 0,
@@ -332,6 +367,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "UOM Conversion Factor",
+   "link_count": 0,
    "link_to": "UOM Conversion Factor",
    "link_type": "DocType",
    "onboard": 0,
@@ -341,6 +377,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Serial No and Batch",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -349,6 +386,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Serial No",
+   "link_count": 0,
    "link_to": "Serial No",
    "link_type": "DocType",
    "onboard": 1,
@@ -359,6 +397,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Batch",
+   "link_count": 0,
    "link_to": "Batch",
    "link_type": "DocType",
    "onboard": 1,
@@ -369,6 +408,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Installation Note",
+   "link_count": 0,
    "link_to": "Installation Note",
    "link_type": "DocType",
    "onboard": 0,
@@ -379,6 +419,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Serial No Service Contract Expiry",
+   "link_count": 0,
    "link_to": "Serial No Service Contract Expiry",
    "link_type": "Report",
    "onboard": 0,
@@ -389,6 +430,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Serial No Status",
+   "link_count": 0,
    "link_to": "Serial No Status",
    "link_type": "Report",
    "onboard": 0,
@@ -399,6 +441,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Serial No Warranty Expiry",
+   "link_count": 0,
    "link_to": "Serial No Warranty Expiry",
    "link_type": "Report",
    "onboard": 0,
@@ -408,6 +451,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Tools",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -416,6 +460,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock Reconciliation",
+   "link_count": 0,
    "link_to": "Stock Reconciliation",
    "link_type": "DocType",
    "onboard": 1,
@@ -426,6 +471,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Landed Cost Voucher",
+   "link_count": 0,
    "link_to": "Landed Cost Voucher",
    "link_type": "DocType",
    "onboard": 1,
@@ -436,6 +482,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Packing Slip",
+   "link_count": 0,
    "link_to": "Packing Slip",
    "link_type": "DocType",
    "onboard": 1,
@@ -446,6 +493,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Inspection",
+   "link_count": 0,
    "link_to": "Quality Inspection",
    "link_type": "DocType",
    "onboard": 0,
@@ -456,6 +504,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quality Inspection Template",
+   "link_count": 0,
    "link_to": "Quality Inspection Template",
    "link_type": "DocType",
    "onboard": 0,
@@ -466,6 +515,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Quick Stock Balance",
+   "link_count": 0,
    "link_to": "Quick Stock Balance",
    "link_type": "DocType",
    "onboard": 0,
@@ -475,6 +525,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Key Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -483,6 +534,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Item-wise Price List Rate",
+   "link_count": 0,
    "link_to": "Item-wise Price List Rate",
    "link_type": "Report",
    "onboard": 1,
@@ -493,6 +545,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock Analytics",
+   "link_count": 0,
    "link_to": "Stock Analytics",
    "link_type": "Report",
    "onboard": 1,
@@ -503,6 +556,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock Qty vs Serial No Count",
+   "link_count": 0,
    "link_to": "Stock Qty vs Serial No Count",
    "link_type": "Report",
    "onboard": 1,
@@ -513,6 +567,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Delivery Note Trends",
+   "link_count": 0,
    "link_to": "Delivery Note Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -523,6 +578,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Receipt Trends",
+   "link_count": 0,
    "link_to": "Purchase Receipt Trends",
    "link_type": "Report",
    "onboard": 0,
@@ -533,6 +589,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Sales Order Analysis",
+   "link_count": 0,
    "link_to": "Sales Order Analysis",
    "link_type": "Report",
    "onboard": 0,
@@ -543,6 +600,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Purchase Order Analysis",
+   "link_count": 0,
    "link_to": "Purchase Order Analysis",
    "link_type": "Report",
    "onboard": 0,
@@ -553,6 +611,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item Shortage Report",
+   "link_count": 0,
    "link_to": "Item Shortage Report",
    "link_type": "Report",
    "onboard": 0,
@@ -563,6 +622,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Batch-Wise Balance History",
+   "link_count": 0,
    "link_to": "Batch-Wise Balance History",
    "link_type": "Report",
    "onboard": 0,
@@ -572,6 +632,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Other Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -580,6 +641,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Requested Items To Be Transferred",
+   "link_count": 0,
    "link_to": "Requested Items To Be Transferred",
    "link_type": "Report",
    "onboard": 0,
@@ -590,6 +652,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Batch Item Expiry Status",
+   "link_count": 0,
    "link_to": "Batch Item Expiry Status",
    "link_type": "Report",
    "onboard": 0,
@@ -600,6 +663,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item Prices",
+   "link_count": 0,
    "link_to": "Item Prices",
    "link_type": "Report",
    "onboard": 0,
@@ -610,6 +674,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Itemwise Recommended Reorder Level",
+   "link_count": 0,
    "link_to": "Itemwise Recommended Reorder Level",
    "link_type": "Report",
    "onboard": 0,
@@ -620,6 +685,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Item Variant Details",
+   "link_count": 0,
    "link_to": "Item Variant Details",
    "link_type": "Report",
    "onboard": 0,
@@ -630,6 +696,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Subcontracted Raw Materials To Be Transferred",
+   "link_count": 0,
    "link_to": "Subcontracted Raw Materials To Be Transferred",
    "link_type": "Report",
    "onboard": 0,
@@ -640,6 +707,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Subcontracted Item To Be Received",
+   "link_count": 0,
    "link_to": "Subcontracted Item To Be Received",
    "link_type": "Report",
    "onboard": 0,
@@ -650,6 +718,7 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "Stock and Account Value Comparison",
+   "link_count": 0,
    "link_to": "Stock and Account Value Comparison",
    "link_type": "Report",
    "onboard": 0,
@@ -659,6 +728,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Incorrect Data Report",
+   "link_count": 0,
    "link_type": "DocType",
    "onboard": 0,
    "type": "Card Break"
@@ -667,6 +737,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Incorrect Serial No Qty and Valuation",
+   "link_count": 0,
    "link_to": "Incorrect Serial No Valuation",
    "link_type": "Report",
    "onboard": 0,
@@ -676,6 +747,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Incorrect Balance Qty After Transaction",
+   "link_count": 0,
    "link_to": "Incorrect Balance Qty After Transaction",
    "link_type": "Report",
    "onboard": 0,
@@ -685,20 +757,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Stock and Account Value Comparison",
+   "link_count": 0,
    "link_to": "Stock and Account Value Comparison",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2021-05-13 13:10:24.914983",
+ "modified": "2021-08-05 12:16:02.361509",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Stock",
  "onboarding": "Stock",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 24,
  "shortcuts": [
   {
    "color": "Green",
@@ -753,5 +831,6 @@
    "type": "Dashboard"
   }
  ],
- "shortcuts_label": "Quick Access"
+ "shortcuts_label": "Quick Access",
+ "title": "Stock"
 }
\ No newline at end of file
diff --git a/erpnext/support/doctype/issue/issue.js b/erpnext/support/doctype/issue/issue.js
index ecc9fcf..9ac1efa 100644
--- a/erpnext/support/doctype/issue/issue.js
+++ b/erpnext/support/doctype/issue/issue.js
@@ -17,84 +17,7 @@
 				if (r && r.allow_resetting_service_level_agreement == "0") {
 					frm.set_df_property("reset_service_level_agreement", "hidden", 1);
 				}
-		});
-
-		if (frm.doc.service_level_agreement) {
-			frappe.call({
-				method: "erpnext.support.doctype.service_level_agreement.service_level_agreement.get_service_level_agreement_filters",
-				args: {
-					name: frm.doc.service_level_agreement,
-					customer: frm.doc.customer
-				},
-				callback: function (r) {
-					if (r && r.message) {
-						frm.set_query("priority", function() {
-							return {
-								filters: {
-									"name": ["in", r.message.priority],
-								}
-							};
-						});
-						frm.set_query("service_level_agreement", function() {
-							return {
-								filters: {
-									"name": ["in", r.message.service_level_agreements],
-								}
-							};
-						});
-					}
-				}
 			});
-		}
-	},
-
-	refresh: function(frm) {
-
-		// alert messages
-		if (frm.doc.status !== "Closed" && frm.doc.service_level_agreement
-			&& frm.doc.agreement_status === "Ongoing") {
-			frappe.call({
-				"method": "frappe.client.get",
-				args: {
-					doctype: "Service Level Agreement",
-					name: frm.doc.service_level_agreement
-				},
-				callback: function(data) {
-					let statuses = data.message.pause_sla_on;
-					const hold_statuses = [];
-					$.each(statuses, (_i, entry) => {
-						hold_statuses.push(entry.status);
-					});
-					if (hold_statuses.includes(frm.doc.status)) {
-						frm.dashboard.clear_headline();
-						let message = { "indicator": "orange", "msg": __("SLA is on hold since {0}", [moment(frm.doc.on_hold_since).fromNow(true)]) };
-						frm.dashboard.set_headline_alert(
-							'<div class="row">' +
-							'<div class="col-xs-12">' +
-							'<span class="indicator whitespace-nowrap ' + message.indicator + '"><span>' + message.msg + '</span></span> ' +
-							'</div>' +
-							'</div>'
-						);
-					} else {
-						set_time_to_resolve_and_response(frm);
-					}
-				}
-			});
-		} else if (frm.doc.service_level_agreement) {
-			frm.dashboard.clear_headline();
-
-			let agreement_status = (frm.doc.agreement_status == "Fulfilled") ?
-				{ "indicator": "green", "msg": "Service Level Agreement has been fulfilled" } :
-				{ "indicator": "red", "msg": "Service Level Agreement Failed" };
-
-			frm.dashboard.set_headline_alert(
-				'<div class="row">' +
-				'<div class="col-xs-12">' +
-				'<span class="indicator whitespace-nowrap ' + agreement_status.indicator + '"><span class="hidden-xs">' + agreement_status.msg + '</span></span> ' +
-				'</div>' +
-				'</div>'
-			);
-		}
 
 		// buttons
 		if (frm.doc.status !== "Closed") {
@@ -140,7 +63,7 @@
 					message: __("Resetting Service Level Agreement.")
 				});
 
-				frm.call("reset_service_level_agreement", {
+				frappe.call("erpnext.support.doctype.service_level_agreement.service_level_agreement.reset_service_level_agreement", {
 					reason: values.reason,
 					user: frappe.session.user_email
 				}, () => {
@@ -222,44 +145,4 @@
 		// 	frm.timeline.wrapper.data("help-article-event-attached", true);
 		// }
 	},
-});
-
-function set_time_to_resolve_and_response(frm) {
-	frm.dashboard.clear_headline();
-
-	var time_to_respond = get_status(frm.doc.response_by_variance);
-	if (!frm.doc.first_responded_on && frm.doc.agreement_status === "Ongoing") {
-		time_to_respond = get_time_left(frm.doc.response_by, frm.doc.agreement_status);
-	}
-
-	var time_to_resolve = get_status(frm.doc.resolution_by_variance);
-	if (!frm.doc.resolution_date && frm.doc.agreement_status === "Ongoing") {
-		time_to_resolve = get_time_left(frm.doc.resolution_by, frm.doc.agreement_status);
-	}
-
-	frm.dashboard.set_headline_alert(
-		'<div class="row">' +
-			'<div class="col-xs-12 col-sm-6">' +
-				'<span class="indicator whitespace-nowrap '+ time_to_respond.indicator +'"><span>Time to Respond: '+ time_to_respond.diff_display +'</span></span> ' +
-			'</div>' +
-			'<div class="col-xs-12 col-sm-6">' +
-				'<span class="indicator whitespace-nowrap '+ time_to_resolve.indicator +'"><span>Time to Resolve: '+ time_to_resolve.diff_display +'</span></span> ' +
-			'</div>' +
-		'</div>'
-	);
-}
-
-function get_time_left(timestamp, agreement_status) {
-	const diff = moment(timestamp).diff(moment());
-	const diff_display = diff >= 44500 ? moment.duration(diff).humanize() : "Failed";
-	let indicator = (diff_display == "Failed" && agreement_status != "Fulfilled") ? "red" : "green";
-	return {"diff_display": diff_display, "indicator": indicator};
-}
-
-function get_status(variance) {
-	if (variance > 0) {
-		return {"diff_display": "Fulfilled", "indicator": "green"};
-	} else {
-		return {"diff_display": "Failed", "indicator": "red"};
-	}
-}
+});
\ No newline at end of file
diff --git a/erpnext/support/doctype/issue/issue.py b/erpnext/support/doctype/issue/issue.py
index b48925d..f28976e 100644
--- a/erpnext/support/doctype/issue/issue.py
+++ b/erpnext/support/doctype/issue/issue.py
@@ -5,13 +5,12 @@
 import frappe
 import json
 from frappe import _
-from frappe import utils
 from frappe.model.document import Document
-from frappe.utils import cint, now_datetime, getdate, get_weekdays, add_to_date, get_time, get_datetime, time_diff_in_seconds
-from datetime import datetime, timedelta
+from frappe.utils import now_datetime, time_diff_in_seconds, get_datetime, date_diff
+from frappe.core.utils import get_parent_doc
+from datetime import timedelta
 from frappe.model.mapper import get_mapped_doc
 from frappe.utils.user import is_website_user
-from erpnext.support.doctype.service_level_agreement.service_level_agreement import get_active_service_level_agreement_for
 from frappe.email.inbox import link_communication_to_document
 
 class Issue(Document):
@@ -25,13 +24,8 @@
 		if not self.raised_by:
 			self.raised_by = frappe.session.user
 
-		self.change_service_level_agreement_and_priority()
-		self.update_status()
 		self.set_lead_contact(self.raised_by)
 
-		if not self.service_level_agreement:
-			self.reset_sla_fields()
-
 	def on_update(self):
 		# Add a communication in the issue timeline
 		if self.flags.create_communication and self.via_customer_portal:
@@ -57,106 +51,6 @@
 				self.company = frappe.db.get_value("Lead", self.lead, "company") or \
 					frappe.db.get_default("Company")
 
-	def reset_sla_fields(self):
-		self.agreement_status = ""
-		self.response_by = ""
-		self.resolution_by = ""
-		self.response_by_variance = 0
-		self.resolution_by_variance = 0
-
-	def update_status(self):
-		status = frappe.db.get_value("Issue", self.name, "status")
-		if self.status != "Open" and status == "Open" and not self.first_responded_on:
-			self.first_responded_on = frappe.flags.current_time or now_datetime()
-
-		if self.status in ["Closed", "Resolved"] and status not in ["Resolved", "Closed"]:
-			self.resolution_date = frappe.flags.current_time or now_datetime()
-			if frappe.db.get_value("Issue", self.name, "agreement_status") == "Ongoing":
-				set_service_level_agreement_variance(issue=self.name)
-				self.update_agreement_status()
-			set_resolution_time(issue=self)
-			set_user_resolution_time(issue=self)
-
-		if self.status == "Open" and status != "Open":
-			# if no date, it should be set as None and not a blank string "", as per mysql strict config
-			self.resolution_date = None
-			self.reset_issue_metrics()
-			# enable SLA and variance on Reopen
-			self.agreement_status = "Ongoing"
-			set_service_level_agreement_variance(issue=self.name)
-
-		self.handle_hold_time(status)
-
-	def handle_hold_time(self, status):
-		if self.service_level_agreement:
-			# set response and resolution variance as None as the issue is on Hold
-			pause_sla_on = frappe.db.get_all("Pause SLA On Status", fields=["status"],
-				filters={"parent": self.service_level_agreement})
-			hold_statuses = [entry.status for entry in pause_sla_on]
-			update_values = {}
-
-			if hold_statuses:
-				if self.status in hold_statuses and status not in hold_statuses:
-					update_values['on_hold_since'] = frappe.flags.current_time or now_datetime()
-					if not self.first_responded_on:
-						update_values['response_by'] = None
-						update_values['response_by_variance'] = 0
-					update_values['resolution_by'] = None
-					update_values['resolution_by_variance'] = 0
-
-				# calculate hold time when status is changed from any hold status to any non-hold status
-				if self.status not in hold_statuses and status in hold_statuses:
-					hold_time = self.total_hold_time if self.total_hold_time else 0
-					now_time = frappe.flags.current_time or now_datetime()
-					last_hold_time = 0
-					if self.on_hold_since:
-						# last_hold_time will be added to the sla variables
-						last_hold_time = time_diff_in_seconds(now_time, self.on_hold_since)
-						update_values['total_hold_time'] = hold_time + last_hold_time
-
-					# re-calculate SLA variables after issue changes from any hold status to any non-hold status
-					# add hold time to SLA variables
-					start_date_time = get_datetime(self.service_level_agreement_creation)
-					priority = get_priority(self)
-					now_time = frappe.flags.current_time or now_datetime()
-
-					if not self.first_responded_on:
-						response_by = get_expected_time_for(parameter="response", service_level=priority, start_date_time=start_date_time)
-						response_by = add_to_date(response_by, seconds=round(last_hold_time))
-						response_by_variance = round(time_diff_in_seconds(response_by, now_time))
-						update_values['response_by'] = response_by
-						update_values['response_by_variance'] = response_by_variance + last_hold_time
-
-					resolution_by = get_expected_time_for(parameter="resolution", service_level=priority, start_date_time=start_date_time)
-					resolution_by = add_to_date(resolution_by, seconds=round(last_hold_time))
-					resolution_by_variance = round(time_diff_in_seconds(resolution_by, now_time))
-					update_values['resolution_by'] = resolution_by
-					update_values['resolution_by_variance'] = resolution_by_variance + last_hold_time
-					update_values['on_hold_since'] = None
-
-				self.db_set(update_values)
-
-	def update_agreement_status(self):
-		if self.service_level_agreement and self.agreement_status == "Ongoing":
-			if cint(frappe.db.get_value("Issue", self.name, "response_by_variance")) < 0 or \
-				cint(frappe.db.get_value("Issue", self.name, "resolution_by_variance")) < 0:
-
-				self.agreement_status = "Failed"
-			else:
-				self.agreement_status = "Fulfilled"
-
-	def update_agreement_status_on_custom_status(self):
-		"""
-			Update Agreement Fulfilled status using Custom Scripts for Custom Issue Status
-		"""
-		if not self.first_responded_on: # first_responded_on set when first reply is sent to customer
-			self.response_by_variance = round(time_diff_in_seconds(self.response_by, now_datetime()), 2)
-
-		if not self.resolution_date: # resolution_date set when issue has been closed
-			self.resolution_by_variance = round(time_diff_in_seconds(self.resolution_by, now_datetime()), 2)
-
-		self.agreement_status = "Fulfilled" if self.response_by_variance > 0 and self.resolution_by_variance > 0 else "Failed"
-
 	def create_communication(self):
 		communication = frappe.new_doc("Communication")
 		communication.update({
@@ -222,199 +116,11 @@
 		}).insert(ignore_permissions=True)
 
 		return replicated_issue.name
-	
-	def reset_issue_metrics(self):
-		self.db_set("resolution_time", None)
-		self.db_set("user_resolution_time", None)
-
-	def before_insert(self):
-		if frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
-			if frappe.flags.in_test:
-				self.set_response_and_resolution_time(priority=self.priority, service_level_agreement=self.service_level_agreement)
-			else:
-				self.set_response_and_resolution_time()
-
-	def set_response_and_resolution_time(self, priority=None, service_level_agreement=None):
-		service_level_agreement = get_active_service_level_agreement_for(self)
-
-		if not service_level_agreement:
-			if frappe.db.get_value("Issue", self.name, "service_level_agreement"):
-				frappe.throw(_("Couldn't Set Service Level Agreement {0}.").format(self.service_level_agreement))
-			return
-
-		if (service_level_agreement.customer and self.customer) and not (service_level_agreement.customer == self.customer):
-			frappe.throw(_("This Service Level Agreement is specific to Customer {0}").format(service_level_agreement.customer))
-
-		self.service_level_agreement = service_level_agreement.name
-		if not self.priority:
-			self.priority = service_level_agreement.default_priority
-
-		priority = get_priority(self)
-
-		if not self.creation:
-			self.creation = now_datetime()
-			self.service_level_agreement_creation = now_datetime()
-
-		start_date_time = get_datetime(self.service_level_agreement_creation)
-		self.response_by = get_expected_time_for(parameter="response", service_level=priority, start_date_time=start_date_time)
-		self.resolution_by = get_expected_time_for(parameter="resolution", service_level=priority, start_date_time=start_date_time)
-
-		self.response_by_variance = round(time_diff_in_seconds(self.response_by, now_datetime()))
-		self.resolution_by_variance = round(time_diff_in_seconds(self.resolution_by, now_datetime()))
-
-	def change_service_level_agreement_and_priority(self):
-		if self.service_level_agreement and frappe.db.exists("Issue", self.name) and \
-			frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
-
-			if not self.priority == frappe.db.get_value("Issue", self.name, "priority"):
-				self.set_response_and_resolution_time(priority=self.priority, service_level_agreement=self.service_level_agreement)
-				frappe.msgprint(_("Priority has been changed to {0}.").format(self.priority))
-
-			if not self.service_level_agreement == frappe.db.get_value("Issue", self.name, "service_level_agreement"):
-				self.set_response_and_resolution_time(priority=self.priority, service_level_agreement=self.service_level_agreement)
-				frappe.msgprint(_("Service Level Agreement has been changed to {0}.").format(self.service_level_agreement))
-
-	@frappe.whitelist()
-	def reset_service_level_agreement(self, reason, user):
-		if not frappe.db.get_single_value("Support Settings", "allow_resetting_service_level_agreement"):
-			frappe.throw(_("Allow Resetting Service Level Agreement from Support Settings."))
-
-		frappe.get_doc({
-			"doctype": "Comment",
-			"comment_type": "Info",
-			"reference_doctype": self.doctype,
-			"reference_name": self.name,
-			"comment_email": user,
-			"content": " resetted Service Level Agreement - {0}".format(_(reason)),
-		}).insert(ignore_permissions=True)
-
-		self.service_level_agreement_creation = now_datetime()
-		self.set_response_and_resolution_time(priority=self.priority, service_level_agreement=self.service_level_agreement)
-		self.agreement_status = "Ongoing"
-		self.save()
 
 	def reset_issue_metrics(self):
 		self.db_set("resolution_time", None)
 		self.db_set("user_resolution_time", None)
 
-
-def get_priority(issue):
-	service_level_agreement = frappe.get_doc("Service Level Agreement", issue.service_level_agreement)
-	priority = service_level_agreement.get_service_level_agreement_priority(issue.priority)
-	priority.update({
-		"support_and_resolution": service_level_agreement.support_and_resolution,
-		"holiday_list": service_level_agreement.holiday_list
-	})
-	return priority
-
-
-def get_expected_time_for(parameter, service_level, start_date_time):
-	current_date_time = start_date_time
-	expected_time = current_date_time
-	start_time = None
-	end_time = None
-
-	if parameter == "response":
-		allotted_seconds = service_level.get("response_time")
-	elif parameter == "resolution":
-		allotted_seconds = service_level.get("resolution_time")
-	else:
-		frappe.throw(_("{0} parameter is invalid").format(parameter))
-
-	expected_time_is_set = 0
-
-	support_days = {}
-	for service in service_level.get("support_and_resolution"):
-		support_days[service.workday] = frappe._dict({
-			"start_time": service.start_time,
-			"end_time": service.end_time,
-		})
-
-	holidays = get_holidays(service_level.get("holiday_list"))
-	weekdays = get_weekdays()
-
-	while not expected_time_is_set:
-		current_weekday = weekdays[current_date_time.weekday()]
-
-		if not is_holiday(current_date_time, holidays) and current_weekday in support_days:
-			start_time = current_date_time - datetime(current_date_time.year, current_date_time.month, current_date_time.day) \
-				if getdate(current_date_time) == getdate(start_date_time) and get_time_in_timedelta(current_date_time.time()) > support_days[current_weekday].start_time \
-				else support_days[current_weekday].start_time
-			end_time = support_days[current_weekday].end_time
-			time_left_today = time_diff_in_seconds(end_time, start_time)
-
-			# no time left for support today
-			if time_left_today <= 0: pass
-			elif allotted_seconds:
-				if time_left_today >= allotted_seconds:
-					expected_time = datetime.combine(getdate(current_date_time), get_time(start_time))
-					expected_time = add_to_date(expected_time, seconds=allotted_seconds)
-					expected_time_is_set = 1
-				else:
-					allotted_seconds = allotted_seconds - time_left_today
-
-		if not expected_time_is_set:
-			current_date_time = add_to_date(current_date_time, days=1)
-
-	if end_time and allotted_seconds >= 86400:
-		current_date_time = datetime.combine(getdate(current_date_time), get_time(end_time))
-	else:
-		current_date_time = expected_time
-
-	return current_date_time
-
-def set_service_level_agreement_variance(issue=None):
-	current_time = frappe.flags.current_time or now_datetime()
-
-	filters = {"status": "Open", "agreement_status": "Ongoing"}
-	if issue:
-		filters = {"name": issue}
-
-	for issue in frappe.get_list("Issue", filters=filters):
-		doc = frappe.get_doc("Issue", issue.name)
-
-		if not doc.first_responded_on: # first_responded_on set when first reply is sent to customer
-			variance = round(time_diff_in_seconds(doc.response_by, current_time), 2)
-			frappe.db.set_value(dt="Issue", dn=doc.name, field="response_by_variance", val=variance, update_modified=False)
-			if variance < 0:
-				frappe.db.set_value(dt="Issue", dn=doc.name, field="agreement_status", val="Failed", update_modified=False)
-
-		if not doc.resolution_date: # resolution_date set when issue has been closed
-			variance = round(time_diff_in_seconds(doc.resolution_by, current_time), 2)
-			frappe.db.set_value(dt="Issue", dn=doc.name, field="resolution_by_variance", val=variance, update_modified=False)
-			if variance < 0:
-				frappe.db.set_value(dt="Issue", dn=doc.name, field="agreement_status", val="Failed", update_modified=False)
-
-
-def set_resolution_time(issue):
-	# total time taken from issue creation to closing
-	resolution_time = time_diff_in_seconds(issue.resolution_date, issue.creation)
-	issue.db_set("resolution_time", resolution_time)
-
-
-def set_user_resolution_time(issue):
-	# total time taken by a user to close the issue apart from wait_time
-	communications = frappe.get_list("Communication", filters={
-			"reference_doctype": issue.doctype,
-			"reference_name": issue.name
-		},
-		fields=["sent_or_received", "name", "creation"],
-		order_by="creation"
-	)
-
-	pending_time = []
-	for i in range(len(communications)):
-		if communications[i].sent_or_received == "Received" and communications[i-1].sent_or_received == "Sent":
-			wait_time = time_diff_in_seconds(communications[i].creation, communications[i-1].creation)
-			if wait_time > 0:
-				pending_time.append(wait_time)
-
-	total_pending_time = sum(pending_time)
-	resolution_time_in_secs = time_diff_in_seconds(issue.resolution_date, issue.creation)
-	user_resolution_time = resolution_time_in_secs - total_pending_time
-	issue.db_set("user_resolution_time", user_resolution_time)
-
-
 def get_list_context(context=None):
 	return {
 		"title": _("Issues"),
@@ -453,15 +159,13 @@
 
 @frappe.whitelist()
 def set_multiple_status(names, status):
-	names = json.loads(names)
-	for name in names:
-		set_status(name, status)
+
+	for name in json.loads(names):
+		frappe.db.set_value("Issue", name, "status", status)
 
 @frappe.whitelist()
 def set_status(name, status):
-	st = frappe.get_doc("Issue", name)
-	st.status = status
-	st.save()
+	frappe.db.set_value("Issue", name, "status", status)
 
 def auto_close_tickets():
 	"""Auto-close replied support tickets after 7 days"""
@@ -487,14 +191,6 @@
 	"""Called when Contact is deleted"""
 	frappe.db.sql("""UPDATE `tabIssue` set contact='' where contact=%s""", contact.name)
 
-def get_holidays(holiday_list_name):
-	holiday_list = frappe.get_cached_doc("Holiday List", holiday_list_name)
-	holidays = [holiday.holiday_date for holiday in holiday_list.holidays]
-	return holidays
-
-def is_holiday(date, holidays):
-	return getdate(date) in holidays
-
 @frappe.whitelist()
 def make_task(source_name, target_doc=None):
 	return get_mapped_doc("Issue", source_name, {
@@ -524,5 +220,125 @@
 	"""
 		Converts datetime.time(10, 36, 55, 961454) to datetime.timedelta(seconds=38215)
 	"""
-	import datetime
-	return datetime.timedelta(hours=time.hour, minutes=time.minute, seconds=time.second)
+	return timedelta(hours=time.hour, minutes=time.minute, seconds=time.second)
+
+def set_first_response_time(communication, method):
+	if communication.get('reference_doctype') == "Issue":
+		issue = get_parent_doc(communication)
+		if is_first_response(issue):
+			first_response_time = calculate_first_response_time(issue, get_datetime(issue.first_responded_on))
+			issue.db_set("first_response_time", first_response_time)
+
+def is_first_response(issue):
+	responses = frappe.get_all('Communication', filters = {'reference_name': issue.name, 'sent_or_received': 'Sent'})
+	if len(responses) == 1:
+		return True
+	return False
+
+def calculate_first_response_time(issue, first_responded_on):
+	issue_creation_date = issue.creation
+	issue_creation_time = get_time_in_seconds(issue_creation_date)
+	first_responded_on_in_seconds = get_time_in_seconds(first_responded_on)
+	support_hours = frappe.get_cached_doc("Service Level Agreement", issue.service_level_agreement).support_and_resolution
+
+	if issue_creation_date.day == first_responded_on.day:
+		if is_work_day(issue_creation_date, support_hours):
+			start_time, end_time = get_working_hours(issue_creation_date, support_hours)
+
+			# issue creation and response on the same day during working hours
+			if is_during_working_hours(issue_creation_date, support_hours) and is_during_working_hours(first_responded_on, support_hours):
+				return get_elapsed_time(issue_creation_date, first_responded_on)
+
+			# issue creation is during working hours, but first response was after working hours
+			elif is_during_working_hours(issue_creation_date, support_hours):
+				return get_elapsed_time(issue_creation_time, end_time)
+
+			# issue creation was before working hours but first response is during working hours
+			elif is_during_working_hours(first_responded_on, support_hours):
+				return get_elapsed_time(start_time, first_responded_on_in_seconds)
+
+			# both issue creation and first response were after working hours
+			else:
+				return 1.0		# this should ideally be zero, but it gets reset when the next response is sent if the value is zero
+
+		else:
+			return 1.0
+
+	else:
+		# response on the next day
+		if date_diff(first_responded_on, issue_creation_date) == 1:
+			first_response_time = 0
+		else:
+			first_response_time = calculate_initial_frt(issue_creation_date, date_diff(first_responded_on, issue_creation_date)- 1, support_hours)
+
+		# time taken on day of issue creation
+		if is_work_day(issue_creation_date, support_hours):
+			start_time, end_time = get_working_hours(issue_creation_date, support_hours)
+
+			if is_during_working_hours(issue_creation_date, support_hours):
+				first_response_time += get_elapsed_time(issue_creation_time, end_time)
+			elif is_before_working_hours(issue_creation_date, support_hours):
+				first_response_time += get_elapsed_time(start_time, end_time)
+
+		# time taken on day of first response
+		if is_work_day(first_responded_on, support_hours):
+			start_time, end_time = get_working_hours(first_responded_on, support_hours)
+
+			if is_during_working_hours(first_responded_on, support_hours):
+				first_response_time += get_elapsed_time(start_time, first_responded_on_in_seconds)
+			elif not is_before_working_hours(first_responded_on, support_hours):
+				first_response_time += get_elapsed_time(start_time, end_time)
+
+		if first_response_time:
+			return first_response_time
+		else:
+			return 1.0
+
+def get_time_in_seconds(date):
+	return timedelta(hours=date.hour, minutes=date.minute, seconds=date.second)
+
+def get_working_hours(date, support_hours):
+	if is_work_day(date, support_hours):
+		weekday = frappe.utils.get_weekday(date)
+		for day in support_hours:
+			if day.workday == weekday:
+				return day.start_time, day.end_time
+
+def is_work_day(date, support_hours):
+	weekday = frappe.utils.get_weekday(date)
+	for day in support_hours:
+		if day.workday == weekday:
+			return True
+	return False
+
+def is_during_working_hours(date, support_hours):
+	start_time, end_time = get_working_hours(date, support_hours)
+	time = get_time_in_seconds(date)
+	if time >= start_time and time <= end_time:
+		return True
+	return False
+
+def get_elapsed_time(start_time, end_time):
+	return round(time_diff_in_seconds(end_time, start_time), 2)
+
+def calculate_initial_frt(issue_creation_date, days_in_between, support_hours):
+	initial_frt = 0
+	for i in range(days_in_between):
+		date = issue_creation_date + timedelta(days = (i+1))
+		if is_work_day(date, support_hours):
+			start_time, end_time = get_working_hours(date, support_hours)
+			initial_frt += get_elapsed_time(start_time, end_time)
+
+	return initial_frt
+
+def is_before_working_hours(date, support_hours):
+	start_time, end_time = get_working_hours(date, support_hours)
+	time = get_time_in_seconds(date)
+	if time < start_time:
+		return True
+	return False
+
+def get_holidays(holiday_list_name):
+	holiday_list = frappe.get_cached_doc("Holiday List", holiday_list_name)
+	holidays = [holiday.holiday_date for holiday in holiday_list.holidays]
+	return holidays
diff --git a/erpnext/support/doctype/issue/test_issue.py b/erpnext/support/doctype/issue/test_issue.py
index 7da5d7f..84f8c39 100644
--- a/erpnext/support/doctype/issue/test_issue.py
+++ b/erpnext/support/doctype/issue/test_issue.py
@@ -5,16 +5,18 @@
 import frappe
 import unittest
 from erpnext.support.doctype.service_level_agreement.test_service_level_agreement import create_service_level_agreements_for_issues
-from frappe.utils import now_datetime, get_datetime, flt
+from frappe.core.doctype.user_permission.test_user_permission import create_user
+from frappe.utils import get_datetime, flt
 import datetime
 from datetime import timedelta
 
-class TestIssue(unittest.TestCase):
+class TestSetUp(unittest.TestCase):
 	def setUp(self):
 		frappe.db.sql("delete from `tabService Level Agreement`")
 		frappe.db.set_value("Support Settings", None, "track_service_level_agreement", 1)
 		create_service_level_agreements_for_issues()
 
+class TestIssue(TestSetUp):
 	def test_response_time_and_resolution_time_based_on_different_sla(self):
 		creation = datetime.datetime(2019, 3, 4, 12, 0)
 
@@ -68,7 +70,7 @@
 		self.assertEqual(issue.resolution_by, datetime.datetime(2019, 3, 6, 12, 0))
 
 		frappe.flags.current_time = datetime.datetime(2019, 3, 4, 15, 0)
-
+		issue.reload()
 		issue.status = 'Closed'
 		issue.save()
 
@@ -133,6 +135,223 @@
 		issue.reload()
 		self.assertEqual(flt(issue.total_hold_time, 2), 2700)
 
+class TestFirstResponseTime(TestSetUp):
+	# working hours used in all cases: Mon-Fri, 10am to 6pm
+	# all dates are in the mm-dd-yyyy format
+
+	# issue creation and first response are on the same day
+	def test_first_response_time_case1(self):
+		"""
+			Test frt when issue creation and first response are during working hours on the same day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 11:00"), get_datetime("06-28-2021 12:00"))
+		self.assertEqual(issue.first_response_time, 3600.0)
+
+	def test_first_response_time_case2(self):
+		"""
+			Test frt when issue creation was during working hours, but first response is sent after working hours on the same day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("06-28-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 21600.0)
+
+	def test_first_response_time_case3(self):
+		"""
+			Test frt when issue creation was before working hours but first response is sent during working hours on the same day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("06-28-2021 12:00"))
+		self.assertEqual(issue.first_response_time, 7200.0)
+
+	def test_first_response_time_case4(self):
+		"""
+			Test frt when both issue creation and first response were after working hours on the same day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 19:00"), get_datetime("06-28-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 1.0)
+
+	def test_first_response_time_case5(self):
+		"""
+			Test frt when both issue creation and first response are on the same day, but it's not a work day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-27-2021 10:00"), get_datetime("06-27-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 1.0)
+
+	# issue creation and first response are on consecutive days
+	def test_first_response_time_case6(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is also sent before working hours, but on the next day. 
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("06-29-2021 6:00"))
+		self.assertEqual(issue.first_response_time, 28800.0)
+
+	def test_first_response_time_case7(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is sent during working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("06-29-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 32400.0)
+
+	def test_first_response_time_case8(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is sent after working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("06-29-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 57600.0)
+
+	def test_first_response_time_case9(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is sent on the next day, which is not a work day.
+		""" 
+		issue = create_issue_and_communication(get_datetime("06-25-2021 6:00"), get_datetime("06-26-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 28800.0)
+
+	def test_first_response_time_case10(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is sent before working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("06-29-2021 6:00"))
+		self.assertEqual(issue.first_response_time, 21600.0)
+
+	def test_first_response_time_case11(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is also sent during working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("06-29-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 25200.0)
+
+	def test_first_response_time_case12(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is sent after working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("06-29-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 50400.0)
+
+	def test_first_response_time_case13(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is sent on the next day, which is not a work day.
+		""" 
+		issue = create_issue_and_communication(get_datetime("06-25-2021 12:00"), get_datetime("06-26-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 21600.0)
+
+	def test_first_response_time_case14(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is sent before working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 20:00"), get_datetime("06-29-2021 6:00"))
+		self.assertEqual(issue.first_response_time, 1.0)
+
+	def test_first_response_time_case15(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is sent during working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 20:00"), get_datetime("06-29-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 3600.0)
+
+	def test_first_response_time_case16(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is also sent after working hours, but on the next day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 20:00"), get_datetime("06-29-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 28800.0)
+
+	def test_first_response_time_case17(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is sent on the next day, which is not a work day.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-25-2021 20:00"), get_datetime("06-26-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 1.0)
+
+	# issue creation and first response are a few days apart
+	def test_first_response_time_case18(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is also sent before working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("07-01-2021 6:00"))
+		self.assertEqual(issue.first_response_time, 86400.0)
+
+	def test_first_response_time_case19(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is sent during working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("07-01-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 90000.0)
+
+	def test_first_response_time_case20(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is sent after working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 6:00"), get_datetime("07-01-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 115200.0)
+
+	def test_first_response_time_case21(self):
+		"""
+			Test frt when the issue was created before working hours and the first response is sent after a few days, on a holiday.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-25-2021 6:00"), get_datetime("06-27-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 28800.0)
+
+	def test_first_response_time_case22(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is sent before working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("07-01-2021 6:00"))
+		self.assertEqual(issue.first_response_time, 79200.0)
+
+	def test_first_response_time_case23(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is also sent during working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("07-01-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 82800.0)
+
+	def test_first_response_time_case24(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is sent after working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 12:00"), get_datetime("07-01-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 108000.0)
+
+	def test_first_response_time_case25(self):
+		"""
+			Test frt when the issue was created during working hours and the first response is sent after a few days, on a holiday.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-25-2021 12:00"), get_datetime("06-27-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 21600.0)
+
+	def test_first_response_time_case26(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is sent before working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 20:00"), get_datetime("07-01-2021 6:00"))
+		self.assertEqual(issue.first_response_time, 57600.0)
+
+	def test_first_response_time_case27(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is sent during working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 20:00"), get_datetime("07-01-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 61200.0)
+
+	def test_first_response_time_case28(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is also sent after working hours, but after a few days.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-28-2021 20:00"), get_datetime("07-01-2021 20:00"))
+		self.assertEqual(issue.first_response_time, 86400.0)
+
+	def test_first_response_time_case29(self):
+		"""
+			Test frt when the issue was created after working hours and the first response is sent after a few days, on a holiday.
+		"""
+		issue = create_issue_and_communication(get_datetime("06-25-2021 20:00"), get_datetime("06-27-2021 11:00"))
+		self.assertEqual(issue.first_response_time, 1.0)
+	
+def create_issue_and_communication(issue_creation, first_responded_on):
+	issue = make_issue(issue_creation, index=1)
+	sender = create_user("test@admin.com")
+	create_communication(issue.name, sender.email, "Sent", first_responded_on)
+	issue.reload()
+
+	return issue
 
 def make_issue(creation=None, customer=None, index=0, priority=None, issue_type=None):
 	issue = frappe.get_doc({
@@ -185,7 +404,7 @@
 
 
 def create_communication(reference_name, sender, sent_or_received, creation):
-	issue = frappe.get_doc({
+	communication = frappe.get_doc({
 		"doctype": "Communication",
 		"communication_type": "Communication",
 		"communication_medium": "Email",
@@ -199,4 +418,4 @@
 		"creation": creation,
 		"reference_name": reference_name
 	})
-	issue.save()
+	communication.save()
\ No newline at end of file
diff --git a/erpnext/support/doctype/service_day/service_day.json b/erpnext/support/doctype/service_day/service_day.json
index 68614b1..9662130 100644
--- a/erpnext/support/doctype/service_day/service_day.json
+++ b/erpnext/support/doctype/service_day/service_day.json
@@ -1,4 +1,5 @@
 {
+ "actions": [],
  "creation": "2019-03-04 12:55:36.403035",
  "doctype": "DocType",
  "editable_grid": 1,
@@ -16,7 +17,8 @@
    "fieldtype": "Select",
    "in_list_view": 1,
    "label": "Workday",
-   "options": "Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday"
+   "options": "Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday",
+   "reqd": 1
   },
   {
    "fieldname": "section_break_2",
@@ -26,7 +28,8 @@
    "fieldname": "start_time",
    "fieldtype": "Time",
    "in_list_view": 1,
-   "label": "Start Time"
+   "label": "Start Time",
+   "reqd": 1
   },
   {
    "fieldname": "column_break_3",
@@ -36,11 +39,13 @@
    "fieldname": "end_time",
    "fieldtype": "Time",
    "in_list_view": 1,
-   "label": "End Time"
+   "label": "End Time",
+   "reqd": 1
   }
  ],
  "istable": 1,
- "modified": "2019-05-05 19:15:08.999579",
+ "links": [],
+ "modified": "2020-07-06 13:28:47.303873",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Service Day",
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.js b/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
index 00060b9..ae2080c 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.js
@@ -3,16 +3,87 @@
 
 frappe.ui.form.on('Service Level Agreement', {
 	setup: function(frm) {
-		let allow_statuses = [];
-		const exclude_statuses = ['Open', 'Closed', 'Resolved'];
+		if (cint(frm.doc.apply_sla_for_resolution) === 1) {
+			frm.get_field('priorities').grid.editable_fields = [
+				{fieldname: 'default_priority', columns: 1},
+				{fieldname: 'priority', columns: 2},
+				{fieldname: 'response_time', columns: 2},
+				{fieldname: 'resolution_time', columns: 2}
+			];
+		} else {
+			frm.get_field('priorities').grid.editable_fields = [
+				{fieldname: 'default_priority', columns: 1},
+				{fieldname: 'priority', columns: 2},
+				{fieldname: 'response_time', columns: 3},
+			];
+		}
+	},
 
-		frappe.model.with_doctype('Issue', () => {
-			let statuses = frappe.meta.get_docfield('Issue', 'status', frm.doc.name).options;
-			statuses = statuses.split('\n');
-			allow_statuses = statuses.filter((status) => !exclude_statuses.includes(status));
-			frm.fields_dict.pause_sla_on.grid.update_docfield_property(
-				'status', 'options', [''].concat(allow_statuses)
-			);
+	refresh: function(frm) {
+		frm.trigger('fetch_status_fields');
+		frm.trigger('toggle_resolution_fields');
+	},
+
+	document_type: function(frm) {
+		frm.trigger('fetch_status_fields');
+	},
+
+	fetch_status_fields: function(frm) {
+		let allow_statuses = [];
+		let exclude_statuses = [];
+
+		if (frm.doc.document_type) {
+			frappe.model.with_doctype(frm.doc.document_type, () => {
+				let statuses = frappe.meta.get_docfield(frm.doc.document_type, 'status', frm.doc.name).options;
+				statuses = statuses.split('\n');
+
+				exclude_statuses = ['Open', 'Closed'];
+				allow_statuses = statuses.filter((status) => !exclude_statuses.includes(status));
+
+				frm.fields_dict.pause_sla_on.grid.update_docfield_property(
+					'status', 'options', [''].concat(allow_statuses)
+				);
+
+				exclude_statuses = ['Open'];
+				allow_statuses = statuses.filter((status) => !exclude_statuses.includes(status));
+				frm.fields_dict.sla_fulfilled_on.grid.update_docfield_property(
+					'status', 'options', [''].concat(allow_statuses)
+				);
+			});
+		}
+
+		frm.refresh_field('pause_sla_on');
+	},
+
+	apply_sla_for_resolution: function(frm) {
+		frm.trigger('toggle_resolution_fields');
+	},
+
+	toggle_resolution_fields: function(frm) {
+		if (cint(frm.doc.apply_sla_for_resolution) === 1) {
+			frm.fields_dict.priorities.grid.update_docfield_property('resolution_time', 'hidden', 0);
+			frm.fields_dict.priorities.grid.update_docfield_property('resolution_time', 'reqd', 1);
+		} else {
+			frm.fields_dict.priorities.grid.update_docfield_property('resolution_time', 'hidden', 1);
+			frm.fields_dict.priorities.grid.update_docfield_property('resolution_time', 'reqd', 0);
+		}
+
+		frm.refresh_field('priorities');
+	},
+
+	onload: function(frm) {
+		frm.set_query("document_type", function() {
+			let invalid_doctypes = frappe.model.core_doctypes_list;
+			invalid_doctypes.push(frm.doc.doctype, 'Cost Center', 'Company');
+
+			return {
+				filters: [
+					['DocType', 'issingle', '=', 0],
+					['DocType', 'istable', '=', 0],
+					['DocType', 'name', 'not in', invalid_doctypes],
+					['DocType', 'module', 'not in', ["Email", "Core", "Custom", "Event Streaming", "Social", "Data Migration", "Geo", "Desk"]]
+				]
+			};
 		});
 	}
 });
diff --git a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
index 1678f04..b1273b7 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.json
@@ -1,18 +1,18 @@
 {
  "actions": [],
- "autoname": "format:SLA-{service_level}-{####}",
+ "autoname": "format:SLA-{document_type}-{service_level}",
  "creation": "2018-12-26 21:08:15.448812",
  "doctype": "DocType",
  "editable_grid": 1,
  "engine": "InnoDB",
  "field_order": [
-  "enable",
+  "enabled",
   "section_break_2",
-  "service_level",
-  "default_priority",
+  "document_type",
   "default_service_level_agreement",
+  "default_priority",
   "column_break_2",
-  "employee_group",
+  "service_level",
   "holiday_list",
   "entity_section",
   "entity_type",
@@ -24,13 +24,14 @@
   "condition_description",
   "agreement_details_section",
   "start_date",
-  "active",
   "column_break_7",
   "end_date",
-  "section_break_18",
-  "pause_sla_on",
   "response_and_resolution_time_section",
+  "apply_sla_for_resolution",
   "priorities",
+  "status_details",
+  "sla_fulfilled_on",
+  "pause_sla_on",
   "support_and_resolution_section_break",
   "support_and_resolution"
  ],
@@ -40,7 +41,7 @@
    "fieldtype": "Data",
    "in_list_view": 1,
    "in_standard_filter": 1,
-   "label": "Service Level",
+   "label": "Service Level Name",
    "reqd": 1
   },
   {
@@ -55,20 +56,12 @@
    "fieldtype": "Column Break"
   },
   {
-   "fieldname": "employee_group",
-   "fieldtype": "Link",
-   "in_list_view": 1,
-   "in_standard_filter": 1,
-   "label": "Employee Group",
-   "options": "Employee Group"
-  },
-  {
+   "depends_on": "eval: !doc.default_service_level_agreement",
    "fieldname": "agreement_details_section",
    "fieldtype": "Section Break",
    "label": "Agreement Details"
   },
   {
-   "depends_on": "eval: !doc.default_service_level_agreement",
    "fieldname": "start_date",
    "fieldtype": "Date",
    "label": "Start Date"
@@ -85,21 +78,18 @@
    "label": "End Date"
   },
   {
-   "collapsible": 1,
    "fieldname": "response_and_resolution_time_section",
    "fieldtype": "Section Break",
    "label": "Response and Resolution Time"
   },
   {
-   "collapsible": 1,
    "fieldname": "support_and_resolution_section_break",
    "fieldtype": "Section Break",
-   "label": "Support Hours"
+   "label": "Working Hours"
   },
   {
    "fieldname": "support_and_resolution",
    "fieldtype": "Table",
-   "label": "Support and Resolution",
    "options": "Service Day",
    "reqd": 1
   },
@@ -111,13 +101,6 @@
    "reqd": 1
   },
   {
-   "default": "1",
-   "fieldname": "active",
-   "fieldtype": "Check",
-   "label": "Active",
-   "read_only": 1
-  },
-  {
    "fieldname": "column_break_10",
    "fieldtype": "Column Break"
   },
@@ -143,14 +126,9 @@
    "options": "\nCustomer\nCustomer Group\nTerritory"
   },
   {
-   "default": "1",
-   "fieldname": "enable",
-   "fieldtype": "Check",
-   "label": "Enable"
-  },
-  {
    "fieldname": "section_break_2",
-   "fieldtype": "Section Break"
+   "fieldtype": "Section Break",
+   "hide_border": 1
   },
   {
    "default": "0",
@@ -166,13 +144,44 @@
    "read_only": 1
   },
   {
-   "fieldname": "section_break_18",
-   "fieldtype": "Section Break",
-   "hide_border": 1
-  },
-  {
    "fieldname": "pause_sla_on",
    "fieldtype": "Table",
+   "label": "SLA Paused On",
+   "options": "Pause SLA On Status"
+  },
+  {
+   "fieldname": "document_type",
+   "fieldtype": "Link",
+   "label": "Document Type",
+   "options": "DocType",
+   "reqd": 1,
+   "set_only_once": 1
+  },
+  {
+   "default": "1",
+   "fieldname": "enabled",
+   "fieldtype": "Check",
+   "label": "Enabled"
+  },
+  {
+   "fieldname": "status_details",
+   "fieldtype": "Section Break",
+   "label": "Status Details"
+  },
+  {
+   "fieldname": "sla_fulfilled_on",
+   "fieldtype": "Table",
+   "label": "SLA Fulfilled On",
+   "options": "SLA Fulfilled On Status",
+   "reqd": 1
+  },
+  {
+   "default": "1",
+   "fieldname": "apply_sla_for_resolution",
+   "fieldtype": "Check",
+   "label": "Apply SLA for Resolution Time"
+  },
+  {
    "label": "Pause SLA On",
    "options": "Pause SLA On Status"
   },
@@ -198,7 +207,7 @@
   }
  ],
  "links": [],
- "modified": "2021-07-27 11:16:45.596579",
+ "modified": "2021-07-09 12:28:46.283334",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Service Level Agreement",
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 ec0237e..eb9fa12 100644
--- a/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/service_level_agreement.py
@@ -7,46 +7,45 @@
 import frappe
 from frappe.model.document import Document
 from frappe import _
-from frappe.utils import getdate, get_weekdays, get_link_to_form, nowdate
+from frappe.core.utils import get_parent_doc
+from frappe.utils import time_diff_in_seconds, getdate, get_weekdays, add_to_date, get_time, get_datetime, \
+	get_time_zone, to_timedelta, get_datetime_str, get_link_to_form, cint, nowdate
+from datetime import datetime
+from erpnext.support.doctype.issue.issue import get_holidays
 from frappe.utils.safe_exec import get_safe_globals
 
 class ServiceLevelAgreement(Document):
-
 	def validate(self):
 		self.validate_doc()
+		self.validate_status_field()
 		self.check_priorities()
 		self.check_support_and_resolution()
 		self.validate_condition()
 
 	def check_priorities(self):
-		default_priority = []
 		priorities = []
 
 		for priority in self.priorities:
 			# Check if response and resolution time is set for every priority
-			if not priority.response_time or not priority.resolution_time:
-				frappe.throw(_("Set Response Time and Resolution Time for Priority {0} in row {1}.").format(priority.priority, priority.idx))
+			if not priority.response_time:
+				frappe.throw(_("Set Response Time for Priority {0} in row {1}.").format(priority.priority, priority.idx))
+
+			if self.apply_sla_for_resolution:
+				if not priority.resolution_time:
+					frappe.throw(_("Set Response Time for Priority {0} in row {1}.").format(priority.priority, priority.idx))
+
+				response = priority.response_time
+				resolution = priority.resolution_time
+				if response > resolution:
+					frappe.throw(_("Response Time for {0} priority in row {1} can't be greater than Resolution Time.").format(priority.priority, priority.idx))
 
 			priorities.append(priority.priority)
 
-			if priority.default_priority:
-				default_priority.append(priority.default_priority)
-
-			response = priority.response_time
-			resolution = priority.resolution_time
-
-			if response > resolution:
-				frappe.throw(_("Response Time for {0} priority in row {1} can't be greater than Resolution Time.").format(priority.priority, priority.idx))
-
 		# Check if repeated priority
 		if not len(set(priorities)) == len(priorities):
 			repeated_priority = get_repeated(priorities)
 			frappe.throw(_("Priority {0} has been repeated.").format(repeated_priority))
 
-		# Check if repeated default priority
-		if not len(set(default_priority)) == len(default_priority):
-			frappe.throw(_("Select only one Priority as Default."))
-
 		# set default priority from priorities
 		try:
 			self.default_priority = next(d.priority for d in self.priorities if d.default_priority)
@@ -58,17 +57,12 @@
 		support_days = []
 
 		for support_and_resolution in self.support_and_resolution:
-			# Check if start and end time is set for every support day
-			if not (support_and_resolution.start_time or support_and_resolution.end_time):
-				frappe.throw(_("Set Start Time and End Time for  \
-					Support Day {0} at index {1}.".format(support_and_resolution.workday, support_and_resolution.idx)))
-
 			support_days.append(support_and_resolution.workday)
 			support_and_resolution.idx = week.index(support_and_resolution.workday) + 1
 
-			if support_and_resolution.start_time >= support_and_resolution.end_time:
-				frappe.throw(_("Start Time can't be greater than or equal to End Time \
-					for {0}.".format(support_and_resolution.workday)))
+			if to_timedelta(support_and_resolution.start_time) >= to_timedelta(support_and_resolution.end_time):
+				frappe.throw(_("Start Time can't be greater than or equal to End Time for {0}.").format(
+					support_and_resolution.workday))
 
 		# Check for repeated workday
 		if not len(set(support_days)) == len(support_days):
@@ -76,24 +70,34 @@
 			frappe.throw(_("Workday {0} has been repeated.").format(repeated_days))
 
 	def validate_doc(self):
-		if not frappe.db.get_single_value("Support Settings", "track_service_level_agreement") and self.enable:
+		if self.enabled and self.document_type == "Issue" \
+			and not frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
 			frappe.throw(_("{0} is not enabled in {1}").format(frappe.bold("Track Service Level Agreement"),
 				get_link_to_form("Support Settings", "Support Settings")))
 
-		if self.default_service_level_agreement:
-			if frappe.db.exists("Service Level Agreement", {"default_service_level_agreement": "1", "name": ["!=", self.name]}):
-				frappe.throw(_("A Default Service Level Agreement already exists."))
-		else:
-			if self.start_date and self.end_date:
-				if getdate(self.start_date) >= getdate(self.end_date):
-					frappe.throw(_("Start Date of Agreement can't be greater than or equal to End Date."))
+		if self.default_service_level_agreement and frappe.db.exists("Service Level Agreement", {
+			"document_type": self.document_type,
+			"default_service_level_agreement": "1",
+			"name": ["!=", self.name]
+		}):
+			frappe.throw(_("Default Service Level Agreement for {0} already exists.").format(self.document_type))
 
-				if getdate(self.end_date) < getdate(frappe.utils.getdate()):
-					frappe.throw(_("End Date of Agreement can't be less than today."))
+		if self.start_date and self.end_date:
+			self.validate_from_to_dates(self.start_date, self.end_date)
 
-		if self.entity_type and self.entity:
-			if frappe.db.exists("Service Level Agreement", {"entity_type": self.entity_type, "entity": self.entity, "name": ["!=", self.name]}):
-				frappe.throw(_("Service Level Agreement with Entity Type {0} and Entity {1} already exists.").format(self.entity_type, self.entity))
+		if self.entity_type and self.entity and frappe.db.exists("Service Level Agreement", {
+			"entity_type": self.entity_type,
+			"entity": self.entity,
+			"name": ["!=", self.name]
+		}):
+			frappe.throw(_("Service Level Agreement for {0} {1} already exists.").format(
+				frappe.bold(self.entity_type), frappe.bold(self.entity)))
+
+	def validate_status_field(self):
+		meta = frappe.get_meta(self.document_type)
+		if not meta.get_field("status"):
+			frappe.throw(_("The Document Type {0} must have a Status field to configure Service Level Agreement").format(
+				frappe.bold(self.document_type)))
 
 	def validate_condition(self):
 		temp_doc = frappe.new_doc('Issue')
@@ -112,24 +116,112 @@
 			"resolution_time": priority.resolution_time
 		})
 
+	def before_insert(self):
+		# no need to set up SLA fields for Issue dt as they are standard fields in Issue
+		if self.document_type == "Issue":
+			return
+
+		service_level_agreement_fields = get_service_level_agreement_fields()
+		meta = frappe.get_meta(self.document_type, cached=False)
+
+		if meta.custom:
+			self.create_docfields(meta, service_level_agreement_fields)
+		else:
+			self.create_custom_fields(meta, service_level_agreement_fields)
+
+	def on_trash(self):
+		set_documents_with_active_service_level_agreement()
+
+	def after_insert(self):
+		set_documents_with_active_service_level_agreement()
+
+	def on_update(self):
+		set_documents_with_active_service_level_agreement()
+
+	def create_docfields(self, meta, service_level_agreement_fields):
+		last_index = len(meta.fields)
+
+		for field in service_level_agreement_fields:
+			if not meta.has_field(field.get("fieldname")):
+				last_index += 1
+
+				frappe.get_doc({
+					"doctype": "DocField",
+					"idx": last_index,
+					"parenttype": "DocType",
+					"parentfield": "fields",
+					"parent": self.document_type,
+					"label": field.get("label"),
+					"fieldname": field.get("fieldname"),
+					"fieldtype": field.get("fieldtype"),
+					"collapsible": field.get("collapsible"),
+					"options": field.get("options"),
+					"read_only": field.get("read_only"),
+					"hidden": field.get("hidden"),
+					"description": field.get("description"),
+					"default": field.get("default"),
+				}).insert(ignore_permissions=True)
+			else:
+				existing_field = meta.get_field(field.get("fieldname"))
+				self.reset_field_properties(existing_field, "DocField", field)
+
+		# to update meta and modified timestamp
+		frappe.get_doc('DocType', self.document_type).save(ignore_permissions=True)
+
+	def create_custom_fields(self, meta, service_level_agreement_fields):
+		for field in service_level_agreement_fields:
+			if not meta.has_field(field.get("fieldname")):
+				frappe.get_doc({
+					"doctype": "Custom Field",
+					"dt": self.document_type,
+					"label": field.get("label"),
+					"fieldname": field.get("fieldname"),
+					"fieldtype": field.get("fieldtype"),
+					"insert_after": "append",
+					"collapsible": field.get("collapsible"),
+					"options": field.get("options"),
+					"read_only": field.get("read_only"),
+					"hidden": field.get("hidden"),
+					"description": field.get("description"),
+					"default": field.get("default"),
+				}).insert(ignore_permissions=True)
+			else:
+				existing_field = meta.get_field(field.get("fieldname"))
+				self.reset_field_properties(existing_field, "Custom Field", field)
+
+	def reset_field_properties(self, field, field_dt, sla_field):
+		field = frappe.get_doc(field_dt, {"fieldname": field.fieldname})
+		field.label = sla_field.get("label")
+		field.fieldname = sla_field.get("fieldname")
+		field.fieldtype = sla_field.get("fieldtype")
+		field.collapsible = sla_field.get("collapsible")
+		field.hidden = sla_field.get("hidden")
+		field.options = sla_field.get("options")
+		field.read_only = sla_field.get("read_only")
+		field.hidden = sla_field.get("hidden")
+		field.description = sla_field.get("description")
+		field.default = sla_field.get("default")
+		field.save(ignore_permissions=True)
+
+
 def check_agreement_status():
-	service_level_agreements = frappe.get_list("Service Level Agreement", filters=[
-		{"active": 1},
+	service_level_agreements = frappe.get_all("Service Level Agreement", filters=[
+		{"enabled": 1},
 		{"default_service_level_agreement": 0}
 	], fields=["name"])
 
 	for service_level_agreement in service_level_agreements:
 		doc = frappe.get_doc("Service Level Agreement", service_level_agreement.name)
 		if doc.end_date and getdate(doc.end_date) < getdate(frappe.utils.getdate()):
-			frappe.db.set_value("Service Level Agreement", service_level_agreement.name, "active", 0)
+			frappe.db.set_value("Service Level Agreement", service_level_agreement.name, "enabled", 0)
 
 def get_active_service_level_agreement_for(doc):
 	if not frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
 		return
 
 	filters = [
-		["Service Level Agreement", "active", "=", 1],
-		["Service Level Agreement", "enable", "=", 1]
+		["Service Level Agreement", "document_type", "=", doctype],
+		["Service Level Agreement", "enabled", "=", 1]
 	]
 
 	if doc.get('priority'):
@@ -153,7 +245,7 @@
 	filters += [["Service Level Agreement", "default_service_level_agreement", "=", 0]]
 	agreements = frappe.get_all("Service Level Agreement", filters=filters, or_filters=or_filters,
 		fields=["name", "default_priority", "condition"])
-	
+
 	# check if the current document on which SLA is to be applied fulfills all the conditions
 	filtered_agreements = []
 	for agreement in agreements:
@@ -169,40 +261,41 @@
 def get_context(doc):
 	return {"doc": doc.as_dict(), "nowdate": nowdate, "frappe": frappe._dict(utils=get_safe_globals().get("frappe").get("utils"))}
 
+
 def get_customer_group(customer):
-	if customer:
-		return frappe.db.get_value("Customer", customer, "customer_group")
+	return frappe.db.get_value("Customer", customer, "customer_group") if customer else None
+
 
 def get_customer_territory(customer):
-	if customer:
-		return frappe.db.get_value("Customer", customer, "territory")
+	return frappe.db.get_value("Customer", customer, "territory") if customer else None
+
 
 @frappe.whitelist()
-def get_service_level_agreement_filters(name, customer=None):
+def get_service_level_agreement_filters(doctype, name, customer=None):
 	if not frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
 		return
 
 	filters = [
-		["Service Level Agreement", "active", "=", 1],
-		["Service Level Agreement", "enable", "=", 1]
+		["Service Level Agreement", "document_type", "=", doctype],
+		["Service Level Agreement", "enabled", "=", 1]
 	]
 
-	if not customer:
-		or_filters = [
-			["Service Level Agreement", "default_service_level_agreement", "=", 1]
-		]
-	else:
+	or_filters = [
+		["Service Level Agreement", "default_service_level_agreement", "=", 1]
+	]
+
+	if customer:
 		# Include SLA with No Entity and Entity Type
-		or_filters = [
-			["Service Level Agreement", "entity", "in", [customer, get_customer_group(customer), get_customer_territory(customer), ""]],
-			["Service Level Agreement", "default_service_level_agreement", "=", 1]
-		]
+		or_filters.append(
+			["Service Level Agreement", "entity", "in", [customer, get_customer_group(customer), get_customer_territory(customer), ""]]
+		)
 
 	return {
-		"priority": [priority.priority for priority in frappe.get_list("Service Level Priority", filters={"parent": name}, fields=["priority"])],
-		"service_level_agreements": [d.name for d in frappe.get_list("Service Level Agreement", filters=filters, or_filters=or_filters)]
+		"priority": [priority.priority for priority in frappe.get_all("Service Level Priority", filters={"parent": name}, fields=["priority"])],
+		"service_level_agreements": [d.name for d in frappe.get_all("Service Level Agreement", filters=filters, or_filters=or_filters)]
 	}
 
+
 def get_repeated(values):
 	unique_list = []
 	diff = []
@@ -213,3 +306,575 @@
 			if value not in diff:
 				diff.append(str(value))
 	return " ".join(diff)
+
+
+def get_documents_with_active_service_level_agreement():
+	sla_doctypes = frappe.cache().hget("service_level_agreement", "active")
+
+	if sla_doctypes is None:
+		return set_documents_with_active_service_level_agreement()
+
+	return sla_doctypes
+
+
+def set_documents_with_active_service_level_agreement():
+	active = [sla.document_type for sla in frappe.get_all("Service Level Agreement", fields=["document_type"])]
+	frappe.cache().hset("service_level_agreement", "active", active)
+	return active
+
+
+def apply(doc, method=None):
+	# Applies SLA to document on validate
+	if frappe.flags.in_patch or frappe.flags.in_install or frappe.flags.in_setup_wizard or \
+		doc.doctype not in get_documents_with_active_service_level_agreement():
+		return
+
+	service_level_agreement = get_active_service_level_agreement_for(doc)
+
+	if not service_level_agreement:
+		return
+
+	set_sla_properties(doc, service_level_agreement)
+
+
+def set_sla_properties(doc, service_level_agreement):
+	if frappe.db.exists(doc.doctype, doc.name):
+		from_db = frappe.get_doc(doc.doctype, doc.name)
+	else:
+		from_db = frappe._dict({})
+
+	meta = frappe.get_meta(doc.doctype)
+
+	if meta.has_field("customer") and service_level_agreement.customer and doc.get("customer") and \
+		not service_level_agreement.customer == doc.get("customer"):
+		frappe.throw(_("Service Level Agreement {0} is specific to Customer {1}").format(service_level_agreement.name,
+			service_level_agreement.customer))
+
+	doc.service_level_agreement = service_level_agreement.name
+	doc.priority = doc.get("priority") or service_level_agreement.default_priority
+	priority = get_priority(doc)
+
+	if not doc.creation:
+		doc.creation = now_datetime(doc.get("owner"))
+
+		if meta.has_field("service_level_agreement_creation"):
+			doc.service_level_agreement_creation = now_datetime(doc.get("owner"))
+
+	start_date_time = get_datetime(doc.get("service_level_agreement_creation") or doc.creation)
+
+	set_response_by_and_variance(doc, meta, start_date_time, priority)
+	if service_level_agreement.apply_sla_for_resolution:
+		set_resolution_by_and_variance(doc, meta, start_date_time, priority)
+
+	update_status(doc, from_db, meta)
+
+
+def update_status(doc, from_db, meta):
+	if meta.has_field("status"):
+		if meta.has_field("first_responded_on") and doc.status != "Open" and \
+			from_db.status == "Open" and not doc.first_responded_on:
+			doc.first_responded_on = frappe.flags.current_time or now_datetime(doc.get("owner"))
+
+		if meta.has_field("service_level_agreement") and doc.service_level_agreement:
+			# mark sla status as fulfilled based on the configuration
+			fulfillment_statuses = [entry.status for entry in frappe.db.get_all("SLA Fulfilled On Status", filters={
+				"parent": doc.service_level_agreement
+			}, fields=["status"])]
+
+			if doc.status in fulfillment_statuses and from_db.status not in fulfillment_statuses:
+				apply_sla_for_resolution = frappe.db.get_value("Service Level Agreement", doc.service_level_agreement,
+					"apply_sla_for_resolution")
+
+				if apply_sla_for_resolution and meta.has_field("resolution_date"):
+					doc.resolution_date = frappe.flags.current_time or now_datetime(doc.get("owner"))
+
+				if meta.has_field("agreement_status") and from_db.agreement_status == "Ongoing":
+					set_service_level_agreement_variance(doc.doctype, doc.name)
+					update_agreement_status(doc, meta)
+
+				if apply_sla_for_resolution:
+					set_resolution_time(doc, meta)
+					set_user_resolution_time(doc, meta)
+
+		if doc.status == "Open" and from_db.status != "Open":
+			# if no date, it should be set as None and not a blank string "", as per mysql strict config
+			# enable SLA and variance on Reopen
+			reset_metrics(doc, meta)
+			set_service_level_agreement_variance(doc.doctype, doc.name)
+
+	handle_hold_time(doc, meta, from_db.status)
+
+
+def get_expected_time_for(parameter, service_level, start_date_time):
+	current_date_time = start_date_time
+	expected_time = current_date_time
+	start_time = end_time = None
+	expected_time_is_set = 0
+
+	allotted_seconds = get_allotted_seconds(parameter, service_level)
+	support_days = get_support_days(service_level)
+	holidays = get_holidays(service_level.get("holiday_list"))
+	weekdays = get_weekdays()
+
+	while not expected_time_is_set:
+		current_weekday = weekdays[current_date_time.weekday()]
+
+		if not is_holiday(current_date_time, holidays) and current_weekday in support_days:
+			if getdate(current_date_time) == getdate(start_date_time) \
+				and get_time_in_timedelta(current_date_time.time()) > support_days[current_weekday].start_time:
+				start_time = current_date_time - datetime(current_date_time.year, current_date_time.month, current_date_time.day)
+			else:
+				start_time = support_days[current_weekday].start_time
+
+			end_time = support_days[current_weekday].end_time
+			time_left_today = time_diff_in_seconds(end_time, start_time)
+			# no time left for support today
+			if time_left_today <= 0:
+				pass
+
+			elif allotted_seconds:
+				if time_left_today >= allotted_seconds:
+					expected_time = datetime.combine(getdate(current_date_time), get_time(start_time))
+					expected_time = add_to_date(expected_time, seconds=allotted_seconds)
+					expected_time_is_set = 1
+				else:
+					allotted_seconds = allotted_seconds - time_left_today
+
+		if not expected_time_is_set:
+			current_date_time = add_to_date(current_date_time, days=1)
+
+	if end_time and allotted_seconds >= 86400:
+		current_date_time = datetime.combine(getdate(current_date_time), get_time(end_time))
+	else:
+		current_date_time = expected_time
+
+	return current_date_time
+
+
+def get_allotted_seconds(parameter, service_level):
+	allotted_seconds = 0
+	if parameter == "response":
+		allotted_seconds = service_level.get("response_time")
+	elif parameter == "resolution":
+		allotted_seconds = service_level.get("resolution_time")
+	else:
+		frappe.throw(_("{0} parameter is invalid").format(parameter))
+
+	return allotted_seconds
+
+
+def get_support_days(service_level):
+	support_days = {}
+	for service in service_level.get("support_and_resolution"):
+		support_days[service.workday] = frappe._dict({
+			"start_time": service.start_time,
+			"end_time": service.end_time,
+		})
+	return support_days
+
+
+def set_service_level_agreement_variance(doctype, doc=None):
+
+	filters = {"status": "Open", "agreement_status": "Ongoing"}
+
+	if doc:
+		filters = {"name": doc}
+
+	for entry in frappe.get_all(doctype, filters=filters):
+		current_doc = frappe.get_doc(doctype, entry.name)
+		current_time = frappe.flags.current_time or now_datetime(current_doc.get("owner"))
+		apply_sla_for_resolution = frappe.db.get_value("Service Level Agreement", current_doc.service_level_agreement,
+			"apply_sla_for_resolution")
+
+		if not current_doc.first_responded_on: # first_responded_on set when first reply is sent to customer
+			variance = round(time_diff_in_seconds(current_doc.response_by, current_time), 2)
+			frappe.db.set_value(current_doc.doctype, current_doc.name, "response_by_variance", variance, update_modified=False)
+
+			if variance < 0:
+				frappe.db.set_value(current_doc.doctype, current_doc.name, "agreement_status", "Failed", update_modified=False)
+
+		if apply_sla_for_resolution and not current_doc.get("resolution_date"): # resolution_date set when issue has been closed
+			variance = round(time_diff_in_seconds(current_doc.resolution_by, current_time), 2)
+			frappe.db.set_value(current_doc.doctype, current_doc.name, "resolution_by_variance", variance, update_modified=False)
+
+			if variance < 0:
+				frappe.db.set_value(current_doc.doctype, current_doc.name, "agreement_status", "Failed", update_modified=False)
+
+
+def set_user_resolution_time(doc, meta):
+	# total time taken by a user to close the issue apart from wait_time
+	if not meta.has_field("user_resolution_time"):
+		return
+
+	communications = frappe.get_all("Communication", filters={
+			"reference_doctype": doc.doctype,
+			"reference_name": doc.name
+		}, fields=["sent_or_received", "name", "creation"], order_by="creation")
+
+	pending_time = []
+	for i in range(len(communications)):
+		if communications[i].sent_or_received == "Received" and communications[i-1].sent_or_received == "Sent":
+			wait_time = time_diff_in_seconds(communications[i].creation, communications[i-1].creation)
+			if wait_time > 0:
+				pending_time.append(wait_time)
+
+	total_pending_time = sum(pending_time)
+	resolution_time_in_secs = time_diff_in_seconds(doc.resolution_date, doc.creation)
+	doc.user_resolution_time = resolution_time_in_secs - total_pending_time
+
+
+def change_service_level_agreement_and_priority(self):
+	if self.service_level_agreement and frappe.db.exists("Issue", self.name) and \
+		frappe.db.get_single_value("Support Settings", "track_service_level_agreement"):
+
+		if not self.priority == frappe.db.get_value("Issue", self.name, "priority"):
+			self.set_response_and_resolution_time(priority=self.priority, service_level_agreement=self.service_level_agreement)
+			frappe.msgprint(_("Priority has been changed to {0}.").format(self.priority))
+
+		if not self.service_level_agreement == frappe.db.get_value("Issue", self.name, "service_level_agreement"):
+			self.set_response_and_resolution_time(priority=self.priority, service_level_agreement=self.service_level_agreement)
+			frappe.msgprint(_("Service Level Agreement has been changed to {0}.").format(self.service_level_agreement))
+
+
+def get_priority(doc):
+	service_level_agreement = frappe.get_doc("Service Level Agreement", doc.service_level_agreement)
+	priority = service_level_agreement.get_service_level_agreement_priority(doc.priority)
+	priority.update({
+		"support_and_resolution": service_level_agreement.support_and_resolution,
+		"holiday_list": service_level_agreement.holiday_list
+	})
+	return priority
+
+
+def reset_service_level_agreement(doc, reason, user):
+	if not frappe.db.get_single_value("Support Settings", "allow_resetting_service_level_agreement"):
+		frappe.throw(_("Allow Resetting Service Level Agreement from Support Settings."))
+
+	frappe.get_doc({
+		"doctype": "Comment",
+		"comment_type": "Info",
+		"reference_doctype": doc.doctype,
+		"reference_name": doc.name,
+		"comment_email": user,
+		"content": " resetted Service Level Agreement - {0}".format(_(reason)),
+	}).insert(ignore_permissions=True)
+
+	doc.service_level_agreement_creation = now_datetime(doc.get("owner"))
+	doc.set_response_and_resolution_time(priority=doc.priority, service_level_agreement=doc.service_level_agreement)
+	doc.agreement_status = "Ongoing"
+	doc.save()
+
+
+def reset_metrics(doc, meta):
+	if meta.has_field("resolution_date"):
+		doc.resolution_date = None
+
+	if not meta.has_field("resolution_time"):
+		doc.resolution_time = None
+
+	if not meta.has_field("user_resolution_time"):
+		doc.user_resolution_time = None
+
+	if meta.has_field("agreement_status"):
+		doc.agreement_status = "Ongoing"
+
+
+def set_resolution_time(doc, meta):
+	# total time taken from issue creation to closing
+	if not meta.has_field("resolution_time"):
+		return
+
+	doc.resolution_time = time_diff_in_seconds(doc.resolution_date, doc.creation)
+
+
+# called via hooks on communication update
+def update_hold_time(doc, status):
+	parent = get_parent_doc(doc)
+	if not parent:
+		return
+
+	if doc.communication_type == "Comment":
+		return
+
+	status_field = parent.meta.get_field("status")
+	if status_field:
+		options = (status_field.options or "").splitlines()
+
+		# if status has a "Replied" option, then handle hold time
+		if ("Replied" in options) and doc.sent_or_received == "Received":
+			meta = frappe.get_meta(parent.doctype)
+			handle_hold_time(parent, meta, 'Replied')
+
+
+def handle_hold_time(doc, meta, status):
+	if meta.has_field("service_level_agreement") and doc.service_level_agreement:
+		# set response and resolution variance as None as the issue is on Hold for status as Replied
+		hold_statuses = [entry.status for entry in frappe.db.get_all("Pause SLA On Status", filters={
+				"parent": doc.service_level_agreement
+			}, fields=["status"])]
+
+		if not hold_statuses:
+			return
+
+		if meta.has_field("status") and doc.status in hold_statuses and status not in hold_statuses:
+			apply_hold_status(doc, meta)
+
+		# calculate hold time when status is changed from any hold status to any non-hold status
+		if meta.has_field("status") and doc.status not in hold_statuses and status in hold_statuses:
+			reset_hold_status_and_update_hold_time(doc, meta)
+
+
+def apply_hold_status(doc, meta):
+	update_values = {'on_hold_since': frappe.flags.current_time or now_datetime(doc.get("owner"))}
+
+	if meta.has_field("first_responded_on") and not doc.first_responded_on:
+		update_values['response_by'] = None
+		update_values['response_by_variance'] = 0
+
+	update_values['resolution_by'] = None
+	update_values['resolution_by_variance'] = 0
+
+	doc.db_set(update_values)
+
+
+def reset_hold_status_and_update_hold_time(doc, meta):
+	hold_time = doc.total_hold_time if meta.has_field("total_hold_time") and doc.total_hold_time else 0
+	now_time = frappe.flags.current_time or now_datetime(doc.get("owner"))
+	last_hold_time = 0
+	update_values = {}
+
+	if meta.has_field("on_hold_since") and doc.on_hold_since:
+		# last_hold_time will be added to the sla variables
+		last_hold_time = time_diff_in_seconds(now_time, doc.on_hold_since)
+		update_values['total_hold_time'] = hold_time + last_hold_time
+
+	# re-calculate SLA variables after issue changes from any hold status to any non-hold status
+	start_date_time = get_datetime(doc.get("service_level_agreement_creation") or doc.creation)
+	priority = get_priority(doc)
+	now_time = frappe.flags.current_time or now_datetime(doc.get("owner"))
+
+	# add hold time to response by variance
+	if meta.has_field("first_responded_on") and not doc.first_responded_on:
+		response_by = get_expected_time_for(parameter="response", service_level=priority, start_date_time=start_date_time)
+		response_by = add_to_date(response_by, seconds=round(last_hold_time))
+		response_by_variance = round(time_diff_in_seconds(response_by, now_time))
+
+		update_values['response_by'] = response_by
+		update_values['response_by_variance'] = response_by_variance + last_hold_time
+
+	# add hold time to resolution by variance
+	if frappe.db.get_value("Service Level Agreement", doc.service_level_agreement, "apply_sla_for_resolution"):
+		resolution_by = get_expected_time_for(parameter="resolution", service_level=priority, start_date_time=start_date_time)
+		resolution_by = add_to_date(resolution_by, seconds=round(last_hold_time))
+		resolution_by_variance = round(time_diff_in_seconds(resolution_by, now_time))
+
+		update_values['resolution_by'] = resolution_by
+		update_values['resolution_by_variance'] = resolution_by_variance + last_hold_time
+
+	update_values['on_hold_since'] = None
+
+	doc.db_set(update_values)
+
+
+def get_service_level_agreement_fields():
+	return [
+		{
+			"collapsible": 1,
+			"fieldname": "service_level_section",
+			"fieldtype": "Section Break",
+			"label": "Service Level"
+		},
+		{
+			"fieldname": "service_level_agreement",
+			"fieldtype": "Link",
+			"label": "Service Level Agreement",
+			"options": "Service Level Agreement"
+		},
+		{
+			"fieldname": "priority",
+			"fieldtype": "Link",
+			"label": "Priority",
+			"options": "Issue Priority"
+		},
+		{
+			"fieldname": "response_by",
+			"fieldtype": "Datetime",
+			"label": "Response By",
+			"read_only": 1
+		},
+		{
+			"fieldname": "response_by_variance",
+			"fieldtype": "Duration",
+			"hide_seconds": 1,
+			"label": "Response By Variance",
+			"read_only": 1
+		},
+		{
+			"fieldname": "first_responded_on",
+			"fieldtype": "Datetime",
+			"label": "First Responded On",
+			"read_only": 1
+		},
+		{
+			"fieldname": "on_hold_since",
+			"fieldtype": "Datetime",
+			"hidden": 1,
+			"label": "On Hold Since",
+			"read_only": 1
+		},
+		{
+			"fieldname": "total_hold_time",
+			"fieldtype": "Duration",
+			"label": "Total Hold Time",
+			"read_only": 1
+		},
+		{
+			"fieldname": "cb",
+			"fieldtype": "Column Break",
+			"read_only": 1
+		},
+		{
+			"default": "Ongoing",
+			"fieldname": "agreement_status",
+			"fieldtype": "Select",
+			"label": "Service Level Agreement Status",
+			"options": "Ongoing\nFulfilled\nFailed",
+			"read_only": 1
+		},
+		{
+			"fieldname": "resolution_by",
+			"fieldtype": "Datetime",
+			"label": "Resolution By",
+			"read_only": 1
+		},
+		{
+			"fieldname": "resolution_by_variance",
+			"fieldtype": "Duration",
+			"hide_seconds": 1,
+			"label": "Resolution By Variance",
+			"read_only": 1
+		},
+		{
+			"fieldname": "service_level_agreement_creation",
+			"fieldtype": "Datetime",
+			"hidden": 1,
+			"label": "Service Level Agreement Creation",
+			"read_only": 1
+		},
+		{
+			"depends_on": "eval:!doc.__islocal",
+			"fieldname": "resolution_date",
+			"fieldtype": "Datetime",
+			"label": "Resolution Date",
+			"no_copy": 1,
+			"read_only": 1
+		}
+	]
+
+
+def update_agreement_status_on_custom_status(doc):
+	# Update Agreement Fulfilled status using Custom Scripts for Custom Status
+
+	meta = frappe.get_meta(doc.doctype)
+	now_time = frappe.flags.current_time or now_datetime(doc.get("owner"))
+	if meta.has_field("first_responded_on") and not doc.first_responded_on:
+		# first_responded_on set when first reply is sent to customer
+		doc.response_by_variance = round(time_diff_in_seconds(doc.response_by, now_time), 2)
+
+	if meta.has_field("resolution_date") and not doc.resolution_date:
+		# resolution_date set when issue has been closed
+		doc.resolution_by_variance = round(time_diff_in_seconds(doc.resolution_by, now_time), 2)
+
+	if meta.has_field("agreement_status"):
+		doc.agreement_status = "Fulfilled" if doc.response_by_variance > 0 and doc.resolution_by_variance > 0 else "Failed"
+
+
+def update_agreement_status(doc, meta):
+	if meta.has_field("service_level_agreement") and meta.has_field("agreement_status") and \
+		doc.service_level_agreement and doc.agreement_status == "Ongoing":
+
+		apply_sla_for_resolution = frappe.db.get_value("Service Level Agreement", doc.service_level_agreement,
+			"apply_sla_for_resolution")
+
+		# if SLA is applied for resolution check for response and resolution, else only response
+		if apply_sla_for_resolution:
+			if meta.has_field("response_by_variance") and meta.has_field("resolution_by_variance"):
+				if cint(frappe.db.get_value(doc.doctype, doc.name, "response_by_variance")) < 0 or \
+					cint(frappe.db.get_value(doc.doctype, doc.name, "resolution_by_variance")) < 0:
+
+					doc.agreement_status = "Failed"
+				else:
+					doc.agreement_status = "Fulfilled"
+		else:
+			if meta.has_field("response_by_variance") and \
+				cint(frappe.db.get_value(doc.doctype, doc.name, "response_by_variance")) < 0:
+				doc.agreement_status = "Failed"
+			else:
+				doc.agreement_status = "Fulfilled"
+
+
+def is_holiday(date, holidays):
+	return getdate(date) in holidays
+
+
+def get_time_in_timedelta(time):
+	"""Converts datetime.time(10, 36, 55, 961454) to datetime.timedelta(seconds=38215)."""
+	import datetime
+	return datetime.timedelta(hours=time.hour, minutes=time.minute, seconds=time.second)
+
+
+def set_response_by_and_variance(doc, meta, start_date_time, priority):
+	if meta.has_field("response_by"):
+		doc.response_by = get_expected_time_for(parameter="response", service_level=priority, start_date_time=start_date_time)
+
+	if meta.has_field("response_by_variance") and not doc.get('first_responded_on'):
+		now_time = frappe.flags.current_time or now_datetime(doc.get("owner"))
+		doc.response_by_variance = round(time_diff_in_seconds(doc.response_by, now_time), 2)
+
+def set_resolution_by_and_variance(doc, meta, start_date_time, priority):
+	if meta.has_field("resolution_by"):
+		doc.resolution_by = get_expected_time_for(parameter="resolution", service_level=priority, start_date_time=start_date_time)
+
+	if meta.has_field("resolution_by_variance") and not doc.get("resolution_date"):
+		now_time = frappe.flags.current_time or now_datetime(doc.get("owner"))
+		doc.resolution_by_variance = round(time_diff_in_seconds(doc.resolution_by, now_time), 2)
+
+
+def now_datetime(user):
+	dt = convert_utc_to_user_timezone(datetime.utcnow(), user)
+	return dt.replace(tzinfo=None)
+
+
+def convert_utc_to_user_timezone(utc_timestamp, user):
+	from pytz import timezone, UnknownTimeZoneError
+
+	user_tz = get_tz(user)
+	utcnow = timezone('UTC').localize(utc_timestamp)
+	try:
+		return utcnow.astimezone(timezone(user_tz))
+	except UnknownTimeZoneError:
+		return utcnow
+
+
+def get_tz(user):
+	return frappe.db.get_value("User", user, "time_zone") or get_time_zone()
+
+
+@frappe.whitelist()
+def get_user_time(user, to_string=False):
+	return get_datetime_str(now_datetime(user)) if to_string else now_datetime(user)
+
+
+@frappe.whitelist()
+def get_sla_doctypes():
+	doctypes = []
+	data = frappe.get_list('Service Level Agreement',
+		{'enabled': 1},
+		['document_type'],
+		distinct=1
+	)
+
+	for entry in data:
+		doctypes.append(entry.document_type)
+
+	return doctypes
diff --git a/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py b/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
index 07ef368..7bc97d6 100644
--- a/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
+++ b/erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
@@ -5,19 +5,20 @@
 
 import frappe
 import unittest
-from erpnext.hr.doctype.employee_group.test_employee_group import make_employee_group
+import datetime
+from frappe.utils import flt
 from erpnext.support.doctype.issue_priority.test_issue_priority import make_priorities
+from erpnext.support.doctype.service_level_agreement.service_level_agreement import get_service_level_agreement_fields
 
 class TestServiceLevelAgreement(unittest.TestCase):
 	def setUp(self):
-		frappe.db.sql("delete from `tabService Level Agreement`")
 		frappe.db.set_value("Support Settings", None, "track_service_level_agreement", 1)
+		frappe.db.sql("delete from `tabLead`")
 
 	def test_service_level_agreement(self):
 		# Default Service Level Agreement
 		create_default_service_level_agreement = create_service_level_agreement(default_service_level_agreement=1,
-			holiday_list="__Test Holiday List", employee_group="_Test Employee Group",
-			entity_type=None, entity=None, response_time=14400, resolution_time=21600)
+			holiday_list="__Test Holiday List", entity_type=None, entity=None, response_time=14400, resolution_time=21600)
 
 		get_default_service_level_agreement = get_service_level_agreement(default_service_level_agreement=1)
 
@@ -29,8 +30,8 @@
 		# Service Level Agreement for Customer
 		customer = create_customer()
 		create_customer_service_level_agreement = create_service_level_agreement(default_service_level_agreement=0,
-			holiday_list="__Test Holiday List", employee_group="_Test Employee Group",
-			entity_type="Customer", entity=customer, response_time=7200, resolution_time=10800)
+			holiday_list="__Test Holiday List", entity_type="Customer", entity=customer,
+			response_time=7200, resolution_time=10800)
 		get_customer_service_level_agreement = get_service_level_agreement(entity_type="Customer", entity=customer)
 
 		self.assertEqual(create_customer_service_level_agreement.name, get_customer_service_level_agreement.name)
@@ -41,8 +42,8 @@
 		# Service Level Agreement for Customer Group
 		customer_group = create_customer_group()
 		create_customer_group_service_level_agreement = create_service_level_agreement(default_service_level_agreement=0,
-			holiday_list="__Test Holiday List", employee_group="_Test Employee Group",
-			entity_type="Customer Group", entity=customer_group, response_time=7200, resolution_time=10800)
+			holiday_list="__Test Holiday List", entity_type="Customer Group", entity=customer_group,
+			response_time=7200, resolution_time=10800)
 		get_customer_group_service_level_agreement = get_service_level_agreement(entity_type="Customer Group", entity=customer_group)
 
 		self.assertEqual(create_customer_group_service_level_agreement.name, get_customer_group_service_level_agreement.name)
@@ -53,7 +54,7 @@
 		# Service Level Agreement for Territory
 		territory = create_territory()
 		create_territory_service_level_agreement = create_service_level_agreement(default_service_level_agreement=0,
-			holiday_list="__Test Holiday List", employee_group="_Test Employee Group",
+			holiday_list="__Test Holiday List",
 			entity_type="Territory", entity=territory, response_time=7200, resolution_time=10800)
 		get_territory_service_level_agreement = get_service_level_agreement(entity_type="Territory", entity=territory)
 
@@ -62,64 +63,257 @@
 		self.assertEqual(create_territory_service_level_agreement.entity, get_territory_service_level_agreement.entity)
 		self.assertEqual(create_territory_service_level_agreement.default_service_level_agreement, get_territory_service_level_agreement.default_service_level_agreement)
 
+	def test_custom_field_creation_for_sla_on_standard_dt(self):
+		# Default Service Level Agreement
+		doctype = "Lead"
+		lead_sla = create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400, resolution_time=21600,
+			doctype=doctype,
+			sla_fulfilled_on=[{"status": "Converted"}]
+		)
 
-def get_service_level_agreement(default_service_level_agreement=None, entity_type=None, entity=None):
+		# check default SLA for lead
+		default_sla = get_service_level_agreement(default_service_level_agreement=1, doctype=doctype)
+		self.assertEqual(lead_sla.name, default_sla.name)
+
+		# check SLA custom fields created for leads
+		sla_fields = get_service_level_agreement_fields()
+
+		for field in sla_fields:
+			self.assertTrue(frappe.db.exists("Custom Field", {"dt": doctype, "fieldname": field.get("fieldname")}))
+
+	def test_docfield_creation_for_sla_on_custom_dt(self):
+		doctype = create_custom_doctype()
+		sla = create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400, resolution_time=21600,
+			doctype=doctype.name
+		)
+
+		# check default SLA for custom dt
+		default_sla = get_service_level_agreement(default_service_level_agreement=1, doctype=doctype.name)
+		self.assertEqual(sla.name, default_sla.name)
+
+		# check SLA docfields created
+		sla_fields = get_service_level_agreement_fields()
+
+		for field in sla_fields:
+			self.assertTrue(frappe.db.exists("DocField", {"fieldname": field.get("fieldname"), "parent": doctype.name}))
+
+	def test_sla_application(self):
+		# Default Service Level Agreement
+		doctype = "Lead"
+		lead_sla = create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400, resolution_time=21600,
+			doctype=doctype,
+			sla_fulfilled_on=[{"status": "Converted"}]
+		)
+
+		# make lead with default SLA
+		creation = datetime.datetime(2019, 3, 4, 12, 0)
+		lead = make_lead(creation=creation, index=1)
+
+		self.assertEqual(lead.service_level_agreement, lead_sla.name)
+		self.assertEqual(lead.response_by, datetime.datetime(2019, 3, 4, 16, 0))
+		self.assertEqual(lead.resolution_by, datetime.datetime(2019, 3, 4, 18, 0))
+
+		frappe.flags.current_time = datetime.datetime(2019, 3, 4, 15, 0)
+		lead.reload()
+		lead.status = 'Converted'
+		lead.save()
+
+		self.assertEqual(lead.agreement_status, 'Fulfilled')
+
+	def test_hold_time(self):
+		doctype = "Lead"
+		create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400, resolution_time=21600,
+			doctype=doctype,
+			sla_fulfilled_on=[{"status": "Converted"}],
+			pause_sla_on=[{"status": "Replied"}]
+		)
+
+		creation = datetime.datetime(2020, 3, 4, 4, 0)
+		lead = make_lead(creation, index=2)
+
+		frappe.flags.current_time = datetime.datetime(2020, 3, 4, 4, 15)
+		lead.reload()
+		lead.status = 'Replied'
+		lead.save()
+
+		lead.reload()
+		self.assertEqual(lead.on_hold_since, frappe.flags.current_time)
+
+		frappe.flags.current_time = datetime.datetime(2020, 3, 4, 5, 5)
+		lead.reload()
+		lead.status = 'Converted'
+		lead.save()
+
+		lead.reload()
+		self.assertEqual(flt(lead.total_hold_time, 2), 3000)
+		self.assertEqual(lead.resolution_by, datetime.datetime(2020, 3, 4, 16, 50))
+
+	def test_failed_sla_for_response_only(self):
+		doctype = "Lead"
+		create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400,
+			doctype=doctype,
+			sla_fulfilled_on=[{"status": "Replied"}],
+			pause_sla_on=[],
+			apply_sla_for_resolution=0
+		)
+
+		creation = datetime.datetime(2019, 3, 4, 12, 0)
+		lead = make_lead(creation=creation, index=1)
+		self.assertEqual(lead.response_by, datetime.datetime(2019, 3, 4, 16, 0))
+
+		# failed with response time only
+		frappe.flags.current_time = datetime.datetime(2019, 3, 4, 16, 5)
+		lead.reload()
+		lead.status = 'Replied'
+		lead.save()
+
+		lead.reload()
+		self.assertEqual(lead.agreement_status, 'Failed')
+
+	def test_fulfilled_sla_for_response_only(self):
+		doctype = "Lead"
+		lead_sla = create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400,
+			doctype=doctype,
+			sla_fulfilled_on=[{"status": "Replied"}],
+			apply_sla_for_resolution=0
+		)
+
+		# fulfilled with response time only
+		creation = datetime.datetime(2019, 3, 4, 12, 0)
+		lead = make_lead(creation=creation, index=2)
+
+		self.assertEqual(lead.service_level_agreement, lead_sla.name)
+		self.assertEqual(lead.response_by, datetime.datetime(2019, 3, 4, 16, 0))
+
+		frappe.flags.current_time = datetime.datetime(2019, 3, 4, 15, 30)
+		lead.reload()
+		lead.status = 'Replied'
+		lead.save()
+
+		lead.reload()
+		self.assertEqual(lead.agreement_status, 'Fulfilled')
+
+	def test_changing_of_variance_after_response(self):
+		# create lead
+		doctype = "Lead"
+		lead_sla = create_service_level_agreement(
+			default_service_level_agreement=1,
+			holiday_list="__Test Holiday List",
+			entity_type=None, entity=None,
+			response_time=14400,
+			doctype=doctype,
+			sla_fulfilled_on=[{"status": "Replied"}],
+			apply_sla_for_resolution=0
+		)
+		creation = datetime.datetime(2019, 3, 4, 12, 0)
+		lead = make_lead(creation=creation, index=2)
+		self.assertEqual(lead.service_level_agreement, lead_sla.name)
+
+		# set lead as replied to set first responded on
+		frappe.flags.current_time = datetime.datetime(2019, 3, 4, 15, 30)
+		lead.reload()
+		lead.status = 'Replied'
+		lead.save()
+		lead.reload()
+		self.assertEqual(lead.agreement_status, 'Fulfilled')
+
+		# check response_by_variance
+		self.assertEqual(lead.first_responded_on, frappe.flags.current_time)
+		self.assertEqual(lead.response_by_variance, 1800.0)
+
+		# make a change on the document &
+		# check response_by_variance is unchanged
+		frappe.flags.current_time = datetime.datetime(2019, 3, 4, 18, 30)
+		lead.status = 'Open'
+		lead.save()
+		lead.reload()
+		self.assertEqual(lead.response_by_variance, 1800.0)
+
+	def tearDown(self):
+		for d in frappe.get_all("Service Level Agreement"):
+			frappe.delete_doc("Service Level Agreement", d.name, force=1)
+
+
+def get_service_level_agreement(default_service_level_agreement=None, entity_type=None, entity=None, doctype="Issue"):
 	if default_service_level_agreement:
-		filters = {"default_service_level_agreement": default_service_level_agreement}
+		filters = {"default_service_level_agreement": default_service_level_agreement, "document_type": doctype}
 	else:
 		filters = {"entity_type": entity_type, "entity": entity}
 
 	service_level_agreement = frappe.get_doc("Service Level Agreement", filters)
 	return service_level_agreement
 
-def create_service_level_agreement(default_service_level_agreement, holiday_list, employee_group,
-	response_time, entity_type, entity, resolution_time):
+def create_service_level_agreement(default_service_level_agreement, holiday_list, response_time, entity_type,
+	entity, resolution_time=0, doctype="Issue", sla_fulfilled_on=[], pause_sla_on=[], apply_sla_for_resolution=1):
 
-	employee_group = make_employee_group()
 	make_holiday_list()
 	make_priorities()
 
-	service_level_agreement = frappe.get_doc({
+	if not sla_fulfilled_on:
+		sla_fulfilled_on = [
+			{"status": "Resolved"},
+			{"status": "Closed"}
+		]
+
+	pause_sla_on = [{"status": "Replied"}] if doctype == "Issue" else pause_sla_on
+
+	service_level_agreement = frappe._dict({
 		"doctype": "Service Level Agreement",
-		"enable": 1,
-		"service_level": "__Test Service Level",
+		"enabled": 1,
+		"document_type": doctype,
+		"service_level": "__Test {} SLA".format(entity_type if entity_type else "Default"),
 		"default_service_level_agreement": default_service_level_agreement,
 		"default_priority": "Medium",
 		"holiday_list": holiday_list,
-		"employee_group": employee_group,
 		"entity_type": entity_type,
 		"entity": entity,
 		"start_date": frappe.utils.getdate(),
 		"end_date": frappe.utils.add_to_date(frappe.utils.getdate(), days=100),
+		"apply_sla_for_resolution": apply_sla_for_resolution,
 		"priorities": [
 			{
 				"priority": "Low",
 				"response_time": response_time,
-				"response_time_period": "Hour",
 				"resolution_time": resolution_time,
-				"resolution_time_period": "Hour",
 			},
 			{
 				"priority": "Medium",
 				"response_time": response_time,
 				"default_priority": 1,
-				"response_time_period": "Hour",
 				"resolution_time": resolution_time,
-				"resolution_time_period": "Hour",
 			},
 			{
 				"priority": "High",
 				"response_time": response_time,
-				"response_time_period": "Hour",
 				"resolution_time": resolution_time,
-				"resolution_time_period": "Hour",
 			}
 		],
-		"pause_sla_on": [
-			{
-				"status": "Replied"
-			}
-		],
+		"sla_fulfilled_on": sla_fulfilled_on,
+		"pause_sla_on": pause_sla_on,
 		"support_and_resolution": [
 			{
 				"workday": "Monday",
@@ -145,16 +339,6 @@
 				"workday": "Friday",
 				"start_time": "10:00:00",
 				"end_time": "18:00:00",
-			},
-			{
-				"workday": "Saturday",
-				"start_time": "10:00:00",
-				"end_time": "18:00:00",
-			},
-			{
-				"workday": "Sunday",
-				"start_time": "10:00:00",
-				"end_time": "18:00:00",
 			}
 		]
 	})
@@ -170,13 +354,11 @@
 			"entity": entity
 		})
 
-	service_level_agreement_exists = frappe.db.exists("Service Level Agreement", filters)
+	sla = frappe.db.exists("Service Level Agreement", filters)
+	if sla:
+		frappe.delete_doc("Service Level Agreement", sla, force=1)
 
-	if not service_level_agreement_exists:
-		service_level_agreement.insert(ignore_permissions=True)
-		return service_level_agreement
-	else:
-		return frappe.get_doc("Service Level Agreement", service_level_agreement_exists)
+	return frappe.get_doc(service_level_agreement).insert(ignore_permissions=True)
 
 
 def create_customer():
@@ -219,19 +401,19 @@
 
 def create_service_level_agreements_for_issues():
 	create_service_level_agreement(default_service_level_agreement=1, holiday_list="__Test Holiday List",
-		employee_group="_Test Employee Group", entity_type=None, entity=None, response_time=14400, resolution_time=21600)
+		entity_type=None, entity=None, response_time=14400, resolution_time=21600)
 
 	create_customer()
 	create_service_level_agreement(default_service_level_agreement=0, holiday_list="__Test Holiday List",
-		employee_group="_Test Employee Group", entity_type="Customer", entity="_Test Customer", response_time=7200, resolution_time=10800)
+		entity_type="Customer", entity="_Test Customer", response_time=7200, resolution_time=10800)
 
 	create_customer_group()
 	create_service_level_agreement(default_service_level_agreement=0, holiday_list="__Test Holiday List",
-		employee_group="_Test Employee Group", entity_type="Customer Group", entity="_Test SLA Customer Group", response_time=7200, resolution_time=10800)
+		entity_type="Customer Group", entity="_Test SLA Customer Group", response_time=7200, resolution_time=10800)
 
 	create_territory()
 	create_service_level_agreement(default_service_level_agreement=0, holiday_list="__Test Holiday List",
-		employee_group="_Test Employee Group", entity_type="Territory", entity="_Test SLA Territory", response_time=7200, resolution_time=10800)
+		entity_type="Territory", entity="_Test SLA Territory", response_time=7200, resolution_time=10800)
 
 def make_holiday_list():
 	holiday_list = frappe.db.exists("Holiday List", "__Test Holiday List")
@@ -256,3 +438,55 @@
 				},
 			]
 		}).insert()
+
+def create_custom_doctype():
+	if not frappe.db.exists("DocType", "Test SLA on Custom Dt"):
+		doc = frappe.get_doc({
+				"doctype": "DocType",
+				"module": "Support",
+				"custom": 1,
+				"fields": [
+					{
+						"label": "Date",
+						"fieldname": "date",
+						"fieldtype": "Date"
+					},
+					{
+						"label": "Description",
+						"fieldname": "desc",
+						"fieldtype": "Long Text"
+					},
+					{
+						"label": "Email ID",
+						"fieldname": "email_id",
+						"fieldtype": "Link",
+						"options": "Customer"
+					},
+					{
+						"label": "Status",
+						"fieldname": "status",
+						"fieldtype": "Select",
+						"options": "Open\nReplied\nClosed"
+					}
+				],
+				"permissions": [{
+					"role": "System Manager",
+					"read": 1,
+					"write": 1
+				}],
+				"name": "Test SLA on Custom Dt",
+			})
+		doc.insert()
+		return doc
+	else:
+		return frappe.get_doc("DocType", "Test SLA on Custom Dt")
+
+def make_lead(creation=None, index=0):
+	return frappe.get_doc({
+		"doctype": "Lead",
+		"email_id": "test_lead1@example{0}.com".format(index),
+		"lead_name": "_Test Lead {0}".format(index),
+		"status": "Open",
+		"creation": creation,
+		"service_level_agreement_creation": creation
+	}).insert(ignore_permissions=True)
\ No newline at end of file
diff --git a/erpnext/support/doctype/service_level_priority/service_level_priority.json b/erpnext/support/doctype/service_level_priority/service_level_priority.json
index 65d5169..b410fe6 100644
--- a/erpnext/support/doctype/service_level_priority/service_level_priority.json
+++ b/erpnext/support/doctype/service_level_priority/service_level_priority.json
@@ -5,9 +5,9 @@
  "editable_grid": 1,
  "engine": "InnoDB",
  "field_order": [
-  "priority",
-  "cb_01",
   "default_priority",
+  "cb_01",
+  "priority",
   "sb_00",
   "response_time",
   "cb_00",
@@ -20,7 +20,8 @@
    "fieldtype": "Link",
    "in_list_view": 1,
    "label": "Priority",
-   "options": "Issue Priority"
+   "options": "Issue Priority",
+   "reqd": 1
   },
   {
    "fieldname": "sb_00",
@@ -32,7 +33,6 @@
    "fieldtype": "Duration",
    "hide_days": 1,
    "hide_seconds": 1,
-   "in_list_view": 1,
    "label": "Resolution Time"
   },
   {
@@ -58,12 +58,13 @@
    "hide_days": 1,
    "hide_seconds": 1,
    "in_list_view": 1,
-   "label": "First Response Time"
+   "label": "First Response Time",
+   "reqd": 1
   }
  ],
  "istable": 1,
  "links": [],
- "modified": "2020-06-10 12:45:47.545915",
+ "modified": "2021-06-21 12:00:58.089962",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Service Level Priority",
@@ -73,4 +74,4 @@
  "sort_field": "modified",
  "sort_order": "DESC",
  "track_changes": 1
-}
+}
\ No newline at end of file
diff --git a/erpnext/erpnext_integrations/doctype/shopify_log/__init__.py b/erpnext/support/doctype/sla_fulfilled_on_status/__init__.py
similarity index 100%
copy from erpnext/erpnext_integrations/doctype/shopify_log/__init__.py
copy to erpnext/support/doctype/sla_fulfilled_on_status/__init__.py
diff --git a/erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.json b/erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.json
new file mode 100644
index 0000000..87124de
--- /dev/null
+++ b/erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.json
@@ -0,0 +1,31 @@
+{
+ "actions": [],
+ "creation": "2021-05-26 21:11:29.176369",
+ "doctype": "DocType",
+ "editable_grid": 1,
+ "engine": "InnoDB",
+ "field_order": [
+  "status"
+ ],
+ "fields": [
+  {
+   "fieldname": "status",
+   "fieldtype": "Select",
+   "in_list_view": 1,
+   "label": "Status",
+   "reqd": 1
+  }
+ ],
+ "istable": 1,
+ "links": [],
+ "modified": "2021-05-26 21:11:29.176369",
+ "modified_by": "Administrator",
+ "module": "Support",
+ "name": "SLA Fulfilled On Status",
+ "owner": "Administrator",
+ "permissions": [],
+ "quick_entry": 1,
+ "sort_field": "modified",
+ "sort_order": "DESC",
+ "track_changes": 1
+}
\ No newline at end of file
diff --git a/erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.py b/erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.py
new file mode 100644
index 0000000..b0b5ffc
--- /dev/null
+++ b/erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.py
@@ -0,0 +1,8 @@
+# Copyright (c) 2021, Frappe Technologies Pvt. Ltd. and contributors
+# For license information, please see license.txt
+
+# import frappe
+from frappe.model.document import Document
+
+class SLAFulfilledOnStatus(Document):
+	pass
diff --git a/erpnext/support/doctype/warranty_claim/warranty_claim.js b/erpnext/support/doctype/warranty_claim/warranty_claim.js
index 79f4675..358768e 100644
--- a/erpnext/support/doctype/warranty_claim/warranty_claim.js
+++ b/erpnext/support/doctype/warranty_claim/warranty_claim.js
@@ -36,8 +36,8 @@
 	}
 });
 
-erpnext.support.WarrantyClaim = frappe.ui.form.Controller.extend({
-	refresh: function() {
+erpnext.support.WarrantyClaim = class WarrantyClaim extends frappe.ui.form.Controller {
+	refresh() {
 		frappe.dynamic_link = {doc: this.frm.doc, fieldname: 'customer', doctype: 'Customer'}
 
 		if(!cur_frm.doc.__islocal &&
@@ -45,17 +45,17 @@
 			cur_frm.add_custom_button(__('Maintenance Visit'),
 				this.make_maintenance_visit);
 		}
-	},
+	}
 
-	make_maintenance_visit: function() {
+	make_maintenance_visit() {
 		frappe.model.open_mapped_doc({
 			method: "erpnext.support.doctype.warranty_claim.warranty_claim.make_maintenance_visit",
 			frm: cur_frm
 		})
 	}
-});
+};
 
-$.extend(cur_frm.cscript, new erpnext.support.WarrantyClaim({frm: cur_frm}));
+extend_cscript(cur_frm.cscript, new erpnext.support.WarrantyClaim({frm: cur_frm}));
 
 cur_frm.fields_dict['serial_no'].get_query = function(doc, cdt, cdn) {
 	var cond = [];
@@ -93,4 +93,4 @@
 			]
 		}
 	}
-};
\ No newline at end of file
+};
diff --git a/erpnext/support/workspace/support/support.json b/erpnext/support/workspace/support/support.json
index 01a8676..4c5829d 100644
--- a/erpnext/support/workspace/support/support.json
+++ b/erpnext/support/workspace/support/support.json
@@ -1,22 +1,27 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Your Shortcuts\", \"level\": 4, \"col\": 12}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Issue\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Maintenance Visit\", \"col\": 4}}, {\"type\": \"shortcut\", \"data\": {\"shortcut_name\": \"Service Level Agreement\", \"col\": 4}}, {\"type\": \"spacer\", \"data\": {\"col\": 12}}, {\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Issues\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Maintenance\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Service Level Agreement\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Warranty\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Settings\", \"col\": 4}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Reports\", \"col\": 4}}]",
  "creation": "2020-03-02 15:48:23.224699",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "icon": "support",
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Support",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Issues",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -25,6 +30,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Issue",
+   "link_count": 0,
    "link_to": "Issue",
    "link_type": "DocType",
    "onboard": 1,
@@ -35,6 +41,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Issue Type",
+   "link_count": 0,
    "link_to": "Issue Type",
    "link_type": "DocType",
    "onboard": 0,
@@ -45,6 +52,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Issue Priority",
+   "link_count": 0,
    "link_to": "Issue Priority",
    "link_type": "DocType",
    "onboard": 0,
@@ -54,6 +62,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -62,6 +71,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance Schedule",
+   "link_count": 0,
    "link_to": "Maintenance Schedule",
    "link_type": "DocType",
    "onboard": 0,
@@ -72,6 +82,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Maintenance Visit",
+   "link_count": 0,
    "link_to": "Maintenance Visit",
    "link_type": "DocType",
    "onboard": 0,
@@ -81,6 +92,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Service Level Agreement",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -89,6 +101,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Service Level Agreement",
+   "link_count": 0,
    "link_to": "Service Level Agreement",
    "link_type": "DocType",
    "onboard": 0,
@@ -98,6 +111,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Warranty",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -106,6 +120,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Warranty Claim",
+   "link_count": 0,
    "link_to": "Warranty Claim",
    "link_type": "DocType",
    "onboard": 0,
@@ -116,6 +131,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Serial No",
+   "link_count": 0,
    "link_to": "Serial No",
    "link_type": "DocType",
    "onboard": 0,
@@ -125,6 +141,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Settings",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -133,6 +150,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Support Settings",
+   "link_count": 0,
    "link_to": "Support Settings",
    "link_type": "DocType",
    "onboard": 0,
@@ -142,6 +160,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Reports",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -150,19 +169,26 @@
    "hidden": 0,
    "is_query_report": 1,
    "label": "First Response Time for Issues",
+   "link_count": 0,
    "link_to": "First Response Time for Issues",
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:37.073482",
+ "modified": "2021-08-05 12:16:02.699923",
  "modified_by": "Administrator",
  "module": "Support",
  "name": "Support",
+ "onboarding": "",
  "owner": "Administrator",
+ "parent_page": "",
  "pin_to_bottom": 0,
  "pin_to_top": 0,
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 25,
  "shortcuts": [
   {
    "color": "Yellow",
@@ -182,5 +208,6 @@
    "link_to": "Service Level Agreement",
    "type": "DocType"
   }
- ]
+ ],
+ "title": "Support"
 }
\ No newline at end of file
diff --git a/erpnext/templates/generators/item/item.html b/erpnext/templates/generators/item/item.html
index 135982d..17f6880 100644
--- a/erpnext/templates/generators/item/item.html
+++ b/erpnext/templates/generators/item/item.html
@@ -28,9 +28,7 @@
 
 {% block base_scripts %}
 <!-- js should be loaded in body! -->
-<script type="text/javascript" src="/assets/frappe/js/lib/jquery/jquery.min.js"></script>
-<script type="text/javascript" src="/assets/js/frappe-web.min.js"></script>
-<script type="text/javascript" src="/assets/js/control.min.js"></script>
-<script type="text/javascript" src="/assets/js/dialog.min.js"></script>
-<script type="text/javascript" src="/assets/js/bootstrap-4-web.min.js"></script>
-{% endblock %}
\ No newline at end of file
+{{ include_script("frappe-web.bundle.js") }}
+{{ include_script("controls.bundle.js") }}
+{{ include_script("dialog.bundle.js") }}
+{% endblock %}
diff --git a/erpnext/templates/includes/projects/project_row.html b/erpnext/templates/includes/projects/project_row.html
index bfd6349..a256fbd 100644
--- a/erpnext/templates/includes/projects/project_row.html
+++ b/erpnext/templates/includes/projects/project_row.html
@@ -19,7 +19,7 @@
             </span>
           </div>
         {% else %}
-          <span class="indicator-pill {{ " red" if doc.status=="Open" else " darkgrey" }}">
+          <span class="indicator-pill {{ " red" if doc.status=="Open" else "darkgrey" }}">
             {{ doc.status }}</span>
         {% endif %}
       </div>
diff --git a/erpnext/templates/includes/projects/project_timesheets.html b/erpnext/templates/includes/projects/project_timesheets.html
index 850c5e9..b8e0682 100644
--- a/erpnext/templates/includes/projects/project_timesheets.html
+++ b/erpnext/templates/includes/projects/project_timesheets.html
@@ -12,7 +12,7 @@
           .get_value("User", timesheet.modified_by, [
             "full_name", "user_image"
           ], as_dict = True)
- 		%}
+ 		    %}
         {% if user_details.user_image %}
           <span class="avatar avatar-small" style="width:32px; height:32px;" title="{{ user_details.full_name }}">
             <img src="{{ user_details.user_image }}">
diff --git a/erpnext/templates/includes/rfq.js b/erpnext/templates/includes/rfq.js
index b56c416..37beb5a 100644
--- a/erpnext/templates/includes/rfq.js
+++ b/erpnext/templates/includes/rfq.js
@@ -11,23 +11,23 @@
 	doc.buying_price_list = "{{ doc.buying_price_list }}"
 });
 
-rfq = Class.extend({
-	init: function(){
+rfq = class rfq {
+	constructor(){
 		this.onfocus_select_all();
 		this.change_qty();
 		this.change_rate();
 		this.terms();
 		this.submit_rfq();
 		this.navigate_quotations();
-	},
+	}
 
-	onfocus_select_all: function(){
+	onfocus_select_all(){
 		$("input").click(function(){
 			$(this).select();
 		})
-	},
+	}
 
-	change_qty: function(){
+	change_qty(){
 		var me = this;
 		$('.rfq-items').on("change", ".rfq-qty", function(){
 			me.idx = parseFloat($(this).attr('data-idx'));
@@ -36,9 +36,9 @@
 			me.update_qty_rate();
 			$(this).val(format_number(me.qty, doc.number_format, 2));
 		})
-	},
+	}
 
-	change_rate: function(){
+	change_rate(){
 		var me = this;
 		$(".rfq-items").on("change", ".rfq-rate", function(){
 			me.idx = parseFloat($(this).attr('data-idx'));
@@ -47,15 +47,15 @@
 			me.update_qty_rate();
 			$(this).val(format_number(me.rate, doc.number_format, 2));
 		})
-	},
+	}
 
-	terms: function(){
+	terms(){
 		$(".terms").on("change", ".terms-feedback", function(){
 			doc.terms = $(this).val();
 		})
-	},
+	}
 
-	update_qty_rate: function(){
+	update_qty_rate(){
 		var me = this;
 		doc.grand_total = 0.0;
 		$.each(doc.items, function(idx, data){
@@ -69,9 +69,9 @@
 			doc.grand_total += flt(data.amount);
 			$('.tax-grand-total').text(format_number(doc.grand_total, doc.number_format, 2));
 		})
-	},
+	}
 
-	submit_rfq: function(){
+	submit_rfq(){
 		$('.btn-sm').click(function(){
 			frappe.freeze();
 			frappe.call({
@@ -90,12 +90,12 @@
 				}
 			})
 		})
-	},
+	}
 
-	navigate_quotations: function() {
+	navigate_quotations() {
 		$('.quotations').click(function(){
 			name = $(this).attr('idx')
 			window.location.href = "/quotations/" + encodeURIComponent(name);
 		})
 	}
-})
+}
diff --git a/erpnext/templates/pages/cart.html b/erpnext/templates/pages/cart.html
index ea34371..c64c634 100644
--- a/erpnext/templates/pages/cart.html
+++ b/erpnext/templates/pages/cart.html
@@ -139,9 +139,7 @@
 
 {% block base_scripts %}
 <!-- js should be loaded in body! -->
-<script type="text/javascript" src="/assets/frappe/js/lib/jquery/jquery.min.js"></script>
-<script type="text/javascript" src="/assets/js/frappe-web.min.js"></script>
-<script type="text/javascript" src="/assets/js/control.min.js"></script>
-<script type="text/javascript" src="/assets/js/dialog.min.js"></script>
-<script type="text/javascript" src="/assets/js/bootstrap-4-web.min.js"></script>
+{{ include_script("frappe-web.bundle.js") }}
+{{ include_script("controls.bundle.js") }}
+{{ include_script("dialog.bundle.js") }}
 {% endblock %}
diff --git a/erpnext/templates/pages/partners.py b/erpnext/templates/pages/partners.py
index 6725a3e..a7e60e2 100644
--- a/erpnext/templates/pages/partners.py
+++ b/erpnext/templates/pages/partners.py
@@ -3,7 +3,6 @@
 
 from __future__ import unicode_literals
 import frappe
-import frappe.website.render
 
 page_title = "Partners"
 
diff --git a/erpnext/templates/pages/projects.py b/erpnext/templates/pages/projects.py
index b369cb6..7ff4954 100644
--- a/erpnext/templates/pages/projects.py
+++ b/erpnext/templates/pages/projects.py
@@ -32,8 +32,6 @@
 	filters = {"project": project}
 	if search:
 		filters["subject"] = ("like", "%{0}%".format(search))
-	# if item_status:
-# 		filters["status"] = item_status
 	tasks = frappe.get_all("Task", filters=filters,
 		fields=["name", "subject", "status", "modified", "_assign", "exp_end_date", "is_group", "parent_task"],
 		limit_start=start, limit_page_length=10)
@@ -67,7 +65,6 @@
 		info = frappe.get_all('Timesheet', filters={"name": timesheet.parent},
 			fields=['name','status','modified','modified_by'],
 			limit_start=start, limit_page_length=10)
-
 		if len(info):
 			timesheet.update(info[0])
 	return timesheets
diff --git a/erpnext/utilities/workspace/utilities/utilities.json b/erpnext/utilities/workspace/utilities/utilities.json
index 2f9250e..4ad4afb 100644
--- a/erpnext/utilities/workspace/utilities/utilities.json
+++ b/erpnext/utilities/workspace/utilities/utilities.json
@@ -1,21 +1,26 @@
 {
- "category": "Modules",
+ "category": "",
  "charts": [],
+ "content": "[{\"type\": \"header\", \"data\": {\"text\": \"Reports & Masters\", \"level\": 4, \"col\": 12}}, {\"type\": \"card\", \"data\": {\"card_name\": \"Video\", \"col\": 4}}]",
  "creation": "2020-09-10 12:21:22.335307",
  "developer_mode_only": 0,
  "disable_user_customization": 0,
  "docstatus": 0,
  "doctype": "Workspace",
+ "extends": "",
  "extends_another_page": 0,
+ "for_user": "",
  "hide_custom": 0,
  "idx": 0,
- "is_standard": 1,
+ "is_default": 0,
+ "is_standard": 0,
  "label": "Utilities",
  "links": [
   {
    "hidden": 0,
    "is_query_report": 0,
    "label": "Video",
+   "link_count": 0,
    "onboard": 0,
    "type": "Card Break"
   },
@@ -24,6 +29,7 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Video",
+   "link_count": 0,
    "link_to": "Video",
    "link_type": "DocType",
    "onboard": 0,
@@ -34,18 +40,26 @@
    "hidden": 0,
    "is_query_report": 0,
    "label": "Video Settings",
+   "link_count": 0,
    "link_to": "Video Settings",
    "link_type": "DocType",
    "onboard": 0,
    "type": "Link"
   }
  ],
- "modified": "2020-12-01 13:38:36.711884",
+ "modified": "2021-08-05 12:16:03.350804",
  "modified_by": "Administrator",
  "module": "Utilities",
  "name": "Utilities",
+ "onboarding": "",
  "owner": "user@erpnext.com",
- "pin_to_bottom": 1,
+ "parent_page": "",
+ "pin_to_bottom": 0,
  "pin_to_top": 0,
- "shortcuts": []
+ "public": 1,
+ "restrict_to_domain": "",
+ "roles": [],
+ "sequence_id": 30,
+ "shortcuts": [],
+ "title": "Utilities"
 }
\ No newline at end of file
diff --git a/erpnext/www/book_appointment/index.py b/erpnext/www/book_appointment/index.py
index ccfa97b..4f45561 100644
--- a/erpnext/www/book_appointment/index.py
+++ b/erpnext/www/book_appointment/index.py
@@ -4,7 +4,6 @@
 import pytz
 from frappe import _
 
-
 WEEKDAYS = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
 
 no_cache = 1
@@ -148,4 +147,4 @@
 
 def _datetime_to_deltatime(date_time):
 	midnight = datetime.datetime.combine(date_time.date(), datetime.time.min)
-	return (date_time-midnight)
\ No newline at end of file
+	return (date_time-midnight)
diff --git a/requirements.txt b/requirements.txt
index 32da48e..f28906a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,10 +1,11 @@
+future==0.18.2
 # frappe   # https://github.com/frappe/frappe is installed during bench-init
 gocardless-pro~=1.22.0
 googlemaps  # used in ERPNext, but dependency is defined in Frappe
 pandas~=1.1.5
 plaid-python~=7.2.1
 pycountry~=20.7.3
-PyGithub~=1.54.1
+PyGithub~=1.55
 python-stdnum~=1.16
 python-youtube~=0.8.0
 taxjar~=1.9.2
diff --git a/yarn.lock b/yarn.lock
index cc01d89..82e9821 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1559,16 +1559,11 @@
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
-ini@1.3.7:
+ini@1.3.7, ini@~1.3.0:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
   integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
 
-ini@~1.3.0:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
-  integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
-
 is-callable@^1.1.5:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e"
@@ -2019,9 +2014,9 @@
   integrity sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=
 
 lodash@^4.17.15:
-  version "4.17.19"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
-  integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
 log-symbols@^4.0.0:
   version "4.1.0"
