Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

WorkPay 주간 계산기

왜 만들었나요

주간 근무시간을 기준으로 연장/야간/휴일 가산수당을 계산하는 과정은 입력과 집계가 복잡하고 오류가 발생하기 쉽습니다.
이 계산기는 직원별 주간 근무 입력 → 자동 계산 → 저장/조회 → 엑셀 출력까지 한 번에 처리할 수 있도록 만들었습니다.

주요 기능

  • 주간 근무 입력 및 자동 계산
  • 연장/야간/휴일 가산수당 계산(30분 단위)
  • 이월(주 경계) 처리 및 합산 조회
  • 저장된 내역 관리 및 엑셀 다운로드
  • 관리자 보관함(삭제 복원/영구삭제), 직원 관리

적용 기준(요약)

  • 계산 단위: 30분
  • 일일 기준: 00:00~24:00
  • 주간 기준: 월요일 00:00 ~ 다음 월요일 00:00
  • 일 8시간 초과분 → 연장(1.5배)
  • 주 40시간 초과분 → 연장(1.5배)
    (일일 8시간 초과분은 주 40시간 합산에서 제외)
  • 야간(22:00~06:00), 휴일 근로는 가산 적용
  • 가중 배율: 1.0 / 1.5 / 2.0 / 2.5 배
  • 경고 기준: 주 52시간 초과, 연장근로 포함 시간 12시간 초과

사용 방법

  1. **메인 화면(직원별 기록)**에서 직원 선택
  2. 근무등록에서 주차 기준일과 근무 시간 입력
  3. 계산하기 → 결과 확인
  4. 내역 저장 또는 엑셀 다운로드

입력 규칙

  • 자정 넘김 근무는 같은 날짜에 입력
    예) 12/31 22:00~01/01 06:00 → 12/31에 22:00~06:00
  • 겹치는 시간대는 오류로 처리
  • 09:00~09:00 같은 입력은 익일 처리

이월(주 경계)

  • 한 주를 월요일 00:00 ~ 다음 월요일 00:00으로 보기 때문에 자정 이후 시간은 다음 주로 자동 이월됩니다.
  • 상세 테이블에서는 이월된 시간을 제외하고 표시됩니다.
  • 이월된 구간의 메모도 다음 주에 복사됩니다.

합산

  • 동일 주간 저장 내역이 2건 이상이면 합산 버튼으로 합산 결과 확인 가능

관리자

  • 직원 추가/삭제
  • 삭제 보관함에서 복원/영구삭제

실행 방법

# 1) 가상환경(권장)
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate

# 2) 의존성 설치
pip install -r requirements.txt

# 3) 실행
python app.py

실행 후 브라우저 접속:

기본 설정

  • DB 파일: workpay.sqlite3 (프로젝트 폴더 내)
  • 관리자 비밀번호: 환경변수 ADMIN_PASSWORD (없으면 config.py 기본값 사용)

운영 배포 팁

  • DB는 프로젝트 폴더 밖으로 이동하고 DB_PATH 환경변수로 지정 권장
  • 배포 전 DB 백업 권장

폴더 구성

  • app.py : Flask 엔트리포인트
  • routes_calculator.py : 라우트/저장/엑셀/관리자
  • calc_weekly.py : 계산 엔진
  • db.py, config.py, time_utils.py : DB/설정/유틸
  • templates/ : 화면 템플릿
  • static/ : 이미지 리소스

About

주간 근무시간을 기준으로 연장/야간/휴일 가산수당을 계산

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages