[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master e689fe4 2/2: Fix defect introduced 20160309T0
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master e689fe4 2/2: Fix defect introduced 20160309T0113Z: weird policy-name conditional |
Date: |
Tue, 5 Feb 2019 18:03:11 -0500 (EST) |
branch: master
commit e689fe4fedf7f34a93ddd695262aa66f1113f01e
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>
Fix defect introduced 20160309T0113Z: weird policy-name conditional
Added a new database field to control whether guaranteed-issue contracts
in Texas should be captioned as substandard.
It is unclear what defect was actually fixed on 20160309T0113Z with
commit message:
Fix defect introduced 20050720T1018Z: "substandard standard"
because TX GI contracts with standard rates still print the antinomical
"substandard standard" caption. That 2016 revision may simply have
restricted the antinomy, in practical effect, to a single product--and
that is the best that can be done unless the word "standard" can be
omitted altogether.
---
dbdict.cpp | 2 ++
dbdict.hpp | 1 +
dbnames.hpp | 2 ++
dbnames.xpp | 1 +
finra_header_lower.mst | 8 ++++----
finra_notes2.mst | 4 ++--
ledger_evaluator.cpp | 1 +
ledger_invariant.cpp | 2 ++
ledger_invariant.hpp | 1 +
ledger_invariant_init.cpp | 1 +
pdf_command_wx.cpp | 7 +++----
11 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/dbdict.cpp b/dbdict.cpp
index 90b5244..d3d8b72 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -136,6 +136,7 @@ void DBDictionary::ascribe_members()
ascribe("AllowStateXX" , &DBDictionary::AllowStateXX );
ascribe("AllowForeign" , &DBDictionary::AllowForeign );
ascribe("GroupIndivSelection" , &DBDictionary::GroupIndivSelection );
+ ascribe("TxCallsGuarUwSubstd" , &DBDictionary::TxCallsGuarUwSubstd );
ascribe("Allowable" , &DBDictionary::Allowable );
ascribe("AllowCvat" , &DBDictionary::AllowCvat );
ascribe("AllowGpt" , &DBDictionary::AllowGpt );
@@ -920,6 +921,7 @@ void DBDictionary::write_database_files()
z.Add({DB_TermIsNotRider , true});
// Certain illustration columns are controlled by this:
z.Add({DB_ErNotionallyPaysTerm, true});
+ z.Add({DB_TxCallsGuarUwSubstd , true});
// This fixed loan rate varies by duration.
int dims_1111113[e_number_of_axes] = {1, 1, 1, 1, 1, 1, 3};
double loanrate[3] = {0.06, 0.05, 0.04};
diff --git a/dbdict.hpp b/dbdict.hpp
index 9b6597b..dae92fd 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -118,6 +118,7 @@ class LMI_SO DBDictionary
database_entity AllowStateXX ;
database_entity AllowForeign ;
database_entity GroupIndivSelection ;
+ database_entity TxCallsGuarUwSubstd ;
database_entity Allowable ;
database_entity AllowCvat ;
database_entity AllowGpt ;
diff --git a/dbnames.hpp b/dbnames.hpp
index ec55daa..0fe9bf5 100644
--- a/dbnames.hpp
+++ b/dbnames.hpp
@@ -149,6 +149,8 @@ enum e_database_key
,DB_GroupIndivSelection
+ ,DB_TxCallsGuarUwSubstd
+
,DB_Allowable
,DB_Topic_7702And7702A
diff --git a/dbnames.xpp b/dbnames.xpp
index d277d89..dbe7b22 100644
--- a/dbnames.xpp
+++ b/dbnames.xpp
@@ -62,6 +62,7 @@
{DB_AllowStateXX,DB_Topic_Underwriting,"AllowStateXX","Allow state 'XX': 0=no,
1=yes [not yet implemented]",}, \
{DB_AllowForeign,DB_Topic_Underwriting,"AllowForeign","Allow foreign-country
multiplier for cost of insurance charges: 0=no, 1=yes [not yet implemented]",},
\
{DB_GroupIndivSelection,DB_Topic_Underwriting,"GroupIndivSelection","For group
insurance, allow individual selection of specified amount: 0=no, 1=yes",}, \
+{DB_TxCallsGuarUwSubstd,DB_Topic_Underwriting,"TxCallsGuarUwSubstd","Guaranteed
issue must be called substandard in Texas: 0=no, 1=yes",}, \
{DB_Allowable,DB_Topic_Underwriting,"Allowable","A catchall category for rules
not otherwise expressible",}, \
{DB_Topic_7702And7702A,DB_FIRST,"7702 and 7702A","Internal Revenue Code
sections 7702 and 7702A",}, \
{DB_AllowCvat,DB_Topic_7702And7702A,"AllowCvat","Allow cash value accumulation
test: 0=no, 1=yes",}, \
diff --git a/finra_header_lower.mst b/finra_header_lower.mst
index e6fee20..ab55b47 100644
--- a/finra_header_lower.mst
+++ b/finra_header_lower.mst
@@ -40,12 +40,12 @@
Fully underwritten,
{{/UWTypeIsMedical}}
{{^UWTypeIsMedical}}
- {{#UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+ {{#CallGuarUwSubstd}}
Substandard ***,
- {{/UWTypeIsGuaranteedIssueInTexasWithFootnote}}
- {{^UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+ {{/CallGuarUwSubstd}}
+ {{^CallGuarUwSubstd}}
{{UWType}},
- {{/UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+ {{/CallGuarUwSubstd}}
{{/UWTypeIsMedical}}
{{UWClass}}, Initial Death Benefit Option: {{InitDBOpt}}<br>
{{#UWClassIsRated}}
diff --git a/finra_notes2.mst b/finra_notes2.mst
index 1aae2c3..688891b 100644
--- a/finra_notes2.mst
+++ b/finra_notes2.mst
@@ -176,12 +176,12 @@ The state of issue is {{StateOfJurisdiction}}.
</p>
{{/HasComplianceTrackingNumber}}
-{{#UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+{{#CallGuarUwSubstd}}
<p>
*** This policy is classified as substandard guaranteed issue
per the requirements of the Texas Insurance Department.
</p>
-{{/UWTypeIsGuaranteedIssueInTexasWithFootnote}}
+{{/CallGuarUwSubstd}}
<p align="center"><b>GUARANTEED PRINCIPAL ACCOUNT</b></p>
diff --git a/ledger_evaluator.cpp b/ledger_evaluator.cpp
index 2aa6423..336e812 100644
--- a/ledger_evaluator.cpp
+++ b/ledger_evaluator.cpp
@@ -533,6 +533,7 @@ format_map_t static_formats()
,{"AllowExperienceRating" , f1}
,{"UseExperienceRating" , f1}
,{"GroupIndivSelection" , f1}
+ ,{"TxCallsGuarUwSubstd" , f1}
,{"UsePartialMort" , f1}
,{"WriteTsvFile" , f1}
diff --git a/ledger_invariant.cpp b/ledger_invariant.cpp
index a0e3802..3513227 100644
--- a/ledger_invariant.cpp
+++ b/ledger_invariant.cpp
@@ -142,6 +142,7 @@ void LedgerInvariant::Alloc(int len)
OtherScalars ["RetAge" ] = &RetAge ;
OtherScalars ["EndtAge" ] = &EndtAge ;
OtherScalars ["GroupIndivSelection" ] = &GroupIndivSelection ;
+ OtherScalars ["TxCallsGuarUwSubstd" ] = &TxCallsGuarUwSubstd ;
OtherScalars ["AllowExperienceRating" ] = &AllowExperienceRating ;
OtherScalars ["UseExperienceRating" ] = &UseExperienceRating ;
OtherScalars ["UsePartialMort" ] = &UsePartialMort ;
@@ -659,6 +660,7 @@ LedgerInvariant& LedgerInvariant::PlusEq(LedgerInvariant
const& a_Addend)
StateOfJurisdiction = a_Addend.StateOfJurisdiction;
PremiumTaxState = a_Addend.PremiumTaxState;
GroupIndivSelection = GroupIndivSelection ||
a_Addend.GroupIndivSelection;
+ TxCallsGuarUwSubstd = TxCallsGuarUwSubstd ||
a_Addend.TxCallsGuarUwSubstd;
AllowExperienceRating = AllowExperienceRating ||
a_Addend.AllowExperienceRating;
UseExperienceRating = UseExperienceRating ||
a_Addend.UseExperienceRating;
UsePartialMort = a_Addend.UsePartialMort;
diff --git a/ledger_invariant.hpp b/ledger_invariant.hpp
index ddb2835..25ac68c 100644
--- a/ledger_invariant.hpp
+++ b/ledger_invariant.hpp
@@ -166,6 +166,7 @@ class LMI_SO LedgerInvariant
double RetAge;
double EndtAge;
double GroupIndivSelection;
+ double TxCallsGuarUwSubstd;
double AllowExperienceRating;
double UseExperienceRating;
double UsePartialMort;
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 10fde49..65643b4 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -257,6 +257,7 @@ void LedgerInvariant::Init(BasicValues const* b)
RetAge = b->yare_input_.RetirementAge;
EndtAge = b->yare_input_.IssueAge + b->GetLength();
b->database().query_into(DB_GroupIndivSelection, GroupIndivSelection);
+ b->database().query_into(DB_TxCallsGuarUwSubstd, TxCallsGuarUwSubstd);
AllowExperienceRating = b->database().query<bool>(DB_AllowExpRating);
UseExperienceRating = b->yare_input_.UseExperienceRating;
UsePartialMort = b->yare_input_.UsePartialMortality;
diff --git a/pdf_command_wx.cpp b/pdf_command_wx.cpp
index e4f5b56..62e62d3 100644
--- a/pdf_command_wx.cpp
+++ b/pdf_command_wx.cpp
@@ -2825,13 +2825,12 @@ class pdf_illustration_finra : public pdf_illustration
add_variable("ContractNameCap", s);
}
- auto const& policy_name = invar.PolicyLegalName;
auto const& state_of_jurisdiction = invar.StateOfJurisdiction;
add_variable
- ("UWTypeIsGuaranteedIssueInTexasWithFootnote"
- , invar.UWType == "Guaranteed issue"
- && policy_name == "Flexible Premium Variable Adjustable Life
Insurance Policy"
+ ("CallGuarUwSubstd"
+ , invar.TxCallsGuarUwSubstd
+ && invar.UWType == "Guaranteed issue"
&& state_of_jurisdiction == "TX"
);