v2.10.2: 휴일 근무 카운터 초 표시 수정
원격 v2.10.1(cmd창 깜빡임 hotfix) 위에 rebase → 2.10.2. - 휴일 분기 표시용 remaining을 초 정밀도 timedelta로 분리 (적립 계산은 퇴근 시 분 단위 그대로 — 영향 없음) - pytest 189 + 통합 53 green
This commit is contained in:
parent
3db4ed2351
commit
da5f91984b
10
CHANGELOG.md
10
CHANGELOG.md
@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||||
|
|
||||||
|
## [2.10.2] — 2026-05-16
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **휴일/주말 근무 시 카운터 초가 항상 `00`** 으로 멈춰 보이던 문제 (사용자 보고)
|
||||||
|
- 원인: 휴일 분기에서 `calculate_holiday_overtime`의 분 절삭값(적립 단위)을
|
||||||
|
그대로 표시에 사용 → 초 정보 소실
|
||||||
|
- 수정: 표시용 `remaining`을 초 정밀도 timedelta로 분리 계산
|
||||||
|
(적립 계산은 퇴근 시 분 단위 그대로 — 영향 없음)
|
||||||
|
- 차감 항목(점심·저녁·외출·연장 사용)은 `calculate_holiday_overtime`과 동일하게 적용
|
||||||
|
|
||||||
## [2.10.1] — 2026-05-01
|
## [2.10.1] — 2026-05-01
|
||||||
|
|
||||||
### Fixed — 업데이트 시 cmd 창 깜빡임 제거
|
### Fixed — 업데이트 시 cmd 창 깜빡임 제거
|
||||||
|
|||||||
@ -4,4 +4,4 @@
|
|||||||
릴리스 시 이 값을 올린 후 git tag → push.
|
릴리스 시 이 값을 올린 후 git tag → push.
|
||||||
CHANGELOG.md의 최상단 항목과 일치시킬 것.
|
CHANGELOG.md의 최상단 항목과 일치시킬 것.
|
||||||
"""
|
"""
|
||||||
__version__ = '2.10.1'
|
__version__ = '2.10.2'
|
||||||
|
|||||||
@ -757,15 +757,17 @@ class MainWindow(QMainWindow):
|
|||||||
is_holiday = is_non_working or is_full_day_leave
|
is_holiday = is_non_working or is_full_day_leave
|
||||||
|
|
||||||
if is_holiday:
|
if is_holiday:
|
||||||
actual_ot, _ = self.time_calc.calculate_holiday_overtime(
|
# 표시는 초 단위로 부드럽게 — 적립(분 절삭)은 퇴근 시 별도 계산.
|
||||||
self.clock_in_time, now,
|
# calculate_holiday_overtime와 동일한 차감 항목을 timedelta로 적용.
|
||||||
include_lunch=self.lunch_break_enabled,
|
deduction_min = break_minutes + overtime_used_today
|
||||||
include_dinner=self.dinner_break_enabled,
|
if self.lunch_break_enabled:
|
||||||
break_minutes=break_minutes,
|
deduction_min += self.time_calc.lunch_duration_minutes
|
||||||
)
|
if self.dinner_break_enabled:
|
||||||
# 사용한 추가근무 차감만 반영 (leave_used는 holiday/override 케이스에서 의미 없음)
|
deduction_min += self.time_calc.dinner_duration_minutes
|
||||||
actual_ot = max(0, actual_ot - overtime_used_today)
|
worked = (now - self.clock_in_time) - timedelta(minutes=deduction_min)
|
||||||
remaining = -timedelta(minutes=actual_ot)
|
if worked.total_seconds() < 0:
|
||||||
|
worked = timedelta(0)
|
||||||
|
remaining = -worked
|
||||||
else:
|
else:
|
||||||
# 평일: 정상 남은 시간 계산. 부분 연차(반차/시간연차)는 leave_used_today에
|
# 평일: 정상 남은 시간 계산. 부분 연차(반차/시간연차)는 leave_used_today에
|
||||||
# 그대로 반영되어 카운트다운이 단축됨.
|
# 그대로 반영되어 카운트다운이 단축됨.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user