diff --git a/soong_workflow/views/soong_workflow_record.xml b/soong_workflow/views/soong_workflow_record.xml index c79a90d66..a92d9efbf 100644 --- a/soong_workflow/views/soong_workflow_record.xml +++ b/soong_workflow/views/soong_workflow_record.xml @@ -37,7 +37,41 @@ - + + soong.workflow.record.kanban + soong.workflow.record + + + + +
+
+
+
+ + + +
+ 发起人: + +
+
+ 流水号: + +
+
+ 最后更新日期: + +
+
+
+
+
+
+
+
+
+
soong.workflow.record.tree.restore soong.workflow.record @@ -64,7 +98,7 @@ 工作流记录 ir.actions.act_window soong.workflow.record - tree,form + tree,form,kanban [('users_ids', 'in', [uid]), ('reclaim_state', '=', False)] diff --git a/yuthon_salary/__manifest__.py b/yuthon_salary/__manifest__.py index eda5a0480..e52bc52d0 100644 --- a/yuthon_salary/__manifest__.py +++ b/yuthon_salary/__manifest__.py @@ -17,6 +17,7 @@ 'views/inherit_hr_salary_rule_views.xml', 'views/inherit_hr_payslip_views.xml', 'views/inherit_hr_payroll_structure_type_views.xml', + 'views/yuthon_payroll_project_views.xml', 'views/yuthon_payroll_type_setting_views.xml', 'wizard/yuthon_salary_wizard_views.xml', ], diff --git a/yuthon_salary/models/__init__.py b/yuthon_salary/models/__init__.py index 66a92a44c..86634a361 100644 --- a/yuthon_salary/models/__init__.py +++ b/yuthon_salary/models/__init__.py @@ -2,4 +2,5 @@ from . import inherit_hr_payroll_structure from . import inherit_hr_salary_rule from . import inherit_hr_payroll_structure_type from . import inherit_hr_payslip -from . import yuthon_payroll_type_setting \ No newline at end of file +from . import yuthon_payroll_type_setting +from . import yuthon_payroll_project \ No newline at end of file diff --git a/yuthon_salary/models/inherit_hr_payroll_structure.py b/yuthon_salary/models/inherit_hr_payroll_structure.py index 1ec80a1ba..2bbdecbc6 100644 --- a/yuthon_salary/models/inherit_hr_payroll_structure.py +++ b/yuthon_salary/models/inherit_hr_payroll_structure.py @@ -24,50 +24,6 @@ class HrPayrollStructure(models.Model): seniority_salary = fields.Monetary(string="工龄工资", currency_field="currency_id") overtime_pay = fields.Monetary(string="加班费", currency_field="currency_id") full_attendance_bonus = fields.Monetary(string="全勤奖", currency_field="currency_id") - attendance_deduction = fields.Monetary(string="考勤扣款合计", currency_field="currency_id") - assessment_reserve = fields.Monetary(string="考核保留量", currency_field="currency_id") - temporary_performance_salary = fields.Monetary(string="临时绩效工资", currency_field="currency_id") - post_allowance_bonus = fields.Monetary(string="顶岗奖励", currency_field="currency_id") - excellence_performance_bonus = fields.Monetary(string="评优绩效奖金", currency_field="currency_id") - performance_bonus_recovery = fields.Monetary(string="绩效奖金扣回", currency_field="currency_id") - seniority_award = fields.Monetary(string="年功奖", currency_field="currency_id") - special_management_bonus = fields.Monetary(string="经营特别奖", currency_field="currency_id") - annual_leave_settlement = fields.Monetary(string="年假结算", currency_field="currency_id") - assessment_reserve_payment = fields.Monetary(string="考核保留量发放", currency_field="currency_id") - learning_progress_award = fields.Monetary(string="学习进步奖", currency_field="currency_id") - performance_assessment_excellence_bonus = fields.Monetary(string="绩效考核评优奖金", currency_field="currency_id") - prepaid_performance_bonus_recovery = fields.Monetary(string="预发绩效奖金扣回", currency_field="currency_id") - temporary_performance_wages = fields.Monetary(string="临时绩效工资", currency_field="currency_id") - year_end_double_salary = fields.Monetary(string="年终双薪", currency_field="currency_id") - excellence_award_bonus = fields.Monetary(string="评优绩效奖金", currency_field="currency_id") - excellence_bonus = fields.Monetary(string="评优奖金", currency_field="currency_id") - learning_progress_bonus = fields.Monetary(string="学习进步奖", currency_field="currency_id") - social_security_overdeduction_refund = fields.Monetary(string="多扣社保退回", currency_field="currency_id") - performance_bonus_deduction = fields.Monetary(string="绩效奖金扣回", currency_field="currency_id") - communication_subsidy_deduction = fields.Monetary(string="通讯补贴扣回", currency_field="currency_id") - seniority_award_bonus = fields.Monetary(string="年功奖", currency_field="currency_id") - total_budget_salary = fields.Monetary(string="(预算口径)应发工资合计", currency_field="currency_id") - pre_tax_salary = fields.Monetary(string="税前工资合计", currency_field="currency_id") - year_end_bonus = fields.Monetary(string="年终奖金", currency_field="currency_id") - basic_pension = fields.Monetary(string="基本养老", currency_field="currency_id") - basic_medical = fields.Monetary(string="基本医疗", currency_field="currency_id") - unemployment = fields.Monetary(string="失业", currency_field="currency_id") - housing_fund = fields.Monetary(string="公积金", currency_field="currency_id") - personal_contributions_total = fields.Monetary(string="个人缴纳合计", currency_field="currency_id") - child_education = fields.Monetary(string="子女教育", currency_field="currency_id") - elderly_support = fields.Monetary(string="赡养老人", currency_field="currency_id") - housing_loan = fields.Monetary(string="住房贷款", currency_field="currency_id") - housing_rent = fields.Monetary(string="住房租金", currency_field="currency_id") - continuing_education = fields.Monetary(string="继续教育", currency_field="currency_id") - infant_care = fields.Monetary(string="3岁以下婴幼儿照护", currency_field="currency_id") - special_deductions_total = fields.Monetary(string="专项附加扣除小计", currency_field="currency_id") - corporate_annuity = fields.Monetary(string="企业年金", currency_field="currency_id") - payable_salary = fields.Monetary(string="应发工资", currency_field="currency_id") - social_security_funds = fields.Monetary(string="三险一金", currency_field="currency_id") - annuity = fields.Monetary(string="年金", currency_field="currency_id") - tax_adjustment = fields.Monetary(string="应补(退)税额", currency_field="currency_id") - union_fees = fields.Monetary(string="工会会费", currency_field="currency_id") - actual_salary = fields.Monetary(string="实发工资", currency_field="currency_id") @api.model def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True): diff --git a/yuthon_salary/models/yuthon_payroll_project.py b/yuthon_salary/models/yuthon_payroll_project.py new file mode 100644 index 000000000..625b79c65 --- /dev/null +++ b/yuthon_salary/models/yuthon_payroll_project.py @@ -0,0 +1,38 @@ +from odoo import api, fields, models, _ + + +class YuthonPayrollCommon(models.Model): + _name = 'yuthon.payroll.common' + _description = '薪资常用项' + + name = fields.Char(string='工资项名称') + yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储')], + string='所属公司') + department_id = fields.Many2one('hr.department', string="部门") + conditional_formulas = fields.Char(string='条件公式') # todo 可能是个many2one + start_date = fields.Date(string="生效日期", default=fields.Date.today()) + end_date = fields.Date(string="失效日期") + + +class YuthonPayrollTemporary(models.Model): + _name = 'yuthon.payroll.temporary' + _description = '薪资临时项' + + name = fields.Char(string='工资项名称') + yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储')], + string='所属公司') + department_id = fields.Many2one('hr.department', string="部门") + start_date = fields.Date(string="生效日期", default=fields.Date.today()) + end_date = fields.Date(string="失效日期") + + +class YuthonPayrollInsurances (models.Model): + _name = 'yuthon.payroll.insurances' + _description = '五险一金' + + name = fields.Char(string='工资项名称') + yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储')], + string='所属公司') + department_id = fields.Many2one('hr.department', string="部门") + start_date = fields.Date(string="生效日期", default=fields.Date.today()) + end_date = fields.Date(string="失效日期") \ No newline at end of file diff --git a/yuthon_salary/security/ir.model.access.csv b/yuthon_salary/security/ir.model.access.csv index fd7e38151..a68cc4d82 100644 --- a/yuthon_salary/security/ir.model.access.csv +++ b/yuthon_salary/security/ir.model.access.csv @@ -1,3 +1,6 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_yuthon_salary_wizard,access_yuthon_salary_wizard,model_yuthon_salary_wizard,base.group_user,1,1,1,1 -access_yuthon_payroll_type_setting,access_yuthon_payroll_type_setting,model_yuthon_payroll_type_setting,base.group_user,1,1,1,1 \ No newline at end of file +access_yuthon_payroll_type_setting,access_yuthon_payroll_type_setting,model_yuthon_payroll_type_setting,base.group_user,1,1,1,1 +access_yuthon_payroll_common,access_yuthon_payroll_common,model_yuthon_payroll_common,base.group_user,1,1,1,1 +access_yuthon_payroll_temporary,access_yuthon_payroll_temporary,model_yuthon_payroll_temporary,base.group_user,1,1,1,1 +access_yuthon_payroll_insurances,access_yuthon_payroll_insurances,model_yuthon_payroll_insurances,base.group_user,1,1,1,1 diff --git a/yuthon_salary/views/inherit_hr_payroll_structure_views.xml b/yuthon_salary/views/inherit_hr_payroll_structure_views.xml index 31cc55539..d794a5aea 100644 --- a/yuthon_salary/views/inherit_hr_payroll_structure_views.xml +++ b/yuthon_salary/views/inherit_hr_payroll_structure_views.xml @@ -17,7 +17,7 @@ - + @@ -28,50 +28,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/yuthon_salary/views/yuthon_payroll_project_views.xml b/yuthon_salary/views/yuthon_payroll_project_views.xml new file mode 100644 index 000000000..5a7017e01 --- /dev/null +++ b/yuthon_salary/views/yuthon_payroll_project_views.xml @@ -0,0 +1,97 @@ + + + + yuthon.payroll.common.tree + yuthon.payroll.common + + + + + + + + + + + + + 薪资常用项 + yuthon.payroll.common + [('yuthon_company','=','thtz')] + tree + + + 薪资常用项 + yuthon.payroll.common + [('yuthon_company','=','thlc')] + tree + + + 薪资常用项 + yuthon.payroll.common + [('yuthon_company','=','thwg')] + tree + + + yuthon.payroll.temporary.tree + yuthon.payroll.temporary + + + + + + + + + + + + 临时工资项 + yuthon.payroll.temporary + [('yuthon_company','=','thtz')] + tree + + + 临时工资项 + yuthon.payroll.temporary + [('yuthon_company','=','thlc')] + tree + + + 临时工资项 + yuthon.payroll.temporary + [('yuthon_company','=','thwg')] + tree + + + yuthon.payroll.insurances.tree + yuthon.payroll.insurances + + + + + + + + + + + + 五险一金 + yuthon.payroll.insurances + [('yuthon_company','=','thtz')] + tree + + + 五险一金 + yuthon.payroll.insurances + [('yuthon_company','=','thlc')] + tree + + + 五险一金 + yuthon.payroll.insurances + [('yuthon_company','=','thwg')] + tree + + diff --git a/yuthon_work_brand/views/hr_menus.xml b/yuthon_work_brand/views/hr_menus.xml index 7e7567573..c18750d95 100644 --- a/yuthon_work_brand/views/hr_menus.xml +++ b/yuthon_work_brand/views/hr_menus.xml @@ -350,6 +350,21 @@ parent="human_pay_setting_structural_tt_board" action="yuthon_salary.action_view_hr_payroll_structure_list_form1" sequence="3"/> + + + @@ -374,6 +389,21 @@ parent="human_pay_setting_structural_lc_board" action="yuthon_salary.action_view_hr_payroll_structure_list_form2" sequence="3"/> + + + @@ -398,6 +428,21 @@ parent="human_pay_setting_structural_wg_board" action="yuthon_salary.action_view_hr_payroll_structure_list_form3" sequence="5"/> + + +