달력

122025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

ModelEV.cpp

Programs 2014. 8. 14. 20:18

#include "Inc.hpp"

//----------------------------------------------------------------
//ModelEV 클래스 함수들
//----------------------------------------------------------------

ModelEV::ModelEV()
{
    index_ACQ1_EXP = 9999; index_ACQ13_EXP = 9999; index_ACQ14_EXP = 9999; index_ACQ2_EXP = 9999;
    index_ACQ3_EXP = 9999; index_ACQ4_EXP = 9999; index_ACQ5_EXP = 9999; index_ACQ8_EXP = 9999;
    index_ADJ_MATH_RES = 9999; index_ALPHA_LOAD_IF = 9999; index_ALPHA_LOAD_IF_EXP = 9999;
    index_ANUITY_OUTGO = 9999; index_BETA_LOAD_IF = 9999; index_CASH_PREM = 9999;
    index_COLL1_EXP = 9999; index_COLL13_EXP = 9999; index_COLL14_EXP = 9999; index_COLL3_EXP = 9999;
    index_COLL8_EXP = 9999; index_COMM1_EXP = 9999; index_COMM124_EXP = 9999; index_COMM2_EXP = 9999;
    index_COMM31_EXP = 9999; index_COMM32_EXP = 9999; index_COMM33_EXP = 9999; index_COMM34_EXP = 9999;
    index_COMM4_EXP = 9999; index_COMM5_EXP = 9999; index_COMM6_EXP = 9999; index_COMM71_EXP = 9999;
    index_COMM72_EXP = 9999; index_CRED_INT = 9999; index_DAC_ASSD = 9999; index_DAC_DIFF = 9999;
    index_DAC_UNAMORT = 9999; index_DEATH_OUTGO = 9999; index_DEATH_RISK_PREM = 9999; index_DIAG_OUTGO = 9999;
    index_DIAG_RISK_PREM = 9999; index_DISBL_OUTGO = 9999; index_DISBL_RISK_PREM = 9999; index_FMF_INC = 9999;
    index_FMF_OUT = 9999; index_GAMMA_LOAD_IF = 9999; index_GMAB_INC_IF = 9999; index_GMAB_OUT_IF = 9999;
    index_GMAB_RES = 9999; index_GMAB_RES_IF = 9999; index_GMDB_INC_IF = 9999; index_GMDB_INC2_IF = 9999;
    index_GMDB_INCTI_IF = 9999; index_GMDB_OUT_IF = 9999; index_GMDB_OUTTI_IF = 9999; index_GMDB_RES = 9999;
    index_GMDB_RES_IF = 9999; index_GMDB_RESTI = 9999; index_GMDB_RESTI_IF = 9999; index_GMDB_RISK_IF = 9999;
    index_GMSB_INCTI_IF = 9999; index_GMSB_OUTTI_IF = 9999; index_GMSB_RESTI = 9999; index_GMSB_RESTI_IF = 9999;
    index_GMSB_RISK_IF = 9999; index_HOSP_OUTGO = 9999; index_HOSP_RISK_PREM = 9999; index_INFORCE_PREM = 9999;
    index_INFORCEPOL = 9999; index_INFORCEPOL_TK = 9999; index_LIVING_OUTGO = 9999; index_MAINT1_EXP = 9999;
    index_MAINT13_EXP = 9999; index_MAINT14_EXP = 9999; index_MAINT15_EXP = 9999; index_MAINT16_EXP = 9999;
    index_MAINT3_EXP = 9999; index_MAINT4_EXP = 9999; index_MAINT5_EXP = 9999; index_MAINT8_EXP = 9999;
    index_MAINT9_EXP = 9999; index_MAT_OUTGO = 9999; index_NO_NEW_POLS = 9999; index_NONU_INT = 9999;
    index_O_TAXBL_INC = 9999; index_OTH_OUTGO = 9999; index_OTH_RISK_PREM = 9999; index_OTH_RISK_PREM_RBC = 9999;
    index_OTHER_EXP = 9999; index_OTHER1_EXP = 9999; index_PART_SURR_OUTGO = 9999; index_PREM_1ST_M = 9999;
    index_PREM_1ST_S = 9999; index_PREM_INC = 9999; index_PREM_INC_DISC = 9999; index_PREM_UL_BAL = 9999;
    index_PREM_UL_SUB = 9999; index_PREM1YR = 9999; index_PRIOR_ADJ_MATH_RES = 9999; index_PRIOR_DAC_ASSD = 9999;
    index_PRIOR_DAC_UNAMORT = 9999; index_PRIOR_GMAB_RES_IF = 9999; index_PRIOR_GMDB_RES_IF = 9999;
    index_PRIOR_GMDB_RESTI_IF = 9999; index_PRIOR_GMSB_RESTI_IF = 9999; index_PRIOR_PREM_UL_BAL = 9999;
    index_PRIOR_RES_P = 9999; index_PRIOR_RES_W = 9999; index_RBC_ASSET = 9999; index_RBC_ASSET_PRIOR = 9999;
    index_RBC_RISK_A = 9999; index_RBC_RISK_A_DEATH = 9999; index_RBC_RISK_A_DIAGSURG = 9999;
    index_RBC_RISK_A_DISBL = 9999; index_RBC_RISK_A_HOSP = 9999; index_RBC_RISK_A_OTH = 9999;
    index_RBC_RISK_A_PR_DEATH = 9999; index_RBC_RISK_A_PR_DIAGSURG = 9999; index_RBC_RISK_A_PR_DISBL = 9999;
    index_RBC_RISK_A_PR_HOSP = 9999; index_RBC_RISK_A_PR_OTH = 9999; index_RBC_RISK_A_PR_SILSON = 9999;
    index_RBC_RISK_A_SILSON = 9999; index_RBC_RISK_B = 9999; index_RBC_RISK_C = 9999;
    index_RBC_RISK_D_ASSET = 9999; index_RBC_RISK_D_LIAB = 9999; index_RBC_RISK_D_LIAB_PRIOR = 9999;
    index_RBC_RISK_D_MIN = 9999; index_RBC_RISK_D_MIN_PRIOR = 9999; index_RBC_RISK_D_RASSET = 9999;
    index_RBC_RISK_D_REV = 9999; index_RBC_RISK_D_RLIAB = 9999; index_RBC_RISK_D_RLIAB_PRIOR = 9999;
    index_RBC_RISK_D_RLIAB_TEMP = 9999; index_RBC_RISK_E_GEN = 9999; index_RBC_RISK_E_GMAB = 9999;
    index_RBC_RISK_E_GMAB_MIN = 9999; index_RBC_RISK_E_GMDB = 9999; index_RBC_RISK_E_GMDB_MIN = 9999;
    index_RES_P = 9999; index_RES_W = 9999; index_RISK_PREM_SB_IF = 9999; index_SA_ANNUITY = 9999;
    index_SAVING_PREM_SB_IF = 9999; index_SEP_CV_LOAD = 9999; index_SEP_LIVING_OUTGO = 9999;
    index_SEP_NET_LOAD = 9999; index_SEP_PART_SURR_OUTGO = 9999; index_SEP_PREM_1ST_M = 9999;
    index_SEP_PREM_1ST_S = 9999; index_SEP_PREM_INFORCE = 9999; index_SEP_PREM_UL_BAL = 9999;
    index_SEP_PREM_UL_SUB = 9999; index_SEP_PRIOR_PREM_UL_BAL = 9999; index_SEP_PRIOR_RES_P = 9999;
    index_SEP_PRIOR_RES_W = 9999; index_SEP_PU_BETA_LOAD = 9999; index_SEP_PW_DIFF = 9999;
    index_SEP_RES_DTH = 9999; index_SEP_RES_P = 9999; index_SEP_RES_W = 9999; index_SEP_RISK_PREM = 9999;
    index_SEP_SAVE_PREM = 9999; index_SEP_SURR_OUTGO = 9999; index_SILSON_OUTGO = 9999;
    index_SILSON_RISK_PREM_RBC = 9999; index_STD_RES_DTH = 9999; index_SUDANG = 9999;
    index_SUM_ASSD_IF = 9999; index_SURG_OUTGO = 9999; index_SURG_RISK_PREM = 9999;
    index_SURR_OUTGO = 9999; index_TOT_ALPHA_EXP = 9999; index_TOT_BEN_OUTGO = 9999;
    index_TOT_BETA_EXP = 9999; index_TOT_GAMMA_EXP = 9999; index_WAIVER_PREM_IF = 9999;

    return;
}

