Merge branch 'develop' into fixed-incorrect-batch-selected-in-purchase-rceipt-develop
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index 219d529..b686dc0 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -6,6 +6,7 @@
from frappe import _, msgprint
from frappe.utils import flt,cint, cstr, getdate
from six import iteritems
+from collections import OrderedDict
from erpnext.accounts.party import get_party_details
from erpnext.stock.get_item_details import get_conversion_factor
from erpnext.buying.utils import validate_for_items, update_last_purchase_rate
@@ -391,10 +392,12 @@
batches_qty = get_batches_with_qty(raw_material.rm_item_code, raw_material.main_item_code,
qty, transferred_batch_qty_map, backflushed_batch_qty_map, item.purchase_order)
+
for batch_data in batches_qty:
qty = batch_data['qty']
raw_material.batch_no = batch_data['batch']
- self.append_raw_material_to_be_backflushed(item, raw_material, qty)
+ if qty > 0:
+ self.append_raw_material_to_be_backflushed(item, raw_material, qty)
else:
self.append_raw_material_to_be_backflushed(item, raw_material, qty)
@@ -1056,7 +1059,7 @@
for batch_data in transferred_batches:
key = ((batch_data.item_code, fg_item)
if batch_data.subcontracted_item else (batch_data.item_code, purchase_order))
- transferred_batch_qty_map.setdefault(key, {})
+ transferred_batch_qty_map.setdefault(key, OrderedDict())
transferred_batch_qty_map[key][batch_data.batch_no] = batch_data.qty
return transferred_batch_qty_map
@@ -1109,8 +1112,14 @@
if available_qty >= required_qty:
available_batches.append({'batch': batch, 'qty': required_qty})
break
- else:
+ elif available_qty != 0:
available_batches.append({'batch': batch, 'qty': available_qty})
required_qty -= available_qty
+ for row in available_batches:
+ if backflushed_batches.get(row.get('batch'), 0) > 0:
+ backflushed_batches[row.get('batch')] += row.get('qty')
+ else:
+ backflushed_batches[row.get('batch')] = row.get('qty')
+
return available_batches