lmi-commits
[Top][All Lists]
Advanced

[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));



reply via email to

[Prev in Thread] Current Thread [Next in Thread]