Precision fixed in batch-wise balance report

This commit is contained in:
Nabin Hait
2014-10-12 17:40:43 +05:30
parent 7916792f99
commit daf344e5fd

View File

@@ -4,7 +4,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import frappe import frappe
from frappe import _ from frappe import _
from frappe.utils import flt from frappe.utils import flt, cint
def execute(filters=None): def execute(filters=None):
if not filters: filters = {} if not filters: filters = {}
@@ -57,6 +57,7 @@ def get_stock_ledger_entries(filters):
conditions, as_dict=1) conditions, as_dict=1)
def get_item_warehouse_batch_map(filters): def get_item_warehouse_batch_map(filters):
float_precision = cint(frappe.db.get_default("float_precision")) or 3
sle = get_stock_ledger_entries(filters) sle = get_stock_ledger_entries(filters)
iwb_map = {} iwb_map = {}
@@ -67,14 +68,14 @@ def get_item_warehouse_batch_map(filters):
})) }))
qty_dict = iwb_map[d.item_code][d.warehouse][d.batch_no] qty_dict = iwb_map[d.item_code][d.warehouse][d.batch_no]
if d.posting_date < filters["from_date"]: if d.posting_date < filters["from_date"]:
qty_dict.opening_qty += flt(d.actual_qty) qty_dict.opening_qty += flt(d.actual_qty, float_precision)
elif d.posting_date >= filters["from_date"] and d.posting_date <= filters["to_date"]: elif d.posting_date >= filters["from_date"] and d.posting_date <= filters["to_date"]:
if flt(d.actual_qty) > 0: if flt(d.actual_qty) > 0:
qty_dict.in_qty += flt(d.actual_qty) qty_dict.in_qty += flt(d.actual_qty, float_precision)
else: else:
qty_dict.out_qty += abs(flt(d.actual_qty)) qty_dict.out_qty += abs(flt(d.actual_qty, float_precision))
qty_dict.bal_qty += flt(d.actual_qty) qty_dict.bal_qty += flt(d.actual_qty, float_precision)
return iwb_map return iwb_map