[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 896268f 2/2: Add numerous new footnote and de
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 896268f 2/2: Add numerous new footnote and definition entities |
Date: |
Wed, 15 Apr 2020 13:30:20 -0400 (EDT) |
branch: master
commit 896268f22f476660223ffca0d46ed8c6dbfd13f4
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>
Add numerous new footnote and definition entities
---
ledger_invariant.cpp | 29 +++++++++++
ledger_invariant.hpp | 27 ++++++++++
ledger_invariant_init.cpp | 27 ++++++++++
product_data.cpp | 126 ++++++++++++++++++++++++++++++++++++++++++++++
product_data.hpp | 27 ++++++++++
5 files changed, 236 insertions(+)
diff --git a/ledger_invariant.cpp b/ledger_invariant.cpp
index a2e90f6..e3eb7d7 100644
--- a/ledger_invariant.cpp
+++ b/ledger_invariant.cpp
@@ -354,6 +354,35 @@ void LedgerInvariant::Alloc(int len)
Strings["IllRegCertClientIl" ] = &IllRegCertClientIl
;
Strings["IllRegCertClientTx" ] = &IllRegCertClientTx
;
+ Strings["FnMaturityAge" ] = &FnMaturityAge
;
+ Strings["FnPartialMortality" ] = &FnPartialMortality
;
+ Strings["FnProspectus" ] = &FnProspectus
;
+ Strings["FnInitialSpecAmt" ] = &FnInitialSpecAmt
;
+ Strings["FnInforceAcctVal" ] = &FnInforceAcctVal
;
+ Strings["FnInforceTaxBasis" ] = &FnInforceTaxBasis
;
+ Strings["Fn1035Charge" ] = &Fn1035Charge
;
+ Strings["FnMecExtraWarning" ] = &FnMecExtraWarning
;
+ Strings["FnNotTaxAdvice" ] = &FnNotTaxAdvice
;
+ Strings["FnImf" ] = &FnImf
;
+ Strings["FnCensus" ] = &FnCensus
;
+ Strings["FnDacTax" ] = &FnDacTax
;
+ Strings["FnDefnLifeIns" ] = &FnDefnLifeIns
;
+ Strings["FnBoyEoy" ] = &FnBoyEoy
;
+ Strings["FnGeneralAccount" ] = &FnGeneralAccount
;
+ Strings["FnPpMemorandum" ] = &FnPpMemorandum
;
+ Strings["FnPpAccreditedInvestor" ] = &FnPpAccreditedInvestor
;
+ Strings["FnPpLoads" ] = &FnPpLoads
;
+ Strings["FnProposalUnderwriting" ] = &FnProposalUnderwriting
;
+ Strings["FnGuaranteedPremium" ] = &FnGuaranteedPremium
;
+ Strings["FnOmnibusDisclaimer" ] = &FnOmnibusDisclaimer
;
+ Strings["FnInitialDbo" ] = &FnInitialDbo
;
+
+ Strings["DefnAV" ] = &DefnAV
;
+ Strings["DefnCSV" ] = &DefnCSV
;
+ Strings["DefnMec" ] = &DefnMec
;
+ Strings["DefnOutlay" ] = &DefnOutlay
;
+ Strings["DefnSpecAmt" ] = &DefnSpecAmt
;
+
Strings["ProductName" ] = &ProductName
;
Strings["ProducerName" ] = &ProducerName
;
Strings["ProducerStreet" ] = &ProducerStreet
;
diff --git a/ledger_invariant.hpp b/ledger_invariant.hpp
index 5c0622a..239fdc9 100644
--- a/ledger_invariant.hpp
+++ b/ledger_invariant.hpp
@@ -363,6 +363,33 @@ class LMI_SO LedgerInvariant final
std::string IllRegCertClient;
std::string IllRegCertClientIl;
std::string IllRegCertClientTx;
+ std::string FnMaturityAge;
+ std::string FnPartialMortality;
+ std::string FnProspectus;
+ std::string FnInitialSpecAmt;
+ std::string FnInforceAcctVal;
+ std::string FnInforceTaxBasis;
+ std::string Fn1035Charge;
+ std::string FnMecExtraWarning;
+ std::string FnNotTaxAdvice;
+ std::string FnImf;
+ std::string FnCensus;
+ std::string FnDacTax;
+ std::string FnDefnLifeIns;
+ std::string FnBoyEoy;
+ std::string FnGeneralAccount;
+ std::string FnPpMemorandum;
+ std::string FnPpAccreditedInvestor;
+ std::string FnPpLoads;
+ std::string FnProposalUnderwriting;
+ std::string FnGuaranteedPremium;
+ std::string FnOmnibusDisclaimer;
+ std::string FnInitialDbo;
+ std::string DefnAV;
+ std::string DefnCSV;
+ std::string DefnMec;
+ std::string DefnOutlay;
+ std::string DefnSpecAmt;
// Strings from class Input.
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 979cec1..4ed931f 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -490,6 +490,33 @@ void LedgerInvariant::Init(BasicValues const* b)
IllRegCertClient = p.datum("IllRegCertClient"
);
IllRegCertClientIl = p.datum("IllRegCertClientIl"
);
IllRegCertClientTx = p.datum("IllRegCertClientTx"
);
+ FnMaturityAge = p.datum("FnMaturityAge"
);
+ FnPartialMortality = p.datum("FnPartialMortality"
);
+ FnProspectus = p.datum("FnProspectus"
);
+ FnInitialSpecAmt = p.datum("FnInitialSpecAmt"
);
+ FnInforceAcctVal = p.datum("FnInforceAcctVal"
);
+ FnInforceTaxBasis = p.datum("FnInforceTaxBasis"
);
+ Fn1035Charge = p.datum("Fn1035Charge"
);
+ FnMecExtraWarning = p.datum("FnMecExtraWarning"
);
+ FnNotTaxAdvice = p.datum("FnNotTaxAdvice"
);
+ FnImf = p.datum("FnImf"
);
+ FnCensus = p.datum("FnCensus"
);
+ FnDacTax = p.datum("FnDacTax"
);
+ FnDefnLifeIns = p.datum("FnDefnLifeIns"
);
+ FnBoyEoy = p.datum("FnBoyEoy"
);
+ FnGeneralAccount = p.datum("FnGeneralAccount"
);
+ FnPpMemorandum = p.datum("FnPpMemorandum"
);
+ FnPpAccreditedInvestor = p.datum("FnPpAccreditedInvestor"
);
+ FnPpLoads = p.datum("FnPpLoads"
);
+ FnProposalUnderwriting = p.datum("FnProposalUnderwriting"
);
+ FnGuaranteedPremium = p.datum("FnGuaranteedPremium"
);
+ FnOmnibusDisclaimer = p.datum("FnOmnibusDisclaimer"
);
+ FnInitialDbo = p.datum("FnInitialDbo"
);
+ DefnAV = p.datum("DefnAV"
);
+ DefnCSV = p.datum("DefnCSV"
);
+ DefnMec = p.datum("DefnMec"
);
+ DefnOutlay = p.datum("DefnOutlay"
);
+ DefnSpecAmt = p.datum("DefnSpecAmt"
);
}
// Strings from class Input.
diff --git a/product_data.cpp b/product_data.cpp
index 35e8916..af19d86 100644
--- a/product_data.cpp
+++ b/product_data.cpp
@@ -356,6 +356,33 @@ void product_data::ascribe_members()
ascribe("IllRegCertClient" , &product_data::IllRegCertClient
);
ascribe("IllRegCertClientIl" ,
&product_data::IllRegCertClientIl );
ascribe("IllRegCertClientTx" ,
&product_data::IllRegCertClientTx );
+ ascribe("FnMaturityAge" , &product_data::FnMaturityAge
);
+ ascribe("FnPartialMortality" ,
&product_data::FnPartialMortality );
+ ascribe("FnProspectus" , &product_data::FnProspectus
);
+ ascribe("FnInitialSpecAmt" , &product_data::FnInitialSpecAmt
);
+ ascribe("FnInforceAcctVal" , &product_data::FnInforceAcctVal
);
+ ascribe("FnInforceTaxBasis" , &product_data::FnInforceTaxBasis
);
+ ascribe("Fn1035Charge" , &product_data::Fn1035Charge
);
+ ascribe("FnMecExtraWarning" , &product_data::FnMecExtraWarning
);
+ ascribe("FnNotTaxAdvice" , &product_data::FnNotTaxAdvice
);
+ ascribe("FnImf" , &product_data::FnImf
);
+ ascribe("FnCensus" , &product_data::FnCensus
);
+ ascribe("FnDacTax" , &product_data::FnDacTax
);
+ ascribe("FnDefnLifeIns" , &product_data::FnDefnLifeIns
);
+ ascribe("FnBoyEoy" , &product_data::FnBoyEoy
);
+ ascribe("FnGeneralAccount" , &product_data::FnGeneralAccount
);
+ ascribe("FnPpMemorandum" , &product_data::FnPpMemorandum
);
+ ascribe("FnPpAccreditedInvestor" ,
&product_data::FnPpAccreditedInvestor );
+ ascribe("FnPpLoads" , &product_data::FnPpLoads
);
+ ascribe("FnProposalUnderwriting" ,
&product_data::FnProposalUnderwriting );
+ ascribe("FnGuaranteedPremium" ,
&product_data::FnGuaranteedPremium );
+ ascribe("FnOmnibusDisclaimer" ,
&product_data::FnOmnibusDisclaimer );
+ ascribe("FnInitialDbo" , &product_data::FnInitialDbo
);
+ ascribe("DefnAV" , &product_data::DefnAV
);
+ ascribe("DefnCSV" , &product_data::DefnCSV
);
+ ascribe("DefnMec" , &product_data::DefnMec
);
+ ascribe("DefnOutlay" , &product_data::DefnOutlay
);
+ ascribe("DefnSpecAmt" , &product_data::DefnSpecAmt
);
}
/// Backward-compatibility serial number of this class's xml version.
@@ -481,6 +508,78 @@ static std::string const S_IllRegCertClient =
" non-guaranteed elements illustrated are subject to change and could be"
" either higher or lower. The agent has told me they are not guaranteed.";
+static std::string const S_FnMaturityAge =
+ "Maturity age: {{EndtAge}}.";
+static std::string const S_FnPartialMortality =
+ "Columns reflect mortality, initially {{PartMortTableMult[0]}}"
+ " of the {{PartMortTableName}} table.";
+static std::string const S_FnProspectus =
+ "Must be preceded or accompanied by a prospectus.";
+static std::string const S_FnInitialSpecAmt =
+ "The initial specified amount is ${{InitTotalSA}}.";
+static std::string const S_FnInforceAcctVal =
+ "The inforce unloaned account value is ${{InforceUnloanedAV}}.";
+static std::string const S_FnInforceTaxBasis =
+ "The inforce tax basis is ${{InforceTaxBasis}}.";
+static std::string const S_Fn1035Charge =
+ "A charge may be deducted from the proceeds of a 1035 exchange.";
+static std::string const S_FnMecExtraWarning =
+ "{{#IsMec}}¶¶This is a Modified Endowment Contract.{{/IsMec}}";
+static std::string const S_FnNotTaxAdvice =
+ "{{InsCoShortName}} cannot give tax advice. Consult your own advisors.";
+static std::string const S_FnImf =
+ "Initial investment management fee: {{TotalIMF[0]}}.";
+static std::string const S_FnCensus =
+ ""; // There is no census attached to a composite.
+static std::string const S_FnDacTax =
+ "There is no explicit charge for DAC tax.";
+
+static std::string const S_FnDefnLifeIns =
+ "This policy is intended to qualify as life insurance under the IRC §7702"
+ "{{#DefnLifeInsIsGPT}}"
+ " guideline premium test. ${{InitGSP}} is the guideline single premium,"
+ " and ${{InitGLP}} is the guideline level premium."
+ "{{/DefnLifeInsIsGPT}}"
+ "{{^DefnLifeInsIsGPT}}"
+ "cash value accumulation test."
+ "{{/DefnLifeInsIsGPT}}";
+
+static std::string const S_FnBoyEoy =
+ "Premiums are payable in advance. Benefits are as of year end.";
+static std::string const S_FnGeneralAccount =
+ "The general account credits interest of at least
{{InitAnnGenAcctInt_Guaranteed}}.";
+static std::string const S_FnPpMemorandum =
+ "Must be preceded or accompanied by a prospectus.";
+static std::string const S_FnPpAccreditedInvestor =
+ "Available only to accredited investors.";
+static std::string const S_FnPpLoads =
+ ""; // Explanation of any special loads.
+static std::string const S_FnProposalUnderwriting =
+ ""; // Explanation of group underwriting.
+static std::string const S_FnGuaranteedPremium =
+ "An outlay of ${{GuarPrem}} ({{InitEeMode}}) will guarantee coverage"
+ " to age {{EndtAge}}"
+ "{{#DefnLifeInsIsGPT}}"
+ ", subject to guideline premium test limits"
+ "{{/DefnLifeInsIsGPT}}"
+ ".";
+static std::string const S_FnOmnibusDisclaimer =
+ "Non-guaranteed values are based on current assumptions, which are"
+ " subject to change. Actual results may be more or less favorable.";
+static std::string const S_FnInitialDbo =
+ "The initial death benefit option is {{InitDBOpt}}.";
+static std::string const S_DefnAV =
+ "Account value is the accumulation of payments less charges and
disbursements.";
+static std::string const S_DefnCSV =
+ "Cash surrender value is account value less any surrender charge.";
+static std::string const S_DefnMec =
+ "A Modified Endowment Contract is a contract that does not qualify"
+ " for favorable tax treatment under IRC §7702A.";
+static std::string const S_DefnOutlay =
+ "Outlay is premium paid out of pocket.";
+static std::string const S_DefnSpecAmt =
+ "Specified amount is the nominal face amount.";
+
class sample : public product_data {public: sample();};
class sample2 : public sample {public: sample2();};
@@ -573,6 +672,33 @@ sample::sample()
item("IllRegCertClient") = S_IllRegCertClient;
item("IllRegCertClientIl") = S_IllRegCertClient;
item("IllRegCertClientTx") = S_IllRegCertClient;
+ item("FnMaturityAge") = S_FnMaturityAge;
+ item("FnPartialMortality") = S_FnPartialMortality;
+ item("FnProspectus") = S_FnProspectus;
+ item("FnInitialSpecAmt") = S_FnInitialSpecAmt;
+ item("FnInforceAcctVal") = S_FnInforceAcctVal;
+ item("FnInforceTaxBasis") = S_FnInforceTaxBasis;
+ item("Fn1035Charge") = S_Fn1035Charge;
+ item("FnMecExtraWarning") = S_FnMecExtraWarning;
+ item("FnNotTaxAdvice") = S_FnNotTaxAdvice;
+ item("FnImf") = S_FnImf;
+ item("FnCensus") = S_FnCensus;
+ item("FnDacTax") = S_FnDacTax;
+ item("FnDefnLifeIns") = S_FnDefnLifeIns;
+ item("FnBoyEoy") = S_FnBoyEoy;
+ item("FnGeneralAccount") = S_FnGeneralAccount;
+ item("FnPpMemorandum") = S_FnPpMemorandum;
+ item("FnPpAccreditedInvestor") = S_FnPpAccreditedInvestor;
+ item("FnPpLoads") = S_FnPpLoads;
+ item("FnProposalUnderwriting") = S_FnProposalUnderwriting;
+ item("FnGuaranteedPremium") = S_FnGuaranteedPremium;
+ item("FnOmnibusDisclaimer") = S_FnOmnibusDisclaimer;
+ item("FnInitialDbo") = S_FnInitialDbo;
+ item("DefnAV") = S_DefnAV;
+ item("DefnCSV") = S_DefnCSV;
+ item("DefnMec") = S_DefnMec;
+ item("DefnOutlay") = S_DefnOutlay;
+ item("DefnSpecAmt") = S_DefnSpecAmt;
item("ADDTerseName") = glossed_string("Accident");
item("InsurabilityTerseName") = glossed_string("Insurability");
diff --git a/product_data.hpp b/product_data.hpp
index 0eb27f2..605a6e2 100644
--- a/product_data.hpp
+++ b/product_data.hpp
@@ -346,6 +346,33 @@ class LMI_SO product_data
glossed_string IllRegCertClient;
glossed_string IllRegCertClientIl;
glossed_string IllRegCertClientTx;
+ glossed_string FnMaturityAge;
+ glossed_string FnPartialMortality;
+ glossed_string FnProspectus;
+ glossed_string FnInitialSpecAmt;
+ glossed_string FnInforceAcctVal;
+ glossed_string FnInforceTaxBasis;
+ glossed_string Fn1035Charge;
+ glossed_string FnMecExtraWarning;
+ glossed_string FnNotTaxAdvice;
+ glossed_string FnImf;
+ glossed_string FnCensus;
+ glossed_string FnDacTax;
+ glossed_string FnDefnLifeIns;
+ glossed_string FnBoyEoy;
+ glossed_string FnGeneralAccount;
+ glossed_string FnPpMemorandum;
+ glossed_string FnPpAccreditedInvestor;
+ glossed_string FnPpLoads;
+ glossed_string FnProposalUnderwriting;
+ glossed_string FnGuaranteedPremium;
+ glossed_string FnOmnibusDisclaimer;
+ glossed_string FnInitialDbo;
+ glossed_string DefnAV;
+ glossed_string DefnCSV;
+ glossed_string DefnMec;
+ glossed_string DefnOutlay;
+ glossed_string DefnSpecAmt;
};
void LMI_SO load(product_data &, fs::path const&);