This commit is contained in:
oliver committed 2026-10-12 10:12:46 -03:00
1 parent 9db080faea
commit c816ea3ac9
3 files changed
+24 -33

No files matched your search

+23 -12
View File
@@ -22,6 +22,13 @@
-- In psql stattdessen:
-- \set quarter '2026-Q3'
--
-- Diagnose (falls keine AMAZON-Zeilen geliefert werden):
-- SELECT activity_period, count(*)
-- FROM brandize_datacenter_amazon_vat_transaction
-- WHERE arrival_country = 'CH' OR sale_arrival_country = 'CH'
-- GROUP BY 1 ORDER BY 1;
-- -- zeigt das tatsaechliche Format von activity_period
--
-- ---------------------------------------------------------------------------
-- Spalten-Mapping ODOO -> AMAZON
-- (Felder ohne Amazon-Pendant bleiben leer)
@@ -67,18 +74,20 @@ quarters AS (
make_date(yr::int, (qn - 1) * 3 + 1, 1) + INTERVAL '3 months' AS next_day
FROM params
),
-- Die drei activity_period-Werte (Format 'YYYY-MMM', deutsche Kuerzel) fuer die
-- Amazon-Tabelle.
qmonths AS (
SELECT
q.yr || '-' || CASE ((q.qn - 1) * 3 + m.m)
WHEN 1 THEN 'JAN' WHEN 2 THEN 'FEB' WHEN 3 THEN 'MÄR'
WHEN 4 THEN 'APR' WHEN 5 THEN 'MAI' WHEN 6 THEN 'JUN'
WHEN 7 THEN 'JUL' WHEN 8 THEN 'AUG' WHEN 9 THEN 'SEP'
WHEN 10 THEN 'OKT' WHEN 11 THEN 'NOV' WHEN 12 THEN 'DEZ'
END AS activity_period
-- Alle moeglichen Schreibweisen der 3 Quartalsmonate als 'YYYY-MMM'
-- (deutsche UND englische Kuerzel, da die gespeicherte Schreibweise je
-- nach Herkunft abweichen kann).
SELECT DISTINCT
q.yr || '-' || v.abbr AS activity_period
FROM quarters q
CROSS JOIN generate_series(1, 3) AS m(m)
CROSS JOIN generate_series(1, 3) AS g(n)
JOIN (VALUES
(1, 'JAN'), (2, 'FEB'), (3, 'MÄR'), (3, 'MAR'), (4, 'APR'),
(5, 'MAI'), (5, 'MAY'), (6, 'JUN'), (7, 'JUL'), (8, 'AUG'),
(9, 'SEP'), (10, 'OKT'), (10, 'OCT'), (11, 'NOV'),
(12, 'DEZ'), (12, 'DEC')
) AS v(mnum, abbr) ON v.mnum = (q.qn - 1) * 3 + g.n
),
-- ===========================================================================
@@ -345,8 +354,10 @@ amazon_base AS (
ELSE 0
END AS rate
FROM brandize_datacenter_amazon_vat_transaction a
WHERE a.activity_period IN (SELECT activity_period FROM qmonths)
AND a.arrival_country = 'CH'
WHERE upper(a.activity_period) IN (SELECT upper(activity_period) FROM qmonths)
-- Lieferung in die Schweiz: Ziel-/Versandland kann in arrival_country
-- oder sale_arrival_country stehen.
AND (upper(a.arrival_country) = 'CH' OR upper(a.sale_arrival_country) = 'CH')
-- Optional: Gebuehrenzeilen ausschliessen (wie in VAT_Summary.sql):
-- AND a.sales_channel <> 'AMAZON_FEE'
),