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')