Commit Graph

1521 Commits

Author SHA1 Message Date
김보곤
abf424d10e feat:새 계약 생성 - 계약제목 드롭박스 + 번개 버튼 랜덤 상대방
- 계약 제목을 드롭박스로 변경 (영업파트너 계약서/비밀유지 서약서/고객 서비스이용 계약서/직접입력)
- 직접입력 선택 시 텍스트 입력 필드 표시
- 번개마크 2개 → 1개로 축소
- 번개마크 클릭 시 영업파트너 목록에서 랜덤으로 상대방 정보 자동 채우기

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:13:16 +09:00
김보곤
f1c557b37c docs:전자계약 문서에 카카오톡 알림톡 내용 전반적 추가
- OverviewTab: 기술 스택에 카카오 알림톡 API 추가
- UserManualTab: 소개, 역할, 준비물, 서명 요청, 리마인더, OTP 인증 등 전반에 알림톡 채널 추가
- UserManualTab: 을 가이드에 알림톡 수신 예시 UI 추가
- WorkflowTab: 발송/인증/완료 단계에 알림톡 채널 반영
- SecurityTab: OTP 인증 프로세스에 알림톡 우선 발송 반영
- ArchitectureTab: KakaoAlimtalkService 서비스 추가
- OperationsTab: 알림톡 환경 변수, 장애 대응 가이드 추가
- ChangelogTab: v1.1 계획에 카카오 알림톡 연동 추가
- FAQ, 용어사전 등 전반적으로 알림톡 관련 내용 반영

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:40:25 +09:00
김보곤
0d987ab685 fix:VAT 페이지 신고서 출력 버튼 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 22:28:24 +09:00
김보곤
71f745bdb9 fix:거래처 검색을 trading_partners 테이블로 변경 (clients → trading_partners)
- Barobill/Client 모델 삭제, Finance/TradingPartner 모델 사용
- 거래처관리(finance/partners)와 동일한 데이터 소스 사용
- status='active' 필터 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 21:32:16 +09:00
김보곤
69f117ef8e fix:거래처코드 검색을 고유번호(id) 기반으로 변경
- Client::searchByCodeOrName → searchByIdOrName으로 변경
- 검색 기준: id(숫자일 때 정확 매칭) + name(LIKE 검색)
- 반환값: client_code 대신 id를 code로 반환

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 21:25:08 +09:00
김보곤
072268a1cf feat:계좌 입출금내역 거래처코드 검색 기능 추가
- Client 모델 생성 (거래처 검색용)
- EaccountController에 searchClients API 추가
- save/parseTransactionLogs/convertManualToLogs/convertDbToRawLog에 client_code/client_name 필드 추가
- ClientCodeSelect 컴포넌트 추가 (서버 검색 기반 debounce 드롭다운)
- 테이블에 거래처코드 컬럼 추가
- BankTransaction 모델 fillable에 client_code/client_name 추가
- 라우트에 clients/search 엔드포인트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 21:18:31 +09:00
김보곤
1686198fcd feat:바로빌 계좌 입출금내역 API 캐싱 전략 구현
- BankSyncStatus 모델 추가 (월별 동기화 상태 추적)
- BankTransaction에 getCachedByMonth() 메서드 추가
- EaccountController fetchAccountTransactions() 캐싱 로직 적용
  - 과거 월: sync 레코드 존재 시 DB 캐시 반환
  - 현재 월: 10분 이내 sync이면 DB 캐시 반환, 초과 시 API 재호출
  - 미동기화: API 호출 → DB 자동 저장 → sync 상태 갱신