void ModelEV::Init(long MaxPeriod, FieldInfoSet* fieldinfo)
{
 this->ProjPeriod  = MaxPeriod;
    this->FieldNumOrg = fieldinfo->iFieldNumOrg();

           
    //연산에 사용되는 필드값 추출
    for (int i=0; i<FieldNumOrg; i++)
    {
             if (strcmp(fieldinfo->cFieldName(i), "ACQ1_EXP"                 )==0) index_ACQ1_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ13_EXP"                )==0) index_ACQ13_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ14_EXP"                )==0) index_ACQ14_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ2_EXP"                 )==0) index_ACQ2_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ3_EXP"                 )==0) index_ACQ3_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ4_EXP"                 )==0) index_ACQ4_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ5_EXP"                 )==0) index_ACQ5_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ACQ8_EXP"                 )==0) index_ACQ8_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ADJ_MATH_RES"             )==0) index_ADJ_MATH_RES = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ALPHA_LOAD_IF"            )==0) index_ALPHA_LOAD_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ALPHA_LOAD_IF_EXP"        )==0) index_ALPHA_LOAD_IF_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "ANUITY_OUTGO"             )==0) index_ANUITY_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "BETA_LOAD_IF"             )==0) index_BETA_LOAD_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "CASH_PREM"                )==0) index_CASH_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COLL1_EXP"                )==0) index_COLL1_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COLL13_EXP"               )==0) index_COLL13_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COLL14_EXP"               )==0) index_COLL14_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COLL3_EXP"                )==0) index_COLL3_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COLL8_EXP"                )==0) index_COLL8_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM1_EXP"                )==0) index_COMM1_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM124_EXP"              )==0) index_COMM124_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM2_EXP"                )==0) index_COMM2_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM31_EXP"               )==0) index_COMM31_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM32_EXP"               )==0) index_COMM32_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM33_EXP"               )==0) index_COMM33_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM34_EXP"               )==0) index_COMM34_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM4_EXP"                )==0) index_COMM4_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM5_EXP"                )==0) index_COMM5_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM6_EXP"                )==0) index_COMM6_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM71_EXP"               )==0) index_COMM71_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "COMM72_EXP"               )==0) index_COMM72_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "CRED_INT"                 )==0) index_CRED_INT = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DAC_ASSD"                 )==0) index_DAC_ASSD = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DAC_DIFF"                 )==0) index_DAC_DIFF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DAC_UNAMORT"              )==0) index_DAC_UNAMORT = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DEATH_OUTGO"              )==0) index_DEATH_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DEATH_RISK_PREM"          )==0) index_DEATH_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DIAG_OUTGO"               )==0) index_DIAG_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DIAG_RISK_PREM"           )==0) index_DIAG_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DISBL_OUTGO"              )==0) index_DISBL_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "DISBL_RISK_PREM"          )==0) index_DISBL_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "FMF_INC"                  )==0) index_FMF_INC = i;
        else if (strcmp(fieldinfo->cFieldName(i), "FMF_OUT"                  )==0) index_FMF_OUT = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GAMMA_LOAD_IF"            )==0) index_GAMMA_LOAD_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMAB_INC_IF"              )==0) index_GMAB_INC_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMAB_OUT_IF"              )==0) index_GMAB_OUT_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMAB_RES"                 )==0) index_GMAB_RES = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMAB_RES_IF"              )==0) index_GMAB_RES_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_INC_IF"              )==0) index_GMDB_INC_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_INC2_IF"             )==0) index_GMDB_INC2_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_INCTI_IF"            )==0) index_GMDB_INCTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_OUT_IF"              )==0) index_GMDB_OUT_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_OUTTI_IF"            )==0) index_GMDB_OUTTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_RES"                 )==0) index_GMDB_RES = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_RES_IF"              )==0) index_GMDB_RES_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_RESTI"               )==0) index_GMDB_RESTI = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_RESTI_IF"            )==0) index_GMDB_RESTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMDB_RISK_IF"             )==0) index_GMDB_RISK_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMSB_INCTI_IF"            )==0) index_GMSB_INCTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMSB_OUTTI_IF"            )==0) index_GMSB_OUTTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMSB_RESTI"               )==0) index_GMSB_RESTI = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMSB_RESTI_IF"            )==0) index_GMSB_RESTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "GMSB_RISK_IF"             )==0) index_GMSB_RISK_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "HOSP_OUTGO"               )==0) index_HOSP_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "HOSP_RISK_PREM"           )==0) index_HOSP_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "INFORCE_PREM"             )==0) index_INFORCE_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "INFORCEPOL"               )==0) index_INFORCEPOL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "INFORCEPOL_TK"            )==0) index_INFORCEPOL_TK = i;
        else if (strcmp(fieldinfo->cFieldName(i), "LIVING_OUTGO"             )==0) index_LIVING_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT1_EXP"               )==0) index_MAINT1_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT13_EXP"              )==0) index_MAINT13_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT14_EXP"              )==0) index_MAINT14_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT15_EXP"              )==0) index_MAINT15_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT16_EXP"              )==0) index_MAINT16_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT3_EXP"               )==0) index_MAINT3_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT4_EXP"               )==0) index_MAINT4_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT5_EXP"               )==0) index_MAINT5_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT8_EXP"               )==0) index_MAINT8_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAINT9_EXP"               )==0) index_MAINT9_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "MAT_OUTGO"                )==0) index_MAT_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "NO_NEW_POLS"              )==0) index_NO_NEW_POLS = i;
        else if (strcmp(fieldinfo->cFieldName(i), "NONU_INT"                 )==0) index_NONU_INT = i;
        else if (strcmp(fieldinfo->cFieldName(i), "O_TAXBL_INC"              )==0) index_O_TAXBL_INC = i;
        else if (strcmp(fieldinfo->cFieldName(i), "OTH_OUTGO"                )==0) index_OTH_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "OTH_RISK_PREM"            )==0) index_OTH_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "OTH_RISK_PREM_RBC"        )==0) index_OTH_RISK_PREM_RBC = i;
        else if (strcmp(fieldinfo->cFieldName(i), "OTHER_EXP"                )==0) index_OTHER_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "OTHER1_EXP"               )==0) index_OTHER1_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PART_SURR_OUTGO"          )==0) index_PART_SURR_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM_1ST_M"               )==0) index_PREM_1ST_M = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM_1ST_S"               )==0) index_PREM_1ST_S = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM_INC"                 )==0) index_PREM_INC = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM_INC_DISC"            )==0) index_PREM_INC_DISC = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM_UL_BAL"              )==0) index_PREM_UL_BAL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM_UL_SUB"              )==0) index_PREM_UL_SUB = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PREM1YR"                  )==0) index_PREM1YR = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_ADJ_MATH_RES"       )==0) index_PRIOR_ADJ_MATH_RES = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_DAC_ASSD"           )==0) index_PRIOR_DAC_ASSD = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_DAC_UNAMORT"        )==0) index_PRIOR_DAC_UNAMORT = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_GMAB_RES_IF"        )==0) index_PRIOR_GMAB_RES_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_GMDB_RES_IF"        )==0) index_PRIOR_GMDB_RES_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_GMDB_RESTI_IF"      )==0) index_PRIOR_GMDB_RESTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_GMSB_RESTI_IF"      )==0) index_PRIOR_GMSB_RESTI_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_PREM_UL_BAL"        )==0) index_PRIOR_PREM_UL_BAL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_RES_P"              )==0) index_PRIOR_RES_P = i;
        else if (strcmp(fieldinfo->cFieldName(i), "PRIOR_RES_W"              )==0) index_PRIOR_RES_W = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_ASSET"                )==0) index_RBC_ASSET = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_ASSET_PRIOR"          )==0) index_RBC_ASSET_PRIOR = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A"               )==0) index_RBC_RISK_A = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_DEATH"         )==0) index_RBC_RISK_A_DEATH = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_DIAGSURG"      )==0) index_RBC_RISK_A_DIAGSURG = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_DISBL"         )==0) index_RBC_RISK_A_DISBL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_HOSP"          )==0) index_RBC_RISK_A_HOSP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_OTH"           )==0) index_RBC_RISK_A_OTH = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_PR_DEATH"      )==0) index_RBC_RISK_A_PR_DEATH = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_PR_DIAGSURG"   )==0) index_RBC_RISK_A_PR_DIAGSURG = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_PR_DISBL"      )==0) index_RBC_RISK_A_PR_DISBL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_PR_HOSP"       )==0) index_RBC_RISK_A_PR_HOSP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_PR_OTH"        )==0) index_RBC_RISK_A_PR_OTH = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_PR_SILSON"     )==0) index_RBC_RISK_A_PR_SILSON = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_A_SILSON"        )==0) index_RBC_RISK_A_SILSON = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_B"               )==0) index_RBC_RISK_B = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_C"               )==0) index_RBC_RISK_C = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_ASSET"         )==0) index_RBC_RISK_D_ASSET = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_LIAB"          )==0) index_RBC_RISK_D_LIAB = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_LIAB_PRIOR"    )==0) index_RBC_RISK_D_LIAB_PRIOR = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_MIN"           )==0) index_RBC_RISK_D_MIN = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_MIN_PRIOR"     )==0) index_RBC_RISK_D_MIN_PRIOR = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_RASSET"        )==0) index_RBC_RISK_D_RASSET = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_REV"           )==0) index_RBC_RISK_D_REV = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_RLIAB"         )==0) index_RBC_RISK_D_RLIAB = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_RLIAB_PRIOR"   )==0) index_RBC_RISK_D_RLIAB_PRIOR = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_D_RLIAB_TEMP"    )==0) index_RBC_RISK_D_RLIAB_TEMP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_E_GEN"           )==0) index_RBC_RISK_E_GEN = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_E_GMAB"          )==0) index_RBC_RISK_E_GMAB = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_E_GMAB_MIN"      )==0) index_RBC_RISK_E_GMAB_MIN = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_E_GMDB"          )==0) index_RBC_RISK_E_GMDB = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RBC_RISK_E_GMDB_MIN"      )==0) index_RBC_RISK_E_GMDB_MIN = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RES_P"                    )==0) index_RES_P = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RES_W"                    )==0) index_RES_W = i;
        else if (strcmp(fieldinfo->cFieldName(i), "RISK_PREM_SB_IF"          )==0) index_RISK_PREM_SB_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SA_ANNUITY"               )==0) index_SA_ANNUITY = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SAVING_PREM_SB_IF"        )==0) index_SAVING_PREM_SB_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_CV_LOAD"              )==0) index_SEP_CV_LOAD = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_LIVING_OUTGO"         )==0) index_SEP_LIVING_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_NET_LOAD"             )==0) index_SEP_NET_LOAD = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PART_SURR_OUTGO"      )==0) index_SEP_PART_SURR_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PREM_1ST_M"           )==0) index_SEP_PREM_1ST_M = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PREM_1ST_S"           )==0) index_SEP_PREM_1ST_S = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PREM_INFORCE"         )==0) index_SEP_PREM_INFORCE = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PREM_UL_BAL"          )==0) index_SEP_PREM_UL_BAL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PREM_UL_SUB"          )==0) index_SEP_PREM_UL_SUB = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PRIOR_PREM_UL_BAL"    )==0) index_SEP_PRIOR_PREM_UL_BAL = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PRIOR_RES_P"          )==0) index_SEP_PRIOR_RES_P = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PRIOR_RES_W"          )==0) index_SEP_PRIOR_RES_W = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PU_BETA_LOAD"         )==0) index_SEP_PU_BETA_LOAD = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_PW_DIFF"              )==0) index_SEP_PW_DIFF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_RES_DTH"              )==0) index_SEP_RES_DTH = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_RES_P"                )==0) index_SEP_RES_P = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_RES_W"                )==0) index_SEP_RES_W = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_RISK_PREM"            )==0) index_SEP_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_SAVE_PREM"            )==0) index_SEP_SAVE_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SEP_SURR_OUTGO"           )==0) index_SEP_SURR_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SILSON_OUTGO"             )==0) index_SILSON_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SILSON_RISK_PREM_RBC"     )==0) index_SILSON_RISK_PREM_RBC = i;
        else if (strcmp(fieldinfo->cFieldName(i), "STD_RES_DTH"              )==0) index_STD_RES_DTH = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SUDANG"                   )==0) index_SUDANG = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SUM_ASSD_IF"              )==0) index_SUM_ASSD_IF = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SURG_OUTGO"               )==0) index_SURG_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SURG_RISK_PREM"           )==0) index_SURG_RISK_PREM = i;
        else if (strcmp(fieldinfo->cFieldName(i), "SURR_OUTGO"               )==0) index_SURR_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "TOT_ALPHA_EXP"            )==0) index_TOT_ALPHA_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "TOT_BEN_OUTGO"            )==0) index_TOT_BEN_OUTGO = i;
        else if (strcmp(fieldinfo->cFieldName(i), "TOT_BETA_EXP"             )==0) index_TOT_BETA_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "TOT_GAMMA_EXP"            )==0) index_TOT_GAMMA_EXP = i;
        else if (strcmp(fieldinfo->cFieldName(i), "WAIVER_PREM_IF"           )==0) index_WAIVER_PREM_IF = i;
    }
   
    return;
}

