Source code for greenlang.calculations.sfdr.pai_ghg_total_tonnes
""" ghg_total_tonnes """
import logging
from fingreen_web.models import CollectionItem
logger = logging.getLogger(__name__)
[docs]
class TotalGhgEmissions(): #pylint: disable=[invalid-name, too-few-public-methods]
""" ghg_total_tonnes """
[docs]
def impact(self, collections, assets, invest_value_tot, period): # pylint: disable=[unused-argument]
""" Compute ghg_intensity_investees
"""
# ghg_scope_1_tonnes
collection_items = CollectionItem.objects.filter(collection__in=collections,
template__name='ghg_scope_1_tonnes')
ghg_scope_1_t = 0
for collection_item in collection_items:
value_i = 0
# Find related Asset
current_asset = assets.filter(company=collection_item.collection.company)[0]
if (current_asset.shares_pct
and collection_item.value_pint):
value_i = (current_asset.shares_pct
* collection_item.value_pint / 100)
ghg_scope_1_t = ghg_scope_1_t + value_i
# ghg_scope_2_tonnes
collection_items = CollectionItem.objects.filter(collection__in=collections,
template__name='ghg_scope_2_tonnes')
ghg_scope_2_t = 0
for collection_item in collection_items:
value_i = 0
# Find related Asset
current_asset = assets.filter(company=collection_item.collection.company)[0]
if (current_asset.shares_pct
and collection_item.value_pint):
value_i = (current_asset.shares_pct
* collection_item.value_pint / 100)
ghg_scope_2_t = ghg_scope_2_t + value_i
# ghg_scope_3_tonnes
collection_items = CollectionItem.objects.filter(collection__in=collections,
template__name='ghg_scope_3_tonnes')
ghg_scope_3_t = 0
for collection_item in collection_items:
value_i = 0
# Find related Asset
current_asset = assets.filter(company=collection_item.collection.company)[0]
if (current_asset.shares_pct
and collection_item.value_pint):
value_i = (current_asset.shares_pct
* collection_item.value_pint / 100)
ghg_scope_3_t = ghg_scope_3_t + value_i
value_t = (
float(ghg_scope_1_t)
+ float(ghg_scope_2_t)
+ float(ghg_scope_3_t)
)
return f'{value_t:g}'