fix zaporne spot ceny v nakupu
Some checks failed
CI and deploy / migration-check (push) Failing after 12s
CI and deploy / deploy (push) Has been skipped

This commit is contained in:
Dusan Vojacek
2026-05-01 14:27:08 +02:00
parent bf3b10ca50
commit 91ee8a6adf
6 changed files with 51 additions and 35 deletions

View File

@@ -119,14 +119,21 @@ BEGIN
AND v_fixed_nt IS NOT NULL THEN
v_energy_czk := v_fixed_nt
+ CASE WHEN v_is_vt THEN v_fixed_vt_sur ELSE 0 END;
v_buy_margin := v_buy_margin_fixed + (v_energy_czk * v_buy_margin_pct / 100.0);
ELSIF v_spot_price IS NULL THEN
RETURN NULL;
ELSE
v_energy_czk := v_spot_price;
-- Spot: asymetrický faktor na raw OTE (stejné p jako u kladného ×(1+p/100)):
-- kladná raw → ×(1+p/100), záporná raw → ×(1p/100); fixní marže jen přičíst.
v_energy_czk := CASE
WHEN v_spot_price >= 0 THEN
v_spot_price * (1 + v_buy_margin_pct / 100.0)
ELSE
v_spot_price * (1 - v_buy_margin_pct / 100.0)
END;
v_buy_margin := v_buy_margin_fixed;
END IF;
v_buy_margin := v_buy_margin_fixed + (v_energy_czk * v_buy_margin_pct / 100.0);
RETURN ROUND(
(v_energy_czk + v_dist_rate + v_system_services + v_ote_fee + v_buy_margin)
* (1 + v_vat_rate),
@@ -137,8 +144,8 @@ $$;
COMMENT ON FUNCTION ems.fn_effective_buy_price(INT, TIMESTAMPTZ) IS
'Efektivní nákupní cena elektřiny Kč/kWh včetně DPH.
Režim spot: energie = OTE buy_raw + distribuce NT/VT (dle HDO) + systémové služby + OTE poplatek + marže (fix + % z energie).
Režim fixed: energie = buy_fixed_energy_nt_czk_kwh (+ buy_fixed_vt_surcharge_czk_kwh ve VT oknech dle HDO), pak stejné příplatky a DPH.
Režim spot: složka OTE buy_raw jako kladná → ×(1+buy_margin_percent/100), záporná → ×(1buy_margin_percent/100); + buy_margin_fixed_czk + distribuce NT/VT (HDO) + systémové služby + OTE poplatek; pak DPH na celek.
Režim fixed: energie = buy_fixed_energy_nt_czk_kwh (+ příplatek VT dle HDO), marže = fix + procento z této uzavřené energické složky (symetricky jako dříve); + příplatky a DPH stejně.
DPH aplikováno na celou částku.';
-- ------------------------------------------------------------