/**
  * @param BalanceLine $noBudgetLine
  * @param BalanceLine $coveredByTagLine
  *
  * @return BalanceLine
  */
 private function createLeftUnbalancedLine(BalanceLine $noBudgetLine, BalanceLine $coveredByTagLine) : BalanceLine
 {
     $line = new BalanceLine();
     $line->setRole(BalanceLine::ROLE_DIFFROLE);
     $noBudgetEntries = $noBudgetLine->getBalanceEntries();
     $tagEntries = $coveredByTagLine->getBalanceEntries();
     foreach ($noBudgetEntries as $entry) {
         $account = $entry->getAccount();
         $tagEntry = $tagEntries->filter(function (BalanceEntry $current) use($account) {
             return $current->getAccount()->id === $account->id;
         });
         if ($tagEntry->first()) {
             // found corresponding entry. As we should:
             $newEntry = new BalanceEntry();
             $newEntry->setAccount($account);
             $spent = bcadd($tagEntry->first()->getLeft(), $entry->getSpent());
             $newEntry->setSpent($spent);
             $line->addBalanceEntry($newEntry);
         }
     }
     return $line;
 }