Files
odoo_source/addons/stock/wizard/stock_rules_report.py
T
Nimesh Jethva e13efbd8b4 [IMP]stock_*: Improvement in model description
Purpose of this commit is to give description more "business oriented"
because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers.

Related Task ID : 37311
2018-09-21 11:45:15 +02:00

50 lines
2.2 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class StockRulesReport(models.TransientModel):
_name = 'stock.rules.report'
_description = 'Stock Rules report'
product_id = fields.Many2one('product.product', string='Product', required=True)
product_tmpl_id = fields.Many2one('product.template', String='Product Template', required=True)
warehouse_ids = fields.Many2many('stock.warehouse', string='Warehouses', required=True,
help="Show the routes that apply on selected warehouses.")
product_has_variants = fields.Boolean('Has variants', default=False, required=True)
@api.model
def default_get(self, fields):
res = super(StockRulesReport, self).default_get(fields)
product_tmpl_id = False
if 'product_id' in fields:
if self.env.context.get('default_product_id'):
product_id = self.env['product.product'].browse(self.env.context['default_product_id'])
product_tmpl_id = product_id.product_tmpl_id
res['product_tmpl_id'] = product_id.product_tmpl_id.id
res['product_id'] = product_id.id
elif self.env.context.get('default_product_tmpl_id'):
product_tmpl_id = self.env['product.template'].browse(self.env.context['default_product_tmpl_id'])
res['product_tmpl_id'] = product_tmpl_id.id
res['product_id'] = product_tmpl_id.product_variant_id.id
if len(product_tmpl_id.product_variant_ids) > 1:
res['product_has_variants'] = True
if 'warehouse_ids' in fields:
warehouse_id = self.env['stock.warehouse'].search([], limit=1).id
res['warehouse_ids'] = [(6, 0, [warehouse_id])]
return res
def _prepare_report_data(self):
data = {
'product_id': self.product_id.id,
'warehouse_ids': self.warehouse_ids.ids,
}
return data
def print_report(self):
self.ensure_one()
data = self._prepare_report_data()
return self.env.ref('stock.action_report_stock_rule').report_action(None, data=data)