diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 33eb6f2..c0feb44 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -967,7 +967,7 @@
 
 			outstanding_invoices.pop(idx - 1)
 			outstanding_invoices += invoice_ref_based_on_payment_terms[idx]
-	
+
 	return outstanding_invoices
 
 def get_orders_to_be_billed(posting_date, party_type, party,
@@ -1411,6 +1411,9 @@
 			})
 			pe.set_difference_amount()
 
+	if doc.doctype == 'Purchase Order' and doc.apply_tds:
+		pe.apply_tax_withholding_amount = 1
+
 	return pe
 
 def get_bank_cash_account(doc, bank_account):
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
index 36450a9..7fef60c 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
@@ -127,7 +127,6 @@
   "write_off_cost_center",
   "advances_section",
   "allocate_advances_automatically",
-  "adjust_advance_taxes",
   "get_advances",
   "advances",
   "payment_schedule_section",
@@ -1492,7 +1491,9 @@
    "in_standard_filter": 1,
    "label": "Status",
    "options": "\nDraft\nReturn\nDebit Note Issued\nSubmitted\nPaid\nUnpaid\nOverdue\nCancelled\nInternal Transfer",
-   "print_hide": 1
+   "print_hide": 1,
+   "show_days": 1,
+   "show_seconds": 1
   },
   {
    "fieldname": "inter_company_invoice_reference",
@@ -1501,7 +1502,9 @@
    "no_copy": 1,
    "options": "Sales Invoice",
    "print_hide": 1,
-   "read_only": 1
+   "read_only": 1,
+   "show_days": 1,
+   "show_seconds": 1
   },
   {
    "fieldname": "remarks",
@@ -1633,7 +1636,9 @@
    "fieldname": "unrealized_profit_loss_account",
    "fieldtype": "Link",
    "label": "Unrealized Profit / Loss Account",
-   "options": "Account"
+   "options": "Account",
+   "show_days": 1,
+   "show_seconds": 1
   },
   {
    "depends_on": "eval:doc.is_internal_supplier",
@@ -1642,7 +1647,9 @@
    "fieldname": "represents_company",
    "fieldtype": "Link",
    "label": "Represents Company",
-   "options": "Company"
+   "options": "Company",
+   "show_days": 1,
+   "show_seconds": 1
   },
   {
    "depends_on": "eval:doc.update_stock && doc.is_internal_supplier",
@@ -1654,6 +1661,8 @@
    "options": "Warehouse",
    "print_hide": 1,
    "print_width": "50px",
+   "show_days": 1,
+   "show_seconds": 1,
    "width": "50px"
   },
   {
@@ -1681,7 +1690,7 @@
  "idx": 204,
  "is_submittable": 1,
  "links": [],
- "modified": "2020-10-27 21:21:22.647349",
+ "modified": "2021-02-28 22:33:15.728392",
  "modified_by": "Administrator",
  "module": "Accounts",
  "name": "Purchase Invoice",
diff --git a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js
index 011c296..72de318 100644
--- a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js
+++ b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.js
@@ -70,13 +70,13 @@
 				let supplier = frappe.query_report.get_filter_value('supplier');
 				if(!supplier) return; // return if no supplier selected
 
-				// filter order based on selected supplier
-				let orders = [];
-				frappe.query_report.order_data.map(d => {
+				// filter invoices based on selected supplier
+				let invoices = [];
+				frappe.query_report.invoice_data.map(d => {
 					if(d.supplier==supplier)
-						orders.push(d.name)
+						invoices.push(d.name)
 				});
-				frappe.query_report.orders = orders;
+				frappe.query_report.invoices = invoices;
 				frappe.query_report.refresh();
 			}
 		},
@@ -104,21 +104,14 @@
 			"method": "erpnext.accounts.report.tds_payable_monthly.tds_payable_monthly.get_tds_invoices_and_orders",
 			callback: function(r) {
 				let invoices = [];
-				let orders = [];
 
-				r.message.invoices.map(d => {
+				r.message.map(d => {
 					invoices.push(d.name);
 				});
 
-				r.message.orders.map(d => {
-					orders.push(d.name);
-				});
-
 				report["invoice_data"] = r.message.invoices;
 				report["invoices"] = invoices;
 
-				report["order_data"] = r.message.orders;
-				report["invoices"] = orders;
 			}
 		});
 	}
diff --git a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py
index 7ce61f4..5101e3d 100644
--- a/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py
+++ b/erpnext/accounts/report/tds_payable_monthly/tds_payable_monthly.py
@@ -8,7 +8,6 @@
 
 def execute(filters=None):
 	filters["invoices"] = frappe.cache().hget("invoices", frappe.session.user)
