# Business Logic — JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd() [46 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.commonOneStop.JKKKeiNewCmnLogicUtil` |
| Layer | Utility / Common Component |
| Module | `commonOneStop` (Package: `eo.web.webview.commonOneStop`) |

## 1. Role

### JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()

This method resolves **eo HIKARI Telephone (eo光電話) option service codes** to their corresponding **billing-related codes**. It acts as a centralized routing/dispatch utility that translates a single input option service code (`opSvcCd`) into a structured key-value map containing two billing identifiers: `pcrs_cd` (price code — fee rate classification) and `pplan_cd` (price plan code — specific billing plan identifier). The method implements a **pure lookup-dispatch pattern**: it evaluates the input against seven supported option service types (telephone number display, discounted telephone, forwarded telephone, caller ID display, confusion call rejection, specified number incoming select, and call details delivery) and populates the result map with the appropriate pair of billing codes. If the input does not match any known option service, the method returns `null` to signal an unrecognized service. This utility is shared across multiple screen-level DAO mappers (98 callers total), serving as the canonical mapping source for eo HIKARI Telephone option billing code resolution throughout the customer management system.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["getEohtlOpPrcKnrnCd_opSvcCd"])
    START --> INIT["Initialize: dataMap = new HashMap"]

    INIT --> COND{Branch on opSvcCd}

    COND -- TELNO_TCHI_B022 --> BR1["Route: Telephone Number Display"]
    COND -- WARKMI_TEL_B023 --> BR2["Route: Discounted Telephone"]
    COND -- TNS_TEL_B024 --> BR3["Route: Forwarded Telephone"]
    COND -- HASINSHA_DSP_B025 --> BR4["Route: Caller ID Display"]
    COND -- MWKTEL_KYOHI_B026 --> BR5["Route: Confusion Call Rejection"]
    COND -- STINO_INCOM_B027 --> BR6["Route: Specified Number Incoming Select"]
    COND -- ANSN_HCS_B135 --> BR7["Route: Call Details Delivery"]
    COND -- UNMATCHED --> BR8["Return null"]

    BR1 --> RET["Return dataMap with pcrs_cd and pplan_cd"]
    BR2 --> RET
    BR3 --> RET
    BR4 --> RET
    BR5 --> RET
    BR6 --> RET
    BR7 --> RET
    BR8 --> NULL_RET["Return null"]
