odoo/addons/stock/report/report_stock.py

40 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
from odoo.tools.sql import drop_view_if_exists
class ReportStockLinesDate(models.Model):
_name = "report.stock.lines.date"
_description = "Dates of Inventories and latest Moves"
_auto = False
_order = "date"
id = fields.Integer('Product Id', readonly=True)
product_id = fields.Many2one('product.product', 'Product', readonly=True, index=True)
date = fields.Datetime('Date of latest Inventory', readonly=True)
move_date = fields.Datetime('Date of latest Stock Move', readonly=True)
active = fields.Boolean("Active", readonly=True)
@api.model_cr
def init(self):
drop_view_if_exists(self._cr, 'report_stock_lines_date')
self._cr.execute("""
create or replace view report_stock_lines_date as (
select
p.id as id,
p.id as product_id,
max(s.date) as date,
max(m.date) as move_date,
p.active as active
from
product_product p
left join (
stock_inventory_line l
inner join stock_inventory s on (l.inventory_id=s.id and s.state = 'done')
) on (p.id=l.product_id)
left join stock_move m on (m.product_id=p.id and m.state = 'done')
group by p.id
)""")