Merge branch 'master' of gitee.com:jinan-pengyusen-data/gzth into dev
Signed-off-by: 李鹏宇 <9664676+pengyuthon@user.noreply.gitee.com>
This commit is contained in:
@@ -33,8 +33,8 @@ class YuthonLeaveWizard(models.Model):
|
||||
holiday_status_id = self.env['hr.leave.type'].search([('name', '=', row[2].value)])
|
||||
base_date = datetime(1900, 1, 1)
|
||||
if type(row[5].value) == float:
|
||||
dt_from = base_date + timedelta(days=row[5].value - 1) if row[5].value > 0 else base_date
|
||||
dt_to = base_date + timedelta(days=row[6].value - 1) if row[6].value > 0 else base_date
|
||||
dt_from = base_date + timedelta(days=row[5].value - 2) if row[5].value > 0 else base_date
|
||||
dt_to = base_date + timedelta(days=row[6].value - 2) if row[6].value > 0 else base_date
|
||||
else:
|
||||
dt_from = datetime.strptime(row[5].value, '%Y-%m-%d %H:%M')
|
||||
dt_to = datetime.strptime(row[6].value, '%Y-%m-%d %H:%M')
|
||||
@@ -65,8 +65,8 @@ class YuthonLeaveWizard(models.Model):
|
||||
leave = self.env['hr.leave'].sudo().create({
|
||||
'employee_id': employee_id.id,
|
||||
'holiday_status_id': holiday_status_id.id,
|
||||
'request_date_from': dt_to,
|
||||
'request_date_to': dt_from,
|
||||
'request_date_from': dt_from,
|
||||
'request_date_to': dt_to,
|
||||
'request_hour_from': request_hour_from[:2].lstrip('0'),
|
||||
'request_hour_to': request_hour_to[:2].lstrip('0'),
|
||||
'request_unit_hours':True,})
|
||||
|
||||
@@ -43,7 +43,7 @@ class YuthonHrEmployee(models.Model):
|
||||
# 个人信息
|
||||
user_salary = fields.Float(string="基本工资")
|
||||
job_lv_salary = fields.Float(string="职级工资")
|
||||
salary_group_id = fields.Many2one('yuthon.salary.group', string="工资单分组")
|
||||
salary_group_id = fields.Many2one('yuthon.salary.group', string="工资单分组", store=True, index=True)
|
||||
|
||||
|
||||
user_sex = fields.Selection([('girl', '女'), ('boy', '男')], string="性别")
|
||||
|
||||
@@ -7,6 +7,7 @@ class InheritHrPayslip(models.Model):
|
||||
base_salary = fields.Float(string='基本工资', compute='_compute_salary', store=True)
|
||||
yuthon_company = fields.Selection([('thtz', '集团本部'), ('thwg', '天河物管'), ('thlc', '天河粮储')],
|
||||
related='employee_id.yuthon_company', string="所属公司")
|
||||
salary_group_id = fields.Many2one(related='employee_id.salary_group_id', string="工资组", store=True, index=True)
|
||||
performance_bonuses = fields.Float(string='预发绩效奖金', compute='_compute_salary', store=True)
|
||||
full_attendance_award = fields.Float(string='全勤奖', compute='_compute_salary', store=True)
|
||||
commuting_allowance = fields.Float(string='通信补贴', compute='_compute_salary', store=True)
|
||||
@@ -45,6 +46,7 @@ class InheritHrPayslip(models.Model):
|
||||
attendance_deduction_total = fields.Float(string='考勤扣款合计')
|
||||
assessment_reserved_amount = fields.Float(string='考核保留量')
|
||||
is_push = fields.Boolean(string='推送')
|
||||
is_salary_push = fields.Boolean(string='工资推送')
|
||||
|
||||
@api.depends('line_ids')
|
||||
def _compute_salary(self):
|
||||
@@ -149,10 +151,50 @@ class InheritHrPayslip(models.Model):
|
||||
for record in self:
|
||||
record.write({'is_push': True})
|
||||
|
||||
|
||||
def return_button(self):
|
||||
for record in self:
|
||||
record.write({'is_push': False})
|
||||
|
||||
def put_salary_button(self):
|
||||
for record in self:
|
||||
record.write({'is_salary_push': True})
|
||||
|
||||
def return_salary_button(self):
|
||||
for record in self:
|
||||
record.write({'is_salary_push': False})
|
||||
|
||||
def action_put_wizard(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": "推送个税计算",
|
||||
"res_model": "put.wizard",
|
||||
"view_mode": "form",
|
||||
"target": "new",
|
||||
}
|
||||
|
||||
def action_return_wizard(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": "退回薪资计算",
|
||||
"res_model": "return.wizard",
|
||||
"view_mode": "form",
|
||||
"target": "new",
|
||||
}
|
||||
|
||||
def action_put_salary_wizard(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": "推送工资确认",
|
||||
"res_model": "put.salary.wizard",
|
||||
"view_mode": "form",
|
||||
"target": "new",
|
||||
}
|
||||
|
||||
def action_return_salary_wizard(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": "退回个税计算",
|
||||
"res_model": "return.salary.wizard",
|
||||
"view_mode": "form",
|
||||
"target": "new",
|
||||
}
|
||||
|
||||
@@ -10,4 +10,6 @@ access_yuthon_account_group,access_yuthon_account_group,model_yuthon_account_gro
|
||||
access_salary_payslip_wizard,access_salary_payslip_wizard,model_salary_payslip_wizard,base.group_user,1,1,1,1
|
||||
access_select_delete_wizard,access_select_delete_wizard,model_select_delete_wizard,base.group_user,1,1,1,1
|
||||
access_put_wizard,access_put_wizard,model_put_wizard,base.group_user,1,1,1,1
|
||||
access_return_wizard,access_return_wizard,model_return_wizard,base.group_user,1,1,1,1
|
||||
access_return_wizard,access_return_wizard,model_return_wizard,base.group_user,1,1,1,1
|
||||
access_return_salary_wizard, access_return_salary_wizard,model_return_salary_wizard,base.group_user,1,1,1,1
|
||||
access_put_salary_wizard,access_put_salary_wizard,model_put_salary_wizard,base.group_user,1,1,1,1
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<record id="hr_payroll_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.payroll.inherit</field>
|
||||
<field name="model">hr.payslip</field>
|
||||
<field name="inherit_id" ref="hr_payroll.view_hr_payslip_tree"/>
|
||||
<field name="inherit_id" ref="hr_payroll.view_hr_payslip_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//tree" position="attributes">
|
||||
<attribute name="js_class">custom_salary_button</attribute>
|
||||
@@ -39,15 +39,16 @@
|
||||
<field name="total_before_tax"/>
|
||||
<field name="basic_medical_insurance"/>
|
||||
<field name="basic_endowment_insurance"/>
|
||||
|
||||
<field name="unemployment_insurance"/>
|
||||
<field name="tax"/>
|
||||
<field name="housing_provident_fund"/>
|
||||
<field name="union_dues"/>
|
||||
<field name="meal_misunderstanding_fee"/>
|
||||
<field name="is_salary_push" column_invisible="1"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='state']" position="after">
|
||||
<button name="put_payslip" type="object" string="发送" class="btn-primary"/>
|
||||
<button name="return_salary_button" string="退回" type="object" class="oe_highlight"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
@@ -123,6 +124,7 @@
|
||||
<field name="housing_provident_fund" invisible="1"/>
|
||||
<field name="attendance_deduction_total" invisible="1"/>
|
||||
<field name="assessment_reserved_amount" invisible="1"/>
|
||||
<!-- <field name="salary_group_id" invisible="1"/>-->
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
@@ -173,7 +175,9 @@
|
||||
<field name="continuing_education"/>
|
||||
<field name="infant_care"/>
|
||||
<field name="is_push" column_invisible="1"/>
|
||||
<field name="is_salary_push" column_invisible="1"/>
|
||||
<button name="return_button" string="退回" type="object" class="oe_highlight"/>
|
||||
<button name="put_salary_button" string="推送" type="object" class="oe_highlight"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -200,16 +204,24 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='employee_id']" position="after">
|
||||
<group expand="0" string="Group By">
|
||||
<filter string="工资单" name="group_by_account_id" context="{'group_by': 'account_id'}"/>
|
||||
<filter string="工资单" name="group_by_employee" context="{'group_by': 'salary_group_id'}"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="hr_payroll.action_view_hr_payslip_month_form" model="ir.actions.act_window">
|
||||
<field name="name">工资确认</field>
|
||||
<field name="res_model">hr.payslip</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="domain">[('is_salary_push', '=', True)]</field>
|
||||
<field name="context">{'search_default_group_by_employee': 1}</field>
|
||||
</record>
|
||||
<record id="action_view_hr_payslip_month_form1" model="ir.actions.act_window">
|
||||
<field name="name">薪资计算</field>
|
||||
<field name="res_model">hr.payslip</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="domain">[('is_push', '=', False)]</field>
|
||||
<field name="context">{'search_default_group_by_employee': 1}</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_salary.view_hr_payslip_tree1')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('hr_payroll.view_hr_payslip_form')})]"/>
|
||||
@@ -217,12 +229,41 @@
|
||||
<record id="action_view_hr_payslip_month_form2" model="ir.actions.act_window">
|
||||
<field name="name">个税计算</field>
|
||||
<field name="res_model">hr.payslip</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('is_push', '=', True)]</field>
|
||||
<field name="view_mode">tree,form,search</field>
|
||||
<field name="domain">[('is_push', '=', True), ('is_salary_push', '=', False)]</field>
|
||||
<field name="context">{'search_default_group_by_employee': 1}</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_salary.view_hr_payslip_tree2')}),
|
||||
(0, 0, {'view_mode': 'form', 'view_id': ref('hr_payroll.view_hr_payslip_form')})]"/>
|
||||
</record>
|
||||
<record id="all_data_put" model="ir.actions.server">
|
||||
<field name="name">批量推送个税计算</field>
|
||||
<field name="model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="binding_model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_put_wizard()</field>
|
||||
</record>
|
||||
<record id="all_data_return" model="ir.actions.server">
|
||||
<field name="name">批量退回薪资计算</field>
|
||||
<field name="model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="binding_model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_return_wizard()</field>
|
||||
</record>
|
||||
<record id="all_data_put_salary" model="ir.actions.server">
|
||||
<field name="name">批量推送工资确认</field>
|
||||
<field name="model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="binding_model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_put_salary_wizard()</field>
|
||||
</record>
|
||||
<record id="all_data_return_salary" model="ir.actions.server">
|
||||
<field name="name">批量退回个税计算</field>
|
||||
<field name="model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="binding_model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_return_salary_wizard()</field>
|
||||
</record>
|
||||
<record id="all_data_write_payslip" model="ir.actions.server">
|
||||
<field name="name">导入累计专项</field>
|
||||
<field name="model_id" ref="hr_payroll.model_hr_payslip"/>
|
||||
|
||||
@@ -11,20 +11,47 @@ class PutWizard(models.TransientModel):
|
||||
_name = 'put.wizard'
|
||||
_description = '推送二次确认弹窗'
|
||||
|
||||
name = fields.Char(string='你确定要全部推送吗?', readonly=1)
|
||||
name = fields.Char(string='你确定要推送吗?', readonly=1)
|
||||
|
||||
def put_confirm(self):
|
||||
payslip_records = self.env['hr.payslip'].search([])
|
||||
payslip_records = self.env["hr.payslip"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id')))
|
||||
for record in payslip_records:
|
||||
record.write({'is_push': True})
|
||||
|
||||
class ReturnWizard(models.TransientModel):
|
||||
_name = 'return.wizard'
|
||||
_description = '推送退回确认弹窗'
|
||||
_description = '退回确认弹窗'
|
||||
|
||||
name = fields.Char(string='你确定要全部退回吗?', readonly=1)
|
||||
name = fields.Char(string='你确定要退回吗?', readonly=1)
|
||||
|
||||
def return_confirm(self):
|
||||
payslip_records = self.env['hr.payslip'].search([])
|
||||
payslip_records = self.env["hr.payslip"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id')))
|
||||
for record in payslip_records:
|
||||
record.write({'is_push': False})
|
||||
record.write({'is_push': False})
|
||||
|
||||
|
||||
class PutSalaryWizard(models.TransientModel):
|
||||
_name = 'put.salary.wizard'
|
||||
_description = '推送确认弹窗'
|
||||
|
||||
name = fields.Char(string='你确定要退回吗?', readonly=1)
|
||||
|
||||
def put_confirm(self):
|
||||
payslip_records = self.env["hr.payslip"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id')))
|
||||
for record in payslip_records:
|
||||
record.write({'is_salary_push': True})
|
||||
|
||||
class ReturnSalaryWizard(models.TransientModel):
|
||||
_name = 'return.salary.wizard'
|
||||
_description = '退回确认弹窗'
|
||||
|
||||
name = fields.Char(string='你确定要退回吗?', readonly=1)
|
||||
|
||||
def return_confirm(self):
|
||||
payslip_records = self.env["hr.payslip"].browse(
|
||||
self._context.get('active_ids', self._context.get('active_id')))
|
||||
for record in payslip_records:
|
||||
record.write({'is_salary_push': False})
|
||||
@@ -38,4 +38,42 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="put_salary_wizard_form" model="ir.ui.view">
|
||||
<field name="name">推送弹窗</field>
|
||||
<field name="model">put.salary.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button name="put_confirm" string="确认" type="object" class="oe_highlight"/>
|
||||
<button string="返回" class="btn-secondary" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="return_salary_wizard_form" model="ir.ui.view">
|
||||
<field name="name">退回弹窗</field>
|
||||
<field name="model">return.salary.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button name="return_confirm" string="确认" type="object" class="oe_highlight"/>
|
||||
<button string="返回" class="btn-secondary" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -61,6 +61,7 @@
|
||||
sequence="12"/>
|
||||
<menuitem id="hr_recruitment_setting_menu_board"
|
||||
name="配置"
|
||||
parent="hr_recruitment_menu_root_board"
|
||||
sequence="99"/>
|
||||
<menuitem id="hr_recruitment_set_menu_board"
|
||||
name="设置"
|
||||
|
||||
Reference in New Issue
Block a user