47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
![]() |
# -*- coding: utf-8 -*-
|
||
|
|
||
|
from odoo import api, fields, models, _
|
||
|
from datetime import datetime, timedelta
|
||
|
|
||
|
|
||
|
class FehuBaseConsent(models.Model):
|
||
|
_name = 'fehu.base.consent'
|
||
|
_inherit = ['mail.thread', 'utm.mixin']
|
||
|
_description = 'Consent'
|
||
|
_order = 'date_from desc'
|
||
|
|
||
|
name = fields.Char(string=_('Номер'))
|
||
|
date_from = fields.Date(string=_('Дата выдачи'), default=lambda self: fields.Datetime.now())
|
||
|
date_to = fields.Date(string=_('Действительна по'), default=lambda self: datetime.today() + timedelta(days=180))
|
||
|
partner_id = fields.Many2one('res.partner', string=_('Контрагент'), required=1)
|
||
|
employee_id = fields.Many2one('hr.employee', string=_('Сотрудник'), required=1)
|
||
|
purchaseorder_id = fields.Many2one('purchase.order', _('Заказ на закупку'), domain="[('partner_id','=',partner_id)]",
|
||
|
required=1)
|
||
|
company_id = fields.Many2one('res.company', string=_('Компания'),
|
||
|
default=lambda self: self.env['res.company']._company_default_get('fehu.consent'),
|
||
|
required=1)
|
||
|
|
||
|
@api.model
|
||
|
def create(self, val):
|
||
|
name = self.env['ir.sequence'].next_by_code('fehu.base.consent')
|
||
|
if name:
|
||
|
if 'name' in val:
|
||
|
if val['name'] == False:
|
||
|
val.update({
|
||
|
'name': name,
|
||
|
})
|
||
|
|
||
|
result = super(FehuBaseConsent, self).create(val)
|
||
|
return result
|
||
|
|
||
|
@api.onchange('purchaseorder_id')
|
||
|
def set_partner(self):
|
||
|
if self.purchaseorder_id:
|
||
|
self.partner_id = self.purchaseorder_id.partner_id
|
||
|
|
||
|
@api.constrains('purchaseorder_id')
|
||
|
def fill_order(self):
|
||
|
p_orders = self.env['purchase.order'].sudo().browse(self.purchaseorder_id.id)
|
||
|
for order in p_orders:
|
||
|
order.consent_id = self.id
|