Commit Graph

863 Commits

Author SHA1 Message Date
김보곤
efd8d96156 feat: [sidebar] 사이드바 메뉴 즐겨찾기 기능 추가
- MenuFavorite 모델 생성 (menu_favorites 테이블)
- SidebarMenuService에 즐겨찾기 CRUD 메서드 추가
- MenuFavoriteController 생성 (toggle/reorder API)
- 사이드바 상단에 즐겨찾기 섹션 표시
- 메뉴 아이템에 별 아이콘 추가 (hover 시 표시, 토글)
- 최대 10개 제한, 리프 메뉴만 대상
2026-03-06 14:34:27 +09:00
김보곤
ecd813c0b7 fix: [approval] 결재선 인원 목록에서 퇴사자 제외
- tenant_user_profiles.employee_status = 'resigned' 필터 추가
- search(), list() 두 엔드포인트 모두 적용
2026-03-06 14:31:48 +09:00
김보곤
5d7eb57578 feat: [document] 양식 디자이너(Block Builder) Phase 2 - 블록 런타임 렌더러
- BlockRendererService: view/edit/print 3모드 렌더링 지원
  - edit 모드: 폼 필드(input/select/textarea/checkbox) 생성
  - view 모드: 읽기 전용 데이터 표시
  - print 모드: 인쇄 최적화 레이아웃
