@@ -1,205 +1,205 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- <data noupdate="1">-->
|
||||
<!-- <record forcecreate="True" id="attendance_time_data" 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_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()).strftime('%Y-%m-%d 13:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_lc_remind_time_in" 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_lc_remind_in()</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()).strftime('%Y-%m-%d 08:20:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_lc_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_lc_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()).strftime('%Y-%m-%d 16:30:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_lc_shift_remind_time_in" 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_lc_shift_remind_in()</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()).strftime('%Y-%m-%d 07:50:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_lc_shift_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_lc_shift_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()).strftime('%Y-%m-%d 22:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<data noupdate="1">
|
||||
<record forcecreate="True" id="attendance_time_data" 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_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()).strftime('%Y-%m-%d 13:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_lc_remind_time_in" 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_lc_remind_in()</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()).strftime('%Y-%m-%d 08:20:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_lc_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_lc_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()).strftime('%Y-%m-%d 16:30:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_lc_shift_remind_time_in" 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_lc_shift_remind_in()</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()).strftime('%Y-%m-%d 07:50:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_lc_shift_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_lc_shift_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()).strftime('%Y-%m-%d 22:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
|
||||
<!-- <!–工程部打卡提醒–>-->
|
||||
<!-- <record forcecreate="True" id="card_gc_white_remind_time_in" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:工程部白班上班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.gc_white_in_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()).strftime('%Y-%m-%d 07:50:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_gc_white_remind_time_shift" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:工程部白班值班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.gc_white_shift_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()).strftime('%Y-%m-%d 12:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_gc_white_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.gc_white_out_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()).strftime('%Y-%m-%d 17:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_gc_night_remind_time_in" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:工程部中值夜班上班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.gc_night_remind_in()</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()).strftime('%Y-%m-%d 13:50:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_gc_night_remind_time_shift" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:工程部中值夜班值班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.gc_night_remind_shift()</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()).strftime('%Y-%m-%d 22:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!--工程部打卡提醒-->
|
||||
<record forcecreate="True" id="card_gc_white_remind_time_in" model="ir.cron">
|
||||
<field name="name">定时任务:工程部白班上班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.gc_white_in_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()).strftime('%Y-%m-%d 07:50:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_gc_white_remind_time_shift" model="ir.cron">
|
||||
<field name="name">定时任务:工程部白班值班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.gc_white_shift_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()).strftime('%Y-%m-%d 12:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_gc_white_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.gc_white_out_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()).strftime('%Y-%m-%d 17:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_gc_night_remind_time_in" model="ir.cron">
|
||||
<field name="name">定时任务:工程部中值夜班上班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.gc_night_remind_in()</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()).strftime('%Y-%m-%d 13:50:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_gc_night_remind_time_shift" model="ir.cron">
|
||||
<field name="name">定时任务:工程部中值夜班值班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.gc_night_remind_shift()</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()).strftime('%Y-%m-%d 22:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
|
||||
<!-- <!– 保安部打卡提醒 –>-->
|
||||
<!-- <record forcecreate="True" id="card_ba_white_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.ba_card_white_down()</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()).strftime('%Y-%m-%d 17:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_ba_mid_remind_time_in" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:保安部中班上班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.ba_card_mid_up()</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()).strftime('%Y-%m-%d 13:50:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_ba_mid_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.ba_card_mid_down()</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()).strftime('%Y-%m-%d 22:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_ba_night_remind_time_in" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:保安部夜班上班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.ba_card_night_up()</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()).strftime('%Y-%m-%d 21:50:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- <record forcecreate="True" id="card_ba_night_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.ba_card_night_down()</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:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- </data>-->
|
||||
<!-- 保安部打卡提醒 -->
|
||||
<record forcecreate="True" id="card_ba_white_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.ba_card_white_down()</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()).strftime('%Y-%m-%d 17:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_ba_mid_remind_time_in" model="ir.cron">
|
||||
<field name="name">定时任务:保安部中班上班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.ba_card_mid_up()</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()).strftime('%Y-%m-%d 13:50:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_ba_mid_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.ba_card_mid_down()</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()).strftime('%Y-%m-%d 22:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_ba_night_remind_time_in" model="ir.cron">
|
||||
<field name="name">定时任务:保安部夜班上班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.ba_card_night_up()</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()).strftime('%Y-%m-%d 21:50:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<record forcecreate="True" id="card_ba_night_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.ba_card_night_down()</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:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
|
||||
@@ -1,46 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- <data>-->
|
||||
<!-- <record forcecreate="True" id="card_lc_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_lc_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 8:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<data>
|
||||
<record forcecreate="True" id="card_lc_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_lc_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 8:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
|
||||
<!-- <record forcecreate="True" id="card_gc_night_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.gc_night_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 7:30:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<record forcecreate="True" id="card_gc_night_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.gc_night_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 7:30:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
|
||||
<!-- <record forcecreate="True" id="card_ba_white_remind_time_in" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:保安部白班上班打卡提醒</field>-->
|
||||
<!-- <field name="model_id" ref="model_hr_attendance"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.ba_card_white_up()</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()).strftime('%Y-%m-%d 7:50:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<!-- </data>-->
|
||||
<record forcecreate="True" id="card_ba_white_remind_time_in" model="ir.cron">
|
||||
<field name="name">定时任务:保安部白班上班打卡提醒</field>
|
||||
<field name="model_id" ref="model_hr_attendance"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.ba_card_white_up()</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()).strftime('%Y-%m-%d 7:50:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -191,228 +191,228 @@ class HrAttendance(models.Model):
|
||||
title="打卡异常提醒", description="异常提醒",
|
||||
url=str, btntxt="详细信息")
|
||||
|
||||
# # 保安部 - 白班
|
||||
# def ba_card_white_up(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 ba_card_white_down(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 ba_card_mid_up(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 ba_card_mid_down(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 ba_card_night_up(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 ba_card_night_down(self):
|
||||
# ba_up_users = self.env['planning.slot'].search(
|
||||
# [('role_id.name', '=', '保安部'), ('template_id.planning_name', '=', '夜班')])
|
||||
# for user in ba_up_users:
|
||||
# if user.end_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 gc_white_in_remind(self):
|
||||
# ba_up_users = self.env['planning.slot'].search(
|
||||
# [('role_id.name', '=', '工程部'), ('template_id.planning_name', 'in', ['白班', '白值'])])
|
||||
# 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,user.template_id.planning_name)
|
||||
#
|
||||
# def gc_white_shift_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 gc_white_out_remind(self):
|
||||
# ba_up_users = self.env['planning.slot'].search(
|
||||
# [('role_id.name', '=', '工程部'), ('template_id.planning_name', 'in', ['白班', '白值'])])
|
||||
# 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 gc_night_remind_in(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 gc_night_remind_shift(self):
|
||||
# ba_up_users = self.env['planning.slot'].search(
|
||||
# [('role_id.name', '=', '工程部'), ('template_id.planning_name', '=', '中夜')])
|
||||
# for user in ba_up_users:
|
||||
# if user.end_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 gc_night_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.end_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_lc_remind_in(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_lc_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_lc_shift_remind_in(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_lc_shift_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_lc_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_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)
|
||||
#
|
||||
# def card_out_comment(self, employee_id,planning_name):
|
||||
# data = f"您的班次是{planning_name},您该下班了,记得打卡"
|
||||
# self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
|
||||
#
|
||||
# def card_duty_remind(self, employee_id):
|
||||
# data = "今天您值班,记得打卡"
|
||||
# self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
|
||||
# 保安部 - 白班
|
||||
def ba_card_white_up(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 ba_card_white_down(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 ba_card_mid_up(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 ba_card_mid_down(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 ba_card_night_up(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 ba_card_night_down(self):
|
||||
ba_up_users = self.env['planning.slot'].search(
|
||||
[('role_id.name', '=', '保安部'), ('template_id.planning_name', '=', '夜班')])
|
||||
for user in ba_up_users:
|
||||
if user.end_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 gc_white_in_remind(self):
|
||||
ba_up_users = self.env['planning.slot'].search(
|
||||
[('role_id.name', '=', '工程部'), ('template_id.planning_name', 'in', ['白班', '白值'])])
|
||||
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,user.template_id.planning_name)
|
||||
|
||||
def gc_white_shift_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 gc_white_out_remind(self):
|
||||
ba_up_users = self.env['planning.slot'].search(
|
||||
[('role_id.name', '=', '工程部'), ('template_id.planning_name', 'in', ['白班', '白值'])])
|
||||
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 gc_night_remind_in(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 gc_night_remind_shift(self):
|
||||
ba_up_users = self.env['planning.slot'].search(
|
||||
[('role_id.name', '=', '工程部'), ('template_id.planning_name', '=', '中夜')])
|
||||
for user in ba_up_users:
|
||||
if user.end_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 gc_night_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.end_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_lc_remind_in(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_lc_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_lc_shift_remind_in(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_lc_shift_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_lc_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_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)
|
||||
|
||||
def card_out_comment(self, employee_id,planning_name):
|
||||
data = f"您的班次是{planning_name},您该下班了,记得打卡"
|
||||
self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
|
||||
|
||||
def card_duty_remind(self, employee_id):
|
||||
data = "今天您值班,记得打卡"
|
||||
self.sudo().env["wecom.apps"].sync_send_message(category='att', user_id=employee_id.wecom_userid, message=data)
|
||||
|
||||
# @api.depends('employee_id')
|
||||
# def compute_shift_id(self):
|
||||
|
||||
@@ -23,6 +23,12 @@
|
||||
groups="group_he_attendance_user"
|
||||
action="hr_attendance_action1"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_ce_record"
|
||||
name="考勤提醒表单"
|
||||
parent="hr_attendance_root_board"
|
||||
groups="group_he_attendance_user"
|
||||
action="view_action_card_remind"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_is_abnormal_board"
|
||||
name="我的异常"
|
||||
parent="hr_attendance_root_board"
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
'views/property_other_list_views.xml',
|
||||
'views/property_meter_reading_views.xml',
|
||||
'wizard/yuthon_property_wizard_views.xml',
|
||||
'wizard/property_meter_wizard_views.xml',
|
||||
'views/menuitem.xml',
|
||||
],
|
||||
'assets': {
|
||||
|
||||
@@ -51,3 +51,12 @@ class PropertyMeterArchives(models.Model):
|
||||
'property_meter_archives_id':self.id.origin,
|
||||
}))
|
||||
property_id.energy_meter_ids = meter_list
|
||||
|
||||
def action_property_meter_wizard(self):
|
||||
return {
|
||||
"type": "ir.actions.act_window",
|
||||
"name": "批量导入物业电表",
|
||||
"res_model": "property.meter.wizard",
|
||||
"view_mode": "form",
|
||||
"target": "new",
|
||||
}
|
||||
@@ -53,4 +53,5 @@ access_yuthon_electricity_setting,yuthon_electricity_setting,model_yuthon_electr
|
||||
access_yuthon_water_setting,yuthon_water_setting,model_yuthon_water_setting,base.group_user,1,1,1,1
|
||||
access_yuthon_lot_setting,yuthon_lot_setting,model_yuthon_lot_setting,base.group_user,1,1,1,1
|
||||
access_yuthon_property_wizard,yuthon_property_wizard,model_yuthon_property_wizard,base.group_user,1,1,1,1
|
||||
access_yuthon_property_company,yuthon_property_company,model_yuthon_property_company,base.group_user,1,1,1,1
|
||||
access_yuthon_property_company,yuthon_property_company,model_yuthon_property_company,base.group_user,1,1,1,1
|
||||
access_property_meter_wizard,property_meter_wizard,model_property_meter_wizard,base.group_user,1,1,1,1
|
||||
|
@@ -78,4 +78,11 @@
|
||||
<field name="res_model">property.meter.archives</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<record id="all_data_meter_property" model="ir.actions.server">
|
||||
<field name="name">导入电表</field>
|
||||
<field name="model_id" ref="yuthon_property.model_property_meter_archives"/>
|
||||
<field name="binding_model_id" ref="yuthon_property.model_property_meter_archives"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = model.action_property_meter_wizard()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1 +1,2 @@
|
||||
from . import yuthon_property_wizard
|
||||
from . import yuthon_property_wizard
|
||||
from . import property_meter_wizard
|
||||
@@ -0,0 +1,49 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api, _, SUPERUSER_ID
|
||||
from odoo.exceptions import ValidationError, UserError
|
||||
from pypinyin import pinyin, Style
|
||||
import xlrd
|
||||
import base64
|
||||
import datetime
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class PropertyMeterWizard(models.Model):
|
||||
_name = 'property.meter.wizard'
|
||||
|
||||
excel_file = fields.Binary(string="上传Excel表")
|
||||
excel_name = fields.Char(string="文件名")
|
||||
|
||||
def confirm(self):
|
||||
"""
|
||||
导入excel文件,按行读取数据并处理
|
||||
"""
|
||||
if not self.excel_file:
|
||||
raise ValidationError('请上传文件。')
|
||||
book = xlrd.open_workbook(file_contents=base64.decodebytes(self.excel_file))
|
||||
sh = book.sheet_by_index(0)
|
||||
for rx in range(1, sh.nrows):
|
||||
row = sh.row(rx)
|
||||
self.property_meter_data(row)
|
||||
|
||||
def property_meter_data(self,row):
|
||||
name = row[0].value
|
||||
unit_number = row[1].value
|
||||
property_id = self.env['yuthon.property'].search([('name', '=', row[2].value)])
|
||||
meter_list = []
|
||||
type_dict = {'公共':'public', '收费':'fees', '':''}
|
||||
type = type_dict.get(row[3].value)
|
||||
meter_data = {
|
||||
'name': name,
|
||||
'unit_number': unit_number,
|
||||
'type': type
|
||||
}
|
||||
meter_id = self.env['property.meter.archives'].create(meter_data)
|
||||
if property_id:
|
||||
meter_list.append((0, 0, {
|
||||
'property_meter_archives_id': meter_id.id,
|
||||
}))
|
||||
property_id.write({
|
||||
'is_electricity_meter' : True,
|
||||
})
|
||||
property_id.energy_meter_ids = meter_list
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="property_meter_template_downloads_tian_he_action" model="ir.actions.act_url">
|
||||
<field name="name">电仪表模板 下载</field>
|
||||
<field name="target">self</field>
|
||||
<field name="url">.</field>
|
||||
</record>
|
||||
<record id="property_meter_wizard_form" model="ir.ui.view">
|
||||
<field name="name">审批意见弹窗</field>
|
||||
<field name="model">property.meter.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<header>
|
||||
<button name="%(property_meter_template_downloads_tian_he_action)d" string="模板下载" type="action"
|
||||
class="btn btn-primary"/>
|
||||
</header>
|
||||
<group>
|
||||
<group>
|
||||
<field name="excel_file" filename="excel_name"/>
|
||||
<field name="excel_name" invisible="1"/>
|
||||
</group>
|
||||
<group>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
<footer>
|
||||
<button name="confirm" string="确认" type="object" class="oe_highlight"/>
|
||||
<button string="返回" class="btn-secondary" special="cancel"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user