From d29ec707b44ff8b783f3c824401b55a92a8bfde1 Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 20 Dec 2019 05:38:26 +0100 Subject: [PATCH] Add some debug info --- app/Transformers/BillTransformer.php | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/app/Transformers/BillTransformer.php b/app/Transformers/BillTransformer.php index e73fa5d2cc..e6bd6c9965 100644 --- a/app/Transformers/BillTransformer.php +++ b/app/Transformers/BillTransformer.php @@ -62,6 +62,7 @@ class BillTransformer extends AbstractTransformer { $paidData = $this->paidData($bill); $payDates = $this->payDates($bill); + $currency = $bill->transactionCurrency; $notes = $this->repository->getNoteText($bill); $notes = '' === $notes ? null : $notes; @@ -132,10 +133,18 @@ class BillTransformer extends AbstractTransformer */ protected function nextDateMatch(Bill $bill, Carbon $date): Carbon { + Log::debug(sprintf('Now in nextDateMatch(%d, %s)', $bill->id, $date->format('Y-m-d'))); $start = clone $bill->date; + Log::debug(sprintf('Bill start date is %s', $start->format('Y-m-d'))); while ($start < $date) { + Log::debug( + sprintf( + '%s (bill start date) < %s (given date) so we jump ahead one period (with a skip maybe).', $start->format('Y-m-d'), $date->format('Y-m-d') + ) + ); $start = app('navigation')->addPeriod($start, $bill->repeat_freq, $bill->skip); } + Log::debug(sprintf('End of loop, bill start date is now %s', $start->format('Y-m-d'))); return $start; } @@ -194,22 +203,48 @@ class BillTransformer extends AbstractTransformer */ protected function payDates(Bill $bill): array { + $this->parameters->set('start', Carbon::create(2019, 11, 1)); + $this->parameters->set('end', Carbon::create(2019, 11, 30)); + + Log::debug(sprintf('Now in payDates() for bill #%d', $bill->id)); if (null === $this->parameters->get('start') || null === $this->parameters->get('end')) { + Log::debug('No start or end date, give empty array.'); + return []; } + Log::debug( + sprintf( + 'Start date is %s, end is %s', $this->parameters->get('start')->format('Y-m-d'), + $this->parameters->get('end')->format('Y-m-d') + ) + ); $set = new Collection; $currentStart = clone $this->parameters->get('start'); + $loop = 0; while ($currentStart <= $this->parameters->get('end')) { + Log::debug( + sprintf( + 'In loop #%d, where %s (start param) <= %s (end param).', $loop, $currentStart->format('Y-m-d'), + $this->parameters->get('end')->format('Y-m-d') + ) + ); $nextExpectedMatch = $this->nextDateMatch($bill, $currentStart); + Log::debug(sprintf('Next expected match is %s', $nextExpectedMatch->format('Y-m-d'))); // If nextExpectedMatch is after end, we continue: if ($nextExpectedMatch > $this->parameters->get('end')) { + Log::debug( + sprintf('%s is > %s, so were not going to use it.', $nextExpectedMatch->format('Y-m-d'), $this->parameters->get('end')->format('Y-m-d')) + ); break; } // add to set $set->push(clone $nextExpectedMatch); + Log::debug(sprintf('Add next expected match to set because its in the current start/end range, which now contains %d item(s)', $set->count())); $nextExpectedMatch->addDay(); $currentStart = clone $nextExpectedMatch; + $loop++; } + Log::debug(sprintf('Loop has ended after %d loops', $loop)); $simple = $set->map( static function (Carbon $date) { return $date->format('Y-m-d');