- 데이터 바인딩: block.binding → document_data.field_key 매핑
- 체크박스 그룹: 콤마 구분 값으로 저장/복원
- 테이블 셀 편집: tbl_{blockId}_r{row}_c{col} 키로 EAV 저장
- edit.blade.php: 블록 빌더 서식 분기 (blockFormContainer)
- show.blade.php: 블록 빌더 조회 모드 분기
- DocumentController: renderBlockHtml() 메서드 추가
2026-03-06 10:14:39 +09:00
김보곤
7ffa8952fe feat: [approval] 사직서 양식 추가
- ResignationService 생성 (정보 조회 + PDF 생성)
- 사직서 전용 폼/조회 파셜 추가
- create/show 블레이드에 사직서 JS 로직 통합
- 컨트롤러 resignationInfo/resignationPdf 메서드 추가
- API 라우트 resignation-info, resignation-pdf 등록
2026-03-06 00:13:17 +09:00
김보곤
0445748b32 feat: [approval] 위촉증명서 기안/조회/PDF 기능 추가
- AppointmentCertService: 사원 위촉정보 조회 + TCPDF PDF 생성
- 기안 작성 폼: 사원 선택, 인적/위촉/발급 정보, 미리보기
- 상세 조회: 읽기전용 렌더링 + 미리보기/PDF 다운로드
- API: appointment-cert-info, appointment-cert-pdf 엔드포인트
2026-03-05 23:57:42 +09:00
김보곤
2bf13cc886 feat: [approval] 경력증명서 기안/조회/PDF 기능 추가
- CareerCertService: 사원 경력정보 조회 + TCPDF PDF 생성
- 기안 작성 폼: 사원 선택, 인적/경력/발급 정보, 미리보기
- 상세 조회: 읽기전용 렌더링 + 미리보기/PDF 다운로드
- API: career-cert-info, career-cert-pdf 엔드포인트
2026-03-05 23:41:20 +09:00
김보곤
7a277c6986 feat: [corporate-card] 카드분리 기능 추가
- 결제 내역 수정 모달에 카드분리 버튼 추가
- 카드별 배분금액 직접 입력 UI
- 균등 배분 / 비율 배분 / 해제 버튼
- 배분 합계 검증 (일치해야 저장 가능)
- card_splits 데이터 JSON 저장 (기존 items 확장)
- cardDeductions 로직: card_splits 우선 적용, 없으면 기존 비율 배분
2026-03-05 23:19:19 +09:00
김보곤
cf7ffb69f5 feat: [rd] 중대재해처벌법 실무 점검 대시보드 추가
- 6개 카테고리 34개 점검항목 인터랙티브 체크리스트
- Chart.js 도넛/막대 차트 실시간 통계
- React 기반 SPA 대시보드
2026-03-05 21:57:00 +09:00
김보곤
03f48dfe89 fix: [approval] 지출결의서 출금계좌 목록 테넌트 필터링 수정
- BankAccount 글로벌 스코프 의존 → 명시적 tenant_id 필터로 변경
- CorporateCard와 동일한 패턴으로 통일
2026-03-05 20:28:55 +09:00
김보곤
945305b54b feat: [tenant] 테넌트 편집에 인쇄용 회사 표시명 필드 추가
- 테넌트 편집 페이지에 '인쇄용 회사명' 입력 필드 추가
- 저장 시 tenant_settings 테이블에 display_company_name 저장
- 재직증명서 등 문서에서 표시명 우선 적용
2026-03-05 20:20:29 +09:00
김보곤
561883676e feat: [juil] 업무 Workflow 플로우차트 메뉴 추가
- 주일기업 기획 하위 '업무 Workflow' 메뉴 추가
- 11단계 업무처리과정 인터랙티브 플로우차트 구현
- 각 단계 클릭 시 상세정보(담당부서, 필요서류, SAM 연동) 표시
2026-03-05 19:41:26 +09:00
김보곤
21f930a52f feat: [tenant-settings] 회사 표시명 설정 추가
- 테넌트 설정에 '인쇄용 회사명' 입력 필드 추가
- 재직증명서 등 문서 인쇄 시 표시명 우선 적용
- 비워두면 기본 company_name 사용
2026-03-05 19:36:44 +09:00
김보곤
b16eb343a0 refactor: [approval] 재직증명서 DOCX 생성을 제거하고 content JSON 저장 + PDF 다운로드 방식으로 변경
- 상신 시 DOCX 생성 API 호출 제거, content JSON만 저장
- show 페이지에 PDF 다운로드 버튼 추가
- TCPDF 기반 PDF 생성 (기존 Pretendard 한글 폰트 활용)
- EmploymentCertService에서 generateDocx/createFileRecord 제거
2026-03-05 19:29:20 +09:00
김보곤
956f57d5d6 feat: [approval] 재직증명서 기안 기능 추가
- EmploymentCertService: 사원 정보 조회, DOCX 생성, 파일 레코드 생성
- API 엔드포인트: cert-info/{userId}, generate-cert-docx
- _certificate-form: 인적사항/재직사항/발급정보 입력 폼
- _certificate-show: 재직증명서 읽기전용 표시 파셜
- create/edit/show에 employment_cert 양식 분기 처리
- phpoffice/phpword 패키지 추가
2026-03-05 18:53:42 +09:00
김보곤
e19487683c feat: [approval] 기안함 페이지 사이즈 선택, 체크박스 선택삭제 기능 추가
- 페이지당 표시 건수 선택 (15/50/100/200/500, 기본 15)
- 첫 번째 열 체크박스 추가 (전체선택/개별선택)
- 선택삭제 버튼 및 bulk-delete API 엔드포인트 추가
2026-03-05 17:23:14 +09:00
김보곤
8239f03592 fix: [approval] 영구삭제 시 첨부파일/하위문서 정리 및 에러 로깅 추가
- 첨부파일(files 테이블) soft delete 처리
- 하위 문서(parent_doc_id) 참조 해제
- DB 트랜잭션으로 원자성 보장
- catch 블록에 report() 추가로 에러 로깅
2026-03-05 16:51:00 +09:00
김보곤
579a6caf39 feat: [payroll] 엑셀 export에 추가공제 항목 동적 열 포함
- 전 사원의 deductions JSON에서 고유 항목명 수집
- 개인별 추가공제 항목을 동적 열로 확장 출력
- 추가공제 열 헤더 보라색, 데이터 영역 연보라 배경 구분
- 추가공제 없는 사원은 해당 열 0 표시
2026-03-05 16:28:58 +09:00
김보곤
a112ace148 feat: [approval] 기안함 작성자 열 추가 및 슈퍼관리자 영구삭제 기능
- 기안함 테이블에 작성자 열 추가
- 슈퍼관리자: 전체 기안문서 조회 + 영구삭제 버튼
- forceDestroy API 엔드포인트 추가 (연관 Leave/Steps 함께 삭제)
- 기안함에서 휴가신청 시 Leave 자동 생성 로직 추가
2026-03-05 16:21:48 +09:00
김보곤
5adedb35bb feat: [approval] 기안함 휴가신청 → 휴가관리 연동
- 기안함에서 휴가/근태신청/사유서 양식 선택 시 전용 입력 폼 표시
- 양식코드별 유형 필터링 (leave/attendance_request/reason_report)
- saveApproval()에서 content에 구조화된 데이터 포함
- handleApprovalCompleted()에서 Leave 없을 시 자동 생성
- createLeaveFromApproval() 메서드 추가
2026-03-05 15:57:36 +09:00
김보곤
8671b218d1 fix: [receivable] 거래처별 요약 거래건수에 입금 건수 포함되는 오류 수정
- transactionCount가 차변+대변 전체를 카운트하여 실제 매출 건수의 2배로 표시됨
- 차변(매출 발생) 건수만 카운트하도록 수정
2026-03-05 15:26:53 +09:00
김보곤
be35f7ba49 feat: [hr] 연차잔여 탭에 재직상태 필터 추가 (전체/재직자/퇴직자)
- 필터 기본값: 재직자 (active + leave)
- 퇴직자 선택 시 resigned만 표시
- 전체 선택 시 모든 상태 표시
2026-03-05 15:16:54 +09:00
김보곤
5f81e5f356 feat: [hr] 사원관리 영업팀 제외 및 강제 제외 기능 추가
- 영업팀 포함 부서 사원 기본 제외 (외부직원)
- json_extra.is_excluded 플래그로 강제 제외/복원 토글
- 필터에 '제외 사원 표시' 체크박스 추가
- 제외 사원 시각적 구분 (주황 배경, 제외 뱃지)
2026-03-05 15:16:15 +09:00
김보곤
4cf208e2d8 refactor: [rd] CM송 → 나레이션 명칭 변경 + 결과 자동 스크롤
- 모든 UI 텍스트 CM송 → 나레이션으로 변경
- 버튼: 나레이션 제작
- 제작 시 결과 패널로 자동 스크롤
- 프롬프트, 다운로드 파일명, 저장 메시지 모두 변경
2026-03-05 14:51:09 +09:00
김보곤
b04b30f076 fix: [rd] CM송 저장 시 tenant_id를 session에서 가져오도록 수정 2026-03-05 14:48:04 +09:00
김보곤
975dd84564 feat: [rd] CM송 길이 슬라이더, 다운로드, 저장/목록 기능 추가
- 10~60초 5초 간격 길이 선택 슬라이더
- 음성 파일 WAV 다운로드
- 생성 결과 DB 저장 + 목록/상세/삭제 관리
- CmSong 모델 + tenant 스토리지 연동
2026-03-05 14:37:00 +09:00
김보곤
69f837ef99 feat: [rd] AI CM송 제작 기능 추가
- Gemini API 기반 CM송 가사 생성 + TTS 음성 생성
- 연구개발 대시보드에 CM송 제작 카드 추가
- 서버사이드 API 프록시로 API 키 보호
2026-03-05 14:13:41 +09:00
김보곤
d48a38eaf6 feat: [approval] 완료함 미읽음 알림 뱃지 기능 추가
- approvals 테이블에 drafter_read_at 컬럼 추가 (API 마이그레이션)
- 승인/반려/전결 완료 시 drafter_read_at = null 설정
- getBadgeCounts()에 completed_unread 카운트 추가
- 사이드메뉴 완료함에 미읽음 뱃지 표시 (주황색)
- 완료함 페이지 진입 시 일괄 읽음 처리
- 상세 페이지 열람 시 개별 읽음 처리
2026-03-05 11:36:58 +09:00
fd017a9e34 fix: [document] document.data null 참조 오류 수정
- DocumentController: resolveAndBackfillBasicFields에서 data null-safe 처리
- show.blade.php: $docData 변수로 일괄 치환 (클로저 포함 전체 12곳)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 11:03:52 +09:00
김보곤
ac8f16de59 feat: [approvals] 지출결의서 불러오기 기능 추가
- 기안 작성 시 '불러오기' 버튼으로 기존 지출결의서 불러오기
- 지출결의서 이력 API 엔드포인트 추가 (/expense-history)
- 선택한 지출결의서의 내용을 새 폼에 복사 (날짜는 오늘로 초기화)
2026-03-05 10:26:55 +09:00
김보곤
8cda77ea17 fix: [approval] 파일 업로드 시 display_name 누락 오류 수정 2026-03-04 21:31:57 +09:00
김보곤
aa1153f652 fix: [approval] 법인카드 tenant_id 세션 조회, 하이패스카드 제외 2026-03-04 21:10:56 +09:00
김보곤
f506f68df5 fix: [approval] 계좌 조회 tenant 중복조건 제거, 관리링크 모달 변경 2026-03-04 21:00:28 +09:00
김보곤
8a52cd198f feat: [approval] 지출결의서 법인카드/송금 계좌 선택 기능
- 법인카드 선택 시 카드 목록 패널 슬라이드-다운 표시
- 송금 선택 시 출금 계좌 목록 표시, 대표계좌 자동 선택
- 선택된 카드/계좌 정보를 content JSON에 스냅샷 저장
- 상세 페이지에서 선택된 카드/계좌 정보 읽기전용 표시
2026-03-04 20:29:25 +09:00
김보곤
622fb92a92 feat: [approval] 지출결의서 첨부파일 업로드/다운로드 기능 추가
- 첨부파일 업로드 API (GCS 연동, 20MB 제한)
- 첨부파일 삭제/다운로드 API 추가
- 지출결의서 폼에 드래그&드롭 멀티 파일 업로드 UI 추가
- ApprovalService에 linkAttachments 메서드 추가 (is_temp 플래그 관리)
- show 페이지에 첨부파일 목록 표시 및 다운로드 링크
- 지출부서 기본값 '본사', 로그인 사용자 이름 자동입력, 제목 필드 제거
2026-03-04 20:07:49 +09:00
김보곤
e3efc4f2ee feat: [approval] 지출결의서 전용 폼 UI 추가
- Alpine.js 기반 지출결의서 전용 폼 컴포넌트 (_expense-form.blade.php)
- 지출형식/세금계산서 라디오, 내역 테이블(동적 행 추가/삭제), 금액 자동합계
- 양식 code === 'expense' 시 Quill 대신 전용 폼 표시 (create/edit)
- content JSON 구조화 저장, show 페이지 읽기전용 테이블 렌더링
- 기존 Quill 방식 하위 호환 유지
2026-03-04 15:14:18 +09:00
김보곤
c5720e8c16 chore: [eaccount] 디버그 로깅 제거
- 무한루프 버그 수정 완료 후 디버그용 로그 정리
2026-03-04 13:27:07 +09:00
김보곤
50bfaf160f fix: [eaccount] 부분 월 조회 시 무한루프 크래시 수정
- splitDateRangeMonthly()에서 endDate가 월 중간인 경우
  cursor가 같은 달 1일로 되돌아가 무한루프 발생
