Commit Graph

142 Commits

Author SHA1 Message Date
김보곤
7ee27d7c2a feat:차량일지 기능 구현
- VehicleLogController: CRUD 및 통계 API 추가
- VehicleLog 모델: 구분/분류 코드 정의 추가
- vehicle-logs.blade.php: React 기반 운행기록부 UI
- routes/web.php: vehicles, summary 엔드포인트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 20:01:51 +09:00
김보곤
fe15cecbdb feat:차량정비이력 실제 DB 연동 구현 2026-02-03 19:56:44 +09:00
김보곤
ac66e36294 feat:홈택스 세금계산서 로컬 저장 및 동기화 기능 구현
- HometaxInvoice 모델 생성 (로컬 DB 조회/저장)
- HometaxSyncService 서비스 생성 (API 데이터 동기화)
- HometaxController에 로컬 조회/동기화 메서드 추가
- 라우트 추가: local-sales, local-purchases, sync, update-memo, toggle-checked
- UI: 데이터소스 선택 (로컬 DB/바로빌 API), 동기화 버튼 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 17:13:18 +09:00
김보곤
12c6175470 refactor:용어 변경 - 가입비 → 개발비
영업 관련 코드 및 문서 전체에서 "가입비"를 "개발비"로 변경
- 컨트롤러, 서비스, 모델
- 뷰 템플릿 (blade 파일)
- 가이드북 문서 (마크다운)
- 설정 파일

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 16:20:09 +09:00
0f02acf39d Merge remote-tracking branch 'origin/develop' into develop 2026-02-03 14:10:36 +09:00
5dd580623e feat:통계 대시보드 페이지 신규 구현 (/stats/dashboard)
- 모델 7개: StatSalesDaily, StatFinanceDaily, StatProductionDaily,
  StatInventoryDaily, StatSystemDaily, StatSalesMonthly, StatFinanceMonthly
