new site BA81, tuyne forecast
This commit is contained in:
@@ -14,6 +14,7 @@ STABLE
|
||||
AS $$
|
||||
DECLARE
|
||||
v_spot_price NUMERIC;
|
||||
v_energy_czk NUMERIC;
|
||||
v_dist_rate NUMERIC;
|
||||
v_system_services NUMERIC;
|
||||
v_ote_fee NUMERIC;
|
||||
@@ -27,8 +28,14 @@ DECLARE
|
||||
v_hdo_code_id INT;
|
||||
v_tariff_id INT;
|
||||
v_rate_type TEXT;
|
||||
v_purchase_mode TEXT;
|
||||
v_fixed_nt NUMERIC;
|
||||
v_fixed_vt_sur NUMERIC;
|
||||
BEGIN
|
||||
SELECT
|
||||
smc.purchase_pricing_mode,
|
||||
smc.buy_fixed_energy_nt_czk_kwh,
|
||||
smc.buy_fixed_vt_surcharge_czk_kwh,
|
||||
smc.buy_margin_fixed_czk,
|
||||
smc.buy_margin_percent,
|
||||
smc.system_services_czk_kwh,
|
||||
@@ -37,6 +44,9 @@ BEGIN
|
||||
smc.tariff_id,
|
||||
dt.vat_rate
|
||||
INTO
|
||||
v_purchase_mode,
|
||||
v_fixed_nt,
|
||||
v_fixed_vt_sur,
|
||||
v_buy_margin_fixed,
|
||||
v_buy_margin_pct,
|
||||
v_system_services,
|
||||
@@ -62,10 +72,6 @@ BEGIN
|
||||
AND interval_start = p_interval_start
|
||||
LIMIT 1;
|
||||
|
||||
IF v_spot_price IS NULL THEN
|
||||
RETURN NULL;
|
||||
END IF;
|
||||
|
||||
v_local_time := (p_interval_start AT TIME ZONE 'Europe/Prague')::TIME;
|
||||
v_dow := EXTRACT(DOW FROM p_interval_start AT TIME ZONE 'Europe/Prague');
|
||||
-- 0=neděle, 6=sobota
|
||||
@@ -106,11 +112,23 @@ BEGIN
|
||||
v_ote_fee := COALESCE(v_ote_fee, 0);
|
||||
v_buy_margin_fixed := COALESCE(v_buy_margin_fixed, 0);
|
||||
v_buy_margin_pct := COALESCE(v_buy_margin_pct, 0);
|
||||
v_buy_margin := v_buy_margin_fixed + (v_spot_price * v_buy_margin_pct / 100.0);
|
||||
v_vat_rate := COALESCE(v_vat_rate, 0.21);
|
||||
v_fixed_vt_sur := COALESCE(v_fixed_vt_sur, 0);
|
||||
|
||||
IF upper(trim(COALESCE(v_purchase_mode, ''))) = 'FIXED'
|
||||
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;
|
||||
ELSIF v_spot_price IS NULL THEN
|
||||
RETURN NULL;
|
||||
ELSE
|
||||
v_energy_czk := v_spot_price;
|
||||
END IF;
|
||||
|
||||
v_buy_margin := v_buy_margin_fixed + (v_energy_czk * v_buy_margin_pct / 100.0);
|
||||
|
||||
RETURN ROUND(
|
||||
(v_spot_price + v_dist_rate + v_system_services + v_ote_fee + v_buy_margin)
|
||||
(v_energy_czk + v_dist_rate + v_system_services + v_ote_fee + v_buy_margin)
|
||||
* (1 + v_vat_rate),
|
||||
6
|
||||
);
|
||||
@@ -119,8 +137,9 @@ $$;
|
||||
|
||||
COMMENT ON FUNCTION ems.fn_effective_buy_price(INT, TIMESTAMPTZ) IS
|
||||
'Efektivní nákupní cena elektřiny Kč/kWh včetně DPH.
|
||||
Složky: spot OTE + distribuce NT/VT (dle HDO) + systémové služby + OTE poplatek + marže (fix + % ze spotu).
|
||||
DPH aplikováno na celou částku. Distribuce závisí na HDO kódu site.';
|
||||
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.
|
||||
DPH aplikováno na celou částku.';
|
||||
|
||||
-- ------------------------------------------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user