[FW][MERGE] l10n_be_hr_payroll: Clean tests + Handle threshold for training time off + ATN for 0€ payslips

closes odoo/odoo#62697

Taskid: 2393750
Forward-port-of: #15020
Related: odoo/enterprise#15077
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
This commit is contained in:
fw-bot
2020-12-02 08:48:09 +00:00
committed by Yannick Tivisse
parent 75b4e2dd38
commit 53f877bf38
5 changed files with 40 additions and 20 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ class Employee(models.Model):
contract_warning = fields.Boolean(string='Contract Warning', store=True, compute='_compute_contract_warning', groups="hr.group_hr_user")
first_contract_date = fields.Date(compute='_compute_first_contract_date', groups="hr.group_hr_user", store=True)
@api.depends('contract_ids.state')
@api.depends('contract_ids.state', 'contract_ids.date_start')
def _compute_first_contract_date(self):
for employee in self:
contracts = employee.sudo().contract_ids.filtered(lambda c: c.state != 'cancel')
+1 -1
View File
@@ -186,7 +186,7 @@ class HrWorkEntryType(models.Model):
_name = 'hr.work.entry.type'
_description = 'HR Work Entry Type'
name = fields.Char(required=True)
name = fields.Char(required=True, translate=True)
code = fields.Char(required=True)
color = fields.Integer(default=0)
sequence = fields.Integer(default=25)
+10
View File
@@ -12,8 +12,18 @@ class ResourceCalendarAttendance(models.Model):
work_entry_type_id = fields.Many2one('hr.work.entry.type', 'Work Entry Type', default=_default_work_entry_type_id)
def _copy_attendance_vals(self):
res = super()._copy_attendance_vals()
res['work_entry_type_id'] = self.work_entry_type_id.id
return res
class ResourceCalendarLeave(models.Model):
_inherit = 'resource.calendar.leaves'
work_entry_type_id = fields.Many2one('hr.work.entry.type', 'Work Entry Type')
def _copy_leave_vals(self):
res = super()._copy_leave_vals()
res['work_entry_type_id'] = self.work_entry_type_id.id
return res
+27 -18
View File
@@ -222,18 +222,7 @@ class ResourceCalendar(models.Model):
'hours_per_day': company_calendar.hours_per_day,
'tz': company_calendar.tz,
'attendance_ids': [(5, 0, 0)] + [
(0, 0, {
'name': attendance.name,
'dayofweek': attendance.dayofweek,
'date_from': attendance.date_from,
'date_to': attendance.date_to,
'hour_from': attendance.hour_from,
'hour_to': attendance.hour_to,
'day_period': attendance.day_period,
'week_type': attendance.week_type,
'display_type': attendance.display_type,
'sequence': attendance.sequence,
}) for attendance in company_calendar.attendance_ids if not attendance.resource_id]
(0, 0, attendance._copy_attendance_vals()) for attendance in company_calendar.attendance_ids if not attendance.resource_id]
})
@api.depends('company_id')
@@ -241,12 +230,7 @@ class ResourceCalendar(models.Model):
for calendar in self.filtered(lambda c: not c._origin or c._origin.company_id != c.company_id):
calendar.write({
'global_leave_ids': [(5, 0, 0)] + [
(0, 0, {
'name': leave.name,
'date_from': leave.date_from,
'date_to': leave.date_to,
'time_type': leave.time_type,
}) for leave in calendar.company_id.resource_calendar_id.global_leave_ids]
(0, 0, leave._copy_leave_vals()) for leave in calendar.company_id.resource_calendar_id.global_leave_ids]
})
@api.returns('self', lambda value: value.id)
@@ -870,6 +854,22 @@ class ResourceCalendarAttendance(models.Model):
section_name = "%s (%s)" % (section_names[record.week_type], section_info[this_week_type == record.week_type])
record.display_name = section_name
def _copy_attendance_vals(self):
self.ensure_one()
return {
'name': self.name,
'dayofweek': self.dayofweek,
'date_from': self.date_from,
'date_to': self.date_to,
'hour_from': self.hour_from,
'hour_to': self.hour_to,
'day_period': self.day_period,
'week_type': self.week_type,
'display_type': self.display_type,
'sequence': self.sequence,
}
class ResourceResource(models.Model):
_name = "resource.resource"
_description = "Resources"
@@ -1023,3 +1023,12 @@ class ResourceCalendarLeaves(models.Model):
def onchange_resource(self):
if self.resource_id:
self.calendar_id = self.resource_id.calendar_id
def _copy_leave_vals(self):
self.ensure_one()
return {
'name': self.name,
'date_from': self.date_from,
'date_to': self.date_to,
'time_type': self.time_type,
}
@@ -386,6 +386,7 @@
<field name="phone" widget="phone" options="{'enable_sms': false}"/>
<field name="mobile" widget="phone" options="{'enable_sms': false}"/>
<field name="email"/>
<field name="lang"/>
</group>
</group>
<group string="Bank Accounts">