lmi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lmi-commits] [5271] Fix defect introduced 20080720T2217Z


From: Greg Chicares
Subject: [lmi-commits] [5271] Fix defect introduced 20080720T2217Z
Date: Wed, 24 Aug 2011 16:59:15 +0000

Revision: 5271
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5271
Author:   chicares
Date:     2011-08-24 16:59:15 +0000 (Wed, 24 Aug 2011)
Log Message:
-----------
Fix defect introduced 20080720T2217Z

Modified Paths:
--------------
    lmi/trunk/ihs_avstrtgy.cpp

Modified: lmi/trunk/ihs_avstrtgy.cpp
===================================================================
--- lmi/trunk/ihs_avstrtgy.cpp  2011-08-24 16:49:14 UTC (rev 5270)
+++ lmi/trunk/ihs_avstrtgy.cpp  2011-08-24 16:59:15 UTC (rev 5271)
@@ -49,12 +49,24 @@
 // There are two functions for specamt strategy; apparently only the one
 // called "Old" is used.
 
-//============================================================================
+/// Set specamt according to selected strategy in a non-solve year.
+
 double AccountValue::CalculateSpecAmtFromStrategy
     (int actual_year
     ,int reference_year
     ) const
 {
+    // Don't override a specamt that's being solved for.
+    if
+        (
+            mce_solve_specamt == yare_input_.SolveType
+        &&  yare_input_.SolveBeginYear <= actual_year
+        &&  actual_year < std::min(yare_input_.SolveEndYear, 
BasicValues::Length)
+        )
+        {
+        return DeathBfts_->specamt()[actual_year];
+        }
+
     double z = 0.0;
     switch(yare_input_.SpecifiedAmountStrategy[actual_year])
         {
@@ -150,7 +162,7 @@
     return z;
 }
 
-/// Set spec amt according to selected strategy, in every year.
+/// Set specamt according to selected strategy.
 
 void AccountValue::PerformSpecAmtStrategy()
 {
@@ -162,8 +174,8 @@
         }
 }
 
-//============================================================================
-// Sets payment according to selected strategy, in each non-solve year
+/// Set payment according to selected strategy in a non-solve year.
+
 double AccountValue::DoPerformPmtStrategy
     (mcenum_solve_type                       a_SolveForWhichPrem
     ,mcenum_mode                             a_CurrentMode
@@ -179,7 +191,7 @@
         return a_PmtVector[Year];
         }
 
-    // Don't override premium during premium solve period.
+    // Don't override a premium that's being solved for.
     if
         (
             a_SolveForWhichPrem == yare_input_.SolveType
@@ -280,7 +292,8 @@
         }
 }
 
-//============================================================================
+/// Set employee payment according to selected strategy.
+
 double AccountValue::PerformEePmtStrategy() const
 {
     return DoPerformPmtStrategy
@@ -293,7 +306,8 @@
         );
 }
 
-//============================================================================
+/// Set employer payment according to selected strategy.
+
 double AccountValue::PerformErPmtStrategy() const
 {
     return DoPerformPmtStrategy




reply via email to

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