Commit Graph

2346 Commits

Author SHA1 Message Date
김보곤
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
김보곤
bb267d14c1 feat: [payroll] 슈퍼관리자 급여 수정/지급취소 권한 추가
- 지급완료/확정 상태에서도 슈퍼관리자는 급여 수정 가능
- 지급취소(unpay) 기능 추가: paid → draft 상태 되돌리기
- 테이블에 슈퍼관리자 전용 수정/지급취소 버튼 표시
2026-03-11 06:52:45 +09:00
dfe97308f3 deploy: 2026-03-11 배포
- feat: MNG→SAM 자동 로그인 토큰 (LoginToken 모델 도메인 매핑)
- feat: 사용자/역할/부서 관리 개선 (Controller, Service, View)
- feat: 메뉴 관리 개선 (MenuService, menu-tree.js)
- fix: 문서 뷰어, FCM 토큰, 방화셔터 도면, 테넌트 테이블 뷰 수정
2026-03-11 02:12:51 +09:00
김보곤
d068a8e55c fix: [payroll] 전표 공제항목 동일 항목 병합 처리
- 기타공제 이름 정규화 (trim, 공백 통일)
- 동일 description + trading_partner 공제항목 합산 병합
- 중복 라인 제거하여 깔끔한 전표 생성
2026-03-10 16:34:41 +09:00
김보곤
ef1aa7644f fix: [journal] CurrencyInput 컴포넌트 음수 입력 개선
- 포커스 시 쉼표 제거하여 순수 숫자 편집 모드
- 타이핑 중 포맷팅 제거하여 커서 점프 방지
- 블러 시에만 천단위 쉼표 포맷 적용
- minus + 숫자만 허용하는 단순 필터링
2026-03-10 16:28:26 +09:00
김보곤
75a5d2c1b9 fix: [journal] 전표 금액 입력에서 음수(-) 입력 지원
- CurrencyInput 컴포넌트 도입하여 로컬 상태로 중간 입력('-') 보존
- 3개 모달(수동전표, 카드분개, 계좌분개) 6개 금액 입력 필드 모두 교체
- onBlur 시 포맷팅, onChange 시 즉시 파싱으로 실시간 합계 반영
2026-03-10 12:50:28 +09:00
김보곤
bde4be4123 fix: [payroll] 전표 기타공제 항목별 분리 및 음수 금액 처리
- 기타공제를 합산 단일 라인에서 항목별(연말정산소득세, 연말정산지방소득세 등) 분리
- formatInputCurrency/parseInputCurrency 음수 부호 처리 추가
- JournalEntryController validation에서 min:0 제거하여 음수 credit_amount 허용
2026-03-10 12:44:37 +09:00
김보곤
5bf2914e22 fix: [payroll] 음수 공제항목 전표 처리 방식 수정
- 음수 공제(환급)를 차변 별도 라인 대신 대변 마이너스로 처리
- 차변은 총지급액(gross_salary) 단일 라인 고정
- 대변합계 = 양수공제 + 음수공제(마이너스 대변) + 실수령액 = 차변
2026-03-10 12:26:56 +09:00
김보곤
39fa711420 fix: [payroll] 전표 생성 음수 공제(환급) 처리 및 역산 제거
- 음수 공제항목을 차변 207 예수금으로 처리 (환급 = 예수금 감소)
- 역산 방식 제거, DB의 실제 net_salary 사용
- 공제항목 루프 처리로 코드 간결화
2026-03-10 11:43:10 +09:00
김보곤
84614a77b9 fix: [journal] 급여 전표 수정 허용 및 source_type 라벨 개선
- payroll source_type 전표 수정 허용 (기존: manual, bank_transaction만)
- source_type별 정확한 라벨 매핑 (카드사용내역, 홈택스 매출/매입)
- 프론트/백엔드 양쪽 수정
2026-03-10 11:38:04 +09:00
김보곤
1daffbc212 fix: [payroll] 전표 미지급비용을 역산으로 차대 균형 보장
- net_salary를 DB 값 대신 (총지급액 - 공제 합계)로 역산
- DB 데이터 불일치 시에도 전표 차대 균형 보장
2026-03-10 11:33:24 +09:00
김보곤
63271ed18c fix: [payroll] 전표 생성 시 기타공제 누락 수정 및 에러 모달 추가
- 기타공제(deductions JSON) 항목을 대변 207 예수금에 반영
- 차대 불균형 시 상세 분개 내역을 에러 모달로 표시
- toast 대신 복사 가능한 모달로 에러 메시지 표시
2026-03-10 11:30:56 +09:00
5e7b434815 fix: [deploy] dompdf 폰트 캐시 shared 심링크 설정
- storage/fonts를 shared/storage/fonts로 심링크하여 배포 간 폰트 캐시 유지
- rsync exclude에 storage/fonts 추가
- www-data 쓰기 권한 문제 해결 (급여명세서 PDF 생성 오류)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:04:19 +09:00
김보곤
a14c7a5119 fix: [payroll] 급여명세서 이메일 발송 시 개인 이메일 우선 참조
- 개인 이메일이 있으면 개인 이메일로 발송
- 개인 이메일이 없으면 업무용 이메일로 폴백
- 목록의 이메일 모달에서도 동일 로직 적용
2026-03-10 10:58:12 +09:00