Esempio n. 1
0
 def update_current_and_projected_values(self, start_trans_number=0):
     trans_number = 0
     proj_date = Date.get_global_proj_date(self)
     while trans_number < start_trans_number:
         trans_number = trans_number + 1
     if trans_number == 0:
         current_value = self.parent.get_value()
     else:
         current_value = self.transactions[trans_number].get_current_value()
     proj_value = current_value
     while trans_number < len(self.transactions):
         new_current_value = current_value
         new_proj_value = proj_value
         # Check to make sure transaction hasn't been voided before updaing current value   JJG 07/17/2021
         trans_state = self.transactions[trans_number].get_state()
         trans_sched_date = self.transactions[trans_number].get_sched_date()
         trans_action = self.transactions[trans_number].get_action()
         if trans_sched_date and trans_action:
             if trans_state != "void":
                 trans_amount = self.transactions[trans_number].get_amount()
             else:
                 trans_amount = 0.00
             if trans_action == '-':
                 new_current_value = current_value - trans_amount
                 if trans_sched_date <= proj_date:
                     new_proj_value = proj_value - trans_amount
             elif trans_action == '+':
                 new_current_value = current_value + trans_amount
                 if trans_sched_date <= proj_date:
                     new_proj_value = proj_value + trans_amount
             else:
                 print("Unknown action " + trans_action + " ignored")
                 new_current_value = current_value
                 if trans_sched_date <= proj_date:
                     new_proj_value = proj_value
             self.transactions[trans_number].set_current_value(
                 str(new_current_value))
         else:
             self.transactions[trans_number].set_current_value(None)
         current_value = new_current_value
         proj_value = new_proj_value
         trans_number = trans_number + 1
     return proj_value