Moving average endpoint implementation.

This commit is contained in:
Djonathan 2022-07-08 18:32:00 -03:00
parent f736d06100
commit dbdb64f507
2 changed files with 15 additions and 7 deletions

View File

@ -42,8 +42,8 @@ class EconomyRepository extends AbstractRepository implements EconomyContractInt
$field = [ $field = [
"economia.mes", "economia.mes",
DB::raw("TO_CHAR(TO_DATE(economia.mes, 'YYMM'), 'YYYY') as ano"), DB::raw("TO_CHAR(TO_DATE(economia.mes, 'YYMM'), 'YYYY') as ano"),
DB::raw("SUM(economia.economia_mensal) as economia_acumulada_a"), DB::raw("SUM(economia.economia_mensal)/1000 as economia_acumulada_a"),
DB::raw("SUM(economia.economia_acumulada) as economia_acumulada"), DB::raw("SUM(economia.economia_acumulada)/1000 as economia_acumulada"),
DB::raw("(SUM(economia.economia_mensal)/SUM(economia.custo_cativo)) as econ_percentual"), DB::raw("(SUM(economia.economia_mensal)/SUM(economia.custo_cativo)) as econ_percentual"),
"economia.dad_estimado" "economia.dad_estimado"
]; ];

View File

@ -154,12 +154,12 @@ class PldRepository extends AbstractRepository implements PldContractInterface
public function getConsumptionByDaily($params, $field = "mes_ref"): Collection|array public function getConsumptionByDaily($params, $field = "mes_ref"): Collection|array
{ {
$fields = [ $fields = [
DB::raw("TO_CHAR((date('1899-12-30') + interval '1' day * pld.dia_num), 'DD') as day_formatted"), DB::raw("to_char(('1899-12-30'::date + ('1 day'::interval day * (pld.dia_num)::double precision)), 'DD'::text) AS day_formatted"),
DB::raw("(date('1899-12-30') + interval '1' day * pld.dia_num) as day_calc"), DB::raw("('1899-12-30'::date + ('1 day'::interval day * (pld.dia_num)::double precision)) as day_calc"),
'pld.submercado as submarket', 'pld.submercado as submarket',
DB::raw("AVG(pld.valor) as value"), DB::raw("AVG(pld.valor) as value"),
DB::raw("TO_CHAR(TO_DATE(pld.mes_ref, 'YYMM'), 'MM/YYYY') as year_month"), DB::raw("pld.mes_ref as year_month"),
DB::raw("TO_CHAR(TO_DATE(pld.mes_ref, 'YYMM'), 'MM/YYYY') as year_month_formatted"), DB::raw("TO_CHAR(TO_DATE(pld.mes_ref, 'YYMM'::text)::timestamp with time zone, 'MM/YYYY'::text) as year_month_formatted"),
]; ];
$i = 0; $i = 0;
@ -171,7 +171,14 @@ class PldRepository extends AbstractRepository implements PldContractInterface
} }
return $this->execute($fields, $params) return $this->execute($fields, $params)
->groupBy('day_formatted', 'day_calc', 'submarket', 'year_month', 'year_month_formatted') ->groupBy(
DB::raw("(to_char(('1899-12-30'::date + ('1 day'::interval day * (pld.dia_num)::double precision)), 'DD'::text))"),
DB::raw("('1899-12-30'::date + ('1 day'::interval day * (pld.dia_num)::double precision))"),
"pld.submercado",
"pld.mes_ref",
DB::raw("(to_char((to_date(pld.mes_ref, 'YYMM'::text))::timestamp with time zone, 'MM/YYYY'::text))")
)
->orderByRaw("('1899-12-30'::date + ('1 day'::interval day * (pld.dia_num)::double precision))")
->get(); ->get();
} }
@ -197,6 +204,7 @@ class PldRepository extends AbstractRepository implements PldContractInterface
} }
return $this->execute($fields, $params) return $this->execute($fields, $params)
->whereRaw("TO_DATE(pld.mes_ref, 'YYMM') >= TO_DATE(TO_CHAR(current_date , 'YYYY-01-01'), 'YYYY-MM-DD') - INTERVAL '1' year")
->orderBy('hour', 'asc') ->orderBy('hour', 'asc')
->get(); ->get();
} }