Commit Graph

357 Commits

Author SHA1 Message Date
b1481e168f Merge remote-tracking branch 'origin/develop' into develop 2026-01-30 13:51:49 +09:00
pro
bf1e3ff5b7 feat: Vertex AI 연결 테스트 기능 추가
- testGeminiVertexAi() 메서드 추가
- getVertexAiAccessToken() OAuth 토큰 획득 메서드 추가
- 모달에서 Vertex AI 파라미터 전송하도록 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:37:33 +09:00
b6a3c4b506 feat:공통코드/카테고리 벌크 글로벌 복사, 동기화 환경설정 공통화
- 공통코드/카테고리 테넌트→글로벌 체크박스 벌크 복사 기능 추가
- 이미 대상에 존재하는 항목 체크박스 disabled 처리 (양방향)
- 공통코드 토글 크기 카테고리와 동일하게 축소
- 동기화 환경설정 모달을 공통 partial로 분리
- 동기화 리스트에서 불필요한 타입 컬럼 제거

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:16:44 +09:00
pro
d840bee519 merge: origin/develop 병합 및 충돌 해결
- labs-menu.blade.php: S/A 탭 구조 유지 (원격 버전)
- routes/web.php: ManagementController + AIController 모두 포함, SalesCommissionController 구현 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:50:09 +09:00
pro
32bb5795d1 feat:고객관리 상세/수정 모달창 구현
- TenantProspectController에 modalShow, modalEdit 메서드 추가
- prospects 라우트에 modal-show, modal-edit 엔드포인트 추가
- index.blade.php에 모달 컨테이너 및 JavaScript 추가
- partials/show-modal.blade.php, edit-modal.blade.php 신규 생성

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:20:32 +09:00
pro
036a021b71 feat:영업파트너 관리 상세/수정 모달 구현
- 목록에서 상세/수정 버튼 클릭 시 모달로 표시
- 모달 열림 시 배경 스크롤 방지
- ESC 키로 모달 닫기 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 21:27:05 +09:00
pro
12c7dfc947 fix:사용자 영구삭제 시 DB::table()로 하드 삭제
- SoftDeletes 모델의 delete()는 soft delete만 수행
- DB::table()로 직접 삭제하여 외래 키 제약 조건 해결

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 21:04:40 +09:00
pro
ad0d991940 fix:사용자 영구삭제 시 관련 데이터 함께 삭제
- user_roles, department_user 삭제
- sales_partners, sales_manager_documents 삭제
- 하위 사용자의 parent_id 해제

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 21:03:07 +09:00
pro
23c50c5051 feat:영업파트너 등록 시 영업팀 부서 자동 할당
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 20:57:54 +09:00
pro
5d7de6d13b feat:영업수수료 정산 기능 구현
[모델]
- SalesCommission: 영업수수료 정산 모델
- SalesCommissionDetail: 상품별 수당 내역 모델
- SalesTenantManagement: 입금 정보 필드 추가

[서비스/컨트롤러]
- SalesCommissionService: 수당 생성, 승인, 지급 처리 로직
- SalesCommissionController: 정산 관리 CRUD

[뷰]
- 본사 정산 관리 화면 (필터, 통계, 테이블)
- 입금 등록 모달
- 상세 보기 모달
- 영업파트너 대시보드 수당 카드

