Commit Graph

191 Commits

Author SHA1 Message Date
김보곤
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
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
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
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
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
8d73cc3f79 fix:쿨다운 → 재등록 대기 기간으로 용어 변경
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:42:40 +09:00
pro
e5b054ea0a feat:영업권 수정 페이지 첨부 이미지 삭제 기능 추가 2026-01-28 10:21:03 +09:00
pro
1642aa249a fix:영업권 수정 시 신분증/통장사본 첨부파일 저장 기능 추가 2026-01-28 09:41:02 +09:00
pro
bb55ea8e08 fix:Vertex AI API 호출 시 role 필드 추가
- Vertex AI는 contents에 role: 'user' 필수
- Google AI Studio와 Vertex AI 분기 처리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:45:43 +09:00
pro
d824b45fc0 feat:AI 설정에 Vertex AI 서비스 계정 인증 방식 추가
- AiConfig 모델에 Vertex AI 헬퍼 메소드 추가
- AI 설정 UI에 인증 방식 선택 (API 키 / Vertex AI)
- Vertex AI 선택 시 프로젝트 ID, 리전, 서비스 계정 경로 입력
- BusinessCardOcrService가 DB 설정 기반으로 동작
- Google AI Studio와 Vertex AI 모두 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:08:30 +09:00
pro
d1660aa9fe fix:Docker 컨테이너 내 서비스 계정 파일 경로 추가
- /var/www/sales/apikey/ 경로 우선 검색
- Docker 볼륨 마운트된 sales 폴더에서 접근 가능

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 00:07:42 +09:00
pro
0bf41cc273 refactor:명함 OCR을 Vertex AI API 방식으로 변경
- Google AI Studio API에서 Vertex AI API로 전환
- 서비스 계정 OAuth2 인증 방식 적용
- JWT 토큰 생성 및 액세스 토큰 획득 로직 추가
- 서비스 계정 파일 다중 경로 검색 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 00:03:29 +09:00
pro
a834beaa10 feat:명함 OCR 시스템 구현
- AiConfig 모델: AI API 설정 관리
- BusinessCardOcrService: Gemini Vision API 호출
- BusinessCardOcrController: OCR API 엔드포인트
- AiConfigController: AI 설정 CRUD
- create.blade.php: 드래그앤드롭 명함 인식 UI
- AI 설정 관리 페이지 추가
2026-01-27 23:00:52 +09:00