Accept Merge Request #268: (feature/创建工作日历代码测试 -> develop)
Merge Request: 工作日历设置---新增将中文的星期转换成英文的星期的方法,删除了大部分日志。 Created By: @禹翔辉 Accepted By: @禹翔辉 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/268?initial=true
This commit is contained in:
@@ -112,7 +112,6 @@ class WorkLogSetting(models.Model):
|
||||
创建记录时,生成工作日历
|
||||
"""
|
||||
record = super(WorkLogSetting, self).create(vals)
|
||||
logging.info("工作日历设置【新建】记录时,创建工作日历记录!!!")
|
||||
record.generate_work_calendar()
|
||||
return record
|
||||
|
||||
@@ -123,7 +122,6 @@ class WorkLogSetting(models.Model):
|
||||
# 先删除之前创建的工作日历事件记录
|
||||
self.env['sf.work.schedule.calendar'].search([('calendar_code', '=', self.code)]).unlink()
|
||||
result = super(WorkLogSetting, self).write(vals)
|
||||
logging.info("工作日历设置【更新】记录时,创建工作日历记录!!!")
|
||||
self.generate_work_calendar()
|
||||
return result
|
||||
|
||||
@@ -131,28 +129,66 @@ class WorkLogSetting(models.Model):
|
||||
"""
|
||||
生成工作日历
|
||||
"""
|
||||
logging.info('开始创建工作日历记录')
|
||||
self.ensure_one()
|
||||
# start_date = date.today() # 开始日期
|
||||
# end_date = start_date + timedelta(days=365) # 结束日期
|
||||
# 获取本年第一天和最后一天
|
||||
start_date = datetime.now().replace(month=1, day=1).date()
|
||||
end_date = datetime.now().replace(month=1, day=31).date()
|
||||
logging.info(f'start_date: {start_date} , end_date: {end_date}')
|
||||
end_date = datetime.now().replace(month=12, day=31).date()
|
||||
# 休息日列表
|
||||
rest_days = self.day_off_ids.mapped('name')
|
||||
logging.info(f'获取界面输入的休息日:{rest_days}')
|
||||
rest_days = self.chinese_weekdays_to_english(self.day_off_ids.mapped('name'))
|
||||
for single_date in self.daterange(start_date, end_date):
|
||||
is_workday = single_date.strftime("%A")
|
||||
logging.info(f'获取一月份每天的星期:{is_workday}')
|
||||
is_workday = self.chinese_weekday_to_english(single_date.strftime("%A"))
|
||||
logging.info(f"每天的星期:{is_workday}")
|
||||
if is_workday in rest_days:
|
||||
print('is_workday in rest_days', is_workday)
|
||||
self.env['sf.work.schedule.calendar'].sudo().create({
|
||||
'name': '休息日',
|
||||
'name_id': self.id,
|
||||
'date_time': single_date})
|
||||
logging.info('创建一条工作日历记录,休息时间: %s' % is_workday)
|
||||
logging.info('工作日历记录创建完成')
|
||||
|
||||
@staticmethod
|
||||
def chinese_weekdays_to_english(chinese_weekdays):
|
||||
"""
|
||||
将元组的中文星期转换成英文
|
||||
:param chinese_weekdays:
|
||||
:return:
|
||||
"""
|
||||
weekdays = {
|
||||
'星期一': 'Monday',
|
||||
'星期二': 'Tuesday',
|
||||
'星期三': 'Wednesday',
|
||||
'星期四': 'Thursday',
|
||||
'星期五': 'Friday',
|
||||
'星期六': 'Saturday',
|
||||
'星期日': 'Sunday'
|
||||
}
|
||||
english_weekdays = []
|
||||
for chinese_weekday in chinese_weekdays:
|
||||
english_weekday = weekdays.get(chinese_weekday, 'Invalid weekday')
|
||||
english_weekdays.append(english_weekday)
|
||||
return english_weekdays
|
||||
|
||||
@staticmethod
|
||||
def chinese_weekday_to_english(chinese_weekday):
|
||||
"""
|
||||
将单个的中文星期转换成英文
|
||||
:param chinese_weekday:
|
||||
:return:
|
||||
"""
|
||||
weekdays = {
|
||||
'星期一': 'Monday',
|
||||
'星期二': 'Tuesday',
|
||||
'星期三': 'Wednesday',
|
||||
'星期四': 'Thursday',
|
||||
'星期五': 'Friday',
|
||||
'星期六': 'Saturday',
|
||||
'星期日': 'Sunday'
|
||||
}
|
||||
weekday = weekdays.get(chinese_weekday)
|
||||
if weekday:
|
||||
return weekday
|
||||
return chinese_weekday
|
||||
|
||||
@staticmethod
|
||||
def daterange(start_date, end_date):
|
||||
@@ -202,13 +238,13 @@ class DayOff(models.Model):
|
||||
_description = '休息日'
|
||||
|
||||
name = fields.Selection([
|
||||
('星期一', '星期一'),
|
||||
('星期二', '星期二'),
|
||||
('星期三', '星期三'),
|
||||
('星期四', '星期四'),
|
||||
('星期五', '星期五'),
|
||||
('星期六', '星期六'),
|
||||
('星期日', '星期日')], '休息日名称')
|
||||
('Monday ', '星期一'),
|
||||
('Tuesday ', '星期二'),
|
||||
('Wednesday ', '星期三'),
|
||||
('Thursday ', '星期四'),
|
||||
('Friday ', '星期五'),
|
||||
('Saturday ', '星期六'),
|
||||
('Sunday ', '星期日')], '休息日名称')
|
||||
|
||||
|
||||
class WorkScheduleCalendar(models.Model):
|
||||
|
||||
Reference in New Issue
Block a user