@@ -16,7 +16,7 @@ class YuthonCustomerPlanning(models.Model):
|
||||
select_time = fields.Selection([('1', '一月'), ('2', '二月'), ('3', '三月'), ('4', '四月'),
|
||||
('5', '五月'), ('6', '六月'), ('7', '七月'), ('8', '八月'),
|
||||
('9', '九月'), ('10', '十月'), ('11', '十一月'),
|
||||
('12', '十二月')], string='选择月份')
|
||||
('12', '十二月')], string='选择月份', default=lambda self: self._get_default_month())
|
||||
|
||||
def auto_customer_plan(self, next_date=False):
|
||||
selected_month = int(self.select_time)
|
||||
@@ -27,6 +27,13 @@ class YuthonCustomerPlanning(models.Model):
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0) # 如果是12月,年份加1
|
||||
end_date = datetime(next_year, next_month, 1)
|
||||
existing_slots = self.env['planning.slot'].search([
|
||||
('role_id.name', '=', '客服中心'),
|
||||
('start_datetime', '>=', start_date),
|
||||
('start_datetime', '<=', end_date),
|
||||
])
|
||||
if len(existing_slots) > 0:
|
||||
raise UserError(f"该月已经有排程,请选择其他时间。")
|
||||
else:
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0)
|
||||
@@ -34,12 +41,19 @@ class YuthonCustomerPlanning(models.Model):
|
||||
next_next_month = (next_month % 12) + 1
|
||||
next_next_year = next_year + (1 if next_next_month == 1 else 0)
|
||||
end_date = datetime(next_next_year, next_next_month, 1)
|
||||
existing_slots = self.env['planning.slot'].search([
|
||||
('role_id.name', '=', '客服中心'),
|
||||
('start_datetime', '>=', start_date),
|
||||
('start_datetime', '<=', end_date),
|
||||
])
|
||||
if len(existing_slots) > 0:
|
||||
raise UserError(f"该月已经有排程,请选择其他时间。")
|
||||
|
||||
role_a = self.env['planning.role'].search([('name', '=', '客服中心')], limit=1)
|
||||
role_template_a = self.env['planning.slot.template'].search([('planning_name', '=', '白班'), ('role_id', '=', role_a.id)])
|
||||
role_template_b = self.env['planning.slot.template'].search([('planning_name', '=', '值班'), ('role_id', '=', role_a.id)])
|
||||
current_date = start_date
|
||||
while current_date <= end_date:
|
||||
while current_date < end_date:
|
||||
day_of_week = current_date.weekday()
|
||||
if day_of_week < 6:
|
||||
if day_of_week < 5:
|
||||
@@ -70,6 +84,9 @@ class YuthonCustomerPlanning(models.Model):
|
||||
'end_datetime': end_time,
|
||||
'allocated_hours': 8,
|
||||
})
|
||||
def _get_default_month(self):
|
||||
current_month = datetime.now().month
|
||||
return str(current_month) # 返回字符串类型的月份
|
||||
|
||||
class CustomerPlanLine(models.Model):
|
||||
_name = 'customer.plan.line'
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<field name="customer_plan_id" column_invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="employee_id" required="1"
|
||||
domain="[('department_id.name', '=', '客服中心')]"/>
|
||||
domain="[('department_id.name', '=', '客户部')]"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
|
||||
Reference in New Issue
Block a user