```

**CRITICAL — Constant Resolution:**

| Constant | Resolved Value | Business Meaning |
|----------|---------------|-----------------|
| `OP_SVC_CD_TELNO_TCHI` | `"B022"` | Option service code — Telephone number display (standard caller ID) |
| `OP_SVC_CD_WARKMI_TEL` | `"B023"` | Option service code — Discounted telephone (warikomi) |
| `OP_SVC_CD_TNS_TEL` | `"B024"` | Option service code — Forwarded telephone |
| `OP_SVC_CD_HASINSHA_DSP` | `"B025"` | Option service code — Sender number display (caller ID visibility control) |
| `OP_SVC_CD_MWKTEL_KYOHI` | `"B026"` | Option service code — Confusion call rejection (mewaku-denwa) |
| `OP_SVC_CD_STINO_INCOM_CHOICE` | `"B027"` | Option service code — Specified number incoming select |
| `OP_SVC_CD_ANSN_HCS_SVC` | `"B135"` | Option service code — Call details delivery (ANSN HCS service) |

The resulting billing codes resolved:

| Output Key | Constant | Resolved Value | Business Meaning |
|-----------|----------|---------------|-----------------|
| `pcrs_cd` | `CD00134_TELNO_DSP` | `"B26"` | Fee code — Telephone number display |
| `pplan_cd` | `CD00565_TELNO_DSP` | `"PB2601"` | Fee plan code — Telephone number display |
| `pcrs_cd` | `CD00134_WARIKOMI` | `"B27"` | Fee code — Discounted telephone |
| `pplan_cd` | `CD00565_WARIKOMI` | `"PB2701"` | Fee plan code — Discounted telephone |
| `pcrs_cd` | `CD00134_TNS_TEL` | `"B28"` | Fee code — Forwarded telephone |
| `pplan_cd` | `CD00565_TNS_TEL` | `"PB2801"` | Fee plan code — Forwarded telephone |
| `pcrs_cd` | `CD00134_DSP` | `"B29"` | Fee code — Sender number display |
| `pplan_cd` | `CD00565_DSP` | `"PB2901"` | Fee plan code — Sender number display |
| `pcrs_cd` | `CD00134_MWKTEL_KYOHI` | `"B30"` | Fee code — Confusion call rejection |
| `pplan_cd` | `CD00565_MWKTEL_KYOHI` | `"PB3001"` | Fee plan code — Confusion call rejection |
| `pcrs_cd` | `CD00134_STINO_INCOM_KYOHI` | `"B31"` | Fee code — Specified number incoming rejection |
| `pplan_cd` | `CD00565_STINO_INCOM_CHOICE` | `"PB3101"` | Fee plan code — Specified number incoming select |
| `pcrs_cd` | `CD00134_ANSN_HCS_SVC` | `"BE6"` | Fee code — Call details delivery (ANSN HCS) |
| `pplan_cd` | `CD00565_ANSN_HCS_SVC` | `"PBE601"` | Fee plan code — Call details delivery (ANSN HCS) |

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `opSvcCd` | `String` | Option service code — A telecom domain identifier that classifies which eo HIKARI Telephone optional add-on service is being billed. Valid values are `"B022"` through `"B135"`. Determines which billing code pair (`pcrs_cd`/`pplan_cd`) is returned. If the value does not match any of the seven recognized option services, `null` is returned, signaling an unrecognized or unsupported service type. |

No instance fields or external state are read by this method. It is a pure, stateless utility function that depends only on its input parameter and the resolved constant values from `JKKStrConst`.

## 4. CRUD Operations / Called Services

This method performs **no external CRUD operations**. It is a pure in-memory lookup utility that constructs and returns a `HashMap` from resolved constants. No database queries, service component calls, CBS invocations, or entity manipulations occur within this method.

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| — | — | — | — | This method is a pure constant-resolution utility. No CRUD, SC, or CBS calls are present. |

## 5. Dependency Trace

### Pre-computed evidence from code analysis graph:

No screen/batch entry points found within 8 hops. Direct callers found: 98 methods.
Terminal operations from this method: —

All callers are DAO mapper classes in the `KKSVxxxx` screen module family. They invoke this utility to resolve billing codes for displaying and processing eo HIKARI Telephone option service charges.

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen:KKSV0080 | `KKSV0080_KKSV0080OPDBMapper.getEohTelAddOpSvcKeiList()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 2 | Screen:KKSV0080 | `KKSV0080_KKSV0080OPDBMapper.setTelOpSvcKeiAddMap()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 3 | Screen:KKSV0082 | `KKSV0082_KKSV0082OPDBMapper.getEohTelAddOpSvcKeiList()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 4 | Screen:KKSV0085 | `KKSV0085_KKSV0085OPDBMapper.setKKSV008501CC()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 5 | Screen:KKSV0085 | `KKSV0085_KKSV0085OPDBMapper.setKKSV008502CC()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 6 | Screen:KKSV0102 | `KKSV0102_KKSV0102OPDBMapper.setForAddSvcKeiTelCC()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 7 | Screen:KKSV0102 | `KKSV0102_KKSV0102OPDBMapper.setKKSV010205CC()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 8 | Screen:KKSV0675 | `KKSV0675_KKSV0675OPDBMapper.createTelOpList()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |
| 9 | Screen:KKSV0895 | `KKSV0895_KKSV0895OPDBMapper.setSvcKeiTelCmn()` -> `JKKKeiNewCmnLogicUtil.getEohtlOpPrcKnrnCd()` | — (pure lookup) |

## 6. Per-Branch Detail Blocks

**Block 1** — [STATEMENT] (L17437)

> Initialize the return data structure. A new HashMap is created to hold the billing code key-value pairs.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap = new HashMap<String, String>()` // Creates the result map |

