130 Commits

Author SHA1 Message Date
김보곤
2a45b6bfe8 feat: [interview] 카테고리 계층 구조(대분류/중분류) 지원
- InterviewCategory 모델에 parent/children 관계 추가
- Service: getTree, getProjectTree 루트+children eager loading
- Service: createCategory에 parent_id 지원
- Service: cloneMaster 2단계 계층 복제
- Controller: storeCategory validation에 parent_id 추가
- UI: CategorySidebar/DomainSidebar 트리 뷰 렌더링
- UI: findCategory 헬퍼로 트리 내 카테고리 검색
2026-02-28 21:23:30 +09:00
김보곤
7ba438b41b feat: [interview] 인터뷰 시나리오 고도화 Phase 1 구현
- InterviewProject/Attachment/Knowledge 모델 3개 신규
- 기존 모델 확장 (Question, Answer, Session, Category)
- 서비스 확장: 프로젝트 CRUD, 첨부파일, 지식 관리
- 컨트롤러 확장: 프로젝트/첨부/지식 API 엔드포인트
- 라우트 20개 추가 (프로젝트, 첨부, 지식)
- InterviewQuestionMasterSeeder: 8개 도메인 80개 질문
- UI 확장: 프로젝트 모드/기존 모드 전환
  - 프로젝트 선택 바, 상태 바, 도메인 사이드바
  - 탭 구조 (질문편집/인터뷰/첨부파일/추출지식)
  - 구조화 답변 입력 (테이블, 수식, 다중선택 등)
  - 첨부파일 업로드/관리
  - 지식 수동 추가/검증/필터링
2026-02-28 20:02:47 +09:00
김보곤
84fe893a5b feat: [business-cards] 처리완료 삭제 기능 추가 및 기본 매수 500매로 변경
- 관리자 화면 처리완료 카드에 삭제 버튼 추가
- processed 상태만 삭제 가능 (서비스 검증)
- 파트너 명함신청 기본 매수 100매 → 500매 변경
2026-02-26 13:56:59 +09:00
김보곤
9a7c548246 style: Pint 포맷팅 적용 2026-02-25 11:45:01 +09:00
김보곤
85c7a55d00 feat: [business-card] 3단계 워크플로우 구현 (요청→제작의뢰→처리완료)
- 모델: STATUS_ORDERED 추가, markAsOrdered() 헬퍼
- 서비스: order(), getOrderedRequests() 추가
- 컨트롤러: order() 액션 추가
- 관리자 뷰: 좌측 신규요청 + 우측 제작중 + 하단 처리완료
- 파트너 뷰: 제작중(파란) 상태 뱃지 추가
- 라우트: POST business-cards/{id}/order 추가
2026-02-25 05:41:34 +09:00
김보곤
51e2525b6f refactor: [business-card] 메뉴 2개로 분리 (파트너 명함신청 / 명함신청 처리)
- 파트너 명함신청 (/sales/business-cards): 모든 사용자 (신청폼+이력)
- 명함신청 처리 (/sales/business-cards/manage): 관리자 전용 (2분할)
- 뱃지를 manage 라우트에 연동
2026-02-25 05:36:32 +09:00
김보곤
089a60231d feat: [business-card] 명함신청 기능 구현
- 모델: BusinessCardRequest (pending/processed 상태 관리)
- 서비스: 신청/처리/통계/뱃지 카운트
- 컨트롤러: 관리자 2분할 뷰, 파트너 신청폼+이력
- 뷰: admin-index (대기/처리완료 2분할), partner-index (신청폼+이력)
- 라우트: GET/POST /sales/business-cards, POST /{id}/process
- 뱃지: ViewServiceProvider에 대기 건수 연동
2026-02-24 21:45:08 +09:00
김보곤
0ac621bd49 fix:수당 정산 레코드 생성 시 파트너 타입별 요율 반영
- updateCommissionDate, updateReferrerCommission의 firstOrCreate에서
  partner_rate를 0 고정 → 파트너 타입(개인 20% / 단체 30%)에 따라 설정