- cacheApiTransactions(): insertOrIgnore로 기존 레코드 보호
- convertDbToRawLog(): DB→SOAP 객체 변환 (기존 파싱 로직 호환)
- updateSyncStatus(): 동기화 상태 upsert

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:48:35 +09:00
김보곤
fea28d6652 fix:바로빌 계좌 입출금내역 긴 기간 검색 시 데이터 누락 수정 2026-02-19 20:35:17 +09:00
김보곤
4191e4637f feat:거래처 수정 모달에 고유번호 readonly 필드 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:24:50 +09:00
김보곤
e7127ff65b feat:거래처 목록 첫 열에 고유번호 컬럼 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:23:14 +09:00
김보곤
e8432df28f feat:거래처 목록에 고유 ID 표시 (거래처명 앞)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:21:15 +09:00
김보곤
ecbb8e4cc7 feat:수당지급현황통계 페이지 고도화 (종합 대시보드)
- 필터: 년/월 범위, 상태, 지급유형, 파트너, 매니저, 검색어
- 통계 카드 4→8개 (총 발생액, 지급완료, 미지급, 파트너수, 유형별 합계, 평균)
- 차트 4→6개 (월별 추이, 유형비율, Top10, 상태분포 건수/금액, 파트너vs매니저)
- 테이블 1→3개 탭 (월별 요약, 파트너별 결산, 매니저별 결산 + 완료율 프로그레스바)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:59:45 +09:00
김보곤
c5edefc5a3 fix:구독관리 탭 조회조건 변경 (contracted→hq_status=handover)
인계(handover) 완료된 업체 = 구독 업체로 간주.
기존 contracted() 스코프 + subscription_fee 조건 대신
hq_status='handover' 조건으로 변경. 불필요한 상태 필터 제거.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:12:45 +09:00
김보곤
b04444ef68 fix:고객사정산/구독관리 필터 레이아웃 유연한 너비로 변경
grid 균등분할 → flex wrap + min-width로 자연스러운 너비 적용.
수당관리 필터와 동일한 스타일로 통일.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:09:09 +09:00
김보곤
4077841452 fix:입금구분 필터 옵션명 변경 (계약금/잔금 → 1차/2차)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 19:00:07 +09:00
김보곤
1bf313b788 refactor:매니저 수당 테이블 1차/2차 구분 제거 (계약 단위 1행)
매니저 수당은 1계약당 1회 지급 구조이므로
그룹핑/구분 열/rowspan 로직을 제거하고 단순 1행 구조로 변경.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:51:51 +09:00
김보곤
f4658100d7 fix:매니저 수당 테이블에서 입금 열 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:49:14 +09:00
김보곤
8a2be0aeae fix:Alpine.js 내부 API 접근 오류 수정 (__x.$data)
getActiveSubtabContainer에서 Alpine 내부 API 대신
offsetParent로 활성 서브탭 컨테이너를 판별하도록 변경.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:45:43 +09:00
김보곤
eab6f09b5d fix:서브탭 간 체크박스 선택 격리 처리
전체선택 시 현재 서브탭의 체크박스만 선택되도록 수정.
서브탭 전환 시 기존 선택 초기화.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:39:14 +09:00
김보곤
a4e7740379 fix:협업지원금 빈값 저장 시 null 오류 수정
referrer_commission 컬럼이 NOT NULL인데 빈값을 null로 저장하려 해서
Integrity constraint violation 발생. 빈값은 0으로 처리하도록 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:48:02 +09:00
김보곤
655d3aba85 fix:데이터 없는 차수 행 숨김 처리
- 2차 레코드 미존재 시 빈 행 표시하지 않음
- 1차만 있으면 rowspan 없이 단일 행 표시
- 1차/2차 모두 있을 때만 rowspan 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:32:11 +09:00
김보곤
1d90411308 feat:고객관리 상세 모달에 총 개발비/구독료 표시 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:27:44 +09:00
김보곤
6970726bd9 refactor:수당 테이블 1차/2차 그룹 레이아웃으로 개선
- management_id로 그룹핑하여 같은 테넌트의 1차(계약금)/2차(잔금) 한 블록에 표시
- 공통 열(테넌트, 계약일) rowspan=2로 묶기
- 구분 열 추가 (1차 파란색, 2차 초록색 뱃지)
- 입금~협업지원금/매니저지급일 열은 각 차수별 독립 표시
- 데이터 없는 차수는 대시(-) 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:23:09 +09:00
김보곤
e0659ad084 fix:협업지원금 입력 3자리 콤마 포맷 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:18:19 +09:00
김보곤
2ffc69c4e4 refactor:수당 테이블 2행→1행 레이아웃 변경 + 계약일 열 추가
- rowspan 2행 구조를 단일 행으로 변경
- 테넌트 다음에 계약일(contracted_at) 열 추가
- 지급예정일/수당지급일/협업지원금/매니저지급일을 독립 열로 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:06:52 +09:00
김보곤
4a492fde99 refactor:정산관리 탭 통합 리디자인 (5탭→3탭)
- 수당정산+수당지급 → 수당관리 탭으로 통합
- 서브탭 추가: 영업파트너 수당 / 매니저 수당
- 파트너별 현황 탭 제거
- 수당유형 필터 제거 (서브탭으로 대체)
- 기존 table.blade.php → partner/manager 테이블로 분리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 17:01:44 +09:00
김보곤
7e9b470554 refactor:수당 정산 테이블 2행 레이아웃 리디자인 (18열→8열×2행)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:50:18 +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
김보곤
7e741884d6 feat:구독관리 탭 실제 구독자 데이터 표시 (sales_contract_products 기반)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:45:14 +09:00
김보곤
7c93fd414e fix:수당 정산 DB 값 정상화 - 비즈니스 룰 반영
- 상수: DEFAULT_MANAGER_RATE 제거, 유치수당률 개인5%/단체3% 분리
- createCommission: 파트너 resolve fallback 추가, 매니저수당=구독료1개월
- approve/bulkApprove: 금액 0원 기존 레코드 승인 시 자동 재계산
- recalculateCommission: 신규 메서드 추가 (partner_id/금액 정상화)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:32:12 +09:00
김보곤
d5aab85731 fix:고객사정산 탭 데이터 표시 개선 (수당정산 탭과 동일 fallback 로직 적용)
- 담당파트너: salesPartner→user → tenantProspect→registeredBy fallback 추가
- 개발비/계약금/잔금: contractProducts 기반 계산 fallback 추가
- 구독료: contractProducts fallback 추가
- eager loading에 tenantProspect.registeredBy.salesPartner, contractProducts 추가
- 파트너 필터에 tenantProspect.registeredBy 경로 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:21:50 +09:00
김보곤
ce84b7a197 fix:수당 산식 수정 - 매니저는 구독료1월, 유치파트너 개인5%/단체3%
- 매니저수당: 기준액 비율(5%) → 구독료 1개월(subscription_fee)로 변경
- 유치파트너수당: 개인일 때 상위파트너 5%, 단체일 때 유치 3%
- 파트너수당: 개인 20%, 단체 30% (기존 유지)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:07:31 +09:00
김보곤
2c1b59249a feat:수당 정산 테이블에 개인/단체 구분 컬럼 추가
- 구분 컬럼: partner_type 기반 개인(sky)/단체(purple) 배지
- 단체: 파트너 30%, 매니저 0%, 유치 3%
- 개인: 파트너 20%, 매니저 5%, 유치 3%
- eager loading에 registeredBy.salesPartner 추가 (타입 판별용)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:04:03 +09:00
김보곤
bf51e14e54 fix:수당 정산 금액을 management 데이터에서 자동 계산
- commission 금액이 0일 때 management의 total_registration_fee/contractProducts에서 계산
- 기준액 = 총개발비 / 2, 입금액 = 기준액 (계약금/잔금 각 50%)
- 파트너수당 = 기준액 × 20%, 매니저수당 = 기준액 × 5%, 유치수당 = 기준액 × 3%
- eager loading에 management.contractProducts 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:01:38 +09:00
김보곤
706e1e3de4 fix:유치파트너를 영업파트너의 parent(상위자)로 표시
- 유치파트너 = 영업파트너 user의 parent_id (User→parent 관계)
- partner→user→parent, salesPartner→user→parent, registeredBy→parent 순 fallback
- eager loading 정리 (불필요한 referrer 체인 제거, parent 관계 추가)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:54:32 +09:00
김보곤
053e095da0 fix:영업파트너/유치파트너 tenantProspect.registeredBy fallback 추가
- 영업파트너: tenantProspect→registeredBy(가망고객 등록자) 경로 추가
- 유치파트너: registeredBy→salesPartner→referrer 경로 추가
- eager loading에 management.tenantProspect.registeredBy.salesPartner.referrer.user 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:50:30 +09:00
김보곤
0ae7498a74 fix:수당 정산 테이블 전체 fallback 로직 개선
- 입금액: commission이 0이면 management의 deposit/balance 금액으로 fallback
- 유치파트너: commission→referrerPartner → partner→referrer → management→salesPartner→referrer 순 fallback
- 매니저: commission→manager → management→manager 순 fallback
- 파트너/매니저/유치 수당 0원일 때 '-' 표시
- 수당률 0%일 때 숨김 처리
- eager loading에 partner.referrer.user, management.salesPartner.referrer.user 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:47:36 +09:00
김보곤
2979037851 fix:정산관리 페이지에서 테넌트 선택 UI 숨김
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:40:07 +09:00
김보곤
3fa56292b0 fix:영업파트너 이름 fallback 로직 추가
- partner→user 없을 시 management→salesPartner→user → management→manager 순으로 fallback
- eager loading에 management.salesPartner.user, management.manager 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:36:37 +09:00
김보곤
d2b099a166 fix:수당 정산 탭 테넌트 표시를 실제 고객사 기반으로 수정
- eager loading에 management.tenant, management.tenantProspect 추가
- 검색 필터를 management 기반 고객사명 검색으로 변경
- 테넌트 컬럼을 management→tenant/tenantProspect 기반으로 표시
- 본사 진행상태(hq_status) 배지 추가
- 입금액 0원일 때 '-' 표시로 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:24:44 +09:00
김보곤
a1aa6036cf refactor:고객사정산 탭 재설계 (실 테넌트 데이터 기반)
- customerTab() 메서드: SalesTenantManagement 기반 쿼리로 재작성
- getCustomerStats() private 메서드 추가 (총개발비/수금완료/미수금/개발진행/구독전환)
- customer-tab.blade.php: Alpine.js CRUD → 순수 Blade 테이블로 전체 교체
- index.blade.php: 미사용 customerSettlementManager() Alpine 함수 제거
- 필터: 검색/개발상태/수금상태/담당파트너 4종
- 테이블: 고객사/파트너/매니저/개발비/1차/2차/구독료/개발상태 8열

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:51:28 +09:00
김보곤
de3e6c2ba0 Merge branch 'develop' of http://114.203.209.83:3000/SamProject/sam-manage into develop 2026-02-19 13:37:31 +09:00
김보곤
adc2984c0d fix:정산관리에서 컨설팅비용 탭 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:37:26 +09:00
f3cc977eca fix:트리거 감사로그 목록 Out of sort memory 에러 수정
- select * → 목록에 필요한 컬럼만 select (JSON 대용량 컬럼 제외)
- old_values, new_values, session_info 등 정렬 버퍼 과다 사용 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:36:10 +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
김보곤
63975f9e3f fix:단체 파트너 매니저 수당 일자 비활성화 (해당없음)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 13:21:19 +09:00