Commit Graph

210 Commits

Author SHA1 Message Date
김보곤
c6498d4001 fix:최종처리일시에 바로빌 거래내역 최신일시 연결
barobill_bank_transactions에서 계좌번호 매칭(하이픈 제거)으로
최신 거래일시를 서브쿼리로 조회하여 fallback 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:43:07 +09:00
김보곤
bc4322c1f5 feat:거래처 등록 사업자등록증 OCR 기능 추가
- TradingPartnerOcrService 신규 생성 (Gemini Vision API 사업자등록증 OCR)
- TradingPartnerController에 ocr() 메서드 추가
- partners 라우트 그룹에 OCR 엔드포인트 추가
- 거래처 등록 모달에 이미지 드래그앤드롭 업로드 UI 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:18:51 +09:00
김보곤
b2fbd3d113 feat:회의록 자동 화자 분리(Phase 2) 구현 및 세그먼트 저장 에러 수정
- GoogleCloudService에 speechToTextWithDiarization 메서드 추가
- Google STT V1 diarizationConfig 활성화로 자동 화자 구분
- MeetingMinuteService에 processDiarization 메서드 추가
- POST /{id}/diarize 엔드포인트 및 라우트 추가
- 프론트엔드에 '화자 분리' 버튼 추가 (RecordingControlBar)
- saveSegments 컨트롤러에 try-catch 에러 핸들링 추가
- 빈 텍스트 세그먼트 필터링 로직 추가 (서버/클라이언트 양쪽)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 10:29:16 +09:00
김보곤
418aa0c469 feat:Tiro AI 스타일 회의록 작성 기능 추가 (음성인식+화자분리+AI요약)
- MeetingMinute/MeetingMinuteSegment 모델
- MeetingMinuteService (CRUD, GCS 업로드, Gemini AI 요약)
- MeetingMinuteController (11개 엔드포인트)
- React SPA Blade 뷰 (대화기록/스크립트 탭, AI 요약 사이드패널)
- Web Speech API 실시간 STT + 수동 화자 전환 + MediaRecorder 녹음

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 09:50:23 +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
2182f177f2 Merge remote-tracking branch 'origin/develop' into develop 2026-02-09 21:32:55 +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
김보곤
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
김보곤
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
김보곤
5fe6afd9c4 feat:AI 음성녹음 기능 추가
- AiVoiceRecording 모델 (상태 상수, 접근자)
- AiVoiceRecordingService (GCS 업로드, STT, Gemini 분석 파이프라인)
- AiVoiceRecordingController (CRUD, 녹음 처리, 상태 폴링)
- React 블레이드 뷰 (녹음 UI, 파일 업로드, 목록, 상세 모달)
- 라우트 추가 (system/ai-voice-recording)
- 메뉴 시더에 AI 음성녹음 항목 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 12:52:37 +09:00
김보곤
bb81d07d61 feat:전체 AI 서비스에 토큰 사용량 기록 추가
- AiTokenHelper 공통 헬퍼 생성 (Gemini/Claude 응답 파서)
- BizCertOcrService (Claude) 토큰 기록 추가
- BusinessCardOcrService (Gemini) 토큰 기록 추가
- MeetingLogService (Claude) 토큰 기록 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:27:53 +09:00
김보곤
32cbef9ae3 feat:인터뷰 시나리오 MD 파일 업로드 일괄 생성 기능
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 21:42:14 +09:00
김보곤
a507f7dc69 feat:인터뷰 시나리오 관리 기능 추가
- InterviewScenarioController: 카테고리/항목/질문 CRUD + 세션 관리 API
- InterviewScenarioService: 비즈니스 로직 (트리 조회, 세션 시작/토글/완료)
- MNG 모델 5개: InterviewCategory, InterviewTemplate, InterviewQuestion, InterviewSession, InterviewAnswer
- React 뷰: 2-패널 레이아웃 (카테고리 사이드바 + 항목/질문 관리)
- 인터뷰 실시 모달: 카테고리 선택 → 체크리스트 → 완료
- 인터뷰 기록 모달: 기록 목록 + 상세 보기
- InterviewMenuSeeder: 영업관리 > 인터뷰 시나리오 메뉴 추가
- 라우트 18개 추가 (sales/interviews/api/*)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 21:01:35 +09:00
김보곤
82b3d6b06d fix:자금일정 요약 완료금액 표시 오류 수정
- completed_amount가 null/0인 경우 amount로 fallback 처리
- 수입/지출 모두 동일하게 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 13:37:41 +09:00
김보곤
471ec88357 feat:자금계획일정 월별 복사 기능 추가
- POST /api/admin/fund-schedules/copy 엔드포인트 추가
- FundScheduleService에 copySchedulesToMonth() 메서드 추가
- 월 네비게이션 옆 일정복사 버튼 및 모달 UI 구현
- 날짜 조정 로직 (31일→28/29/30일) 포함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 08:42:21 +09:00
김보곤
0fbeabc892 fix:테넌트 영구삭제 시 FK 체크 임시 비활성화로 제약조건 오류 해결 2026-02-04 21:52:56 +09:00
김보곤
0fd5173e43 fix:테넌트 영구삭제 시 역할 하위 참조 데이터 선 삭제 2026-02-04 21:51:47 +09:00
김보곤
806502768f fix:바로빌 API 응답 구조 수정 (CardEx, BankAccount)
- 카드 조회: CardInfoEx2 → CardEx로 수정 (실제 GetCardEx2 응답 구조)
- 계좌 조회: BankAccountInfoEx → BankAccount/BankAccountEx로 수정 (실제 GetBankAccountEx 응답 구조)
- EcardController, EaccountController의 응답 파싱 로직과 일치시킴

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 20:51:00 +09:00
김보곤
1d2d7d4bc7 fix:바로빌 계좌/카드 조회 API 응답 로깅 추가
- 디버깅을 위한 API 응답 상세 로깅 추가
- 데이터 타입 및 실제 응답 내용 로그 기록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 20:49:47 +09:00
김보곤
cad77ce821 fix:바로빌 API 호출 시 회원사별 서버모드 적용
- getMemberUsage()에서 해당 회원사의 server_mode에 맞게 API 서버 전환
- 운영 모드 회원사는 운영 서버로, 테스트 모드 회원사는 테스트 서버로 조회
- 등록 계좌/카드 수가 0으로 표시되는 문제 해결

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 20:47:49 +09:00
김보곤
d4fb2582fd fix:바로빌 사용량 조회 운영모드 필터 및 건수 집계 구현
- 테스트 모드 제외하고 운영(production) 모드만 조회하도록 필터 추가
- getTaxInvoiceCount(): HometaxInvoice 테이블에서 매출 세금계산서 건수 카운트
- getHometaxCount(): HometaxInvoice 테이블에서 매입/매출 전체 건수 카운트
- 기존 TODO로 표시된 메서드 구현 완료

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 20:44:56 +09:00
김보곤
ac66e36294 feat:홈택스 세금계산서 로컬 저장 및 동기화 기능 구현
- HometaxInvoice 모델 생성 (로컬 DB 조회/저장)
- HometaxSyncService 서비스 생성 (API 데이터 동기화)
- HometaxController에 로컬 조회/동기화 메서드 추가
- 라우트 추가: local-sales, local-purchases, sync, update-memo, toggle-checked
- UI: 데이터소스 선택 (로컬 DB/바로빌 API), 동기화 버튼 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:13:18 +09:00
김보곤
12c6175470 refactor:용어 변경 - 가입비 → 개발비
영업 관련 코드 및 문서 전체에서 "가입비"를 "개발비"로 변경
- 컨트롤러, 서비스, 모델
- 뷰 템플릿 (blade 파일)
- 가이드북 문서 (마크다운)
- 설정 파일

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:20:09 +09:00
김보곤
268b881157 feat:영업파트너 수당 현황에 1차/2차 분할 지급 현황 추가
- 가입비 수당 50%씩 1차/2차 분할 지급 현황 시각화
- 각 단계별 납입대기/지급예정/지급완료 상태 표시
- 진행률 바로 지급 완료 비율 표시
- 수당 지급 프로세스 안내 추가

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-03 14:24:15 +09:00
0f02acf39d Merge remote-tracking branch 'origin/develop' into develop 2026-02-03 14:10:36 +09:00
5dd580623e feat:통계 대시보드 페이지 신규 구현 (/stats/dashboard)
- 모델 7개: StatSalesDaily, StatFinanceDaily, StatProductionDaily,
  StatInventoryDaily, StatSystemDaily, StatSalesMonthly, StatFinanceMonthly
- DashboardStatService: 요약카드, 7일 추이차트, 알림, 월간요약 데이터
- StatDashboardController: HX-Redirect 패턴 적용
- 뷰: 요약카드 6개 + Chart.js 4개 차트 + 알림/월간요약 하단섹션
- 기존 대시보드 "통계 및 리포트" 바로가기 링크 연결
- 헤더 테넌트 선택 기준 전체/개별 테넌트 필터링 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:03:58 +09:00
김보곤
86fa750217 fix:프로필 이름 수정 권한을 최고관리자로 제한 2026-02-03 14:01:49 +09:00
김보곤
425e0e79d6 refactor:바로빌 서버 모드를 회원사별 개별 설정으로 변경
기존 전역 세션 기반 서버 모드 → 회원사별 개별 설정 방식으로 변경

주요 변경사항:
- BarobillMember 모델: server_mode 필드 및 accessor 추가
- BarobillService: switchServerMode() 메서드 추가 (동적 서버 전환)
- BarobillMemberController: 회원사별 서버 모드 변경 API 추가
- 회원사 목록 테이블: 서버 모드 컬럼 추가 (클릭 시 변경 모달)
- 서버 변경 확인 모달: 요금 부과 경고 및 동의 체크박스 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:48:13 +09:00
김보곤
56aa538b3b feat:바로빌 테스트/운영 서버 선택 기능 추가
- 회원사 관리 페이지에 서버 선택 토글 UI 추가
- 서버 모드 전환 API 추가 (GET/POST /api/admin/barobill/members/server-mode)
- BarobillService에서 세션 기반 서버 모드 읽기 지원
- 선택한 서버 설정이 바로빌 API 호출에 적용됨

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:40:35 +09:00
김보곤
e1c1b93fd2 fix:카드사용내역 기본 제공 3장→5장으로 정책 변경 2026-02-02 21:03:17 +09:00
김보곤
ced9110f3b refactor:영업파트너 역할 2개로 단순화 (recruiter 제거)
- 역할: sales(영업파트너), manager(상담매니저) 2개만 유지
- recruiter(유치담당) 역할 완전 제거
- 역할 레이블 변경: 영업→영업파트너, 매니저→상담매니저
- 통계, 필터, 역할관리 UI 모두 업데이트

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 16:43:02 +09:00
김보곤
a830fa7969 fix:영업파트너 관리에서 비활성 파트너도 목록에 표시
- is_active 필수 조건 제거 (관리 목적으로 비활성 파트너도 표시)
- is_active 필터 옵션 추가 (필요 시 활성 상태로 필터링 가능)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:33:03 +09:00
김보곤
06a0146b12 fix:영업파트너 목록에서 비활성화된 사용자 제외
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 09:26:16 +09:00
김보곤
7830c0b38f fix:개발 승인 화면 영업/매니저 이름 표시 개선
- 가망고객(prospect) 모드에서 영업담당자 이름이 나오도록 수정
- tenantProspect.registeredBy 관계 eager loading 추가
- 매니저가 없으면 영업담당자 이름으로 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:58:50 +09:00
김보곤
d17b1de03d fix:개발 승인 화면에서 가망고객 정보 매핑 지원
- tenantProspect 관계 eager loading 추가
- tenant가 없으면 tenantProspect에서 정보 가져오기
  - 업체명: company_name
  - 사업자번호: business_number
  - 대표자: ceo_name (prospect) / representative_name (tenant)
  - 연락처: contact_phone (prospect) / phone (tenant)
  - 주소: address
- pending/progress/completed/detail 모든 화면 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:54:50 +09:00
김보곤
28f129393d feat:개발 진행중 → 승인대기로 이동 기능 추가
- revertToPending 서비스 메서드 추가
- revertToPending 컨트롤러 액션 추가
- /approvals/{id}/revert-pending 라우트 추가
- progress-list에 "승인대기로" 버튼 추가
- JavaScript revertToPending 함수 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:33:44 +09:00
김보곤
e993eb5a0a fix:개발 승인 화면 데이터 매핑 수정
- salesPartner.user eager loading 추가로 영업자명 표시
- 대표자명(representative_name) 정보 추가 표시
- pending/progress/completed 목록 모두 동일하게 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 20:31:11 +09:00
김보곤
f83d2a1333 feat:개발 승인 메뉴 구현
- 영업관리 하위에 "개발 승인" 메뉴 추가
- 영업/매니저 100% 완료 고객의 개발 진행 상태 관리
- 3분할 레이아웃: 승인대기 / 개발진행중 / 완료
- 7단계 진행 상태: 대기→검토→기획안작성→개발코드작성→개발테스트→개발완료→통합테스트→인계
- 승인/반려/상태변경 기능 구현
- 통계 카드 및 상세 모달 지원

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 20:15:03 +09:00
pro
9eaf13b950 fix:역할 동기화 시 unique 제약조건 충돌 해결
- soft delete된 레코드가 있을 때 새 레코드 생성 대신 복원
- withTrashed()로 기존 레코드 확인 후 처리
- 불필요한 역할만 선별적으로 삭제

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:54:45 +09:00
pro
1e8474cd62 Merge branch 'develop' of http://114.203.209.83:3000/SamProject/sam-manage into develop 2026-01-31 11:35:38 +09:00
pro
d2ab0d6659 feat:영업파트너 승인 페이지 추가 (본사 관리자 전용)
- 승인 대기 목록 페이지 (/sales/managers/approvals)
- isAdmin() 권한 체크: admin 또는 super_admin만 접근 가능
- 승인/반려 기능 (AJAX 지원)
- 상세 보기 모달
- 승인 대기 통계 (오늘 승인/반려 수)
- DB 메뉴 추가: 영업관리 > 영업파트너 승인

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:27:06 +09:00
pro
9ba1fa2db1 fix:영업파트너관리 목록에서 본인이 유치한 파트너만 표시되도록 수정
- parent_id 필터를 현재 로그인 사용자 ID로 강제 설정
- 통계(stats)도 현재 사용자 기준으로 조회하도록 변경
- getSalesPartners()에 parent_id 필터 처리 추가
- getStats()에 parentId 파라미터 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:26:51 +09:00
95ef55470e feat:앱버전 수정 기능 추가 (모달, APK 파일 교체)
- 버전코드/버전명/플랫폼/변경사항/강제업데이트/APK 파일 수정 가능
- 새 APK 업로드 시 기존 파일 삭제 후 교체
- 수정 모달 UI, PUT 라우트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 22:56:38 +09:00
daaa77badc feat:앱버전 슈퍼관리자 소프트삭제 목록 표시, 복구/영구삭제 기능
- 슈퍼관리자: 삭제된 항목 빨간 배경으로 표시, 복구/영구삭제 버튼
- 소프트 삭제 시 APK 파일 유지, 영구 삭제 시에만 파일 제거
- restore, forceDestroy 라우트 및 서비스 메서드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 22:39:19 +09:00
78e67eb928 feat: 앱 버전 관리 페이지 구현
- AppVersion 모델, Service, Controller
- 버전 등록 폼 (APK 업로드, 강제 업데이트 설정)
- 버전 목록 테이블 (활성 토글, 다운로드 수, 삭제)
- /app-versions 라우트 추가
- app_releases 스토리지 디스크 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:53:09 +09:00