## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["checkKKW00124Error<br/>isErrClear, isCallTabletAgntGet<br/>isCallSmpAgntGet"]) --> GETBEAN["GetX31SDataBeanAccess dataBean"]
    GETBEAN --> ERRCLR["if isErrClear?"]
    ERRCLR -- true --> CLRERR["clearPageErrInfo KKW00124_ERR_INFO<br/>reset TAB_NET_DSP_STAT"]
    ERRCLR -- false --> SKIPCLR["skip error clear"]
    CLRERR --> SINGLECHECK["単項目チェック: 審査結果通知"]
    SKIPCLR --> SINGLECHECK
    SINGLECHECK --> GETSKEKKA["get SKEKKA_TCHI_22"]
    GETSKEKKA --> SKEKKA_CHECK{"skekkaTchi length == 0?"}
    SKEKKA_CHECK -- true --> SKEKKA_ERR["addError EKB1320_NW<br/>must-check 審査結果通知"]
    SKEKKA_CHECK -- false --> TMCKCHECK["checkTmckSkekkaCdDetail"]
    SKEKKA_ERR --> TMCKCHECK
    TMCKCHECK --> JIMU_GET["get JIMU_COMMISION<br/>get JIMU_COMMISION_SHITEI_22"]
    JIMU_GET --> JIMU_CHECK{"jimuCommision length == 0?"}
    JIMU_CHECK -- true --> JIMU_ERR["addError EKB0010_TW<br/>must-check 事務手数料"]
    JIMU_CHECK -- false --> SHITEI_CHECK{"jimuCommision == JIMU_COMMISION_SHITEI<br/>shitei length == 0?"}
    JIMU_ERR --> SHITEI_CHECK
    SHITEI_CHECK -- true --> SHITEI_ERR["addError EKB0710_NW<br/>事務手数料指定必須"]
    SHITEI_CHECK -- false --> TABLET_GET["Get tabletTnmtNm, tabletPayway<br/>tabletBuy, tabletPremiumPack<br/>smpTnmtNm, smpBuyerName"]
    SHITEI_ERR --> TABLET_GET
    TABLET_GET --> PREMIUM_PACK{"tabletPremiumPack?"}
    PREMIUM_PACK -- true --> CHECK_TABLET_BUY{"tabletBuy?"}
    PREMIUM_PACK -- false --> TABLET_BUY{"tabletBuy?"}
    CHECK_TABLET_BUY -- true --> ERR_TABLET["addError EKBB860__Q<br/>premium pack needs tablet"]
    CHECK_TABLET_BUY -- false --> GH_CHECK
    TABLET_BUY -- true --> CHECK_TNMT_NM{"tabletTnmtNm empty?"}
    TABLET_BUY -- false --> GH_CHECK
    CHECK_TNMT_NM -- true --> ERR_TNMT["addError EKBB870_NW<br/>terminal name required"]
    CHECK_TNMT_NM -- false --> CHECK_PAYWAY{"tabletPayway null?"}
    ERR_TNMT --> CHECK_PAYWAY
    CHECK_PAYWAY -- true --> ERR_PAYWAY["addError EKBB870_NW x each item<br/>payment method required"]
    CHECK_PAYWAY -- false --> BUYER_CHECK{"!isCallTabletAgntGet<br/>tabletBuyer empty?"}
    ERR_PAYWAY --> BUYER_CHECK
    BUYER_CHECK -- true --> ERR_BUYER["addError EKBC870_KW<br/>buyer name required"]
    BUYER_CHECK -- false --> GH_FLG_CHECK
    ERR_BUYER --> GH_FLG_CHECK
    GH_FLG_CHECK["Get selectedIndex, ghJudgeInfo<br/>parse GH flag"] --> PREMIUM_GH{"!tabletPremiumPack<br/>and !ghFlg?"}
    PREMIUM_GH -- true --> ERR_PREM_GH["addError EKBB880__Q<br/>premium pack or GH required"]
    PREMIUM_GH -- false --> PACK_CHECK
    ERR_PREM_GH --> PACK_CHECK["Security/Family/Smart Premium pack check<br/>from preMap session data"]
    PACK_CHECK --> SVC_CALL["KKSV0119 mapper setup<br/>callService"]
    SVC_CALL --> SVC_RESULT{"service result false?"}
    SVC_RESULT -- true --> SVC_ERR["reset TAB_NET_DSP_STAT"]
    SVC_RESULT -- false --> SVC_OK["proceed"]
    SVC_ERR --> SVC_OK
    SVC_OK --> SVC_NO_CHECK{"svcKeiNo length > 0?"}
    SVC_NO_CHECK -- true --> ROUTER_CHECK["Router/Family/Jimu/Hyojun/Private<br/>family pack checks"]
    SVC_NO_CHECK -- false --> STB_CHECK
    ROUTER_CHECK --> STB_CHECK{"IP_STB_RENTAL?"}
    STB_CHECK -- true --> STB_TNMT{"smpTnmtNm empty?"}
    STB_CHECK -- false --> MASUTA_CHECK
    STB_TNMT -- true --> STB_ERR["addError EKBB870_NW<br/>streaming player required"]
    STB_TNMT -- false --> STB_BUYER{"!isCallSmpAgntGet<br/>smpBuyer empty?"}
    STB_ERR --> STB_BUYER
    STB_BUYER -- true --> STB_BUYER_ERR["addError EKBC870_KW<br/>buyer name required"]
    STB_BUYER -- false --> SMP_ERR_CHECK{"scResult errflg set?"}
    STB_BUYER_ERR --> SMP_ERR_CHECK
    SMP_ERR_CHECK -- true --> CHECKSMP["checksmpErr"]
    SMP_ERR_CHECK -- false --> MASUTA_CHECK
    CHECKSMP --> MASUTA_CHECK["Check tablet payway<br/>installment plan"]
    MASUTA_CHECK --> EOH_CRS_CHG["eohnetcrschgflg flag"]
    EOH_CRS_CHG --> MSKM_KIND["Check MSKM_KIND"]
    MSKM_KIND --> MANSION{"MSKM_KIND_MANSION?"}
    MANSION -- true --> HOSHIKI["Check MANSION_KAISEN_HOSHIKI"]
    MANSION -- false --> MEZON{"MSKM_KIND_MEZON?"}
    HOSHIKI --> ETHER{"ETHER?"}
    HOSHIKI --> OPTICAL{"OPTICAL?"}
    HOSHIKI --> VDSL{"VDSL?"}
    ETHER --> ETH_CRS{"eohnetcrschgflg?<br/>addError if true"}
    OPTICAL --> OPT_CRS{"eohnetcrschgflg?<br/>addError if true"}
    VDSL --> VDSL_CRS{"eohnetcrschgflg?<br/>addError + reset + info"}
    ETH_CRS --> MEZON_CRS{"MSKM_KIND_MEZON?"}
    OPT_CRS --> MEZON_CRS
    VDSL_CRS --> MEZON_CRS
    MEZON_CRS -- true --> MEZ_CRS{"eohnetcrschgflg?<br/>addError if true"}
    MEZON_CRS -- false --> CHKOUCHI
    MEZ_CRS --> CHKOUCHI["checkOuchiKikiHosho<br/>checkMeshWifi"]
    CHKOUCHI --> TYPE_N{"isTypeNHantei?"}
    TYPE_N -- true --> TYPE_N_CHECK["Type N: transfer no.<br/>phone, format checks"]
    TYPE_N -- false --> OPTICAL53
    TYPE_N_CHECK --> OPTICAL53["Optical mansion pattern 53<br/>1G/10G flag check"]
    OPTICAL53 --> END(["Return true"])