void ModelEV::StartUp(double** result, FieldInfoSet* fieldinfo, char* mcode, char* alfakey2)
{
    this->Result_Org_val = result;
    strcpy(this->M_CODE,   mcode   );
    strcpy(this->ALFAKEY2, alfakey2);
   
    vRESULT_ORG.Init(ProjPeriod,FieldNumOrg);
    vGEN_PREM.Init(ProjPeriod);  
    vRISK_PREM_SB_IF.Init(ProjPeriod);  

    return;
}

ModelEV::~ModelEV()
{
}

/***************************************************************/
/*            사용자정의 함수                                  */
/***************************************************************/


double ModelEV::fRESULT_ORG(unsigned short u, unsigned short index)
{   
    return Result_Org_val[u][index];
}

double ModelEV::RESULT(unsigned short u, unsigned short index)
{   
    if (index>=FieldNumOrg) return 0.0;

    if (u>ProjPeriod)       return 0.0;
   
    return RESULT_ORG(u, index);
}

double ModelEV::fGEN_PREM(unsigned short u)
{  
    if (strcmp(M_CODE, "PA4")==0)
    {
    }

    if (strcmp(ALFAKEY2, "EP1")==0)
    {
    }
   
    if (u==360)
    {
    }
   
    
    return RESULT(u, index_PREM_INC)
         - RESULT(u, index_SEP_PREM_1ST_M)
         - RESULT(u, index_SEP_PREM_1ST_S)
         - RESULT(u, index_SEP_PREM_INFORCE)
         + RESULT(u, index_SEP_RISK_PREM)
         - RESULT(u, index_PREM_UL_SUB)
         + RESULT(u, index_SEP_PREM_UL_SUB)
         - RESULT(u, index_GMDB_INC2_IF);
}

