diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js
index 9f55ba1..bac84db 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.js
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js
@@ -155,6 +155,7 @@
 		frm.events.hide_unhide_fields(frm);
 		frm.events.set_dynamic_labels(frm);
 		frm.events.show_general_ledger(frm);
+		erpnext.accounts.ledger_preview.show_accounting_ledger_preview(frm);
 	},
 
 	validate_company: (frm) => {
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
index ab7884d..6a558ca 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
@@ -54,9 +54,11 @@
 		hide_fields(this.frm.doc);
 		// Show / Hide button
 		this.show_general_ledger();
+		erpnext.accounts.ledger_preview.show_accounting_ledger_preview(this.frm);
 
-		if(doc.update_stock==1 && doc.docstatus==1) {
+		if(doc.update_stock==1) {
 			this.show_stock_ledger();
+			erpnext.accounts.ledger_preview.show_stock_ledger_preview(this.frm);
 		}
 
 		if(!doc.is_return && doc.docstatus == 1 && doc.outstanding_amount != 0){
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 1ef0c51..68407e0 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -88,9 +88,12 @@
 		}
 
 		this.show_general_ledger();
-		this.show_ledger_preview();
+		erpnext.accounts.ledger_preview.show_accounting_ledger_preview(this.frm);
 
-		if(doc.update_stock) this.show_stock_ledger();
+		if(doc.update_stock){
+			this.show_stock_ledger();
+			erpnext.accounts.ledger_preview.show_stock_ledger_preview(this.frm);
+		}
 
 		if (doc.docstatus == 1 && doc.outstanding_amount!=0
 			&& !(cint(doc.is_return) && doc.return_against)) {
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index 0b057bc..903ef65 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -846,20 +846,31 @@
 
 
 @frappe.whitelist()
-def show_ledger_preview(company, doctype, docname):
-	frappe.db.savepoint("show_ledger_preview")
+def show_accounting_ledger_preview(company, doctype, docname):
+	frappe.db.savepoint("show_accounting_ledger_preview")
+
+	filters = {"company": company, "include_dimensions": 1}
+	doc = frappe.get_doc(doctype, docname)
+
+	gl_columns, gl_data = get_accounting_ledger_preview(doc, filters)
+
+	frappe.db.rollback(save_point="show_accounting_ledger_preview")
+
+	return {"gl_columns": gl_columns, "gl_data": gl_data}
+
+
+@frappe.whitelist()
+def show_stock_ledger_preview(company, doctype, docname):
+	frappe.db.savepoint("show_stock_ledger_preview")
 
 	filters = {"company": company}
 	doc = frappe.get_doc(doctype, docname)
 
 	sl_columns, sl_data = get_stock_ledger_preview(doc, filters)
-	gl_columns, gl_data = get_accounting_ledger_preview(doc, filters)
 
-	frappe.db.rollback(save_point="show_ledger_preview")
+	frappe.db.rollback(save_point="show_stock_ledger_preview")
 
 	return {
-		"gl_columns": gl_columns,
-		"gl_data": gl_data,
 		"sl_columns": sl_columns,
 		"sl_data": sl_data,
 	}
@@ -877,11 +888,16 @@
 		"against",
 		"party",
 		"party_type",
+		"cost_center",
 		"against_voucher_type",
 		"against_voucher",
 	]
 
 	doc.docstatus = 1
+
+	if doc.get("update_stock") or doc.doctype in ("Purchase Receipt", "Delivery Note"):
+		doc.update_stock_ledger()
+
 	doc.make_gl_entries()
 	columns = get_gl_columns(filters)
 	gl_entries = get_gl_entries_for_preview(doc.doctype, doc.name, fields)
@@ -915,12 +931,12 @@
 		"qty_after_transaction",
 		"warehouse",
 		"incoming_rate",
-		"valuation_rate",
+		"in_out_rate",
 		"stock_value",
 		"stock_value_difference",
 	]
 
-	if doc.update_stock or doc.doctype in ("Purchase Receipt", "Delivery Note"):
+	if doc.get("update_stock") or doc.doctype in ("Purchase Receipt", "Delivery Note"):
 		doc.docstatus = 1
 		doc.update_stock_ledger()
 		columns = get_sl_columns(filters)
@@ -945,6 +961,8 @@
 			entry["out_qty"] = abs(entry.actual_qty)
 			entry["in_qty"] = 0
 
+		entry["in_out_rate"] = entry["valuation_rate"]
+
 	return sl_entries
 
 
diff --git a/erpnext/public/js/controllers/stock_controller.js b/erpnext/public/js/controllers/stock_controller.js
index ff59348..720423b 100644
--- a/erpnext/public/js/controllers/stock_controller.js
+++ b/erpnext/public/js/controllers/stock_controller.js
@@ -81,69 +81,4 @@
 			}, __("View"));
 		}
 	}
