Initial commit: Sale packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:49 +02:00
commit 14e3d26998
6469 changed files with 2479670 additions and 0 deletions

View file

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import sale_order_line

View file

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class SaleOrderLine(models.Model):
_inherit = 'sale.order.line'
def _get_action_per_item(self):
""" Get action per Sales Order Item to display the stock moves linked
:returns: Dict containing id of SOL as key and the action as value
"""
action_per_sol = super()._get_action_per_item()
stock_move_action = self.env.ref('sale_project_stock.stock_move_per_sale_order_line_action').id
stock_move_ids_per_sol = {}
if self.user_has_groups('stock.group_stock_user'):
stock_move_read_group = self.env['stock.move']._read_group([('sale_line_id', 'in', self.ids)], ['sale_line_id', 'ids:array_agg(id)'], ['sale_line_id'])
stock_move_ids_per_sol = {res['sale_line_id'][0]: res['ids'] for res in stock_move_read_group}
for sol in self:
stock_move_ids = stock_move_ids_per_sol.get(sol.id, [])
if not sol.is_service and stock_move_ids:
action_per_sol[sol.id] = stock_move_action, stock_move_ids[0] if len(stock_move_ids) == 1 else False
return action_per_sol