Merge pull request !1508 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-02-19 07:32:42 +00:00
committed by Gitee
7 changed files with 159 additions and 55 deletions
+4 -4
View File
@@ -58,7 +58,7 @@ class HrLeave(models.Model):
column2='attachment_id'
)
request_hour_from = fields.Selection([
('0', '12:00 上午'), ('0.5', '12:30 上午'),
('0', '00:00 上午'), ('0.5', '00:30 上午'),
('1', '1:00 上午'), ('1.5', '1:30 上午'),
('2', '2:00 上午'), ('2.5', '2:30 上午'),
('3', '3:00 上午'), ('3.5', '3:30 上午'),
@@ -83,7 +83,7 @@ class HrLeave(models.Model):
('22', '10:00 下午'), ('22.5', '10:30 下午'),
('23', '11:00 下午'), ('23.5', '11:30 下午')], string='开始时间')
request_hour_to = fields.Selection([
('0', '12:00 上午'), ('0.5', '12:30 上午'),
('0', '00:00 上午'), ('0.5', '00:30 上午'),
('1', '1:00 上午'), ('1.5', '1:30 上午'),
('2', '2:00 上午'), ('2.5', '2:30 上午'),
('3', '3:00 上午'), ('3.5', '3:30 上午'),
@@ -156,10 +156,10 @@ class HolidaysRequestBatch(models.Model):
self.leave_ids.action_validate()
self.hour_leave_ids.action_validate()
@api.onchange('leave_ids', 'hour_leave_ids')
@api.onchange('is_day', 'is_hour')
def _onchange_name(self):
employee_name = self.users_id.name
if self.leave_ids or self.hour_leave_ids:
if self.is_day or self.is_hour:
leave_types = []
for leave in self.leave_ids:
if leave.number_of_days_display:
@@ -200,6 +200,45 @@
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
<record forcecreate="True" id="card_card_customer_shift_remind_time_on" model="ir.cron">
<field name="name">定时任务:客服上班提醒</field>
<field name="model_id" ref="model_hr_attendance"/>
<field name="state">code</field>
<field name="code">model.card_customer_service_shift_remind_on()</field>
<field eval="True" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="nextcall" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 08:50:00')"/>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
<record forcecreate="True" id="card_customer_service_shift_remind_time_out" model="ir.cron">
<field name="name">定时任务:客服下班提醒</field>
<field name="model_id" ref="model_hr_attendance"/>
<field name="state">code</field>
<field name="code">model.card_customer_service_shift_remind_out()</field>
<field eval="True" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="nextcall" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 18:00:00')"/>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
<record forcecreate="True" id="card_customer_service_stand_remind_time" model="ir.cron">
<field name="name">定时任务:客服值班提醒</field>
<field name="model_id" ref="model_hr_attendance"/>
<field name="state">code</field>
<field name="code">model.card_customer_service_stand_remind()</field>
<field eval="True" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="nextcall" eval="(DateTime.now() + timedelta(days=1)).strftime('%Y-%m-%d 12:00:00')"/>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
</data>
</odoo>
@@ -469,6 +469,42 @@ class HrAttendance(models.Model):
'department': user.department_id.name, })
self.card_out_comment(user.resource_id.employee_id, user.template_id.planning_name)
# 客服上班消息提醒
def card_customer_service_shift_remind_on(self):
ba_up_users = self.env['planning.slot'].search([('role_id.name', '=', '客服中心'), ('template_id.planning_name', '=', '白班')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
'name': user.resource_id.employee_id.name,
'start_time': datetime.now(),
'shift': user.template_id.planning_name,
'department': user.department_id.name, })
self.card_in_comment(user.resource_id.employee_id, user.template_id.planning_name)
# 客服下班消息提醒
def card_customer_service_shift_remind_out(self):
ba_up_users = self.env['planning.slot'].search([('role_id.name', '=', '客服中心'), ('template_id.planning_name', '=', '白班')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
'name': user.resource_id.employee_id.name,
'start_time': datetime.now(),
'shift': user.template_id.planning_name,
'department': user.department_id.name, })
self.card_out_comment(user.resource_id.employee_id, user.template_id.planning_name)
# 客服值班消息提醒
def card_customer_service_stand_remind(self):
ba_up_users = self.env['planning.slot'].search([('role_id.name', '=', '客服中心'), ('template_id.planning_name', '=', '值班')])
for user in ba_up_users:
if user.start_datetime.date() == fields.date.today():
self.env['card.remind.form'].create({
'name': user.resource_id.employee_id.name,
'start_time': datetime.now(),
'shift': user.template_id.planning_name,
'department': user.department_id.name, })
self.card_duty_remind(user.resource_id.employee_id)
def card_in_comment(self, employee_id, planning_name):
data = f"您的班次是{planning_name},还有10分钟上班,记得打卡"
self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
+51 -49
View File
@@ -138,6 +138,38 @@
action="issue_library_action_cancel5"
sequence="9"/>
<!--物管议题库-->
<menuitem id="tianhe_issue_library_menu_root11"
parent="tianhe_issue_library_menu_root"
name="物管议题库"
groups="yuthon_issue.group_property_admin"
sequence="27"/>
<menuitem id="issue_library_menu11"
parent="tianhe_issue_library_menu_root11"
name="全部"
action="issue_library_action11"
sequence="1"/>
<menuitem id="tianhe_other_issue_library_will11"
parent="tianhe_issue_library_menu_root11"
name="已审批"
action="issue_library_action_will11"
sequence="5"/>
<menuitem id="tianhe_other_issue_library_done11"
parent="tianhe_issue_library_menu_root11"
name="已上会"
action="issue_library_action_done11"
sequence="7"/>
<menuitem id="tianhe_other_issue_library_cancel11"
parent="tianhe_issue_library_menu_root11"
name="已取消"
action="issue_library_action_cancel11"
sequence="9"/>
<!-- 物管党支议题库-->
<menuitem id="tianhe_issue_library_menu_root6"
parent="tianhe_issue_library_menu_root"
@@ -200,38 +232,38 @@
action="issue_library_action_cancel7"
sequence="9"/>
<!--物管议题库-->
<menuitem id="tianhe_issue_library_menu_root11"
parent="tianhe_issue_library_menu_root"
name="物管议题库"
groups="yuthon_issue.group_property_admin"
sequence="40"/>
<menuitem id="issue_library_menu11"
parent="tianhe_issue_library_menu_root11"
<!--粮储议题库-->
<menuitem id="tianhe_issue_library_menu_root12"
parent="tianhe_issue_library_menu_root"
name="粮储议题库"
groups="yuthon_issue.group_grain_team_topic"
sequence="42"/>
<menuitem id="issue_library_menu12"
parent="tianhe_issue_library_menu_root12"
name="全部"
action="issue_library_action11"
action="issue_library_action12"
sequence="1"/>
<menuitem id="tianhe_other_issue_library_will11"
parent="tianhe_issue_library_menu_root11"
<menuitem id="tianhe_other_issue_library_will12"
parent="tianhe_issue_library_menu_root12"
name="已审批"
action="issue_library_action_will11"
action="issue_library_action_will12"
sequence="5"/>
<menuitem id="tianhe_other_issue_library_done11"
parent="tianhe_issue_library_menu_root11"
<menuitem id="tianhe_other_issue_library_done12"
parent="tianhe_issue_library_menu_root12"
name="已上会"
action="issue_library_action_done11"
action="issue_library_action_done12"
sequence="7"/>
<menuitem id="tianhe_other_issue_library_cancel11"
parent="tianhe_issue_library_menu_root11"
<menuitem id="tianhe_other_issue_library_cancel12"
parent="tianhe_issue_library_menu_root12"
name="已取消"
action="issue_library_action_cancel11"
action="issue_library_action_cancel12"
sequence="9"/>
<!--粮储党支议题库-->
<menuitem id="tianhe_issue_library_menu_root9"
parent="tianhe_issue_library_menu_root"
@@ -294,36 +326,6 @@
action="issue_library_action_cancel10"
sequence="9"/>
<!--粮储议题库-->
<menuitem id="tianhe_issue_library_menu_root12"
parent="tianhe_issue_library_menu_root"
name="粮储议题库"
groups="yuthon_issue.group_grain_team_topic"
sequence="50"/>
<menuitem id="issue_library_menu12"
parent="tianhe_issue_library_menu_root12"
name="全部"
action="issue_library_action12"
sequence="1"/>
<menuitem id="tianhe_other_issue_library_will12"
parent="tianhe_issue_library_menu_root12"
name="已审批"
action="issue_library_action_will12"
sequence="5"/>
<menuitem id="tianhe_other_issue_library_done12"
parent="tianhe_issue_library_menu_root12"
name="已上会"
action="issue_library_action_done12"
sequence="7"/>
<menuitem id="tianhe_other_issue_library_cancel12"
parent="tianhe_issue_library_menu_root12"
name="已取消"
action="issue_library_action_cancel12"
sequence="9"/>
<menuitem id="issue_meeting_menu"
parent="tianhe_issue_library_menu_root"
@@ -30,6 +30,9 @@ class PropertyReimbursementForm(models.Model):
"res_model": "property.physical.wizard",
"view_mode": "form",
"target": "new",
"context": {
"default_reimbursement_id": self.id
}
}
# 体检费计算方法
@@ -83,5 +86,10 @@ class PropertyPhysicalLine(models.Model):
reimbursement_id = fields.Many2one('property.reimbursement.form', string='关联报销单')
employee_id = fields.Many2one('hr.employee', string='姓名')
department_id = fields.Many2one(related='employee_id.department_id', string="部门")
sex = fields.Selection(related='employee_id.user_sex', string="性别")
reimbursement_date = fields.Date(string='报销日期')
fees = fields.Float(string='费用')
fees = fields.Float(string='实收')
package_grouping = fields.Char(string='套餐分组')
package_fee = fields.Float(string='套餐费用')
examination_fee = fields.Float(string='加查费用')
@@ -55,7 +55,12 @@
<tree editable="bottom">
<field name="reimbursement_id" column_invisible="1"/>
<field name="employee_id"/>
<field name="sex"/>
<field name="department_id"/>
<field name="package_grouping"/>
<field name="reimbursement_date"/>
<field name="package_fee"/>
<field name="examination_fee"/>
<field name="fees"/>
</tree>
</field>
@@ -12,6 +12,7 @@ class PropertyPhysicalWizard(models.Model):
excel_file = fields.Binary(string="上传Excel表")
excel_name = fields.Char(string="文件名")
reimbursement_id = fields.Many2one('property.reimbursement.form', string="关联报销单")
def confirm(self):
"""
@@ -26,4 +27,17 @@ class PropertyPhysicalWizard(models.Model):
self.yuthon_physical_update(row)
def yuthon_physical_update(self, row):
pass
package_grouping = row[1].value
package_fee = row[4].value
examination_fee = row[5].value
fees = row[6].value
employee_id = self.env['hr.employee'].search([('name', '=', row[2].value)])
physical_date = {
'reimbursement_id':self.reimbursement_id.id,
'package_grouping': package_grouping,
'package_fee': package_fee,
'examination_fee': examination_fee,
'fees': fees,
'employee_id': employee_id.id,
}
self.env['property.physical.line'].create(physical_date)