Commit Graph

104 Commits

Author SHA1 Message Date
김보곤
bc72fadf2e fix: [esign] 근로계약서 연봉계약종료연도 및 연봉 상세내역 자동반영
- 연봉계약 기간: salary_effective_date 없을 때 입사일 기념일 기준
  현재 계약기간 산출 (직전 기념일~다음 기념일-1일)
- API 응답에 기본급, 고정연장근로수당, 식대, 월급여, 통상시급 추가
- labelMap에 기본급, 고정연장근로수당, 식대, 통상시급 패턴 추가
2026-03-13 17:59:42 +09:00
김보곤
6bafafc5b1 fix: [esign] 사원 변경 시 이전 직원 데이터가 잔존하는 버그 수정
- labelMap 매칭 시 value가 빈 문자열이면 패턴을 건너뛰어 이전 값이 유지되던 문제
- 패턴 매칭되면 빈 값이라도 덮어써서 이전 직원 데이터가 남지 않도록 수정
- 영향: 연봉계약종료연도 등 직원별 데이터가 정확히 반영됨
2026-03-13 17:41:30 +09:00
김보곤
2102f4a398 feat: [pmis] PMIS 자료실/안전관리/품질관리 기능 추가 및 개선
- 자료실 하위 3개 메뉴: 자료보관함, 매뉴얼, 공지사항
- 자료보관함: 폴더 트리 + 파일 업로드/다운로드/삭제
- 매뉴얼/공지사항: 게시판형 CRUD + 첨부파일
- 안전관리: 안전보건교육, TBM현황, 위험성평가, 재해예방조치
- 품질관리: 시정조치 UI 페이지
- 대시보드: 슈퍼관리자 전용 레거시 사이트 참고 카드
- 작업일보/출면일보 오류 수정 및 기능 개선
- 설비 사진 업로드, 근로계약서 종료일 수정
2026-03-12 21:11:21 +09:00
김보곤
658ad1add3 feat: [esign] 근로계약서 사원불러오기 최신 연봉정보 반영
- 백엔드: salary_effective_date 추가 반환, 이력 fallback 로직 추가
- 프론트: 연봉계약 시작/종료일을 최신 연봉 적용일 기준으로 계산
- 근로계약은 입사일 기준, 연봉계약은 연봉 적용일 기준으로 분리
2026-03-11 16:59:05 +09:00
김보곤
d729e2c586 feat: [esign] 근로계약서 작성 시 사원 연봉 자동 반영
- 사원검색 API에 연봉 금액 포함
- 사원 선택 시 연봉 총금액/월급여 템플릿 변수 자동 채움
2026-03-11 16:46:56 +09:00
김보곤
060ee12455 fix: [esign] 근로계약서 연봉계약종료일 자동계산 오류 수정
- 패턴 매칭 순서 변경: 구체적 패턴(종료)을 일반적 패턴(계약) 앞에 배치
- 기존: '계약.*연도'가 '연봉계약종료연도' 라벨을 먼저 매칭하여 입사년도 입력
- 수정: '연봉계약.*종료.*년도'가 먼저 매칭되어 정상적으로 1년 후 계산 적용
- 근로계약/계약 종료일 패턴도 추가
2026-03-11 16:37:59 +09:00
김보곤
58991e352e feat: [esign] 근로계약서 사원 불러오기 시 주소, 생년월일, 계약일 자동 반영
- 주민등록번호에서 출생년도/월/일 분리 (세기 자동 판별)
- 입사일 기반 계약일, 근로계약시작일, 연봉계약시작일 자동 반영
- 연봉계약종료일은 입사일 + 1년으로 계산
- 사원 주소, 계약자 이름 자동 매핑 추가
2026-03-11 16:18:37 +09:00
김보곤
4f0331729c fix: [esign] 체크박스 필드를 단순화 - 변수 연결 대신 위치에 체크 표시 렌더링
- 체크박스는 변수 연결 불필요, 배치한 위치에 무조건 ☑ 표시
- PDF 오버레이에서 체크박스 필드는 ☑ 아이콘으로 표시
- 커스텀 변수에서 체크박스 타입 옵션 제거 (불필요)
2026-03-11 15:16:28 +09:00
김보곤
f11b1238ef feat: [esign] 템플릿 체크박스 필드에 변수 연결 기능 추가
- 체크박스 필드 속성에서 변수 연결 UI 노출
- 커스텀 변수 생성 시 텍스트/체크박스 타입 선택 지원
- 체크박스 변수는 체크박스 필드에만, 텍스트 변수는 텍스트/날짜 필드에만 표시
2026-03-11 15:03:19 +09:00
김보곤
bb3ffc6085 feat: [esign] 사원 불러오기 기능 추가 및 랜덤 데이터 품질 개선
- 근로계약서 시 '사원 불러오기' 버튼으로 직원 검색/선택 기능
- fillRandomVariables 스마트 기본값 생성 (테스트_ 접두사 제거)
- searchEmployees API 엔드포인트 추가
2026-03-11 14:27:32 +09:00
김보곤
b007fdbcb0 feat: [esign] 근로계약서 번개 아이콘 클릭 시 랜덤 테스트 데이터 자동 입력
- 직원주소, 직종구분, 업무내용, 업무기간, 출생년도, 급여, 계약자이름 등 매핑
- 라벨 부분 매칭(정규식)으로 유연하게 처리
- 매칭 안 되는 변수는 '테스트_라벨명'으로 기본값 입력
- 기존 영업파트너/고객 계약서 매핑 유지
2026-03-11 14:17:50 +09:00
김보곤
ea4e16bbd0 feat: [esign] 계약 수정 화면에 서명 필드 값 편집 기능 추가
- 수정 화면에서 text/date/checkbox 필드 값 인라인 편집
- 필드별 서명자 구분(작성자/상대방), 페이지 번호 표시
- update API에서 필드 값 일괄 업데이트 처리
2026-03-11 13:05:36 +09:00
김보곤
edc69040ab feat: [esign] 전자계약 수정 기능 추가
- draft 상태 계약의 제목, 설명, 서명자 정보, 파일 수정 가능
- 계약 상세 페이지에 '계약 정보 수정' 버튼 추가
- create.blade.php를 생성/수정 겸용으로 확장
2026-03-11 11:55:46 +09:00
김보곤
8b8c544628 feat: [esign] 계약 제목에 '근로계약서' 옵션 추가 2026-03-11 11:46:11 +09:00
김보곤
3603a06c62 feat: [esign] 완료 알림톡 템플릿 2종 선택 및 버튼 URL 도메인 치환
- 발송 UI에 서명 요청 + 완료 알림톡 템플릿 각각 선택 가능
- 선택한 완료 템플릿명을 DB에 저장하여 서명 완료 시 사용
- 버튼 URL 도메인을 현재 환경의 app.url로 자동 치환 (개발/운영 환경 대응)
2026-02-27 16:29:03 +09:00
김보곤
524aaab115 feat: [esign] OTP 인증코드 SMS 발송 기능 추가
- send_method가 alimtalk/both일 때 SMS로 OTP 발송
- 바로빌 sendATKakaotalkEx SMS 대체발송 기능 활용
- SMS 실패 시 이메일 폴백
- auth.blade.php UI 메시지 SMS/이메일 분기 표시
2026-02-26 09:06:36 +09:00
김보곤
2f6e796e3f feat: [esign] 알림톡 템플릿 선택 기능 추가
- 바로빌 승인된 알림톡 템플릿 목록 조회 API 추가
- 서명 요청 발송 시 템플릿 선택 드롭다운 UI 추가
- 템플릿 미리보기 (본문 + 버튼) 표시
- send()에 template_name 파라미터 전달 지원
- 미선택 시 기존 하드코딩 폴백 유지
2026-02-25 22:42:29 +09:00
김보곤
8b25140a81 fix: [esign] 서명 방법 기본값을 도장으로 변경
- signMode 기본값 signature → stamp 변경
- creator(본사)에서도 서명/도장 선택 UI 표시
2026-02-25 13:47:41 +09:00
김보곤
44e5c9c42e feat: [esign] 계약 변수에 상대방 이름/전화번호 자동 입력 및 랜덤 데이터 버튼 추가 2026-02-24 17:51:48 +09:00
김보곤
514e23930e fix: [esign] 도장 이미지 용량 최적화 (500px 리사이즈)
- 원본 해상도 PNG 변환 시 용량 폭발 문제 해결
- 최대 500px로 리사이즈 후 배경 제거 적용
- @verbatim 추가로 PHP 8.4 named parameter 에러 수정
2026-02-23 23:49:16 +09:00
김보곤
0dd009a02c fix: [esign] 서명 페이지 PHP 8.4 named parameter 에러 수정
- style={{height:...}} 구문이 Blade에 의해 PHP로 해석되는 문제
- script 블록에 @verbatim 추가하여 Blade 해석 방지
2026-02-23 23:44:52 +09:00
김보곤
7ab2460687 chore: [esign] 새 계약 생성 상대방 기본값 설정 (김보곤) 2026-02-23 23:37:16 +09:00
김보곤
2481fce74d fix: [lucide] 버전을 0.469.0으로 추가 다운그레이드 2026-02-23 16:11:47 +09:00
김보곤
decbf4c127 fix: [lucide] 버전을 0.474.0으로 고정하여 SVG viewBox 속성 에러 해결
- lucide@latest(0.575.0)에서 createElement SVG 속성에 따옴표 포함되는 버그 발생
- 28개 Blade 파일 일괄 변경
2026-02-23 16:08:04 +09:00
김보곤
a3d63a8a59 feat: [esign] 고객 도장 업로드 시 배경 자동 제거 기능 추가
- Canvas API로 흰색/밝은 배경 픽셀을 투명 처리
- 경계 부분 부드러운 페이드 처리 (anti-aliasing)
- 미리보기에 체크무늬 배경으로 투명 영역 시각화
- "배경이 자동 제거되었습니다" 안내 메시지 표시
2026-02-23 15:46:32 +09:00
김보곤
a7aef552c3 feat: [esign] 고객(counterpart) 도장 업로드/선택 기능 추가
- 백엔드: submitSignature에 stamp_image(base64) 파라미터 처리 추가
- 프론트: counterpart 역할에 도장 선택 UI 항상 표시
- 프론트: 도장 이미지 업로드(PNG/JPG, 5MB 제한) 및 미리보기 기능
- 기존 Creator 법인도장 흐름은 변경 없음
2026-02-23 14:48:30 +09:00
김보곤
d8528ed54d fix: [esign] 그룹 드래그 후 선택 해제되는 문제 수정
- 드래그 완료 후 click 이벤트에서 선택 변경 무시
- 여백 클릭 시에만 그룹 선택 해제
2026-02-23 14:08:15 +09:00
김보곤
0d98fabf8d feat: [esign] Shift+클릭으로 필드 다중 선택/해제 토글 기능 추가 2026-02-23 14:05:05 +09:00
김보곤
01997806d6 feat: [esign] 올가미 선택 필드 그룹 드래그 이동 기능 추가
- 다중 선택된 필드 드래그 시 전체 그룹이 동시에 이동
- FieldOverlay에 selectedIndices/onGroupMove props 전달
- 단일 선택 시 기존 동작 유지
2026-02-23 14:03:00 +09:00
김보곤
eff567c2fd fix: [esign] 올가미 다중 선택 후 즉시 해제되는 버그 수정
- 올가미 mouseup 후 click 이벤트가 상위 div로 버블링되어 clearSelection() 호출되는 문제
- 컨테이너 div에 onClick stopPropagation 추가하여 이벤트 전파 차단
- lassoUsedRef 플래그로 올가미 직후 click 이벤트 무시
2026-02-23 13:45:29 +09:00
김보곤
4b4db55418 feat: [esign] 템플릿 필드 편집기 다중 선택/잘라내기/붙여넣기 + 폰트 수정
- 올가미(Lasso) 드래그로 여러 필드 다중 선택 기능 추가
- Ctrl+클릭으로 개별 필드 토글 선택 지원
- Ctrl+X 잘라내기, Ctrl+C 복사, Ctrl+V 붙여넣기 (다중 필드)
- 다른 페이지로 붙여넣기 시 현재 페이지에 배치
- Delete/방향키 다중 필드 일괄 삭제/이동 지원
- PDF.js CMap 설정 추가로 Pretendard 등 한글 폰트 렌더링 개선
2026-02-23 13:24:44 +09:00
김보곤
7849c63507 fix:발송 방식 선택 UI 개선 - 이메일/알림톡 선택 가능, 이메일 기본값, 리마인더 발송 방식 모달 추가 2026-02-19 23:55:28 +09:00
김보곤
3724bc4475 fix:알림톡 미설정 시 에러 방지 - 기본 발송을 이메일로 변경, 알림톡 실패 시 이메일 자동 폴백 2026-02-19 23:50:37 +09:00
김보곤
6cf440f349 fix:고객 검색을 TenantProspect(명함 등록 고객)에서 조회하도록 수정
- Tenant 대신 TenantProspect(tenant_prospects 테이블) 사용
- 업체명/사업자번호/대표자명/연락처로 검색
- 필드명 매칭: business_number, contact_phone, contact_email

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:44:17 +09:00
김보곤
d7bde8952a fix:고객 서비스이용 계약서 기본값 - 라벨 기반 매칭으로 수정
- 하드코딩 키 대신 템플릿 변수의 라벨(계약번호/총개발비/월구독료)로 매칭
- 빈 문자열 기본값도 덮어쓰도록 trim() 체크 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:25:41 +09:00
김보곤
bcc95ffafa feat:고객 서비스이용 계약서 - 고객 불러오기/계약번호 자동채번/기본값
- 테넌트(고객) 검색 API 추가 (searchTenants)
- 계약번호 자동 채번 API 추가 (CONTRACT-YYYYMMDD-N 형식)
- 고객 서비스이용 계약서 선택 시 "고객 불러오기" 버튼 표시
- 고객 선택 시 상호/사업자등록번호/주소/전화번호 자동 채움
- 총개발비 기본값 20,000,000 / 월구독료 기본값 500,000 자동 세팅
- TenantSearchModal 컴포넌트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 23:23:06 +09:00
김보곤
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
김보곤
eafd81d97a feat:파트너 검색에 포지션(역할) 필드 추가
- searchPartners 역할 필터를 sales만 → sales/manager 모두 포함하도록 확장
- 사용자 역할(영업파트너/상담매니저)을 position 필드로 API 응답에 추가
- handlePartnerSelect에 position 매핑 추가 (key: position, label: 포지션/직책/역할)
- PartnerSearchModal 검색 결과에 position 배지 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 18:07:16 +09:00
김보곤
823916aa1d feat:새 계약 생성 비밀유지서약서 테스트 데이터 번개 버튼 추가
- 기존 번개(노란색): 영업파트너 계약서 테스트 데이터
- 새 번개(보라색): 비밀유지서약서 테스트 데이터
- 개발 편의를 위한 관리자 전용 퀵필 버튼

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:46:45 +09:00
김보곤
66abdc31e5 feat:템플릿 카드에서 PDF/Word 파일 직접 교체/추가 기능
- 템플릿 카드의 PDF 표시 영역에 '교체' 버튼 추가
- PDF 미연결 템플릿에 'PDF/Word 파일 추가' 버튼 표시
- 카드에서 직접 파일 선택 → 업로드 → 즉시 반영
- PDF/DOC/DOCX 지원 (서버에서 자동 PDF 변환)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:31:36 +09:00
김보곤
a7aa2e2cd2 fix:E-Sign 알림톡 certKey 버그 수정 및 발송 상태 추적 기능 추가
- 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>
2026-02-14 17:01:14 +09:00
김보곤
bea7bd5987 feat:전자계약 알림톡 발송 방식 선택 기능 추가
- 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>
2026-02-14 16:12:41 +09:00
김보곤
36627b976d fix:전자서명 done 페이지 계약/서명자 정보 표시 수정
getContract API가 항상 데이터를 반환하되 is_signable 플래그로
서명 가능 여부를 전달하도록 변경. done 페이지에서 signed/completed
상태의 계약도 정상적으로 정보를 표시할 수 있도록 수정.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 13:18:17 +09:00
김보곤
992f28ba33 fix:전자서명 서명/확인 단계 버튼 위치 수정 (서명란 바로 아래로)
- flex-1 제거하여 카드가 화면 전체를 채우지 않도록 변경
- 이전/서명확인 버튼이 서명 입력란 바로 아래에 위치

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 12:49:17 +09:00
김보곤
72ce6980a7 fix:영업파트너 모달 높이 고정+스크롤 적용, salesPartner 레코드 보유자만 검색
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:55:05 +09:00
김보곤
92c78b353e feat:E-Sign 계약 생성 영업파트너 검색 모달 추가
- 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>
2026-02-14 10:48:31 +09:00
김보곤
28a9a73326 fix:계약 자동채움 영업파트너 계약서로 고정
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:19:13 +09:00
김보곤
00f290440e feat:계약 생성 만료일 기본값 7일 후 설정 및 안내 문구 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 10:13:41 +09:00
김보곤
2ed6508fee fix:계약 생성 상대방 전화번호 고정값으로 변경
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 09:45:59 +09:00