-	filters["orders"] = frappe.cache().hget("orders", frappe.session.user)
 	validate_filters(filters)
 	set_filters(filters)
 
@@ -16,7 +15,7 @@
 	payment_entries = get_payment_entires(filters)
 
 	columns = get_columns(filters)
-	if not (filters.get("invoices") and filters.get('orders')):
+	if not filters.get("invoices"):
 		return columns, []
 
 	res = get_result(filters, payment_entries)
@@ -30,13 +29,9 @@
 
 def set_filters(filters):
 	invoices = []
-	orders = []
 
 	if not filters.get("invoices"):
-		filters["invoices"] = get_tds_invoices_and_orders()['invoices']
-
-	if not filters.get("orders"):
-		filters["orders"] = get_tds_invoices_and_orders()['orders']
+		filters["invoices"] = get_tds_invoices_and_orders()
 
 	if filters.supplier and filters.purchase_invoice:
 		for d in filters["invoices"]:
@@ -50,24 +45,25 @@
 		for d in filters["invoices"]:
 			if d.name == filters.purchase_invoice:
 				invoices.append(d)
-
-	if filters.supplier and filters.purchase_order:
-		for d in filters.get("orders"):
+	elif filters.supplier and filters.purchase_order:
+		for d in filters.get("invoices"):
 			if d.name == filters.purchase_order and d.supplier == filters.supplier:
-				orders.append(d)
+				invoices.append(d)
 	elif filters.supplier and not filters.purchase_order:
-		for d in filters.get("orders"):
+		for d in filters.get("invoices"):
 			if d.supplier == filters.supplier:
-				orders.append(d)
+				invoices.append(d)
 	elif filters.purchase_order and not filters.supplier:
 		for d in filters.get("invoices"):
 			if d.name == filters.purchase_order:
-				orders.append(d)
+				print("$#$#$$#")
+				invoices.append(d)
 
 	filters["invoices"] = invoices if invoices else filters["invoices"]
-	filters["orders"] = orders if orders else filters["orders"]
 	filters.naming_series = frappe.db.get_single_value('Buying Settings', 'supp_master_name')
 
+	#print(filters.get('invoices'))
+
 def get_result(filters, payment_entries):
 	supplier_map, tds_docs = get_supplier_map(filters, payment_entries)
 	documents = [d.get('name') for d in filters.get('invoices')] + [d.get('name') for d in payment_entries]
@@ -115,7 +111,7 @@
 	# pre-fetch all distinct applicable tds docs
 	supplier_map, tds_docs = {}, {}
 	pan = "pan" if frappe.db.has_column("Supplier", "pan") else "tax_id"
-	supplier_list = [d.supplier for d in filters["invoices"]] + [d.supplier for d in filters["orders"]]
+	supplier_list = [d.supplier for d in filters["invoices"]]
 
 	supplier_detail = frappe.db.get_all('Supplier',
 		{"name": ["in", supplier_list]},
@@ -125,10 +121,6 @@
 		supplier_map[d.get("name")] = [k for k in supplier_detail
 			if k.name == d.get("supplier")][0]
 
-	for d in filters["orders"]:
-		supplier_map[d.get("name")] = [k for k in supplier_detail
-			if k.name == d.get("supplier")][0]
-
 	for d in payment_entries:
 		supplier_map[d.get("name")] = [k for k in supplier_detail
 			if k.name == d.get("supplier")][0]
@@ -248,12 +240,10 @@
 		'apply_tax_withholding_amount': 1
 	}
 
-	if filters.get('purchase_order') or filters.get('purchase_invoice'):
+	if filters.get('purchase_invoice') or filters.get('purchase_order'):
 		parent = frappe.db.get_all('Payment Entry Reference',
-			{
-				'reference_name': ('in', [d.get('name') for d in filters.get('orders')] +
-					[d.get('name') for d in filters.get('invoices')])
-			}, ['parent'])
+			{ 'reference_name': ('in', [d.get('name') for d in filters.get('invoices')])}, ['parent'])
+
 		filter_dict.update({'name': ('in', [d.get('parent') for d in parent])})
 
 	payment_entries = frappe.get_all('Payment Entry', fields=['name', 'party_name as supplier'],
@@ -273,13 +263,9 @@
 	orders = frappe.db.get_list("Purchase Order",
 		{"supplier": ["in", suppliers]}, ["name", "supplier"])
 
+	invoices = invoices + orders
 	invoices = [d for d in invoices if d.supplier]
-	orders = [d for d in orders if d.supplier]
 
 	frappe.cache().hset("invoices", frappe.session.user, invoices)
-	frappe.cache().hset("orders", frappe.session.user, invoices)
 
-	return {
-		'invoices': invoices,
-		'orders': orders
-	}
+	return invoices
