lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [5697] Refactor


From: Greg Chicares
Subject: [lmi-commits] [5697] Refactor
Date: Thu, 18 Apr 2013 13:50:19 +0000

Revision: 5697
          http://svn.sv.gnu.org/viewvc/?view=rev&root=lmi&revision=5697
Author:   chicares
Date:     2013-04-18 13:50:16 +0000 (Thu, 18 Apr 2013)
Log Message:
-----------
Refactor

Modified Paths:
--------------
    lmi/trunk/premium_tax.cpp
    lmi/trunk/premium_tax.hpp

Modified: lmi/trunk/premium_tax.cpp
===================================================================
--- lmi/trunk/premium_tax.cpp   2013-04-18 12:18:10 UTC (rev 5696)
+++ lmi/trunk/premium_tax.cpp   2013-04-18 13:50:16 UTC (rev 5697)
@@ -73,7 +73,8 @@
 
 /// Production ctor.
 ///
-/// These database entities should be looked up by premium-tax state:
+/// These database entities should be looked up by premium-tax state,
+/// and also by domicile:
 ///  - DB_PremTaxLoad
 ///  - DB_PremTaxRate
 /// These probably (for inchoate amortization) shouldn't:
@@ -120,8 +121,6 @@
 
     load_rate_is_levy_rate_ = db.are_equivalent(DB_PremTaxLoad, 
DB_PremTaxRate);
 
-    minimum_load_rate_ = ascertain_minimum_load_rate(db, strata);
-
     database_index index = db.index().state(tax_state_);
     levy_rate_ = db.Query(DB_PremTaxRate, index);
     load_rate_ = db.Query(DB_PremTaxLoad, index);
@@ -141,6 +140,8 @@
         }
     }
 
+    minimum_load_rate_ = ascertain_minimum_load_rate(strata);
+
     test_consistency();
 }
 
@@ -424,37 +425,24 @@
 
 /// Lowest premium-tax load, for 7702 and 7702A purposes.
 
-double premium_tax::ascertain_minimum_load_rate
-    (product_database   const& db
-    ,stratified_charges const& strata
-    ) const
+double premium_tax::ascertain_minimum_load_rate(stratified_charges const& 
strata) const
 {
-    double z = 0.0;
     if(amortize_premium_load_)
         {
-        return z;
+        return 0.0;
         }
-
-    database_index index = db.index().state(tax_state_);
-    z = db.Query(DB_PremTaxLoad, index);
-
-    if(premium_tax_is_retaliatory(tax_state_, domicile_))
+    else if(!varies_by_state_)
         {
-        index = db.index().state(domicile_);
-        z = std::max(z, db.Query(DB_PremTaxLoad, index));
+        return load_rate_;
         }
-
-    if(!varies_by_state_)
+    else if(is_tiered_in_tax_state_)
         {
-        return z;
+        return strata.minimum_tiered_premium_tax_rate(tax_state_);
         }
-
-    if(strata.premium_tax_is_tiered(tax_state_))
+    else
         {
-        z = strata.minimum_tiered_premium_tax_rate(tax_state_);
+        return load_rate_;
         }
-
-    return z;
 }
 
 double premium_tax::ytd_load() const

Modified: lmi/trunk/premium_tax.hpp
===================================================================
--- lmi/trunk/premium_tax.hpp   2013-04-18 12:18:10 UTC (rev 5696)
+++ lmi/trunk/premium_tax.hpp   2013-04-18 13:50:16 UTC (rev 5697)
@@ -127,10 +127,7 @@
   private:
     void test_consistency() const;
 
-    double ascertain_minimum_load_rate
-        (product_database   const& db
-        ,stratified_charges const& strata
-        ) const;
+    double ascertain_minimum_load_rate(stratified_charges const& strata) const;
 
     // Ctor value-arguments.
     mcenum_state tax_state_;




reply via email to

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