Skip to content

Commit

Permalink
minor bug fixed on reflect recurring transactions to reports
Browse files Browse the repository at this point in the history
  • Loading branch information
sevannerse committed Feb 15, 2021
1 parent 087b411 commit 7dd96a3
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
1 change: 0 additions & 1 deletion app/Abstracts/Report.php
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,6 @@ public function getFormattedDate($date)

break;
case 'quarterly':
$start = $end = '';
$quarters = $this->getFinancialQuarters($this->year);

foreach ($quarters as $quarter) {
Expand Down
8 changes: 4 additions & 4 deletions app/Traits/DateTime.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ public function scopeMonthsOfYear($query, $field)
$start = Date::parse($year . '-01-01')->startOfDay()->format('Y-m-d H:i:s');
$end = Date::parse($year . '-12-31')->endOfDay()->format('Y-m-d H:i:s');
} else {
$start = $financial_start->format('Y-m-d H:i:s');
$end = $financial_start->addYear(1)->subDays(1)->format('Y-m-d H:i:s');
$start = $financial_start->startOfDay()->format('Y-m-d H:i:s');
$end = $financial_start->addYear(1)->subDays(1)->endOfDay()->format('Y-m-d H:i:s');
}

return $query->whereBetween($field, [$start, $end]);
Expand Down Expand Up @@ -121,7 +121,7 @@ public function getFinancialYear($year = null)
{
$start = $this->getFinancialStart($year);

return CarbonPeriod::create($start, $start->copy()->addYear()->subDay());
return CarbonPeriod::create($start, $start->copy()->addYear()->subDay()->endOfDay());
}

public function getFinancialQuarters($year = null)
Expand All @@ -130,7 +130,7 @@ public function getFinancialQuarters($year = null)
$start = $this->getFinancialStart($year);

for ($i = 0; $i < 4; $i++) {
$quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay());
$quarters[] = CarbonPeriod::create($start->copy()->addQuarters($i), $start->copy()->addQuarters($i + 1)->subDay()->endOfDay());
}

return $quarters;
Expand Down
12 changes: 8 additions & 4 deletions app/Utilities/Recurring.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,17 @@
namespace App\Utilities;

use App\Models\Document\Document;
use App\Traits\DateTime;
use Date;

class Recurring
{
use DateTime;

public static function reflect(&$items, $issued_date_field)
{
$financial_year = (new static)->getFinancialYear();

foreach ($items as $key => $item) {
// @todo cache recurrings
if (!$item->recurring || !empty($item->parent_id)) {
Expand All @@ -18,19 +23,18 @@ public static function reflect(&$items, $issued_date_field)
foreach ($item->recurring->getRecurringSchedule(false) as $schedule) {
$issued = Date::parse($item->$issued_date_field);
$start = $schedule->getStart();
$start_date = Date::parse($start->format('Y-m-d'));

if ($issued->format('Y') != $start->format('Y')) {
if (($issued->format('Y-m') == $start->format('Y-m')) && ($issued->format('d') >= $start->format('d'))) {
continue;
}

if (($issued->format('Y-m') == $start->format('Y-m')) && ($issued->format('d') >= $start->format('d'))) {
if ($start_date->lessThan($financial_year->getStartDate()) || $start_date->greaterThan($financial_year->getEndDate())) {
continue;
}

$clone = clone $item;

$start_date = Date::parse($start->format('Y-m-d'));

if ($clone instanceof Document) {
// Days between invoiced/billed and due date
$diff_days = Date::parse($clone->due_at)->diffInDays(Date::parse($clone->$issued_date_field));
Expand Down

0 comments on commit 7dd96a3

Please sign in to comment.