-
-	show_ledger_preview() {
-		let me = this
-		if(this.frm.doc.docstatus == 0) {
-			cur_frm.add_custom_button(__('Accounting Ledger Preview'), function() {
-				frappe.call({
-					"method": "erpnext.controllers.stock_controller.show_ledger_preview",
-					"args": {
-						"company": me.frm.doc.company,
-						"doctype": me.frm.doc.doctype,
-						"docname": me.frm.doc.name
-					},
-					"callback": function(response) {
-						me.make_dialog(response.message);
-					}
-				})
-			}, __("View"));
-		}
-	}
-
-	make_dialog(data) {
-		let me = this;
-		let gl_columns = data.gl_columns;
-		let gl_data = data.gl_data;
-		let sl_columns = data.sl_columns;
-		let sl_data = data.sl_data;
-
-		let dialog = new frappe.ui.Dialog({
-			"size": "extra-large",
-			"title": __("Ledger Preview"),
-			"fields": [
-				{
-					"fieldtype": "HTML",
-					"fieldname": "accounting_ledger_preview_html",
-					"label": __("Accounting Ledger"),
-				},
-				{
-					"fieldtype": "HTML",
-					"fieldname": "stock_ledger_preview_html",
-					"label": __("Stock Ledger"),
-				}
-			]
-		});
-
-		setTimeout(function() {
-			me.get_datatable(gl_columns, gl_data, dialog.get_field("accounting_ledger_preview_html").wrapper);
-		}, 200);
-
-		dialog.show();
-	}
-
-	get_datatable(columns, data, wrapper) {
-		const datatable_options = {
-			columns: columns,
-			data: data,
-			dynamicRowHeight: true,
-			checkboxColumn: false,
-			inlineFilters: true,
-		};
-
-		new frappe.DataTable(
-			wrapper,
-			datatable_options
-		);
-	}
 };
diff --git a/erpnext/public/js/erpnext.bundle.js b/erpnext/public/js/erpnext.bundle.js
index cc020fc..4e028e4 100644
--- a/erpnext/public/js/erpnext.bundle.js
+++ b/erpnext/public/js/erpnext.bundle.js
@@ -17,6 +17,7 @@
 import "./utils/supplier_quick_entry";
 import "./call_popup/call_popup";
 import "./utils/dimension_tree_filter";
+import "./utils/ledger_preview.js"
 import "./utils/barcode_scanner";
 import "./telephony";
 import "./templates/call_link.html";
diff --git a/erpnext/public/js/utils/ledger_preview.js b/erpnext/public/js/utils/ledger_preview.js
new file mode 100644
index 0000000..d1ee67b
--- /dev/null
+++ b/erpnext/public/js/utils/ledger_preview.js
@@ -0,0 +1,76 @@
+frappe.provide('erpnext.accounts');
+
+erpnext.accounts.ledger_preview = {
+	show_accounting_ledger_preview(frm) {
+		let me = this;
+		if(!frm.is_new() && frm.doc.docstatus == 0) {
+			frm.add_custom_button(__('Accounting Ledger'), function() {
+				frappe.call({
+					"method": "erpnext.controllers.stock_controller.show_accounting_ledger_preview",
+					"args": {
+						"company": frm.doc.company,
+						"doctype": frm.doc.doctype,
+						"docname": frm.doc.name
+					},
+					"callback": function(response) {
+						me.make_dialog("Accounting Ledger Preview", "accounting_ledger_preview_html", response.message.gl_columns, response.message.gl_data);
+					}
+				})
+			}, __("Preview"));
+		}
+	},
+
+	show_stock_ledger_preview(frm) {
+		let me = this
+		if(!frm.is_new() && frm.doc.docstatus == 0) {
+			frm.add_custom_button(__('Stock Ledger'), function() {
+				frappe.call({
+					"method": "erpnext.controllers.stock_controller.show_stock_ledger_preview",
+					"args": {
+						"company": frm.doc.company,
+						"doctype": frm.doc.doctype,
+						"docname": frm.doc.name
+					},
+					"callback": function(response) {
+						me.make_dialog("Stock Ledger Preview", "stock_ledger_preview_html", response.message.sl_columns, response.message.sl_data);
+					}
+				})
+			}, __("Preview"));
+		}
+	},
+
+	make_dialog(label, fieldname, columns, data) {
+		let me = this;
+		let dialog = new frappe.ui.Dialog({
+			"size": "extra-large",
+			"title": __(label),
+			"fields": [
+				{
+					"fieldtype": "HTML",
+					"fieldname": fieldname,
+				},
+			]
+		});
+
+		setTimeout(function() {
+			me.get_datatable(columns, data, dialog.get_field(fieldname).wrapper);
+		}, 200);
+
+		dialog.show();
+	},
+
+	get_datatable(columns, data, wrapper) {
+		const datatable_options = {
+			columns: columns,
+			data: data,
+			dynamicRowHeight: true,
+			checkboxColumn: false,
+			inlineFilters: true,
+		};
+
+		new frappe.DataTable(
+			wrapper,
+			datatable_options
+		);
+	}
+}
\ No newline at end of file
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 77545e0..a648195 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -200,6 +200,9 @@
 			}
 		}
 
+		erpnext.accounts.ledger_preview.show_accounting_ledger_preview(this.frm);
+		erpnext.accounts.ledger_preview.show_stock_ledger_preview(this.frm);
+
 		if (doc.docstatus > 0) {
 			this.show_stock_ledger();
 			if (erpnext.is_perpetual_inventory_enabled(doc.company)) {
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 312c166..685209c 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -121,6 +121,10 @@
 	refresh() {
 		var me = this;
 		super.refresh();
+
+		erpnext.accounts.ledger_preview.show_accounting_ledger_preview(this.frm);
+		erpnext.accounts.ledger_preview.show_stock_ledger_preview(this.frm);
+
 		if(this.frm.doc.docstatus > 0) {
 			this.show_stock_ledger();
 			//removed for temporary