double ModelEV::fRISK_PREM_SB_IF(unsigned short u)
{
    return RESULT(u, index_RISK_PREM_SB_IF);
}

 

/***************************************************************/
/*            EV Report                                        */
/***************************************************************/

double ModelEV::fRBC_GMAB(unsigned short u)
{

 return  RESULT(u, index_RBC_RISK_E_GMAB)
 
}

double ModelEV::fRBC_GMAB_MIN(unsigned short u)
{

 return  RESULT(u, index_RBC_RISK_E_GMAB_MIN)
 
}

double ModelEV::fCOMMISSION_EXPENSE_TOTAL(unsigned short u)
{

 return  RESULT(u, index_COMM1_EXP)
 +RESULT(u, index_COMM2_EXP)
 +RESULT(u, index_COMM31_EXP)
 +RESULT(u, index_COMM32_EXP)
 +RESULT(u, index_COMM33_EXP)
 +RESULT(u, index_COMM34_EXP)
 +RESULT(u, index_COMM4_EXP)
 +RESULT(u, index_COMM5_EXP)
 +RESULT(u, index_COMM6_EXP)
 +RESULT(u, index_COMM71_EXP)
 +RESULT(u, index_COMM72_EXP) ..
 -RESULT(u, index_COMM124_EXP)
}

