public static function parse($filePath, $folderSeq)
 {
     $gagalFolderSeq = array(33, 40, 35);
     //$content = file("D:/dat.lsi");
     //$folderSeq = 33;
     $content = file($filePath);
     $numLines = count($content);
     $lineRow = 0;
     for ($i = 0; $i < $numLines; $i++) {
         if (trim($content[$i]) == "") {
         } else {
             $lineRow = $i;
             $i = $numLines;
         }
     }
     $arrayCount = 0;
     $WQDDataArray = new ArrayObject();
     $numLines = count($content);
     for ($i = $lineRow; $i < $numLines; $i++) {
         $WQDData = new WQDData();
         $line = trim($content[$i]);
         $line = rtrim($line, ',');
         $lineVals = explode(',', $line);
         $totalChannels = count($lineVals) - 2;
         $totalChannels = $totalChannels / 2;
         $reportNo = $lineVals[0];
         if ($reportNo != "1") {
             continue;
         }
         $dateStr = $lineVals[1];
         $dateStr = preg_replace('~\\x{00a0}~u', ' ', $dateStr);
         $dateStr = trim(html_entity_decode($dateStr));
         if (in_array($folderSeq, $gagalFolderSeq)) {
             $dateStr = ParserStackLsi::convertDate($dateStr);
         }
         //$dateStr = ParserStackLsi::convertDate($dateStr);
         $dated = new DateTime($dateStr);
         $channels = array();
         $varLocation = 2;
         for ($channelNo = 1; $channelNo <= $totalChannels; $channelNo++) {
             $channelValue = $lineVals[$varLocation];
             $channelStatus = $lineVals[$varLocation + 1];
             if ($channelStatus == "1" || $channelStatus == "Ok") {
                 $channelStatus = "128";
             }
             if ($channelStatus == "Abnormal") {
                 $channelStatus = "0";
             }
             $channelInfo = array();
             $channelInfo['value'] = round($channelValue, 2);
             $channelInfo['status'] = $channelStatus;
             $channels[$channelNo] = $channelInfo;
             $varLocation++;
             $varLocation++;
         }
         $WQDData->setReportNo($reportNo);
         $WQDData->setFolderSeq($folderSeq);
         $WQDData->setDataDate(DateUtils::getSQLDateFromDateObj($dated));
         $WQDData->setChannels($channels);
         $WQDData->setTotalChannels($totalChannels);
         $WQDData->setChecksum(0);
         $WQDDataArray[$arrayCount] = $WQDData;
         $arrayCount = $arrayCount + 1;
     }
     return $WQDDataArray;
 }
Example #2
0
 }
 if (strtoupper($fileType) == "WQD" || strtoupper($fileType) == "TXT" || strtoupper($fileType) == "WAD" || strtoupper($fileType) == "LSI") {
     echo "\n" . date("Y-m-d  H:i:s") . " Parsing " . $fileType . " file " . $value;
     $WQDDataArray = null;
     try {
         if (strtoupper($fileType) == "TXT" && $folder->getSeq() == 20) {
             $WQDDataArray = ParserAppcbHyd::parse($value, $folder->getSeq());
         } elseif (strtoupper($fileType) == "TXT" && $folder->getSeq() == 9) {
             $WQDDataArray = ParserDuplicateAQMS::parse($value, $folder->getSeq());
         } elseif (strtoupper($fileType) == "WAD" && $folder->getLocationSeq() == 10) {
             echo "\n" . "Parsing WAD of APPCB file";
             //this case of APPCB exponential files
             $WQDDataArray = ParserWADAPPCB::parse($value, $folder->getSeq());
         } elseif (strtoupper($fileType) == "LSI") {
             //this case of AMBUJA lsi files for stack folders
             $WQDDataArray = ParserStackLsi::parse($value, $folder->getSeq());
         } elseif (strtoupper($fileType) == "TXT" && ($folder->getSeq() == 48 || $folder->getSeq() == 49)) {
             //this case of Bhoomi instruments first parser
             $WQDDataArray = ParserBhoomiFiles::parse($value, $folder->getSeq());
         } else {
             $WQDDataArray = ParserWQD::parseWQD($value, $folder->getSeq());
         }
         if ($WQDDataArray != null) {
             if ($folder->getStationType() == "stack" || $folder->getStationType() == "effluent") {
                 $WDSD = WQDStackDataStore::getInstance();
                 $WDSD->saveSyncedData($WQDDataArray);
                 echo "\n" . date("Y-m-d  H:i:s") . " Stack File Saved Successfully";
             } else {
                 $WDD = WQDDataDataStore::getInstance();
                 $WDD->SaveList($WQDDataArray);
                 echo "\n" . date("Y-m-d  H:i:s") . " AQMS File Saved Successfully";