**Block 3** -- IF [EOH_TEL_FLG] (L23386)

> EO Light Telecom section. If the EO Light Telecom flag is true, create the main telecom bean and add optional add-ons.

| # | Type | Code |
|---|------|------|
| 1 | SET | `childBean = dataArray.addDataBean()` // Create TEL main bean |
| 2 | EXEC | `childBean.sendMessageString(KKW00101SFConst.SVC_KIND_CD_12, ..., WRIB_KIND_CD.TEL.name())` // Service type code |
| 3 | EXEC | `childBean.sendMessageString(KKW00101SFConst.SVC_CD_12, ..., getTelSvcCd(dataBean))` // Service code |
| 4 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PRC_GRP_CD_12, ..., getTelSvcKeiPgrpCd(dataBean))` // Pricing group code |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., getTelSvcKeiPcrsCd(dataBean))` // Cost code |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., getTelSvcKeiPplanCdForNewAdd(dataBean))` // Plan code |

**Block 3.1** -- IF [tel1 or tel2 notification] (L23395-23415)

> Phone number notification. If tel1 or tel2 notification flag is true, add the phone notification bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tel1HtbTchiUm = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_HTB_TCHI_UM, ...)` |
| 2 | SET | `tel2HtbTchiUm = dataBean.sendMessageBoolean(KKW00101SFConst.TEL2_HTB_TCHI_UM, ...)` |
| 3 | IF | `tel1HtbTchiUm || tel2HtbTchiUm` |
| 4 | SET | `childBean = dataArray.addDataBean()` |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.OP_SVC_CD_12, ..., JKKStrConst.OP_SVC_CD_TELNO_TCHI)` // Option: Phone number notification |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_TELNO_DSP)` |
| 7 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.CD00565_TELNO_DSP)` |

**Block 3.2** -- IF [tel1 or tel2 sender display] (L23419-23435)

> Caller ID display. If tel1 or tel2 sender display flag is true, add the caller ID display bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tel1OptHtbTchi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_OPT_HTB_TCHI, ...)` |
| 2 | SET | `tel2OptHtbTchi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL2_OPT_HTB_TCHI, ...)` |
| 3 | IF | `tel1OptHtbTchi || tel2OptHtbTchi` |
| 4 | SET | `childBean = dataArray.addDataBean()` |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.OP_SVC_CD_12, ..., JKKStrConst.OP_SVC_CD_HASINSHA_DSP)` // Option: Sender display |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_DSP)` |
| 7 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.CD00565_DSP)` |

**Block 3.3** -- IF [tel1 or tel2 blocking reception] (L23439-23456)

> Blocked-call rejection. If tel1 or tel2 blocking reception flag is true, add the blocked call bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `tel1OptHtchiKyohi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI, ...)` |
| 2 | SET | `tel2OptHtchiKyohi = dataBean.sendMessageBoolean(KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI, ...)` |
| 3 | IF | `tel1OptHtchiKyohi || tel2OptHtchiKyohi` |
| 4 | SET | `childBean = dataArray.addDataBean()` |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.SBOP_SVC_CD_12, ..., JKKStrConst.CD00137_HITCHI_KYOHI)` // Sub-option: Blocked call |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_HITCHI_KYOHI)` |
| 7 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.CD00565_HTCHI_KYOHI)` |

**Block 4** -- IF [EOH_TV_FLG] (L23462)

> EO Light TV section. If the EO Light TV flag is true, create the main TV bean and add optional add-ons.

| # | Type | Code |
|---|------|------|
| 1 | SET | `childBean = dataArray.addDataBean()` // Create TV main bean |
| 2 | EXEC | `childBean.sendMessageString(KKW00101SFConst.SVC_KIND_CD_12, ..., WRIB_KIND_CD.TV.name())` // Service type code |
| 3 | EXEC | `childBean.sendMessageString(KKW00101SFConst.SVC_CD_12, ..., getTvSvcCd(dataBean))` // Service code |
| 4 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PRC_GRP_CD_12, ..., getTvSvcKeiPgrpCd(dataBean))` // Pricing group code |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., getTvSvcKeiPcrsCd(dataBean))` // Cost code |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., getTvSvcKeiPplanCd(dataBean))` // Plan code |
| 7 | SET | `catvCompFlg = dataBean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, ...)` |

**Block 4.1** -- IF [K-CAT or Resend + HD] (L23470-23476)

