diff --git a/addons/stock_account/models/product.py b/addons/stock_account/models/product.py index 098e976fc7e..f7da7005ef5 100644 --- a/addons/stock_account/models/product.py +++ b/addons/stock_account/models/product.py @@ -257,8 +257,8 @@ class ProductProduct(models.Model): @api.model def _get_anglo_saxon_price_unit(self, uom=False): price = self.standard_price - if not uom or self.uom_id.id == uom.id: - return price + if not self or not uom or self.uom_id.id == uom.id: + return price or 0.0 return self.uom_id._compute_price(price, uom) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 578bc3420b8..77076101a0c 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -44,6 +44,7 @@ from odoo.http import content_disposition, dispatch_rpc, request, \ from odoo.exceptions import AccessError, UserError from odoo.models import check_method_name from odoo.service import db +from odoo.service.report import exp_report, exp_report_get _logger = logging.getLogger(__name__) @@ -1522,14 +1523,11 @@ class Reports(http.Controller): report_ids = action['datas'].pop('ids') report_data.update(action['datas']) - report_id = dispatch_rpc('report', 'report', [ - request.session.db, request.session.uid, request.session.password, - action["report_name"], report_ids, report_data, context]) + report_id = exp_report(request.session.db, request.session.uid, action["report_name"], report_ids, report_data, context) report_struct = None while True: - report_struct = dispatch_rpc('report', 'report_get', [ - request.session.db, request.session.uid, request.session.password, report_id]) + report_struct = exp_report_get(request.session.db, request.session.uid, report_id) if report_struct["state"]: break