Skip to content

Commit

Permalink
feat: update validation function to ignore non carbon-taxed fuels
Browse files Browse the repository at this point in the history
  • Loading branch information
dleard committed Oct 12, 2021
1 parent ad09162 commit 24d8d22
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ create or replace function ggircs_portal.emission_category_missing_fuel(app_revi
with emissions as (
select distinct(source_type_name) as reported_via_emission
from ggircs_portal.application_revision_emission_form_data(app_revision) ed
join ggircs_portal.emission_category ec
on ed.source_type_name = ec.display_name
and ec.carbon_taxed=true
where ed.annual_co2e > 0
),
fuel_data as (
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-- Deploy ggircs-portal:application_validation_functions/emission_category_missing_fuel to pg
-- requires: tables/application_revision_validation_function
-- requires: computed_columns/application_revision_validation

begin;

create or replace function ggircs_portal.emission_category_missing_fuel(app_revision ggircs_portal.application_revision)
returns boolean
as $$

with emissions as (
select distinct(source_type_name) as reported_via_emission
from ggircs_portal.application_revision_emission_form_data(app_revision) ed
where ed.annual_co2e > 0
),
fuel_data as (
select * from ggircs_portal.application_revision_fuel_form_data(app_revision)
),
fuels as (
select distinct(display_name) as reported_via_fuel from ggircs_portal.emission_category ec
join fuel_data
on fuel_data.emission_category_id = ec.id
and fuel_data.quantity > 0
) select (select count(*) from emissions where reported_via_emission not in (select reported_via_fuel from fuels)) = 0;

$$ language sql stable;

grant execute on function ggircs_portal.emission_category_missing_fuel to ciip_administrator, ciip_analyst, ciip_industry_user;

comment on function ggircs_portal.emission_category_missing_fuel(ggircs_portal.application_revision) is 'This validation function for a CIIP (CleanBC Industrial Incentive Program) application determines if any emission categories have emissions reported in a category, but no corresponding fuels reported for that category';

commit;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Revert ggircs-portal:application_validation_functions/emission_category_missing_fuel from pg

begin;

drop function ggircs_portal.emission_category_missing_fuel;

commit;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
-- Verify ggircs-portal:application_validation_functions/emission_category_missing_fuel on pg

begin;

select pg_get_functiondef('ggircs_portal.application_revision_ciip_incentive(ggircs_portal.application_revision)'::regprocedure);

rollback;

0 comments on commit 24d8d22

Please sign in to comment.