- cursor 이동 로직 수정: chunkEnd+1일→월초 대신 chunkStart+1월→월초
- 부분 월, 전체 월, 다중 월 모든 케이스 테스트 완료
2026-03-04 13:26:11 +09:00
김보곤
85410ab760 fix: [eaccount] 500 에러 디버깅용 상세 로깅 추가
- getAllAccountsTransactions 단계별 로그 (계좌수, 계좌별 시작/완료)
- transactions 분기점 로그 (bankAccountNum, 기간)
2026-03-04 13:23:05 +09:00
김보곤
c52b73696e fix: [roadmap] 개발서버 문서 경로 설정 가능하도록 개선
- config/roadmap.php 추가 (ROADMAP_DOCS_BASE 환경변수)
- RoadmapController에서 config 기반 경로 사용
- 로컬: base_path('../docs') 기본값 유지
- 서버: .env에서 ROADMAP_DOCS_BASE 설정
2026-03-04 13:21:40 +09:00
김보곤
94674a2dac fix: [barobill] 전체 바로빌 컨트롤러 WSDL 캐싱 활성화
- EcardController, HometaxController, EtaxController
- WSDL_CACHE_NONE → WSDL_CACHE_BOTH (불필요한 WSDL 재다운로드 방지)
2026-03-04 13:15:59 +09:00
김보곤
42650000c4 fix: [eaccount] SOAP 호출 크래시 방지 — WSDL 캐싱 + 소켓 타임아웃 + 진단 로깅
- WSDL_CACHE_NONE → WSDL_CACHE_BOTH (매 요청 WSDL 재다운로드 방지)
- default_socket_timeout 60→120초 연장
- register_shutdown_function으로 Fatal Error 감지/로깅
- callSoap에 SOAP 호출 소요시간 로깅 추가
2026-03-04 13:14:40 +09:00
김보곤
46bb3f190b fix: [eaccount] 운영서버 500 에러 디버깅 — set_time_limit 안전 처리 + 상세 에러 메시지 2026-03-04 13:03:35 +09:00
김보곤
c0f606a949 fix: [journal] 계좌 출처 전표 일반전표에서 수정 허용
- 카드/세금계산서 출처 → 잠금 유지 (원본에서 수정)
- 계좌(bank_transaction) 출처 → 일반전표에서 수정 허용
- 프론트엔드 UI + 백엔드 update 메서드 동시 수정
2026-03-04 12:42:35 +09:00
김보곤
caf549b2a0 fix: [eaccount] 12월분 조회 타임아웃 오류 수정
- PHP set_time_limit(120) 추가 (SOAP 다건 호출 시 기본 30초 초과 방지)
- 프론트엔드 응답 상태/빈 응답 체크 추가 (에러 원인 구체화)
2026-03-04 12:39:36 +09:00
김보곤
a6cc2fd2b4 fix: [payables] JournalEntry 모델 use 문 누락 수정 2026-03-04 11:16:58 +09:00
김보곤
1dee6d0de8 fix: [payables] 전표 삭제 500 에러 수정
- Accept: application/json 헤더 추가 (HTML 응답 방지)
- findOrFail → find + 수동 404 처리 (에러 메시지 개선)
- try-catch 추가로 상세 에러 메시지 반환
2026-03-04 11:13:14 +09:00
김보곤
1c8d06eb99 feat: [payables] 미지급금관리 전표 삭제 기능 추가
- 일반전표 상세 행에 삭제 버튼(휴지통 아이콘) 추가
- DELETE /finance/payables/journal-entry/{id} API 추가
- journal_entry_id 필드를 프론트에 전달하도록 쿼리 수정
- 삭제 후 데이터 자동 새로고침
2026-03-04 11:02:06 +09:00
김보곤
5bd74c1094 feat: [ecard] 변경사항 저장 시 기존 분개 금액 자동 갱신
- 카드 금액 수정 후 저장 시 기존 분개의 차변/대변 금액도 연동 갱신
- 공제/불공제 유형별 라인 구조 보존하면서 금액만 업데이트
- 기존 계정과목, 적요, 거래처 정보 유지
2026-03-04 10:23:14 +09:00
김보곤
b4f0329113 feat: [china-tech] 중국의 기술도약 > 5대 신흥빅테크 페이지 추가
- BigTechController 생성 (HX-Redirect 패턴 적용)
- 5개 탭 UI 구현 (첫 번째 탭: 천텐스, 캄브리콘 AI 반도체 분석)
- Chart.js 차트 3개 (주가, 매출 비중, 성능 레이더)
2026-03-04 09:30:47 +09:00
김보곤
6f03a8d12c feat: [hr] 슈퍼관리자 근태/신청 삭제 및 영구삭제 기능 추가
- AttendanceService: forceDeleteAttendance 메서드 추가
- LeaveService: deleteLeave(모든 상태), forceDeleteLeave 메서드 추가
- Controller: force 파라미터 + 슈퍼관리자 권한 분기
- 근태 테이블: 슈퍼관리자에게 삭제/영구삭제 버튼 표시
- 신청 테이블: 슈퍼관리자에게 삭제/영구삭제 버튼 표시
2026-03-04 00:15:41 +09:00