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
=== modified file 'bin/addons/purchase/purchase_order.py'
--- bin/addons/purchase/purchase_order.py 2019-05-14 08:00:10 +0000
+++ bin/addons/purchase/purchase_order.py 2019-05-23 08:19:54 +0000
@@ -1457,44 +1457,6 @@
1457 def button_dummy(self, cr, uid, ids, context=None):1457 def button_dummy(self, cr, uid, ids, context=None):
1458 return True1458 return True
14591459
1460 def _hook_o_line_value(self, cr, uid, *args, **kwargs):
1461 o_line = kwargs['o_line']
1462 order_line = kwargs['order_line']
1463
1464 # Copy all fields except order_id and analytic_distribution_id
1465 fields = ['product_uom', 'price_unit', 'move_dest_id', 'product_qty', 'partner_id',
1466 'confirmed_delivery_date', 'nomenclature_description', 'default_code',
1467 'nomen_manda_0', 'nomen_manda_1', 'nomen_manda_2', 'nomen_manda_3',
1468 'nomenclature_code', 'name', 'default_name', 'comment', 'date_planned',
1469 'to_correct_ok', 'text_error', 'select_fo', 'project_ref', 'external_ref',
1470 'nomen_sub_0', 'nomen_sub_1', 'nomen_sub_2', 'nomen_sub_3', 'nomen_sub_4',
1471 'nomen_sub_5', 'linked_sol_id', 'change_price_manually', 'old_price_unit',
1472 'origin', 'account_analytic_id', 'product_id', 'company_id', 'notes', 'taxes_id',
1473 'link_so_id', 'from_fo', 'sale_order_line_id', 'tender_line_id', 'dest_partner_id']
1474
1475 for field in fields:
1476 field_val = getattr(order_line, field)
1477 if isinstance(field_val, browse_record):
1478 field_val = field_val.id
1479 elif isinstance(field_val, browse_null):
1480 field_val = False
1481 elif isinstance(field_val, list):
1482 field_val = ((6, 0, tuple([v.id for v in field_val])),)
1483 o_line[field] = field_val
1484
1485
1486 # Set the analytic distribution
1487 distrib_id = False
1488 if order_line.analytic_distribution_id:
1489 distrib_id = self.pool.get('analytic.distribution').copy(cr, uid, order_line.analytic_distribution_id.id)
1490 elif order_line.order_id.analytic_distribution_id:
1491 distrib_id = self.pool.get('analytic.distribution').copy(cr, uid, order_line.order_id.analytic_distribution_id.id)
1492
1493 o_line['analytic_distribution_id'] = distrib_id
1494
1495 return o_line
1496
1497
1498 def _hook_order_infos(self, cr, uid, *args, **kwargs):1460 def _hook_order_infos(self, cr, uid, *args, **kwargs):
1499 '''1461 '''
1500 Hook to change the values of the PO1462 Hook to change the values of the PO
@@ -1547,6 +1509,7 @@
15471509
1548 """1510 """
1549 wf_service = netsvc.LocalService("workflow")1511 wf_service = netsvc.LocalService("workflow")
1512
1550 def make_key(br, fields):1513 def make_key(br, fields):
1551 list_key = []1514 list_key = []
1552 for field in fields:1515 for field in fields:
@@ -1564,7 +1527,7 @@
1564 list_key.sort()1527 list_key.sort()
1565 return tuple(list_key)1528 return tuple(list_key)
15661529
1567 # compute what the new orders should contain1530 # compute what the new orders should contain
15681531
1569 new_orders = {}1532 new_orders = {}
15701533
@@ -1595,22 +1558,16 @@
1595 order_infos['origin'] = (order_infos['origin'] or '') + ' ' + porder.origin1558 order_infos['origin'] = (order_infos['origin'] or '') + ' ' + porder.origin
1596 order_infos = self._hook_order_infos(cr, uid, order_infos=order_infos, order_id=porder)1559 order_infos = self._hook_order_infos(cr, uid, order_infos=order_infos, order_id=porder)
15971560
1598 for order_line in porder.order_line:1561 for order_line in [line for line in porder.order_line if line.state == 'draft']:
1599 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'))1562 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'))
1600 o_line = order_infos['order_line'].setdefault(line_key, {})1563 o_line = order_infos['order_line'].setdefault(line_key, {})
1601 if o_line:1564 # append a new line
1602 o_line = self._hook_o_line_value(cr, uid, o_line=o_line, order_line=order_line)1565 for field in ('product_qty', 'product_uom'):
1603 # merge the line with an existing line1566 field_val = getattr(order_line, field)
1604 o_line['product_qty'] += order_line.product_qty * order_line.product_uom.factor / o_line['uom_factor']1567 if isinstance(field_val, browse_record):
1605 else:1568 field_val = field_val.id
1606 # append a new "standalone" line1569 o_line[field] = field_val
1607 for field in ('product_qty', 'product_uom'):1570 o_line['uom_factor'] = order_line.product_uom and order_line.product_uom.factor or 1.0
1608 field_val = getattr(order_line, field)
1609 if isinstance(field_val, browse_record):
1610 field_val = field_val.id
1611 o_line[field] = field_val
1612 o_line['uom_factor'] = order_line.product_uom and order_line.product_uom.factor or 1.0
1613 o_line = self._hook_o_line_value(cr, uid, o_line=o_line, order_line=order_line)
16141571
1615 allorders = []1572 allorders = []
1616 orders_info = {}1573 orders_info = {}

Subscribers

People subscribed via source and target branches