김보곤
c24d5cc672
fix: [payroll] 전표 생성 음수 공제(환급) 처리 및 역산 제거
...
- 음수 공제항목을 차변 207 예수금으로 처리 (환급 = 예수금 감소)
- 역산 방식 제거, DB의 실제 net_salary 사용
- 공제항목 루프 처리로 코드 간결화
2026-03-10 11:42:38 +09:00
김보곤
129b383ed5
fix: [journal] 급여 전표 수정 허용 및 source_type 라벨 개선
...
- payroll source_type 전표 수정 허용 (기존: manual, bank_transaction만)
- source_type별 정확한 라벨 매핑 (카드사용내역, 홈택스 매출/매입)
- 프론트/백엔드 양쪽 수정
2026-03-10 11:37:45 +09:00
김보곤
764ae09615
fix: [payroll] 전표 미지급비용을 역산으로 차대 균형 보장
...
- net_salary를 DB 값 대신 (총지급액 - 공제 합계)로 역산
- DB 데이터 불일치 시에도 전표 차대 균형 보장
2026-03-10 11:33:02 +09:00
김보곤
c53b3d8bc3
fix: [payroll] 전표 생성 시 기타공제 누락 수정 및 에러 모달 추가
...
- 기타공제(deductions JSON) 항목을 대변 207 예수금에 반영
- 차대 불균형 시 상세 분개 내역을 에러 모달로 표시
- toast 대신 복사 가능한 모달로 에러 메시지 표시
2026-03-10 11:30:27 +09:00
3ed5f53b93
fix: [documents] 제품검사 요청서 MNG 상세 페이지 렌더링 오류 수정
...
- basicFields: raw field_key(manager, site_name 등) fallback 추가
- 폼형 섹션(건축공사장/시공자/감리자 정보): 키-값 형태로 렌더링
- 독립 테이블 데이터(검사대상 목록): 별도 테이블로 렌더링
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 11:05:02 +09:00
9ead940acd
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:05:02 +09:00
김보곤
550fba5cb2
fix: [payroll] 급여명세서 이메일 발송 시 개인 이메일 우선 참조
...
- 개인 이메일이 있으면 개인 이메일로 발송
- 개인 이메일이 없으면 업무용 이메일로 폴백
- 목록의 이메일 모달에서도 동일 로직 적용
2026-03-10 10:57:46 +09:00
김보곤
1dc3ae8df4
feat: [employee] 사원 상세페이지에 개인 이메일 항목 추가
...
- 이메일 → 업무용 이메일로 라벨 변경
- 개인 이메일 항목 추가
2026-03-10 10:38:07 +09:00
김보곤
50275b0500
feat: [employee] 사원관리 개인 이메일 필드 추가
...
- 사원 수정 폼에 개인 이메일 입력 필드 추가
- 레이아웃 2x2 배열로 변경 (업무용 이메일|개인 이메일 / 주민등록번호|연락처)
- Employee 모델에 personalEmail accessor 추가
- 컨트롤러 validation, 서비스 jsonExtraKeys에 personal_email 반영
2026-03-10 10:04:24 +09:00
김보곤
26d081d04e
fix: [journal] 전표 거래처 검색 limit(50) 제거 — 전체 활성 거래처 로드
2026-03-10 09:53:48 +09:00
김보곤
16b9b6cce2
fix: [payroll] 이메일 발송 버튼을 확정 상태에서만 표시
2026-03-10 09:42:58 +09:00
김보곤
8df2cf0a4d
fix: [payroll] PDF 급여명세서 레이아웃 수정
...
- 사원정보 테이블 colgroup으로 너비 고정 (오버플로우 해결)
- footer를 table 기반으로 변경 (dompdf float 미지원)
- 회사명 문자 인코딩 수정
2026-03-10 09:24:00 +09:00
김보곤
13ee95270e
feat: [payroll] 급여명세서 이메일을 PDF 첨부파일로 변경
...
- 이메일 본문에 급여 내역 직접 노출 → PDF 첨부파일로 전환 (보안 강화)
- barryvdh/laravel-dompdf 패키지 추가
- 이메일 본문은 간단한 안내 메시지로 변경
- dompdf에서 한글 렌더링을 위해 Noto Sans KR 폰트 적용
2026-03-10 09:11:46 +09:00
김보곤
7c6e165d38
fix: [fire-shutter] ⑤마감재 좌측 벽측 리턴 추가 + 우측 A각 깊이 보정
2026-03-10 08:59:41 +09:00
김보곤
b670ca444c
fix: [rd] trimX1 미정의 오류 수정 — trimL/trimR로 변경
2026-03-10 08:50:53 +09:00
김보곤
9fbb078a96
fix: [rd] ⑤마감재를 외곽 프레임 형태로 단순화 — 벽측 세부/우측 겹침 해소
2026-03-10 08:49:38 +09:00
김보곤
965d90e11b
fix: [rd] ③④ 벽연형 브라켓 배치 수정 + ⑤ 우측 A각 리턴 추가
...
- ③ C개구부가 본체(우측) 방향으로 변경, 몸체가 벽쪽
- ④ ③ 내부에 완전히 포함되도록 위치 수정
- ④ 립을 안쪽/중앙 방향 절곡으로 변경
- ⑤ A각 30mm 리턴(본체 안쪽 방향) 추가
2026-03-10 08:46:46 +09:00
김보곤
dad2601f47
fix: [rd] ⑤마감재 평면도에서 A각 이후 절곡(30-15-15-15) 제거 — 위에서 안 보이는 부분
2026-03-10 08:33:15 +09:00
김보곤
e2869d9af3
fix: [rd] 스크린 가이드레일 ⑤마감재를 polyline stroke로 변경 (겹침 해소)
2026-03-10 08:28:43 +09:00
김보곤
bf7fb13ba7
feat: [rd] 스크린 가이드레일 평면도 5부재 조립구조로 전면 재작성
...
- ② 본체 flange 30→26mm 수정 (실제 절곡치수 반영)
- ③ 벽연형-C (30-45-30) 개별 부재로 분리 표현
- ④ 벽연형-D (11-23-40-23-11) 신규 추가
- ⑤ 마감재 SUS 1.2T (10-11-110-30-15-15-15) 신규 추가
- 각 부재별 색상 구분 및 번호 라벨 표시
2026-03-10 08:18:55 +09:00
김보곤
318d985dbc
fix: [rd] 가이드레일 높이 오픈H+150 → 오픈H+100으로 변경
2026-03-10 07:32:55 +09:00
김보곤
40c47362d5
fix: [rd] 스크린 가이드레일 립 절곡방향 수정 (안쪽→개구부 방향)
...
- 2D 평면도: 사이드월 길이 분리(swLen=bodyD-lp), 립이 개구부 방향으로 절곡
- 3D 렌더링: bodyShape/hole의 립 Y좌표 반전(-lp, 벽쪽→개구부쪽)
- 치수선, 씰, 슬랫, 클립 위치 업데이트
2026-03-10 01:40:54 +09:00
김보곤
e6c82e4847
fix: [rd] 방화셔터 가이드레일 높이 계산 수정 (오픈H + 150mm)
...
- 기존: 표준 재고길이(3305mm) 선택 방식 → 오픈H + 305mm 표시
- 수정: 오픈H + 150mm 계산 (실제 가이드레일 높이)
- 3D 렌더링 레일 높이도 +100 → +150 수정
2026-03-10 01:28:07 +09:00
김보곤
d948366c2a
feat: [payroll] 이메일 발송 후 '발송' 라벨 표시 기능
...
- payrolls 테이블 options JSON에 email_sent_at/email_sent_to 저장
- 이메일 아이콘 아래 '발송' 텍스트 표시 (서버 렌더링 + JS 즉시 반영)
- Payroll 모델에 options 컬럼 추가
2026-03-10 01:20:25 +09:00
김보곤
c3a868a89b
fix: [payroll] 급여명세서 이메일 버튼 Blade 파싱 오류 수정
...
- @json() 내부 (int) 캐스팅이 Blade 파서 괄호 매칭 혼란 유발
- @php 블록에서 데이터를 미리 준비하고 @json($var)로 전달
2026-03-10 01:11:56 +09:00
김보곤
ca0473d541
feat: [payroll] 급여명세서 이메일 발송 기능 추가
...
- PayslipMail Mailable 클래스 생성 (admin@codebridge-x.com 발송)
- 급여명세서 이메일 템플릿 (전통 한국식 양식)
- 이메일 발송 API 엔드포인트 추가 (POST /payrolls/{id}/send-payslip)
- 목록 테이블에 이메일 발송 아이콘 버튼 추가
- 급여명세서 미리보기 모달 + 인쇄 기능
2026-03-10 01:06:21 +09:00
김보곤
fd5aca24ab
fix: [leave-promotions] 단일 상태열 제거, 1차/2차 통지열에 결재상태 뱃지 통합
2026-03-10 00:50:56 +09:00
김보곤
55019fdf1e
feat: [leave-promotions] 통지서 미리보기 모달 기능 추가
...
- 1차/2차 통지 눈 아이콘 클릭 시 통지서 문서 모달 팝업
- 결재 상태 뱃지, 발송일시, 인쇄, 결재문서 링크 포함
2026-03-10 00:44:32 +09:00
김보곤
60669ffdd5
feat: [hr] 연차촉진 관리에 1차/2차 촉진기간 컬럼 추가
...
- 근로기준법 제61조 기준 입사일 기반 촉진기간 자동 계산
- 1차 촉진기간: 연차만료 6개월 전 ~ +10일
- 2차 촉진기간 마감: 연차만료 2개월 전
- 잔여일수 다음에 촉진기간 표시
2026-03-10 00:37:10 +09:00
김보곤
e58a12faaa
feat: [approval] 결재서명란에 참조자 표시 추가
...
- 결재 테이블 하단에 참조자 녹색 칩 표시
- reference step_type 필터링하여 존재 시에만 표시
2026-03-10 00:16:08 +09:00
김보곤
512f01bea6
feat: [hr] 휴가관리 참조자 선택 기능 추가
...
- 휴가 신청 모달에 참조자 검색/선택 UI 추가 (Alpine.js)
- 부서별 사용자 목록에서 참조자 검색 및 녹색 칩 표시
- LeaveController 참조 배열 유효성 검증 추가
- LeaveService에서 결재선 steps에 참조자 자동 병합
2026-03-10 00:09:09 +09:00
김보곤
fff45cf707
fix: [hr] 급여관리 접근 권한 사용자 변경 (이경호 → 이의찬)
2026-03-10 00:00:01 +09:00
김보곤
051707c1be
fix: [database] codebridge 모델 cross-DB 관계 오류 수정
...
- samdb 공유 모델에 $connection = 'mysql' 명시적 선언
- codebridge 모델에서 eager-load 시 connection 상속 방지
- 영향 모델: User, Tenant, Department, Process, File(2), Approval, AiQuotationModule, InterviewProject
2026-03-09 23:35:13 +09:00
김보곤
c84c8894be
feat: [database] Equipment 하위 4개 모델 codebridge connection 추가
...
- EquipmentInspection, EquipmentInspectionDetail, EquipmentInspectionTemplate, EquipmentRepair
- equipments 테이블과 FK 참조 관계 → 동일 DB(codebridge)에서 관리
2026-03-09 20:57:49 +09:00
김보곤
b831979153
feat: [database] codebridge DB 분리 재적용 - 55개 MNG 전용 모델만 설정
...
- API 사용 테이블 22개(23개 모델) 제외하고 55개 모델만 $connection = 'codebridge' 적용
- config/database.php에 codebridge connection 재추가
- 제외 대상: Barobill 12개, ESign 4개, Audit 2개, DevTools 1개, System 2개, HR 1개
2026-03-09 20:02:04 +09:00
김보곤
a029339178
fix: [fire-shutter] 스크린 평면도 슬롯 개방 및 차단재 슬랫 접촉 형태
...
- C채널 본체를 단일 path→개별 부재(rect)로 분리하여 슬롯 열림 표현
- 립 팁 사이 수직선 제거 → 슬랫 진입구가 열린 상태
- 연기차단재를 슬랫 양면 접촉 형태로 변경 (차연 기능)
2026-03-09 18:58:49 +09:00
김보곤
acd24ca154
fix: [fire-shutter] 연기차단재 1개로 변경 및 슬롯 위치 배치
...
- 연기차단재: 2개→1개, 사이드월→슬롯 개구부(립 팁 사이) 위치로 이동
- 클립: 사각형→L형 브라켓으로 변경, 사이드월 내면에 부착
- 슬랫 라인을 채널 전체 관통으로 수정
2026-03-09 18:52:48 +09:00
김보곤
d58cf44a64
fix: [fire-shutter] 스크린 가이드레일 flange 30mm 수정 (슬롯 10mm)
...
- flange:8→30 (양쪽 30mm씩 → 슬롯 개구부 10mm)
- lip=10mm는 슬랫이 통과하는 홈 폭 (width-2*flange=10mm)
- 평면도 클립을 채널 내부 사이드월 면으로 재배치
- 3D 클립을 사이드월 내면 L형 브라켓으로 수정
- 슬롯 갭 치수 표시 추가
2026-03-09 18:06:02 +09:00
김보곤
e5886f77e5
fix: [fire-shutter] 스크린 가이드레일 폭/깊이 개념 수정 및 평면도 재작성
...
- width:120→70 (개구부/폭), depth:70→120 (깊이/벽방향) 스왑
- flange:26→8 (실제 스크린 플랜지 치수)
- 평면도 SVG 완전 재작성: 가로=깊이(120), 세로=폭(70), 벽좌측/개구부우측
- 셔터박스 Z위치 railZSpan 도입 (스크린:width, 철재:depth)
2026-03-09 17:58:47 +09:00
김보곤
d1722b144b
fix: [fire-shutter] 스크린형 가이드레일 평면도 전면 재설계
...
- 스크린 전용 단면도 추가 (플랜지+립+사이드월+백월 구조)
- 방화벽 위치를 레일 하단(벽쪽)으로 이동
- 슬랫 위치를 LIP 안쪽 채널 내부로 수정
- 개구부 방향 표시, 클립/연기차단재 위치 반영
- 치수: 폭/깊이/플랜지/립/사이드월 주석 추가
2026-03-09 17:27:50 +09:00
김보곤
d5fcc22eca
fix: [fire-shutter] 스크린 가이드레일 LIP 방향 수정 - 좌우 레일 개구부가 서로 마주보도록 Y축 회전 적용
2026-03-09 17:13:48 +09:00
김보곤
8e4c91af61
fix: [rd] 스크린 가이드레일 폭/깊이 교정 + 셔터박스 Z계산 depth 기준으로 통일
...
- 스크린 gr: width 70→120(면폭), depth 120→70(Z방향 깊이) 교정
- 셔터박스 railHalf, 개구부: gr.width → gr.depth (Z방향 치수)
- S 초기값, HTML input 기본값 동기화
2026-03-09 16:58:05 +09:00
김보곤
c5c10e8942
fix: [rd] 초기 유형을 스크린형(KSS01-실리카)으로 변경
...
- productType: screen, 모델: KSS01 기본 선택
- S 초기값, HTML input value 모두 스크린형 스펙으로 동기화
2026-03-09 16:50:09 +09:00
김보곤
bd85653699
feat: [rd] 벽 토글 OFF 시 벽체 설정 패널 자동 숨김
2026-03-09 16:39:00 +09:00
김보곤
5e59c66fa6
fix: [rd] 벽체 토글 초기값 OFF로 변경
2026-03-09 16:37:37 +09:00
김보곤
42bb5c43ed
fix: [rd] 셔터박스 밑면 개구부를 레일 너비만큼만 개방
...
- 전면 립: 50mm (전면판~레일 전면)
- 개구부: 레일 너비(스크린:70, 철재:120)만큼만 뚫림
- 후면 밑판: 나머지 전체 밀폐
2026-03-09 16:35:59 +09:00
김보곤
aec029b62d
feat: [rd] 방화셔터 도면생성 Ctrl+Z 실행취소(Undo) 기능 추가
...
- 상태 변경 시 자동 스냅샷 저장 (최대 50단계)
- Ctrl+Z로 이전 상태 복원 (입력값 + 3D 렌더링)
- 슬라이더 연속 입력 100ms 디바운스 적용
2026-03-09 16:33:11 +09:00
김보곤
59b24b2762
fix: [rd] 샤프트 Z 위치 자동 보정 — 브라켓/스프로켓이 셔터박스 전면판 내부 수용
...
- 스프로켓/브라켓 최대 돌출이 박스 전면판을 초과하면 자동으로 샤프트를 후퇴
- 철재: -65 → -110 (스프로켓 R215 수용), 스크린: -45 유지 (보정 불필요)
2026-03-09 16:27:20 +09:00
김보곤
600e459d27
fix: [rd] 셔터박스 Z 배치에 가이드레일 너비 반영
...
- frontOffset = 레일 반폭 + 50mm 전면 립 (스크린:85, 철재:110)
- 하단 개구부를 레일 위치에 정렬 (개구부 = 레일 너비)
2026-03-09 16:24:03 +09:00
김보곤
ffb61ddc07
fix: [rd] 샤프트/브라켓 원래 위치 복원, 셔터박스만 전면 50mm 돌출 배치
2026-03-09 16:13:46 +09:00