Commit Graph

2288 Commits

Author SHA1 Message Date
김보곤
85d52c9bc0 fix: [rd] 방화셔터 가이드레일 높이 계산 수정 (오픈H + 150mm)
- 기존: 표준 재고길이(3305mm) 선택 방식 → 오픈H + 305mm 표시
- 수정: 오픈H + 150mm 계산 (실제 가이드레일 높이)
- 3D 렌더링 레일 높이도 +100 → +150 수정
2026-03-10 01:28:34 +09:00
김보곤
4c2a905a94 feat: [payroll] 이메일 발송 후 '발송' 라벨 표시 기능
- payrolls 테이블 options JSON에 email_sent_at/email_sent_to 저장
- 이메일 아이콘 아래 '발송' 텍스트 표시 (서버 렌더링 + JS 즉시 반영)
- Payroll 모델에 options 컬럼 추가
2026-03-10 01:21:28 +09:00
김보곤
dfa193f369 fix: [payroll] 급여명세서 이메일 버튼 Blade 파싱 오류 수정
- @json() 내부 (int) 캐스팅이 Blade 파서 괄호 매칭 혼란 유발
- @php 블록에서 데이터를 미리 준비하고 @json($var)로 전달
2026-03-10 01:12:21 +09:00
김보곤
5ac4495d6b feat: [payroll] 급여명세서 이메일 발송 기능 추가
- PayslipMail Mailable 클래스 생성 (admin@codebridge-x.com 발송)
- 급여명세서 이메일 템플릿 (전통 한국식 양식)
- 이메일 발송 API 엔드포인트 추가 (POST /payrolls/{id}/send-payslip)
- 목록 테이블에 이메일 발송 아이콘 버튼 추가
- 급여명세서 미리보기 모달 + 인쇄 기능
2026-03-10 01:06:48 +09:00
김보곤
2fc4754dd6 fix: [leave-promotions] 단일 상태열 제거, 1차/2차 통지열에 결재상태 뱃지 통합 2026-03-10 00:51:15 +09:00
김보곤
36ca51afc3 feat: [leave-promotions] 통지서 미리보기 모달 기능 추가
- 1차/2차 통지 눈 아이콘 클릭 시 통지서 문서 모달 팝업
- 결재 상태 뱃지, 발송일시, 인쇄, 결재문서 링크 포함
2026-03-10 00:45:01 +09:00
김보곤
0ef6b72d8e feat: [hr] 연차촉진 관리에 1차/2차 촉진기간 컬럼 추가
- 근로기준법 제61조 기준 입사일 기반 촉진기간 자동 계산
- 1차 촉진기간: 연차만료 6개월 전 ~ +10일
- 2차 촉진기간 마감: 연차만료 2개월 전
- 잔여일수 다음에 촉진기간 표시
2026-03-10 00:37:33 +09:00
김보곤
694646158d feat: [approval] 결재서명란에 참조자 표시 추가
- 결재 테이블 하단에 참조자 녹색 칩 표시
- reference step_type 필터링하여 존재 시에만 표시
2026-03-10 00:16:42 +09:00
김보곤
fcdffa66db feat: [hr] 휴가관리 참조자 선택 기능 추가
- 휴가 신청 모달에 참조자 검색/선택 UI 추가 (Alpine.js)
- 부서별 사용자 목록에서 참조자 검색 및 녹색 칩 표시
- LeaveController 참조 배열 유효성 검증 추가
- LeaveService에서 결재선 steps에 참조자 자동 병합
2026-03-10 00:10:16 +09:00
김보곤
2a82797926 fix: [hr] 급여관리 접근 권한 사용자 변경 (이경호 → 이의찬) 2026-03-10 00:10:16 +09:00
김보곤
b92a538cad feat: [fire-shutter] 스크린형 가이드레일/평면도 등 develop 미반영분 통합
- 스크린형 가이드레일 3D 구조, 평면도 전면 재설계
- 연기차단재/슬롯 개방/LIP 방향 수정
- 벽체 토글, Undo 기능, 셔터박스 개선 등
2026-03-09 23:47:57 +09:00
김보곤
a6d93f7c02 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:44 +09:00
김보곤
12427326df Reapply "feat: [database] codebridge DB 분리 재적용 - 55개 MNG 전용 모델만 설정"
This reverts commit 7371dda5a1.
2026-03-09 23:18:02 +09:00
김보곤
2e0f8ddb9b Reapply "feat: [database] Equipment 하위 4개 모델 codebridge connection 추가"
This reverts commit 1d5062a0b6.
2026-03-09 23:18:02 +09:00
7371dda5a1 Revert "feat: [database] codebridge DB 분리 재적용 - 55개 MNG 전용 모델만 설정"
This reverts commit 48aa4505f5.
2026-03-09 21:22:03 +09:00
1d5062a0b6 Revert "feat: [database] Equipment 하위 4개 모델 codebridge connection 추가"
This reverts commit ea5f064574.
2026-03-09 21:21:58 +09:00
김보곤
ea5f064574 feat: [database] Equipment 하위 4개 모델 codebridge connection 추가
- EquipmentInspection, EquipmentInspectionDetail, EquipmentInspectionTemplate, EquipmentRepair
- equipments 테이블과 FK 참조 관계 → 동일 DB(codebridge)에서 관리
2026-03-09 20:58:44 +09:00
김보곤
48aa4505f5 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:38 +09:00
김보곤
47ce1aaac6 fix: [fire-shutter] const p 중복 선언 제거 2026-03-09 11:41:04 +09:00
김보곤
e81eb67e85 feat: [fire-shutter] 셔터박스 조립식 철판 구조, 라벨 오픈폭/오픈H 변경 2026-03-09 11:39:20 +09:00
김보곤
0d913b3f9e fix: [fire-shutter] 벽체 기본값 변경 (날개벽 600, 두께 600) 2026-03-09 11:33:27 +09:00
김보곤
71da28e26a fix: [fire-shutter] hw 변수명 충돌 해결 (whw로 변경) 2026-03-09 11:30:30 +09:00
김보곤
0560b99617 fix: [fire-shutter] 벽체 기둥+인방 U자 일체형으로 이음새 제거 2026-03-09 11:29:18 +09:00
김보곤
59a0af1884 fix: [fire-shutter] 벽체 기둥-인방 겹침(z-fighting) 해결 2026-03-09 11:15:05 +09:00
김보곤
3d01649e4f feat: [fire-shutter] 상단 설정 변경 시 3D 렌더링 동적 갱신 2026-03-09 11:09:49 +09:00
김보곤
4790433c64 refactor: [fire-shutter] 설정 영역을 전체 폭 상단바로 이동 2026-03-09 11:06:06 +09:00
김보곤
3ea2430e2e fix: [fire-shutter] 상세설정 토글 버튼 $ 참조 오류 수정 2026-03-09 10:59:26 +09:00
김보곤
f6bbf65a00 fix: [finance] 거래처 등록 필수값 개선 (거래처명+사업자번호만 필수)
- 백엔드: bizNo 필수 검증 추가, trade_type/status null-safe 처리
- 프론트엔드: 사업자번호 필수 검증 + 라벨에 * 표시 추가
- 나머지 필드 비어있어도 저장 가능하도록 NOT NULL 컬럼 기본값 보장
2026-03-09 10:54:24 +09:00
김보곤
22bbab22e1 fix: [finance] 거래처 등록/수정 시 NOT NULL 컬럼 기본값 누락 수정
- type, category 컬럼이 NOT NULL인데 빈 값 전달 시 null 변환되어 DB 오류 발생
- store: null 대신 DB 기본값(vendor, 기타) 적용
- update: null 대신 기존 값 유지
2026-03-09 10:50:05 +09:00
김보곤
edffdfc501 refactor: [fire-shutter] 좌측패널 UI 구조 개선 - 4탭→3탭+상단 설정바 2026-03-09 10:28:07 +09:00
김보곤
8136fbe6b6 fix: [rd] 셔터박스 Z 오프셋을 샤프트 기반으로 변경
- 샤프트 앞면이 가이드레일(Z=0) 바로 뒤에 위치하도록 계산
- 철재: boxZOffset=-65mm (기존 -195mm), 스크린: -45mm (기존 -125mm)
- frontRatio 방식 제거, 샤프트 직경 기반 계산
2026-03-09 10:17:36 +09:00
김보곤
c6609018b9 feat: [rd] 방화셔터 제품별 셔터박스 기본 치수 + 비대칭 Z 오프셋
- 철재: 650×550mm, 스크린: 500×380mm 기본값 적용
- 제품 타입 전환 시 셔터박스 높이/깊이/샤프트경 자동 업데이트
- 비대칭 Z 오프셋: 가이드레일(Z=0) 기준 후면으로 더 돌출
  - 철재: frontRatio 0.20 (앞 130mm, 뒤 520mm)
  - 스크린: frontRatio 0.25 (앞 125mm, 뒤 375mm)
