Commit Graph

1955 Commits

Author SHA1 Message Date
김보곤
60ec2408ca fix: [roadmap] 로드맵 문서 마크다운 렌더링 스타일 개선
- Tailwind prose 클래스 → 커스텀 .markdown-body CSS로 변경
- 테이블 보더, 코드 블록, 제목 계층, 인용문 스타일 추가
2026-03-02 16:19:20 +09:00
김보곤
64b005b697 feat: [roadmap] AI 견적서 자동생성 엔진 개발 계획 문서 추가 2026-03-02 16:14:23 +09:00
김보곤
61df5f104a feat: [roadmap] 로드맵 문서 페이지 추가
- sam/docs 중장기 계획 문서를 렌더링하는 전용 페이지
- 비전&전략, 프로젝트 런칭, 제품 설계, 시스템 개요 4개 카테고리
- Markdown → HTML 변환 (Str::markdown)
- /roadmap/documents 목록 + /roadmap/documents/{slug} 상세
2026-03-02 16:02:51 +09:00
김보곤
f3f1416004 feat: [roadmap] 중장기 계획 메뉴 및 전용 페이지 개발
- 모델: AdminRoadmapPlan, AdminRoadmapMilestone
- 서비스: RoadmapPlanService, RoadmapMilestoneService
- FormRequest: Store/Update Plan/Milestone 4개
- 컨트롤러: Blade(RoadmapController), API(Plan/Milestone) 3개
- 라우트: web.php, api.php에 roadmap 라우트 추가
- Blade 뷰: 대시보드, 목록, 생성, 수정, 상세, 파셜 테이블 6개
- HTMX 기반 필터링/페이지네이션, 마일스톤 인라인 추가/토글
2026-03-02 15:50:20 +09:00
김보곤
458e5f890a feat: [google-cloud] AI 활용 가이드 PPTX 다운로드 기능 추가
- AiGuideController에 download() 메서드 추가
- AI 활용 가이드 PPTX 다운로드 라우트 추가
- 뷰에 PPTX 다운로드 버튼 추가
- 7장 슬라이드 HTML → PPTX 변환 파일 포함
2026-03-02 15:15:06 +09:00
김보곤
411f4a596c feat: [google-cloud] AI 활용 가이드 페이지 추가
- AiGuideController 생성 (HX-Redirect 패턴)
- STT, Speaker Diarization, 회의록, 음성녹음, Gemini, GCS, AI Config 정보 페이지
- Google Cloud 메뉴 하위에 라우트 등록
2026-03-02 14:48:42 +09:00
김보곤
1faa23ebc5 fix: [menu] 메뉴 관리 페이지 기본 행 표시 개수를 500으로 변경 2026-03-02 14:30:54 +09:00
김보곤
5e592b2f3d feat: [google-cloud] Gemini 2.0 모델 2026.06.01 중단 안내 추가
- 모델 테이블에 중단 예정 뱃지 및 취소선 표시
- 마이그레이션 가이드 경고 박스 추가 (2.0→2.5 권장)
- 바 차트에서 중단 모델 흐림(opacity) 처리
2026-03-02 14:14:53 +09:00
김보곤
c3284a6dca feat: [google-cloud] Google Cloud 메뉴 섹션 추가
- Workspace 정책: 계정관리, 2단계인증, 감사로그, 데이터보존
- Workspace 요금: 4티어 비교, 기능비교, 예상비용, 인상히스토리
- Cloud API 요금: Gemini 모델 단가, 추가기능, Storage, 비용시뮬레이션
- 컨트롤러 3개 + 뷰 3개 + 라우트 그룹 추가
2026-03-02 14:07:17 +09:00
김보곤
f051dadabb feat: [claude-code] 활용방안 PPTX 다운로드 기능 추가
- UsagePlanController에 download 메서드 추가
- 라우트에 /usage-plan/download 추가
- 뷰 헤더에 PPTX 다운로드 버튼 추가
- 7장 슬라이드 PPTX 파일 배치
2026-03-02 13:24:43 +09:00
김보곤
1e96a1287c feat: [claude-code] SAM 활용방안 페이지 추가
- 컨트롤러, 뷰, 라우트 생성
- 7개 섹션: 핵심요약, Before/After, 프로세스플로우, 80%공통화론, 멀티테넌시, AI자동화, 로드맵
- HX-Redirect 패턴 적용
2026-03-02 12:32:47 +09:00
김보곤
33a0b43d6d feat: [claude-code] Cowork 소개 페이지 추가
- Claude Code vs Cowork 핵심 차이 비교 테이블
- SAM 직무별 활용 시나리오 (영업/관리/생산)
- 업무 유형별 도구 선택 가이드
- Cowork 시작 3단계 안내
2026-03-02 11:40:04 +09:00
김보곤
f5ed38abbb feat: [claude-code] 요금정책 PPTX 다운로드 기능 추가
- 7페이지 상세 PPTX 생성 (표지/API단가/비용비교/팀비용/상세비교/전환가이드/결론)
- PricingController download 메서드 추가
- 페이지 헤더에 PPTX 다운로드 버튼 추가
- .gitignore에 public/downloads/*.pptx 예외 추가
2026-03-02 11:25:22 +09:00
김보곤
8413dd1c88 feat: [claude-code] 요금정책 비교 분석 페이지 추가
- API 토큰 단가 테이블 (Sonnet/Opus/Haiku)
- 사용 강도별 Max 20x vs Max 5x+API 비용 비교 (시각적 바 차트)
- 5인 팀 기준 총 비용 비교 (현재/Max/Team Premium)
- 최종 결론: Team Premium 연간 결제 추천
2026-03-02 11:07:47 +09:00
김보곤
5863e3148b fix: [claude-code] body_html_ko 미존재 시 fallback 처리 2026-03-02 10:57:05 +09:00
김보곤
f152d1537f feat: [claude-code] 뉴스 페이지 한/영 토글 기능 추가
- Google Translate API 연동으로 릴리즈 노트 한국어 자동 번역
- 코드 블록 보호 처리 (번역 대상에서 제외)
- 긴 텍스트 단락 분할 번역 지원
- Alpine.js 한국어/English 토글 버튼 (localStorage 저장)
- 기본값: 한국어
2026-03-02 10:55:32 +09:00
김보곤
5a0bb45b51 feat: [claude-code] Claude Code 뉴스 페이지 추가
- GitHub Releases API 연동 서비스 (1시간 캐싱)
- 뉴스 컨트롤러 + Blade 뷰 (릴리즈 카드 목록)
- /claude-code/news 라우트 그룹 등록
2026-03-02 10:41:50 +09:00
김보곤
b2226341ee fix: [interview] 대분류 하위 '+ 중분류 추가' 버튼 개선
- 기존 '+' 단일문자 → '+ 중분류 추가' 텍스트 버튼으로 변경
- children 목록 하단에 항상 표시되도록 위치 이동
2026-02-28 21:33:47 +09:00
김보곤
2a45b6bfe8 feat: [interview] 카테고리 계층 구조(대분류/중분류) 지원
- InterviewCategory 모델에 parent/children 관계 추가
- Service: getTree, getProjectTree 루트+children eager loading
- Service: createCategory에 parent_id 지원
- Service: cloneMaster 2단계 계층 복제
- Controller: storeCategory validation에 parent_id 추가
- UI: CategorySidebar/DomainSidebar 트리 뷰 렌더링
- UI: findCategory 헬퍼로 트리 내 카테고리 검색
2026-02-28 21:23:30 +09:00
김보곤
9823945807 feat: [payroll] 전표 생성 도움말 모달 추가
- 전표 생성 버튼 옆에 i 도움말 아이콘 버튼 추가
- 분개 구조, 전표일자/번호, 주의사항, 수정/삭제 안내 포함
2026-02-28 20:31:15 +09:00
김보곤
baf1fb5ddf fix: [document-templates] 양식 디자이너 미리보기 렌더러 분기 처리
- builder_type=block 템플릿은 buildBlockPreviewHtml() 사용
- 레거시 템플릿은 기존 buildDocumentPreviewHtml() 유지
2026-02-28 20:16:37 +09:00
김보곤
18fb810f81 fix: [document] '블록 빌더' → '양식 디자이너' 명칭 변경 2026-02-28 20:11:45 +09:00
김보곤
74400cd6e2 feat: [payroll] 급여 일반전표 자동 생성 기능
- PayrollController에 generateJournalEntry() 메서드 추가
- 해당월 급여 합산 → 분개 행 자동 구성 (차변 801 급여, 대변 207/205)
- 중복 체크 (source_type=payroll, source_key=payroll-YYYY-MM)
- 0원 항목 행 제외, 차대 균형 검증
- 급여관리 페이지에 전표 생성 버튼 추가
2026-02-28 20:05:58 +09:00
김보곤
7ba438b41b feat: [interview] 인터뷰 시나리오 고도화 Phase 1 구현
- InterviewProject/Attachment/Knowledge 모델 3개 신규
- 기존 모델 확장 (Question, Answer, Session, Category)
- 서비스 확장: 프로젝트 CRUD, 첨부파일, 지식 관리
- 컨트롤러 확장: 프로젝트/첨부/지식 API 엔드포인트
- 라우트 20개 추가 (프로젝트, 첨부, 지식)
- InterviewQuestionMasterSeeder: 8개 도메인 80개 질문
- UI 확장: 프로젝트 모드/기존 모드 전환
  - 프로젝트 선택 바, 상태 바, 도메인 사이드바
  - 탭 구조 (질문편집/인터뷰/첨부파일/추출지식)
  - 구조화 답변 입력 (테이블, 수식, 다중선택 등)
  - 첨부파일 업로드/관리
  - 지식 수동 추가/검증/필터링
2026-02-28 20:02:47 +09:00
김보곤
86cc18020a fix: [document] 블록 빌더 Blade 이스케이프 오류 수정
- {{today}} → @{{today}} (Blade가 PHP 상수로 해석하는 문제)
2026-02-28 19:54:34 +09:00
김보곤
8b55bef385 feat: [document] 범용 블록 빌더 Phase 1 구현
- block-editor.blade.php: 3패널 UI (Palette + Canvas + Properties)
- Alpine.js blockEditor() 컴포넌트 (CRUD, Undo/Redo, SortableJS)
- 기본 Block 6종: heading, paragraph, table, columns, divider, spacer
- 폼 필드 Block 7종: text, number, date, select, checkbox, textarea, signature
- BlockRendererService: JSON → HTML 렌더링 서비스
- 컨트롤러 분기: builder_type = 'block' → 블록 빌더 뷰
- 라우트 추가: block-create, block-edit
- API store/update에 schema JSON 처리 추가
- index 페이지에 블록 빌더 진입 버튼 추가
- 목록에 builder_type 뱃지 표시
2026-02-28 19:31:57 +09:00
김보곤
2aea6962ef feat: [payroll] 급여계산 도움말 모달 추가
- 급여관리 제목 옆 i 아이콘 버튼 추가
- 모달 내용: 전체 흐름, 지급항목, 4대보험, 세금, 실수령액, 예시, 상태 흐름, 팁
- 현재 설정된 요율/상하한 값을 동적으로 반영
2026-02-28 18:30:39 +09:00
김보곤
3443fd7b05 feat: [payroll] 급여명세서 엑셀 내보내기 CSV → XLSX 변환
- 제목행 병합 + 14pt 굵게 가운데 정렬
- 남색(#1F3864) 헤더 + 흰색 글씨 + wrapText
- 금액 열(D~O) #,##0 천단위 서식 + 오른쪽 정렬
- 합계행 SUM 수식 + 회색 배경 + 굵게
- 빈 행 포함 최소 10행까지 전체 테두리
- 파일명: 급여명세서_{year}년{month}월_{Ymd}.xlsx
2026-02-28 18:24:33 +09:00
김보곤
cb0f72e36c fix: [barobill] SVG viewBox/path 속성 이중 인코딩 오류 수정
- " 로 이스케이프된 SVG HTML을 component prop에 직접 전달하면
  sanitizeComponentAttribute()가 이중 인코딩하여 SVG 파서 에러 발생
- @php 블록에서 변수로 정의 후 prop 전달 방식으로 변경
- 영향 파일: settings, etax, hometax 바로빌 페이지 3개
2026-02-28 17:51:54 +09:00
김보곤
d697f80340 fix: [hr] 사업소득자 임금대장 버튼 라벨 CSV→엑셀 내보내기 변경 2026-02-28 17:47:56 +09:00
김보곤
c36539f2bd fix: [hr] XLSX 내보내기 Color 객체 → argb 배열로 수정
- applyFromArray()에 Color 객체 직접 전달 시 TypeError 발생
- font/fill/border color를 ['argb' => 'FF...'] 배열 형태로 변경
2026-02-28 17:43:14 +09:00
김보곤
f372791ba9 feat: [hr] 사업소득자 임금대장 CSV→XLSX 내보내기 변환
- PhpSpreadsheet로 스타일링된 XLSX 생성 (제목, 남색 헤더, 테두리)
- 금액 열 천 단위 구분(#,##0), 지급일자 빨간색
- earner 프로필 일괄 로드로 사업자등록번호/주민번호 표시
2026-02-28 17:13:01 +09:00
김보곤
90d7639884 docs: [equipment] 설비관리 도움말 업데이트 - 관리자 정/부, QR 모바일 점검, 다주기 점검 내용 추가
- 담당자 → 관리자 정/부 용어 전체 변경
- QR 코드 생성/다운로드/인쇄 안내 추가
- QR 모바일 점검 섹션 신규 추가 (흐름, 특징, 팁)
- 6단계 점검 주기(일일~반년) 안내 추가
- 휴일/주말 일일점검 제한 설명 추가
- 점검 데이터 초기화 안내 추가
- FAQ 2건 추가 (QR 모바일 점검, 데이터 초기화)
2026-02-28 16:23:03 +09:00
김보곤
744acca395 feat: [equipment] 설비 목록에 관리자 정/부 열 분리 및 QR 코드 열 추가
- 담당자 단일 열 → 관리자 정, 관리자 부 2열로 분리
- QR 코드 아이콘 열 추가 (클릭 시 모달로 QR 표시)
- QR PNG 다운로드 기능 포함
2026-02-28 16:17:27 +09:00
김보곤
9f0e038ffe fix: [mobile] 모바일 점검 페이지 담당자 → 관리자 정/부 라벨 변경
- 담당: → 관리자 정: 으로 변경
- 관리자 부 표시 추가
2026-02-28 16:15:04 +09:00
김보곤
272a4842e8 fix: [leaves] 최종결재자 조회 시 reorder() 적용
- steps() 관계의 기본 orderBy(ASC)와 충돌 방지
- reorder('step_order', 'desc')로 마지막 승인자 정확히 조회
2026-02-28 16:03:32 +09:00
김보곤
05845b5311 fix: [equipment] 담당자 → 관리자 정/부 라벨 변경 및 sub_manager_id 저장 버그 수정
- 설비 등록/수정 폼 라벨: 정 담당자 → 관리자 정, 부 담당자 → 관리자 부
- 상세보기(basic-info) 라벨 동일 변경
- StoreEquipmentRequest, UpdateEquipmentRequest에 sub_manager_id 검증 규칙 추가
- 기존에 sub_manager_id가 validated()에서 누락되어 저장되지 않던 버그 수정
2026-02-28 16:03:00 +09:00
김보곤
4d375d2725 fix: [leaves] 결재 승인 시 최종결재자 ID 조회 수정
- $approval->steps (캐시된 컬렉션) → $approval->steps() (fresh 쿼리)로 변경
- 트랜잭션 내에서 업데이트된 step이 정확히 반영되도록 수정
2026-02-28 16:01:36 +09:00
김보곤
50c0c9ce50 feat: [leaves] 휴가신청 → 전자결재 자동 연동
- LeaveService: 휴가 신청 시 결재 자동 생성+상신
- LeaveService: approveByApproval/rejectByApproval 메서드 추가
- LeaveService: deletePendingLeave 시 연결된 결재 자동 취소
- ApprovalService: 승인/반려/회수/전결 시 휴가 상태 자동 동기화
- Leave 모델: approval_id, approval() 관계 추가
- UI: pending 휴가에 결재 상세 링크 추가, 승인/반려 버튼 제거
2026-02-28 15:54:41 +09:00
김보곤
9a69af98f0 fix: [equipment] 휴일/주말 차단을 일일 점검에만 적용
- 주간~반년 점검은 열이 기간을 대표하므로 비근무일 차단 제거
- 그리드 헤더, 셀 클릭, 판정 계산 모두 $isDaily 조건 추가
- toggleDetail/setResult 서버 차단도 daily에서만 적용
2026-02-28 15:50:36 +09:00
김보곤
3d8606f4d5 feat: [equipment] 점검 데이터 초기화 기능 추가
- 개별 설비 초기화: 장비명 하단 초기화 아이콘 클릭 → 확인 → 해당 월 점검 삭제
- 전체 초기화: 조회 버튼 옆 '전체 초기화' 버튼 → 확인 → 전체 설비 점검 삭제
- DELETE /inspections/reset (개별), /inspections/reset-all (전체) API
- canInspect 권한 체크 적용 (개별 초기화)
- SweetAlert 확인 모달로 실수 방지
2026-02-28 15:46:01 +09:00
김보곤
bdc1b2d3e0 feat: [approval] 결재 알림 드롭다운을 모달로 전환 + 로그인 시 자동 팝업
- 380px 드롭다운 → 560px 전체 화면 모달로 확장
- 로그인 시 미처리 결재 있으면 자동 팝업 (세션당 1회)
- ESC키/backdrop 클릭으로 모달 닫기 지원
- 모달 내 결재 카드: 긴급뱃지, 기안자, 양식, 날짜, 결재하기 링크
- 60초 뱃지 갱신 유지, per_page 10→20으로 확대
2026-02-28 15:33:05 +09:00
김보곤
775b654a26 fix: [equipment] 점검표 휴일 표시 및 주간 1주 저장 버그 수정
- 점검 그리드에 holidays 테이블 기반 휴일 표시 (빨간 배경)
- 휴일/주말 셀 클릭 차단 (UI + 서버 양쪽)
- 자동 판정에서 휴일 제외 (기존 주말만 제외 → 주말+휴일)
- 주간 1주 열 저장 누락 수정 (resolvePeriod에서 isoWeekYear 사용)
- toggleDetail, setResult에 비근무일 검증 추가
- 범례에 '휴일/주말 (점검 불가)' 안내 추가
2026-02-28 15:29:56 +09:00
김보곤
7568fabc18 fix: [approvals] 기안함 뱃지를 진행중 상태 건수로 변경
- 기존: draft(임시저장) 상태 건수 표시
- 변경: pending(진행중) 상태의 내 기안 건수 표시
2026-02-28 15:23:16 +09:00
김보곤
472a1e5c54 fix: [approvals] 뱃지 데이터 View::share 덮어쓰기 문제 수정
- AppServiceProvider와 ViewServiceProvider에서 각각 View::share 호출하여 덮어쓰기 발생
- ViewServiceProvider 한 곳에서 영업+결재 뱃지를 통합 관리하도록 수정
- AppServiceProvider에서 뱃지 로직 제거
2026-02-28 15:21:16 +09:00
김보곤
19eea07041 feat: [equipment] 설비 QR 코드 점검 시스템 추가
- 설비 상세 basic-info 탭에 QR 코드 표시 (qrcode.js CDN)
- QR PNG 다운로드/인쇄 기능
- 모바일 전용 레이아웃 (layouts/mobile.blade.php)
- 모바일 점검 페이지 (/m/inspect/{id})
- setResult API (PATCH /inspections/set-result)
- 4버튼 직접 결과 설정 (양호/이상/수리/취소)
- 전체 양호 일괄 처리
- 주기 탭 전환 (활성 주기만 표시)
2026-02-28 15:17:40 +09:00
김보곤
fa086147de feat: [approvals] 사이드바 결재 뱃지 색상 함별 차별화
- 결재함: 빨간색(#ef4444), 기안함: 파란색(#3b82f6), 참조함: 초록색(#10b981)
- 뱃지 데이터에 color 속성 추가, menu-item에서 inline style로 적용
2026-02-28 15:16:54 +09:00
김보곤
7a1b502f5c fix: [approvals] 사이드바 뱃지 Blade 컴포넌트 스코프 격리 문제 수정
- View::with() → View::share()로 변경하여 <x-sidebar.menu-item> 컴포넌트에서 $menuBadges 접근 가능하도록 수정
2026-02-28 15:13:19 +09:00
김보곤
a844dcb0ac feat: [approvals] 결재 알림 뱃지 시스템 구현
- 사이드바: 결재 대기/기안함/참조함 메뉴에 빨간 뱃지 표시
- 헤더: 알림 벨 클릭 시 결재 대기 목록 드롭다운 표시
- 드롭다운: 제목/기안자/양식/긴급 여부/일시 표시, 클릭 시 상세 이동
- 뱃지 건수 60초 자동 갱신 (API: /api/admin/approvals/badge-counts)
2026-02-28 15:08:42 +09:00
김보곤
367a7bbe56 feat: [approvals] 결재선 카드 드래그 앤 드롭 순서 변경
- SortableJS로 결재선 요약 카드 드래그 앤 드롭 지원
- 순서 변경 시 Alpine 데이터 동기화 및 카드 라벨 자동 갱신
- hover/grab/ghost/chosen 시각 피드백 CSS 추가
- 2명 이상 시 '드래그하여 순서를 변경할 수 있습니다' 힌트 표시
- CSS ::after로 카드 간 화살표 표시 (드래그 시 자연스럽게 이동)
2026-02-28 14:55:15 +09:00