Merge pull request #1864 from SevanNerse/master
minor bug fixed on reflect recurring transactions to reports
This commit is contained in:
		@@ -383,7 +383,6 @@ abstract class Report
 | 
			
		||||
 | 
			
		||||
                break;
 | 
			
		||||
            case 'quarterly':
 | 
			
		||||
                $start = $end = '';
 | 
			
		||||
                $quarters = $this->getFinancialQuarters($this->year);
 | 
			
		||||
 | 
			
		||||
                foreach ($quarters as $quarter) {
 | 
			
		||||
 
 | 
			
		||||
@@ -50,8 +50,8 @@ trait DateTime
 | 
			
		||||
            $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]);
 | 
			
		||||
@@ -121,7 +121,7 @@ trait DateTime
 | 
			
		||||
    {
 | 
			
		||||
        $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)
 | 
			
		||||
@@ -130,7 +130,7 @@ trait DateTime
 | 
			
		||||
        $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;
 | 
			
		||||
 
 | 
			
		||||
@@ -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)) {
 | 
			
		||||
@@ -18,18 +23,17 @@ class Recurring
 | 
			
		||||
            foreach ($item->recurring->getRecurringSchedule(false) as $schedule) {
 | 
			
		||||
                $issued = Date::parse($item->$issued_date_field);
 | 
			
		||||
                $start = $schedule->getStart();
 | 
			
		||||
 | 
			
		||||
                if ($issued->format('Y') != $start->format('Y')) {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
                $start_date = Date::parse($start->format('Y-m-d'));
 | 
			
		||||
 | 
			
		||||
                if (($issued->format('Y-m') == $start->format('Y-m')) && ($issued->format('d') >= $start->format('d'))) {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                $clone = clone $item;
 | 
			
		||||
                if ($start_date->lessThan($financial_year->getStartDate()) || $start_date->greaterThan($financial_year->getEndDate())) {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                $start_date = Date::parse($start->format('Y-m-d'));
 | 
			
		||||
                $clone = clone $item;
 | 
			
		||||
 | 
			
		||||
                if ($clone instanceof Document) {
 | 
			
		||||
                    // Days between invoiced/billed and due date
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user