diff --git a/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEnergyItem.js b/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEnergyItem.js index 48c443a1..fb0470f8 100644 --- a/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEnergyItem.js +++ b/web/src/components/MyEMS/CombinedEquipment/CombinedEquipmentEnergyItem.js @@ -33,6 +33,7 @@ import ButtonIcon from '../../common/ButtonIcon'; import { APIBaseURL } from '../../../config'; const DetailedDataTable = loadable(() => import('../common/DetailedDataTable')); +const AssociatedEquipmentTable = loadable(() => import('../common/AssociatedEquipmentTable')); const CombinedEquipmentEnergyItem = ({ setRedirect, setRedirectUrl, t }) => { let current_moment = moment(); @@ -88,6 +89,10 @@ const CombinedEquipmentEnergyItem = ({ setRedirect, setRedirectUrl, t }) => { const [detailedDataTableData, setDetailedDataTableData] = useState([]); const [detailedDataTableColumns, setDetailedDataTableColumns] = useState([{dataField: 'startdatetime', text: t('Datetime'), sort: true}]); + + const [associatedEquipmentTableData, setAssociatedEquipmentTableData] = useState([]); + const [associatedEquipmentTableColumns, setAssociatedEquipmentTableColumns] = useState([{dataField: 'name', text: t('Associated Equipment'), sort: true }]); + const [excelBytesBase64, setExcelBytesBase64] = useState(undefined); useEffect(() => { @@ -291,6 +296,7 @@ const CombinedEquipmentEnergyItem = ({ setRedirect, setRedirectUrl, t }) => { // Reinitialize tables setDetailedDataTableData([]); + setAssociatedEquipmentTableData([]); let isResponseOK = false; fetch(APIBaseURL + '/reports/combinedequipmentenergyitem?' + @@ -443,6 +449,38 @@ const CombinedEquipmentEnergyItem = ({ setRedirect, setRedirectUrl, t }) => { }); setDetailedDataTableColumns(detailed_column_list); + let associated_equipment_value_list = []; + if (json['associated_equipment']['associated_equipment_names_array'].length > 0) { + json['associated_equipment']['associated_equipment_names_array'][0].forEach((currentEquipmentName, equipmentIndex) => { + let associated_equipment_value = {}; + associated_equipment_value['id'] = equipmentIndex; + associated_equipment_value['name'] = currentEquipmentName; + json['associated_equipment']['energy_item_names'].forEach((currentValue, energyItemIndex) => { + associated_equipment_value['a' + energyItemIndex] = json['associated_equipment']['subtotals_array'][energyItemIndex][equipmentIndex].toFixed(2); + }); + associated_equipment_value_list.push(associated_equipment_value); + }); + }; + + setAssociatedEquipmentTableData(associated_equipment_value_list); + + let associated_equipment_column_list = []; + associated_equipment_column_list.push({ + dataField: 'name', + text: t('Associated Equipment'), + sort: true + }); + json['associated_equipment']['energy_item_names'].forEach((currentValue, index) => { + let unit = json['associated_equipment']['units'][index]; + associated_equipment_column_list.push({ + dataField: 'a' + index, + text: currentValue + ' (' + unit + ')', + sort: true + }); + }); + + setAssociatedEquipmentTableColumns(associated_equipment_column_list); + setExcelBytesBase64(json['excel_bytes_base64']); // enable submit button @@ -662,6 +700,9 @@ const CombinedEquipmentEnergyItem = ({ setRedirect, setRedirectUrl, t }) => {
+
+ + ); }; diff --git a/web/src/components/MyEMS/common/AssociatedEquipmentTable.js b/web/src/components/MyEMS/common/AssociatedEquipmentTable.js new file mode 100644 index 00000000..a00011b2 --- /dev/null +++ b/web/src/components/MyEMS/common/AssociatedEquipmentTable.js @@ -0,0 +1,39 @@ +import React, { Fragment } from 'react'; +import BootstrapTable from 'react-bootstrap-table-next'; +import FalconCardHeader from '../../common/FalconCardHeader'; +import ButtonIcon from '../../common/ButtonIcon'; +import { Card, CardBody, CardHeader, Row, Col } from 'reactstrap'; +import { withTranslation } from 'react-i18next'; + + +const defaultSorted = [{ + dataField: 'name', + order: 'asc' +}]; + +const AssociatedEquipmentTable = ({ title, data, columns, t }) => { + return ( + + + + + + + + + + + + + + + ); +}; + +export default withTranslation()(AssociatedEquipmentTable);