- referrer_rate도 파트너 타입에 따라 설정 (개인 5% / 단체 3%)
- SalesCommissionService 상수 재사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:15:35 +09:00
김보곤
f2f10d2f15 feat:고객 상세 모달에 계약 상세정보 보기 기능 추가
- 계약 및 납입 정보 옆에 '정보보기' 토글 버튼 추가
- 계약 상품 내역 (카테고리, 상품명, 개발비, 구독료, 할인율) 테이블 표시
- 수당 정산 내역 (계약금/잔금별 입금액, 수당, 지급예정일 등) 카드 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 14:55:52 +09:00
김보곤
5a35e3fdfc fix:납입일 변경 시 통합정산 입금일(payment_date)도 함께 동기화
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:30:59 +09:00
김보곤
ef007a582a fix:납입일 변경 시 지급예정일(scheduled_payment_date)도 함께 재계산되도록 수정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:24:37 +09:00
김보곤
4e03df5624 feat:상세 모달에 구분/계약일/납입일/인계일 정보 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:38:08 +09:00
김보곤
6a846a1c0d feat:계약일 date input 입력 가능하게 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:34:07 +09:00
김보곤
6a7a8d00d0 feat:영업파트너 고객관리 인계일 컬럼 동적 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:27:12 +09:00
김보곤
4ddc1efa34 refactor:영업파트너 고객관리 테이블 정리 + 정산관리에 수당지급일 관리 이동
- 고객관리 테이블: 1차수당/2차수당/매니저수당/협업지원금/등록일 열 제거, 계약일 열 추가 (16열→12열)
- 정산관리 수당정산 테이블: 수당지급일/매니저지급일/협업지원금 인라인 편집 컬럼 추가
- SalesCommissionController에 updateCommissionDate 메서드 추가
- 불필요한 JS 함수 제거 (saveReferrerCommission, checkHandoverStatus)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:20:42 +09:00
김보곤
e7ab389023 fix:단체 파트너 수당 - 1차/2차 납입 시 deposit/balance 레코드 분리 생성
기존에는 management당 하나의 커미션 레코드만 생성되어 수당리스트에 계약금만 표시됨.
이제 1차 필드(first_*)는 deposit 레코드, 2차 필드(second_*)는 balance 레코드로
분리하여 양쪽 모두 수당리스트에 나타남.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:01:07 +09:00
김보곤
6b3979132d fix:파트너 타입 판별 로직 개선 (management→registered_by 순 조회)
management.sales_partner_id가 미설정된 경우
registered_by(User ID)로 SalesPartner를 조회하여 partner_type 결정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:34:41 +09:00
김보곤
e63b6f1512 feat:영업파트너 고객관리에 협업지원금 수동 입력 기능 추가
- 개인 파트너: 협업지원금 금액 수정 가능한 number input 추가
- 단체 파트너: "-" 표시 (자동계산 3% 고정, 수동 수정 불가)
- AdminProspectController에 updateReferrerCommission 메서드 추가
- firstOrCreate에 referrer_rate, referrer_commission 필드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:14:36 +09:00
김보곤
41e7eca92d feat:유치 파트너 현황에 개인/단체 유형 배지 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 09:00:51 +09:00
김보곤
aed42cd4f2 fix:유치 파트너 현황 예상수당 - 단체 파트너는 협업지원금(개발비×3%) 적용
기존: 모든 파트너에 대해 1개월 구독료를 예상수당으로 사용
수정: 단체 파트너 → 개발비×3%(협업지원금), 개인 파트너 → 1개월 구독료(관리자 수당)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:43:34 +09:00
김보곤
743c0250bb fix:단체 파트너 수당 계산 요율 수정 (15%→30%, 10%→20%)
기존: 개발비 × 50% × 요율로 미리 반감 후 또 50% 분할 → 이중 반감 오류
수정: 개발비 × 요율(개인 20%, 단체 30%)로 계산, 1차/2차 분할은 별도 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:25:22 +09:00
김보곤
81bcd617fe feat:단체(Corporate) 파트너 UI 접근 제한 구현
- User 모델에 isGroupPartner() 헬퍼 추가
- 대시보드에서 단체 파트너는 판매자 카드만 표시 (관리자/협업지원금 카드 제외)
- 유치 파트너 현황 탭 단체 파트너에게 숨김
- 파트너 등록 create/store 접근 차단 (403)
- 파트너 목록에서 등록 버튼 숨김
- SidebarMenuService에 hide_for_group_partner 옵션 기반 메뉴 필터링 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 08:00:58 +09:00
김보곤
28c6c40f54 fix:영업 대시보드 개인/단체 수수료율 동적 적용
- SalesPartner::isGroup()이 partner_type 기반으로 판별하도록 수정
- 대시보드 수수료율 표시: 개인 20%, 단체 30% 동적 반영
- 인수 수수료 계산: 개인 10%, 단체 15% 동적 반영

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:36:30 +09:00
김보곤
5a1fcb4140 feat:영업파트너 수정 모달에 개인/단체 유형 변경 기능 추가
- 승인 전(pending): 라디오 버튼으로 개인/단체 변경 가능
- 승인 후(approved): 읽기 전용 뱃지로 표시
- 유형 변경 시 수당률 자동 설정 (단체 30%, 개인 초기화)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:26:13 +09:00
김보곤
d5a13fea1b fix:영업파트너 등록 시 유치 파트너 드롭다운 제거 (등록자 자동 지정)
영업파트너가 직접 등록하므로 등록자가 곧 유치파트너임.
드롭다운 대신 등록자 이름을 표시하고 서버에서 자동 설정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 07:18:32 +09:00
김보곤
d7d4eb0926 fix:협업지원금 개념 반영 (개인 파트너도 유치자에게 3% 지급)
- createCommission: 개인 파트너도 parent_id → SalesPartner 조회하여 3% 협업지원금 계산
- 대시보드: "유치수당" → "협업지원금" 카드 이름 복원
- 본사 총 수당 구조: 개인 28%(20+5+3), 단체 33%(30+0+3)
- 변경 보고서 v2 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 20:02:56 +09:00
김보곤
f1f31d5f70 feat:단체(그룹) 수당 체계 통합 (단체 30%, 유치 3%, 매니저 0%)
- SalesPartner: referrer_partner_id, referrer/referredGroups 관계, isGroup() 헬퍼
- SalesCommission: 유치수당 필드, referrerPartner 관계, 지급 추적 메서드
- SalesCommissionService: 단체/개인 분기 수당 계산 로직
- SalesManagerService: 단체 등록 시 수당률 자동 설정
- SalesManagerController: 유형 선택 및 유치 파트너 지정 기능
- 대시보드: 유치수당 카드 표시 및 합산
- UI: purple 색상 처리 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 19:42:51 +09:00
김보곤
8cfc44bf45 fix:영업파트너 수정 모달 validation 에러 표시 추가
- 폼을 AJAX 제출로 변경하여 422 에러 시 모달 내 에러 메시지 표시
- innerHTML로 로드된 script 태그 수동 실행 처리
- 컨트롤러에 JSON 응답 지원 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 12:47:41 +09:00
김보곤
7e9dec8bd3 feat:영업파트너 등록/수정에 사업자 정보(상호, 사업자등록번호, 주소) 필드 추가
- 컨트롤러 store/update 유효성 검사에 3개 필드 추가
- 서비스 create/update에서 SalesPartner 레코드 생성/업데이트
- 등록 폼(create.blade.php)에 사업자 정보 섹션 추가
- 수정 모달(edit-modal.blade.php)에 사업자 정보 섹션 추가
- 테스트 데이터 자동입력에 사업자 정보 포함

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 11:11:32 +09:00
김보곤
d6cf587bc9 fix:고객관리 필터 버튼 정리 (영업중/완료/인계완료)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:59:55 +09:00
김보곤
0ac8b3ee9b feat:가망고객 상태 토글 기능 추가 (영업중 ↔ 완료)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:41:04 +09:00
김보곤
cebc1262b6 feat:수당지급일 입력 시 개발상태 인계 여부 검증 안전장치 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:26:25 +09:00
김보곤
71065ca91a feat:납입일 입력 시 수당지급일 자동 계산 (익월 10일)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:23:35 +09:00
김보곤
a337b7afb4 feat:수퍼관리자 가망고객 삭제 기능 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 08:18:54 +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
김보곤
1519673b34 feat:영업파트너 고객관리 진행완료 필터 및 날짜입력 비활성화
- 진행완료(두 시나리오 모두 100%) 필터 버튼 추가 (보라색)
- 진행률 미달 시 수당 날짜 input 5개 disabled 처리
- 통계에 progress_complete 건수 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 16:24:00 +09:00
김보곤
ec9d80e3dc fix:납입대기를 입금대기로 용어 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 13:38:18 +09:00
김보곤
72c18269c9 feat:유치 파트너 현황 1차/2차 수당 지급 현황 테이블 추가
- 컨트롤러에 매니저 수당 1차/2차 분할 데이터 추가
- 요약 카드를 5개 카드 + 1차/2차 테이블로 개선
- 내 활동 탭과 동일한 UI 패턴 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 09:39:28 +09:00
김보곤
9f4d899361 feat:매니저 지정 시 동적 UI 업데이트 구현
- 가망고객 행을 별도 partial(prospect-row.blade.php)로 분리
- 매니저 드롭다운에서 선택 시 HTMX로 해당 행만 새로고침
- 컨트롤러에 getProspectRow 메서드 추가
- 라우트 추가: salesmanagement/dashboard/prospect/{id}/row

