diff --git a/myems-api/reports/dashboard.py b/myems-api/reports/dashboard.py index 30b2941b..863e996a 100644 --- a/myems-api/reports/dashboard.py +++ b/myems-api/reports/dashboard.py @@ -601,6 +601,7 @@ class Reporting: result['base_period_input']['subtotals'] = list() result['base_period_input']['subtotals_in_kgce'] = list() result['base_period_input']['subtotals_in_kgco2e'] = list() + result['base_period_input']['subtotals_per_unit_area'] = list() result['base_period_input']['total_in_kgce'] = Decimal(0.0) result['base_period_input']['total_in_kgco2e'] = Decimal(0.0) if energy_category_set is not None and len(energy_category_set) > 0: @@ -619,6 +620,9 @@ class Reporting: base_input[energy_category_id]['subtotal_in_kgce']) result['base_period_input']['subtotals_in_kgco2e'].append( base_input[energy_category_id]['subtotal_in_kgco2e']) + result['base_period_input']['subtotals_per_unit_area'].append( + base_input[energy_category_id]['subtotal'] / space['area'] + if space['area'] > 0.0 else None) result['base_period_input']['total_in_kgce'] += \ base_input[energy_category_id]['subtotal_in_kgce'] result['base_period_input']['total_in_kgco2e'] += \ @@ -630,6 +634,7 @@ class Reporting: result['base_period_cost']['timestamps'] = list() result['base_period_cost']['values'] = list() result['base_period_cost']['subtotals'] = list() + result['base_period_cost']['subtotals_per_unit_area'] = list() result['base_period_cost']['total'] = Decimal(0.0) if energy_category_set is not None and len(energy_category_set) > 0: for energy_category_id in energy_category_set: @@ -643,6 +648,9 @@ class Reporting: base_cost[energy_category_id]['values']) result['base_period_cost']['subtotals'].append( base_cost[energy_category_id]['subtotal']) + result['base_period_cost']['subtotals_per_unit_area'].append( + base_cost[energy_category_id]['subtotal'] / space['area'] + if space['area'] > 0.0 else None) result['base_period_cost']['total'] += base_cost[energy_category_id]['subtotal'] result['reporting_period_input'] = dict() diff --git a/web/src/components/MyEMS/dashboard/Dashboard.js b/web/src/components/MyEMS/dashboard/Dashboard.js index 38c80aa3..14a43fa6 100644 --- a/web/src/components/MyEMS/dashboard/Dashboard.js +++ b/web/src/components/MyEMS/dashboard/Dashboard.js @@ -29,8 +29,10 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { const [TCEShareData, setTCEShareData] = useState([]); const [TCO2EShareData, setTCO2EShareData] = useState([]); - const [inputCardSummaryList, setInputCardSummaryList] = useState([]); - const [costCardSummaryList, setCostCardSummaryList] = useState([]); + const [thisYearInputCardSummaryList, setThisYearInputCardSummaryList] = useState([]); + const [thisYearCostCardSummaryList, setThisYearCostCardSummaryList] = useState([]); + const [lastYearInputCardSummaryList, setLastYearInputCardSummaryList] = useState([]); + const [lastYearCostCardSummaryList, setLastYearCostCardSummaryList] = useState([]); const [totalInTCE, setTotalInTCE] = useState({}); const [totalInTCO2E, setTotalInTCO2E] = useState({}); @@ -99,7 +101,7 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { if (isResponseOK) { console.log(json); setFetchSuccess(true); - let inputCardSummaryArray = [] + let thisYearInputCardSummaryArray = [] json['reporting_period_input']['names'].forEach((currentValue, index) => { let cardSummaryItem = {} cardSummaryItem['name'] = json['reporting_period_input']['names'][index]; @@ -107,11 +109,11 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { cardSummaryItem['subtotal'] = json['reporting_period_input']['subtotals'][index]; cardSummaryItem['increment_rate'] = parseFloat(json['reporting_period_input']['increment_rates'][index] * 100).toFixed(2) + "%"; cardSummaryItem['subtotal_per_unit_area'] = json['reporting_period_input']['subtotals_per_unit_area'][index]; - inputCardSummaryArray.push(cardSummaryItem); + thisYearInputCardSummaryArray.push(cardSummaryItem); }); - setInputCardSummaryList(inputCardSummaryArray); + setThisYearInputCardSummaryList(thisYearInputCardSummaryArray); - let costCardSummaryArray = [] + let thisYearCostCardSummaryArray = [] json['reporting_period_cost']['names'].forEach((currentValue, index) => { let cardSummaryItem = {} cardSummaryItem['name'] = json['reporting_period_cost']['names'][index]; @@ -119,9 +121,33 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { cardSummaryItem['subtotal'] = json['reporting_period_cost']['subtotals'][index]; cardSummaryItem['increment_rate'] = parseFloat(json['reporting_period_cost']['increment_rates'][index] * 100).toFixed(2) + "%"; cardSummaryItem['subtotal_per_unit_area'] = json['reporting_period_cost']['subtotals_per_unit_area'][index]; - costCardSummaryArray.push(cardSummaryItem); + thisYearCostCardSummaryArray.push(cardSummaryItem); }); - setCostCardSummaryList(costCardSummaryArray); + setThisYearCostCardSummaryList(thisYearCostCardSummaryArray); + + let lastYearInputCardSummaryArray = [] + json['base_period_input']['names'].forEach((currentValue, index) => { + let cardSummaryItem = {} + cardSummaryItem['name'] = json['base_period_input']['names'][index]; + cardSummaryItem['unit'] = json['base_period_input']['units'][index]; + cardSummaryItem['subtotal'] = json['base_period_input']['subtotals'][index]; + cardSummaryItem['increment_rate'] = null; + cardSummaryItem['subtotal_per_unit_area'] = json['base_period_input']['subtotals_per_unit_area'][index]; + lastYearInputCardSummaryArray.push(cardSummaryItem); + }); + setLastYearInputCardSummaryList(lastYearInputCardSummaryArray); + + let lastYearCostCardSummaryArray = [] + json['base_period_cost']['names'].forEach((currentValue, index) => { + let cardSummaryItem = {} + cardSummaryItem['name'] = json['base_period_cost']['names'][index]; + cardSummaryItem['unit'] = json['base_period_cost']['units'][index]; + cardSummaryItem['subtotal'] = json['base_period_cost']['subtotals'][index]; + cardSummaryItem['increment_rate'] = null; + cardSummaryItem['subtotal_per_unit_area'] = json['base_period_cost']['subtotals_per_unit_area'][index]; + lastYearCostCardSummaryArray.push(cardSummaryItem); + }); + setLastYearCostCardSummaryList(lastYearCostCardSummaryArray); let timeOfUseArray = []; json['reporting_period_input']['energy_category_ids'].forEach((currentValue, index) => { @@ -329,7 +355,7 @@ const Dashboard = ({ setRedirect, setRedirectUrl, t }) => { return (
- {inputCardSummaryList.map(cardSummaryItem => ( + {thisYearInputCardSummaryList.map(cardSummaryItem => ( { {cardSummaryItem['subtotal'] && } ))} - {costCardSummaryList.map(cardSummaryItem => ( + {thisYearCostCardSummaryList.map(cardSummaryItem => ( { {cardSummaryItem['subtotal'] && } ))} +
+
+ {lastYearInputCardSummaryList.map(cardSummaryItem => ( + + {cardSummaryItem['subtotal'] && } + + ))} + {lastYearCostCardSummaryList.map(cardSummaryItem => ( + + {cardSummaryItem['subtotal'] && } + + ))} +
+