[라우트]
- /finance/sales-commissions/* 라우트 추가
- 기존 sales-commission 리다이렉트 호환

[메뉴]
- SalesCommissionMenuSeeder: 정산관리 > 영업수수료정산 메뉴 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:14:11 +09:00
pro
e6515e5b36 fix:진행률 계산 시 config에 존재하는 체크포인트만 카운트
- 체크포인트 축소 시 DB에 남아있는 이전 데이터 때문에 100% 초과 문제 수정
- validCheckpointKeys 배열로 config 기준 유효성 검증

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 17:10:42 +09:00
pro
3d12829dcb feat:영업 시나리오 계약체결 탭에 상품관리 데이터 연동 (registration_fee 사용) 2026-01-29 16:38:44 +09:00
pro
ac8afef985 feat:상품 수정 시 개발비/가입비 분리 입력 지원 2026-01-29 16:31:59 +09:00
pro
5381399731 feat:수당율 영업파트너/매니저 분리 (파트너 20%, 매니저 5%) 2026-01-29 16:18:29 +09:00
pro
3676f0c59d fix:상품관리 HTMX 부분 로드 시 Alpine.js 오류 수정 (HX-Redirect 적용) 2026-01-29 15:41:39 +09:00
pro
7547a63284 feat:계약 체결 단계에 상품 선택 기능 추가
- SalesContractController: 계약 상품 저장/조회 API
- product-selection.blade.php: 상품 선택 UI 컴포넌트
- scenario-step.blade.php: 6단계에서 상품 선택 컴포넌트 표시
- routes/web.php: /sales/contracts/* 라우트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:04:26 +09:00
pro
f48d4b036a feat:영업 상품관리 기능 구현
- SalesProductController: CRUD + 카테고리 관리
- Models: SalesProductCategory, SalesProduct, SalesContractProduct
- Views: 상품관리 UI (Tailwind + Alpine.js + HTMX)
- Routes: /sales/products/* 라우트 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:02:09 +09:00
09323aaa4c fix:공통코드 슈퍼관리자 권한 우회 추가
슈퍼관리자는 다른 테넌트/글로벌 코드 수정·토글·삭제 가능

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:04:37 +09:00
pro
20d8c774f6 fix:시나리오 단계 버튼 및 완료 시 진행률 반영
- scenario-step: $totalSteps 명시적 계산으로 다음 단계 버튼 표시 수정
- scenario-step: 완료 버튼 클릭 시 scenario-completed 이벤트 발송
- scenario-modal: completeAndRefresh 함수 추가 (테넌트 리스트 새로고침)
- SalesDashboardController: refreshTenantList 메서드 추가
- routes/web.php: salesmanagement.dashboard.tenants 라우트 추가
- tenant-list: id="tenant-list-container" 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 13:02:52 +09:00
pro
d124078fd4 feat:본사 진행 상태 및 수당 지급 상태 UI 추가
- SalesTenantManagement 모델에 본사 진행 상태 7단계 추가
  (대기, 검토, 기획안작성, 개발코드작성, 개발테스트, 개발완료, 통합테스트, 인계)
- 수당 지급 상태 3단계 추가 (대기, 지급대상, 지급완료)
- tenant-list.blade.php에 본사 진행 상태 스텝 인디케이터 추가
- 매니저 100% 완료 시 본사 진행 활성화
- 수당 지급 상태 배지 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:39:10 +09:00
pro
9588abb272 feat:테넌트 리스트에 영업/매니저 진행률 표시
- SalesScenarioChecklist: getSimpleProgress(), getTenantProgress() 메서드 추가
- tenant-list: 진행률 컬럼 추가 (영업/매니저 각각 프로그레스 바)
- 레이아웃 재조정: 버튼 compact화, 컬럼 비율 조정
- 오른쪽 빈 공간 활용하여 정보 밀도 향상

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:42:56 +09:00
pro
9e39567604 fix:오디오/파일 다운로드 반환 타입 오류 수정
- downloadAudio: Response → BinaryFileResponse|RedirectResponse
- downloadFile: Response → BinaryFileResponse
- GCS 리다이렉트: response()->redirectTo() → redirect()->away()

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:00:27 +09:00
pro
6b54e19a42 feat:GCS 환경변수(.env) 기반 설정 지원
- config/gcs.php 추가: 환경변수 기반 설정
- GoogleCloudStorageService 우선순위 변경:
  1. DB 설정 (UI 오버라이드용)
  2. 환경변수 (.env) - 기본
  3. 레거시 파일 (fallback)
- .env.example에 GCS 설정 추가
- 서버 배포 시 .env만 설정하면 DB 설정 불필요

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:39:49 +09:00
pro
50becbdd28 feat:AI 설정 페이지에 GCS 스토리지 설정 통합
- AI 설정과 스토리지 설정을 탭으로 구분
- GCS 버킷 이름, 서비스 계정 (JSON 직접입력/파일경로) 설정 가능
- GCS 연결 테스트 기능 추가
- GoogleCloudStorageService가 DB 설정 우선 사용 (fallback: 레거시 파일)
- AiConfig 모델에 gcs provider 및 관련 메서드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:22:12 +09:00
pro
dd86d70503 feat:음성 녹음 GCS 업로드 및 다운로드 기능 추가
- GoogleCloudStorageService 생성 (레거시 방식 JWT 인증)
- 10MB 이상 파일은 Google Cloud Storage에 백업 (본사 연구용)
- 오디오/파일 다운로드 라우트 추가
- voice-recorder.blade.php 인라인 x-data로 변경 (HTMX 호환)
- SalesConsultation 모델에 gcs_uri 필드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:15:13 +09:00
pro
bdf00f9c36 fix:체크리스트 토글 checkpoint_index NOT NULL 오류 수정
- 새 레코드 생성 시 checkpoint_index 기본값 0 설정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:53:55 +09:00
pro
5d15acebba fix:시나리오 모달 500 에러 및 무한 루프 수정
- SalesScenarioChecklist::toggle()에서 user_id 설정 추가 (DB NOT NULL 오류 해결)
- scenario-modal.blade.php에서 @scenario-modal-closed.window 이벤트 리스너 제거 (무한 루프 해결)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:20:04 +09:00
pro
8c089e54a7 fix:영업파트너 등록 시 본사 관리자도 추천인으로 설정
- 기존: 본사 관리자 등록 시 parent_id = null
- 변경: 누가 등록하든 등록자가 추천인(parent_id)으로 설정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:09:28 +09:00
pro
9f6218bc07 refactor:영업담당자 → 영업파트너 용어 변경 및 드롭다운 로직 수정
- 전체 코드에서 '영업담당자' → '영업파트너'로 용어 통일
- 관리 드롭다운: 모든 HQ 사용자 → 내가 유치한 하위 영업파트너만 표시
- User.php children() 관계 활용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:57:30 +09:00
pro
92c4e15273 feat:계약 현황 페이지네이션 추가 (10건 단위)
- 최신 계약이 상단에 표시되도록 정렬
- 10건 초과 시 HTMX 페이지네이션 표시
- 현재 페이지 범위 및 총 건수 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:51:41 +09:00
pro
0a0afe1df0 fix:매니저 드롭다운 API 호출 제거, 서버사이드 렌더링으로 변경
- 기존: 드롭다운 열 때 API 호출 → 로딩 스피너 문제
- 변경: 컨트롤러에서 allManagers 전달 → 즉시 렌더링
- 로딩 상태 제거로 UX 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:05:45 +09:00
pro
b4163d6ffd fix:영업관리 대시보드에 가망고객 전환 테넌트만 표시
- 기존: 로그인 사용자의 모든 테넌트 표시 (HQ 제외)
- 변경: 가망고객(tenant_prospects)에서 전환된 테넌트만 표시
- TenantProspect.STATUS_CONVERTED 상태의 tenant_id만 조회

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 06:47:37 +09:00
pro
329c58e63b refactor:영업관리 데이터를 DB 테이블로 변경
- 모델 추가: SalesPartner, SalesTenantManagement, SalesScenarioChecklist, SalesConsultation
- 모델 위치 이동: app/Models/ → app/Models/Sales/
- 컨트롤러 수정: 캐시 대신 DB 모델 사용
- 뷰 수정: Eloquent 모델 속성 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 06:42:32 +09:00
1e70d2edbf feat:동기화 페이지에 글로벌/테넌트 필터 추가
- 환경 탭 앞에 글로벌/테넌트 토글 버튼 추가
- 글로벌: tenant_id가 NULL인 코드/카테고리만 표시
- 테넌트: 현재 선택된 테넌트의 데이터만 표시
- Push/Pull API에 type 파라미터 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 01:06:33 +09:00
8b7f0b9f7f feat:공통코드/카테고리 동기화 기능 추가
- CommonCodeSyncController, CategorySyncController 생성
- 환경설정은 메뉴 동기화와 공유 (TenantSetting)
- Export/Import API 추가 (/common-code-sync, /category-sync)
- Push(로컬→원격), Pull(원격→로컬) 양방향 동기화
- 동일 코드 존재 시 체크박스 비활성화 (충돌 방지)
- 글로벌 + 테넌트 코드 모두 동기화 가능
- 공통코드/카테고리 관리 페이지에 동기화 버튼 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 00:31:51 +09:00
c65d3f49dc feat: 문서 관리 시스템 MNG 관리자 패널 구현 (Phase 2)
- Document 관련 모델 4개 생성 (Document, DocumentApproval, DocumentData, DocumentAttachment)
- DocumentController 생성 (목록/생성/상세/수정 페이지)
- DocumentApiController 생성 (AJAX CRUD 처리)
- 문서 관리 뷰 3개 생성 (index, edit, show)
- 웹/API 라우트 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:51:23 +09:00
pro
2f381b2285 feat:레거시 영업관리 시스템 MNG 마이그레이션
- 영업/매니저 시나리오 모달 구현 (6단계 체크리스트)
- 상담 기록 기능 (텍스트, 음성, 첨부파일)
- 음성 녹음 + Speech-to-Text 변환
- 첨부파일 Drag & Drop 업로드
- 매니저 지정 드롭다운

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:45:11 +09:00
pro
c20624ad0d fix:테넌트 전환 시 user_tenants에 자동 연결
- 전환한 사용자를 새 테넌트에 자동 연결
- 대시보드에서 관리 테넌트로 표시되도록 함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:54:39 +09:00
pro
e960e0c0e1 fix:테넌트 전환 시 고유 코드 자동 생성
- code 필드 추가 (T + 날짜 + 랜덤 4자리)
- 예: T260128ABC1

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:34:25 +09:00
pro
f874acdaff fix:테넌트 전환 시 tenant_type을 STD로 수정
- customer → STD (ENUM 허용값에 맞게 수정)
- created_by 필드 제거 (테이블에 없는 컬럼)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:33:01 +09:00
pro
9980c334e4 fix:테넌트 조회를 user_tenants 관계로 변경
- registered_by 컬럼 대신 user_tenants 관계 사용
- 현재 사용자가 속한 테넌트 중 HQ 제외하고 조회

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:23:42 +09:00
pro
70300ccf3a fix:테넌트 목록을 현재 사용자가 등록한 것만 표시
- registered_by로 현재 로그인 사용자가 등록한 테넌트만 조회
- 영업 진행 버튼 → 영업실적 등록 페이지 연결
- 상세계약 설정 버튼 → 테넌트 편집 페이지 연결
- 매니저 진행 버튼 → 영업담당자 관리 페이지 연결
- 삭제 버튼에 확인 다이얼로그 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:22:54 +09:00
pro
f993d3de79 feat:영업관리 대시보드에 테넌트 및 계약 관리 섹션 추가
- 테넌트 목록 표시 (업체명, 담당자, 등록일)
- 계약관리 버튼 (영업 진행, 상세계약 설정, 매니저 진행)
- 행 클릭 시 상세 정보 토글
- 신규 테넌트 등록 버튼 제외 (가망고객 관리에서 처리)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:15:38 +09:00
pro
6cb9e703d2 fix:PermissionController Tenant 모델 네임스페이스 수정
- App\Models\Tenant → App\Models\Tenants\Tenant

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 20:00:14 +09:00
pro
39e9ae39c6 fix:R&D LABS A 탭 메뉴 전체 제거 (AI/Automation) 2026-01-28 19:14:31 +09:00
d1fad70395 refactor:문서템플릿 분류 동적 조회 및 회사정보 제거
- 분류: CommonCode → DocumentTemplate에서 group by 조회
- 분류 입력: select → input + datalist (자유입력 + 자동완성)
- 회사정보 입력 필드 제거 (tenant에서 자동 조회)
- 미리보기: tenant 회사명 자동 표시

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-28 17:47:14 +09:00
pro
55d04537fc feat:신용평가 조회회수 집계 기능 추가
- CreditUsageController: 조회회수 집계 컨트롤러 신규 생성
- credit/usage/index.blade.php: 집계 화면 (월별/연간/기간별)
- 과금 정책: 월 5건 무료, 추가건당 2,000원
- 본사(tenant_id=1)는 전체 테넌트 조회 가능
- CreditInquiry 모델에 tenant_id 필드 추가
- 신용평가 조회 시 tenant_id 저장하도록 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:49:13 +09:00
407c98a391 feat:자동 재인증 미들웨어 추가
- AutoLoginViaRemember: 세션 만료 시 remember_token으로 자동 로그인
- HQ 소속/활성 상태 검증
- API 토큰 자동 재발급
- web 미들웨어 그룹에 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:33:10 +09:00
pro
45aa0f9c72 fix:명함 OCR 이미지 저장 안되던 버그 수정
- TenantProspectController: business_card_image_data (Base64) validation 및 처리 추가
- TenantProspectService: saveBase64Image 메서드 추가로 Base64 이미지 저장 지원
- OCR로 인식한 명함 이미지가 DB에 정상 저장되도록 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:31:10 +09:00
pro
b8d035f639 fix:세무전략, 채권추심전략, MRP해외사례 컨트롤러/뷰 삭제
- StrategyController: tax(), debt(), mrpOverseas() 메서드 제거
- views/lab/strategy/: tax, debt, mrp-overseas 뷰 파일 삭제

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:23:36 +09:00