add smart button Rewards and Raises in employee

This commit is contained in:
Bakry 2026-01-06 14:39:31 +03:00
parent 1ed010ca8c
commit dd525f3a81
9 changed files with 94 additions and 2 deletions

View File

@ -3016,3 +3016,16 @@ msgstr "مراجعة المالية"
msgid "Expense Manager" msgid "Expense Manager"
msgstr "رئيس المصروفات" msgstr "رئيس المصروفات"
#. module: exp_payroll_custom
#: model:ir.model.fields,field_description:exp_payroll_custom.field_hr_employee__reward_count
#: model_terms:ir.ui.view,arch_db:exp_payroll_custom.hr_employee_salary_scale_inherited_form_view
#: model:ir.actions.act_window,name:exp_payroll_custom.action_open_rewards
msgid "Rewards"
msgstr "المكافآت"
#. module: exp_payroll_custom
#: model_terms:ir.ui.view,arch_db:exp_payroll_custom.employee_reward_line_tree_view
msgid "Employee Rewards"
msgstr "مكافآت الموظف"

View File

@ -10,3 +10,23 @@ class HrEmployeeSalaryScale(models.Model):
salary_level = fields.Many2one(related='contract_id.salary_level', string='Salary Level', store=True) salary_level = fields.Many2one(related='contract_id.salary_level', string='Salary Level', store=True)
salary_group = fields.Many2one(related='contract_id.salary_group', string='Salary Group', store=True) salary_group = fields.Many2one(related='contract_id.salary_group', string='Salary Group', store=True)
salary_degree = fields.Many2one(related='contract_id.salary_degree', string='Salary Degree', store=True) salary_degree = fields.Many2one(related='contract_id.salary_degree', string='Salary Degree', store=True)
reward_count = fields.Integer(string="Rewards", compute="_compute_reward_count" )
def _compute_reward_count(self):
Reward = self.env['lines.ids.reward']
for emp in self:
emp.reward_count = Reward.search_count([('employee_id', '=', emp.id) ])
def action_open_rewards(self):
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'name': 'Rewards',
'res_model': 'lines.ids.reward',
'view_mode': 'tree,form',
'domain': [('employee_id', '=', self.id)],
'context': {'default_employee_id': self.id }
}

View File

@ -54,3 +54,4 @@ access_hr_payslip_line_expense_manger,access_hr_payslip_expense_manger,model_hr_
access_hr_payslip_line_account_manager,access_hr_payslip_account_manager,model_hr_payslip_line,hr_base.group_account_manager,1,1,0,0 access_hr_payslip_line_account_manager,access_hr_payslip_account_manager,model_hr_payslip_line,hr_base.group_account_manager,1,1,0,0
access_hr_payslip_line_hr_manager,access_hr_payslip_hr_manager,model_hr_payslip_line,hr.group_hr_manager,1,1,0,0 access_hr_payslip_line_hr_manager,access_hr_payslip_hr_manager,model_hr_payslip_line,hr.group_hr_manager,1,1,0,0
access_hr_payslip_line_general_manager,access_hr_payslip_general_manager,model_hr_payslip_line,hr_base.group_general_manager,1,1,0,0 access_hr_payslip_line_general_manager,access_hr_payslip_general_manager,model_hr_payslip_line,hr_base.group_general_manager,1,1,0,0
access_lines_ids_reward_emp,hr_lines_ids_reward_emp,model_lines_ids_reward,base.group_user,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
54 access_hr_payslip_line_account_manager access_hr_payslip_account_manager model_hr_payslip_line hr_base.group_account_manager 1 1 0 0
55 access_hr_payslip_line_hr_manager access_hr_payslip_hr_manager model_hr_payslip_line hr.group_hr_manager 1 1 0 0
56 access_hr_payslip_line_general_manager access_hr_payslip_general_manager model_hr_payslip_line hr_base.group_general_manager 1 1 0 0
57 access_lines_ids_reward_emp hr_lines_ids_reward_emp model_lines_ids_reward base.group_user 1 0 0 0

View File

@ -125,6 +125,19 @@
</field> </field>
</record> </record>
<record model="ir.ui.view" id="employee_reward_line_tree_view">
<field name="name">Employee Rewards</field>
<field name="model">lines.ids.reward</field>
<field name="arch" type="xml">
<tree string="Employee Rewards">
<field name="employee_id"/>
<field name="amount_base" groups="hr_base.group_executive_manager,hr.group_hr_user"/>
<field name="percentage"/>
<field name="amount"/>
</tree>
</field>
</record>
<menuitem id="employee_reward_menu" name="Employee Reward and Allowances" <menuitem id="employee_reward_menu" name="Employee Reward and Allowances"
parent="exp_hr_payroll.menu_hr_payroll_root" parent="exp_hr_payroll.menu_hr_payroll_root"
action="employee_reward_list_action" sequence="10" action="employee_reward_list_action" sequence="10"

View File

@ -16,6 +16,14 @@
</group> </group>
</group> </group>
</xpath> </xpath>
<!-- Rewards button-->
<xpath expr="//div[@name='button_box']" position="inside">
<button
name="action_open_rewards" type="object" class="oe_stat_button" icon="fa-gift">
<field name="reward_count" widget="statinfo" string="Rewards"/>
</button>
</xpath>
</field> </field>
</record> </record>
</data> </data>

