Files
tradon/modules/sale_promotion/sale_reporting.py
2026-03-14 09:42:12 +00:00

45 lines
1.4 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from sql import Literal
from trytond.model import ModelView, fields
from trytond.modules.sale.sale_reporting import Abstract
class Promotion(Abstract, ModelView):
__name__ = 'sale.reporting.promotion'
promotion = fields.Many2One('sale.promotion', "Promotion")
@classmethod
def _sale_line_columns(cls, line, sale):
return super()._sale_line_columns(line, sale) + [
line.promotion.as_('promotion')]
@classmethod
def _pos_sale_line_columns(cls, line, point, sale, currency):
try:
columns = super()._pos_sale_line_columns(
line, point, sale, currency)
except AttributeError:
columns = []
return columns + [Literal(None).as_('promotion')]
@classmethod
def _columns(cls, tables, withs):
line = tables['line']
return super()._columns(tables, withs) + [line.promotion]
@classmethod
def _group_by(cls, tables, withs):
line = tables['line']
return super()._group_by(tables, withs) + [line.promotion]
def get_rec_name(self, name):
return self.promotion.rec_name if self.promotion else None
@classmethod
def search_rec_name(cls, name, clause):
return [('promotion.rec_name', *clause[1:])]