Files
odoo-usability/sale_stock_usability_akretion/models/account_move.py
2024-12-31 11:01:01 +01:00

34 lines
1.4 KiB
Python

# Copyright 2024 Akretion France (https://www.akretion.com)
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models
class AccountMove(models.Model):
_inherit = 'account.move'
def _report_get_sale_pickings(self, sale_order=None):
self.ensure_one()
# the sale_order arg is usefull when using
# py3o_lines_layout_groupby_order() to display the delivery orders
# linked to a specific sale_order
assert self.move_type in ('out_invoice', 'out_refund')
sale_orders = sale_order or self.sale_ids
picking_domain = [
('id', 'in', sale_orders.picking_ids.ids),
('state', '=', 'done'),
('date_done', '<', self.create_date),
('company_id', '=', self.company_id.id),
]
previous_inv = self.env['account.move'].search([
('move_type', 'in', ('out_invoice', 'out_refund')),
('create_date', '<', self.create_date),
('id', 'in', sale_orders.invoice_ids.ids),
('company_id', '=', self.company_id.id),
], limit=1, order='id desc')
if previous_inv:
picking_domain.append(('date_done', '>', previous_inv.create_date))
pickings = self.env['stock.picking'].search(picking_domain)
return pickings