double ModelEV::fACQUISITION_EXPENSE_TOTAL(unsigned short u)
{

 return  RESULT(u, index_ACQ1_EXP)
        +RESULT(u, index_ACQ2_EXP)
        +RESULT(u, index_ACQ3_EXP)
        +RESULT(u, index_ACQ8_EXP)
        +RESULT(u, index_ACQ14_EXP)
}


double ModelEV::fMAINTENANCE_EXPENSE_TOTAL(unsigned short u)
{

 return  RESULT(u, index_MAINT1_EXP)
 +RESULT(u, index_MAINT3_EXP)
 +RESULT(u, index_MAINT8_EXP) 
 +RESULT(u, index_MAINT9_EXP)
 +RESULT(u, index_MAINT13_EXP)
 +RESULT(u, index_MAINT14_EXP)
 +(RESULT(u, index_MAINT15_EXP)
 +RESULT(u, index_MAINT16_EXP))
}


double ModelEV::fCOLLECTION_EXPENSE(unsigned short u)
{

 return  (RESULT(u, index_COLL1_EXP)
 +RESULT(u, index_COLL3_EXP)
 +RESULT(u, index_COLL8_EXP) 
 +RESULT(u, index_COLL13_EXP)
 +RESULT(u, index_COLL14_EXP))
}


