Commit Graph

15 Commits

Author SHA1 Message Date
javamon1174
1e8bf1eeeb P2-15~18, P5-04~11, CT-05~06 웹 미구현 기능 전체 구현
P2-15: 지정판매소 다조건 조회 (이름/구군/상태 필터)
P2-17: 지정판매소 지도 표시 (Kakao Maps)
P2-18: 지정판매소 현황 (연도별 신규/취소 통계)
P5-04: 년 판매 현황 (월별 피벗 테이블)
P5-05: 지정판매소별 판매현황 (판매소별 수량/금액)
P5-06: 홈택스 세금계산서 엑셀 내보내기
P5-08: 반품/파기 현황 (기간별 조회)
P5-10: LOT 수불 조회 (LOT 번호 검색)
P5-11: 기타 입출고 (등록 + 재고 연동)
CT-05: CRUD 로깅 (activity_log 테이블 + audit_helper)
CT-06: 대시보드 실 데이터 (발주/판매/재고/불출 통계)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:50:28 +09:00
javamon1174
704141a1f0 CT-01/02/03 공통 컴포넌트 구현 — 페이지네이션/엑셀/인쇄
CT-01: 페이지네이션
- 커스텀 Tailwind 페이저 뷰 (components/pager.php)
- 18개 admin 컨트롤러 findAll() → paginate(20) 전환
- Bag 컨트롤러 7개 리스트도 paginate 적용
- 19개 admin index 뷰에 페이저 링크 추가

CT-02: 엑셀 저장
- export_helper.php (UTF-8 BOM CSV)
- 발주/판매/지정판매소/재고 4개 엑셀 내보내기 라우트+메서드
- 해당 뷰에 "엑셀저장" 버튼 추가

