Merge pull request #2014 from expsa/tasks_transaction_eman
Transaction (delegation)
This commit is contained in:
commit
b3939fd43a
|
|
@ -93,6 +93,19 @@ class Entity(models.Model):
|
|||
year_increment = fields.Boolean(string='Continue Increment every year?', help='''
|
||||
Check if you want to continue incrementing in the start of every new year.
|
||||
''', default=True)
|
||||
delegate_employee_id = fields.Many2one('cm.entity')
|
||||
from_date = fields.Datetime(string='Delegation From Date')
|
||||
to_date = fields.Datetime(string='Delegation To Date')
|
||||
to_delegate = fields.Boolean(string='To Delegate?', compute="_compute_to_delegate")
|
||||
|
||||
def _compute_to_delegate(self):
|
||||
for rec in self:
|
||||
rec.to_delegate = False
|
||||
if rec.from_date and rec.to_date:
|
||||
if rec.from_date < datetime.datetime.now() < rec.to_date:
|
||||
rec.to_delegate = True
|
||||
else:
|
||||
rec.to_delegate = False
|
||||
|
||||
@api.onchange('department_id')
|
||||
def onchange_department_id(self):
|
||||
|
|
|
|||
|
|
@ -24,6 +24,10 @@ class InternalTransaction(models.Model):
|
|||
required=False, default='unit')
|
||||
|
||||
to_ids = fields.Many2one(comodel_name='cm.entity', string='Send To')
|
||||
delegate_employee_id = fields.Many2one('cm.entity', related='to_ids.delegate_employee_id')
|
||||
from_date = fields.Datetime(string='Delegation From Date', related='to_ids.from_date')
|
||||
to_date = fields.Datetime(string='Delegation To Date', related='to_ids.to_date')
|
||||
to_delegate = fields.Boolean(string='To Delegate?', related='to_ids.to_delegate')
|
||||
|
||||
@api.onchange('type_sender')
|
||||
def _onchange_type_sender(self):
|
||||
|
|
|
|||
|
|
@ -24,7 +24,11 @@
|
|||
<group>
|
||||
<group>
|
||||
<field name="type" required="True"/>
|
||||
<field name="to_delegate" attrs="{'invisible':[('type','not in',['employee'])]}"/>
|
||||
<field name="employee_id" attrs="{'invisible':[('type','not in',['employee'])]}"/>
|
||||
<field name="delegate_employee_id" attrs="{'invisible':[('type','not in',['employee'])]}"/>
|
||||
<field name="from_date" attrs="{'invisible':[('type','not in',['employee'])]}" readonly="1" force_save="1"/>
|
||||
<field name="to_date" attrs="{'invisible':[('type','not in',['employee'])]}" readonly="1" force_save="1"/>
|
||||
<field name="department_id" attrs="{'invisible': [('type','not in',['unit'])]}"/>
|
||||
<field name="partner_id"
|
||||
attrs="{'invisible': [('type','not in',['external'])]}"/>
|
||||
|
|
|
|||
|
|
@ -109,6 +109,12 @@
|
|||
<xpath expr="//field[@name='need_approve']" position="after">
|
||||
<field name="current_is_forward_user" invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='tran_tag']" position="after">
|
||||
<field name="to_delegate"/>
|
||||
<field name="delegate_employee_id"/>
|
||||
<field name="from_date"/>
|
||||
<field name="to_date"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -181,6 +187,10 @@
|
|||
</xpath>
|
||||
<xpath expr="//field[@name='to_ids']" position="after">
|
||||
<field name="partner_id"/>
|
||||
<field name="to_delegate"/>
|
||||
<field name="delegate_employee_id"/>
|
||||
<field name="from_date"/>
|
||||
<field name="to_date"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='to_ids']" position="before">
|
||||
<field name="type_sender" attrs="{'readonly':[('state','not in', ['draft'])]}"/>
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@ class Leave(models.Model):
|
|||
state = fields.Selection(selection=[('draft', 'Draft'), ('request', 'Request'), ('refuse', 'Refuse'),
|
||||
('approve', 'Approved'), ('expired', 'Expired')], string='State',
|
||||
default='draft')
|
||||
from_date = fields.Date(string='From Date', default=fields.Date.today)
|
||||
to_date = fields.Date(string='To Date')
|
||||
from_date = fields.Datetime(string='From Date', default=fields.Datetime.now)
|
||||
to_date = fields.Datetime(string='To Date')
|
||||
employee_id = fields.Many2one(comodel_name='cm.entity', string='Employee',
|
||||
default=lambda self: self.default_employee_id(), readonly=True)
|
||||
alternative_employee_ids = fields.One2many('employee.leave.line', 'leave_id', string='Alternative Employees')
|
||||
|
|
@ -87,6 +87,9 @@ class Leave(models.Model):
|
|||
template_id = self.env.ref('exp_transaction_leave.email_template_delegation_accepted').id
|
||||
for rec in self:
|
||||
rec.state = 'approve'
|
||||
rec.employee_id.from_date = rec.from_date
|
||||
rec.employee_id.to_date = rec.to_date
|
||||
rec.employee_id.delegate_employee_id = rec.alternative_employee_ids.employee_id.id
|
||||
self.env['mail.template'].browse(template_id).send_mail(rec.id, force_send=True)
|
||||
|
||||
def action_expired(self):
|
||||
|
|
|
|||
Loading…
Reference in New Issue