**Block 2** — [IF] `(JKKStrConst.OP_SVC_CD_TELNO_TCHI.equals(opSvcCd))` [`OP_SVC_CD_TELNO_TCHI`="B022"] (L17438)

> Routes telephone number display option service to its billing codes: pcrs_cd="B26", pplan_cd="PB2601".

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_TELNO_DSP="B26")` // Fee code for telephone number display [-> CD00134_TELNO_DSP="B26"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_TELNO_DSP="PB2601")` // Fee plan code for telephone number display [-> CD00565_TELNO_DSP="PB2601"] |

**Block 3** — [ELSE-IF] `(JKKStrConst.OP_SVC_CD_WARKMI_TEL.equals(opSvcCd))` [`OP_SVC_CD_WARKMI_TEL`="B023"] (L17443)

> Routes discounted telephone option service to its billing codes: pcrs_cd="B27", pplan_cd="PB2701".

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_WARIKOMI="B27")` // Fee code for discounted telephone [-> CD00134_WARIKOMI="B27"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_WARIKOMI="PB2701")` // Fee plan code for discounted telephone [-> CD00565_WARIKOMI="PB2701"] |

**Block 4** — [ELSE-IF] `(JKKStrConst.OP_SVC_CD_TNS_TEL.equals(opSvcCd))` [`OP_SVC_CD_TNS_TEL`="B024"] (L17448)

> Routes forwarded telephone option service to its billing codes: pcrs_cd="B28", pplan_cd="PB2801".

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_TNS_TEL="B28")` // Fee code for forwarded telephone [-> CD00134_TNS_TEL="B28"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_TNS_TEL="PB2801")` // Fee plan code for forwarded telephone [-> CD00565_TNS_TEL="PB2801"] |

**Block 5** — [ELSE-IF] `(JKKStrConst.OP_SVC_CD_HASINSHA_DSP.equals(opSvcCd))` [`OP_SVC_CD_HASINSHA_DSP`="B025"] (L17453)

> Routes caller ID display option service to its billing codes: pcrs_cd="B29", pplan_cd="PB2901".

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_DSP="B29")` // Fee code for sender number display [-> CD00134_DSP="B29"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_DSP="PB2901")` // Fee plan code for sender number display [-> CD00565_DSP="PB2901"] |

**Block 6** — [ELSE-IF] `(JKKStrConst.OP_SVC_CD_MWKTEL_KYOHI.equals(opSvcCd))` [`OP_SVC_CD_MWKTEL_KYOHI`="B026"] (L17458)

> Routes confusion call rejection option service to its billing codes: pcrs_cd="B30", pplan_cd="PB3001".

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_MWKTEL_KYOHI="B30")` // Fee code for confusion call rejection [-> CD00134_MWKTEL_KYOHI="B30"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_MWKTEL_KYOHI="PB3001")` // Fee plan code for confusion call rejection [-> CD00565_MWKTEL_KYOHI="PB3001"] |

**Block 7** — [ELSE-IF] `(JKKStrConst.OP_SVC_CD_STINO_INCOM_CHOICE.equals(opSvcCd))` [`OP_SVC_CD_STINO_INCOM_CHOICE`="B027"] (L17463)

> Routes specified number incoming select option service to its billing codes: pcrs_cd="B31", pplan_cd="PB3101".

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_STINO_INCOM_KYOHI="B31")` // Fee code for specified number incoming rejection [-> CD00134_STINO_INCOM_KYOHI="B31"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_STINO_INCOM_CHOICE="PB3101")` // Fee plan code for specified number incoming select [-> CD00565_STINO_INCOM_CHOICE="PB3101"] |