double ModelEV::fOTHER_EXPENSES(unsigned short u)
{

 return  RESULT(u, index_MAINT4_EXP)
 +RESULT(u, index_MAINT5_EXP)
}


double ModelEV::fTRANSGATOSA(unsigned short u)
{

 return  RESULT(u, index_SEP_PREM_1ST_M)
 +RESULT(u, index_SEP_PREM_1ST_S)
 +RESULT(u, index_SEP_PREM_INFORCE) 
 -RESULT(u, index_SEP_RISK_PREM)
 +RESULT(u, index_GMDB_INC2_IF)
}


double ModelEV::fTRANSSATOGA(unsigned short u)
{

 return  RESULT(u, index_SEP_PU_BETA_LOAD) 
}


double ModelEV::fTRANSSATOGASURR(unsigned short u)
{

 return  RESULT(u, index_SEP_SURR_OUTGO)
 +RESULT(u, index_SEP_PW_DIFF) 
}


double ModelEV::fTRANSSATOGALIVING(unsigned short u)
{

 return  RESULT(u, index_SEP_LIVING_OUTGO)
 +RESULT(u, index_SEP_PART_SURR_OUTGO)
}


double ModelEV::fTRANSSATOGAANNRES(unsigned short u)
{

 return  RESULT(u, index_SA_ANNUITY) 
}


double ModelEV::fTRANSSATOGADTHRES(unsigned short u)
{

 return  RESULT(u, index_SEP_RES_DTH)
}


double ModelEV::fLIVING_BEN_OUTGO(unsigned short u)
{

 return  RESULT(u, index_LIVING_OUTGO)
        +RESULT(u, index_PART_SURR_OUTGO)
}


double ModelEV::fDACACQ_NO(unsigned short u)
{

 return  RESULT(u, index_ACQ2_EXP)
}


double ModelEV::fDACACQ_PREM(unsigned short u)
{

 return  RESULT(u, index_ACQ1_EXP)
}


double ModelEV::fNONDACACQ_NO(unsigned short u)
{

 return  RESULT(u, index_ACQ3_EXP)
}


double ModelEV::fNONDACACQ_PREM(unsigned short u)
{

 return  RESULT(u, index_ACQ8_EXP)
}


double ModelEV::fMAINT_NO(unsigned short u)
{

 return  RESULT(u, index_MAINT1_EXP)
}


double ModelEV::fMAINT_PREM(unsigned short u)
{

 return  RESULT(u, index_MAINT15_EXP)
        +RESULT(u, index_MAINT16_EXP)
}


double ModelEV::fSAVING_PREM_GA(unsigned short u)
{

 return  RESULT(u, index_SAVING_PREM_SB_IF)
       -(RESULT(u, index_SEP_PREM_1ST_M)
        +RESULT(u, index_SEP_PREM_1ST_S)
        +RESULT(u, index_SEP_PREM_INFORCE)
        -RESULT(u, index_SEP_RISK_PREM)
        +RESULT(u, index_SEP_NET_LOAD)
        -RESULT(u, index_SEP_CV_LOAD))   
}


double ModelEV::fSAVING_PREM_SA(unsigned short u)
{

 return  RESULT(u, index_SEP_PREM_1ST_M)
        +RESULT(u, index_SEP_PREM_1ST_S)
        +RESULT(u, index_SEP_PREM_INFORCE)
        -RESULT(u, index_SEP_RISK_PREM)
        +RESULT(u, index_SEP_NET_LOAD)
        -RESULT(u, index_SEP_CV_LOAD)
}


double ModelEV::fE_RES_0(unsigned short u)
{

 return  RESULT(u, index_PRIOR_RES_W)
        -RESULT(u, index_SEP_PRIOR_RES_W)
        +RESULT(u, index_PRIOR_GMDB_RES_IF)
        +RESULT(u, index_PRIOR_GMAB_RES_IF)
        +RESULT(u, index_PRIOR_GMSB_RESTI_IF)
        +RESULT(u, index_PRIOR_GMDB_RESTI_IF)

      -(RESULT(u, index_PRIOR_PREM_UL_BAL)
       -RESULT(u, index_SEP_PRIOR_PREM_UL_BAL))
        +RESULT(u, index_PRIOR_PERS_BONUS)
}


