Commit Graph

2359 Commits

Author SHA1 Message Date
김보곤
3fc77a95ea feat: [esign] 근로계약서 사원불러오기 최신 연봉정보 반영
- 백엔드: salary_effective_date 추가 반환, 이력 fallback 로직 추가
- 프론트: 연봉계약 시작/종료일을 최신 연봉 적용일 기준으로 계산
- 근로계약은 입사일 기준, 연봉계약은 연봉 적용일 기준으로 분리
2026-03-11 16:59:34 +09:00
김보곤
ad0fa4df36 feat: [esign] 근로계약서 작성 시 사원 연봉 자동 반영
- 사원검색 API에 연봉 금액 포함
- 사원 선택 시 연봉 총금액/월급여 템플릿 변수 자동 채움
2026-03-11 16:47:26 +09:00
김보곤
66547b37b7 feat: [hr] 연봉이력 삭제 버튼 추가
- 이력 테이블에 삭제 컬럼/버튼 추가
- Alpine.js deleteHistory() 메서드 추가 (confirm 확인 후 API 호출)
- reverse 표시 인덱스를 원본 인덱스로 변환하여 API 전달
2026-03-11 16:44:15 +09:00
김보곤
41968781b6 fix: [hr] 연봉 입력 필드 콤마 표시 적용
- type=number → type=text(inputmode=numeric) 변경
- 입력 시 실시간 콤마 포맷 적용
- 저장 시 숫자만 추출하여 전송
2026-03-11 16:40:42 +09:00
김보곤
207997f03d fix: [esign] 근로계약서 연봉계약종료일 자동계산 오류 수정
- 패턴 매칭 순서 변경: 구체적 패턴(종료)을 일반적 패턴(계약) 앞에 배치
- 기존: '계약.*연도'가 '연봉계약종료연도' 라벨을 먼저 매칭하여 입사년도 입력
- 수정: '연봉계약.*종료.*년도'가 먼저 매칭되어 정상적으로 1년 후 계산 적용
- 근로계약/계약 종료일 패턴도 추가
2026-03-11 16:38:18 +09:00
김보곤
3de838c54e fix: [drawing] ① 마감재 수평면 방향 반전 — 벽쪽으로 이동
- 수평면: 백월→개구부(우측) 에서 립→벽(좌측) 방향으로 반전
- 측면탭: 백월 좌측에서 립 끝(우측)으로 이동
- 랩+3단꺾임: 개구부쪽에서 벽쪽으로 이동, 접힘 방향 반전
- ①랩 라벨, ① 원숫자, 개구부 텍스트 위치 업데이트
2026-03-11 16:33:31 +09:00
김보곤
16f2157948 feat: [hr] 사원관리 연봉정보 탭 생성
- 사원 상세/수정 페이지에 연봉정보 입력 섹션 추가
- 특수 권한 사용자만 열람/수정 가능한 접근 제어 적용
- 연봉 변경 시 자동 이력 기록
- 일반 API 응답에서 연봉 데이터 노출 방지 (toArray 오버라이드)
2026-03-11 16:28:25 +09:00
김보곤
5a28c985ce fix: [fire-shutter] ① 마감재를 ② 바깥으로 이동 (감싸는 구조)
- ① 수평면 시작점: bx → bx-t1 (② 백월 바깥, 방화벽쪽 이동)
- overlap 제거: ①과 ② 사이 겹침 없음 (①이 ② 바깥에 위치)
- 측면탭 위치 조정: ② 백월 좌측을 따라 배치
2026-03-11 16:22:06 +09:00
김보곤
4bb03fffcb feat: [esign] 근로계약서 사원 불러오기 시 주소, 생년월일, 계약일 자동 반영
- 주민등록번호에서 출생년도/월/일 분리 (세기 자동 판별)
- 입사일 기반 계약일, 근로계약시작일, 연봉계약시작일 자동 반영
- 연봉계약종료일은 입사일 + 1년으로 계산
- 사원 주소, 계약자 이름 자동 매핑 추가
2026-03-11 16:19:06 +09:00
김보곤
3e8b730242 fix: [fire-shutter] ④ D형 개구부 방향 좌측으로 변경 (③과 마주보는 형태)
- ③ C형: 우측(②쪽) 열림 (기존 유지)
- ④ D형: 좌측(벽쪽) 열림 (기존 우측→좌측 반전)
- 참조 도면 KSS01 기준: ③④ 열린면이 서로 마주봄
2026-03-11 16:11:34 +09:00
김보곤
4bf85dc8a7 fix: [fire-shutter] 가이드레일 원숫자 위치를 참조 도면 기준으로 수정
- ① 마감재: 도면 상단→우측 랩/플랜지 영역(상하 2개, 참조 도면 동일)
- ③ C형: 위쪽 치우침→몸체(45mm) 수직 중심
- ④ D형: 아래쪽 치우침→몸체(40mm) 수직 중심
2026-03-11 16:04:38 +09:00
김보곤
bde1613b7d fix: [fire-shutter] 가이드레일 부재 번호를 KSS01 참조 도면 기준으로 변경
- ①마감재 ②가이드레일 ③C형 ④D형 (기존 ①본체 ③벽C ④벽D ⑤마감재)
- hasTrim 조건 분기 제거 (KSS01에 마감재 있음)
- 모든 치수선 라벨, 범례 텍스트, SVG 주석 번호 통일
2026-03-11 15:53:30 +09:00
김보곤
527623896b fix: [barobill] 은행거래 동기화 시 중복 키 에러 수정
- summary 포함 WHERE와 DB unique index 불일치로 발생하는 duplicate entry 에러
- insert를 insertOrIgnore로 변경하여 중복 시 무시
2026-03-11 15:48:54 +09:00
김보곤
a120cfacf4 fix: [journal] 거래처 드롭다운 클릭 시 즉시 닫히는 버그 수정
- onFocus에서 열린 경우 onClick 토글을 건너뛰도록 justFocusedRef 플래그 추가
- 다른 요소에서 포커스 이동 후 클릭 시 정상 동작
2026-03-11 15:33:14 +09:00
김보곤
76a8970d33 fix: [fire-shutter] KSS01 모델에서 마감재(⑤) 조건부 렌더링
- KSS01은 마감재(⑤) 없음 → hasTrim 조건으로 분기
- ⑤ SVG, 치수선 라벨, 범례 텍스트 조건부 처리
- 모델 변경 시 가이드레일 재렌더링 추가
2026-03-11 15:33:08 +09:00
김보곤
4783e4b7a2 fix: [journal] 전표 적요 수정 시 자금일보에 반영되도록 동기화
- 은행거래 출처 전표의 적요 수정 시 BankTransactionOverride에 저장
- 기존 modified_cast 오버라이드 값 보존
2026-03-11 15:28:15 +09:00
김보곤
ed5493ca3a fix: [fire-shutter] 가이드레일 평면도 원숫자 크기 3배 확대 2026-03-11 15:27:28 +09:00
김보곤
124490355f fix: [esign] 체크박스 필드를 단순화 - 변수 연결 대신 위치에 체크 표시 렌더링
- 체크박스는 변수 연결 불필요, 배치한 위치에 무조건 ☑ 표시
- PDF 오버레이에서 체크박스 필드는 ☑ 아이콘으로 표시
- 커스텀 변수에서 체크박스 타입 옵션 제거 (불필요)
2026-03-11 15:16:52 +09:00
김보곤
678d0614e7 feat: [esign] 템플릿 체크박스 필드에 변수 연결 기능 추가
- 체크박스 필드 속성에서 변수 연결 UI 노출
- 커스텀 변수 생성 시 텍스트/체크박스 타입 선택 지원
- 체크박스 변수는 체크박스 필드에만, 텍스트 변수는 텍스트/날짜 필드에만 표시
2026-03-11 15:03:44 +09:00
김보곤
380139e641 feat: [esign] 사원 불러오기 기능 추가 및 랜덤 데이터 품질 개선
- 근로계약서 시 '사원 불러오기' 버튼으로 직원 검색/선택 기능
- fillRandomVariables 스마트 기본값 생성 (테스트_ 접두사 제거)
- searchEmployees API 엔드포인트 추가
2026-03-11 14:28:03 +09:00
김보곤
611cf94ef1 feat: [esign] 근로계약서 번개 아이콘 클릭 시 랜덤 테스트 데이터 자동 입력
- 직원주소, 직종구분, 업무내용, 업무기간, 출생년도, 급여, 계약자이름 등 매핑
- 라벨 부분 매칭(정규식)으로 유연하게 처리
- 매칭 안 되는 변수는 '테스트_라벨명'으로 기본값 입력
- 기존 영업파트너/고객 계약서 매핑 유지
2026-03-11 14:18:19 +09:00
김보곤
72e810cd5f fix: [finance] 적요 컬럼 텍스트 잘림 해제
- max-w-[220px] + truncate 제거로 긴 적요 전체 표시
- 은행거래 탭의 적요 컬럼도 동일 적용
2026-03-11 14:14:50 +09:00
김보곤
276f015138 fix: [esign] PDF 한글 폰트 깨짐 수정 — K_PATH_FONTS 의존 제거
- K_PATH_FONTS 상수가 TCPDF vendor 경로로 선점되면 pretendard 폰트를 못 찾는 문제
- AddFont()으로 storage/fonts/tcpdf/ 경로를 직접 지정하여 확실하게 로드
- 폴백: resources/fonts/Pretendard-Regular.ttf → helvetica
2026-03-11 14:06:28 +09:00
1b284f990d fix: [hr] 급여명세서 한글 폰트 — storage_path 기반으로 변경하여 배포 간 안정성 확보
- chroot에 storage_path('fonts') 추가 (symlink→shared 경로 허용)
- 폰트를 resources→storage로 복사 후 storage 경로로 등록 (릴리스 불변)
- 배포마다 .ufm 메트릭 재생성 방지

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:48:22 +09:00
김보곤
06017cd0f9 fix: [fire-shutter] ⑤ 위치를 ①백월 기준으로 복원, 벽쪽 'ㄱ' 측면탭 복원
- trimL5를 bx(①백월)로 변경하여 ①이 ⑤ 범위 안에 완전히 포함되도록
- 벽쪽 측면탭(11mm) SVG 복원 → ①백월을 따라 'ㄱ' 형상 표현
- 코킹립(10mm)은 Z방향 절곡으로 평면도에서 생략 유지
2026-03-11 13:41:35 +09:00
fee127916f fix: [hr] DomPDF setOptions 제거 — chroot 덮어쓰기로 인한 폰트 등록 실패 수정
- setOptions()가 config의 chroot(base_path)를 new Options()로 전체 교체 → vendor 기본값으로 리셋
- resource_path 폰트 경로가 chroot 밖으로 판정되어 registerFont() false 반환
- setOptions 제거 → config/dompdf.php 설정(font_dir, font_cache, chroot) 그대로 사용
- storage 수동 복사도 제거 → DomPDF가 내부적으로 font_dir에 복사 + .ufm 생성

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:37:37 +09:00
김보곤
5b2bafffa3 fix: [finance] 전표 수정 후 리스트에 수정된 적요가 반영되지 않는 문제 수정
- 은행/카드거래 행에서 원본 거래 적요 대신 전표 적요를 우선 표시
- 분개가 존재하면 journal_entries.description을 사용
2026-03-11 13:24:23 +09:00
c179c46b8c fix: [hr] DomPDF 인스턴스 불일치 해결 — 급여명세서 한글 폰트 깨짐 수정
- 기존: app()으로 별도 DomPDF 인스턴스에 폰트 등록 → Pdf::loadView()의 인스턴스에는 미적용
- 수정: $pdf->getDomPDF()로 동일 인스턴스에 폰트 등록 후 output() 호출
- Pretendard 폰트 사용, resources/fonts/에서 storage/fonts/로 복사 후 등록

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:23:38 +09:00
김보곤
80aefc1b83 fix: [finance] 거래처 필드 Tab키 자동 검색 열기
- TradingPartnerSelect에 onFocus 핸들러 추가
- Tab으로 포커스 시 드롭다운이 자동 열려 바로 검색 가능
- 선택 후 재포커스 시 중복 열림 방지 (skipAutoOpenRef)
2026-03-11 13:08:24 +09:00
김보곤
78a52f2110 feat: [esign] 계약 수정 화면에 서명 필드 값 편집 기능 추가
- 수정 화면에서 text/date/checkbox 필드 값 인라인 편집
- 필드별 서명자 구분(작성자/상대방), 페이지 번호 표시
- update API에서 필드 값 일괄 업데이트 처리
2026-03-11 13:06:04 +09:00
김보곤
2ef2de7463 feat: [esign] 전자계약 수정 기능 추가
- draft 상태 계약의 제목, 설명, 서명자 정보, 파일 수정 가능
- 계약 상세 페이지에 '계약 정보 수정' 버튼 추가
- create.blade.php를 생성/수정 겸용으로 확장
2026-03-11 11:56:17 +09:00
김보곤
29e8dea54a fix: [payroll] PDF 한글 폰트 NanumGothic → Pretendard 전환
- 운영서버 NanumGothic 메트릭 생성 실패 문제 해결
- Pretendard Regular/Bold TTF를 resources/fonts/에 번들링
- ensureKoreanFont()에서 Pretendard 등록으로 변경
- payslip.blade.php font-family를 Pretendard로 변경
- PDF 크기: 18KB (서브셋팅 적용)
2026-03-11 11:49:57 +09:00
김보곤
1a58fd87d0 feat: [esign] 계약 제목에 '근로계약서' 옵션 추가 2026-03-11 11:46:46 +09:00
김보곤
907f8ff958 fix: [fire-shutter] ⑤마감재 방화벽 밀착 및 코킹립/탭 평면도 제거
- trimL5를 wallRight(방화벽 면)로 변경하여 ⑤가 벽에 맞닿도록 수정
- Z방향 절곡인 코킹립(10mm)·측면탭(11mm) SVG 요소 제거 (평면도에서 불가시)
2026-03-11 11:27:14 +09:00
김보곤
18d9f38a05 fix: [fire-shutter] ③ 브라켓 몸체를 방화벽에 직접 맞닿도록 벽-③ 간 갭(10px) 제거 2026-03-11 11:20:38 +09:00
김보곤
6762b75b97 fix: [payslip] PDF 생성 시 font_dir 명시적 지정 (config 캐시 무관)
- setOptions()로 font_dir, font_cache, enable_font_subsetting 직접 전달
- ensureKoreanFont()에서도 DomPDF 옵션을 명시적으로 설정
- 캐시 유효성 검증 강화: TTF + .ufm 메트릭 파일 모두 확인
- config 캐시 상태와 무관하게 storage/fonts/ 사용 보장
2026-03-11 11:18:40 +09:00
김보곤
e5b00832e2 fix: [payslip] ensureKoreanFont 캐시 유효성 검증 추가
- installed-fonts.json에 키만 있고 실제 폰트 파일이 없으면 재등록
- 배포 후 수동 캐시 초기화 불필요
2026-03-11 11:10:37 +09:00
김보곤
84b86a08a0 fix: [payslip] 폰트를 프로젝트에 포함하여 서버 의존성 제거
- resources/fonts/에 NanumGothic TTF 포함 (Git으로 배포)
- ensureKoreanFont()가 시스템 경로 대신 resource_path() 사용
- fonts-nanum 패키지 미설치 서버에서도 한글 PDF 정상 생성
2026-03-11 11:01:19 +09:00
김보곤
e54feb56b6 fix: [pdf] DomPDF 폰트 서브셋팅 활성화로 PDF 용량 경량화
- enable_font_subsetting: true (폰트 전체 임베딩 → 사용 글자만 포함)
- enable_javascript: false (PDF 내 JS 불필요)
- 기존 5MB → 수백KB 수준으로 축소 예상
2026-03-11 10:40:35 +09:00
김보곤
8e31724f97 fix: [fire-shutter] ① 본체 개구부측 'ㄱ' 형태 수정 — 립(10mm)이 바깥Y에서 먼저 우측 연장 후 플랜지(26mm) 아래로 절곡 2026-03-11 10:36:07 +09:00
김보곤
0cd5ef94d1 fix: [payslip] PDF 급여명세서 font-weight 800 → bold 수정
- DomPDF에 NanumGothic bold(700)까지만 등록되어 weight 800 한글이 깨짐
- h1, .net-row의 font-weight: 800 → bold로 변경
2026-03-11 10:35:40 +09:00
김보곤
65c93dd8d0 fix: [fire-shutter] ① 본체 개구부측 절곡을 'ㄱ' 형태로 수정 (플랜지→립 순서) 2026-03-11 10:23:34 +09:00
김보곤
1f00e4ba6f fix: [fire-shutter] ⑤ 마감재 수평면 시작위치를 ① 백월(bx)로 수정하여 ①이 ⑤ 안쪽에 위치하도록 변경 2026-03-11 10:15:55 +09:00
김보곤
8b6c47066c fix: [hometax] 분개 기본 계정과목 코드 수정
- 매입: 135(미존재)→117(부가세대급금), 251(장기차입금)→201(외상매입금)
- 매출: 255(장기미지급금)→208(부가세예수금)
- 매입 501 account_name '상품매입'→'상품매출원가' (DB 일치)
- DB: 비표준 5자리/1-2자리 중복 코드 2386개 비활성화 (163개→163개 유지)
- DB: 기존 분개 코드 135→117 4건 수정
2026-03-11 10:08:24 +09:00
김보곤
455f9e0501 fix: [fire-shutter] ① 본체 EGI 립/플랜지 절곡 방향 수정 (KSS01) 2026-03-11 10:02:15 +09:00
김보곤
5024be5596 fix: [daily-fund] 일일자금일보 바로빌 데이터 자동 동기화 추가
- periodReport에서 데이터 조회 전 바로빌 API 자동 동기화 트리거
- BarobillBankSyncService 서비스 클래스 생성 (EaccountController 로직 분리)
- 현재 월 캐시 10분 만료, 과거 월 영구 캐시 정책 동일 적용
- 동기화 실패 시 기존 DB 캐시로 폴백 (서비스 중단 방지)
2026-03-11 09:56:23 +09:00
김보곤
88b70f02d4 fix: [hr] 급여명세서 PDF 한글 폰트 깨짐 수정
- NanumGothic 폰트 자동 등록 로직 추가 (ensureKoreanFont)
- storage/fonts/에 폰트 복사 후 DomPDF에 등록 (최초 1회)
- payslip.blade.php font-family를 NanumGothic으로 변경
- 서버 배포 시 수동 폰트 등록 불필요
2026-03-11 09:50:24 +09:00
김보곤
ec35b2f456 fix: [hr] 급여명세서 PDF 구글 폰트 외부 로드 제거
- payslip.blade.php: @import 구글 폰트 URL 삭제, 시스템 기본 폰트 사용
- PayrollService.php: isRemoteEnabled 옵션 제거
- 운영서버 배포 시 폰트 캐시 권한 오류 근본 해결
2026-03-11 09:41:56 +09:00
김보곤
a1b35060bb fix: [rd] 클코→슬랙 변환기 2패널로 단순화
- 슬랙 전송용 텍스트 패널 제거
- 미리보기 리치텍스트 복사로 변경 (서식 보존)
- Selection API로 복사하여 슬랙 붙여넣기 시 형태 유지
2026-03-11 09:31:57 +09:00
김보곤
878cec7935 feat: [rd] 클코 → 슬랙 변환기 추가
- Claude Code CLI 출력을 슬랙 mrkdwn 형식으로 자동 변환
- 마크다운 → 슬랙 문법 변환 (볼드, 코드블록, 링크 등)
- 슬랙 스타일 실시간 미리보기
- 클립보드 복사/붙여넣기 지원
2026-03-11 09:20:54 +09:00