View File

@ -1256,3 +1256,10 @@ msgstr "الأساسي الجديد"
#, python-format #, python-format
msgid "Sorry, The Amount Of Basic Salary It Must be Greater than Zero" msgid "Sorry, The Amount Of Basic Salary It Must be Greater than Zero"
msgstr "للأسف, مبلغ الراتب الأساسي يجب ان يكون اكبر من الصفر" msgstr "للأسف, مبلغ الراتب الأساسي يجب ان يكون اكبر من الصفر"
#. module: exp_payroll_promotion
#: model:ir.model.fields,field_description:exp_payroll_promotion.field_hr_employee__payroll_raise_count
#: model_terms:ir.ui.view,arch_db:exp_payroll_promotion.hr_employee_salary_scale_dates_form_view
#: model:ir.actions.act_window,name:exp_payroll_promotion.action_payroll_raises
msgid "Payroll Raises"
msgstr "علاوة الراتب"

View File

@ -11,6 +11,26 @@ class HrEmployee(models.Model):
degree_date = fields.Date('Degree Joining Date') degree_date = fields.Date('Degree Joining Date')
group_date = fields.Date('Group Joining Date') group_date = fields.Date('Group Joining Date')
payroll_raise_count = fields.Integer(string="Payroll Raises", compute="_compute_payroll_raise_count" )
def _compute_payroll_raise_count(self):
Raise = self.env['hr.payroll.raise']
for emp in self:
emp.payroll_raise_count = Raise.search_count([
('employee_id', '=', emp.id)
])
def action_payroll_raises(self):
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'name': 'Payroll Raises',
'res_model': 'hr.payroll.raise',
'view_mode': 'tree,form',
'domain': [('employee_id', '=', self.id)],
'context': {'default_employee_id': self.id }
}
def calculate_experience(self, emp_job=False, experience='general', promotion_date=None): def calculate_experience(self, emp_job=False, experience='general', promotion_date=None):
experience_days = super(HrEmployee, self).calculate_experience(emp_job, experience) or 0 experience_days = super(HrEmployee, self).calculate_experience(emp_job, experience) or 0
if experience_days and experience_days > 0: if experience_days and experience_days > 0:

View File

@ -5,3 +5,4 @@ access_hr_payroll_promotion_setting_hr_user,hr.payroll.promotion.setting.hr.user
access_hr_promotion_current_group_hr_user,hr.promotion.current.group.hr.user,exp_payroll_promotion.model_hr_promotion_current_group,hr.group_hr_user,1,1,1,1 access_hr_promotion_current_group_hr_user,hr.promotion.current.group.hr.user,exp_payroll_promotion.model_hr_promotion_current_group,hr.group_hr_user,1,1,1,1
access_hr_promotion_previous_group_hr_user,hr.promotion.previous.group.hr.user,exp_payroll_promotion.model_hr_promotion_previous_group,hr.group_hr_user,1,1,1,1 access_hr_promotion_previous_group_hr_user,hr.promotion.previous.group.hr.user,exp_payroll_promotion.model_hr_promotion_previous_group,hr.group_hr_user,1,1,1,1
access_hr_promotion_deterrent_penalty_hr_user,hr.promotion.deterrent.penalty.hr.user,exp_payroll_promotion.model_hr_promotion_deterrent_penalty,hr.group_hr_user,1,1,1,1 access_hr_promotion_deterrent_penalty_hr_user,hr.promotion.deterrent.penalty.hr.user,exp_payroll_promotion.model_hr_promotion_deterrent_penalty,hr.group_hr_user,1,1,1,1
access_hr_payroll_raise_emp,hr_payroll_raise_emp,exp_payroll_promotion.model_hr_payroll_raise,base.group_user,1,0,0,0

1 id name model_id:id group_id/id perm_read perm_write perm_create perm_unlink
5 access_hr_promotion_current_group_hr_user hr.promotion.current.group.hr.user exp_payroll_promotion.model_hr_promotion_current_group hr.group_hr_user 1 1 1 1
6 access_hr_promotion_previous_group_hr_user hr.promotion.previous.group.hr.user exp_payroll_promotion.model_hr_promotion_previous_group hr.group_hr_user 1 1 1 1
7 access_hr_promotion_deterrent_penalty_hr_user hr.promotion.deterrent.penalty.hr.user exp_payroll_promotion.model_hr_promotion_deterrent_penalty hr.group_hr_user 1 1 1 1
8 access_hr_payroll_raise_emp hr_payroll_raise_emp exp_payroll_promotion.model_hr_payroll_raise base.group_user 1 0 0 0

View File

@ -12,6 +12,15 @@
<field name="group_date" readonly="1"/> <field name="group_date" readonly="1"/>
</group> </group>
</xpath> </xpath>
<!-- Payroll Raises button -->
<xpath expr="//div[@name='button_box']" position="inside">
<button
name="action_payroll_raises" type="object" class="oe_stat_button" icon="fa-line-chart">
<field name="payroll_raise_count" widget="statinfo" string="Payroll Raises"/>
</button>
</xpath>
</field> </field>
</record> </record>
</data> </data>