diff --git a/app/Http/Controllers/EconomyController.php b/app/Http/Controllers/EconomyController.php index 470f272..424c7e6 100644 --- a/app/Http/Controllers/EconomyController.php +++ b/app/Http/Controllers/EconomyController.php @@ -14,6 +14,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Arr; +use Illuminate\Support\Str; class EconomyController extends Controller { @@ -79,11 +80,6 @@ class EconomyController extends Controller { try { $response = $this->economyContract->getCostMWhEconomy($request->all()); - - $res = static::checkDate($response); - - dd($res); - return (new EconomyResource($response)) ->response() ->setStatusCode(Response::HTTP_OK); @@ -92,58 +88,4 @@ class EconomyController extends Controller } } - public static function checkDate($value) - { - $start_date = current( $value); - - dd($start_date); - - - $y = []; - foreach ($value as $val) { - $te = explode('/', $val->mes); - unset($te[0]); - $y[] = $te[1]; - } - - $val = collect($y)->unique(); - - $start_date = date_create("2021-01-01"); - $end_date = date_create("2022-03-30"); // If you want to include this date, add 1 day - - $interval = DateInterval::createFromDateString('1 months'); - $daterange = new DatePeriod($start_date, $interval, $end_date); - - $date = []; - foreach ($daterange as $date1) { - $date[] = $date1->format('m/Y'); - } - - $arr = collect($value)->toArray(); - - $i = 0; - foreach ($date as $dt) { - if (empty($arr[$i])){ - $arr[] = ['mes' => $dt]; - } - $i++; - } - - sort($arr); - - dd($arr); - -// if (!in_array($dt, $arr[$i], true)) { -// $res[] = $dt; -// } else { -// $res[] = $arr[$i]; -// } - - - dd($arr); - - - dd($arr, $date); - } - } diff --git a/app/Repositories/Economy/EconomyRepository.php b/app/Repositories/Economy/EconomyRepository.php index da08c07..7bc73c3 100644 --- a/app/Repositories/Economy/EconomyRepository.php +++ b/app/Repositories/Economy/EconomyRepository.php @@ -6,9 +6,12 @@ namespace App\Repositories\Economy; use App\Models\Economy; use App\Repositories\AbstractRepository; +use DateInterval; +use DatePeriod; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Str; class EconomyRepository extends AbstractRepository implements EconomyContractInterface { @@ -93,7 +96,7 @@ class EconomyRepository extends AbstractRepository implements EconomyContractInt "economia.dad_estimado" ]; - return $this->execute($params, $field) + $result = $this->execute($params, $field) ->whereBetween( DB::raw("TO_DATE(economia.mes, 'YYMM')"), [ @@ -103,24 +106,44 @@ class EconomyRepository extends AbstractRepository implements EconomyContractInt ->groupBy(['mes', 'dad_estimado']) ->get(); + return static::checkDate($result); } - protected function where($query) + public static function checkDate($value): array { - return $query->where( - DB::raw() - ); + + $val = collect($value)->transform(fn($item, $value) => collect(Str::of($item['mes'])->explode('/')->offsetGet(1)))->unique()->toArray(); + + $date_stat = current($val); + $date_end = end($val); + $start_date = date_create("{$date_stat[0]}-01-01"); + $end_date = date_create("{$date_end[0]}-03-30"); // If you want to include this date, add 1 day + + $interval = DateInterval::createFromDateString('1 months'); + $daterange = new DatePeriod($start_date, $interval, $end_date); + + $date = []; + foreach ($daterange as $date1) { + $date[] = $date1->format('m/Y'); + } + + $arr = collect($value)->toArray(); + + $i = 0; + foreach ($date as $dt) { + if (empty($arr[$i])) { + $arr[] = ['mes' => $dt]; + } + $i++; + } + sort($arr); + + return $arr; + } - protected function getRowField(): array - { - return [ - DB::raw("TO_CHAR(TO_DATE(economia.mes, 'YYMM'), 'MM/YYYY') as mes"), - DB::raw("TRIM(TO_CHAR(economia.custo_cativo, '99999999.99')) as custo_cativo"), - DB::raw("TRIM(TO_CHAR(economia.custo_livre, '99999999.99')) as custo_livre"), - DB::raw("COALESCE(economia.economia_mensal / NULLIF(economia.custo_livre, 0), 0) as custo") - ]; - } + + } diff --git a/app/Repositories/Pld/PldRepository.php b/app/Repositories/Pld/PldRepository.php index a1bda7c..9de10b7 100644 --- a/app/Repositories/Pld/PldRepository.php +++ b/app/Repositories/Pld/PldRepository.php @@ -6,7 +6,6 @@ namespace App\Repositories\Pld; use App\Models\Pld; use App\Repositories\AbstractRepository; -use Carbon\Carbon; use Illuminate\Contracts\Container\BindingResolutionException; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection;