# Business Logic - FUW00943SFLogic.finMskm() [966 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW00943SF.FUW00943SFLogic` |
| Layer | Controller / Web Logic (package: `eo.web.webview.FUW00943SF`) |
| Module | `FUW00943SF` (Package: `eo.web.webview.FUW00943SF`) |

## 1. Role

### FUW00943SFLogic.finMskm()

This method is the core **submission completion handler** for the eo customer base system's inquiry (amounts/direct sales) screen. When a customer presses the "Apply" (submit) button on the application screen, this method orchestrates the full end-to-end registration of all contracted services for that customer.

The method supports multiple **service types**: eo Light (fiber internet / FTTH), eo Phone (telecom), eo TV (broadcast), eo Mobile (mobile carrier - mineo), and eo Electric (energy). Each can be combined into various bundles (Light Pack, Phone Pack, etc.), and the method branches its processing accordingly based on which services were selected by the customer.

It implements a **delegation/dispatch design pattern**: the method prepares and populates a shared input map through over 40 calls to a DB mapper (`FUSV0160_FUSV0160OPDBMapper`), each call corresponding to a specific service component (SC) that handles a discrete business operation - from service contract registration to discount service registration, phone number operations, payment method registration, and application content approval. After populating the map, it delegates all actual persistence to a single `invokeService()` call (WS-based bulk insert/update).

Its **role in the larger system** is that of a final submission transaction coordinator. It sits at the boundary between the web UI and the backend service layer. It is called both from the main submission path (`FUW00943SFLogic.mineoMskm()`) and directly via the "mineo Apply" button. It handles complex conditional branching based on contract type (individual vs. corporate), sales type (retail vs. direct sales), device type (home / mansion / mezono), and payment method (credit card, bank transfer continuation). The method also prepares and dispatches post-submission confirmation emails to customers when applicable (direct sales channel with email address set).

If no additional application is specified (`mskmKbn != "2"`), the method also requests application content approval from the SC layer. If the device plan includes PC/PCW/TV plans, it triggers device compensation registration. If an introduction code is provided (referral tracking), it registers and updates the introduction service. Finally, after the transaction completes successfully, it prepares a confirmation email with personalized text replacement fields (customer name, order number, service name, etc.) and dispatches it via `JFUWebCommon.sendMskmFinMail()`.