```

**CRITICAL - Constant Resolution:**

When the code branches on constants, the following resolved values apply:

| Constant | Resolved Value | Business Meaning |
|----------|---------------|-----------------|
| `KKW00124_TAB_INDEX` | `0` | Index of the Net tab in the service info data bean array |
| `KKW00124_ERR_INFO` | `4` | Error info ID for KKW00124 screen errors |
| `SKEKKA_TCHI_22` | "審査結果通知" | Assessment notification result |
| `JIMU_COMMISION_SHITEI_22` | "事務手数料（指定）" | Handling fee (specified amount) |
| `OP_ROUTER_RENTAL_CD_MUSEN` | `"1"` | No wireless router (無線ルーター) |
| `MSKM_KIND_MANSION` | `"1"` | Mansion type (マンション) |
| `MSKM_KIND_MEZON` | `"2"` | Building type (ビル) |
| `MANSION_KAISEN_HSK_CD_ETHER` | `"1"` | Ethernet connection method (イーサネット方式) |
| `MANSION_KAISEN_HSK_CD_OPTICAL` | `"2"` | Optical fiber connection method (光配線方式) |
| `MANSION_KAISEN_HSK_CD_VDSL` | `"3"` | VDSL connection method |
| `JKKStrConst.TK_HOSHIKI_PATTERN_CD_53` | `"53"` | Optical mansion pattern code 53 (53光変更マンション) |
| `WAO_TENYO_DIV_01` | `"01"` | Transfer: new (転用: 新規) |
| `WAO_BMP_NEW` | `"0"` | Obtain new number (新番号を取得する) |
| `TENYO_SHODAKU_NO_CHECK` | `"^[TFEW][0-9]{10}"` | Transfer contract number format (first char T/F/E/W, then 10 digits) |
| `JKKStrConst.WRIB_SVC_CD_SECURITY_PACK` | "Security Pack service code" | Security pack discount service |
| `JKKStrConst.WRIB_SVC_FAMIPA` | "Family Pack service code" | Family Pack discount service |
| `JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM` | `"B077"` | Smart Premium service code |
| `KKSV0119` | Screen ID constant | Use case ID for KKSV0119 screen |
