Commit Graph

1319 Commits

Author SHA1 Message Date
김보곤
156a7430a8 feat:대시보드/계약상세/템플릿 관리 새로고침 버튼 추가
- 대시보드: 제목 옆 새로고침 버튼 (통계+목록 갱신)
- 계약 상세: 상태 뱃지 앞 새로고침 버튼 (계약 정보 갱신)
- 템플릿 관리: 제목 옆 새로고침 버튼 (템플릿 목록 갱신)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
6bf087d2db fix:삭제 버튼 항상 표시 (선택 없으면 비활성 상태)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
2dea60de23 feat:계약 대시보드 선택 삭제 기능 추가
- EsignApiController에 destroy 메서드 추가 (복수 삭제 지원)
- 관련 파일(PDF, 서명이미지) 및 레코드(서명자, 필드, 감사로그) 일괄 삭제
- 서명 진행 중(pending, partially_signed) 계약은 삭제 차단
- DELETE /esign/contracts/destroy 라우트 추가
- 대시보드에 체크박스 전체/개별 선택 + 삭제 버튼 UI 추가
- 삭제 전 confirm 확인 다이얼로그

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
506f115415 fix:새 계약 생성 폼 PC 화면 UI 개선 (과대 크기 축소)
- max-w-3xl + mx-auto로 폼 너비 제한 (768px)
- input/select/textarea padding 축소 (py-2 → py-1.5)
- 카드 내부 패딩 축소 (p-5 → p-4)
- 라벨 폰트 크기 축소 (text-sm → text-xs)
- 섹션 간격 축소 (space-y-5 → space-y-4)
- 버튼 크기 축소 및 rounded-lg → rounded-md 통일

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
8f7a441900 feat:서명 완료 시 계약서 이메일 발송 및 감사 로그 추가
- EsignCompletedMail Mailable 생성 (완료 알림 + PDF 다운로드 링크)
- completed.blade.php 이메일 뷰 템플릿 생성 (초록색 테마)
- submitSignature에 contract_completed 감사 로그 추가
- 모든 서명자에게 완료 이메일 발송 + completion_email_sent 감사 로그
- 이메일 발송 실패 시 try-catch로 계약 완료 보호

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
김보곤
f050be52fe feat:E-Sign 템플릿에 PDF 파일 포함 기능 추가
- 모델: EsignFieldTemplate fillable에 file 컬럼 추가
- storeTemplate: include_pdf + contract_id로 계약 PDF를 템플릿으로 복사
- store(계약 생성): template_id로 템플릿 PDF 자동 복사 (사용자 업로드 우선)
- duplicateTemplate: 복제 시 PDF 파일도 복사
- 템플릿 PDF 다운로드 엔드포인트 추가
- SaveTemplateModal: "현재 PDF 파일 포함" 체크박스 추가
- create: 템플릿 카드에 PDF 뱃지, PDF 자동 사용 안내
- templates: 템플릿 카드에 PDF 파일명 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 10:11:14 +09:00
f326194c99 feat:제품검사 성적서 양식 시더 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:41:20 +09:00
1ed2b3d91a fix:메뉴 동기화 동명 메뉴 중복 import 및 자기참조 방지
- filterMenusByName에서 children 제거하여 동명 메뉴 중복 import 방지
- importMenu에서 name+parent_id로 매칭하여 다른 계층 동명 메뉴 자기참조 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:41:19 +09:00
555a502d0c refactor:문서양식 섹션/컬럼 저장 시 ID 보존 upsert 방식 적용
- sections, columns는 삭제→재생성 대신 ID 보존 upsert로 변경
- document_data.section_id, column_id FK 참조 깨짐 방지
- 요청에 없는 섹션/컬럼/항목만 선택적 삭제

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:41:13 +09:00
0f5c509bed feat:문서관리 필터 기능 개선 - 양식분류 필터 추가, onchange 즉시 검색
- 상태/템플릿 필터에 onchange 즉시 검색 적용
- 양식분류(category) 필터 추가 (API + 뷰 컨트롤러 + 프론트)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:38:30 +09:00
69b055a77d feat:문서양식 목록에 고유 번호 컬럼 추가
- 양식명 앞에 ID 번호 컬럼 추가
- colspan 10 → 11 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:32:51 +09:00
dbe05e64a1 fix:제품검사 문서 기본필드 표시 안되는 문제 수정
- show/edit 뷰에서 bf_{id} 조회 실패 시 bf_{label} 레거시 호환 추가
- 기존 bf_납품명 형식으로 저장된 문서도 정상 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 00:32:46 +09:00
김보곤
9b119fa7c9 fix:템플릿 선택 시 PDF 파일 필수 해제 및 후속 업로드 지원
- create: 템플릿 선택 시 PDF required 제거, 안내 메시지 표시
- fields: PDF 없는 계약 시 업로드 UI 표시
- API: uploadPdf 엔드포인트 추가 (POST /{id}/upload-pdf)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 20:05:28 +09:00
김보곤
c6116ad611 feat:새 계약 생성 테스트 데이터 자동입력 버튼 추가
- 번개 아이콘 클릭 시 랜덤 계약정보/서명자 자동 입력
- 슈퍼관리자/관리자에게만 표시
- 이메일은 테스트용 고정값 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:59:18 +09:00
김보곤
16fce75760 fix:esign 전체 페이지 레이아웃 통일 (전체 width)
- detail: max-w-5xl 제거
- send: max-w-2xl 제거
- docs: max-w-7xl 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:52:51 +09:00
김보곤
e00023e580 fix:계약 대시보드/새 계약 생성 페이지 전체 width 레이아웃으로 통일
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:51:08 +09:00
김보곤
92a0f7ef7b fix:새 계약 생성 페이지 레이아웃을 대시보드와 동일하게 반응형 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:47:41 +09:00
김보곤
fd5d052cb7 feat:PDF 서명 오버레이 합성 기능 구현
- PdfSignatureService 신규 생성 (FPDI+TCPDF 기반 PDF 합성)
- submitSignature에서 모든 서명 완료 시 자동 PDF 합성 호출
- downloadDocument에서 서명 완료 PDF 우선 제공
- setasign/fpdi, tecnickcom/tcpdf 패키지 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:42:08 +09:00
김보곤
a2f31d0103 fix:템플릿 카테고리를 영업파트너/고객으로 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:13:56 +09:00
김보곤
644ede3bc5 fix:템플릿 관리 페이지 Toast 전역 변수 충돌 수정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:11:18 +09:00
김보곤
ec43fe1991 feat:E-Sign 템플릿 관리 시스템 Phase 2 구현
- 템플릿 관리 전용 페이지 (카드 그리드, 검색/필터, 편집/복제/삭제)
- API: showTemplate, updateTemplate, duplicateTemplate 추가
- indexTemplates에 category/search 필터 추가
- 계약 생성 시 템플릿 선택 UI 추가
- 필드 에디터에서 URL 파라미터 template_id 자동 적용
- EsignFieldTemplate 모델에 category 필드 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:55:06 +09:00
김보곤
203d52300a fix:계약 생성 폼 UX 전면 개선
- max-w-3xl 제거하여 전체 너비 사용
- flex 기반 반응형 레이아웃 (PC: 한 행, 모바일: 자동 줄바꿈)
- 이름(1):이메일(2.5):전화번호(1) flex-grow 비율 적용
- 작성자/상대방을 하나의 카드에 통합 (구분선으로 분리)
- SignerRow 컴포넌트 분리로 중복 제거
- 서명자 컬러 표시 (파란색: 작성자, 빨간색: 상대방)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:33:26 +09:00
김보곤
ebee3f195c fix:계약 생성 폼 이름/이메일/전화번호 항상 한 행 표시
- md: breakpoint 제거하여 항상 grid-cols-8 적용
- 사이드바 포함 레이아웃에서도 한 행으로 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:31:16 +09:00
김보곤
5c39369530 fix:계약 생성 폼 이름/이메일/전화번호 너비 비율 조정
- 이름 25% : 이메일 50% : 전화번호 25% (grid-cols-8 기반 2:4:2)
- 작성자, 상대방 섹션 모두 동일 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:30:02 +09:00
김보곤
79c23f3337 feat:E-Sign 필드 템플릿 저장/불러오기 및 계약 간 복사 기능
- EsignFieldTemplate, EsignFieldTemplateItem 모델 추가
- EsignApiController에 템플릿 CRUD + 적용/복사 메서드 5개 추가
- web.php에 템플릿 라우트 5개 추가
- fields.blade.php에 템플릿 드롭다운 메뉴 + 모달 3개 추가
  (SaveTemplate, LoadTemplate, CopyFromContract)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:02:31 +09:00
