페이지 로드 시 바로빌 API를 백그라운드에서 호출하여 신규 데이터를 자동 동기화.
수동 데이터소스 토글/저장 버튼 제거, 항상 로컬 DB에서 즉시 표시 후 증분 동기화.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 전 슬라이드에 빨간색 'CONFIDENTIAL/대외비' 스탬프 추가
- 표지에 '사내 대외비 문서' 보안 경고문 추가
- 협업지원금 설명을 '내부 복리후생 지원제도'로 순화
- '생계 보조' → '안정적 파트너십 유지를 위한 내부 지원'으로 변경
- 유의사항(필독) 섹션 추가: 외부 유출 금지 명시
- 보안 유의사항 슬라이드(8번) 신규 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- createCommission: 개인 파트너도 parent_id → SalesPartner 조회하여 3% 협업지원금 계산
- 대시보드: "유치수당" → "협업지원금" 카드 이름 복원
- 본사 총 수당 구조: 개인 28%(20+5+3), 단체 33%(30+0+3)
- 변경 보고서 v2 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SalesPartner: referrer_partner_id, referrer/referredGroups 관계, isGroup() 헬퍼
- SalesCommission: 유치수당 필드, referrerPartner 관계, 지급 추적 메서드
- SalesCommissionService: 단체/개인 분기 수당 계산 로직
- SalesManagerService: 단체 등록 시 수당률 자동 설정
- SalesManagerController: 유형 선택 및 유치 파트너 지정 기능
- 대시보드: 유치수당 카드 표시 및 합산
- UI: purple 색상 처리 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- searchPartners 역할 필터를 sales만 → sales/manager 모두 포함하도록 확장
- 사용자 역할(영업파트너/상담매니저)을 position 필드로 API 응답에 추가
- handlePartnerSelect에 position 매핑 추가 (key: position, label: 포지션/직책/역할)
- PartnerSearchModal 검색 결과에 position 배지 표시
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 템플릿 카드의 PDF 표시 영역에 '교체' 버튼 추가
- PDF 미연결 템플릿에 'PDF/Word 파일 추가' 버튼 표시
- 카드에서 직접 파일 선택 → 업로드 → 즉시 반영
- PDF/DOC/DOCX 지원 (서버에서 자동 PDF 변환)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- sendATKakaotalkEx() 호출 시 존재하지 않는 certKey 파라미터 제거 (TypeError 버그)
- sendAlimtalk/dispatchNotification 결과 반환 (void → array)
- send/remind 응답에 notification_results 포함
- 감사 로그 metadata에 서명자별 알림 발송 결과 저장
- EsignPublicController 다음 서명자/완료 알림에도 동일 수정 적용
- detail.blade.php: 발송 방식 배지, 서명자 연락처, 알림 오류 배너, 활동 로그 발송 결과 표시
- send.blade.php: 발송 후 알림 실패 시 경고 메시지 표시
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- EsignApiController: send_method/sms_fallback 저장, dispatchNotification/sendAlimtalk 메서드 추가
- EsignPublicController: 완료/다음서명자 알림에 알림톡 지원 추가
- EsignContract 모델: send_method, sms_fallback fillable/casts 추가
- send.blade.php: 발송방식 선택 UI (알림톡/이메일/동시), SMS 대체발송, 연락처 확인
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- BarobillService에 KAKAOTALK SOAP 클라이언트 추가
- 채널/템플릿 관리, 알림톡/친구톡 발송, 전송조회/예약취소 API
- BarobillKakaotalkController (API) 생성: 15개 엔드포인트
- KakaotalkController (페이지) 생성: 5개 페이지
- 라우트 등록 (web.php, api.php)
- Blade 뷰 5개 생성: 대시보드, 채널관리, 템플릿관리, 발송, 전송내역
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
configureFields()와 copyFieldsFromContract()에서 기존 필드를
삭제 후 재생성할 때 field_value를 설정하지 않아 계약서 PDF에
서명자명, 날짜 등 기본값이 빠지는 문제 수정.
buildVariableMap()으로 변수 맵을 구성하여 값을 채우도록 개선.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
getContract API가 항상 데이터를 반환하되 is_signable 플래그로
서명 가능 여부를 전달하도록 변경. done 페이지에서 signed/completed
상태의 계약도 정상적으로 정보를 표시할 수 있도록 수정.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 폼을 AJAX 제출로 변경하여 422 에러 시 모달 내 에러 메시지 표시
- innerHTML로 로드된 script 태그 수동 실행 처리
- 컨트롤러에 JSON 응답 지원 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 컨트롤러 store/update 유효성 검사에 3개 필드 추가
- 서비스 create/update에서 SalesPartner 레코드 생성/업데이트
- 등록 폼(create.blade.php)에 사업자 정보 섹션 추가
- 수정 모달(edit-modal.blade.php)에 사업자 정보 섹션 추가
- 테스트 데이터 자동입력에 사업자 정보 포함
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- whereHas('salesPartner') → whereHas('userRoles') + role.name='sales'
- 현재 테넌트의 sales 역할을 가진 활성 사용자만 검색
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- EsignApiController에 searchPartners() 검색 API 추가
- SalesPartner 모델 $fillable에 company_name, biz_no, address 추가
- User 모델에 salesPartner() HasOne 관계 추가
- create.blade.php에 PartnerSearchModal 컴포넌트 + 자동채우기 로직 추가
- web.php에 search-partners 라우트 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- overlayDate: Y-m-d → Y년 n월 j일, 미지정 시 12pt 고정
- buildVariableMap: current_date/expires_at도 동일 형식 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- fmtDate() 유틸 추가: UTC ISO 문자열을 브라우저 로컬 시간으로 변환
- 서명자 signed_at, 활동 로그 created_at, 계약 생성일/만료일 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- template-fields/fields FieldOverlay: justify-center → text_align 기반 정렬
- 기본값 justify-start(왼쪽), text_align에 따라 L/C/R 반영
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- PdfSignatureService: 자동 폰트 크기 공식 2배(h*0.7→h*1.4), 기본 정렬 C→L
- text_align 필드 추가 (L/C/R 정렬 선택 가능)
- store()/buildVariableMap(): sign_order→role 기반 매핑으로 변경
(signer_order 1=creator/갑/회사, 2=counterpart/을/파트너)
- template-fields: 가로 정렬 버튼 UI 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- storeTemplate() API에서 items를 nullable로 변경하여 빈 템플릿 생성 허용
- signer_count/variables 파라미터 직접 지정 가능하도록 추가
- "새 템플릿" 버튼 클릭 시 CreateTemplateModal 표시 (이름/설명/카테고리/서명자수/PDF)
- 생성 완료 후 필드 에디터(/esign/templates/{id}/fields)로 자동 이동
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Step 1: 계약 정보 + 서명자 (유효성 검사 포함)
- Step 2: 템플릿 선택 + PDF 미리보기 (필드 위치 오버레이)
- Step 3: 변수 입력 + 요약 + 생성/바로발송 버튼
- pdf.js 추가하여 템플릿 PDF 프리뷰 렌더링
- 필드 목록 테이블로 배치될 필드 한눈에 확인
- 스텝 인디케이터 (완료 단계 클릭 이동 지원)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- store()에서 template_id 있으면 필드 자동 생성 (서버 사이드)
- create.blade.php 변수 입력 UX 개선 (시스템/커스텀 변수 구분)
- 바로 발송 버튼 추가 (템플릿 선택 시)
- fields.blade.php URL 파라미터 기반 auto-apply 제거
- PdfSignatureService NanumGothic 한글 폰트 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>