diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.html b/erpnext/accounts/report/accounts_receivable/accounts_receivable.html
index 78015b4..3d8aedc 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.html
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.html
@@ -4,12 +4,21 @@
 	  .print-format {
 	    padding: 8mm;
 		margin:4mm;
-		font-size:10px;
+		font-size: 10.0pt !important;
 		font-family: Tahoma, sans-serif;
 	  }
 	}
 	</style>
 {% } %}
+<style>
+	.print-format {
+		padding: 8mm;
+		margin:4mm;
+		font-size: 10.0pt !important;
+		font-family: Tahoma, sans-serif;
+	}
+</style>
+
 
 <h2 class="text-center">{%= __(report.report_name) %}</h2>
 <h4 class="text-center">{%= filters.customer || filters.supplier %} </h4>
@@ -126,9 +135,14 @@
 			{% if(report.report_name === "Accounts Receivable" || report.report_name === "Accounts Payable") { %}
 				{% if(data[i][__("Customer")] || data[i][__("Supplier")]) { %}
 					<td>{%= dateutil.str_to_user(data[i]["posting_date"]) %}</td>
-					<td>{%= data[i]["voucher_type"] %}
-						<br>{%= data[i]["voucher_no"] %}</td>
-					{% if(!filters.show_pdc_in_print) { %}	
+					<td>
+						{% if(!filters.show_pdc_in_print) { %}
+							{%= data[i]["voucher_type"] %}
+							<br>
+						{% } %}
+						{%= data[i]["voucher_no"] %}
+					</td>
+					{% if(!filters.show_pdc_in_print) { %}
 					<td>
 						{% if(!(filters.customer || filters.supplier)) { %}
 							{%= data[i][__("Customer")] || data[i][__("Supplier")] %}
diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
index b971327..f722e7f 100644
--- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
+++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py
@@ -136,7 +136,7 @@
 		return_entries = self.get_return_entries(args.get("party_type"))
 
 		data = []
-		pdc_details = get_pdc_details(args.get("party_type"))
+		pdc_details = get_pdc_details(args.get("party_type"), self.filters.report_date)
 
 		for gle in self.get_entries_till(self.filters.report_date, args.get("party_type")):
 			if self.is_receivable_or_payable(gle, dr_or_cr, future_vouchers):
@@ -182,6 +182,7 @@
 						row.append(company_currency)
 
 					pdc = pdc_details.get((gle.voucher_no, gle.party), {})
+
 					remaining_balance = outstanding_amount - flt(pdc.get("pdc_amount"))
 					row += [pdc.get("pdc_date"), pdc.get("pdc_ref"),
 						flt(pdc.get("pdc_amount")), remaining_balance]
@@ -398,7 +399,7 @@
 
 	return [age] + outstanding_range
 
-def get_pdc_details(party_type):
+def get_pdc_details(party_type, report_date):
 	pdc_details = frappe._dict()
 
 	for pdc in frappe.db.sql("""
@@ -411,13 +412,14 @@
 		on
 			(pref.parent = pent.name)
 		where
-			pent.docstatus < 2 and pent.reference_date >= pent.posting_date
+			pent.docstatus < 2 and pent.reference_date >= %s
 			and pent.party_type = %s
-			group by pent.party, pref.reference_name""", party_type, as_dict=1):
+			group by pent.party, pref.reference_name""", (report_date, party_type), as_dict=1):
 			pdc_details.setdefault((pdc.invoice_no, pdc.party), pdc)
 
 	if scrub(party_type):
-		amount_field = "jea.debit_in_account_currency + jea.credit_in_account_currency"
+		amount_field = ("jea.debit_in_account_currency"
+			if party_type == 'Supplier' else "jea.credit_in_account_currency")
 	else:
 		amount_field = "jea.debit + jea.credit"
 
@@ -431,9 +433,9 @@
 		on
 			(jea.parent = je.name)
 		where
-			je.docstatus < 2 and je.cheque_date >= je.posting_date
+			je.docstatus < 2 and je.cheque_date >= %s
 			and jea.party_type = %s
-			group by jea.party, jea.reference_name""".format(amount_field), party_type, as_dict=1):
+			group by jea.party, jea.reference_name""".format(amount_field), (report_date, party_type), as_dict=1):
 			if (pdc.invoice_no, pdc.party) in pdc_details:
 				pdc_details[(pdc.invoice_no, pdc.party)]["pdc_amount"] += pdc.pdc_amount
 			else:
