openerp-community-reviewer team mailing list archive
-
openerp-community-reviewer team
-
Mailing list archive
-
Message #03865
[Merge] lp:~camptocamp/carriers-deliveries/7.0-delivery_carrier_label_dispatch-generate-new-labels-option-yvr into lp:carriers-deliveries
Yannick Vaucher @ Camptocamp has proposed merging lp:~camptocamp/carriers-deliveries/7.0-delivery_carrier_label_dispatch-generate-new-labels-option-yvr into lp:carriers-deliveries with lp:~camptocamp/carriers-deliveries/7.0-delivery_carrier_label_dispatch-output-file-yvr as a prerequisite.
Requested reviews:
Stock and Logistic Core Editors (stock-logistic-core-editors)
For more details, see:
https://code.launchpad.net/~camptocamp/carriers-deliveries/7.0-delivery_carrier_label_dispatch-generate-new-labels-option-yvr/+merge/206969
--
https://code.launchpad.net/~camptocamp/carriers-deliveries/7.0-delivery_carrier_label_dispatch-generate-new-labels-option-yvr/+merge/206969
Your team Stock and Logistic Core Editors is requested to review the proposed merge of lp:~camptocamp/carriers-deliveries/7.0-delivery_carrier_label_dispatch-generate-new-labels-option-yvr into lp:carriers-deliveries.
=== modified file 'delivery_carrier_label_dispatch/stock.py'
--- delivery_carrier_label_dispatch/stock.py 2014-02-18 15:42:00 +0000
+++ delivery_carrier_label_dispatch/stock.py 2014-02-18 15:42:00 +0000
@@ -35,13 +35,15 @@
"""
res = dict.fromkeys(ids, False)
label_obj = self.pool.get('shipping.label')
- for picking_id in ids:
+ for picking in self.browse(cr, uid, ids, context=context):
label_ids = label_obj.search(cr, uid,
[('file_type', '=', 'pdf'),
- ('res_id', '=', picking_id)],
- order='create_date',
+ ('res_id', '=', picking.id)],
+ order='create_date DESC',
context=context)
if label_ids:
+ pack_tracking_ids = set([line.tracking_id.id
+ for line in picking.move_lines])
all_picking_labels = label_obj.browse(cr, uid,
label_ids,
context=context)
@@ -49,14 +51,20 @@
tracking_ids = [l.tracking_id for l in all_picking_labels]
# filter for newest created label for each trackings
+ # and tracking existing in pack linked to a move line
+ # of current picking
label_datas = []
- tracking_ids = set(tracking_ids)
+ tracking_register = []
while tracking_ids:
tracking_id = tracking_ids.pop()
for label in all_picking_labels:
- if label.tracking_id.id == tracking_id.id:
+ if (label.tracking_id.id == tracking_id.id
+ and (not tracking_id
+ or tracking_id.id in pack_tracking_ids)
+ and tracking_id.id not in tracking_register):
label_datas.append(label.datas.decode('base64'))
+ tracking_register.append(tracking_id.id)
label_pdf = assemble_pdf(label_datas)
- res[picking_id] = label_pdf.encode('base64')
+ res[picking.id] = label_pdf.encode('base64')
return res
=== modified file 'delivery_carrier_label_dispatch/wizard/generate_labels.py'
--- delivery_carrier_label_dispatch/wizard/generate_labels.py 2014-02-18 15:42:00 +0000
+++ delivery_carrier_label_dispatch/wizard/generate_labels.py 2014-02-18 15:42:00 +0000
@@ -40,10 +40,12 @@
_columns = {
'dispatch_ids': fields.many2many('picking.dispatch',
string='Picking Dispatch'),
+ 'generate_new_labels': fields.boolean('Generate new labels'),
}
_defaults = {
'dispatch_ids': _get_dispatch_ids,
+ 'generate_new_labels': False,
}
def action_generate_labels(self, cr, uid, ids, context=None):
@@ -63,11 +65,15 @@
for dispatch in this.dispatch_ids:
# flatten all picking in one list to keep the order in case
# if pickings have been ordered to ease packaging
- pickings = [(pick, pick.get_pdf_label()[pick.id])
- for pick in dispatch.related_picking_ids]
+ if this.generate_new_labels:
+ pickings = [(pick, False)
+ for pick in dispatch.related_picking_ids]
+ else:
+ pickings = [(pick, pick.get_pdf_label()[pick.id])
+ for pick in dispatch.related_picking_ids]
# get picking ids for which we want to generate pdf label
picking_ids = [pick.id for pick, pdf in pickings
- if not pdf]
+ if not pdf or this.generate_new_labels]
# generate missing picking labels
picking_out_obj.action_generate_carrier_label(cr, uid,
picking_ids,
=== modified file 'delivery_carrier_label_dispatch/wizard/generate_labels_view.xml'
--- delivery_carrier_label_dispatch/wizard/generate_labels_view.xml 2014-02-18 15:42:00 +0000
+++ delivery_carrier_label_dispatch/wizard/generate_labels_view.xml 2014-02-18 15:42:00 +0000
@@ -9,7 +9,10 @@
<form string="Generate Carriers Labels" version="7.0">
<group>
<label string="This wizard creates an attachement on each selected dispatch containing picking labels"/>
+ </group>
+ <group>
<field name="dispatch_ids"/>
+ <field name="generate_new_labels"/>
</group>
<footer>
<button name="action_generate_labels" string="Generate Labels" type="object" icon="gtk-execute" class="oe_highlight"/>
Follow ups