- app_versions 테이블 마이그레이션 (시스템 레벨, tenant_id 없음)
- AppVersion 모델 (SoftDeletes)
- AppVersionService: getLatestVersion, downloadApk
- AppVersionController: GET /api/v1/app/version, GET /api/v1/app/download/{id}
- ApiKeyMiddleware 화이트리스트에 api/v1/app/* 추가
- app_releases 스토리지 디스크 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- push_urgent → push_vendor_register (거래처등록)
- push_payment → push_approval_request (결재요청)
- push_income 신규 추가 (입금)
- config/fcm.php에 전체 7개 채널 등록 (기존 2개→7개)
- 서비스 파일 하드코딩을 config() 참조로 전환
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- FormulaEvaluatorService: 완제품 미등록 상태에서도 경동 전용 계산 진행, product_model/finishing_type/installation_type 변수 추가
- LOGICAL_RELATIONSHIPS.md: stock_transactions 모델 관계 반영
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- UpdateReceivingRequest: status 허용값에 completed 추가, receiving_qty/receiving_date/lot_no 필드 추가
- ReceivingService::update(): status가 completed로 변경 시 LOT번호 자동생성, 입고수량/입고일 설정, 재고 연동(StockService) 처리
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 케이스 마구리: 수량 2 고정 → quantity 기반 (5130: maguriPrices × $su)
- 각파이프: 하드코딩 1개 → pipe_3000_qty/pipe_6000_qty 2종 분리 (5130: col68+col69)
- 기본값 fallback: 파이프 수량 미입력 시 W0 기준 자동 결정 유지
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 영업(Sales), 재무(Finance), 생산(Production) 3개 도메인 구현
- 일간/월간 통계 테이블 6개 마이그레이션 생성
- 도메인별 StatService (SalesStatService, FinanceStatService, ProductionStatService)
- Daily/Monthly 6개 Eloquent 모델 생성
- StatAggregatorService에 도메인 서비스 매핑 활성화
- StatJobLog duration_ms abs() 처리
- 스케줄러 등록 (일간 02:00, 월간 1일 03:00)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- QuoteStoreRequest/UpdateRequest에 discount_amount 필드 추가
- QuoteService: 프론트엔드에서 계산한 할인금액 우선 사용, 없으면 비율로 계산
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- stock_transactions 마이그레이션 생성 (type, qty, balance_qty, reference)
- StockTransaction 모델 (IN/OUT/RESERVE/RELEASE 타입, 사유 상수)
- StockService 5개 메서드에 거래 이력 기록 추가
- increaseFromReceiving → IN
- decreaseFIFO → OUT (LOT별)
- reserve → RESERVE (LOT별)
- releaseReservation → RELEASE (LOT별)
- decreaseForShipment → OUT (LOT별)
- Stock 모델에 transactions() 관계 추가
- 기존 audit_logs 기록은 유지 (감사 로그와 거래 이력 목적 분리)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ClientService.index()에 client_type 파라미터 필터 추가
- 쉼표 구분 복수 값 지원 (예: PURCHASE,BOTH)
- 매입 가능 거래처만 조회하는 용도
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- receiving_date 기준 → created_at(작성일) 기준으로 변경
- 입고처리 전(receiving_date=NULL) 데이터가 필터에서 누락되는 문제 해결
- creator 관계 eager loading 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 출금 건별 개별 이슈 → 해당일 누계 1건으로 upsert
- 첫 건: "거래처명 출금 금액원"
- 2건+: "첫거래처명 외 N건 출금 합계 금액원"
- 삭제 시 남은 건수/금액으로 자동 갱신
- FCM 푸시 미발송 (알림 설정 미구현)
- 기존 개별 source_id 레거시 이슈 자동 정리
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- QuoteController에 getItemPrices 엔드포인트 추가
- QuoteCalculationService에 품목 코드 배열로 단가 조회 기능 추가
- 불필요한 디버그 로그 제거
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- KdPriceTable 모델: 경동기업 단가 테이블 (motor, shaft, pipe, angle, raw_material, bdmodels)
- KyungdongFormulaHandler: 모터 용량, 브라켓 크기, 절곡품(10종), 부자재(3종) 계산
- FormulaEvaluatorService: tenant_id=287 라우팅 추가
- kd_price_tables 마이그레이션 및 시더 (47건 단가 데이터)
테스트 결과: W0=3000, H0=2500 입력 시 16개 항목, 합계 751,200원 정상 계산
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- OrderService: client relation에 manager_name 추가
- Order 모델: shipping_cost_label accessor 추가 (common_codes 조회)
- $appends에 shipping_cost_label 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- handleExpectedExpenseChange()에서 source_type이 'purchases'인 경우 알림 제외
- 매입 알림은 결재 상신 시에만 발송되도록 변경
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 같은 날 같은 사용자의 기록이 있으면 업데이트, 없으면 생성
- 기존 Create Only 패턴에서 Upsert 패턴으로 변경
- Swagger 문서 업데이트 (409 응답 제거, 설명 변경)
Co-Authored-By: Claude <noreply@anthropic.com>
- DocumentService 생성 (CRUD + 결재 워크플로우)
- 순차 결재 로직 구현 (submit/approve/reject/cancel)
- Multi-tenancy 및 DB 트랜잭션 지원
Co-Authored-By: Claude <noreply@anthropic.com>
- TodayIssue 모델에 SOURCE_TO_BADGE 매핑 상수 추가
- TodayIssueService에서 source_type 기반 badge 매핑 적용
- 입금/출금 소스 타입 및 뱃지 상수 추가
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TodayIssue 모델에 scopeToday() 스코프 추가
- TodayIssueService::summary()에 오늘 날짜 필터 적용
- 전체 개수 계산에도 오늘 날짜 필터 적용
Co-Authored-By: Claude <noreply@anthropic.com>
- CategoryService: tree 메서드에 code_group 필터 지원 추가
- FormulaEvaluatorService: 하드코딩된 process_type을 동적 카테고리로 변경
- groupItemsByProcess(): item_category 필드 기반 그룹화
- getItemCategoryTree(): DB에서 카테고리 트리 조회
- buildCategoryMapping(): BENDING 하위 카테고리 처리
- addProcessGroupToItems(): category_code 필드 추가 (레거시 호환 유지)
- QuoteItemCategorySeeder: 품목 카테고리 초기 데이터 시더 추가
- BODY, BENDING(하위 3개), MOTOR_CTRL, ACCESSORY
Co-Authored-By: Claude <noreply@anthropic.com>
- has_bom 파라미터 추가 (1: BOM 있는 품목만, 0: BOM 없는 품목만)
- JSON_LENGTH 활용한 BOM 유무 필터링 구현
- name 필드를 "코드 이름" 형식으로 반환 (일시적 변경)
- FULLTEXT 인덱스 활용 검색 개선 (BOOLEAN MODE)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TenantSetting CRUD API 추가
- Calendar, Entertainment, VAT 서비스 개선
- 5130 BOM 계산 로직 수정
- quote_items에 item_type 컬럼 추가
- tenant_settings 테이블 마이그레이션
- Swagger 문서 업데이트
- ItemService.php: has_bom 계산 필드 추가 (BOM 필터링용)
- FormulaEvaluatorService.php: process_group 필드 추가 (공정별 그룹핑)
관련: 견적 V2 자동 견적 산출 4가지 오류 수정
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- BadDebt 컨트롤러/서비스 기능 확장
- StockService 재고 조회 로직 개선
- ProcessReceivingRequest 검증 규칙 수정
- Item, Order, CommonCode, Shipment 모델 업데이트
- TodayIssueObserverService 개선
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SyncExpectedExpensesCommand 추가
- ExpectedExpenseService 로직 개선
- LOGICAL_RELATIONSHIPS 문서 업데이트
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TodayIssueObserverService에서 신규 거래처 알림 경로에 ?openModal=credit 파라미터 추가
- 알림 클릭 시 거래처 상세 페이지로 이동하면서 신용분석 모달 자동 오픈
Co-Authored-By: Claude <noreply@anthropic.com>
- DepositIssueObserver, WithdrawalIssueObserver 신규 추가
- TodayIssueObserverService에 입금/출금 핸들러 및 디버그 로그 추가
- TodayIssue 모델에 입금/출금 상수 추가
- AppServiceProvider에 Observer 등록
- ApprovalService에 기존 결재선 사용 시 수동 알림 트리거 추가
- LoanController ApiResponse::handle() → ApiResponse::success() 수정
Co-Authored-By: Claude <noreply@anthropic.com>
- summary.current_month_total → current_month_amount 변경
- summary.previous_month_total → previous_month_amount 변경
- monthly_trend[].month → label 변경 ("2025-07" → "7월")
- by_type[].label → type_label 변경
- by_type[].color 필드 추가 (차트 색상)
- items[].date → purchase_date 변경
프론트엔드 transformer와 API 응답 구조 일치
Co-Authored-By: Claude <noreply@anthropic.com>
- ApprovalService: inbox 쿼리에 결재자 상세 정보 추가 (직책, 부서)
- PurchaseController: dashboardDetail 엔드포인트 추가
- CardTransactionService: 당월 이용 건수 추가
- SaleService: 대시보드 조회 개선
- LOGICAL_RELATIONSHIPS.md 업데이트
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- dashboardDetail() 메서드에 transaction_type 파라미터 추가
- 카드별 필터링 지원 (purchase, card, bill, null=전체)
- 카드 금액과 모달 금액이 동일한 데이터 소스 사용하도록 개선
Co-Authored-By: Claude <noreply@anthropic.com>
- LoanService에 taxSimulation() 메서드 추가
- LoanController에 taxSimulation() 액션 추가
- GET /api/v1/loans/tax-simulation 라우트 등록
- Swagger LoanTaxSimulation 스키마 및 엔드포인트 문서화
- 법인세/소득세 비교 분석 데이터 제공
Co-Authored-By: Claude <noreply@anthropic.com>