@@ -13,7 +13,13 @@ class SoongWorkflowRecord(models.Model):
|
||||
_order = 'write_date2'
|
||||
|
||||
def get_no_read_count(self):
|
||||
return self.search_count([('approve_state', '=', 'pending'), ('employee_ids', 'in', [self.env.user.employee_id.id])])
|
||||
domain = [
|
||||
'|',
|
||||
('approve_state', '=', 'pending'),
|
||||
('approve_state', '=', 'start'),
|
||||
('employee_ids', 'in', [self.env.user.employee_id.id])
|
||||
]
|
||||
return self.search_count(domain)
|
||||
|
||||
def read(self, fields=None, load='_classic_read'):
|
||||
for re in self:
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<field name="approvals_group_id" optional="hide"/>
|
||||
<field name="department_id" optional="hide"/>
|
||||
<field name="node_id" string="当前节点"/>
|
||||
<field name="approve_state" string="审批状态" decoration-danger="approve_state == 'end'" class="list_ids_width"/>
|
||||
<field name="approve_state" string="审批状态" decoration-danger="approve_state == 'end'" decoration-success="approve_state == 'pending'" class="list_ids_width"/>
|
||||
<field name="users_ids" string="用户" widget="many2many_tags" optional="hide"/>
|
||||
<field name="employee_ids" widget="many2many_tags" string="当前经办人" class="list_ids_width"/>
|
||||
<field name="create_uid"/>
|
||||
|
||||
@@ -407,6 +407,9 @@ class HolidaysRequestBatch(models.Model):
|
||||
if leave.request_date_to:
|
||||
all_dates.append(leave.request_date_to)
|
||||
total_days += leave.number_of_days_display if hasattr(leave, 'number_of_days_display') else 0
|
||||
for line in self.hour_leave_ids:
|
||||
if line.request_date_from:
|
||||
all_dates.append(line.request_date_from)
|
||||
|
||||
if all_dates:
|
||||
self.start_date = min(all_dates)
|
||||
@@ -419,7 +422,7 @@ class HolidaysRequestBatch(models.Model):
|
||||
if self.hour_leave_ids and not self.leave_ids:
|
||||
# 只按小时请假的情况
|
||||
first_hour_leave = self.hour_leave_ids[0]
|
||||
date_str = first_hour_leave.request_date_from.strftime('%Y/%m/%d')
|
||||
date_str = first_hour_leave.request_date_from.strftime('%Y%-m%-%d')
|
||||
start_time = first_hour_leave.request_hour_from
|
||||
end_time = first_hour_leave.request_hour_to
|
||||
hours = first_hour_leave.number_of_hours_text if first_hour_leave.number_of_hours_text else 0
|
||||
@@ -429,16 +432,16 @@ class HolidaysRequestBatch(models.Model):
|
||||
self.name = title
|
||||
elif self.leave_ids and not self.hour_leave_ids:
|
||||
# 只按天请假的情况
|
||||
start_date_str = self.start_date.strftime('%Y/%m/%d')
|
||||
end_date_str = self.end_date.strftime('%Y/%m/%d')
|
||||
start_date_str = self.start_date.strftime('%Y-%m-%d')
|
||||
end_date_str = self.end_date.strftime('%Y-%m-%d')
|
||||
self.name = f"{self.employee_id.name}的请假 {start_date_str}-{end_date_str}"
|
||||
elif self.leave_ids and self.hour_leave_ids:
|
||||
# 混合请假的情况
|
||||
start_date_str = self.start_date.strftime('%Y/%m/%d')
|
||||
end_date_str = self.end_date.strftime('%Y/%m/%d')
|
||||
start_date_str = self.start_date.strftime('%Y-%m-%d')
|
||||
end_date_str = self.end_date.strftime('%Y-%m-%d')
|
||||
first_hour_leave = self.hour_leave_ids[0]
|
||||
hours = first_hour_leave.number_of_hours_text if first_hour_leave.number_of_hours_text else 0
|
||||
title = f"{self.employee_id.name}的请假 {start_date_str}-{end_date_str},{total_days}天"
|
||||
title = f"{self.employee_id.name}的请假 {start_date_str}~{end_date_str}共计{total_days}天"
|
||||
if hours:
|
||||
title += f"{hours}"
|
||||
self.name = title
|
||||
|
||||
@@ -17,11 +17,7 @@ class RemoveHolidayApprovals(models.Model):
|
||||
department_id = fields.Many2one(related='users_id.employee_id.department_id', string="部门")
|
||||
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
|
||||
default='drft')
|
||||
type_remove_holiday = fields.Char(string="销假类型")
|
||||
role_id = fields.Many2one('yuthon.user.role', string="岗位")
|
||||
date_start = fields.Datetime(string="开始时间", default=fields.Datetime.now)
|
||||
date_end = fields.Datetime(string="结束时间")
|
||||
duration = fields.Float(string="时长")
|
||||
reason_application = fields.Html(string="申请事由")
|
||||
is_issues = fields.Boolean(string='是否上会')
|
||||
issues_result = fields.Html(string="会议结果")
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
<field name="name"/>
|
||||
<field name="users_id"/>
|
||||
<field name="department_id" widget="ztree_select"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -47,23 +46,13 @@
|
||||
</h1>
|
||||
</div>
|
||||
<group string="审批事由">
|
||||
<field name="name" required="1"/>
|
||||
<field name="work_end" invisible="1"/>
|
||||
<field name="reason_application"/>
|
||||
<field name="issues_result" invisible="is_issues == False"/>
|
||||
</group>
|
||||
<group string="审批人信息">
|
||||
<group>
|
||||
<field name="name" required="1"/>
|
||||
<field name="work_end" invisible="1"/>
|
||||
<field name="users_id"/>
|
||||
<field name="department_id" widget="ztree_select"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="department_id" widget="ztree_select" invisible="1"/>
|
||||
<field name="reason_application"/>
|
||||
<field name="date"/>
|
||||
<field name="duration"/>
|
||||
<field name="type_remove_holiday"/>
|
||||
</group>
|
||||
<field name="issues_result" invisible="is_issues == False"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
|
||||
@@ -285,9 +285,19 @@ class YuthonHrEmployeeWizard(models.Model):
|
||||
'phone_number': phone_number,
|
||||
}])
|
||||
write_uid = self.env['res.users'].search([('id', '=', employee_id.user_id.id)])
|
||||
user_type_dict = {
|
||||
'正式合同(一签)': 'formal_one',
|
||||
'劳务协议': 'labor',
|
||||
'正式合同(二签)': 'formal_two',
|
||||
'正式合同(无固定)': 'formal_none',
|
||||
'兼职协议': 'part_time',
|
||||
'用工协议': 'employment',
|
||||
'实习协议': 'internship',
|
||||
}
|
||||
use_user_type = user_type_dict[row[34].value]
|
||||
|
||||
#
|
||||
employee_date= {
|
||||
'use_user_type': use_user_type,
|
||||
'company_id': company_id.id,
|
||||
'work_phone': work_phone,
|
||||
'mobile_phone': mobile_phone,
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<field name="code">official_code</field>
|
||||
<field name="prefix">GW%(y)s%(month)s%(day)s</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
|
||||
<record id="official_type_1" model="official.type">
|
||||
<field name="name">决议</field>
|
||||
<field name="note">适用于会议讨论通过的重大决策事项</field>
|
||||
|
||||
@@ -341,26 +341,30 @@
|
||||
parent="human_resources_salary_root_board"
|
||||
action="yuthon_salary.action_view_hr_payslip_month_form2"
|
||||
sequence="3"/>
|
||||
<menuitem id="human_pay_salary_approval_root_board"
|
||||
name="薪资审定"
|
||||
parent="human_resources_salary_root_board"
|
||||
sequence="6"/>
|
||||
<menuitem id="human_pay_slips_root_board10"
|
||||
name="员工薪资"
|
||||
parent="human_pay_salary_approval_root_board"
|
||||
action="hr_payroll.action_view_hr_payslip_month_form"
|
||||
sequence="1"/>
|
||||
<menuitem id="yuthon_payroll_labor_board"
|
||||
name="劳务费"
|
||||
parent="human_resources_salary_root_board"
|
||||
parent="human_pay_salary_approval_root_board"
|
||||
action="yuthon_salary.action_yuthon_payroll_labor"
|
||||
sequence="4"/>
|
||||
<menuitem id="yuthon_payroll_retired_board"
|
||||
name="退休人员费用"
|
||||
parent="human_resources_salary_root_board"
|
||||
action="yuthon_salary.action_yuthon_payroll_retired"
|
||||
sequence="5"/>
|
||||
<menuitem id="view_yuthon_salary_year_action_board"
|
||||
<menuitem id="human_pay_salary_approval_root_board1"
|
||||
name="年终奖金计算"
|
||||
parent="human_resources_salary_root_board"
|
||||
action="yuthon_salary.view_yuthon_salary_year_action"
|
||||
sequence="6"/>
|
||||
<menuitem id="human_pay_slips_root_board10"
|
||||
name="薪资审定"
|
||||
parent="human_resources_salary_root_board"
|
||||
action="hr_payroll.action_view_hr_payslip_month_form"
|
||||
sequence="7"/>
|
||||
sequence="10"/>
|
||||
<menuitem id="yuthon_payroll_retired_board"
|
||||
name="退休人员费用"
|
||||
parent="human_pay_salary_approval_root_board"
|
||||
action="yuthon_salary.action_yuthon_payroll_retired"
|
||||
sequence="15"/>
|
||||
<menuitem id="human_pay_slips_root_board12"
|
||||
name="薪资归档"
|
||||
parent="human_resources_salary_root_board"
|
||||
@@ -371,29 +375,28 @@
|
||||
<!-- parent="human_resources_salary_root_board"-->
|
||||
<!-- action="yuthon_salary.action_view_hr_payroll_structure_type_form1"-->
|
||||
<!-- sequence="9"/>-->
|
||||
<menuitem id="human_payroll_items_root_board"
|
||||
name="工资项"
|
||||
parent="human_resources_salary_root_board"
|
||||
sequence="12"/>
|
||||
<menuitem id="human_resources_salary_root_board1"
|
||||
name="职级"
|
||||
parent="human_resources_salary_root_board"
|
||||
parent="human_payroll_items_root_board"
|
||||
action="yuthon_salary.action_view_hr_payroll_structure_list_form"
|
||||
sequence="15"/>
|
||||
<!-- <menuitem id="yuthon_salary_board"-->
|
||||
<!-- name="工资项"-->
|
||||
<!-- parent="human_resources_salary_root_board"-->
|
||||
<!-- action="yuthon_salary.yuthon_payroll_board_action"-->
|
||||
<!-- sequence="16"/>-->
|
||||
<menuitem id="hr_payroll_common_board"
|
||||
name="常用项"
|
||||
parent="human_resources_salary_root_board"
|
||||
parent="human_payroll_items_root_board"
|
||||
action="yuthon_salary.view_yuthon_payroll_common_action"
|
||||
sequence="20"/>
|
||||
<menuitem id="hr_payroll_insurance_board"
|
||||
name="五险一金"
|
||||
parent="human_resources_salary_root_board"
|
||||
parent="human_payroll_items_root_board"
|
||||
action="yuthon_salary.view_yuthon_payroll_insurances_action"
|
||||
sequence="25"/>
|
||||
<menuitem id="hr_payroll_temporary_board"
|
||||
name="临时项"
|
||||
parent="human_resources_salary_root_board"
|
||||
parent="human_payroll_items_root_board"
|
||||
action="yuthon_salary.view_yuthon_payroll_temporary_action"
|
||||
sequence="30"/>
|
||||
<menuitem id="yuthon_salary_documents"
|
||||
|
||||
Reference in New Issue
Block a user