Merge branch 'develop' into fix-clear-depr-schedule
diff --git a/erpnext/accounts/report/gross_profit/gross_profit.py b/erpnext/accounts/report/gross_profit/gross_profit.py
index 20bc3ec..84effc0 100644
--- a/erpnext/accounts/report/gross_profit/gross_profit.py
+++ b/erpnext/accounts/report/gross_profit/gross_profit.py
@@ -265,7 +265,7 @@
 		if self.filters.get("group_by") == "Invoice":
 			self.totals.indent = 0.0
 			self.totals.parent_invoice = ""
-			self.totals.parent = "Total"
+			self.totals.invoice_or_item = "Total"
 			self.si_list.append(self.totals)
 		else:
 			self.grouped_data.append(self.totals)
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 5fe5afa..5efafd6 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
@@ -33,17 +33,6 @@
    "dependencies": "",
    "hidden": 0,
    "is_query_report": 0,
-   "label": "Shopify Settings",
-   "link_count": 0,
-   "link_to": "Shopify Settings",
-   "link_type": "DocType",
-   "onboard": 0,
-   "type": "Link"
-  },
-  {
-   "dependencies": "",
-   "hidden": 0,
-   "is_query_report": 0,
    "label": "Amazon MWS Settings",
    "link_count": 0,
    "link_to": "Amazon MWS Settings",
@@ -74,7 +63,7 @@
    "type": "Link"
   }
  ],
- "modified": "2021-08-05 12:15:58.951705",
+ "modified": "2021-11-23 04:30:33.106991",
  "modified_by": "Administrator",
  "module": "ERPNext Integrations",
  "name": "ERPNext Integrations Settings",
@@ -86,4 +75,4 @@
  "sequence_id": 11,
  "shortcuts": [],
  "title": "ERPNext Integrations Settings"
-}
+}
\ No newline at end of file
diff --git a/erpnext/manufacturing/doctype/bom/bom_item_preview.html b/erpnext/manufacturing/doctype/bom/bom_item_preview.html
index e614a7e..eb4135e 100644
--- a/erpnext/manufacturing/doctype/bom/bom_item_preview.html
+++ b/erpnext/manufacturing/doctype/bom/bom_item_preview.html
@@ -16,26 +16,15 @@
 			</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/BOM/{{ data.value }}">
+				{% if data.value && data.value != "BOM" %}
+				<a style="margin-right: 7px; margin-bottom: 7px" class="btn btn-default btn-xs" href="/app/bom/{{ data.value }}">
 					{{ __("Open BOM {0}", [data.value.bold()]) }}</a>
 				{% endif %}
 				{% if data.item_code %}
-				<a class="btn btn-default btn-xs" href="#Form/Item/{{ data.item_code }}">
+				<a style="margin-right: 7px; margin-bottom: 7px"  class="btn btn-default btn-xs" href="/app/item/{{ data.item_code }}">
 					{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
 				{% endif %}
 			</p>
 		</div>
 	</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="/app/Form/BOM/{{ data.value }}">
-			{{ __("Open BOM {0}", [data.value.bold()]) }}</a>
-		{% endif %}
-		{% if data.item_code %}
-		<a class="btn btn-default btn-xs" href="/app/Form/Item/{{ data.item_code }}">
-			{{ __("Open Item {0}", [data.item_code.bold()]) }}</a>
-		{% endif %}
-	</p>
 </div>
diff --git a/erpnext/manufacturing/doctype/bom/bom_tree.js b/erpnext/manufacturing/doctype/bom/bom_tree.js
index 6e2599e..fb99add 100644
--- a/erpnext/manufacturing/doctype/bom/bom_tree.js
+++ b/erpnext/manufacturing/doctype/bom/bom_tree.js
@@ -66,6 +66,7 @@
 				var bom = frappe.model.get_doc("BOM", node.data.value);
 				node.data.image = escape(bom.image) || "";
 				node.data.description = bom.description || "";
+				node.data.item_code = bom.item || "";
 			});
 		}
 	},
