Commit Graph

131 Commits

Author SHA1 Message Date
김보곤
29ca022321 feat: [hr] 인사관리 사원관리 Phase 1 구현
- Employee, Position 모델 생성 (tenant_user_profiles, positions 테이블)
- EmployeeService 생성 (CRUD, 통계, 필터/검색/페이지네이션)
- 뷰 컨트롤러(HR/EmployeeController) + API 컨트롤러 생성
- Blade 뷰: index(통계카드+HTMX테이블), create, edit, show, partials/table
- 라우트: web.php(/hr/employees/*), api.php(/admin/hr/employees/*)
2026-02-26 18:40:01 +09:00
김보곤
5e164b1f26 feat: [equipment] 엑셀 Import 시 설비 사진 추출/업로드 기능 추가
- EquipmentPhotoService: uploadPhotoFromPath() 추가, 압축 메서드 public 전환
- EquipmentImportService: Drawing 추출/임시파일 저장/사진 업로드 통합
- EquipmentController: Import 응답 메시지에 사진 업로드 결과 포함
2026-02-26 13:28:40 +09:00
김보곤
0c9d2fd441 feat: [equipment] 사진 멀티 업로드(GCS) + 엑셀 Import 기능 추가
- EquipmentPhotoService: GCS 기반 사진 업로드/삭제/조회 (최대 10장)
- EquipmentImportService: 엑셀 파싱 → 설비 일괄 등록 (한글 헤더 자동 매핑)
- API: 사진 업로드/목록/삭제, Import 미리보기/실행 엔드포인트
- 뷰: create/edit에 드래그앤드롭 사진 업로드, show에 갤러리 표시
- import.blade.php: 3단계 Import UI (파일선택 → 미리보기 → 결과)
- phpoffice/phpspreadsheet 패키지 추가
2026-02-26 13:28:40 +09:00
김보곤
11a7f89216 feat: [equipment] 설비관리 모듈 구현
- 모델 6개 (Equipment, InspectionTemplate, Inspection, InspectionDetail, Repair, Process)
- 서비스 3개 (Equipment, Inspection, Repair)
- API 컨트롤러 3개 + FormRequest 4개
- Blade 컨트롤러 + 라우트 등록
- 뷰: 대시보드, 등록대장(CRUD), 일상점검표(캘린더 그리드), 수리이력
2026-02-26 13:28:18 +09:00
김보곤
401ac649ae feat: [sms] SMS 발송 테스트 메뉴 추가
- SmsController (WEB): 카카오톡 패턴 동일한 HX-Redirect 처리
- BarobillSmsController (API): 발송, 발신번호 조회/확인, 전송상태 조회
- SMS 발송 테스트 블레이드 뷰: 발신번호 목록, 바이트 카운터, 발송 결과 표시
- web.php: barobill/sms/send 라우트 추가
- api.php: barobill/sms API 라우트 4개 추가
2026-02-26 12:40:49 +09:00
김보곤
9a7c548246 style: Pint 포맷팅 적용 2026-02-25 11:45:01 +09:00
김보곤
e12d0d1607 fix: [barobill] 알림톡 발송 파라미터 구조 전면 수정
- SenderID: 바로빌 계정 ID (barobill_id) 사용
- YellowId: 카카오톡 채널 ID 필수 전달 (기존에 빈값)
- SmsReply: 'N' (대체문자 미발송) 또는 'S' (발송) 명시
- 템플릿 본문: API에서 조회 후 변수 치환 (정확한 포맷 유지)
- getKakaotalkSenderId → getKakaotalkChannelId 이름 변경
- EsignPublicController: 잘못된 필드명(corp_num, is_test_mode) 수정
2026-02-24 10:04:54 +09:00
김보곤
df25fac5a8 fix: [barobill] 회원사 조회 시 암호화 복호화 실패 방어 처리
- show() 메서드의 has_password 체크에서 encrypted cast 복호화 실패 시 getRawOriginal()로 폴백
2026-02-21 14:03:06 +09:00
김보곤
b4d737948f fix: [barobill] 회원사 수정 시 바로빌 아이디 변경 가능하도록 개선
- 수정 모달에서 바로빌 아이디 필드 표시 (기존: hidden)
- 컨트롤러 update 메서드에 barobill_id 유효성 검증 추가
- 아이디/비밀번호 모두 '변경 시에만 입력' 힌트 표시
2026-02-21 13:54:08 +09:00
김보곤
13eab75da3 feat: [barobill] 회원사관리 페이지에서 미등록 테넌트 자동 생성
- 본사(tenant_id=1) 접근 시 barobill_members 레코드가 없는 테넌트에 기본 레코드 자동 생성
- 신규 생성 레코드는 status=pending, server_mode=test 기본값
- 테넌트의 사업자번호, 회사명, 대표자명을 자동 매핑
2026-02-21 11:21:24 +09:00
김보곤
1cf48f7c53 refactor: [barobill] chandj 레거시 DB 커넥션 및 동기화 기능 제거
- config/database.php에서 chandj 커넥션 정의 제거
- BarobillConfigController에서 syncCompanies(), getCompanies() 메서드 제거
- api.php에서 barobill/companies 동기화 라우트 제거
- 로컬/서버 .env에서 CHANDJ_DB_* 환경변수 제거
2026-02-21 10:47:51 +09:00
df3feeade9 feat:품목관리 수식 산출 입력폼에 제품모델/설치타입/마감타입 추가
- 제품모델(KSS01~KDSS01), 설치타입(벽면형/측면형/혼합형), 마감타입(SUS/EGI) select 추가
- FG 코드 파싱으로 입력폼 자동 세팅 (FG-KQTS01-벽면형-SUS → 각 필드 매핑)
- calculateFormula() API 호출 시 새 파라미터 전송
- ItemManagementApiController에서 product_model/installation_type/finishing_type 수신 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:41:14 +09:00
a2c8731937 feat:품목관리 수식 산출에 전원(단상/삼상) 선택 추가
- 수식 입력 패널에 전원 Select 추가 (단상 220V / 삼상 380V)
- calculateFormula()에서 MP 변수 수집 및 API 전송
- Controller에서 MP 파라미터 수신 후 FormulaApiService로 전달

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:50:24 +09:00
f271f8bdc3 feat:품목관리 3-Panel 페이지 신규 구현 + FormulaEvaluatorService 연동
- 품목관리 3-Panel 레이아웃 (좌:목록, 중:BOM/수식산출, 우:상세)
- FormulaApiService로 API 견적수식 엔진 연동
- FG 품목 선택 시 기본값(W:1000, H:1000, QTY:1) 자동 산출
- 수식 산출 결과 트리 렌더링 (그룹별/소계/합계)
- 중앙 패널 클릭 시 우측 상세만 변경 (skipCenterUpdate)
- API 인증 버튼 전역 헤더로 이동 (모든 페이지에서 사용 가능)
- FormulaApiService에 Bearer 토큰 지원 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:50:24 +09:00
김보곤
d69f4ef5d3 feat:바로빌 카카오톡(알림톡/친구톡) 서비스 구현
- BarobillService에 KAKAOTALK SOAP 클라이언트 추가
  - 채널/템플릿 관리, 알림톡/친구톡 발송, 전송조회/예약취소 API
- BarobillKakaotalkController (API) 생성: 15개 엔드포인트
- KakaotalkController (페이지) 생성: 5개 페이지
- 라우트 등록 (web.php, api.php)
- Blade 뷰 5개 생성: 대시보드, 채널관리, 템플릿관리, 발송, 전송내역

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 14:11:15 +09:00
555a502d0c refactor:문서양식 섹션/컬럼 저장 시 ID 보존 upsert 방식 적용
- sections, columns는 삭제→재생성 대신 ID 보존 upsert로 변경
- document_data.section_id, column_id FK 참조 깨짐 방지
- 요청에 없는 섹션/컬럼/항목만 선택적 삭제

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:41:13 +09:00
0f5c509bed feat:문서관리 필터 기능 개선 - 양식분류 필터 추가, onchange 즉시 검색
- 상태/템플릿 필터에 onchange 즉시 검색 적용
- 양식분류(category) 필터 추가 (API + 뷰 컨트롤러 + 프론트)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 03:38:30 +09:00
1969001338 feat(MNG):문서 양식 편집 개선 및 이미지 업로드 API 연동
- DocumentTemplateApiController: 이미지 업로드 API 파일저장소 연동
- 양식 편집: 미리보기 모달 개선
- 문서 편집: UI 개선
- 빌드 에셋 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:30:16 +09:00
0e2de0002a feat(MNG): 채번 규칙 관리 기능 추가
- NumberingRule 모델, 서비스, 컨트롤러 추가
- API/Blade 라우트 등록
- CRUD + 미리보기 기능

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:00:08 +09:00
f74288e5e5 feat:문서 템플릿 기본필드 field_key 연동키 드롭다운 추가
- DocumentTemplateController: common_codes(doc_template_basic_field) 조회하여 뷰에 전달
- prepareTemplateData: basic_fields에 field_key 포함
- DocumentTemplateApiController: basic_fields 저장 시 field_key 포함
- edit.blade.php: 기본필드 행에 '연동키 선택' 드롭다운 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 14:24:25 +09:00
16fb78fe5e feat: 문서 양식 관리 및 수입검사 양식 개선
- 문서 양식 API 컨트롤러 및 뷰 개선
- 수입검사 양식 시더 업데이트
- 문서 미리보기 뷰 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 03:27:32 +09:00
aedec2a2ae fix:동일 분류 내 연결품목 중복 방지 및 복사 시 연결품목 제외
- store/update 시 같은 category의 다른 템플릿에 이미 연결된 품목이 있으면 422 에러 반환
- duplicate 시 linked_item_ids, linked_process_id, linkValues 복사하지 않음
- 레거시(linked_item_ids)와 신규(template_link_values) 양쪽 경로 모두 검증

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 15:16:10 +09:00
d910643558 feat:문서양식 목록에 연결 품목 컬럼 추가
- DocumentTemplateApiController: 연결 품목 ID로 품목명 조회
- table.blade.php: 연결 품목 컬럼 추가 (최대 3개 표시 + 더보기)
- index.blade.php: 카테고리 필터 code/name 구조 적용
- preview-modal.blade.php: 기본필드 테이블 비율 조정 (15:35:15:35)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 21:58:46 +09:00
e932c0d8a3 Merge remote-tracking branch 'origin/develop' into develop 2026-02-05 10:49:29 +09:00
b14b991d1c feat:검사 기준서 동적 필드 + 자동 하이라이트 + 미리보기 개선
- 문서 작성 시 연결 품목 규격(두께/너비/길이) 기반 자동 하이라이트
- 미리보기에서 field_values 동적 필드 데이터 정상 표시
- DocumentTemplateController에서 field_values 직렬화 추가
- DocumentController에 linkedItemSpecs 조회 로직 추가
- Item 모델 attributes JSON cast 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 09:26:13 +09:00
김보곤
471ec88357 feat:자금계획일정 월별 복사 기능 추가
- POST /api/admin/fund-schedules/copy 엔드포인트 추가
- FundScheduleService에 copySchedulesToMonth() 메서드 추가
- 월 네비게이션 옆 일정복사 버튼 및 모달 UI 구현
- 날짜 조정 로직 (31일→28/29/30일) 포함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 08:42:21 +09:00
cb097ad523 feat:검사 기준서 동적화 + 소스 테이블 통합 검색
- 동적 필드/연결 모델 추가 (SectionField, Link, LinkValue, Preset)
- 통합 검색 API (SourceTableSearchController) - items/processes/lots/users
- 템플릿 편집 UI: 소스 테이블 드롭다운 + datalist 검색/선택
- 문서 작성/인쇄/상세 뷰: getFieldValue() 기반 동적 렌더링
- DocumentTemplateApiController: source_table 기반 저장/복제
- DocumentController: sectionFields/links eager loading 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 08:38:00 +09:00
3443e57b67 Merge remote-tracking branch 'origin/develop' into develop 2026-02-03 11:23:58 +09:00
430e59b241 feat:문서양식 기본정보 + 결재라인 기능 개선
- 회사명: 생성 시 테넌트 company_name 자동입력
- 분류: select 변경 (수입검사/중간검사/품질검사 + 커스텀)
- 수입검사 → 품목 다중선택 (RM, SM 필터)
- 품질검사 → 공정 선택
- 결재라인 단계명: text → select (작성/검토/승인/참조)
- 작성 단계: (작성자) 표시, user_id=null
- 검토/승인/참조: 테넌트 사용자 검색/선택, user_id 저장
- 공정 검색 API, 테넌트 사용자 검색 API 신규 추가
- ItemApiController에 item_type, ids 파라미터 지원 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 10:33:48 +09:00
김보곤
425e0e79d6 refactor:바로빌 서버 모드를 회원사별 개별 설정으로 변경
기존 전역 세션 기반 서버 모드 → 회원사별 개별 설정 방식으로 변경

주요 변경사항:
- BarobillMember 모델: server_mode 필드 및 accessor 추가
- BarobillService: switchServerMode() 메서드 추가 (동적 서버 전환)
- BarobillMemberController: 회원사별 서버 모드 변경 API 추가
- 회원사 목록 테이블: 서버 모드 컬럼 추가 (클릭 시 변경 모달)
- 서버 변경 확인 모달: 요금 부과 경고 및 동의 체크박스 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:48:13 +09:00
김보곤
56aa538b3b feat:바로빌 테스트/운영 서버 선택 기능 추가
- 회원사 관리 페이지에 서버 선택 토글 UI 추가
- 서버 모드 전환 API 추가 (GET/POST /api/admin/barobill/members/server-mode)
- BarobillService에서 세션 기반 서버 모드 읽기 지원
- 선택한 서버 설정이 바로빌 API 호출에 적용됨

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:40:35 +09:00
김보곤
26e007c6a0 feat:바로빌 서비스 설정 체크박스 즉시 저장 기능 추가 2026-02-02 20:57:44 +09:00
623d6992f4 feat:검사주기(n/c값) 및 검사기준(standard_criteria) 기능 추가
- 검사주기 입력을 n값, c값, 텍스트 3개로 분리
- standard_criteria JSON으로 구조화된 비교기준 저장 (min/max + 이상/초과/이하/미만)
- 미리보기 측정치 셀 수를 frequency_n 기반 동적 렌더링
- 그룹 항목 미리보기에서 측정치/검사방식/주기/판정 행별 개별 표시
- ID 비교 === → == 수정 (문자열/숫자 타입 불일치 버그)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:37:06 +09:00
202183d621 fix:미리보기 테이블 렌더링 개선 - 그룹항목 rowspan, 측정치 colspan 설정별 적용, 테넌트 필터 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 18:04:37 +09:00
0ec0f8071b feat:검사기준서 탭 개선 - 공차/범위, 검사방식 드롭다운, 측정유형 추가
- 검사기준서 테이블 7컬럼→9컬럼 (공차/범위, 검사방식, 측정유형)
- 검사방식 select: common_codes inspection_method 그룹에서 동적 로드
- 검사방식 변경 시 측정유형 자동매핑 (수동 변경 가능)
- saveRelations, duplicate, prepareTemplateData에 새 필드 반영
- 공통코드 JSON API 엔드포인트 추가 (/api/admin/common-codes/{group})

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 16:29:45 +09:00
4efd95e2ba feat:Phase 2.4 문서 목록/검색/필터 완성 - 날짜 범위 필터 + 삭제 기능
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 05:07:33 +09:00
5111db24c2 feat:결재 워크플로우 구현 (Phase 2.3)
- API: submit(DRAFT→PENDING), approve(단계별 승인), reject(반려 사유 필수)
- 전체 승인 완료 시 자동 APPROVED, 재제출 시 결재라인 초기화
- edit: 결재 제출 버튼 + submitForApproval() JS
- show: 승인/반려 버튼, 반려 사유 모달, 결재 현황 속성 수정, 상태 배지 CSS
- 라우트: submit/approve/reject 3개 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 05:00:48 +09:00
d43f8d0ba1 fix:카테고리 스코프 분류 버그 수정, 복사 시 소프트삭제 복원, UI 개선
- isset→array_key_exists: description NULL인 그룹 스코프 오분류 수정
- 글로벌+테넌트 필터 버튼 추가 (공통코드/카테고리)
- 전체선택 체크박스를 헤더 아이콘 앞에 배치
- 스크롤 영역 calc(100vh-180px) 화면 기준으로 변경
- 복사 시 소프트삭제된 동일 코드 존재하면 복원 처리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 04:51:32 +09:00
df762d6cf4 feat:문서 데이터 입력 UI 구현 (Phase 2.2)
- 섹션별 동적 검사 테이블 렌더링 (complex/select/check/measurement/text)
- 정적 컬럼 자동 매핑 (NO, 검사항목, 검사기준, 검사방식, 검사주기)
- complex 컬럼 서브 라벨 행 (측정치 n1/n2/n3)
- 종합판정 + 비고 Footer 영역
- JS 폼 데이터 수집 (기본필드 + 섹션 테이블 데이터 + 체크박스)
- saveDocumentData() 공통 메서드 (section_id/column_id/row_index EAV 저장)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 04:43:12 +09:00
7635373a45 feat:문서관리 Phase 1.3~2.1 구현 (시드데이터, 복제, 문서생성)
- Phase 1.3: EGI/SUS 수입검사 시드 데이터 생성 (IncomingInspectionTemplateSeeder)
- Phase 1.5: 양식 복제 기능 (duplicate API, 테이블 버튼, JS)
- Phase 2.1: 문서 생성 보완
  - 문서번호 카테고리별 prefix (IQC/PRD/SLS/PUR-YYMMDD-순번)
  - 결재라인 초기화 (template.approvalLines → document_approvals)
  - 기본필드 뷰 속성 수정 (field_type, Str::slug field_key)
  - store()에 DB 트랜잭션 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 04:32:35 +09:00
b6a3c4b506 feat:공통코드/카테고리 벌크 글로벌 복사, 동기화 환경설정 공통화
- 공통코드/카테고리 테넌트→글로벌 체크박스 벌크 복사 기능 추가
- 이미 대상에 존재하는 항목 체크박스 disabled 처리 (양방향)
- 공통코드 토글 크기 카테고리와 동일하게 축소
- 동기화 환경설정 모달을 공통 partial로 분리
- 동기화 리스트에서 불필요한 타입 컬럼 제거

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:16:44 +09:00
c65d3f49dc feat: 문서 관리 시스템 MNG 관리자 패널 구현 (Phase 2)
- Document 관련 모델 4개 생성 (Document, DocumentApproval, DocumentData, DocumentAttachment)
- DocumentController 생성 (목록/생성/상세/수정 페이지)
- DocumentApiController 생성 (AJAX CRUD 처리)
- 문서 관리 뷰 3개 생성 (index, edit, show)
- 웹/API 라우트 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:51:23 +09:00
김보곤
87379f3665 Merge develop and fix conflicts in routes/web.php (AI config and Categories) 2026-01-28 13:57:34 +09:00
29949d66eb feat:카테고리 관리 기능 추가
- CategoryController: 카테고리 관리 페이지
- CategoryApiController: 테넌트별 카테고리 CRUD API
- GlobalCategoryApiController: 글로벌 카테고리 관리 API
- Category, GlobalCategory 모델 추가
- 카테고리 관리 뷰 (index, partials)
- config/categories.php 설정 파일

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 12:50:15 +09:00
pro
a834beaa10 feat:명함 OCR 시스템 구현
- AiConfig 모델: AI API 설정 관리
- BusinessCardOcrService: Gemini Vision API 호출
- BusinessCardOcrController: OCR API 엔드포인트
- AiConfigController: AI 설정 CRUD
- create.blade.php: 드래그앤드롭 명함 인식 UI
- AI 설정 관리 페이지 추가
2026-01-27 23:00:52 +09:00
pro
20d1266953 merge: 원격 변경사항 병합 (MngMenuSeeder 삭제 수락) 2026-01-27 16:56:28 +09:00
pro
d036be1ec3 feat:바로빌 과금 정책 DB 관리 기능 추가
- BarobillPricingPolicy 모델 추가
- BarobillPricingPolicySeeder 추가 (초기 정책 데이터)
- 과금관리 페이지에 정책 관리 탭 추가 (본사 전용)
- 정책 수정 모달 및 API 엔드포인트 추가
- BarobillUsageService에서 DB 정책 사용하도록 수정

정책 항목:
- 법인카드 등록: 기본 3장, 추가 1장당 5,000원
- 계산서 발행: 기본 100건, 추가 50건당 5,000원
- 계좌조회 수집: 기본 1계좌, 추가 1계좌당 10,000원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 15:17:25 +09:00
pro
39161d1203 feat:바로빌 과금관리 시스템 구현
- 모델: BarobillSubscription, BarobillBillingRecord, BarobillMonthlySummary
- 서비스: BarobillBillingService (구독/과금 처리 로직)
- API 컨트롤러: BarobillBillingController (구독/과금 CRUD)
- 뷰: 과금 현황 탭, 구독 관리 탭, 통계 카드, 상세 모달
- 라우트: 웹/API 라우트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 15:03:44 +09:00
pro
a759001670 feat:바로빌 사용량조회 화면 구현
- BarobillUsageService: 사용량 집계 로직 (계좌/카드/세금계산서/홈텍스)
- BarobillUsageController: API 엔드포인트 (목록/통계/상세/엑셀)
- HTMX 기반 UI: 기간필터, 통계카드, 테이블, 상세모달
- 서비스별 단가 적용 (세금계산서 100원, 그 외 10원)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 14:21:38 +09:00
3f320bbc90 feat:문서양식관리 기능 추가 및 권한 토글 개선
- 문서양식관리 CRUD 기능 구현 (생산관리 > 문서양식관리)
- 결재라인, 섹션, 컬럼 동적 관리 (Vanilla JS)
- 섹션별 이미지 업로드 기능
- SortableJS 드래그앤드롭 순서 변경
- 문서 미리보기 모달
- document_type 글로벌 코드 추가 (품질, 생산, 영업, 구매, 일반, 기타)
- 역할/부서 권한 토글 시 페이지 새로고침 방지 (hx-swap="none")

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:31:02 +09:00