double ModelEV::fE_RES_1(unsigned short u)
{

 return  RESULT(u, index_RES_W)
        -RESULT(u, index_SEP_RES_W)
        +RESULT(u, index_GMDB_RES_IF)
        +RESULT(u, index_GMAB_RES_IF)
        +RESULT(u, index_GMSB_RESTI_IF)
        +RESULT(u, index_GMDB_RESTI_IF)
      -(RESULT(u, index_PREM_UL_BAL)
        -RESULT(u, index_SEP_PREM_UL_BAL))
        +RESULT(u, index_PERS_BONUS_RES_BB_IF
}


double ModelEV::fGEN_PREM(unsigned short u)
{

 return  RESULT(u, index_PREM_INC)
        -RESULT(u, index_SEP_PREM_1ST_M)
        -RESULT(u, index_SEP_PREM_1ST_S)
        -RESULT(u, index_SEP_PREM_INFORCE)
        +RESULT(u, index_SEP_RISK_PREM)
       -(RESULT(u, index_PREM_UL_SUB)
        -RESULT(u, index_SEP_PREM_UL_SUB))
        -RESULT(u, index_GMDB_INC2_IF)      
}


double ModelEV::fTOT_BEN(unsigned short u)
{

 return  RESULT(u, index_MAT_OUTGO)
        +RESULT(u, index_ANUITY_OUTGO)
        +RESULT(u, index_LIVING_OUTGO)
        +RESULT(u, index_SURR_OUTGO)
        +RESULT(u, index_PART_SURR_OUTGO)
       +(RESULT(u, index_DEATH_OUTGO)
       +(RESULT(u, index_DISBL_OUTGO)
        +RESULT(u, index_SURG_OUTGO)
        +RESULT(u, index_HOSP_OUTGO)
        +RESULT(u, index_OTH_OUTGO)
        +RESULT(u, index_DIAG_OUTGO)))
        -RESULT(u, index_SEP_SURR_OUTGO)
        -RESULT(u, index_SEP_LIVING_OUTGO)
        -RESULT(u, index_SEP_PART_SURR_OUTGO)
}


double ModelEV::fTOT_EXP(unsigned short u)
{

 return  RESULT(u, index_TOT_ALPHA_EXP)
        +RESULT(u, index_TOT_BETA_EXP)
        +RESULT(u, index_TOT_GAMMA_EXP)
}


double ModelEV::fETC_INC_VA(unsigned short u)
{

 return  RESULT(u, index_SEP_RES_DTH)
        +RESULT(u, index_SEP_PU_BETA_LOAD)
        +RESULT(u, index_SEP_PW_DIFF)
        +RESULT(u, index_SA_ANNUITY)
        +RESULT(u, index_GMDB_INC_IF)
        +RESULT(u, index_GMAB_INC_IF)
}


double ModelEV::fETC_OUT_VA(unsigned short u)
{

 return  RESULT(u, index_GMDB_RES_IF)
        +RESULT(u, index_GMAB_RES_IF)
        +RESULT(u, index_GMSB_RESTI_IF)
        +RESULT(u, index_GMDB_RESTI_IF)
       -(RESULT(u, index_PRIOR_GMDB_RES_IF)
        +RESULT(u, index_PRIOR_GMAB_RES_IF)
        +RESULT(u, index_PRIOR_GMSB_RESTI_IF)
        +RESULT(u, index_PRIOR_GMDB_RESTI_IF))
}


double ModelEV::fRES_DTH(unsigned short u)
{

 return  RESULT(u, index_STD_RES_DTH)
        -RESULT(u, index_SEP_RES_DTH)
}

double ModelEV::fGMAB_OUT_IF(unsigned short u)
{

 return  RESULT(u, index_GMAB_INC_IF)
        *RESULT(u, index_GMAB_COST_RATE)

       
double ModelEV::fSAVING_PREM(unsigned short u)
{

 return  RESULT(u, index_SAVING_PREM_SB_IF)
       -(RESULT(u, index_SEP_PREM_1ST_M)
        +RESULT(u, index_SEP_PREM_1ST_S)
        +RESULT(u, index_SEP_PREM_INFORCE)
        -RESULT(u, index_SEP_RISK_PREM)
        -RESULT(u, index_SEP_PU_BETA_LOAD))
       +(RESULT(u, index_SEP_RES_P)
        -RESULT(u, index_SEP_RES_W))
       -(RESULT(u, index_SEP_PRIOR_RES_P)
        -RESULT(u, index_SEP_PRIOR_RES_W))
        +RESULT(u, index_SEP_PW_DIFF)
        +RESULT(u, index_SA_ANNUITY)
       +(RESULT(u, index_GMDB_INC_IF)
        +RESULT(u, index_GMAB_INC_IF))
       +(RESULT(u, index_GMSB_INCTI_IF)
        +RESULT(u, index_GMDB_INCTI_IF))
        -RESULT(u, index_GMXB_COST)
       -(RESULT(u, index_PREM_UL_SUB)
        -RESULT(u, index_SEP_PREM_UL_SUB))
}


double ModelEV::fVARIABLE_ADJUSTED(unsigned short u)
{

 return  RESULT(u, index_SEP_RES_P)
        -RESULT(u, index_SEP_RES_W)
        -RESULT(u, index_SEP_PRIOR_RES_P)
        +RESULT(u, index_SEP_PRIOR_RES_W)
        +RESULT(u, index_SEP_NET_LOAD)
        -RESULT(u, index_SEP_CV_LOAD)
        +RESULT(u, index_SEP_PU_BETA_LOAD)
        +RESULT(u, index_SEP_PW_DIFF)
}

double ModelEV::fTOT_LOAD(unsigned short u)
{

 return  RESULT(u, index_ALPHA_LOAD_IF)
        +RESULT(u, index_BETA_LOAD_IF)
        +RESULT(u, index_GAMMA_LOAD_IF)
}


double ModelEV::fSA_OUTGO(unsigned short u)
{

 return  RESULT(u, index_DEATH_OUTGO)
       +(RESULT(u, index_DISBL_OUTGO)
        +RESULT(u, index_SURG_OUTGO)
        +RESULT(u, index_HOSP_OUTGO)
        +RESULT(u, index_OTH_OUTGO)
        +RESULT(u, index_DIAG_OUTGO))
        -RESULT(u, index_STD_RES_DTH)
}


double ModelEV::fSAGO_OUTGO(unsigned short u)
{

 return  RESULT(u, index_DEATH_OUTGO)
       +(RESULT(u, index_DISBL_OUTGO)
        +RESULT(u, index_SURG_OUTGO)
        +RESULT(u, index_HOSP_OUTGO)
        +RESULT(u, index_OTH_OUTGO)
        +RESULT(u, index_DIAG_OUTGO)
}


double ModelEV::fRES_INC(unsigned short u)
{

 return (RESULT(u, index_RES_W)
        -RESULT(u, index_PRIOR_RES_W))
       -(RESULT(u, index_SEP_RES_P)
        -RESULT(u, index_SEP_PRIOR_RES_P))
        -RESULT(u, index_DAC_DIFF)
      -((RESULT(u, index_PREM_UL_BAL)
        -RESULT(u, index_SEP_PREM_UL_BAL))
       -(RESULT(u, index_PRIOR_PREM_UL_BAL)
        -RESULT(u, index_SEP_PRIOR_PREM_UL_BAL)))       
       +(RESULT(u, index_PERS_BONUS_RES_BB_IF)
        -RESULT(u, index_PRIOR_PERS_BONUS))
}


double ModelEV::fETC_INC(unsigned short u)
{

 return  RESULT(u, index_ETC_INC_VA)
        +RESULT(u, index_FMF_INC)
}


double ModelEV::fETC_OUT(unsigned short u)
{

 return  RESULT(u, index_OTHER_EXP)
        +RESULT(u, index_ETC_OUT_VA)
        +RESULT(u, index_FMF_OUT)
        +RESULT(u, index_GMXB_COST)
}

 

double ModelEV::fE_BEN(unsigned short u)
{

 return  RESULT(u, index_TOT_BEN)
       -(RESULT(u, index_DEATH_OUTGO)
        +(RESULT(u, index_DISBL_OUTGO)
        +RESULT(u, index_SURG_OUTGO)
        +RESULT(u, index_HOSP_OUTGO)
        +RESULT(u, index_OTH_OUTGO)
        +RESULT(u, index_DIAG_OUTGO)))
}


double ModelEV::fCRED_NEED(unsigned short u)
{

 return  RESULT(u, index_E_RES_1)
        +RESULT(u, index_E_BEN)
        +RESULT(u, index_RES_DTH)
        -RESULT(u, index_E_RES_0)
        -RESULT(u, index_SAVING_PREM)
}


double ModelEV::fGYELSAN(unsigned short u)
{

 return  RESULT(u, index_GEN_PREM)
        -RESULT(u, index_TOT_BEN)
        -RESULT(u, index_TOT_EXP)
       +(RESULT(u, index_ETC_INC)
         -RESULT(u, index_ETC_OUT))
       +RESULT(u, index_O_TAXBL_INC)
       -RESULT(u, index_RES_INC)


double ModelEV::fDAC_DIFF_INC(unsigned short u)
{

 return  RESULT(u, index_DAC_DIFF_INC)
}


double ModelEV::fB_CHA(unsigned short u)
{

 return  RESULT(u, index_TOT_LOAD)
        -RESULT(u, index_TOT_EXP)
        +RESULT(u, index_DAC_DIFF_INC)
}

       
double ModelEV::fSA_CHA(unsigned short u)
{

 return  RESULT(u, index_RISK_PREM_SB_IF)
        -RESULT(u, index_SA_OUTGO)
}


double ModelEV::fETC_CHA(unsigned short u)
{

 return  RESULT(u, index_FMF_INC)
        -RESULT(u, index_OTHER_EXP)
        -RESULT(u, index_FMF_OUT)
}


double ModelEV::fE_CHA(unsigned short u)
{

 return  RESULT(u, index_O_TAXBL_INC)
        -RESULT(u, index_CRED_NEED)
}


double ModelEV::fEWON(unsigned short u)
{

 return  RESULT(u, index_E_CHA)
        +RESULT(u, index_B_CHA)
        +RESULT(u, index_SA_CHA)     
        +RESULT(u, index_ETC_CHA)
}


double ModelEV::fDIFF(unsigned short u)
{

 return  RESULT(u, index_GYELSAN)
        -RESULT(u, index_EWON)
}


double ModelEV::fS_SA_CHA(unsigned short u)
{

 return  RESULT(u, index_SA_CHA)
}


double ModelEV::fS_ETC_CHA(unsigned short u)
{

 return  RESULT(u, index_ETC_CHA)
}


double ModelEV::fS_EWON(unsigned short u)
{

 return  RESULT(u, index_S_E_CHA)
        +RESULT(u, index_S_B_CHA)
        +RESULT(u, index_SA_CHA)
        +RESULT(u, index_ETC_CHA)
}


 

/***************************************************************/
/*            Cost Rate                                        */
/***************************************************************/

 

/***************************************************************/
/*            Contractor Dividend                              */
/***************************************************************/

 

'Programs' 카테고리의 다른 글

GrpKeyTable.cpp  (0) 2014.08.14
ResultUnit.cpp  (0) 2014.08.14
FieldInfoSet.cpp  (0) 2014.08.14
Inc.hpp  (0) 2014.08.14
Group.cpp  (0) 2014.08.14
Posted by Analytical Warrior
|