public static function getPLConvertedValueByChannel($dateDataArr, $channelsArray) { //ArrStructure {"dated":xxxx,"values":[22,33,44]} $mainArray = array(); $channelNamesArr = array(); foreach ($channelsArray as $chKey => $chUnit) { array_push($channelNamesArr, $chKey); } foreach ($dateDataArr as $dateData) { $arrItem = new ArrayObject(); $arrItem['dated'] = $dateData['dated']; $arrItemValuesOnly = array(); foreach ($dateData['values'] as $key => $value) { $plValue = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $value); array_push($arrItemValuesOnly, $plValue); } $arrItem['values'] = $arrItemValuesOnly; array_push($mainArray, $arrItem); } return $mainArray; $arrObj = new ArrayObject($rows); $it = $arrObj->getIterator(); $WQDChannelsInfo = array(); $dateArr = array(); $valArr = array(); $jsonArry = array(); while ($it->valid()) { $key = $it->key(); $value = $it->current(); $date = new DateTime($value[0]); $dateArr[$key] = "'" . $date->format("d-m H:i") . "'"; if ($isConvertPL == true) { $valArr[$key] = ConvertorUtils::getPrescribedValue($chName, $value[1]); } else { $valArr[$key] = $value[1]; } $it->next(); } $jsondataDate = json_encode($dateArr); $josnDataValue = json_encode($valArr); $jsondataDate = str_replace("\"", "", $jsondataDate); $josnDataValue = str_replace("\"", "", $josnDataValue); $jsonArry[0] = $jsondataDate; $jsonArry[1] = $josnDataValue; return $jsonArry; }
private static function getFinalDataByValueType($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNamesArray, $valueType, $isAverage, $stationType) { if ($isAverage == true) { $dfinal = self::getAverateDataByTimeInterval($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNamesArray, $valueType); return $dfinal; } if (($stationType = "stack" || ($stationType = "effluent")) && $isAvarage != true) { $dfinal = self::getStackFinalData($timeBase, $dateSlices, $folSeqArray, $folChannelDataArray, $folChannelsNameArray, $valueType, $stationType); return $dfinal; } $dateFormat = "d-m-Y H:i"; if ($stationType == "stack" || $stationType == "effluent") { $dateFormat = "d-m-Y H:i:s"; } $dataFinal = array(); foreach ($dateSlices as $dateSlice) { $dateSliceData = array(); foreach ($folSeqArray as $folSeq) { $dataArray = $folChannelDataArray[$folSeq]; $dateSliceLong = strtotime($dateSlice); $dateSliceDataArray = $dataArray[$dateSliceLong]; $channelNamesArr = $folChannelsNamesArray[$folSeq]; if ($dateSliceDataArray != null) { foreach ($dateSliceDataArray['channelValue'] as $key => $eachdata) { $eachDataPU = ""; if ($valueType == "zero" && $dateSliceDataArray['channelStatuses'][$key] == 66) { $eachDataPU = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $eachdata); } else { if ($valueType == "span" && $dateSliceDataArray['channelStatuses'][$key] == 67) { $eachDataPU = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $eachdata); } else { if ($valueType == "normal" && ($dateSliceDataArray['channelStatuses'][$key] == 128 || $dateSliceDataArray['channelStatuses'][$key] == 129)) { $eachDataPU = ConvertorUtils::getPrescribedValue($channelNamesArr[$key], $eachdata); } } } array_push($dateSliceData, $eachDataPU); } } } $dateSliceDataClean = array_filter($dateSliceData, function ($value) { return $value != ""; }); if (count($dateSliceDataClean) > 0) { $dat = new DateTime($dateSlice); $datStr = $dat->format($dateFormat); $dataFinal[$datStr] = $dateSliceData; } } //dateFinal is date as key and array of channel values return $dataFinal; }
public static function exportCSV($rows, $channelNos, $folderName, $isPLimits, $ChannelsInfo) { $channelNosArr = explode(",", $channelNos); $objPHPExcel = new PHPExcel(); $rowNo = 1; $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowNo, 'Date & Time'); for ($i = 0, $l = count($channelNosArr); $i < $l; ++$i) { $alphabet = self::num_to_letter($i + 2); $channelName = self::getChannelName($ChannelsInfo, $channelNosArr[$i]); $objPHPExcel->getActiveSheet()->setCellValue($alphabet . $rowNo, $channelName); } $rowNo++; foreach ($rows as $item) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $rowNo, $item[0]); for ($i = 0, $l = count($channelNosArr); $i < $l; ++$i) { $alphabet = self::num_to_letter($i + 2); $chValue = $item['ch' . $channelNosArr[$i] . 'value']; $channelName = self::getChannelName($ChannelsInfo, $channelNosArr[$i]); if ($isPLimits == 1) { $chValue = ConvertorUtils::getPrescribedValue($channelName, $chValue); $unit = ConvertorUtils::getPrescribedUnit($channelName); } $objPHPExcel->getActiveSheet()->setCellValue($alphabet . $rowNo, $chValue); } $rowNo++; } $dateTime = new DateTime(); $fileName = "CSVFiles/" . $folderName . "_" . $dateTime->format("Y-m-d_H-i-s") . ".csv"; $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); $path = $ConstantsArray['dbServerUrl'] . $fileName; $objWriter->save($path); if (file_exists($path)) { header("Content-Type: application/download", false); header("Content-Disposition: attachment; filename=" . $fileName, false); header("Content-Length: " . filesize($fileName)); $fp = fopen($path, "r"); fpassthru($fp); } }
<?php if ($dailyAverageArray != null) { $arrKeys = array_keys($dailyAverageArray); //looping over foldernames foreach ($arrKeys as $key) { if ($key != null) { echo "<div style='float:left;margin-left:15px;border:solid thin grey;padding:12px;background:white'>"; echo "<b style='padding:6px 12px 6px 12px' class='ui-widget-header'>Average Data for " . $key . "</b>"; echo "<ul>"; $avrArray = $dailyAverageArray[$key]; $totalAverages = 0; foreach ($avrArray as $avr) { $val = $avr[1]; if (ConvertorUtils::getPrescribedValue($channelName, $val) != null) { $val = ConvertorUtils::getPrescribedValue($channelName, $val); } echo "<li>" . $avr[0] . " - " . round($val, 2) . " " . htmlentities($channelUnit) . "</li>"; $totalAverages = $totalAverages + round($val, 2); } echo "</ul>"; echo "</div>"; } } //end of loop over various folders } //end of condition ?>
private function processChannelNumbersToParameters($dataArray, $isConvertUnits) { //method will set channelnames and units $CCDS = ChannelConfigurationDataStore::getInstance(); $processedData = new ArrayObject(); foreach ($dataArray as $data) { $processedDataItem = new ArrayObject(); $processedDataItem['folderSeq'] = $data['folderSeq']; $processedDataItem['folderName'] = $data['folderName']; $processedDataItem['dated'] = $data['dated']; $channelNameWiseData = new ArrayObject(); $channelsInfo = $CCDS->FindByFolder($data['folderSeq']); $channelsNumberWiseData = $data['channelsInfo']; foreach ($channelsInfo as $channel) { $chNo = $channel->getChannelNumber(); $chName = $channel->getChannelName(); $chUnit = $channel->getChannelUnit(); if ($isConvertUnits == 1) { $chNoData = $channelsNumberWiseData['ch' . $chNo . 'value']; $presValue = ConvertorUtils::getPrescribedValue($chName, $chNoData); $chConvertedUnitVal = ConvertorUtils::getPrescribedUnit($chName); if ($chConvertedUnitVal == null) { $chConvertedUnitVal = $chUnit; } $presUnit = ConvertorUtils::getUTF8Encoded($chConvertedUnitVal); if ($presValue == null) { $channelNameWiseData[$chName] = 'no data'; } else { $channelNameWiseData[$chName] = $presValue . ' ' . $presUnit; } } else { $unitVal = $unitName[$chName]; $channelNameWiseData["ch" . $chNo . "unit"] = ConvertorUtils::getUTF8Encoded($unitVal); } } $processedDataItem['data'] = $channelNameWiseData; $processedData[] = $processedDataItem; } return $processedData; }
private static function getPLValue($valueType, $chStatus, $chName, $data) { $eachDataPU = ""; if ($valueType == "zero" && $chStatus == 66) { $eachDataPU = ConvertorUtils::getPrescribedValue($chName, $data); } else { if ($valueType == "span" && $chStatus == 67) { $eachDataPU = ConvertorUtils::getPrescribedValue($chName, $data); } else { if ($valueType == "normal") { if ($chStatus == 128 || $chStatus == 129) { $eachDataPU = ConvertorUtils::getPrescribedValue($chName, $data); } else { if ($chStatus == 0 || $data == 0) { $eachDataPU = 0; } } } } } if (is_string($data) && $data == StringUtils::$exemptedString) { $eachDataPU = StringUtils::$exemptedString; } return $eachDataPU; }
$unitName = new ArrayObject(); foreach ($channelsDetails as $channel) { $unitName[$channel->getChannelName()] = $channel->getChannelUnit(); } foreach ($channelsDetails as $channel) { $chNo = $channel->getChannelNumber(); $chName = $channel->getChannelName(); $chUnit = $channel->getChannelUnit(); $chData = $channelsData['ch' . $chNo . 'value']; if ((double) $chData <= 0 && $chName != 'Vertical Wind Speed') { $chData = "n.o"; } if ((double) $chData == 985 && ($chName == 'PM10' || $chName == 'PM2.5')) { $chData = "n.o"; } $channelsData["ch" . $chNo . "value"] = ConvertorUtils::getPrescribedValue($chName, $chData); $chConvertedUnitVal = ConvertorUtils::getPrescribedUnit($chName); if ($chConvertedUnitVal != "") { $chUnit = $chConvertedUnitVal; } $chUnit = ConvertorUtils::getUTF8Encoded($chUnit); $channelsData["ch" . $chNo . "unit"] = $chUnit; } $WQDInfo['channelsInfo'] = $channelsData; $str = '<table><tr><td valign="top">'; $str .= '<table class="mapDataInfoTable"><tr><td class="ui-state-active">Company Name</td><td>' . $folder->getIndustryName() . '</td></tr>'; $str .= ' <tr><td class="ui-state-active">Location</td><td>' . $folder->getCity() . ", " . $folder->getState() . '</td></tr>'; $str .= ' <tr><td class="ui-state-active">Station</td><td>' . $folder->getStationName() . '</td></tr>'; $str .= ' <tr><td class="ui-state-active">Industry Type</td><td>' . $folder->getCategory() . '</tr>'; $str .= ' <tr><td class="ui-state-active">Longitude</td><td>' . $folderMapInfo['longitude'] . '</td></tr>'; $str .= ' <tr><td class="ui-state-active">Latitude</td><td>' . $folderMapInfo['latitude'] . '</td></tr>';
$repStr .= " mg/m³µg/m³ µg/m³ µg/m³ µg/m³µg/m³ µg/m³ µg/m³ µg/m³ µg/m³\r\n"; $matRepStr = " PM2.5 PM10 AT RH WS WD VWS BP SR\r\n"; $matRepStr .= " µg/m³ µg/m³ °C % m/s deg m/s mmHg W/m²\r\n"; foreach ($dataRows as $row) { $dated = new DateTime($row['wqdfiledatadated']); $repStr .= " " . $dated->format("d/m/y H:i"); $matRepStr .= "" . $dated->format("d/m/Y H:i"); foreach ($channelConfigs as $channelConfiguration) { $chNo = $channelConfiguration->getChannelNumber(); $chUnit = $channelConfiguration->getChannelUnit(); $chName = $channelConfiguration->getChannelName(); $chStatus = $row['ch' . $chNo . 'status']; $chValue = ""; if ($chStatus == 128 || $chStatus == 129) { $chValue = $row['ch' . $chNo . 'value']; $chValue = ConvertorUtils::getPrescribedValue($chName, $chValue); } if (strpos($chValue, '.') !== false) { $chValue = number_format($chValue, 1, ".", ""); } if (in_array($chName, $roundingNoDecimalChannels)) { $chValue = round($chValue, 0); } $chValueLength = strlen($chValue); $spacesToAdd = 0; if (array_key_exists($chName, $repColSize)) { $spacesToAdd = $repColSize[$chName] - $chValueLength + 1; for ($i = 0; $i < $spacesToAdd; $i++) { $repStr .= " "; } $repStr .= $chValue;