private function getDataJSON($fromDate, $toDate, $folSeq, $timeInterval, $channelNoArr, $periodType) { $CCDS = ChannelConfigurationDataStore::getInstance(); $ChannelsInfo = $CCDS->FindByFolderAndChannelNos($folSeq, $channelNoArr); $chArr = new ArrayObject(); $chNumbersArr = array(); foreach ($ChannelsInfo as $channel) { $channelUnit = $channel->getChannelUnit(); $channelName = $channel->getChannelName(); if (ConvertorUtils::getPrescribedUnit($channelName) != null) { $channelUnit = ConvertorUtils::getPrescribedUnit($channelName); } $channelUnit = mb_check_encoding($channelUnit, 'UTF-8') ? $channelUnit : utf8_encode($channelUnit); $chArr[$channelName] = $channelUnit; array_push($chNumbersArr, $channel->getChannelNumber()); } $jsonData['channels'] = $chArr; $WQDS = WQDDataDataStore::getInstance(); $allDatesData = array(); if ($periodType == "recent") { $latestInfo = $WQDS->getChannelsLatestInfo($folSeq); $channelData = array(); $channelData['dated'] = $latestInfo['formatedDated']; $chValues = array(); foreach ($chNumbersArr as $chNumber) { array_push($chValues, (double) $latestInfo['channelsInfo']['ch' . $chNumber . 'value']); } $channelData['values'] = $chValues; array_push($allDatesData, $channelData); } else { $channelsArray = $WQDS->getChannels($fromDate, $toDate, $folSeq, $channelNoArr, $timeInterval); foreach ($channelsArray as $channels) { $channelData = array(); $channelData['dated'] = $channels['wqdfiledatadated']; $chValues = array(); $cnt = count($channels) / 2; // divided by 2 becos array produces both channelname and int values for ($i = 1; $i < $cnt; $i++) { array_push($chValues, (double) $channels[$i]); } $channelData['values'] = $chValues; array_push($allDatesData, $channelData); } } $allDatesData = self::getPLConvertedValueByChannel($allDatesData, $chArr); $jsonData['data'] = $allDatesData; return $jsonData; }
private function getDataJSON($fromDate, $toDate, $folSeq, $timeInterval, $channelNoArr, $periodType, $exemptions, $stationType) { if (strpos($timeInterval, 'hours') !== false) { $timeInterval = "1hour"; } $CCDS = ChannelConfigurationDataStore::getInstance(); $ChannelsInfo = $CCDS->FindByFolderAndChannelNos($folSeq, $channelNoArr); $chArr = new ArrayObject(); $chNumbersArr = array(); foreach ($ChannelsInfo as $channel) { $channelUnit = $channel->getChannelUnit(); $channelName = $channel->getChannelName(); if (ConvertorUtils::getPrescribedUnit($channelName) != null) { $channelUnit = ConvertorUtils::getPrescribedUnit($channelName); } $channelUnit = mb_check_encoding($channelUnit, 'UTF-8') ? $channelUnit : utf8_encode($channelUnit); $chArr[$channelName] = $channelUnit; array_push($chNumbersArr, $channel->getChannelNumber()); } $jsonData['channels'] = $chArr; $WQDS = WQDDataDataStore::getInstance(); $WQDStackDS = WQDStackDataStore::getInstance(); $allDatesData = array(); $dataArray = null; //make special stack call here to the different datastore with same api structure $dataArray = null; if ($stationType == "stack" || $stationType == "effluent") { $dataArray = $WQDStackDS->getChannels($fromDate, $toDate, $folSeq, $channelNoArr, $timeInterval); } else { $dataArray = $WQDS->getChannels($fromDate, $toDate, $folSeq, $channelNoArr, $timeInterval); } foreach ($dataArray as $data) { $channelData = array(); $dated = $data['wqdfiledatadated']; $chValues = array(); $chStatuses = array(); $cnt = (count($data) - 2) / 4; // divided by 2 becos array produces both channelname and int values for ($i = 0; $i < $cnt; $i++) { $vl = (double) $data["ch" . $channelNoArr[$i] . "value"]; if ($vl < 0 || $vl == NULL) { $vl = "n.o"; } $isDateExempted = false; foreach ($exemptions as $exem) { $exemption = new Exemption(); $exemption = $exem; $isDateExempted = DateUtils::isDateInBetween($exemption->getFromDateRange(), $exemption->getToDateRange(), $dated); if ($isDateExempted) { $chNo = $channelNoArr[$i]; $exemptedChannelsNos = $exemption->getChannelNumbers(); if (in_array($chNo, $exemptedChannelsNos)) { $vl = StringUtils::$exemptedString; } } } array_push($chValues, $vl); array_push($chStatuses, (double) $data["ch" . $channelNoArr[$i] . "status"]); } //$channelData['values'] = $chValues; $allDatesData[strtotime($dated)]['channelValue'] = $chValues; $allDatesData[strtotime($dated)]['channelStatuses'] = $chStatuses; //array_push($allDatesData,$channelData); } $jsonData['data'] = $allDatesData; return $jsonData; }
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); } }
$channelName = $channel->getChannelName(); $channelUnit = $channel->getChannelUnit(); $fromDate = $fromDate->format("Y/m/d H:i:s"); $toDate = $toDate->format("Y/m/d H:i:s"); $WQDS = WQDDataDataStore::getInstance(); $dailyAverageArray = null; foreach ($folSeqArray as $folSeq) { $arr = $WQDS->getDailyAverageValues($fromDate, $toDate, $folSeq, $channelNumber); $folder = FolderDataStore::getInstance()->FindBySeq($folSeq); $dailyAverageArray[$folder->getFolderName()] = $arr; } //get values for the whole day average //$channelConfig = ChannelConfigurationDataStore::getInstance()->FindByFolderAndChannelNo($folSeqArray[0],$channelNumber); $limit = PrescribedLimitsUtils::getPrescribedLimit($channelName); if (ConvertorUtils::getPrescribedUnit($channelName) != null) { $channelUnit = ConvertorUtils::getPrescribedUnit($channelName); } ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Channel Values Table</title> <?php include "_jsInclude.php"; ?> </head> <body> <?php if ($limit != null) {
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; }
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>'; $dat = new DateTime($WQDInfo['dated']);
</div> <div style="float:left"> <?php if ($dailyAverageArray != null) { $arrKeys = array_keys($dailyAverageArray); //looping over foldernames foreach ($arrKeys as $key) { echo "<div style='float:left;margin-left:15px;border:solid thin grey;padding:12px;background:white'>"; echo "<b>Daily Averages for " . $key . "</b>"; echo "<ul>"; $avrArray = $dailyAverageArray[$key]; $totalAverages = 0; foreach ($avrArray as $avr) { $val = $avr[1]; if ($isPrescribedLimits == 1) { if (ConvertorUtils::getPrescribedUnit($channelName) != null) { $val = ConvertorUtils::getPrescribedValue($channelName, $val); } } echo "<li>" . $avr[0] . " - " . round($val, 2) . " " . $channelUnit . "</li>"; $totalAverages = $totalAverages + round($val, 2); } echo "</ul>"; echo "<font style='font-size:15px'>"; echo "Total Average = "; if ($avrArray != null) { echo round($totalAverages / count($avrArray), 2) . " " . $channelUnit; } else { echo "--"; } echo "</font>";