Commit Graph

1143 Commits

Author SHA1 Message Date
김보곤
e638d97d65 feat:음성입력 실시간 미리보기 + 재클릭 중지 기능
continuous 모드로 변경, interimResults로 실시간 텍스트 표시
녹음 중 버튼 재클릭 시 중지, 아이콘 정지 모양으로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:52:45 +09:00
김보곤
e1a9910939 feat:현장명/설명 음성입력(STT) 버튼 추가
Web Speech API 기반 음성→텍스트 변환
신규등록/수정 모드에서만 마이크 버튼 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:49:02 +09:00
김보곤
95fbbd4fff feat:공사현장 사진대지 GCS 업로드 시 AI 토큰 사용량 기록
AiTokenHelper::saveGcsStorageUsage 호출 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:41:32 +09:00
김보곤
16337a243d fix:tenant_id를 session에서 가져오도록 수정
Auth::user()->tenant_id → session('selected_tenant_id')

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:34:49 +09:00
김보곤
18150e1b82 fix:CSRF 토큰 누락 수정 (apiFetch headers 덮어쓰기 문제)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:33:45 +09:00
2182f177f2 Merge remote-tracking branch 'origin/develop' into develop 2026-02-09 21:32:55 +09:00
김보곤
ed2d3425b7 fix:Toast 컴포넌트 이름 충돌 수정
레이아웃의 전역 Toast(SweetAlert)와 이름 충돌 → ToastNotification으로 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:30:30 +09:00
김보곤
beff95b4e1 feat:공사현장 사진대지 기능 추가
모델, 서비스, 컨트롤러, React SPA 뷰, 라우트 추가
GCS 업로드/다운로드, 드래그앤드롭 사진 관리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:25:07 +09:00
8f20fa8163 feat:트리거 관리(4.4) + 파티션 관리(4.6) UI 구현
- TriggerManagementService: 테이블별 트리거 상태 조회/재생성/삭제
- PartitionManagementService: 파티션 현황 조회/추가/삭제 (보관기간 검증)
- triggers.blade.php: 트리거 상태 대시보드 + 개별/전체 재생성·삭제
- partitions.blade.php: 파티션 통계 + 추가/삭제 (초과분만)
- sub-nav: 감사 로그 목록/트리거 관리/파티션 관리 탭 내비게이션
- 라우트 6개 추가, 컨트롤러 6개 메서드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 19:53:32 +09:00
김보곤
64ac667cfd fix:계좌 입출금내역 상대계좌예금주명/적요 업데이트 누락 수정
기존 거래 업데이트 시 cast(상대계좌예금주명), summary(적요)가
업데이트 대상에서 빠져있어 저장되지 않던 문제 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:46:57 +09:00
김보곤
2c138a1135 feat:홈택스 분개 저장 구조 변경 (journal_entries → hometax_invoice_journals)
- HometaxInvoiceJournal 모델 신규 생성
- HometaxInvoice에 journals() 관계 추가
- HometaxController: 저장 로직 변경 + 조회/삭제 엔드포인트 추가
- HometaxSyncService: hasJournal 필드 추가
- 프론트엔드: 분개완료 상태 표시, 기존 분개 로드/수정/삭제 지원

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 17:03:07 +09:00
김보곤
13a6e5e922 Merge branch 'develop' of http://114.203.209.83:3000/SamProject/sam-manage into develop 2026-02-09 16:25:25 +09:00
김보곤
943648169a fix:홈택스 분개 차/대 토글 기능 추가 및 저장 오류 수정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:25:16 +09:00
cfd3aa0f74 Merge remote-tracking branch 'origin/develop' into develop 2026-02-09 16:16:27 +09:00
5968795d9f chore: .env.example 이력관리 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:11:57 +09:00
d6e2368f00 feat:중간검사 성적서 템플릿 개선 (수주 LOT NO, 기준서 이미지, 섹션 타이틀)
- basic_fields에 수주 LOT NO 필드 추가
- 중간검사 기준서 이미지 섹션 추가 (4종 공통)
- 데이터 섹션 타이틀 "중간검사 DATA"로 통일
- 절곡품 4개 검사 섹션을 1개로 병합
- 미리보기에 ■ 섹션 타이틀 렌더링 (이미지/데이터 분리)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:01:52 +09:00
김보곤
b2b07bffbe feat:홈택스 분개 모달에 계정과목 검색 드롭다운 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 15:59:26 +09:00
김보곤
95ddc6be2a docs:CLAUDE.md 메뉴 관리 규칙 변경 (시더→수동 관리)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 15:22:40 +09:00
김보곤
4c9daf3633 fix:부가세 카드매입 분개 이중계산 버그 수정
분개가 있는 카드거래의 unique_key가 금액 변경/수동입력으로
달라질 경우 매칭 실패하여 원본+분개 이중 집계되는 문제 수정.
금액을 제외한 부분키(card_num|use_dt|approval_num)로
보조 매칭하여 분개가 있으면 원본 금액을 사용하지 않도록 개선.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 15:05:39 +09:00
김보곤
625a6ccf69 fix:서버 메뉴 이름 불일치 보정 시더 추가
서버 DB의 메뉴 이름(미수금 관리, 미지급금 관리, 환불/해지 관리)이
로컬과 달라 이동되지 않은 3개 메뉴를 고객/거래처/채권관리로 이동

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 12:32:26 +09:00
김보곤
79f60969d0 feat:재무/영업 메뉴 대분류 재구성 시더 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 12:29:54 +09:00
김보곤
92104e59ad fix:일일자금일보 출금처/적요 표시 순서 수정 (거래처-적요 순으로)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 12:21:04 +09:00
김보곤
313ed15e7e fix:Toast 컴포넌트명 충돌 수정 (레이아웃 SweetAlert2 Toast와 중복)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:32:31 +09:00
김보곤
9935906465 fix:Blade @verbatim 추가 - JSX 이중 중괄호 파싱 오류 수정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:31:38 +09:00
김보곤
71ba63c570 feat:주일기업 기획 메뉴 추가 (견적/입찰/공사관리, 프로젝트관리/기성청구)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:18:51 +09:00
f24a084152 Merge remote-tracking branch 'origin/develop' into develop 2026-02-09 10:46:09 +09:00
김보곤
89a5c7000d fix:법인차량 총 주행거리에 운행기록 합산 반영
- 기존: 초기 주행거리(mileage)만 표시
- 변경: 초기 주행거리 + vehicle_logs.distance_km 합계 = total_mileage
- 요약 카드, CSV 다운로드 모두 total_mileage 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:55:27 +09:00
김보곤
b204e73ada feat:부가세 관리 구분 6개로 확장 (전자/종이세금계산서 분리)
- 매출(세금계산서) → 매출(전자세금계산서) + 매출(종이세금계산서) 분리
- 매입(세금계산서) → 매입(전자세금계산서) + 매입(종이세금계산서) 분리
- 매입(카드) → 매입(신용카드) 명칭 변경
- 요약 테이블 6행으로 확장, 필터 드롭다운 업데이트
- 컨트롤러 stats에 hometaxSales/manualSales/manualPurchase 분리 반환

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:46:21 +09:00
김보곤
4ed902e846 feat:AI 토큰 단가 설정 UI 및 DB 조회 연동
- AiPricingConfig 모델 추가 (캐시 적용 단가/환율 조회)
- AiTokenUsageController에 pricingList/pricingUpdate 메서드 추가
- AI 토큰 사용량 페이지에 설정 버튼 + 모달 UI 추가
- AiTokenHelper 하드코딩 단가를 DB 조회로 변경
- pricing 라우트 추가 (GET/PUT)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:33:56 +09:00
0316c63d3c feat:DB 트리거 감사 로그 관리 화면 구현
- TriggerAuditLog 모델 (casts, accessors, scopes)
- TriggerAuditController (목록/상세/이력/롤백 미리보기/롤백 실행)
- index: 대시보드 통계 + 필터 + 목록 + 파티션 현황
- show: old/new diff 뷰 (변경 컬럼 하이라이트)
- history: 레코드별 변경 타임라인
- rollback-preview: SQL 미리보기 + 확인 후 실행
- 라우트 5개 등록, 메뉴 시더 (시스템 관리 > DB 변경 추적)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 08:55:18 +09:00
김보곤
ab7c3bd494 fix:영업수수료정산 레이아웃 전체 너비로 확장
- container mx-auto 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 18:18:47 +09:00
김보곤
965553a75b fix:카드 사용내역 카드 선택 버튼에서 바로빌 ID 제거
- card.alias (바로빌 ID) 표시 제거, 카드 뒷번호만 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:50:14 +09:00
김보곤
436c97d942 fix:일반전표입력 레이아웃 전체 너비로 확장
- max-w-7xl mx-auto 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:39:41 +09:00
김보곤
2dd6568680 fix:AI 음성녹음 전체건수를 검색입력창 옆으로 이동
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:29:03 +09:00
김보곤
351aa3b1c9 fix:AI 음성녹음 검색 아이콘/텍스트 겹침 수정
- 입력 패딩 pl-9→pl-10, 너비 w-44→w-48로 조정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:17:09 +09:00
김보곤
3016b73fb8 fix:AI 음성녹음 검색 아이콘/placeholder 위치 우측 조정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:15:51 +09:00
김보곤
2d8c29e687 fix:AI 음성녹음 버튼/검색/필터를 한 행에 정렬
- 헤더, 검색, 필터, 새녹음, 파일업로드 버튼을 한 줄로 통합
- 통계 카운트를 헤더 옆으로 이동

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:12:29 +09:00
김보곤
6b7214bce7 fix:AI 음성녹음 레이아웃 전체 너비로 확장
- max-w-4xl mx-auto 제거하여 콘텐츠 영역 전체 너비 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:09:48 +09:00
김보곤
841a0ac652 fix:Web Speech API 실시간 음성인식 품질 개선
- 세션 간 텍스트 누적 보존 (accumulatedTextRef 추가)
- 침묵으로 인한 자동 재시작 시 이전 텍스트 유실 방지
- 일시정지→재개 시 텍스트 보존
- 재시작 300ms 지연으로 급속 루프 방지
- stop() 후 이벤트 핸들러 제거로 중복 처리 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 15:06:28 +09:00
김보곤
1040f4ecaa feat:AI토큰사용량 테이블에 녹음시간 열 추가
- 모델 열 뒤에 녹음시간 컬럼 추가
- STT(google-speech-to-text) 항목에서 prompt_tokens(초)를 '분 초' 형식으로 표시
- 다른 항목은 빈칸 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:46:58 +09:00
김보곤
67c605f5ae feat:AI토큰사용량 테이블에 카테고리 열 추가
- 호출메뉴 앞에 카테고리 컬럼 추가
- menu_name에서 카테고리 자동 파생 (AI음성녹음, 회의록, 명함OCR, 사업자등록증OCR)
- 주황색 뱃지로 시각 구분

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:35:42 +09:00
김보곤
6d02cc5e5e feat:상세모달에 브라우저 내장 오디오 플레이어 추가
- DetailModal에 <audio> 태그 기반 재생기 추가 (다운로드 없이 바로 재생)
- 다운로드 엔드포인트에 ?inline=1 파라미터 지원 (스트리밍 재생용)
- Content-Length, Accept-Ranges 헤더 추가
- 플레이어 옆 다운로드 버튼 배치

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:24:59 +09:00
김보곤
29a670522a fix:음성파일 다운로드 한글 파일명 및 확장자 수정
- Str::slug()이 한글을 제거하는 문제 수정
- 한글 파일명 그대로 유지 (파일시스템 금지문자만 치환)
- RFC 5987 filename*=UTF-8'' 헤더로 브라우저 호환성 확보
- 다운로드 파일명 예시: 무제 음성녹음.webm

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:20:57 +09:00
김보곤
5818c7e93e fix:전체 Lucide 아이콘 호환성 수정 (24개 파일)
- Lucide 0.563.0 API 변경 대응: lucide.icons[name] → PascalCase 개별 export
- kebab-case → PascalCase 자동 변환 로직 적용
- 리네임된 아이콘 별칭 매핑 (check-circle→CircleCheck 등)
- 구버전 lucide.icons 객체 폴백 유지
- 적용 범위: finance/*(19), system/*(2), sales/interviews(1), ai-token-usage(1), holidays(1)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:12:40 +09:00
김보곤
6eb60fa22d fix:Lucide 아이콘 호환성 수정 및 액션버튼 항상 표시
- Lucide 0.563.0 API 변경 대응 (icons 객체 → 개별 PascalCase export)
- 아이콘 이름 변환: kebab-case → PascalCase, 구버전 호환 유지
- 리네임된 아이콘 별칭 처리 (check-circle→CircleCheck 등)
- 액션버튼(결과보기/다운로드/삭제) opacity-0 제거하여 항상 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:03:47 +09:00
김보곤
e8f07bad63 feat:AI 음성녹음 삭제 확인 모달 및 다운로드 버튼 추가
- DeleteConfirmModal 컴포넌트 추가 (confirm 대체)
- RecordingCard에 음성파일 다운로드 버튼 추가
- 삭제 중 로딩 상태 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:52:57 +09:00
김보곤
fa14a9fbec feat:AI 음성녹음 GCS 파일 다운로드 엔드포인트 추가
- GoogleCloudService에 downloadFromStorage 메서드 추가 (GCS REST API 사용)
- AiVoiceRecordingController에 download 메서드 추가 (스트림 응답)
- 다운로드 라우트 추가 (GET /{id}/download)
- 파일명은 제목 기반으로 생성, Content-Disposition 헤더 설정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:51:09 +09:00
김보곤
d121a319b3 feat:GCS 업로드/STT 사용량 토큰 기록 추가
- AiTokenHelper: saveGcsStorageUsage(), saveSttUsage() 메서드 추가
- GoogleCloudService: uploadToStorage 반환값 배열로 변경 (uri + size)
- AiVoiceRecordingService: GCS/STT 각각 토큰 사용량 기록
- MeetingLogService: uploadToStorage 반환값 변경 대응

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:45:50 +09:00
김보곤
b25b7c57f1 fix:AI 음성녹음 STT 디버그 로그 추가
- processAudio STT 시작/결과 로그 추가
- GoogleCloudService STT 폴링 토큰 실패 로그 추가
- STT 요청 응답 및 완료 로그 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:36:17 +09:00
김보곤
af344bcc60 feat:AI 음성녹음 실시간 음성인식 및 카테고리 선택기 추가
- Web Speech API로 녹음 중 실시간 텍스트 표시
- 인터뷰 카테고리/템플릿 선택 드롭다운 추가
- 녹음/파일업로드 시 interview_template_id 전달

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:15:46 +09:00