이제 매니저 지정 후 새로고침 없이 화면이 동적으로 업데이트됩니다.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 09:26:18 +09:00
김보곤
01b92edaaa fix:영업 대시보드 역할별 수당 금액 불일치 수정
역할별 수당 상세 모달에서 판매자 수당과 예상 수당 합계가
일치하지 않던 문제를 수정했습니다.

- 기존: 판매자 수당이 SalesCommission 테이블 기준으로 계산
- 변경: 예상 수당(개발 진행 중 + 인계 완료 미지급) 기준으로 표시
- 1차/2차 수당 합계와 역할별 수당 합계가 일치하도록 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 09:19:15 +09:00
김보곤
5a7bfc2f46 fix:지급대상 개발비 계산 및 명칭 변경
- "총 개발비" → "지급대상 개발비"로 명칭 변경
- 지급대상 개발비 = 개발 진행 중 + 인계완료 중 지급 미완료
- 지급 완료된 건의 개발비는 제외
- $stats['target_development_fee'] 추가

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:20:09 +09:00
김보곤
4c5a80b456 fix:예상 수당 계산 로직 개선
- 개발 진행 중인 건 (hq_status가 review~int_test)의 예상 수당 포함
- 인계 완료 중 지급 미완료 건의 예상 수당 포함
- 지급 완료된 금액은 예상 수당에서 제외
- calculateExpectedCommissionSummary() 메서드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:17:39 +09:00
김보곤
95eaff1c39 fix:수당 없어도 1차/2차 수당현황 UI 표시
- calculateCommissionSummaryFromCollection()에서 빈 배열 체크 제거
- 수당 레코드가 없어도 0원으로 UI 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:50:05 +09:00
김보곤
f66a111335 fix:영업대시보드 1차/2차 수당현황 데이터 전달 수정
- getDashboardData()에서 직접 commissionSummary 계산
- calculateCommissionSummaryFromCollection() 메서드 추가
- calculateStageCommissionFromCollection() 메서드 추가
- index()에서 commissionSummary 덮어쓰기 방지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:44:09 +09:00
김보곤
b93ceaadd0 feat:수당 날짜 기록/수정/삭제 기능 추가 2026-02-02 20:16:13 +09:00
김보곤
a5c5d8c1c9 feat:영업파트너 고객관리에 수당 지급 현황 컬럼 추가
- 1차 납입완료, 1차 수당지급 컬럼 추가
- 2차 납입완료, 2차 수당지급 컬럼 추가
- 매니저 수당지급 컬럼 추가
- 컨트롤러에서 commission 정보 로드

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:09:15 +09:00
김보곤
6b966725be debug:매니저 검색 SQL 디버깅 로그 추가 2026-02-02 17:47:36 +09:00
김보곤
9dd5cda345 refactor:매니저 검색 디버그 로깅 코드 제거
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 17:33:19 +09:00