diff --git a/api/src/db/migrations/20250117_idfm_update.sql b/api/src/db/migrations/20250117_idfm_update.sql new file mode 100644 index 000000000..348d21e9d --- /dev/null +++ b/api/src/db/migrations/20250117_idfm_update.sql @@ -0,0 +1,42 @@ +-- drop dependent materialized views +DROP MATERIALIZED VIEW IF EXISTS stats.weekly_active_campaigns; + +-- set max_amount to bigint as int maxes out at 2147483647 +ALTER TABLE policy.policies ALTER COLUMN max_amount TYPE bigint USING max_amount::bigint; + +-- recreate dependent materialized views +CREATE MATERIALIZED VIEW stats.weekly_active_campaigns AS ( + WITH list AS ( + SELECT pp._id, + pp.name, + tt.name AS territory, + pp.start_date, + pp.end_date, + sum(pi.amount) FILTER (WHERE pi.status = 'validated'::policy.incentive_status_enum) AS validated, + sum(pi.amount) FILTER (WHERE pi.status = 'draft'::policy.incentive_status_enum) AS draft, + pp.max_amount AS enveloppe + FROM policy.policies pp + LEFT JOIN policy.incentives pi ON pp._id = pi.policy_id + LEFT JOIN territory.territory_group tt ON pp.territory_id = tt._id + WHERE pp.status = 'active'::policy.policy_status_enum AND pp.end_date > now() + GROUP BY pp._id, pp.name, tt.name, pp.start_date, pp.end_date, pp.max_amount + ORDER BY (sum(pi.amount) FILTER (WHERE pi.status = 'validated'::policy.incentive_status_enum)) DESC + ) + SELECT list._id, + list.territory, + list.start_date, + list.end_date, + list.validated, + list.draft, + list.enveloppe, + list.validated + list.draft AS total_encours, + date_part('day'::text, now() - list.start_date) / date_part('day'::text, list.end_date - list.start_date) AS conso_jours, + list.name + FROM list +); + + -- grant access to the new materialized view +GRANT SELECT ON stats.weekly_active_campaigns TO metabase; + +-- set IDFM max_amount value to 23 300 000 € +UPDATE policy.policies SET max_amount = 2330000000 WHERE _id = 459; diff --git a/api/src/pdc/services/policy/engine/policies/20210520_IDFM.html.ts b/api/src/pdc/services/policy/engine/policies/20210520_IDFM.html.ts index e59e3dfe6..2b8df5910 100644 --- a/api/src/pdc/services/policy/engine/policies/20210520_IDFM.html.ts +++ b/api/src/pdc/services/policy/engine/policies/20210520_IDFM.html.ts @@ -1,13 +1,13 @@ export const description = `

-

Campagne d’incitation au covoiturage du jeudi 20 mai 2021 au samedi 31 décembre 2024, toute la semaine +

Campagne d’incitation au covoiturage du jeudi 20 mai 2021 au samedi 31 décembre 2025, toute la semaine

Cette campagne est limitée à - 16 800 000 euros . + 23 300 000 euros .

Les conducteurs effectuant un trajet d'au moins 2 km sont incités selon les règles suivantes :

Les restrictions suivantes seront appliquées :