김보곤
69f837ef99
feat: [rd] AI CM송 제작 기능 추가
...
- Gemini API 기반 CM송 가사 생성 + TTS 음성 생성
- 연구개발 대시보드에 CM송 제작 카드 추가
- 서버사이드 API 프록시로 API 키 보호
2026-03-05 14:13:41 +09:00
김보곤
3464787a4c
feat: [approval] 반려 이력 관리 기능 추가
...
- rejection_history JSON 컬럼으로 반려 이력 누적 저장
- 재상신 시 반려자, 사유, 일시를 이력에 기록
- 상세 페이지에 반려 이력 섹션 표시 (빨간 테두리)
- 수정 페이지에 이전 반려 이력 표시 (주황 배경)
2026-03-05 13:50:45 +09:00
김보곤
d328055f83
feat: [approval] 기안함/완료함/대기함에 재상신 구분 열 추가
...
- resubmit_count 필드로 재상신 횟수 추적
- 반려 후 재상신 시 카운트 증가
- 보라색 뱃지로 재상신/재상신(N차) 표시
2026-03-05 13:06:30 +09:00
김보곤
121fec76e0
fix: [approval] 완료함 확인 상태 컬럼 추가 및 개별 읽음 처리로 변경
...
- 일괄 읽음 처리 제거 → 상세 페이지 열람 시에만 개별 읽음 처리
- 확인 컬럼 추가: 확인전(주황) / 확인(회색) 뱃지 표시
- 미확인 행 배경 하이라이트(주황) + 제목 볼드 처리
- 기안자 본인 문서만 확인 상태 표시, 타인 문서는 - 표시
2026-03-05 12:53:49 +09:00
8298b4271e
chore: [infra] Slack 알림 채널 분리 — product_infra → deploy_mng
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 11:37:43 +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
김보곤
c734a23b30
fix: [approval] 결재서명란 테이블 크기 확대 (150% 너비, 130% 글씨)
...
- 셀 패딩 10px→16px, min-width 64px→96px
- 기본 폰트 12px→15px, 도장 32px→42px
- 결재 헤더 13px→16px, 이름/날짜 비례 확대
2026-03-05 11:29:18 +09:00
김보곤
24f8bfeb94
feat: [approval] 결재서명란 테이블 추가 (전통 결재 양식)
...
- 문서 상세 우측 상단에 결재서명란 테이블 배치
- 작성자 + 결재자 컬럼, 직급/이름/서명/날짜 표시
- 승인/반려/보류/전결 상태별 도장 아이콘
- 기존 원형 타임라인 결재 진행 제거, 결재 의견만 유지
2026-03-05 11:23:32 +09:00
김보곤
35080c252c
fix: [approval] 거래처 검색 키보드 방향키 내비게이션 버그 수정
...
- moveDown/moveUp 시 debounce 타이머 클리어하여 search 재실행 방지
2026-03-05 11:16:01 +09:00
김보곤
0e3eb24dd0
fix: [approvals] 완료함에 기안자 본인의 완료 문서도 표시
...
- 기존: 결재자로 처리한 문서만 조회
- 수정: 내가 기안한 완료/반려/회수 문서 + 결재자로 처리한 문서 모두 조회
2026-03-05 11:07:56 +09:00
김보곤
31ac46fe21
fix: [approvals] 거래처 선택 후 드롭다운이 다시 열리는 문제 수정
...
- 선택 시 selected 플래그 설정 + blur로 포커스 해제
- onInput/onFocus에서 selected 상태면 검색 차단
- 다시 직접 타이핑 시 selected 해제되어 검색 재개
2026-03-05 11:05:13 +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
김보곤
491426fc3e
fix: [approvals] 거래처 검색 드롭다운을 순수 DOM으로 body에 직접 렌더링
...
- x-teleport 대신 document.body.appendChild로 드롭다운 생성
- position:fixed + z-index:99999로 모든 레이아웃 위에 표시
- mousedown으로 blur 전 선택 처리
2026-03-05 10:58:00 +09:00
김보곤
e1299d5f25
fix: [approvals] 거래처 검색 드롭다운이 레이아웃에 가려지는 문제 수정
...
- x-teleport로 body에 렌더링하여 overflow 영향 제거
- position:fixed + getBoundingClientRect로 정확한 위치 계산
2026-03-05 10:55:11 +09:00
김보곤
adc54ffeba
feat: [approvals] 지출결의서 업체명에 거래처 검색 기능 추가
...
- 업체명 input을 거래처 검색 자동완성으로 교체
- 기존 trading_partners 검색 API 활용 (/barobill/tax-invoice/search-partners)
- 거래처명/사업자번호로 검색, 드롭다운에서 선택
- 키보드 탐색 지원 (위/아래 화살표, Enter, Escape)
- vendor_id, vendor_biz_no 추가 저장
2026-03-05 10:52:49 +09:00
김보곤
c653618ecc
fix: [approvals] 불러오기 버튼을 양식 선택 옆으로 이동
2026-03-05 10:46:13 +09:00
김보곤
ac8f16de59
feat: [approvals] 지출결의서 불러오기 기능 추가
...
- 기안 작성 시 '불러오기' 버튼으로 기존 지출결의서 불러오기
- 지출결의서 이력 API 엔드포인트 추가 (/expense-history)
- 선택한 지출결의서의 내용을 새 폼에 복사 (날짜는 오늘로 초기화)
2026-03-05 10:26:55 +09:00
김보곤
0011681683
fix: [approvals] 지출부서 기본값 경리부로 변경, 복지카드 옵션 삭제
2026-03-05 10:20:15 +09:00
김보곤
cfae574a35
fix: [approvals] 결재일자 기본값을 현재일자로 설정
2026-03-05 10:17:44 +09:00
김보곤
b083d1561f
feat: [approvals] 지출결의서 양식 필드 추가
...
- 지출형식에 '자동이체 출금' 라디오버튼 추가
- 세금계산서 종류에 '없음' 옵션 추가
- 작성일자 옆에 '결재일자' 날짜 입력 필드 추가
- 저장/수정 로직(getFormData)에 신규 필드 반영
- 읽기전용 표시(_expense-show)에도 반영
2026-03-05 10:15:35 +09:00
김보곤
7c38790801
fix: [leaves] 휴가관리 삭제/영구삭제 함수 누락 수정
2026-03-04 23:09:14 +09:00
김보곤
8cda77ea17
fix: [approval] 파일 업로드 시 display_name 누락 오류 수정
2026-03-04 21:31:57 +09:00
김보곤
f2556aae61
feat: [approval] 지출형식별 내역 테이블 동적 전환
...
- 법인카드: 지급은행/계좌/예금주 → 결제카드 컬럼 (선택 카드 자동표시)
- 송금: 선택 계좌 정보 자동 채움 (녹색 배경)
- 현금/가지급정산, 복지카드: 기존 수동입력 유지
- getFormData()에서 저장 시 카드/계좌 정보 items에 반영
2026-03-04 21:29:11 +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
김보곤
f4c08de0e4
fix: [approval] 카드/계좌 1개일 때 자동 선택
2026-03-04 20:54:03 +09:00
김보곤
bfb7302f9c
fix: [approval] 카드/계좌 관리 페이지 링크 수정
2026-03-04 20:42:26 +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
김보곤
b791b7d764
fix: [approval] 기안 작성 폼 가로 폭 제한 제거
...
- max-width: 960px 제거하여 전체 너비 사용
2026-03-04 15:19:00 +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
김보곤
1e5ebcb6b1
feat: [approval] 양식 선택 시 제목 자동 설정 기능 추가
...
- applyBodyTemplate에서 제목 필드가 비어있으면 양식명 자동 입력
- create/edit 공통 적용
2026-03-04 14:51:18 +09:00
김보곤
18c44f3a1c
fix: [approval] 결재선 요약 카드 XSS 방어 추가
...
- updateApprovalLineSummary의 innerHTML에 escapeHtml 함수 적용
- user_name, position, stepLabel 출력 시 HTML 이스케이프 처리
2026-03-04 14:21:07 +09:00
김보곤
c314715008
feat: [approval] 결재선 드롭다운 직접 배치 및 양식 본문 자동 채움
...
- 새기안/수정 화면에 결재선 드롭다운 추가 (모달 없이 빠른 선택)
- 양식 선택 시 body_template HTML 자동 채움 (편집기 자동 활성화)
- 모달 닫을 때 외부 드롭다운 동기화
- ApprovalForm 모델 fillable에 body_template 추가
2026-03-04 14:18:54 +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
김보곤
fe892d81ec
fix: [ecard] 기간 검색 stale closure 문제 수정
...
- loadTransactions/loadSplits/loadJournalStatuses에 명시적 날짜 파라미터 추가
- 조회 버튼 클릭 시 현재 날짜 직접 전달
- 편의 버튼(이번달/지난달/D-N월) 클릭 시 자동 검색 트리거
2026-03-04 12:57:42 +09:00
김보곤
35696400a2
fix: [eaccount] 기간 검색 시 stale closure 문제 수정
...
- loadTransactions/loadSplits에 명시적 날짜 파라미터 추가
- 조회 버튼 클릭 시 TransactionTable prop의 최신 날짜 직접 전달
- 편의 버튼(이번달/지난달/D-N월) 클릭 시 자동 검색 트리거
2026-03-04 12:50:49 +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
김보곤
2813f31f7b
feat: [china-tech] 유니트리 왕싱싱 5번째 탭 추가
...
- 공급망 혁신 인터랙티브 비교 (기존 vs 유니트리 수직 계열화)
- H1/G1 휴머노이드 제어 알고리즘 탭 전환 UI
- 시장 점유율 도넛 차트, 가격 파괴 현황 Bar 차트
- ut- 접두사로 외부 함수 충돌 방지
2026-03-04 11:16:59 +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
김보곤
2a2b3bb6ee
fix: [payables] 전표 삭제 라우트 순서 수정
...
- journal-entry/{id}를 /{id}보다 위로 이동하여 라우트 충돌 해결
2026-03-04 11:07:39 +09:00
김보곤
1c8d06eb99
feat: [payables] 미지급금관리 전표 삭제 기능 추가
...
- 일반전표 상세 행에 삭제 버튼(휴지통 아이콘) 추가
- DELETE /finance/payables/journal-entry/{id} API 추가
- journal_entry_id 필드를 프론트에 전달하도록 쿼리 수정
- 삭제 후 데이터 자동 새로고침
2026-03-04 11:02:06 +09:00