- DashboardStatService: 요약카드, 7일 추이차트, 알림, 월간요약 데이터
- StatDashboardController: HX-Redirect 패턴 적용
- 뷰: 요약카드 6개 + Chart.js 4개 차트 + 알림/월간요약 하단섹션
- 기존 대시보드 "통계 및 리포트" 바로가기 링크 연결
- 헤더 테넌트 선택 기준 전체/개별 테넌트 필터링 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:03:58 +09:00
김보곤
35d0260732 feat:차량일지 구분 유형 확장 및 라벨 수정
- 구분 유형 추가: 출퇴근용(왕복), 업무용(왕복), 비업무용(왕복)
- 비업무 라벨을 '비업무용(개인)'으로 변경
- 출발지/도착지 장소명 라벨 수정 (장소명 → 출발지명/도착지명)
- 새 유형별 색상 추가

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-03 13:27:56 +09:00
김보곤
f996771d5d fix:차량일지 운행일자 시간대 문제 수정 (date:Y-m-d 형식 지정) 2026-02-03 13:13:56 +09:00
김보곤
0d111bc8ba feat:차량일지(운행기록부) 기능 구현
- VehicleLog 모델 생성
- VehicleLogController (CRUD, 엑셀 다운로드)
- 차량일지 라우트 추가 (/finance/vehicle-logs/*)
- React 기반 UI (vehicle-logs.blade.php)
- VehicleLogMenuSeeder (법인차량관리 > 차량일지 메뉴)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 11:32:42 +09:00
3443e57b67 Merge remote-tracking branch 'origin/develop' into develop 2026-02-03 11:23:58 +09:00
a559fa2303 feat:시스템 알림 AI 분석용 복사 버튼 추가
- StatAlert 모델에 ai_analysis_summary accessor 추가
- 알림 상세 아코디언에 'AI 분석용 복사' 버튼 추가
- 클립보드 복사 시 심각도/도메인/유형/메시지 등 포맷팅

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 11:20:47 +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
김보곤
83a438a030 fix:계정과목을 글로벌 데이터로 변경 (테넌트 무관) 2026-02-03 09:56:30 +09:00
김보곤
1a0ade4b5c fix:BarobillConfig에서 is_active 조건 제거
- 테넌트별 서버 모드 지원을 위해 환경에 맞는 설정만 조회
- 기존: is_active=true 조건으로 운영 모드 설정 못 찾음
- 수정: environment만으로 조회하여 test/production 설정 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:14:59 +09:00
김보곤
692be5c51b feat:홈택스 마지막 수집 시간 기록 및 표시 기능
- BarobillMember 모델에 last_sales_fetch_at, last_purchases_fetch_at 추가
- 매출/매입 조회 시 마지막 수집 시간 DB에 저장
- collectStatus API에서 저장된 시간 조회하여 반환
- 조회 성공 후 화면의 마지막 수집 시간 자동 갱신

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 09:12:42 +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
김보곤
d38a4563b6 fix:법인차량 날짜 저장 타임존 문제 수정
- date cast 제거하여 문자열로 저장
- 한국시간 기준 날짜가 하루 전으로 저장되는 문제 해결

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 06:22:55 +09:00
김보곤
f82b34a596 feat:법인차량관리 API 연동 및 CRUD 구현
- CorporateVehicle 모델 추가
- CorporateVehicleController 추가 (목록/등록/수정/삭제)
- 목업 데이터 제거, 실제 DB 연동
- 불필요한 필드(보험만료일, 검사만료일) 제거
- 렌트/리스 차량 전용 필드 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:48:01 +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
김보곤
a8468cf957 feat:SalesCommission 모델에 2단계 수당 지급 기능 추가
- 1차/2차 납입 및 수당지급 추적 컬럼 추가
- 매니저 수당 추적 컬럼 추가
- 편의 메서드 추가 (recordFirstPayment, recordManagerPaid 등)
- 지급예정일 계산 Accessor 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 19:57:56 +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
김보곤
3bd5550bb1 feat:영업/매니저 시나리오 100% 완료 시 계약완료 자동 전환
- SalesScenarioChecklist에 checkAndConvertProspectStatus() 메서드 추가
- toggleByProspect()에서 체크 완료 시 자동 전환 로직 호출
- AdminProspectController에서 목록 조회 시 기존 100% 데이터 자동 전환
- API 응답에 상태 변경 정보 포함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:46:53 +09:00
김보곤
d96cdc1975 feat:가망고객(prospect) 상담 기록 및 첨부파일 기능 추가
- SalesConsultation 모델에 prospect 관련 메서드 추가
  - createTextByProspect(), createAudioByProspect(), createFileByProspect()
  - getByProspectAndType() 조회 메서드
- ConsultationController에 prospect 라우트 추가
  - prospectIndex(), prospectStore(), prospectUploadAudio(), prospectUploadFile()
- scenario-modal.blade.php에서 @if(!$isProspectMode) 조건 제거
  - 가망고객 모드에서도 상담 기록 섹션 표시
- voice-recorder, file-uploader, consultation-log에 prospect 모드 지원
- routes/web.php에 prospect 상담 기록 라우트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 19:50:46 +09:00
김보곤
fcb3a65cf7 feat:가망고객 단계에서 영업/매니저 시나리오 체크리스트 지원
- SalesTenantManagement, SalesScenarioChecklist에 tenant_prospect_id 지원 추가
- 가망고객 기반 시나리오 컨트롤러 메서드 추가
- 라우트 추가: /sales/scenarios/prospect/{id}/sales, manager
- 대시보드에서 가망고객 행에 영업/매니저 버튼 및 진행률 표시
- 시나리오 모달/스텝 뷰 prospect 모드 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 19:34:49 +09:00
9cd902af2b feat: 시스템 알림 관리 페이지 (Phase 5)
- sam_stat DB 연결 추가 (config/database.php)
- StatAlert 모델 생성 (sam_stat 연결, 읽기+상태변경)
- SystemAlertController 생성 (목록/읽음/해결/전체읽음)
- 시스템 알림 Blade 페이지 (필터/페이지네이션/HTMX)
- /system/alerts 라우트 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 08:33:33 +09:00
78e67eb928 feat: 앱 버전 관리 페이지 구현
- AppVersion 모델, Service, Controller
- 버전 등록 폼 (APK 업로드, 강제 업데이트 설정)
- 버전 목록 테이블 (활성 토글, 다운로드 수, 삭제)
- /app-versions 라우트 추가
- app_releases 스토리지 디스크 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:53:09 +09:00
pro
10ec26723f feat:법인카드 서버 저장 기능 구현
- CorporateCard 모델 추가
- CorporateCardController API 추가 (CRUD)
- 라우트 추가 (list, store, update, deactivate, destroy)
- React 컴포넌트 API 연동 (fetch 호출)
- 로딩 상태 UI 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:12:07 +09:00
pro
d840bee519 merge: origin/develop 병합 및 충돌 해결
- labs-menu.blade.php: S/A 탭 구조 유지 (원격 버전)
- routes/web.php: ManagementController + AIController 모두 포함, SalesCommissionController 구현 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:50:09 +09:00
pro
5d7de6d13b feat:영업수수료 정산 기능 구현
[모델]
- SalesCommission: 영업수수료 정산 모델
- SalesCommissionDetail: 상품별 수당 내역 모델
- SalesTenantManagement: 입금 정보 필드 추가

[서비스/컨트롤러]
- SalesCommissionService: 수당 생성, 승인, 지급 처리 로직
- SalesCommissionController: 정산 관리 CRUD

[뷰]
- 본사 정산 관리 화면 (필터, 통계, 테이블)
- 입금 등록 모달
- 상세 보기 모달
- 영업파트너 대시보드 수당 카드

[라우트]
- /finance/sales-commissions/* 라우트 추가
- 기존 sales-commission 리다이렉트 호환

[메뉴]
- SalesCommissionMenuSeeder: 정산관리 > 영업수수료정산 메뉴 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:14:11 +09:00
pro
e6515e5b36 fix:진행률 계산 시 config에 존재하는 체크포인트만 카운트
- 체크포인트 축소 시 DB에 남아있는 이전 데이터 때문에 100% 초과 문제 수정
- validCheckpointKeys 배열로 config 기준 유효성 검증

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 17:10:42 +09:00
pro
3d12829dcb feat:영업 시나리오 계약체결 탭에 상품관리 데이터 연동 (registration_fee 사용) 2026-01-29 16:38:44 +09:00
pro
ac8afef985 feat:상품 수정 시 개발비/가입비 분리 입력 지원 2026-01-29 16:31:59 +09:00
pro
5381399731 feat:수당율 영업파트너/매니저 분리 (파트너 20%, 매니저 5%) 2026-01-29 16:18:29 +09:00
pro
f48d4b036a feat:영업 상품관리 기능 구현
- SalesProductController: CRUD + 카테고리 관리
- Models: SalesProductCategory, SalesProduct, SalesContractProduct
- Views: 상품관리 UI (Tailwind + Alpine.js + HTMX)
- Routes: /sales/products/* 라우트 등록

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 15:02:09 +09:00
pro
d124078fd4 feat:본사 진행 상태 및 수당 지급 상태 UI 추가
- SalesTenantManagement 모델에 본사 진행 상태 7단계 추가
  (대기, 검토, 기획안작성, 개발코드작성, 개발테스트, 개발완료, 통합테스트, 인계)
- 수당 지급 상태 3단계 추가 (대기, 지급대상, 지급완료)
- tenant-list.blade.php에 본사 진행 상태 스텝 인디케이터 추가
- 매니저 100% 완료 시 본사 진행 활성화
- 수당 지급 상태 배지 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:39:10 +09:00
pro
9588abb272 feat:테넌트 리스트에 영업/매니저 진행률 표시
- SalesScenarioChecklist: getSimpleProgress(), getTenantProgress() 메서드 추가
- tenant-list: 진행률 컬럼 추가 (영업/매니저 각각 프로그레스 바)
- 레이아웃 재조정: 버튼 compact화, 컬럼 비율 조정
- 오른쪽 빈 공간 활용하여 정보 밀도 향상

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:42:56 +09:00
pro
50becbdd28 feat:AI 설정 페이지에 GCS 스토리지 설정 통합
- AI 설정과 스토리지 설정을 탭으로 구분
- GCS 버킷 이름, 서비스 계정 (JSON 직접입력/파일경로) 설정 가능
- GCS 연결 테스트 기능 추가
- GoogleCloudStorageService가 DB 설정 우선 사용 (fallback: 레거시 파일)
- AiConfig 모델에 gcs provider 및 관련 메서드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:22:12 +09:00
pro
dd86d70503 feat:음성 녹음 GCS 업로드 및 다운로드 기능 추가
- GoogleCloudStorageService 생성 (레거시 방식 JWT 인증)
- 10MB 이상 파일은 Google Cloud Storage에 백업 (본사 연구용)
- 오디오/파일 다운로드 라우트 추가
- voice-recorder.blade.php 인라인 x-data로 변경 (HTMX 호환)
- SalesConsultation 모델에 gcs_uri 필드 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 09:15:13 +09:00
pro
bdf00f9c36 fix:체크리스트 토글 checkpoint_index NOT NULL 오류 수정
- 새 레코드 생성 시 checkpoint_index 기본값 0 설정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:53:55 +09:00
pro
5d15acebba fix:시나리오 모달 500 에러 및 무한 루프 수정
- SalesScenarioChecklist::toggle()에서 user_id 설정 추가 (DB NOT NULL 오류 해결)
- scenario-modal.blade.php에서 @scenario-modal-closed.window 이벤트 리스너 제거 (무한 루프 해결)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 08:20:04 +09:00
pro
9f6218bc07 refactor:영업담당자 → 영업파트너 용어 변경 및 드롭다운 로직 수정
- 전체 코드에서 '영업담당자' → '영업파트너'로 용어 통일
- 관리 드롭다운: 모든 HQ 사용자 → 내가 유치한 하위 영업파트너만 표시
- User.php children() 관계 활용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 07:57:30 +09:00
pro
329c58e63b refactor:영업관리 데이터를 DB 테이블로 변경
- 모델 추가: SalesPartner, SalesTenantManagement, SalesScenarioChecklist, SalesConsultation
- 모델 위치 이동: app/Models/ → app/Models/Sales/
- 컨트롤러 수정: 캐시 대신 DB 모델 사용
- 뷰 수정: Eloquent 모델 속성 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 06:42:32 +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
pro
55d04537fc feat:신용평가 조회회수 집계 기능 추가
- CreditUsageController: 조회회수 집계 컨트롤러 신규 생성
- credit/usage/index.blade.php: 집계 화면 (월별/연간/기간별)
- 과금 정책: 월 5건 무료, 추가건당 2,000원
- 본사(tenant_id=1)는 전체 테넌트 조회 가능
- CreditInquiry 모델에 tenant_id 필드 추가
- 신용평가 조회 시 tenant_id 저장하도록 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:49:13 +09:00
pro
8d73cc3f79 fix:쿨다운 → 재등록 대기 기간으로 용어 변경
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:42:40 +09:00
pro
4cf0be0ab6 refactor:가망고객 추가서류 섹션 제거 및 파트너 서류타입 정리
- prospects/create, edit, show에서 신분증/통장 사본 업로드 UI 제거
- SalesManagerDocument DOCUMENT_TYPES를 등본사본, 통장사본만 유지
- 계약서는 모두의싸인 통해 별도 처리 예정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:39:53 +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
c2d5538f30 feat:TenantProspect 모델에 신분증/통장사본 첨부 기능 추가
- fillable에 id_card_path, bankbook_path 추가
- hasIdCard(), hasBankbook() 메소드 추가
- id_card_url, bankbook_url 속성 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:49:32 +09:00
pro
d824b45fc0 feat:AI 설정에 Vertex AI 서비스 계정 인증 방식 추가
- AiConfig 모델에 Vertex AI 헬퍼 메소드 추가
- AI 설정 UI에 인증 방식 선택 (API 키 / Vertex AI)
- Vertex AI 선택 시 프로젝트 ID, 리전, 서비스 계정 경로 입력
- BusinessCardOcrService가 DB 설정 기반으로 동작
- Google AI Studio와 Vertex AI 모두 지원

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:08:30 +09:00