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;
 }
Example #3
0
 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) {
Example #5
0
 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>";