diff options
author | Alan Pearce | 2015-04-06 11:10:32 +0100 |
---|---|---|
committer | Alan Pearce | 2015-04-06 11:10:32 +0100 |
commit | 5b2846ac67f99d1cc8bc5cd5bec705014196d3c7 (patch) | |
tree | 347fc48ffb4080f66fec6074a268c6ae3ae194eb /src/Command/ConvertCommand.php | |
parent | 2d371fdd6b9d805e7d7b35f53c3c626fa1408740 (diff) | |
download | ynab-ledger-5b2846ac67f99d1cc8bc5cd5bec705014196d3c7.tar.lz ynab-ledger-5b2846ac67f99d1cc8bc5cd5bec705014196d3c7.tar.zst ynab-ledger-5b2846ac67f99d1cc8bc5cd5bec705014196d3c7.zip |
Fix handling of first month’s budget
Diffstat (limited to 'src/Command/ConvertCommand.php')
-rw-r--r-- | src/Command/ConvertCommand.php | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/Command/ConvertCommand.php b/src/Command/ConvertCommand.php index 21f0a03..2d87015 100644 --- a/src/Command/ConvertCommand.php +++ b/src/Command/ConvertCommand.php @@ -251,22 +251,27 @@ function multiRead (SplFileObject $budgetFile, SplFileObject $registerFile, Numb $budget = readBudget($budgetFile); $register = readRegister($registerFile, $fmt); $budget->rewind(); + $openDate; foreach ($register as $rTxn) { - if ($rTxn->payee !== 'Starting Balance' && - $rTxn->category[1] !== 'Available this month') { - if ($budget->valid()) { - $bTxn = $budget->current(); - $bDate = $bTxn->date; - if ($bTxn->date < $rTxn->date) { - do { - $bTxn->date = $rTxn->date; - yield $bTxn; - - $budget->next(); - $bTxn = $budget->current(); - } while ($bTxn->date == $bDate); + if ($openDate !== null) { + if ($rTxn->payee !== 'Starting Balance' && + $rTxn->category[1] !== 'Available this month') { + if ($budget->valid()) { + $bTxn = $budget->current(); + $bDate = $bTxn->date; + if ($bTxn->date < $rTxn->date) { + do { + $bTxn->date = $openDate; + yield $bTxn; + + $budget->next(); + $bTxn = $budget->current(); + } while ($bTxn->date == $bDate); + } } } + } elseif ($rTxn->payee === 'Starting Balance') { + $openDate = $rTxn->date; } yield $rTxn; } |