diff --git a/db/routines/R__063_fn_load_planning_slots_full.sql b/db/routines/R__063_fn_load_planning_slots_full.sql index 4cbbe51..a142281 100644 --- a/db/routines/R__063_fn_load_planning_slots_full.sql +++ b/db/routines/R__063_fn_load_planning_slots_full.sql @@ -221,43 +221,43 @@ begin v_grid_target_wh := v_energy_to_fill * v_charge_buf; v_discharge_target_wh := v_exportable * v_discharge_buf; - -- charge mask + -- charge mask (sloupce temp tabulky kvalifikujeme: RETURNS TABLE dělá PL proměnné stejných jmen) if v_charge_buf <= 0 then - update _ems_plan_slot_wk set allow_charge = true; + update _ems_plan_slot_wk wk set allow_charge = true; elsif v_energy_to_fill <= 0 then - update _ems_plan_slot_wk set allow_charge = false; + update _ems_plan_slot_wk wk set allow_charge = false; else - update _ems_plan_slot_wk set allow_charge = (pv_surplus_w > 0); + update _ems_plan_slot_wk wk set allow_charge = (wk.pv_surplus_w > 0); v_cum := 0; for r_slot in - select slot_ord - from _ems_plan_slot_wk - where pv_surplus_w <= 0 - order by buy_price, slot_ord + select wk.slot_ord + from _ems_plan_slot_wk wk + where wk.pv_surplus_w <= 0 + order by wk.buy_price, wk.slot_ord loop exit when v_cum >= v_grid_target_wh; exit when v_per_slot_charge_wh <= 0; - update _ems_plan_slot_wk set allow_charge = true where slot_ord = r_slot.slot_ord; + update _ems_plan_slot_wk wk set allow_charge = true where wk.slot_ord = r_slot.slot_ord; v_cum := v_cum + v_per_slot_charge_wh; end loop; end if; -- discharge-export mask if v_discharge_buf <= 0 then - update _ems_plan_slot_wk set allow_discharge_export = true; + update _ems_plan_slot_wk wk set allow_discharge_export = true; elsif v_exportable <= 0 then - update _ems_plan_slot_wk set allow_discharge_export = false; + update _ems_plan_slot_wk wk set allow_discharge_export = false; else - update _ems_plan_slot_wk set allow_discharge_export = false; + update _ems_plan_slot_wk wk set allow_discharge_export = false; v_cum := 0; for r_slot in - select slot_ord - from _ems_plan_slot_wk - order by sell_price desc, slot_ord desc + select wk.slot_ord + from _ems_plan_slot_wk wk + order by wk.sell_price desc, wk.slot_ord desc loop exit when v_cum >= v_discharge_target_wh; exit when v_per_slot_discharge_wh <= 0; - update _ems_plan_slot_wk set allow_discharge_export = true where slot_ord = r_slot.slot_ord; + update _ems_plan_slot_wk wk set allow_discharge_export = true where wk.slot_ord = r_slot.slot_ord; v_cum := v_cum + v_per_slot_discharge_wh; end loop; end if;