31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
|
||
from odoo import api, fields, models
|
||
|
||
|
||
class SaleOrderLine(models.Model):
|
||
_inherit = 'sale.order.line'
|
||
|
||
commission_ids = fields.Many2many(
|
||
'commission.commission',
|
||
'sale_order_line_commission_rel',
|
||
'line_id', 'commission_id',
|
||
string='Комиссии',
|
||
domain="[('active', '=', True), ('company_id', '=', company_id)]",
|
||
help='Комиссии агентам, начисляемые по этой строке заказа. '
|
||
'Работает по аналогии с налогами: можно выбрать несколько.',
|
||
)
|
||
commission_amount = fields.Monetary(
|
||
string='Сумма комиссий', compute='_compute_commission_amount',
|
||
store=True, currency_field='currency_id',
|
||
)
|
||
|
||
@api.depends(
|
||
'commission_ids', 'price_subtotal', 'product_uom_qty', 'price_unit',
|
||
)
|
||
def _compute_commission_amount(self):
|
||
for line in self:
|
||
line.commission_amount = sum(
|
||
commission._compute_amount(line)
|
||
for commission in line.commission_ids
|
||
)
|