CT-03: 인쇄
- print_header.php (지자체명/제목/결재란 컴포넌트)
- admin/bag 레이아웃에 @media print CSS 추가
- 23개 뷰에 인쇄 버튼 + print_header 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:40:49 +09:00
javamon1174
35561b414b 재고 조정(실사) 기능 추가 + 수불 관리 바로가기 버튼
- /bag/inventory/adjust: 재고 수량 조정 (실사 설정/증가/감소)
- 재고 관리 페이지에 "재고 조정" 버튼 추가
- 봉투 수불 관리에 입고/판매/불출 바로가기 버튼 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:20:35 +09:00
javamon1174
39ee71cc80 사이트 메뉴 CRUD를 /bag/* 경로로 통합 — 관리자 레이아웃 혼용 해결
- Bag 컨트롤러에 create/store 메서드 추가 (불출/발주/입고/판매/주문)
- bag용 create 뷰 5개 생성 (form action을 /bag/*로 변경)
- 모든 등록/취소 버튼을 /admin/* → /bag/*로 변경
- 사이트 레이아웃이 CRUD 전체에서 유지됨
- playwright.production.config.js 추가 (도메인 테스트용)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 16:13:07 +09:00
taekyoungc
a3f92cd322 feat: TOTP 2차 인증, 관리자 메뉴/대시보드 및 의존성 반영
- robthree/twofactorauth, Auth 설정·TotpService·2FA 뷰·라우트
- member TOTP 컬럼 DDL(login_tables, member_add_totp.sql)
- 관리자 메뉴·레이아웃·필터·대시보드 등 연관 변경
- env 샘플에 auth.requireTotp 주석

Made-with: Cursor
2026-03-26 15:30:32 +09:00
javamon1174
a0103eb95d 사이트 메뉴 /bag/* 10개 페이지 구현 + E2E 테스트 timeout 보강
- Bag 컨트롤러 신규 (기본정보/발주입고/불출/재고/판매/판매현황/수불/통계/창/도움말)
- 사이트 공통 레이아웃 bag/layout/main.php 추출
- /bag/* 라우트 10개 등록 (Routes.php)
- bag-site.spec.js E2E 테스트 11개 추가
- Playwright timeout 30s→60s, waitForURL 15s→30s
- P4 지자체관리자 접근 테스트 3개로 분리

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-26 14:30:45 +09:00
javamon1174
f451f0ff3b Phase 5 판매대장/일계표/기간별현황/수불현황 리포트 구현
- SalesReport 컨트롤러 (판매대장, 일계표, 기간별판매, 수불현황)
- 판매대장: 일자별/기간별 모드 전환, 판매소별 품목 집계
- 일계표: 당일 판매 + 당월 누계 병렬 표시
- 기간별 판매현황: 품목별 판매/반품/합계 + 총합계
- 봉투 수불현황: 현재재고/입고/판매/불출 4섹션 그리드 레이아웃
- E2E 테스트 6개 전체 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:29:31 +09:00
javamon1174
6e8bd84182 Phase 4 주문접수/판매/반품/불출 관리 구현
- DB: shop_order, shop_order_item, bag_sale, bag_issue 테이블
- 주문접수: 지정판매소 선택, 품목별 수량, 소비자가 연동, 포장단위 환산
  - 접수/취소, 배달일 기간 필터
- 판매/반품: 지정판매소별 봉투 판매+반품, 재고 자동 감산/가산
- 무료용 불출: 연도/분기/불출처/봉투코드, 재고 감산, 취소 시 복원
- E2E 테스트 7개 전체 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:22:30 +09:00
javamon1174
d9d3ef46c1 Phase 3 발주/입고/재고 관리 구현
- DB: bag_order, bag_order_item, bag_receiving, bag_inventory 테이블
- 발주: UUID v4, SHA-256 해시, LOT번호 자동생성, 봉투별 품목 관리
  - 포장단위 연동 (박스→낱장 자동 환산), 단가 연동 (금액 자동 계산)
  - 발주 현황 (기간/상태 필터), 상세 조회, 취소/삭제 (상태 변경)
- 입고: 발주건 기반 입고 처리, 박스→낱장 환산, 재고 자동 가산
- 재고: 지자체별 봉투 종류별 현재 재고 조회
- E2E 테스트 7개 전체 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:13:01 +09:00
javamon1174
c2840a9e34 P2-19~21 지자체 수정/삭제, 비밀번호 변경, 로그인 5회 실패 lock
- P2-19: LocalGovernment edit/update/delete 추가, 목록에 수정/비활성 버튼
- P2-20: PasswordChange 컨트롤러 + View (현재 비밀번호 검증 후 변경)
- P2-21: 로그인 5회 연속 실패 시 30분 lock
  - member 테이블에 mb_login_fail_count, mb_locked_until 컬럼 추가
  - Auth::login에 lock 체크/실패 카운트 증가/성공 시 리셋 로직
- E2E 테스트 4개 전체 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 17:53:52 +09:00
javamon1174
da132f0e51 P2-07~14 판매대행소/담당자/업체/무료대상자 CRUD 일괄 구현
- 4개 테이블 생성 (sales_agency, manager, company, free_recipient)
- 4개 Model + 4개 Controller + 12개 View
- 담당자: 소속(S)/직위(T) 코드 연동
- 업체: 협회/제작업체/회수업체 유형 분류
- 무료대상자: 무상지급구분(H)/동코드(D) 연동
- 모두 지자체별 멀티테넌시 적용
- 24개 라우트 추가
- E2E 테스트 9개 전체 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 17:41:15 +09:00
javamon1174
acc9e4741e P2-05/06 포장 단위 관리 CRUD + 이력 + 기간별 조회
- packaging_unit, packaging_unit_history 테이블 생성
- PackagingUnitModel, PackagingUnitHistoryModel
- PackagingUnit 컨트롤러 (목록/등록/수정/삭제/이력)
- 박스당팩수 x 팩당낱장수 = 총낱장수 자동 계산
- 변경 시 자동 이력 기록
- E2E 테스트 3개 전체 통과

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 16:32:55 +09:00
javamon1174
6949227592 P2-03/04 봉투 단가 관리 CRUD + 이력 + 기간별 조회
- bag_price, bag_price_history 테이블 생성
- BagPriceModel, BagPriceHistoryModel
- BagPrice 컨트롤러 (목록/등록/수정/삭제/이력)
- 단가 변경 시 자동 이력 기록 (트랜잭션)
- 기간 필터 조회 (적용시작일/종료일)
- 봉투코드(O) 드롭다운 연동
- E2E 테스트 5개 전체 통과
- 스크린샷 2개 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 16:27:42 +09:00
javamon1174
41442c23a1 P2-01/02 기본코드 종류 및 세부코드 관리 CRUD 구현
- CodeKindModel + CodeKind 컨트롤러 (목록/등록/수정/삭제)
- CodeDetailModel + CodeDetail 컨트롤러 (종류별 세부코드 CRUD)
- View: code_kind/(index,create,edit), code_detail/(index,create,edit)
- 라우트: /admin/code-kinds/*, /admin/code-details/*
- E2E 테스트 7개 전체 통과
- 스크린샷 2개 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 16:20:56 +09:00
taekyoungc
4e557d4be1 Initial project import for team collaboration.
Exclude local docs, MCP, and secrets via gitignore.

Made-with: Cursor
2026-03-25 12:05:33 +09:00