1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
from odoo import models, api, fields
from odoo.exceptions import UserError
from datetime import datetime
import logging
_logger = logging.getLogger(__name__)
class CustCommision(models.Model):
_name = 'cust.commision'
_order = 'id desc'
partner_id = fields.Many2one('res.partner', String='Customer', required=True)
commision_percent = fields.Float(string='Commision %', tracking=3)
target_1st = fields.Float(string='Target 1st', tracking=3)
target_2nd = fields.Float(string='Target 2nd', tracking=3)
achieve_1st = fields.Float(string='Achive 1st', tracking=3)
achieve_2nd = fields.Float(string='Achive 2nd', tracking=3)
commision_type = fields.Selection([
('fee', 'Fee'),
('cashback', 'Cashback'),
('rebate', 'Rebate'),
], string='Commision Type', required=True)
brand_ids = fields.Many2many('x_manufactures', string='Brands', help='Voucher appplied only for brand')
@api.constrains('partner_id')
def _check_partner_id(self):
for rec in self:
duplicate_partner = self.search([
('partner_id', '=', rec.partner_id.id),
('id', '!=', rec.id)
])
for rec in duplicate_partner:
if self.commision_type == rec.commision_type:
raise UserError('Partner already exists')
|