김보곤
c7fd350a4c
fix: [pmis] BIM 뷰어 Three.js CDN r128로 변경 (OrbitControls 호환)
2026-03-12 12:41:42 +09:00
김보곤
953cadfd99
feat: [pmis] BIM 뷰어 3D 프로토타입 구현
...
- Three.js 기반 3D 건물 모델 뷰어
- 기둥/보/벽/창/지붕 등 요소별 색상 구분 및 클릭 선택
- 시점 전환(투시도/정면/우측/상부/배면), 요소 토글, 와이어프레임
- PMIS 사이드바 아코디언 메뉴 + BIM 뷰어 링크 추가
2026-03-12 12:39:15 +09:00
김보곤
dbab583e5a
feat: [pmis] PmisWorker 모델 분리 및 개인정보 관리 개선
...
- pmis_workers 전용 모델 생성 (SAM 사원관리와 분리)
- 프로필 API 응답 worker 키로 변경
- 직책/소속업체 편집 기능 추가
- React 컴포넌트 data.user → data.worker 전환
2026-03-12 12:22:55 +09:00
김보곤
bafc40e43d
feat: [juil] 건설PMIS 좌측 사이드바 및 개인정보 관리 모달 구현
...
- PMIS 전용 좌측 사이드바 (사용자 프로필 + 네비게이션 메뉴)
- 개인정보 관리 모달 (보기/수정 모드 전환)
- 연락처, 이메일, 성별 편집 및 서버 저장 기능
- 프로필 조회/수정 JSON API 엔드포인트 추가
- 3컬럼 레이아웃 (좌측 사이드바 + 대시보드 + 우측 퀵메뉴)
2026-03-12 11:17:19 +09:00
김보곤
85c1a8acbe
feat: [juil] 건설PMIS 날씨 위젯 WeatherService API 연동
...
- 기존 대시보드 WeatherService를 활용한 JSON API 추가
- React 날씨 위젯에서 /juil/construction-pmis/weather 호출
- 기상청 API 기반 오늘/내일 날씨, 기온, 강수확률 표시
- Blade weather-icon과 동일한 SVG 아이콘 React 컴포넌트 구현
2026-03-12 11:09:06 +09:00
김보곤
e499e2eb83
feat: [juil] 건설PMIS 대시보드 레이아웃 구현
...
- 날씨 위젯, 금일 출역 현황, 업무 진행 현황 위젯 추가
- 최근 접속 메뉴 퀵메뉴 우측 사이드바 추가
- 업무 Flow 보기, KCC 자료 참고 버튼 우측 사이드로 이동
- KCC KOUP 대시보드 레이아웃 참고하여 SAM 브랜딩으로 구현
2026-03-12 11:05:16 +09:00
김보곤
374d79ed10
feat: [juil] KCC 자료 참고 버튼 및 원본 이미지 모달 추가
...
- 헤더에 KCC 자료 참고 버튼 추가
- KCC KOUP 원본 Flow 이미지 4개를 탭 형태로 열람 가능
- SAM PMIS 업무 Flow와 별도 모달로 분리
2026-03-12 11:00:35 +09:00
김보곤
74fd1462e5
refactor: [juil] 건설PMIS 업무 Flow를 SVG 다이어그램으로 교체
...
- KOUP 참조 제거, SAM PMIS 자체 브랜딩으로 변경
- 이미지 기반 → React + SVG 플로우차트로 전면 교체
- 4개 탭별 인터랙티브 다이어그램 구현
- 더 이상 사용하지 않는 Flow 이미지 파일 삭제
2026-03-12 10:56:55 +09:00
김보곤
2453e64e03
chore: [juil] 건설PMIS Flow 이미지 자산 추가
...
- .gitignore에 pmis-flow 이미지 예외 규칙 추가
- 4개 업무 Flow 이미지 포함
2026-03-12 10:48:07 +09:00
김보곤
21b8fcdde8
feat: [juil] 건설PMIS 페이지 및 업무 Flow 모달 추가
...
- 건설PMIS 메뉴 페이지 생성 (construction-pmis.blade.php)
- 업무 Flow 보기 버튼 → 모달창 4개 탭 구현
- KCC KOUP 업무 Flow 이미지 4장 포함
- PlanningController에 constructionPmis 메서드 추가
2026-03-12 10:47:33 +09:00
김보곤
da1acc9d1e
fix: [payroll] 급여등록 사원선택에서 영업팀(외주) 제외
2026-03-12 09:56:46 +09:00
김보곤
a0ba7fc13f
feat: [email] 테넌트 이메일 설정 관리 기능 추가
...
- TenantMailConfigController: 목록, 편집, 저장, SMTP 테스트 API
- TenantMailConfig, MailLog 모델 추가
- SmtpConnectionTester: SMTP 연결 테스트 서비스 (에러 코드, 트러블슈팅)
- TenantMailService: 테넌트 설정 기반 메일 발송 (쿼터, Fallback)
- config/mail-presets.php: Gmail/Naver/MS365 등 8개 SMTP 프리셋
- Blade 뷰: 테넌트 목록 현황 + 설정 폼 (프리셋 자동 채움, 연결 테스트)
- 라우트 추가: /system/tenant-mail/*
2026-03-12 07:42:17 +09:00
김보곤
80b9164a54
fix: [fire-shutter] 가이드레일 슬롯 부동소수점 오류 수정
...
- bOuterW 계산을 bBw+2*t2(=70.1) 대신 g.width*sc(=70) 사용
- 슬롯 표시에 Math.round() 추가로 10.100000000000003 → 10 수정
- 주석 flange26 → flange30 정정
2026-03-12 07:34:25 +09:00
김보곤
3fc4c10593
feat: [payroll] 개발서버 슈퍼관리자 급여관리 접근 허용
...
- 운영서버: 기존 3인(이의찬, 전진선, 김보곤)만 접근 가능 (변경 없음)
- 개발서버/로컬: 슈퍼관리자도 급여관리 전체 접근 가능 (조회+수정)
- 적용 대상: 급여관리, 사업소득자 임금대장, 연봉 정보
2026-03-11 20:44:26 +09:00
김보곤
f152e866a1
fix: [fire-shutter] 슬롯 10mm 수정 (flange 30mm) + ① 우측 접힘 방향 개구부쪽으로 수정
2026-03-11 19:58:41 +09:00
김보곤
a4b0eebe6c
fix: [fire-shutter] ① 마감재 코킹립 방향 벽쪽 복원 + 벽 겹침 방지 위치 이동
2026-03-11 19:36:09 +09:00
김보곤
60a7257127
fix: [fire-shutter] ① 마감재 코킹립 방향 수정 (벽쪽→채널 내부)
2026-03-11 19:22:36 +09:00
김보곤
599ed4857a
fix: [fire-shutter] ① 마감재 수평면 범위 수정
...
- 수평면 우측 끝을 C채널 립 끝(lipEndX)에 맞춤
- 140mm 고정값 대신 벽~립 사이 자동 맞춤
- ① 마감재가 C채널 밖으로 돌출되는 문제 해결
2026-03-11 18:01:50 +09:00
김보곤
d195369283
fix: [fire-shutter] ① 마감재 평면도 형상 개선
...
- sc 4→3 축소 (두께 비율 현실적 표현, 1.2t/1.55t)
- 코킹립 10mm 추가 (벽쪽 수평 립, 방화벽과 ㄴ자 결합)
- 우측 접힘 30-15-15-15 → 15-13-16 (참조도면 반영)
- 수평면 140mm, 벽쪽 앵커링 (코킹립이 방화벽에 맞닿는 구조)
2026-03-11 17:58:41 +09:00
김보곤
4d01d7e238
fix: [fire-shutter] ① 마감재 SUS 평면도 180도 회전 수정
...
- 측면탭(코킹립)을 개구부쪽에서 벽쪽으로 이동 (ㄴ자 립 형태로 방화벽 직선 결합)
- 랩+3단꺾임을 벽쪽에서 개구부쪽으로 이동
- ①랩 치수 라벨 위치 조정
2026-03-11 17:41:23 +09:00
김보곤
a3de440cd2
fix: [approval] ApprovalStep에 SoftDeletes, tenant_id 동기화
...
- API에서 approval_steps 테이블에 tenant_id, deleted_at 추가에 따른 동기화
- ApprovalStep 모델에 SoftDeletes 추가, tenant_id fillable 추가
- ApprovalStep::create() 시 tenant_id 포함 (2곳)
2026-03-11 17:13:10 +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
김보곤
60e057b8c6
feat: [hr] 연봉이력 삭제 버튼 추가
...
- 이력 테이블에 삭제 컬럼/버튼 추가
- Alpine.js deleteHistory() 메서드 추가 (confirm 확인 후 API 호출)
- reverse 표시 인덱스를 원본 인덱스로 변환하여 API 전달
2026-03-11 16:43:50 +09:00
김보곤
9c75cbbd03
fix: [hr] 연봉 입력 필드 콤마 표시 적용
...
- type=number → type=text(inputmode=numeric) 변경
- 입력 시 실시간 콤마 포맷 적용
- 저장 시 숫자만 추출하여 전송
2026-03-11 16:40:10 +09:00
김보곤
060ee12455
fix: [esign] 근로계약서 연봉계약종료일 자동계산 오류 수정
...
- 패턴 매칭 순서 변경: 구체적 패턴(종료)을 일반적 패턴(계약) 앞에 배치
- 기존: '계약.*연도'가 '연봉계약종료연도' 라벨을 먼저 매칭하여 입사년도 입력
- 수정: '연봉계약.*종료.*년도'가 먼저 매칭되어 정상적으로 1년 후 계산 적용
- 근로계약/계약 종료일 패턴도 추가
2026-03-11 16:37:59 +09:00
김보곤
222e2b2ae3
fix: [drawing] ① 마감재 수평면 방향 반전 — 벽쪽으로 이동
...
- 수평면: 백월→개구부(우측) 에서 립→벽(좌측) 방향으로 반전
- 측면탭: 백월 좌측에서 립 끝(우측)으로 이동
- 랩+3단꺾임: 개구부쪽에서 벽쪽으로 이동, 접힘 방향 반전
- ①랩 라벨, ① 원숫자, 개구부 텍스트 위치 업데이트
2026-03-11 16:33:00 +09:00
김보곤
eab39e0b29
feat: [hr] 사원관리 연봉정보 탭 생성
...
- 사원 상세/수정 페이지에 연봉정보 입력 섹션 추가
- 특수 권한 사용자만 열람/수정 가능한 접근 제어 적용
- 연봉 변경 시 자동 이력 기록
- 일반 API 응답에서 연봉 데이터 노출 방지 (toArray 오버라이드)
2026-03-11 16:27:49 +09:00
김보곤
8a2a569403
fix: [fire-shutter] ① 마감재를 ② 바깥으로 이동 (감싸는 구조)
...
- ① 수평면 시작점: bx → bx-t1 (② 백월 바깥, 방화벽쪽 이동)
- overlap 제거: ①과 ② 사이 겹침 없음 (①이 ② 바깥에 위치)
- 측면탭 위치 조정: ② 백월 좌측을 따라 배치
2026-03-11 16:21:45 +09:00
김보곤
58991e352e
feat: [esign] 근로계약서 사원 불러오기 시 주소, 생년월일, 계약일 자동 반영
...
- 주민등록번호에서 출생년도/월/일 분리 (세기 자동 판별)
- 입사일 기반 계약일, 근로계약시작일, 연봉계약시작일 자동 반영
- 연봉계약종료일은 입사일 + 1년으로 계산
- 사원 주소, 계약자 이름 자동 매핑 추가
2026-03-11 16:18:37 +09:00
김보곤
0fe46e3b1a
fix: [fire-shutter] ④ D형 개구부 방향 좌측으로 변경 (③과 마주보는 형태)
...
- ③ C형: 우측(②쪽) 열림 (기존 유지)
- ④ D형: 좌측(벽쪽) 열림 (기존 우측→좌측 반전)
- 참조 도면 KSS01 기준: ③④ 열린면이 서로 마주봄
2026-03-11 16:11:10 +09:00
김보곤
6aea43a992
fix: [fire-shutter] 가이드레일 원숫자 위치를 참조 도면 기준으로 수정
...
- ① 마감재: 도면 상단→우측 랩/플랜지 영역(상하 2개, 참조 도면 동일)
- ③ C형: 위쪽 치우침→몸체(45mm) 수직 중심
- ④ D형: 아래쪽 치우침→몸체(40mm) 수직 중심
2026-03-11 16:04:14 +09:00
김보곤
cbde2d0efb
fix: [fire-shutter] 가이드레일 부재 번호를 KSS01 참조 도면 기준으로 변경
...
- ①마감재 ②가이드레일 ③C형 ④D형 (기존 ①본체 ③벽C ④벽D ⑤마감재)
- hasTrim 조건 분기 제거 (KSS01에 마감재 있음)
- 모든 치수선 라벨, 범례 텍스트, SVG 주석 번호 통일
2026-03-11 15:53:08 +09:00
김보곤
2d3f915a30
fix: [barobill] 은행거래 동기화 시 중복 키 에러 수정
...
- summary 포함 WHERE와 DB unique index 불일치로 발생하는 duplicate entry 에러
- insert를 insertOrIgnore로 변경하여 중복 시 무시
2026-03-11 15:48:33 +09:00
김보곤
1009850160
fix: [fire-shutter] KSS01 모델에서 마감재(⑤) 조건부 렌더링
...
- KSS01은 마감재(⑤) 없음 → hasTrim 조건으로 분기
- ⑤ SVG, 치수선 라벨, 범례 텍스트 조건부 처리
- 모델 변경 시 가이드레일 재렌더링 추가
2026-03-11 15:32:45 +09:00
김보곤
0be1fe7a87
fix: [journal] 거래처 드롭다운 클릭 시 즉시 닫히는 버그 수정
...
- onFocus에서 열린 경우 onClick 토글을 건너뛰도록 justFocusedRef 플래그 추가
- 다른 요소에서 포커스 이동 후 클릭 시 정상 동작
2026-03-11 15:32:45 +09:00
김보곤
a97396df99
fix: [journal] 전표 적요 수정 시 자금일보에 반영되도록 동기화
...
- 은행거래 출처 전표의 적요 수정 시 BankTransactionOverride에 저장
- 기존 modified_cast 오버라이드 값 보존
2026-03-11 15:27:50 +09:00
김보곤
9093c5607a
fix: [fire-shutter] 가이드레일 평면도 원숫자 크기 3배 확대
2026-03-11 15:27:06 +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
김보곤
2a19c7108c
fix: [finance] 적요 컬럼 텍스트 잘림 해제
...
- max-w-[220px] + truncate 제거로 긴 적요 전체 표시
- 은행거래 탭의 적요 컬럼도 동일 적용
2026-03-11 14:14:22 +09:00
김보곤
084e0f1ff6
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:05:59 +09:00
ee981d27d5
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:47:49 +09:00
김보곤
2af680934f
fix: [fire-shutter] ⑤ 위치를 ①백월 기준으로 복원, 벽쪽 'ㄱ' 측면탭 복원
...
- trimL5를 bx(①백월)로 변경하여 ①이 ⑤ 범위 안에 완전히 포함되도록
- 벽쪽 측면탭(11mm) SVG 복원 → ①백월을 따라 'ㄱ' 형상 표현
- 코킹립(10mm)은 Z방향 절곡으로 평면도에서 생략 유지
2026-03-11 13:41:06 +09:00
8afd78c111
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:11 +09:00
김보곤
9282c289c1
fix: [finance] 전표 수정 후 리스트에 수정된 적요가 반영되지 않는 문제 수정
...
- 은행/카드거래 행에서 원본 거래 적요 대신 전표 적요를 우선 표시
- 분개가 존재하면 journal_entries.description을 사용
2026-03-11 13:23:57 +09:00
5a6cd34a63
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:19:05 +09:00
김보곤
a41597ca3c
fix: [finance] 거래처 필드 Tab키 자동 검색 열기
...
- TradingPartnerSelect에 onFocus 핸들러 추가
- Tab으로 포커스 시 드롭다운이 자동 열려 바로 검색 가능
- 선택 후 재포커스 시 중복 열림 방지 (skipAutoOpenRef)
2026-03-11 13:07:53 +09:00