[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 2acf385 4/4: Let "PolicyForm" vary by state f
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 2acf385 4/4: Let "PolicyForm" vary by state for product 'sample' |
Date: |
Sat, 14 Nov 2020 10:24:45 -0500 (EST) |
branch: master
commit 2acf38516935f940b146176d767fe3d521c0a400
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Let "PolicyForm" vary by state for product 'sample'
This is just a demonstration of the new "lingo" paradigm. Soon the
old code that accomplishes the same thing in a different way will be
eradicated.
---
dbdict.cpp | 8 ++++++++
ledger_invariant_init.cpp | 9 +++++++++
2 files changed, 17 insertions(+)
diff --git a/dbdict.cpp b/dbdict.cpp
index c21002a..ec06f9d 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -38,6 +38,7 @@
#include "my_proem.hpp" // ::write_proem()
#include "oecumenic_enumerations.hpp"
#include "premium_tax.hpp" //
premium_tax_rates_for_life_insurance()
+#include "sample.hpp" // superior::lingo
#include "xml_lmi.hpp"
#include "xml_serialize.hpp"
@@ -927,7 +928,14 @@ sample::sample()
alt_form[mce_s_KS] = true;
alt_form[mce_s_KY] = true;
Add({DB_UsePolicyFormAlt, premium_tax_dimensions, alt_form});
+
Add({DB_AllowGroupQuote , true});
+
+ // Policy form differs in states beginning with "K".
+ std::vector<double> policy_form(e_max_dim_state, superior::policy_form);
+ policy_form[mce_s_KS] = superior::policy_form_KS_KY;
+ policy_form[mce_s_KY] = superior::policy_form_KS_KY;
+ Add({DB_PolicyForm, premium_tax_dimensions, policy_form});
}
sample2finra::sample2finra()
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 7639d82..a053241 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -32,6 +32,7 @@
#include "death_benefits.hpp"
#include "fund_data.hpp"
#include "interest_rates.hpp"
+#include "lingo.hpp"
#include "lmi.hpp" // is_antediluvian_fork()
#include "loads.hpp"
#include "mc_enum_types_aux.hpp" // mc_str()
@@ -325,6 +326,14 @@ void LedgerInvariant::Init(BasicValues const* b)
// Strings.
PolicyForm = p.datum(alt_form ? "PolicyFormAlternative" :
"PolicyForm");
+
+ if("sample" == b->yare_input_.ProductName)
+ {
+ auto policy_form = b->database().query<int>(DB_PolicyForm);
+ LMI_ASSERT(b->lingo_->lookup(policy_form) == PolicyForm);
+ PolicyForm = b->lingo_->lookup(policy_form);
+ }
+
PolicyMktgName = p.datum("PolicyMktgName"
);
PolicyLegalName = p.datum("PolicyLegalName"
);
CsoEra = mc_str(b->database().query<mcenum_cso_era>(DB_CsoEra));