mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-31 10:49:09 +00:00
refactor: use defaultdict and enumeration
This commit is contained in:
committed by
Ankush Menat
parent
f2d136e574
commit
6942900555
@@ -2,10 +2,8 @@
|
|||||||
# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
|
# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
|
||||||
# For license information, please see license.txt
|
# For license information, please see license.txt
|
||||||
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import json
|
import json
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict, defaultdict
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
from frappe import _
|
from frappe import _
|
||||||
@@ -126,28 +124,30 @@ class PickList(Document):
|
|||||||
self.group_similar_items()
|
self.group_similar_items()
|
||||||
|
|
||||||
def group_similar_items(self):
|
def group_similar_items(self):
|
||||||
group_item_qty = {}
|
group_item_qty = defaultdict(float)
|
||||||
group_picked_qty = {}
|
group_picked_qty = defaultdict(float)
|
||||||
count = 0
|
|
||||||
|
|
||||||
for item in self.locations:
|
for item in self.locations:
|
||||||
group_item_qty[(item.item_code, item.warehouse)] = group_item_qty.get((item.item_code,item.warehouse), 0) + item.qty
|
group_item_qty[(item.item_code, item.warehouse)] += item.qty
|
||||||
group_picked_qty[(item.item_code, item.warehouse)] = group_picked_qty.get((item.item_code,item.warehouse), 0) + item.picked_qty
|
group_picked_qty[(item.item_code, item.warehouse)] += item.picked_qty
|
||||||
|
|
||||||
duplicate_list = []
|
duplicate_list = []
|
||||||
for item in self.locations:
|
for item in self.locations:
|
||||||
if (item.item_code, item.warehouse) in group_item_qty:
|
if (item.item_code, item.warehouse) in group_item_qty:
|
||||||
count += 1
|
|
||||||
item.qty = group_item_qty[(item.item_code, item.warehouse)]
|
item.qty = group_item_qty[(item.item_code, item.warehouse)]
|
||||||
item.picked_qty = group_picked_qty[(item.item_code, item.warehouse)]
|
item.picked_qty = group_picked_qty[(item.item_code, item.warehouse)]
|
||||||
item.stock_qty = group_item_qty[(item.item_code, item.warehouse)]
|
item.stock_qty = group_item_qty[(item.item_code, item.warehouse)]
|
||||||
item.idx = count
|
|
||||||
del group_item_qty[(item.item_code, item.warehouse)]
|
del group_item_qty[(item.item_code, item.warehouse)]
|
||||||
else:
|
else:
|
||||||
duplicate_list.append(item)
|
duplicate_list.append(item)
|
||||||
|
|
||||||
for item in duplicate_list:
|
for item in duplicate_list:
|
||||||
self.remove(item)
|
self.remove(item)
|
||||||
|
|
||||||
|
for idx, item in enumerate(self.locations, start=1):
|
||||||
|
item.idx = idx
|
||||||
|
|
||||||
|
|
||||||
def validate_item_locations(pick_list):
|
def validate_item_locations(pick_list):
|
||||||
if not pick_list.locations:
|
if not pick_list.locations:
|
||||||
frappe.throw(_("Add items in the Item Locations table"))
|
frappe.throw(_("Add items in the Item Locations table"))
|
||||||
|
|||||||
Reference in New Issue
Block a user