diff --git a/app/Helpers/Helpers.php b/app/Helpers/Helpers.php index e3793eb..6aee017 100644 --- a/app/Helpers/Helpers.php +++ b/app/Helpers/Helpers.php @@ -34,7 +34,6 @@ class Helpers public static function checkDate($value): array { - $year = collect($value)->transform(fn($item, $value) => collect(Str::of($item['mes']) ->explode('-')->offsetGet(0)))->unique()->toArray(); $month = collect($value)->transform(fn($item, $value) => collect(Str::of($item['mes']) diff --git a/app/Repositories/Economy/EconomyRepository.php b/app/Repositories/Economy/EconomyRepository.php index eff4fe4..939389b 100644 --- a/app/Repositories/Economy/EconomyRepository.php +++ b/app/Repositories/Economy/EconomyRepository.php @@ -7,12 +7,10 @@ namespace App\Repositories\Economy; use App\Helpers\Helpers; use App\Models\Economy; use App\Repositories\AbstractRepository; -use Carbon\Carbon; use DateInterval; use DatePeriod; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; -use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; @@ -138,12 +136,12 @@ class EconomyRepository extends AbstractRepository implements EconomyContractInt public function getCostMWhEconomy($params) { $field = [ - "economia.mes", + DB::raw("TO_DATE(economia.mes, 'YYMM') as mes"), DB::raw("SUM(economia.custo_unit) as custo_unit"), "economia.dad_estimado" ]; - $result = $this->execute($params, $field) + $value = $this->execute($params, $field) ->whereBetween( DB::raw("TO_DATE(economia.mes, 'YYMM')"), [ @@ -154,48 +152,9 @@ class EconomyRepository extends AbstractRepository implements EconomyContractInt ->orderBy(DB::raw("mes, dad_estimado")) ->get(); + $result = Helpers::checkDate($value); + return Helpers::orderByDate($result); } - - public static function checkDate($value): array - { - - $year = collect($value)->transform(fn($item, $value) => collect(Str::of($item['mes']) - ->explode('-')->offsetGet(0)))->unique()->toArray(); - $month = collect($value)->transform(fn($item, $value) => collect(Str::of($item['mes']) - ->explode('-')->offsetGet(1)))->unique()->toArray(); - - $month_stat = end($month); - $date_stat = current($year); - $date_end = end($year); - - $start_date = date_create("{$date_stat[0]}-01-01"); - $end_date = date_create("{$date_end[0]}-{$month_stat[0]}-30"); - - $interval = DateInterval::createFromDateString('1 months'); - $daterange = new DatePeriod($start_date, $interval, $end_date); - - $date = []; - foreach ($daterange as $date1) { - $date[] = $date1->format('Y-m' . '-01'); - } - - $arr = collect($value)->toArray(); - - foreach ($date as $dt) { - if (!in_array($dt, array_column($arr, 'mes'))) { - $arr[] = ['mes' => $dt]; - } - } - - usort($arr, function ($a, $b, $i = 'mes') { - $t1 = strtotime($a[$i]); - $t2 = strtotime($b[$i]); - return $t1 - $t2; - }); - - return $arr; - } - }