[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [6464] Provide 'InitDBOpt'
From: |
Greg Chicares |
Subject: |
[lmi-commits] [6464] Provide 'InitDBOpt' |
Date: |
Thu, 07 Jan 2016 19:19:22 +0000 |
Revision: 6464
http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=6464
Author: chicares
Date: 2016-01-07 19:19:21 +0000 (Thu, 07 Jan 2016)
Log Message:
-----------
Provide 'InitDBOpt'
Modified Paths:
--------------
lmi/trunk/ledger_invariant.cpp
lmi/trunk/ledger_invariant.hpp
lmi/trunk/product_data.cpp
lmi/trunk/product_data.hpp
Modified: lmi/trunk/ledger_invariant.cpp
===================================================================
--- lmi/trunk/ledger_invariant.cpp 2016-01-05 01:46:18 UTC (rev 6463)
+++ lmi/trunk/ledger_invariant.cpp 2016-01-07 19:19:21 UTC (rev 6464)
@@ -339,6 +339,10 @@
Strings["SupplementalReportColumn10" ] = &SupplementalReportColumn10
;
Strings["SupplementalReportColumn11" ] = &SupplementalReportColumn11
;
+ // Special-case strings.
+
+ Strings["InitDBOpt" ] = &InitDBOpt
;
+
LedgerBase::Alloc();
// Scalar or vector data not compatible with type 'double' can't
@@ -391,6 +395,7 @@
EffDate = obj.EffDate ;
DateOfBirth = obj.DateOfBirth ;
InitErMode = obj.InitErMode ;
+ InitDBOpt = obj.InitDBOpt ;
FullyInitialized = obj.FullyInitialized ;
}
@@ -657,6 +662,11 @@
SplitMinPrem = b->Database_->Query(DB_SplitMinPrem);
AllowDbo3 = b->Database_->Query(DB_AllowDbo3);
+ // These are reassigned below based on product data if available.
+ std::string dbo_name_option1 = mc_str(mce_option1);
+ std::string dbo_name_option2 = mc_str(mce_option2);
+ std::string dbo_name_rop = mc_str(mce_rop );
+
// The antediluvian branch has a null ProductData_ object.
if(b->ProductData_)
{
@@ -666,6 +676,9 @@
// strings in class product_data vary across the same axes as
// database_entity objects.
bool alt_form = b->Database_->Query(DB_UsePolicyFormAlt);
+ dbo_name_option1 = p.datum("DboNameLevel"
);
+ dbo_name_option2 = p.datum("DboNameIncreasing"
);
+ dbo_name_rop = p.datum("DboNameReturnOfPremium"
);
PolicyForm = p.datum(alt_form ? "PolicyFormAlternative" :
"PolicyForm");
PolicyMktgName = p.datum("PolicyMktgName"
);
PolicyLegalName = p.datum("PolicyLegalName"
);
@@ -852,6 +865,15 @@
DateOfBirth = calendar_date(b->yare_input_.DateOfBirth).str();
DateOfBirthJdn =
calendar_date(b->yare_input_.DateOfBirth).julian_day_number();
InitErMode = mc_str(b->Outlay_->er_premium_modes()[0]);
+
+ mcenum_dbopt const init_dbo = b->DeathBfts_->dbopt()[0];
+ InitDBOpt =
+ (mce_option1 == init_dbo) ? dbo_name_option1
+ :(mce_option2 == init_dbo) ? dbo_name_option2
+ :(mce_rop == init_dbo) ? dbo_name_rop
+ :throw std::logic_error("Unrecognized initial death benefit option.")
+ ;
+
DefnLifeIns = mc_str(b->yare_input_.DefinitionOfLifeInsurance);
DefnMaterialChange =
mc_str(b->yare_input_.DefinitionOfMaterialChange);
AvoidMec = mc_str(b->yare_input_.AvoidMecMethod);
@@ -967,6 +989,7 @@
DateOfBirth = a_Addend.DateOfBirth;
DateOfBirthJdn = a_Addend.DateOfBirthJdn;
InitErMode = a_Addend.InitErMode;
+ InitDBOpt = a_Addend.InitDBOpt;
Age = std::min(Age, a_Addend.Age);
RetAge = std::min(RetAge, a_Addend.RetAge); // TODO
?? Does this make sense?
EndtAge = std::max(EndtAge, a_Addend.EndtAge);
Modified: lmi/trunk/ledger_invariant.hpp
===================================================================
--- lmi/trunk/ledger_invariant.hpp 2016-01-05 01:46:18 UTC (rev 6463)
+++ lmi/trunk/ledger_invariant.hpp 2016-01-07 19:19:21 UTC (rev 6464)
@@ -379,6 +379,7 @@
// is not visible across a shared-library boundary. For now, this
// kludge solves an immediate problem for premium quotes.
std::string InitErMode;
+ std::string InitDBOpt;
private:
void Alloc(int len);
Modified: lmi/trunk/product_data.cpp
===================================================================
--- lmi/trunk/product_data.cpp 2016-01-05 01:46:18 UTC (rev 6463)
+++ lmi/trunk/product_data.cpp 2016-01-07 19:19:21 UTC (rev 6464)
@@ -216,6 +216,9 @@
ascribe("CsvHeaderName" , &product_data::CsvHeaderName
);
ascribe("NoLapseProvisionName" ,
&product_data::NoLapseProvisionName );
ascribe("ContractName" , &product_data::ContractName
);
+ ascribe("DboNameLevel" , &product_data::DboNameLevel
);
+ ascribe("DboNameIncreasing" , &product_data::DboNameIncreasing
);
+ ascribe("DboNameReturnOfPremium" ,
&product_data::DboNameReturnOfPremium );
ascribe("AccountValueFootnote" ,
&product_data::AccountValueFootnote );
ascribe("AttainedAgeFootnote" ,
&product_data::AttainedAgeFootnote );
ascribe("CashSurrValueFootnote" ,
&product_data::CashSurrValueFootnote );
@@ -469,6 +472,9 @@
z.CsvHeaderName = glossed_string("Cash Surr");
z.NoLapseProvisionName = glossed_string("No-lapse Provision");
z.ContractName = glossed_string("contract"); //
Alternatively, "policy" or "certificate".
+ z.DboNameLevel = glossed_string("A");
+ z.DboNameIncreasing = glossed_string("B");
+ z.DboNameReturnOfPremium = glossed_string("ROP");
z.MarketingNameFootnote = glossed_string("Policy form UL32768-NY is
marketed as 'UL Supreme'.");
z.GroupQuoteShortProductName = glossed_string("UL SUPREMEĀ®");
Modified: lmi/trunk/product_data.hpp
===================================================================
--- lmi/trunk/product_data.hpp 2016-01-05 01:46:18 UTC (rev 6463)
+++ lmi/trunk/product_data.hpp 2016-01-07 19:19:21 UTC (rev 6464)
@@ -183,12 +183,15 @@
glossed_string CoUnderwriterAddress;
// Terms defined in the contract, which must be used for column
- // headers according to the illustration reg.
+ // headers, footnotes, etc. according to the illustration reg.
glossed_string AvName;
glossed_string CsvName;
glossed_string CsvHeaderName;
glossed_string NoLapseProvisionName;
glossed_string ContractName;
+ glossed_string DboNameLevel;
+ glossed_string DboNameIncreasing;
+ glossed_string DboNameReturnOfPremium;
// TODO ?? Most of the following are missing from the GUI.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [lmi-commits] [6464] Provide 'InitDBOpt',
Greg Chicares <=