diff --git a/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py b/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py
index e4cb9ae..0f2ac4b 100644
--- a/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py
+++ b/erpnext/patches/v13_0/item_reposting_for_incorrect_sl_and_gl.py
@@ -6,10 +6,19 @@
 
 
 def execute():
-	for doctype in ('repost_item_valuation', 'stock_entry_detail', 'purchase_receipt_item',
-			'purchase_invoice_item', 'delivery_note_item', 'sales_invoice_item', 'packed_item'):
-		frappe.reload_doc('stock', 'doctype', doctype)
-	frappe.reload_doc('buying', 'doctype', 'purchase_receipt_item_supplied')
+	doctypes_to_reload = [
+			("stock", "repost_item_valuation"),
+			("stock", "stock_entry_detail"),
+			("stock", "purchase_receipt_item"),
+			("stock", "delivery_note_item"),
+			("stock", "packed_item"),
+			("accounts", "sales_invoice_item"),
+			("accounts", "purchase_invoice_item"),
+			("buying", "purchase_receipt_item_supplied")
+		]
+
+	for module, doctype in doctypes_to_reload:
+		frappe.reload_doc(module, 'doctype', doctype)
 
 	reposting_project_deployed_on = get_creation_time()
 	posting_date = getdate(reposting_project_deployed_on)
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index 0323a42..f0facdd 100755
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -751,9 +751,13 @@
 }
 
 frappe.form.link_formatters['Employee'] = function(value, doc) {
-	if(doc && doc.employee_name && doc.employee_name !== value) {
-		return value? value + ': ' + doc.employee_name: doc.employee_name;
+	if (doc && value && doc.employee_name && doc.employee_name !== value && doc.employee === value) {
+		return value + ': ' + doc.employee_name;
+	} else if (!value && doc.doctype && doc.employee_name) {
+		// format blank value in child table
+		return doc.employee;
 	} else {
+		// if value is blank in report view or project name and name are the same, return as is
 		return value;
 	}
 }
diff --git a/erpnext/selling/page/point_of_sale/pos_item_cart.js b/erpnext/selling/page/point_of_sale/pos_item_cart.js
index b652fdc..a5b2d50 100644
--- a/erpnext/selling/page/point_of_sale/pos_item_cart.js
+++ b/erpnext/selling/page/point_of_sale/pos_item_cart.js
@@ -502,6 +502,7 @@
 		if (taxes.length) {
 			const currency = this.events.get_frm().doc.currency;
 			const taxes_html = taxes.map(t => {
+				if (t.tax_amount_after_discount_amount == 0.0) return;
 				const description = /[0-9]+/.test(t.description) ? t.description : `${t.description} @ ${t.rate}%`;
 				return `<div class="tax-row">
 					<div class="tax-label">${description}</div>
diff --git a/erpnext/stock/workspace/stock/stock.json b/erpnext/stock/workspace/stock/stock.json
index 9c80515..4df27f5 100644
--- a/erpnext/stock/workspace/stock/stock.json
+++ b/erpnext/stock/workspace/stock/stock.json
@@ -704,59 +704,9 @@
    "link_type": "Report",
    "onboard": 0,
    "type": "Link"
-  },
-  {
-   "dependencies": "Stock Ledger Entry",
-   "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,
-   "type": "Link"
-  },
-  {
-   "hidden": 0,
-   "is_query_report": 0,
-   "label": "Incorrect Data Report",
-   "link_count": 0,
-   "link_type": "DocType",
-   "onboard": 0,
-   "type": "Card Break"
-  },
-  {
-   "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,
-   "type": "Link"
-  },
-  {
-   "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,
-   "type": "Link"
-  },
-  {
-   "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-08-05 12:16:02.361519",
+ "modified": "2021-11-23 04:34:00.420870",
  "modified_by": "Administrator",
  "module": "Stock",
  "name": "Stock",