> K-CAT or Resend basic HD/Premium HD. If K-CAT or ressend and HD plan, process K-CAT tuners.

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmSvcChoice = dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, ...)` |
| 2 | IF | `(catvCompFlg == K_CAT || catvCompFlg == RESEND) && mskmSvcChoice == MSKM_SVC_CHOICE_HD` |
| 3 | SET | `subBean = dataBean.getDataBeanArray(KKW00101SFConst.KCAT_TUNER_USE_CNT_LIST).getDataBean(0)` |
| 4 | SET | `kcatUseCnt = Integer.parseInt(subBean.sendMessageString(KKW00101SFConst.TUNER_USE_CNT_CD_22, ...)) + 1` |
| 5 | EXEC | `JKKWebCommon.stbMainKeiCheck(this, kcatUseCnt)` // STB main contract judgment processing |
| 6 | SET | `dataBeanArray = dataBean.getDataBeanArray(KKW00101SFConst.KCAT_TV_TUNER_LIST)` |
| 7 | SET | `mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, ...)` |
| 8 | SET | `mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, ...)` |
| 9 | SET | `jyukyoType = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, ...)` |

**Block 4.1.1** -- FOR LOOP [K-CAT tuners] (L23486-23506)

> Loop over K-CAT TV tuners. For each tuner, if a course is selected, add the TV sub service bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `i = 0` |
| 2 | FOR | `i < kcatUseCnt` |
| 3 | SET | `subBean = dataBeanArray.getDataBean(i)` |
| 4 | IF | `!JKKCommonUtil.isNull(subBean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_03, ...))` |
| 5 | SET | `childBean = dataArray.addDataBean()` |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., getTvSckeiUwPcrsCd(subBean))` // TV sub-contract cost code |
| 7 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., getTvSckeiUwPplanCd(subBean, mskmFormCd, mskmshoKind, jyukyoType))` // TV sub-contract plan code |

**Block 4.1.2** -- Get STB tuner type (L23509-23511)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kcatTvTuner = JKKWebCommon.convertCodeMultiArray(bean[0], KKW00101SFConst.KCAT_TV_TUNER_LIST, subBean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_03, ...), KKW00101SFConst.KCAT_TV_TUNER_CD_LIST_03)` |

**Block 4.1.3** -- IF [Non-4K tuner types] (L23516-23572)

> ANK-2530-00-00 MOD: For non-4K tuners (no-rec new, HD500, HDD 2TB, no-rec, blue-ray, HDD) -- add STB, BCAS Card, and CCAS Card beans.

| # | Type | Code |
|---|------|------|
| 1 | IF | `(KCAT_TV_TUNER_CD_NORECNEW || KCAT_TV_TUNER_CD_HD500 || KCAT_TV_TUNER_CD_HDD2TB || KCAT_TV_TUNER_CD_NOREC || KCAT_TV_TUNER_CD_BL || KCAT_TV_TUNER_CD_HDD).equals(kcatTvTuner)` |
| 2 | SET | `childBean = dataArray.addDataBean()` // STB bean |
| 3 | SET | `prcKnrnMap = getStbPrcKnrnCd(kcatTvTuner)` // STB price-related codes |
| 4 | EXEC | `childBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_12, ..., JKKStrConst.KKTK_SVC_CD_STB)` // Equipment service code: STB |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., pcrsCd)` // STB cost code |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., pplanCd)` // STB plan code |
| 7 | SET | `childBean = dataArray.addDataBean()` // BCAS Card bean |
| 8 | EXEC | `childBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_12, ..., JKKStrConst.KKTK_SVC_CD_B_CAS)` // Equipment service code: BCAS |
| 9 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_BCAS)` |
| 10 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.CD00565_BCAS)` |
| 11 | SET | `childBean = dataArray.addDataBean()` // CCAS Card bean |
| 12 | EXEC | `childBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_12, ..., JKKStrConst.KKTK_SVC_CD_C_CAS)` // Equipment service code: CCAS |
| 13 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_CCAS)` |
| 14 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.CD00565_CCAS)` |

**Block 4.1.4** -- IF [4K tuner types] (L23576-23614)

> ANK-3488-00-00 ADD: For 4K STBs, create STB bean but skip BCAS (4K STBs do not use BCAS data). Only create CCAS Card.

| # | Type | Code |
|---|------|------|
| 1 | ELSE IF | `(KCAT_TV_TUNER_CD_4KNON || KCAT_TV_TUNER_CD_4KSTB).equals(kcatTvTuner)` [-> KCAT_TV_TUNER_CD_4KNON, KCAT_TV_TUNER_CD_4KSTB] |
| 2 | SET | `childBean = dataArray.addDataBean()` // STB bean |
| 3 | SET | `prcKnrnMap = getStbPrcKnrnCd(kcatTvTuner)` |
| 4 | EXEC | `childBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_12, ..., JKKStrConst.KKTK_SVC_CD_STB)` // Equipment service code: STB |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., pcrsCd)` |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., pplanCd)` |
| 7 | SET | `childBean = dataArray.addDataBean()` // CCAS Card only (no BCAS for 4K) |
| 8 | EXEC | `childBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_12, ..., JKKStrConst.KKTK_SVC_CD_C_CAS)` |
| 9 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_CCAS)` |
| 10 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.CD00565_CCAS)` |

**Block 4.2** -- IF [cableGuide count > 0] (L23620-23634)

> Cable guide magazine subscription. If the count is "1" and greater than 0, add the cable guide bean.

| # | Type | Code |
|---|------|------|
| 1 | SET | `cableGuideMskmCnt = dataBean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, ...)` |
| 2 | IF | `cableGuideMskmCnt.matches(HANKAKU_NUM_1) && count > 0` [-> HANKAKU_NUM_1="1"] |
| 3 | SET | `childBean = dataArray.addDataBean()` |
| 4 | EXEC | `childBean.sendMessageString(KKW00101SFConst.OP_SVC_CD_12, ..., JKKStrConst.OP_SVC_CABLE_GUDMG)` // Option: Cable guide |
| 5 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, ..., JKKStrConst.CD00134_B36)` |
| 6 | EXEC | `childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, ..., JKKStrConst.OPSVC_PPLAN_CABLE_GUDMG)` |
