fix: Add column values
diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py
index a81c036..3277721 100644
--- a/erpnext/controllers/stock_controller.py
+++ b/erpnext/controllers/stock_controller.py
@@ -826,60 +826,118 @@
@frappe.whitelist()
def show_ledger_preview(company, doctype, docname):
- from erpnext.accounts.report.general_ledger.general_ledger import get_columns as get_gl_columns
- from erpnext.stock.report.stock_ledger.stock_ledger import get_columns as get_sl_columns
-
frappe.db.savepoint("show_ledger_preview")
filters = {"company": company}
doc = frappe.get_doc(doctype, docname)
- datatable_sl_columns = []
- datatable_sl_data = []
-
- if doc.update_stock or doc.doctype in ("Purchase Receipt", "Delivery Note"):
- sl_columns = get_sl_columns(filters)
- doc.docstatus = 1
- doc.update_stock_ledger()
- sl_entries = get_sl_entries_for_preview(doc.doctype, doc.name)
- datatable_sl_columns = get_columns(sl_columns)
- datatable_sl_data = get_data(sl_columns, sl_entries)
-
- doc.docstatus = 1
- gl_columns = get_gl_columns(filters)
- doc.make_gl_entries()
- gl_data = get_gl_entries_for_preview(doc.doctype, doc.name)
-
- datatable_gl_columns = get_columns(gl_columns)
- datatable_gl_data = get_data(gl_columns, gl_data)
+ 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")
return {
- "gl_columns": datatable_gl_columns,
- "gl_data": datatable_gl_data,
- "sl_columns": datatable_sl_columns,
- "sl_data": datatable_sl_data,
+ "gl_columns": gl_columns,
+ "gl_data": gl_data,
+ "sl_columns": sl_columns,
+ "sl_data": sl_data,
}
-def get_sl_entries_for_preview(doctype, docname):
+def get_accounting_ledger_preview(doc, filters):
+ from erpnext.accounts.report.general_ledger.general_ledger import get_columns as get_gl_columns
+
+ gl_columns, gl_data = [], []
+ fields = [
+ "posting_date",
+ "account",
+ "debit",
+ "credit",
+ "against",
+ "party",
+ "party_type",
+ "against_voucher_type",
+ "against_voucher",
+ ]
+
+ doc.docstatus = 1
+ doc.make_gl_entries()
+ columns = get_gl_columns(filters)
+ gl_entries = get_gl_entries_for_preview(doc.doctype, doc.name, fields)
+
+ gl_columns = get_columns(columns, fields)
+ gl_data = get_data(fields, gl_entries)
+
+ return gl_columns, gl_data
+
+
+def get_stock_ledger_preview(doc, filters):
+ from erpnext.stock.report.stock_ledger.stock_ledger import get_columns as get_sl_columns
+
+ sl_columns, sl_data = [], []
+ fields = [
+ "item_code",
+ "stock_uom",
+ "actual_qty",
+ "qty_after_transaction",
+ "warehouse",
+ "incoming_rate",
+ "valuation_rate",
+ "stock_value",
+ "stock_value_difference",
+ ]
+ columns_fields = [
+ "item_code",
+ "stock_uom",
+ "in_qty",
+ "out_qty",
+ "qty_after_transaction",
+ "warehouse",
+ "incoming_rate",
+ "valuation_rate",
+ "stock_value",
+ "stock_value_difference",
+ ]
+
+ if doc.update_stock or doc.doctype in ("Purchase Receipt", "Delivery Note"):
+ doc.docstatus = 1
+ doc.update_stock_ledger()
+ columns = get_sl_columns(filters)
+ sl_entries = get_sl_entries_for_preview(doc.doctype, doc.name, fields)
+
+ sl_columns = get_columns(columns, columns_fields)
+ sl_data = get_data(columns_fields, sl_entries)
+
+ return sl_columns, sl_data
+
+
+def get_sl_entries_for_preview(doctype, docname, fields):
+ sl_entries = frappe.get_all(
+ "Stock Ledger Entry", filters={"voucher_type": doctype, "voucher_no": docname}, fields=fields
+ )
+
+ for entry in sl_entries:
+ if entry.actual_qty > 0:
+ entry["in_qty"] = entry.actual_qty
+ entry["out_qty"] = 0
+ else:
+ entry["out_qty"] = abs(entry.actual_qty)
+ entry["in_qty"] = 0
+
+ return sl_entries
+
+
+def get_gl_entries_for_preview(doctype, docname, fields):
return frappe.get_all(
- "Stock Ledger Entry", filters={"voucher_type": doctype, "voucher_no": docname}, fields=["*"]
+ "GL Entry", filters={"voucher_type": doctype, "voucher_no": docname}, fields=fields
)
-def get_gl_entries_for_preview(doctype, docname):
- return frappe.get_all(
- "GL Entry", filters={"voucher_type": doctype, "voucher_no": docname}, fields=["*"]
- )
-
-
-def get_columns(raw_columns):
+def get_columns(raw_columns, fields):
return [
- {"name": d.get("label"), "editable": False, "width": 100}
+ {"name": d.get("label"), "editable": False, "width": 110}
for d in raw_columns
- if not d.get("hidden")
+ if not d.get("hidden") and d.get("fieldname") in fields
]
@@ -888,8 +946,7 @@
for row in raw_data:
data_row = []
for column in raw_columns:
- if not column.get("hidden"):
- data_row.append(row.get(column.get("fieldname")))
+ data_row.append(row.get(column) or "")
datatable_data.append(data_row)
diff --git a/erpnext/public/js/controllers/stock_controller.js b/erpnext/public/js/controllers/stock_controller.js
index 0ef2e6e..0a14ed7 100644
--- a/erpnext/public/js/controllers/stock_controller.js
+++ b/erpnext/public/js/controllers/stock_controller.js
@@ -94,7 +94,6 @@
"docname": me.frm.doc.name
},
"callback": function(response) {
- console.log(response.message);
me.get_datatable(response.message.gl_columns, response.message.gl_data, me.frm.get_field("accounting_ledger_preview_html").wrapper);
me.get_datatable(response.message.sl_columns, response.message.sl_data, me.frm.get_field("stock_ledger_preview_html").wrapper);
me.frm.scroll_to_field("accounting_ledger_preview_html");