diff --git a/dev/dev_plans/barobill-full-migration-plan.md b/dev/dev_plans/barobill-full-migration-plan.md index 4d19587..92417d7 100644 --- a/dev/dev_plans/barobill-full-migration-plan.md +++ b/dev/dev_plans/barobill-full-migration-plan.md @@ -36,56 +36,36 @@ MNG의 바로빌 관련 **전체** 회계/통신 기능을 API+React 서비스 | 5 | 카드 조회 (ECard) | ✅ 91.2KB | ✅ CardTransaction + SyncService | ✅ 완료 | — | | 6 | 홈택스 매입/매출 (Hometax) | ✅ 79.7KB | ✅ HometaxInvoice + SyncService | ✅ 완료 | — | | 7 | 자동 동기화 스케줄러 | ✅ (MNG 크론) | ✅ SyncBarobillDataJob | ✅ 완료 | — | -| 8 | **전자세금계산서 발행 (ETax)** | ✅ EtaxController | ⚠️ TaxInvoice 모델/CRUD만 | **P1** | 1순위 | -| 9 | **카카오톡 발송** | ✅ KakaotalkController 14.5KB | ❌ 미구현 | **P2** | 2순위 | -| 10 | **SMS 발송** | ✅ SmsController | ❌ 미구현 | **P2** | 2순위 | -| 11 | **구독/과금 비즈니스 로직** | ✅ BillingService 8.4KB | ⚠️ 모델만 존재 | **P3** | 3순위 | -| 12 | **사용량 관리** | ✅ UsageService 9.6KB + Controller | ❌ 미구현 | **P3** | 3순위 | +| 8 | 전자세금계산서 발행 (ETax) | ✅ EtaxController | ✅ TaxInvoiceController + BarobillService SOAP 발행/취소/상태 | ✅ 완료 | — | +| 9 | 카카오톡 발송 | ✅ KakaotalkController 14.5KB | ✅ BarobillKakaotalkController (12 EP) | ✅ 완료 | — | +| 10 | SMS 발송 | ✅ SmsController | ✅ BarobillSmsController (4 EP) | ✅ 완료 | — | +| 11 | **구독/과금 비즈니스 로직** | ✅ BillingService 8.4KB | ⚠️ 모델만 존재 | **P2** | 2순위 | +| 12 | **사용량 관리** | ✅ UsageService 9.6KB + Controller | ❌ 미구현 | **P2** | 2순위 | ### 2.2 구현율 ``` -완료: 7/12 영역 (58%) — SOAP, 설정, 회원, 계좌, 카드, 홈택스, 스케줄러 -부분: 2/12 영역 (17%) — 세금계산서 발행, 구독/과금 -미착수: 3/12 영역 (25%) — 카카오톡, SMS, 사용량 +완료: 10/12 영역 (83%) — SOAP, 설정, 회원, 계좌, 카드, 홈택스, 스케줄러, 세금계산서, 카카오톡, SMS +부분: 1/12 영역 ( 8%) — 구독/과금 (모델만) +미착수: 1/12 영역 ( 8%) — 사용량 ``` +> **2026-03-22 정정**: 세금계산서 발행은 `BarobillService`에 `issueTaxInvoice()`, `cancelTaxInvoice()`, `checkNtsSendStatus()` SOAP 연동이 완전 구현되어 있음을 확인. P1→완료로 재분류. + --- -## 3. P1: 전자세금계산서 발행 완성 (1순위) +## 3. ~~P1: 전자세금계산서~~ → ✅ 완료 확인 (2026-03-22) -### 3.1 현재 상태 - -**API에 있는 것:** -- `TaxInvoice` 모델 + 마이그레이션 -- `TaxInvoiceController` — CRUD, 발행/취소, 상태조회, 일괄발행 라우트 -- `TaxInvoiceService` — 기본 서비스 -- `BarobillSoapService` — TI.asmx SOAP 3개 메서드 (URL 조회용) - -**MNG에 있는 것 (이관 대상):** -- `EtaxController` — SOAP TI.asmx 직접 호출로 세금계산서 작성/발행/수정/취소 -- 바로빌 발행 상태 추적 (국세청 전송 포함) -- 승인번호 조회, 발급 상태 확인 - -### 3.2 이관 작업 목록 - -| # | 작업 | 상세 | 파일 | -|---|------|------|------| -| 8-1 | SOAP 발행 메서드 추가 | `BarobillSoapService`에 `issueTaxInvoice()`, `cancelTaxInvoice()`, `getInvoiceStatus()` 등 | `api/Services/Barobill/BarobillSoapService.php` | -| 8-2 | TaxInvoiceService 보강 | 바로빌 SOAP 발행 연동, 상태 동기화 | `api/Services/TaxInvoiceService.php` | -| 8-3 | 발행 워크플로우 구현 | 임시저장→발행→국세청전송→완료 상태 관리 | `api/Controllers/Api/V1/TaxInvoiceController.php` | -| 8-4 | 수정세금계산서 지원 | 수정 사유 코드, 원본 참조 | TaxInvoice 모델 보강 | - -### 3.3 MNG 참조 파일 - -``` -mng/app/Http/Controllers/Barobill/EtaxController.php -mng/app/Services/Barobill/BarobillService.php (TI 관련 메서드) -``` +API `BarobillService`에 SOAP 발행/취소/상태조회가 완전 구현됨: +- `issueTaxInvoice()` → SOAP `RegistAndIssueTaxInvoice` +- `cancelTaxInvoice()` → SOAP `CancelTaxInvoice` +- `checkNtsSendStatus()` → SOAP `GetTaxInvoiceState` +- `TaxInvoiceController` — 16개 엔드포인트 (CRUD + 발행/취소/일괄/상태/분개) +- `TaxInvoice` 모델 — 5단계 상태 (draft→issued→sent→cancelled/failed) --- -## 4. P2: 카카오톡/SMS 발송 (2순위) +## 4. P1: 카카오톡/SMS 발송 (1순위 — 즉시 착수) ### 4.1 현재 상태 @@ -139,7 +119,7 @@ mng/app/Http/Controllers/Api/Admin/Barobill/BarobillSmsController.php --- -## 5. P3: 구독/과금/사용량 (3순위) +## 5. P2: 구독/과금/사용량 (2순위) ### 5.1 현재 상태 @@ -184,24 +164,24 @@ mng/app/Http/Controllers/Api/Admin/Barobill/BarobillUsageController.php (9.6K | `Services/Barobill/BarobillBankSyncService.php` | `Services/Barobill/BarobillBankSyncService.php` | ✅ | | `Services/Barobill/BarobillCardSyncService.php` | `Services/Barobill/BarobillCardSyncService.php` | ✅ | | `Services/Barobill/HometaxSyncService.php` | `Services/Barobill/HometaxSyncService.php` | ✅ | -| `Services/Barobill/BarobillBillingService.php` | — | ❌ P3 | -| `Services/Barobill/BarobillUsageService.php` | — | ❌ P3 | +| `Services/Barobill/BarobillBillingService.php` | — | ❌ P2 | +| `Services/Barobill/BarobillUsageService.php` | — | ❌ P2 | | **Controllers (Web)** | | | | `Controllers/Barobill/EaccountController.php` | `Controllers/Api/V1/BarobillBankTransactionController.php` | ✅ | | `Controllers/Barobill/EcardController.php` | `Controllers/Api/V1/BarobillCardTransactionController.php` | ✅ | | `Controllers/Barobill/HometaxController.php` | `Controllers/Api/V1/HometaxInvoiceController.php` | ✅ | -| `Controllers/Barobill/EtaxController.php` | `Controllers/Api/V1/TaxInvoiceController.php` | ⚠️ P1 | -| `Controllers/Barobill/KakaotalkController.php` | — | ❌ P2 | -| `Controllers/Barobill/SmsController.php` | — | ❌ P2 | +| `Controllers/Barobill/EtaxController.php` | `Controllers/Api/V1/TaxInvoiceController.php` | ✅ 완료 | +| `Controllers/Barobill/KakaotalkController.php` | `Controllers/Api/V1/BarobillKakaotalkController.php` | ✅ 완료 | +| `Controllers/Barobill/SmsController.php` | `Controllers/Api/V1/BarobillSmsController.php` | ✅ 완료 | | `Controllers/Barobill/BarobillController.php` | `Controllers/Api/V1/BarobillController.php` | ✅ | | **Controllers (Admin API)** | | | | `Api/Admin/Barobill/BarobillConfigController.php` | `Controllers/Api/V1/BarobillSettingController.php` | ✅ | | `Api/Admin/Barobill/BarobillMemberController.php` | `Controllers/Api/V1/BarobillSyncController.php` | ✅ | | `Api/Admin/Barobill/BarobillSettingController.php` | `Controllers/Api/V1/BarobillSettingController.php` | ✅ | -| `Api/Admin/Barobill/BarobillBillingController.php` | — | ❌ P3 | -| `Api/Admin/Barobill/BarobillUsageController.php` | — | ❌ P3 | -| `Api/Admin/Barobill/BarobillKakaotalkController.php` | — | ❌ P2 | -| `Api/Admin/Barobill/BarobillSmsController.php` | — | ❌ P2 | +| `Api/Admin/Barobill/BarobillBillingController.php` | — | ❌ P2 | +| `Api/Admin/Barobill/BarobillUsageController.php` | — | ❌ P2 | +| `Api/Admin/Barobill/BarobillKakaotalkController.php` | `Controllers/Api/V1/BarobillKakaotalkController.php` | ✅ 완료 | +| `Api/Admin/Barobill/BarobillSmsController.php` | `Controllers/Api/V1/BarobillSmsController.php` | ✅ 완료 | | **Models (18개)** | | | | `Models/Barobill/*` (18개) | `Models/Barobill/*` (17개) + `Models/Tenants/BarobillSetting` | ✅ | @@ -221,27 +201,18 @@ mng/app/Http/Controllers/Api/Admin/Barobill/BarobillUsageController.php (9.6K ## 7. 작업 순서 -### Phase A: P1 — 세금계산서 발행 (즉시) +### Phase A: P1 — 카카오톡/SMS (즉시 착수) ``` -1. MNG EtaxController 분석 → SOAP 발행 메서드 파악 -2. BarobillSoapService에 TI 발행/취소/상태 메서드 추가 -3. TaxInvoiceService에 바로빌 발행 연동 구현 -4. TaxInvoiceController 발행/취소 액션 완성 -5. 테스트 (테스트 모드) +1. MNG KakaotalkController/SmsController 분석 +2. API KakaotalkController + KakaotalkService 생성 +3. API SmsController + SmsService 생성 +4. Route 등록 (finance.php) +5. 발송 이력 테이블 필요 시 마이그레이션 +6. 테스트 ``` -### Phase B: P2 — 카카오톡/SMS (P1 완료 후) - -``` -1. KakaotalkController + KakaotalkService 생성 -2. SmsController + SmsService 생성 -3. Route 등록 -4. 발송 이력 테이블 필요 시 마이그레이션 -5. 테스트 -``` - -### Phase C: P3 — 구독/과금/사용량 (P2 완료 후) +### Phase B: P2 — 구독/과금/사용량 (P1 완료 후) ``` 1. BillingService + BillingController 생성 @@ -258,6 +229,8 @@ mng/app/Http/Controllers/Api/Admin/Barobill/BarobillUsageController.php (9.6K | 날짜 | 작업 | 결과 | |------|------|------| | 2026-03-22 | 전체 이관 현황 조사 및 문서화 | 이 문서 작성 | +| 2026-03-22 | 세금계산서 발행 이관 상태 재확인 | 이미 완료 확인 (P1→완료) | +| 2026-03-22 | 카카오톡/SMS API 이관 (P1) | ✅ Controller 2개 + Route 16개 생성 | ---