From adee283cafe118b43309a4aaa7f117aae94b035c Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 11 Feb 2016 11:58:50 +0530 Subject: [PATCH] [minor] map custom fields from delivery note to packing slip --- .../doctype/packing_slip/packing_slip.py | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.py b/erpnext/stock/doctype/packing_slip/packing_slip.py index 6a7b559223..25fde08eec 100644 --- a/erpnext/stock/doctype/packing_slip/packing_slip.py +++ b/erpnext/stock/doctype/packing_slip/packing_slip.py @@ -84,8 +84,15 @@ class PackingSlip(Document): * No. of Cases of this packing slip """ + # also pick custom fields from delivery note rows = [d.item_code for d in self.get("items")] + custom_fields = ', '.join(['dni.`{0}`'.format(d.fieldname) for d in \ + frappe.get_meta("Delivery Note Item").get_custom_fields()]) + + if custom_fields: + custom_fields = ', ' + custom_fields + condition = "" if rows: condition = " and item_code in (%s)" % (", ".join(["%s"]*len(rows))) @@ -96,10 +103,10 @@ class PackingSlip(Document): from `tabPacking Slip` ps, `tabPacking Slip Item` psi where ps.name = psi.parent and ps.docstatus = 1 and ps.delivery_note = dni.parent and psi.item_code=dni.item_code) as packed_qty, - stock_uom, item_name, description, dni.batch_no + stock_uom, item_name, description, dni.batch_no {custom_fields} from `tabDelivery Note Item` dni - where parent=%s %s - group by item_code""" % ("%s", condition), + where parent=%s {condition} + group by item_code""".format(condition=condition, custom_fields=custom_fields), tuple([self.delivery_note] + rows), as_dict=1) ps_item_qty = dict([[d.item_code, d.qty] for d in self.get("items")]) @@ -146,6 +153,8 @@ class PackingSlip(Document): def get_items(self): self.set("items", []) + custom_fields = frappe.get_meta("Delivery Note Item").get_custom_fields() + dn_details = self.get_details_for_packing()[0] for item in dn_details: if flt(item.qty) > flt(item.packed_qty): @@ -156,6 +165,12 @@ class PackingSlip(Document): ch.description = item.description ch.batch_no = item.batch_no ch.qty = flt(item.qty) - flt(item.packed_qty) + + # copy custom fields + for d in custom_fields: + if item.get(d.fieldname): + ch.set(d.fieldname, item.get(d.fieldname)) + self.update_item_details() def item_details(doctype, txt, searchfield, start, page_len, filters):