From e505fbea54c156e724f73a0668b21667d9e711f3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Fri, 15 Nov 2013 13:38:23 +0530 Subject: [PATCH] [fix] [minor] stock balance report for serialized item --- public/js/stock_grid_report.js | 17 +++++++---------- public/js/transaction.js | 9 +++++---- startup/report_data_map.py | 5 +++++ stock/page/stock_balance/stock_balance.js | 2 +- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/public/js/stock_grid_report.js b/public/js/stock_grid_report.js index 495ea43e40..e87228fde7 100644 --- a/public/js/stock_grid_report.js +++ b/public/js/stock_grid_report.js @@ -25,7 +25,11 @@ erpnext.StockGridReport = wn.views.TreeGridReport.extend({ add_qty = 0; } } - var value_diff = (rate * add_qty); + if(sl.serial_no) { + var value_diff = this.get_serialized_value_diff(sl); + } else { + var value_diff = (rate * add_qty); + } if(add_qty) wh.fifo_stack.push([add_qty, sl.incoming_rate, sl.posting_date]); @@ -108,15 +112,8 @@ erpnext.StockGridReport = wn.views.TreeGridReport.extend({ get_serialized_buying_rates: function() { var serialized_buying_rates = {}; - $.each(wn.report_dump.data["Stock Ledger Entry"], function(i, sle) { - if(sle.qty > 0 && sle.serial_no) { - $.each(sle.serial_no.trim().split("\n"), function(i, sr) { - if(sr && sle.incoming_rate !== undefined - && !serialized_buying_rates[sr.trim().toLowerCase()]) { - serialized_buying_rates[sr.trim().toLowerCase()] = flt(sle.incoming_rate); - } - }); - } + $.each(wn.report_dump.data["Serial No"], function(i, sn) { + serialized_buying_rates[sn.name.toLowerCase()] = flt(sn.incoming_rate); }); return serialized_buying_rates; diff --git a/public/js/transaction.js b/public/js/transaction.js index 664bbe2f9e..29fe32b961 100644 --- a/public/js/transaction.js +++ b/public/js/transaction.js @@ -502,13 +502,14 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({ var company_currency = this.get_company_currency(); if(!this.frm.doc.conversion_rate) { - wn.throw(wn._('%(conversion_rate_label)s is mandatory. Maybe Currency Exchange \ - record is not created for %(from_currency)s to %(to_currency)s'), + wn.throw(repl('%(conversion_rate_label)s' + + wn._(' is mandatory. Maybe Currency Exchange record is not created for ') + + '%(from_currency)s' + wn._(" to ") + '%(to_currency)s', { "conversion_rate_label": conversion_rate_label, - "from_currency": self.doc.currency, + "from_currency": this.frm.doc.currency, "to_currency": company_currency - }); + })); } }, diff --git a/startup/report_data_map.py b/startup/report_data_map.py index 54453f68bb..12ceae421a 100644 --- a/startup/report_data_map.py +++ b/startup/report_data_map.py @@ -88,6 +88,11 @@ data_map = { }, "force_index": "posting_sort_index" }, + "Serial No": { + "columns": ["name", "purchase_rate as incoming_rate"], + "conditions": ["docstatus < 2"], + "order_by": "name" + }, "Stock Entry": { "columns": ["name", "purpose"], "conditions": ["docstatus=1"], diff --git a/stock/page/stock_balance/stock_balance.js b/stock/page/stock_balance/stock_balance.js index b45a610be8..7db3b6c5ba 100644 --- a/stock/page/stock_balance/stock_balance.js +++ b/stock/page/stock_balance/stock_balance.js @@ -22,7 +22,7 @@ erpnext.StockBalance = erpnext.StockAnalytics.extend({ this._super(wrapper, { title: "Stock Balance", doctypes: ["Item", "Item Group", "Warehouse", "Stock Ledger Entry", "Brand", - "Stock Entry", "Project"], + "Stock Entry", "Project", "Serial No"], }); }, setup_columns: function() {