@@ -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)
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user