김보곤
4f25e0e4a1 fix:서명 완료 후 다음 서명자 자동 알림 발송 추가
- submitSignature: 첫 번째 서명자 완료 시 다음 서명자에게 자동 이메일 발송
- send: sign_order_type이 parallel이면 모든 서명자에게 동시 발송

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:46:57 +09:00
김보곤
405bc1db3e fix:sign.blade.php 주석 내 Blade 파싱 충돌 수정
주석의 {{ }} 텍스트를 Blade가 PHP 코드로 해석하여 ParseError 발생

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:41:06 +09:00
김보곤
df237140a3 fix:E-Sign 서명 페이지 Blade/JSX 충돌 수정 및 내부 API 전환
- sign.blade.php: style={{}} → STYLES 상수로 Blade {{ }} 파싱 충돌 해결
- sign.blade.php, done.blade.php: 외부 API 호출 → MNG 내부 엔드포인트로 변경
- EsignPublicController: submitSignature, rejectContract, downloadDocument 추가
- routes/web.php: submit, reject, document API 라우트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:38:21 +09:00
김보곤
45e6afb862 feat:E-Sign 서명 인증을 MNG 자체 API로 전환
기존: 브라우저 → 외부 API 서버(api.codebridge-x.com) 호출
변경: 브라우저 → MNG 자체 엔드포인트(/esign/sign/{token}/api/*) 호출

- EsignPublicController에 getContract/sendOtp/verifyOtp API 추가
- auth.blade.php에서 외부 API 호출을 MNG 자체 API로 변경
- EsignOtpMail Mailable + 이메일 템플릿 추가
- CSRF 예외에 esign/sign/*/api/* 추가
- 로컬/서버 환경 모두에서 동작

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:26:28 +09:00
김보곤
9094a82f0a feat:E-Sign 서명 요청/리마인더 메일 발송 구현
- EsignRequestMail Mailable 클래스 추가 (리마인더 구분 지원)
- 이메일 HTML 템플릿 추가 (서명하기 버튼 + 계약 정보)
- send()에서 첫 번째 서명자에게 메일 발송
- remind()에서 다음 서명 대상자에게 리마인더 메일 발송

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:15:53 +09:00
김보곤
837fe42663 feat:E-Sign 리마인더 발송 라우트 및 컨트롤러 추가
detail.blade.php에서 호출하는 remind 엔드포인트가 누락되어 있었음.
POST /esign/contracts/{id}/remind 라우트 추가,
EsignApiController::remind() 메서드 구현 (상태 변경 + 감사 로그).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:10:16 +09:00
김보곤
4ff7bab2bb fix:EsignSignField 생성 시 tenant_id 누락 수정
configureFields()에서 서명 필드 생성 시 tenant_id 추가,
모델 $fillable에도 tenant_id 추가.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:04:56 +09:00
김보곤
376e1bf57e fix:EsignAuditLog 생성 시 tenant_id 누락 수정
모델 $fillable에 tenant_id 추가, 컨트롤러의 감사 로그 생성 3곳
(contract_created, contract_cancelled, sign_request_sent) 모두
tenant_id를 포함하도록 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:56:41 +09:00
김보곤
800ce2efba fix:E-Sign 계약 생성 한글 입력 시 포커스 풀림 수정
Input 컴포넌트가 App 내부에 정의되어 매 리렌더마다
새 컴포넌트로 인식 → DOM 재생성 → IME 조합 끊김 발생.
Input을 App 바깥으로 이동하여 안정적인 컴포넌트 참조 유지.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:45:23 +09:00
김보곤
f7c5bad879 feat:E-Sign 서명 필드 편집기 드래그앤드롭 업그레이드
- interact.js 기반 드래그 이동 + 8방향 리사이즈
- 3패널 레이아웃 (썸네일 | PDF뷰어 | 속성패널)
- PDF 페이지 썸네일 사이드바 + 필드 개수 뱃지
- 줌 컨트롤 (50%~200%, Ctrl+/-)
- Undo/Redo (Ctrl+Z/Shift+Z, 최대 50단계)
- 키보드 단축키 (화살표 미세조정, Delete 삭제, Ctrl+C/V 복붙)
- 스냅-투-그리드 토글 + 그리드 오버레이
- 서명자별 필드 타입 도구상자 (서명/도장/텍스트/날짜/체크박스)
- 선택 필드 속성 패널 (유형/라벨/좌표/필수여부)
- 백엔드 변경 없음, 기존 API 100% 호환

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:39:29 +09:00
김보곤
e6353dad08 feat:사용자 매뉴얼에 법률 안내 섹션 추가 및 용어 사전 보강
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 15:06:43 +09:00
김보곤
6629d3c595 fix:사용자 매뉴얼 OTP 설명 대폭 개선 (초보자 친화적)
- OTP 개념 설명 (택배 보관함 비유)
- 왜 필요한지 쉬운 설명
- 시각적 단계별 가이드 (6자리 입력 UI 포함)
- 주의사항 친절한 안내
- FAQ에 "코드가 안 올 때" 항목 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:45:30 +09:00
1969001338 feat(MNG):문서 양식 편집 개선 및 이미지 업로드 API 연동
- DocumentTemplateApiController: 이미지 업로드 API 파일저장소 연동
- 양식 편집: 미리보기 모달 개선
- 문서 편집: UI 개선
- 빌드 에셋 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:30:16 +09:00
b3891e93b7 feat(MNG):작업일지 양식 시더 3종 생성
- WorkLogTemplateSeeder: 스크린/슬랫/절곡 공정별 작업일지 양식
- 공정별 결재라인, 기본필드(9개), 컬럼 구조 반영
- 판정 없음, 비고만 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:30:16 +09:00
791bb37a1d fix:문서 show/print 기본정보·종합판정·이미지 표시 수정
- 기본정보(bf_) 자동 backfill: show/print/edit 진입 시 bf_ 레코드 없으면 작업지시서 원본에서 resolve 후 저장
- 중간검사 DATA row 수를 section items → workOrderItems 기준으로 변경
- 종합판정: overall_result 없을 때 row_judgment에서 합격/불합격 자동 계산 fallback
- 섹션 이미지: asset() → API 스토리지 URL 변환 (api.sam.kr/storage/tenants/...)
2026-02-12 14:30:16 +09:00
김보곤
5f93edf34b refactor:전자계약 관련 용어를 SAM E-Sign으로 통일
- 전자계약 (E-Sign), 전자계약 대시보드, 전자계약 상세 등 → SAM E-Sign
- 9개 파일, 19곳 수정 (코드 식별자/URL은 유지)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:29:09 +09:00
김보곤
a15d5b3e9b feat:전자계약 문서에 사용자 매뉴얼 탭 추가
갑/을 역할별 단계별 가이드, FAQ 13개, 용어 사전 포함

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:22:45 +09:00
김보곤
e0e6c71701 feat:전자계약 문서 페이지 추가 (8개 탭 기반 기술 문서)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 13:23:56 +09:00
김보곤
f572865b48 fix:사이드바 메뉴 중복 활성화 문제 수정 (v2)
다른 메뉴가 현재 URL에 정확히 매칭될 때 prefix 매칭을
비활성화하여, 형제 메뉴가 동시에 활성화되는 문제 해결.
예: /esign/create 접속 시 /esign 메뉴가 함께 활성화되던 문제.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 12:46:53 +09:00
김보곤
14a3d7a869 fix:사이드바 메뉴 중복 활성화 문제 수정
자식 메뉴가 있는 부모 메뉴의 경우, 하위 경로까지 매칭되어
부모와 자식 메뉴가 동시에 활성화되는 문제를 수정.
자식 메뉴가 있으면 정확한 URL 매칭만 적용.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 12:40:23 +09:00
김보곤
440cd11ece refactor:esign 페이지 및 전역 레이아웃 React CDN 통합
- esign 전자서명 관련 9개 파일 업데이트
- layouts/app.blade.php 업데이트
- fcm.js React 관련 변경사항 반영
2026-02-12 10:35:04 +09:00
김보곤
56d060a37d refactor:React CDN을 공통 partial로 통합
- 새 파일: resources/views/partials/react-cdn.blade.php
- 모든 React 페이지에서 중복된 CDN 스크립트를 @include('partials.react-cdn')로 대체
- 30개 파일 업데이트 (finance, juil, system, sales)
- 유지보수성 향상: CDN 버전 변경 시 한 곳만 수정
2026-02-12 10:34:48 +09:00
김보곤
279a15bf0d refactor:E-Sign 외부 API 호출을 MNG 내부 라우트로 전환
- Finance 패턴과 동일하게 MNG 직접 DB 접근 방식으로 변경
- MNG 모델 4개 추가: EsignContract, EsignSigner, EsignSignField, EsignAuditLog
- EsignApiController 추가: stats, index, show, store, cancel, configureFields, send, download
- 모든 뷰(dashboard, create, detail, fields, send)에서 외부 API URL 제거
- 기존 X-API-Key/Bearer 인증 대신 MNG 세션 인증(CSRF) 사용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 10:24:09 +09:00
김보곤
e6a7252646 fix:E-Sign 라우트를 juil 그룹 밖으로 이동 (/esign URL 매칭)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 10:06:38 +09:00
김보곤
b11d4091b6 chore:Vite 빌드 결과물 추가 (CSS/JS 에셋)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 09:53:07 +09:00