diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-07-01 11:45:18 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-07-01 11:45:18 +0200 |
| commit | 429ea59bac0b67f7314687281bec7d6b299f4af4 (patch) | |
| tree | 3ba281cb1c61975836c0b49605e46e369b016461 /addons | |
| parent | 2ea69ba9a47cb88e0727e7ea25399da260d284bc (diff) | |
| parent | 3aae56582ab8c219fc1567e137b6a4cee07aaf78 (diff) | |
[MERGE] forward port of branch 8.0 up to 3aae565
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/account/report/account_balance.py | 5 | ||||
| -rw-r--r-- | addons/account/report/account_general_ledger.py | 5 | ||||
| -rw-r--r-- | addons/procurement_jit/procurement_jit.py | 8 | ||||
| -rw-r--r-- | addons/project/project.py | 3 | ||||
| -rw-r--r-- | addons/sale_stock/sale_stock.py | 11 | ||||
| -rw-r--r-- | addons/stock/stock.py | 19 |
6 files changed, 29 insertions, 22 deletions
diff --git a/addons/account/report/account_balance.py b/addons/account/report/account_balance.py index c7325cc2209..ec0bcd87810 100644 --- a/addons/account/report/account_balance.py +++ b/addons/account/report/account_balance.py @@ -60,11 +60,6 @@ class account_balance(report_sxw.rml_parse, common_report_header): objects = self.pool.get('account.account').browse(self.cr, self.uid, new_ids) return super(account_balance, self).set_context(objects, data, new_ids, report_type=report_type) - def _get_account(self, data): - if data['model']=='account.account': - return self.pool.get('account.account').browse(self.cr, self.uid, data['form']['id']).company_id.name - return super(account_balance ,self)._get_account(data) - def lines(self, form, ids=None, done=None): def _process_child(accounts, disp_acc, parent): account_rec = [acct for acct in accounts if acct['id']==parent][0] diff --git a/addons/account/report/account_general_ledger.py b/addons/account/report/account_general_ledger.py index 44b09571cd0..00bc0ba39bf 100644 --- a/addons/account/report/account_general_ledger.py +++ b/addons/account/report/account_general_ledger.py @@ -294,11 +294,6 @@ class general_ledger(report_sxw.rml_parse, common_report_header): sum_balance += self.cr.fetchone()[0] or 0.0 return sum_balance - def _get_account(self, data): - if data['model'] == 'account.account': - return self.pool.get('account.account').browse(self.cr, self.uid, data['form']['id']).company_id.name - return super(general_ledger ,self)._get_account(data) - def _get_sortby(self, data): if self.sortby == 'sort_date': return self._translate('Date') diff --git a/addons/procurement_jit/procurement_jit.py b/addons/procurement_jit/procurement_jit.py index b519b743488..67a87ff4b5c 100644 --- a/addons/procurement_jit/procurement_jit.py +++ b/addons/procurement_jit/procurement_jit.py @@ -42,3 +42,11 @@ class procurement_order(osv.osv): if procurement_ids: return self.run(cr, uid, procurement_ids, context=context) return res + +class stock_move(osv.osv): + _inherit = "stock.move" + + def _create_procurements(self, cr, uid, moves, context=None): + res = super(stock_move, self)._create_procurements(cr, uid, moves, context=dict(context or {}, procurement_autorun_defer=True)) + self.pool['procurement.order'].run(cr, uid, res, context=context) + return res diff --git a/addons/project/project.py b/addons/project/project.py index d95f5300c35..5897ef2d1f3 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -28,6 +28,7 @@ from openerp import SUPERUSER_ID from openerp import tools from openerp.addons.resource.faces import task as Task from openerp.osv import fields, osv +from openerp.tools import float_is_zero from openerp.tools.translate import _ from openerp.exceptions import UserError @@ -720,7 +721,7 @@ class task(osv.osv): res[task.id] = {'effective_hours': hours.get(task.id, 0.0), 'total_hours': (task.remaining_hours or 0.0) + hours.get(task.id, 0.0)} res[task.id]['delay_hours'] = res[task.id]['total_hours'] - task.planned_hours res[task.id]['progress'] = 0.0 - if (task.remaining_hours + hours.get(task.id, 0.0)): + if not float_is_zero(res[task.id]['total_hours'], precision_digits=2): res[task.id]['progress'] = round(min(100.0 * hours.get(task.id, 0.0) / res[task.id]['total_hours'], 99.99),2) if task.stage_id and task.stage_id.fold: res[task.id]['progress'] = 100.0 diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py index d2b689af20a..24568b448f4 100644 --- a/addons/sale_stock/sale_stock.py +++ b/addons/sale_stock/sale_stock.py @@ -453,11 +453,12 @@ class stock_picking(osv.osv): """ Inherit the original function of the 'stock' module We select the partner of the sales order as the partner of the customer invoice """ - saleorder_ids = self.pool['sale.order'].search(cr, uid, [('procurement_group_id' ,'=', picking.group_id.id)], context=context) - saleorders = self.pool['sale.order'].browse(cr, uid, saleorder_ids, context=context) - if saleorders and saleorders[0] and saleorders[0].order_policy == 'picking': - saleorder = saleorders[0] - return saleorder.partner_invoice_id.id + if picking.sale_id: + saleorder_ids = self.pool['sale.order'].search(cr, uid, [('procurement_group_id' ,'=', picking.group_id.id)], context=context) + saleorders = self.pool['sale.order'].browse(cr, uid, saleorder_ids, context=context) + if saleorders and saleorders[0] and saleorders[0].order_policy == 'picking': + saleorder = saleorders[0] + return saleorder.partner_invoice_id.id return super(stock_picking, self)._get_partner_to_invoice(cr, uid, picking, context=context) def _get_sale_id(self, cr, uid, ids, name, args, context=None): diff --git a/addons/stock/stock.py b/addons/stock/stock.py index f1dae99d7f1..25157372c22 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -2018,6 +2018,12 @@ class stock_move(osv.osv): """ This will create a procurement order """ return self.pool.get("procurement.order").create(cr, uid, self._prepare_procurement_from_move(cr, uid, move, context=context), context=context) + def _create_procurements(self, cr, uid, moves, context=None): + res = [] + for move in moves: + res.append(self._create_procurement(cr, uid, move, context=context)) + return res + def write(self, cr, uid, ids, vals, context=None): if context is None: context = {} @@ -2218,6 +2224,8 @@ class stock_move(osv.osv): """ Confirms stock move or put it in waiting if it's linked to another move. @return: List of ids. """ + if not context: + context = {} if isinstance(ids, (int, long)): ids = [ids] states = { @@ -2245,12 +2253,11 @@ class stock_move(osv.osv): if key not in to_assign: to_assign[key] = [] to_assign[key].append(move.id) - - for move in self.browse(cr, uid, states['confirmed'], context=context): - if move.procure_method == 'make_to_order': - self._create_procurement(cr, uid, move, context=context) - states['waiting'].append(move.id) - states['confirmed'].remove(move.id) + moves = [move for move in self.browse(cr, uid, states['confirmed'], context=context) if move.procure_method == 'make_to_order'] + self._create_procurements(cr, uid, moves, context=context) + for move in moves: + states['waiting'].append(move.id) + states['confirmed'].remove(move.id) for state, write_ids in states.items(): if len(write_ids): |