**Block 8** — [ELSE-IF] `(JKKStrConst.OP_SVC_CD_ANSN_HCS_SVC.equals(opSvcCd))` [`OP_SVC_CD_ANSN_HCS_SVC`="B135"] (L17468)

> Routes call details delivery (ANSN HCS) option service to its billing codes: pcrs_cd="BE6", pplan_cd="PBE601". This branch was added under ANK-3754-00-00.

| # | Type | Code |
|---|------|------|
| 1 | SET | `dataMap.put("pcrs_cd", CD00134_ANSN_HCS_SVC="BE6")` // Fee code for call details delivery [-> CD00134_ANSN_HCS_SVC="BE6"] |
| 2 | SET | `dataMap.put("pplan_cd", CD00565_ANSN_HCS_SVC="PBE601")` // Fee plan code for call details delivery [-> CD00565_ANSN_HCS_SVC="PBE601"] |

**Block 9** — [ELSE] — Unmatched input (L17474)

> Default case: the input `opSvcCd` does not match any of the seven recognized option service codes. Returns `null` to indicate no valid billing mapping exists for the given service.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return null` // Unrecognized option service code — no billing codes available |

**Block 10** — [RETURN] (L17476)

> Normal exit path: returns the populated dataMap containing the resolved `pcrs_cd` and `pplan_cd` entries.

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return dataMap` // Returns the billing code map to the caller |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|-----------------|
| `opSvcCd` | Field | Option service code — Identifies which optional add-on service is being billed for an eo HIKARI Telephone line |
| `pcrs_cd` | Field | Price code (Pricing rate code) — A fee rate classification code used in the billing system to determine the charge level for an option service |
| `pplan_cd` | Field | Price plan code — A specific billing plan identifier that maps to the actual monetary rate charged to the customer for an option service |
| `dataMap` | Field | HashMap result container — Temporary structure holding the two resolved billing code key-value pairs (pcrs_cd and pplan_cd) |
| `OP_SVC_CD` | Constant prefix | Option Service Code — Domain constant prefix for option service type identifiers in JKKStrConst |
| `CD00134` | Constant prefix | Fee code code set — Constant prefix for billing rate classification codes (the pcrs_cd values) |
| `CD00565` | Constant prefix | Fee plan code set — Constant prefix for specific billing plan rate identifiers (the pplan_cd values) |
| TELNO_TCHI | Business term | Telephone number (telephony) — Refers to standard telephone number-based services; TELNO_TCHI="B022" is the telephone number display option |
| WARIKOMI | Japanese term (割込) | Discount / Surcharge — Refers to discounted telephone service billing (warikomi) |
| TNS_TEL | Business term | Telephone forward — Forwarded telephone service option |
| HASINSHA_DSP | Business term | Sender (caller) number display — Caller ID visibility control service |
| MWKTEL_KYOHI | Japanese term (迷惑電話拒否) | Confusion call rejection — Rejects unwanted/nuisance incoming calls |
| STINO_INCOM_CHOICE | Japanese term (指定番号着信選択) | Specified number incoming select — Selective incoming call acceptance for specified numbers |
| ANSN_HCS_SVC | Japanese term (安否確認サービス) | Call details delivery — An安心 safety-check service that delivers call detail information, added under ANK-3754-00-00 |
| ANK | Acronym | Project code prefix — Internal project/ticket identifier prefix (e.g., ANK-3754-00-00) |
| eo HIKARI | Business term | eo光 — NTT Communications' fiber-optic internet service brand; eo HIKARI Telephone is the associated VoIP telephone service |
| KKSV | Class prefix | Screen module — DAO/OPDBMapper class naming convention for screen-level data access objects (KKSV0080, KKSV0082, etc.) |
| JKKKeiNewCmnLogicUtil | Class | Common logic utility — Shared utility class for common billing/fee-related logic across the eo customer management system |
| JKKStrConst | Class | String constants — Centralized constant definition class for all string literals used throughout the system |
