Merge lp:~dorian-kemps/unifield-server/US-6054 into lp:unifield-server

Proposed by jftempo
Status: Merged
Merged at revision: 5413
Proposed branch: lp:~dorian-kemps/unifield-server/US-6054
Merge into: lp:unifield-server
Diff against target: 96 lines (+10/-53)
1 file modified
bin/addons/purchase/purchase_order.py (+10/-53)
To merge this branch: bzr merge lp:~dorian-kemps/unifield-server/US-6054
Reviewer Review Type Date Requested Status
UniField Reviewer Team Pending
Review via email: mp+367823@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/addons/purchase/purchase_order.py'
2--- bin/addons/purchase/purchase_order.py 2019-05-14 08:00:10 +0000
3+++ bin/addons/purchase/purchase_order.py 2019-05-23 08:19:54 +0000
4@@ -1457,44 +1457,6 @@
5 def button_dummy(self, cr, uid, ids, context=None):
6 return True
7
8- def _hook_o_line_value(self, cr, uid, *args, **kwargs):
9- o_line = kwargs['o_line']
10- order_line = kwargs['order_line']
11-
12- # Copy all fields except order_id and analytic_distribution_id
13- fields = ['product_uom', 'price_unit', 'move_dest_id', 'product_qty', 'partner_id',
14- 'confirmed_delivery_date', 'nomenclature_description', 'default_code',
15- 'nomen_manda_0', 'nomen_manda_1', 'nomen_manda_2', 'nomen_manda_3',
16- 'nomenclature_code', 'name', 'default_name', 'comment', 'date_planned',
17- 'to_correct_ok', 'text_error', 'select_fo', 'project_ref', 'external_ref',
18- 'nomen_sub_0', 'nomen_sub_1', 'nomen_sub_2', 'nomen_sub_3', 'nomen_sub_4',
19- 'nomen_sub_5', 'linked_sol_id', 'change_price_manually', 'old_price_unit',
20- 'origin', 'account_analytic_id', 'product_id', 'company_id', 'notes', 'taxes_id',
21- 'link_so_id', 'from_fo', 'sale_order_line_id', 'tender_line_id', 'dest_partner_id']
22-
23- for field in fields:
24- field_val = getattr(order_line, field)
25- if isinstance(field_val, browse_record):
26- field_val = field_val.id
27- elif isinstance(field_val, browse_null):
28- field_val = False
29- elif isinstance(field_val, list):
30- field_val = ((6, 0, tuple([v.id for v in field_val])),)
31- o_line[field] = field_val
32-
33-
34- # Set the analytic distribution
35- distrib_id = False
36- if order_line.analytic_distribution_id:
37- distrib_id = self.pool.get('analytic.distribution').copy(cr, uid, order_line.analytic_distribution_id.id)
38- elif order_line.order_id.analytic_distribution_id:
39- distrib_id = self.pool.get('analytic.distribution').copy(cr, uid, order_line.order_id.analytic_distribution_id.id)
40-
41- o_line['analytic_distribution_id'] = distrib_id
42-
43- return o_line
44-
45-
46 def _hook_order_infos(self, cr, uid, *args, **kwargs):
47 '''
48 Hook to change the values of the PO
49@@ -1547,6 +1509,7 @@
50
51 """
52 wf_service = netsvc.LocalService("workflow")
53+
54 def make_key(br, fields):
55 list_key = []
56 for field in fields:
57@@ -1564,7 +1527,7 @@
58 list_key.sort()
59 return tuple(list_key)
60
61- # compute what the new orders should contain
62+ # compute what the new orders should contain
63
64 new_orders = {}
65
66@@ -1595,22 +1558,16 @@
67 order_infos['origin'] = (order_infos['origin'] or '') + ' ' + porder.origin
68 order_infos = self._hook_order_infos(cr, uid, order_infos=order_infos, order_id=porder)
69
70- for order_line in porder.order_line:
71+ for order_line in [line for line in porder.order_line if line.state == 'draft']:
72 line_key = make_key(order_line, ('id', 'order_id', 'name', 'date_planned', 'taxes_id', 'price_unit', 'notes', 'product_id', 'move_dest_id', 'account_analytic_id'))
73 o_line = order_infos['order_line'].setdefault(line_key, {})
74- if o_line:
75- o_line = self._hook_o_line_value(cr, uid, o_line=o_line, order_line=order_line)
76- # merge the line with an existing line
77- o_line['product_qty'] += order_line.product_qty * order_line.product_uom.factor / o_line['uom_factor']
78- else:
79- # append a new "standalone" line
80- for field in ('product_qty', 'product_uom'):
81- field_val = getattr(order_line, field)
82- if isinstance(field_val, browse_record):
83- field_val = field_val.id
84- o_line[field] = field_val
85- o_line['uom_factor'] = order_line.product_uom and order_line.product_uom.factor or 1.0
86- o_line = self._hook_o_line_value(cr, uid, o_line=o_line, order_line=order_line)
87+ # append a new line
88+ for field in ('product_qty', 'product_uom'):
89+ field_val = getattr(order_line, field)
90+ if isinstance(field_val, browse_record):
91+ field_val = field_val.id
92+ o_line[field] = field_val
93+ o_line['uom_factor'] = order_line.product_uom and order_line.product_uom.factor or 1.0
94
95 allorders = []
96 orders_info = {}

Subscribers

People subscribed via source and target branches