- 샤프트/모터/슬랫롤 Z 위치를 박스 중심에 동기화
2026-03-09 10:06:51 +09:00
김보곤
ef88d4044d fix: [rd] 모터 Z 오프셋 절반 축소 + 중복 체인 박스 제거
- 모터 이격거리: 150mm → 75mm (motorZ: -270 → -195)
- 체인 직선 두께 박스(csTop/csBot) 제거, Line 경로만 유지
2026-03-09 09:48:11 +09:00
김보곤
920f858574 fix: [rd] 방화셔터 모터 Z 오프셋 150mm 추가 (슬랫 감김 간섭 방지) 2026-03-09 09:42:47 +09:00
김보곤
99cc6f24cd feat: [rd] 방화셔터 3D 단품 보기(Isolation) 기능 추가
- 우클릭 컨텍스트 메뉴: 객체 클릭 시 '단품 보기', 빈 공간 시 '전체 보기'
- Raycaster 기반 객체 감지 (Group 자식까지 추적)
- 단품 보기 시 카메라 자동 포커스 (BoundingBox 기반)
- 상태 배지 표시 (클릭으로 전체 보기 복원)
- 재빌드 시 단품 상태 유지
2026-03-09 09:38:43 +09:00
김보곤
2b8f0c680e fix: [rd] 방화셔터 체인/스프로켓 시각화 수정
- 샤프트 스프로켓 반지름 130→70mm (브라켓 180mm 내 수용)
- 모터 스프로켓 반지름 45.5→30mm
- 양쪽 스프로켓에 톱니바퀴 메시 추가 (18/10개 톱니)
- 체인 직선 구간 기울기 회전 적용
2026-03-09 09:31:51 +09:00
김보곤
4e1de76f15 fix: [rd] 모터측 브라켓 앞 큰 스프로켓 디스크+허브 제거
- 샤프트 스프로켓 메시(ø260) 및 허브 메시 삭제
- 스프로켓 좌표는 체인 경로 계산용으로만 유지
2026-03-09 09:15:41 +09:00
김보곤
e1120c28f6 fix: [rd] 모터측 큰 플랜지 삭제, 3인치 연결관→브라켓 직결
- 모터측 플랜지(flangeMT) 삭제 (실제 없는 부품)
- 3인치 연결관이 샤프트 끝에서 복주머니까지 직접 연결
- 비모터측 플랜지만 유지
2026-03-09 08:53:56 +09:00
김보곤
75d9148b5b feat: [rd] 모터측 샤프트 ASSY 구현 (3인치 연결관+복주머니)
- 모터측: 메인샤프트 → 플랜지 → 3인치 연결관(ø76) → 복주머니 → 브라켓
- 복주머니: 브라켓과 직접 결합되는 특수 플랜지 (연결관보다 약간 큼)
- 비모터측: 기존 환봉 구조 유지
2026-03-09 08:41:36 +09:00
김보곤
be2dde6b1d fix: [rd] 플랜지 외경 = 샤프트 내경 - 1mm 공차
- 샤프트 관 두께 4mm 정의
- 플랜지 외경 = shaftR - 4mm(관두께) - 0.5mm(공차)
- 플랜지가 샤프트 안으로 삽입되는 실제 구조 반영
2026-03-09 08:30:22 +09:00
김보곤
619c0885d2 fix: [rd] 플랜지 외경=샤프트 동일 + 초기 탭 3D로 변경
- 플랜지: 샤프트 끝에 딱 들어가는 형태 (외경=샤프트 외경)
- 초기 탭: Settings → 3D 렌더링으로 변경
2026-03-09 08:28:47 +09:00
김보곤
1fff76ee2e fix: [rd] 샤프트 길이 축소 + 양쪽 환봉 노출
- 샤프트 관: W1-400mm (양쪽 환봉 200mm씩 노출)
- 환봉: ø30, 200mm 밖으로 보임 (전체 300mm 중 100mm는 플랜지 내부)
- 모터측에도 환봉 추가
- 플랜지 위치를 샤프트 끝 바깥으로 수정
- slat roll 길이도 샤프트에 맞춤
2026-03-09 08:25:10 +09:00
김보곤
caec5bf854 feat: [rd] 샤프트 ASSY 구조 구현 (환봉+플랜지)
- 비모터측 브라켓: 환봉(stub pin ø30) 중앙 돌출
- 양쪽 샤프트 끝: 플랜지 디스크 (샤프트 용접)
- 구조: 브라켓→환봉→플랜지→샤프트관 (실제 조립 구조)
2026-03-09 08:19:33 +09:00
김보곤
c429e6f183 fix: [rd] 비모터측 브라켓 도면 치수 적용 (180×180mm)
- 비모터측: 180×180mm 두께 18mm (도면 기준)
- 모터측: 380×180mm 두께 18mm (기존 유지)
- 계산값(height*0.7, depth*0.6) → 실측 치수로 변경
2026-03-09 08:12:23 +09:00
김보곤
dc59b0e3b4 fix: [rd] 모터를 샤프트와 수평(Z방향)으로 재배치
- 모터가 가이드레일쪽(Y-) 배치 → 셔터박스 깊이방향(Z-) 수평 배치
- 슬랫과의 간섭 해소
- 브라켓 380mm를 Z방향으로 설정 (샤프트~모터 수용)
- 체인 경로를 YZ 수평 루프로 변경
2026-03-09 08:06:49 +09:00
김보곤
3103535d47 fix: [rd] slat roll을 단일 실린더로 변경 (접시 모양 제거)
- 디스크/링 제거, 샤프트 전체에 감기는 하나의 실린더로 표현
- 최소 두께 8mm 보장 (적은 감김에서도 보이도록)
- 나선형 표면 라인으로 감긴 질감 표현
2026-03-09 07:59:01 +09:00
김보곤
0a32bba5d9 fix: [rd] 방화셔터 slat roll 시각화 개선
- 모터 Y 위치 수정 (스프로켓 겹침 해소)
- slat roll 색상/형태 개선 (양쪽 디스크, 나선형 표면 라인)
- 재빌드 후 토글 visibility 동기화 추가
2026-03-09 07:52:37 +09:00
김보곤
48688cf81b fix: [rd] 복주머니+플랜지를 모터 그룹으로 이동
- 모터 숨기면 복주머니+플랜지도 함께 숨김
- 샤프트는 복주머니 없이 자기 구간까지만 표시
- 모터 ON: 브라켓 ← 모터 ← 출력축 ← 복주머니 ← 샤프트
- 모터 OFF: 샤프트만 남음 (비모터측 브라켓+환봉까지)
2026-03-08 22:12:48 +09:00
김보곤
1166c5ebc7 fix: [rd] 모터측 브라켓을 모터 그룹에 추가
- 모터측 브라켓은 모터 그룹 소속 (모터 숨기면 함께 숨김)
- 구조: 벽 ← 브라켓 ← 모터 ← 출력축 ← 복주머니 ← 샤프트
- 비모터측: 벽 ← 브라켓 ← 환봉 ← 샤프트
2026-03-08 22:09:51 +09:00
김보곤
03e17d2a3d fix: [rd] 모터측 브라켓 제거 — 모터가 복주머니로 샤프트에 직접 결합
- 모터측 브라켓 제거 (비모터측에만 브라켓 존재)
- 복주머니가 셔터박스 끝에서 직접 시작
- 모터 → 출력축 → 복주머니 → 샤프트 직결 구조
- 주축 길이 재계산 (모터측 브라켓 두께 제외)
2026-03-08 22:06:30 +09:00