docs: [barobill] 카카오톡/SMS 이관 완료 반영, 세금계산서 완료 확인

This commit is contained in:
김보곤
2026-03-22 19:56:05 +09:00
parent dfb406d304
commit 31cd0477eb

View File

@@ -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개 생성 |
---