summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-07-01 11:45:18 +0200
committerChristophe Simonis <chs@odoo.com>2015-07-01 11:45:18 +0200
commit429ea59bac0b67f7314687281bec7d6b299f4af4 (patch)
tree3ba281cb1c61975836c0b49605e46e369b016461 /addons
parent2ea69ba9a47cb88e0727e7ea25399da260d284bc (diff)
parent3aae56582ab8c219fc1567e137b6a4cee07aaf78 (diff)
[MERGE] forward port of branch 8.0 up to 3aae565
Diffstat (limited to 'addons')
-rw-r--r--addons/account/report/account_balance.py5
-rw-r--r--addons/account/report/account_general_ledger.py5
-rw-r--r--addons/procurement_jit/procurement_jit.py8
-rw-r--r--addons/project/project.py3
-rw-r--r--addons/sale_stock/sale_stock.py11
-rw-r--r--addons/stock/stock.py19
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):