- 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>
- 대시보드 설정 탭 추가 (법인도장 등록/미리보기/삭제 UI)
- tenant_settings 테이블에 esign/company_stamp 키로 저장
- 새 계약 생성 시 등록된 도장 자동 적용 (creator signer)
- 계약 생성 페이지에서 개별 도장 업로드 UI 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 작성자 자동서명 로직 제거 → 양쪽 모두 서명 과정 필수
- 서명 화면에서 '직접 서명' / '법인도장' 선택 UI 추가
- 도장 선택 시 기존 stamp 이미지로 바로 제출
- getContract API에 has_stamp 필드 추가
- submitSignature에 use_stamp 플래그 처리 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 계약 생성 화면에 법인도장 업로드 UI 추가 (미리보기/삭제)
- store()에서 base64 이미지 디코딩 후 저장, creator signer에 연결
- send()에서 법인도장 있는 작성자 자동 서명 처리 (상대방에게만 이메일 발송)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 대표자(ceo) 입력란 추가 (OCR에서 ceo_name 직접 매핑)
- 주소(address) 입력란 추가 (메모가 아닌 별도 필드)
- 테이블/검색/CSV에 대표자 반영
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Word(.docx/.doc) 파일 업로드 시 서버에서 LibreOffice headless로 PDF 자동 변환.
계약 생성, PDF 업로드, 템플릿 PDF 교체 3개 엔드포인트에 적용.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SignaturePad backgroundColor를 rgba(0,0,0,0)으로 변경 (투명)
- 캔버스 CSS background는 #fff 유지 (시각적 흰색 배경)
- toDataURL('image/png')로 투명 배경 서명 이미지 저장
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 기본 상태(점선): 드래그=이동만 활성, 클릭=선택
- 더블클릭: 리사이즈 모드 전환(실선+핸들 표시, 크기조절)
- ESC 또는 바깥 클릭: 리사이즈 모드 해제
- fields.blade.php, template-fields.blade.php 양쪽 동일 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 시스템 변수 (서명자명, 이메일, 계약제목, 날짜 등) 자동 해석
- 커스텀 변수 정의/관리 (템플릿별 계약금액, 기간 등)
- 템플릿 필드 에디터: 변수 관리 + 필드-변수 바인딩 UI
- 계약 생성 폼: 템플릿 변수 입력 섹션 추가
- 계약 필드 에디터: 변수 연결 정보 표시
- PdfSignatureService: font_size 반영 렌더링
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
/esign/templates/5/fields 접속 시 /esign, /esign/templates 둘 다
활성화되던 문제 수정. 더 구체적인 prefix 메뉴가 있으면 덜 구체적인
메뉴는 비활성화.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>