Commit Graph

885 Commits

Author SHA1 Message Date
김보곤
7954c24aa4 feat: [ecard] 카드사용내역 복식부기 분개 시스템 추가
- EcardController에 storeJournal/getJournal/deleteJournal/getJournalStatuses 4개 메서드 추가
- journal_entries + journal_entry_lines 통합 (source_type='ecard_transaction')
- CardJournalModal 차변/대변 복식부기 UI 추가
- 거래 테이블에 분개완료/구버전/미분개 3단계 상태 표시
- 기존 splits 데이터 자동 전환 지원
2026-02-24 13:08:33 +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
김보곤
2ae07d40af feat: [esign] 전자계약 이메일 발신주소를 CONTACT_MAIL_FROM_ADDRESS로 분리
- EsignRequestMail, EsignOtpMail, EsignCompletedMail에 from 주소 명시
- config/mail.php에 contact_from_address 설정 추가
- .env의 CONTACT_MAIL_FROM_ADDRESS(contact@codebridge-x.com) 사용
2026-02-24 09:21:52 +09:00
김보곤
36486795f2 feat: [academy] PM2 가이드 라우트 및 컨트롤러 추가 2026-02-24 08:01:47 +09:00
김보곤
66be684d40 fix: [barobill] 카카오톡 알림톡 SOAP 파라미터 구조 수정
- WSDL 스펙에 맞게 KakaotalkMessage 중첩 구조로 변경
- ReceiverName, ReceiverNum 등을 최상위에서 KakaotalkMessage 내부로 이동
- ReserveDT → SendDT로 파라미터명 수정
- SendATKakaotalkEx에 YellowId 파라미터 추가
- 버튼 배열을 KakaotalkButton 래핑 구조로 변경
- sendATKakaotalks 대량 발송도 WSDL 구조에 맞게 수정
- esign 알림톡 메시지 본문을 등록 템플릿에 맞게 조정
2026-02-24 01:21:08 +09:00
김보곤
6e043b9539 fix: [esign] 알림톡 발신프로필 키(SenderID) 조회 로직 추가
- senderId를 빈 문자열로 보내던 것을 바로빌 채널 목록에서 ChannelId 조회 후 전달
- 바로빌 API 오류 -24005 해결
2026-02-24 00:55:32 +09:00
김보곤
748a9d1807 fix: [esign] 알림톡 발송 실패 수정 (corp_num → biz_no)
- BarobillMember의 실제 컬럼명은 biz_no인데 corp_num으로 접근하여 항상 null
- is_test_mode → server_mode로 수정
- kakaotalk_sender_id → 빈 문자열 (기본 발신프로필 사용)
2026-02-24 00:46:29 +09:00
김보곤
3a8d28e21d fix: [settlement] 수당지급현황통계 파트너별 결산 개별 건 표시
- 파트너별 GROUP BY 요약 → 개별 commission 레코드 표시로 변경
- 1차/2차수당 계산에 매니저/유치 수당 포함하여 합계 불일치 해소
- 파트너 헤더행 + 개별 건 행 + 합계행 구조로 테이블 재구성
2026-02-23 22:42:13 +09:00
김보곤
3c17e44262 fix: [hometax] 자동동기화 dateType을 전송일자(3)로 변경하여 신규 전송건 누락 방지
- autoSync dateType: 1(작성일자) → 3(전송일자, 바로빌 권장)
- autoSync 증분 범위: -1일 → -3일로 확대 (안전 마진)
- 수집 요청 후 자동 동기화 추가 (스크래핑만 요청 → 동기화까지 수행)
2026-02-23 21:49:02 +09:00
김보곤
c44b31c328 fix: [journal] 계좌입출금 중복제거 groupBy에 balance, summary 추가
- 같은 시간/계좌/금액이라도 잔액·적요가 다른 거래가 하나로 합쳐지는 문제 수정
- uniqueKey 구성(6필드)과 groupBy(4필드) 불일치 해소
2026-02-23 21:00:56 +09:00
김보곤
bf90f91d7c feat: [academy] 리눅스 & 서버 명령어 아카데미 페이지 추가
- 10개 섹션: 터미널 기초, 파일 탐색, 파일 조작, 권한 관리, 검색, 모니터링, 프로세스, 네트워크, 텍스트 편집, 위험 명령어
- git-policy 페이지와 동일한 레이아웃 (히어로 배너, 좌측 TOC, 도움말 풍선)
- 초보자 친화적 비유와 실무 팁 포함
2026-02-23 17:36:23 +09:00
김보곤
005020f5ec fix: [bank-transaction] uniqueKey에 적요(summary) 추가하여 동일 금액·시간 거래 구분
- BankTransaction 모델: getUniqueKeyAttribute, generateUniqueKey에 summary 추가
- EaccountController: API 응답 및 DB upsert 시 summary 포함 매칭
- JournalEntry, JournalEntryController: 레거시(5필드) 키 호환 처리
- BankTransactionOverride: 레거시 키 호환 조회
2026-02-23 16:02:36 +09:00
김보곤
8cfab74e1f feat: [receivables] 미분개 홈택스 매출세금계산서도 외상매출금 원장에 표시 2026-02-23 15:43:21 +09:00
김보곤
f23255192d feat: [receivables] 외상매출금 원장/거래처별 요약 연동
- 홈택스 분개(hometax_invoice_journals)와 일반전표(journal_entry_lines)에서 계정코드 108(외상매출금) 데이터 집계
- ledger() API: 날짜순 정렬, 누적잔액 계산, 출처/거래처/기간 필터
- summary() API: 거래처별 발생액/회수액/잔액 요약
- UI 3탭 구조로 개편: 외상매출금 원장 / 거래처별 요약 / 수동관리(기존)
- 거래처별 요약에서 행 클릭 시 해당 거래처 원장으로 이동
2026-02-23 14:49:46 +09:00
김보곤
a7aef552c3 feat: [esign] 고객(counterpart) 도장 업로드/선택 기능 추가
- 백엔드: submitSignature에 stamp_image(base64) 파라미터 처리 추가
- 프론트: counterpart 역할에 도장 선택 UI 항상 표시
- 프론트: 도장 이미지 업로드(PNG/JPG, 5MB 제한) 및 미리보기 기능
- 기존 Creator 법인도장 흐름은 변경 없음
2026-02-23 14:48:30 +09:00
김보곤
3e294f4a1f feat: [finance] 미지급금관리 홈택스/일반전표 데이터 통합 조회
- 홈택스 매입세금계산서 미지급금/미지급비용 대변 데이터 연동
- 일반전표 미지급금/미지급비용 차변 상계 데이터 연동
- 거래처별 잔액 자동 계산 (발생-상계)
- 통합잔액/홈택스발생/일반전표상계/수동관리 4탭 구조
2026-02-23 14:45:32 +09:00
김보곤
3f1785206b feat: [academy] Git 정책 백과사전 추가
- 10개 섹션: 버전관리/기초/원격/브랜치/커밋/협업/충돌/SAM정책/.gitignore/배포
- teal 테마, SVG 일러스트 10개, 도움말 풍선
- 전문용어 툴팁 30개 (git-policy 도메인)
2026-02-23 13:09:57 +09:00
김보곤
993101938b feat: [academy] .env 관리 정책 교육 페이지 추가
- 7개 섹션 교육 콘텐츠 (열쇠 고리 비유, 프로젝트별 구조, Docker Override, 동기화 필수 변수, 로컬/서버 비교, 변경 후 할 일, 주의사항)
- SVG 이미지 9종 (에메랄드 다크 테마)
- 용어 사전 15개 (env-management 도메인)
- 실제 .env.example, docker-compose.yml, production-env-sync.md 기반 콘텐츠
2026-02-23 12:44:05 +09:00
김보곤
10eaf82bb7 feat: [academy] 웹 기초지식 백과사전 페이지 추가
- 퍼플 테마 6대 섹션 22소 섹션 Blade 뷰 작성
- SVG 이미지 12장 생성 (인터넷, URL, HTTP, 에러코드 등)
- AcademyController webBasics() 메서드 및 라우트 등록
- academy-glossary 컴포넌트에 web-basics 도메인 추가
- 이미지 생성 프롬프트 문서 작성
2026-02-23 11:17:49 +09:00
김보곤
72d699ea18 feat: [academy] Docker 환경이해 교육 페이지 추가
- AcademyController에 dockerEnvironment() 메서드 추가
- academy 라우트 그룹에 docker-environment 라우트 추가
- 6개 섹션 Blade 뷰 작성 (Docker 소개, 아키텍처, 서비스 상세, 볼륨, .env, 명령어)
- academy-glossary에 docker-environment 도메인 용어 25개 추가
2026-02-23 10:49:23 +09:00
김보곤
aa9d9aef49 feat: [academy] 프론트엔드 개발 백과사전 추가
- 10개 섹션: HTML/CSS/JS, 프레임워크, 반응형, 브라우저, API, 도구, 성능
- purple 테마, 기존 아카데미 패턴 동일 적용
- 전문용어 툴팁 26개 추가 (frontend-dev 도메인)
2026-02-23 10:31:41 +09:00
김보곤
52b26c7216 refactor: [ai-config] 모든 API 키를 DB(ai_configs)에서 .env로 전환
- AiConfig::getActiveGemini() → config('services.gemini') 기반
- AiConfig::getActiveGcs() → config('services.google') 기반
- AiConfig::getActiveClaude() → config('services.claude') 기반
- AiConfig::getActiveNotion() → config('services.notion') 기반
- GoogleCloudStorageService: DB 우선 로직 제거, .env만 사용
- 8개 서비스 파일은 수정 없이 동작 (AiConfig 인터페이스 유지)
2026-02-23 09:55:07 +09:00
김보곤
1b73fd1cf2 refactor: [notion] API 키를 DB(ai_configs)에서 .env로 전환
- NotionService: AiConfig::getActiveNotion() → config('services.notion')
- config/services.php에 notion 섹션 추가
- .env에 NOTION_API_KEY, NOTION_VERSION 추가
2026-02-23 09:48:40 +09:00
김보곤
0d8d5aa8ef feat: [academy] 서버지식 백과사전 페이지 추가
- AcademyController에 serverKnowledge() 메서드 추가
- /academy/server-knowledge 라우트 등록
- 그린 테마 Blade 뷰 (5대 섹션, 18소 섹션)
- SVG 이미지 12장 생성
- 이미지 생성 프롬프트 문서 작성
2026-02-23 09:43:43 +09:00
김보곤
92a11e139c feat: [academy] IT기획 백과사전 추가
- 5개 섹션: 개요, 기획 프로세스, 산출물, 도구, 방법론
- 방화셔터와 동일한 백과사전 UI 패턴 (블루 테마)
- AI 이미지 생성 프롬프트 문서 포함
2026-02-23 09:05:17 +09:00
김보곤
c9495b160d feat: [additional] DOCX 관리 페이지 추가
- 파일시스템 스캔 기반 DOCX 목록 조회/다운로드
- 카테고리별 필터, 파일명 검색 기능
- 경로 트래버설 방지 보안 검증
2026-02-23 08:37:38 +09:00
김보곤
afce5a2f70 feat: [additional] PPTX 관리에 영업(sales) 폴더 스캔 경로 추가 2026-02-23 08:08:31 +09:00
김보곤
1bb2ac32f9 feat: [additional] PPTX 관리 페이지 추가
- 파일시스템 스캔 기반 PPTX 목록 조회/다운로드
- 카테고리별 필터, 파일명 검색 기능
- 경로 트래버설 방지 보안 검증
2026-02-23 07:57:39 +09:00
김보곤
576b1d9f6b feat: [additional] RAG 검색에 토큰 비용 안내 및 사용량 표시 추가
- 검색 전 비용 안내 문구 (건당 약 3~10원, AI 토큰 사용량 기록 안내)
- 검색 결과에 토큰 사용량 바 표시 (입력/출력/합계/비용)
- AiTokenHelper + AiPricingConfig 연동으로 정확한 비용 계산
2026-02-22 23:33:15 +09:00
김보곤
5810b15940 feat: [additional] Notion 검색 토큰 사용량 기록 및 비용 안내
- 검색어 정제/AI 답변 시 AiTokenHelper로 토큰 사용량 저장
- 상단 안내에 Gemini API 2회 호출 및 토큰 기록 안내 추가
2026-02-22 23:26:33 +09:00
김보곤
4132458126 fix: [additional] RAG 검색 docs 경로를 Docker 컨테이너 경로로 수정 2026-02-22 23:20:21 +09:00
김보곤
3103d8cb87 fix: [additional] Notion 검색 에러 메시지 구체화
- Gemini API 오류 시 실제 에러 메시지 표시
- 검색어 정제 실패 시 에러 원인 전달
2026-02-22 23:18:08 +09:00
김보곤
0001915cfb feat: [ai-config] Notion API 설정 UI 추가
- AI 설정 페이지에 Notion 섹션 추가 (추가/수정/삭제)
- AiConfig에 API_SERVICE_PROVIDERS 상수 분리
- Notion 전용 모달 (API 키, API 버전, 활성화)
2026-02-22 23:12:49 +09:00
김보곤
9dbb23f09c feat: [additional] RAG 검색 기능 추가
- RagSearchService: docs 폴더 키워드 검색 + Gemini API 컨텍스트 기반 답변
- RagSearchController: 검색 페이지 및 HTMX 비동기 검색 API
- 검색 UI: 통계 바, 예시 질문, Markdown 렌더링, 참조 문서 표시
- AiTokenHelper 연동으로 토큰 사용량 자동 추적
2026-02-22 23:05:55 +09:00
김보곤
aa3c9f4c3b feat: [additional] Notion 검색 기능 추가
- NotionService: Notion API 검색 + Gemini AI 답변
- AiConfig에 notion provider 추가
- 추가기능 > Notion 검색 채팅 UI
2026-02-22 23:04:16 +09:00
김보곤
a570fa9246 feat: [additional] 추가기능 > 키오스크 메뉴 및 페이지 골격 추가
- KioskController (index/showroom/factory) 생성
- 키오스크 메인 선택 페이지 (쇼룸/공장 카드 UI)
- 쇼룸 키오스크 골격 (제품 카탈로그, 견적 시뮬레이션, 시공 갤러리, 회사 소개)
- 공장 키오스크 골격 (생산 현황, 작업 지시, 생산 통계, 공지사항)
- /additional/kiosk 라우트 그룹 추가
2026-02-22 22:29:09 +09:00
김보곤
27b20e451f feat: [academy] 방화셔터 백과사전 페이지 구축
- AcademyController 신규 생성 (HX-Redirect 처리)
- /academy/fire-shutter 라우트 등록
- 방화셔터 백과사전 Blade 뷰 (개요/구성품/제조공정/설치/유지보수)
2026-02-22 19:42:23 +09:00
김보곤
f9665dd558 fix: [dashboard] 주간 날씨 목요일 데이터 누락 수정
- 기상청 중기예보 18시 발표는 D+5부터만 제공, 06시는 D+4부터 제공
- 여러 발표시각 데이터를 병합하여 빈 필드 보충 (최신 우선)
- 단기예보 TMN/TMX 없는 날은 중기예보 icon/pop 우선 사용
2026-02-22 19:14:24 +09:00
김보곤
14c9b787e9 fix: [dashboard] 주간 날씨 중기예보 데이터 누락 수정
- 18시 발표 중기예보 미발행 시 06시/전일 발표로 fallback
- 불완전한 날씨 데이터 캐시 TTL 10분으로 단축 (기존 3시간)
2026-02-22 19:14:24 +09:00
김보곤
1e7edab101 fix: [barobill] 홈택스 매입/매출 월정액을 무료(본사 부담)로 변경
- DEFAULT_MONTHLY_FEES hometax: 10000 → 0
- 월정액 0원일 때 "무료 (본사 제공)" 표시
2026-02-22 19:14:24 +09:00
a4531e8d90 fix:품목관리 FG 수식 산출 401 오류 수정
- FormulaApiService의 Bearer token 조회를 session('api_explorer_token')에서
  ApiTokenService 기반으로 변경
- resolveApiToken() 메서드 추가: 세션 토큰 확인 → 만료시 HMAC 토큰 교환
- DocumentTemplateApiController와 동일한 인증 패턴 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 04:19:48 +09:00
김보곤
f4879de9ba feat: [video] 3-pass 크롭 검증 추가
- 2-pass 보정 후 각 step의 좌표 영역을 원본에서 크롭하여 Gemini 검증
- 크롭에 패딩 확장 (30% 또는 최소 80px) + 최소 크롭 200x150px 보장
- 빨간 사각형으로 타겟 영역 표시하여 false positive 방지
- 재추정 실패 시 그리드 오버레이 이미지로 3차 재시도
- _verification 메타데이터에 crop_verified, crop_corrected 추가
- PASS율: 37.5% → 100% (FAIL 5 → 0)
2026-02-21 18:30:57 +09:00
김보곤
7991f3e6d4 feat: [video] 좌표 검증 및 영상 메타데이터를 analysis_data에 저장
- 각 step별 검증 결과 저장 (accurate/corrected + 원본 좌표)
- 스크린 단위 검증 통계 저장 (정확/보정 수, 검증 시각)
- 영상 완료 시 _output 메타데이터 저장 (경로, GCS, 비용, 슬라이드수, 총 재생시간)
2026-02-21 16:37:08 +09:00
김보곤
cf6525c8f3 feat: [video] 좌표 검증 루프(Coordinate Verification Loop) 추가
- Gemini 2-pass 자기 검증 메커니즘 구현
- runCoordinateVerification: 검증 오케스트레이터
- createVerificationImage: 색상별 스포트라이트 렌더링
- verifyCoordinates: Gemini에게 좌표 정확도 확인 요청
- applyVerifiedCoordinates: 보정 좌표 적용
2026-02-21 16:02:10 +09:00
김보곤
b0685a8886 fix: [video] MNG Job 큐 분리 (API 워커 충돌 방지)
- TutorialVideoJob, VideoGenerationJob에 onQueue('mng') 지정
- API 워커가 MNG Job을 가져가 __PHP_Incomplete_Class 에러 발생 방지
2026-02-21 15:42:53 +09:00
김보곤
1c9879b989 refactor: [video] 튜토리얼 영상 좌표 정교화 개선
- Phase 1: 그리드 오버레이를 비율 보존 레터박스 배치로 변경 (annotateSlideWithSpotlight과 동일)
- Phase 2: 그리드 밀도 10x10 → 20x12 향상, 주요 그리드선/좌표 라벨 추가
- Phase 3: 좌표 정규화 경계 클램핑 개선, 편향 패딩 구현, 디버깅 로그 추가
2026-02-21 15:30:37 +09:00
김보곤
6decf0a862 feat: [barobill] 설정 페이지에 바로빌 연동 섹션 추가
- 바로빌 로그인 정보 조건부 표시 (등록/미등록)
- 바로빌 로그인 정보 등록/수정 모달 추가
- 계좌 연동, 카드 연동, 공인인증서 등록 섹션 추가
- 미등록 시 연동 카드 비활성 처리
2026-02-21 14:19:29 +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
김보곤
c5f4c53a50 feat: [dashboard] 날씨 위젯에 강수확률 표시 추가
- 단기예보 POP (하루 최대값) + 중기예보 rnSt 병합
- 우산 아이콘 + 퍼센트 표시 (50% 이상 진한 파랑 강조)
- 강수확률 0%일 때는 표시하지 않음
2026-02-21 13:40:28 +09:00