Ejemplo n.º 1
0
 public function GetEvents()
 {
     $list = [];
     $avaliableFlightIds = $this->_user->GetAvaliableFlights($this->_user->username);
     $Fl = new Flight();
     $flights = $Fl->GetFlights($avaliableFlightIds);
     unset($Fl);
     $firstRow = true;
     $excTables = [];
     $FEx = new FlightException();
     foreach ($flights as $flight) {
         $excTable = $flight['exTableName'];
         $rows = $FEx->GetFlightEventsList($excTable);
         foreach ($rows as $row) {
             $falseAlarm = $row['falseAlarm'];
             if ($falseAlarm) {
                 continue;
             }
             $row = array("code" => $row['code'], "startTime" => date('Y-m-d H:i:s', $row['startTime'] / 1000), "endTime" => date('Y-m-d H:i:s', $row['endTime'] / 1000), "excAditionalInfo" => $row['excAditionalInfo'], "userComment" => $row['userComment']);
             if ($firstRow) {
                 $firstRow = false;
                 $plainRow = [];
                 foreach ($row as $key => $val) {
                     if (gettype($key) === 'string') {
                         $plainRow[] = $key;
                     }
                 }
                 array_push($list, $plainRow);
             }
             $plainRow = [];
             foreach ($row as $key => $val) {
                 if (isset($val)) {
                     $val = str_replace([PHP_EOL, ',', ';'], ' ', $val);
                     $plainRow[] = $val;
                 } else {
                     $plainRow[] = '';
                 }
             }
             array_push($list, $plainRow);
         }
     }
     unset($FEx);
     return $list;
 }
Ejemplo n.º 2
0
 public function GetFlightExceptions($extFlightId, $extRefParam)
 {
     $flightId = $extFlightId;
     $refParam = $extRefParam;
     $Fl = new Flight();
     $flightInfo = $Fl->GetFlightInfo($flightId);
     unset($Fl);
     $excTableName = $flightInfo['exTableName'];
     if ($excTableName != '') {
         $bruType = $flightInfo['bruType'];
         $startCopyTime = $flightInfo['startCopyTime'];
         $apTableName = $flightInfo['apTableName'];
         $Bru = new Bru();
         $bruInfo = $Bru->GetBruInfo($bruType);
         $stepLength = $bruInfo['stepLength'];
         $cycloApTableName = $bruInfo['gradiApTableName'];
         $cycloBpTableName = $bruInfo['gradiBpTableName'];
         $excListTableName = $bruInfo['excListTableName'];
         $paramType = $Bru->GetParamType($refParam, $cycloApTableName, $cycloBpTableName);
         $excList = array();
         if ($paramType == PARAM_TYPE_AP) {
             $paramInfo = $Bru->GetParamInfoByCode($cycloApTableName, $cycloBpTableName, $refParam, PARAM_TYPE_AP);
             $prefix = $paramInfo["prefix"];
             $apTableName = $apTableName . "_" . $prefix;
             $FEx = new FlightException();
             $excList = (array) $FEx->GetExcApByCode($excTableName, $refParam, $apTableName, $excListTableName);
             unset($FEx);
         } else {
             if ($paramType == PARAM_TYPE_BP) {
                 $FEx = new FlightException();
                 $excList = (array) $FEx->GetExcBpByCode($excTableName, $refParam, $stepLength, $startCopyTime, $excListTableName);
                 unset($FEx);
             }
         }
         unset($Bru);
         return $excList;
     } else {
         return 'null';
     }
 }
Ejemplo n.º 3
0
 public function ConstructFlightEventsList($extFlightId, $sections = [], $colored = false)
 {
     $flightId = $extFlightId;
     $user = $this->_user->username;
     $Fl = new Flight();
     $flightInfo = $Fl->GetFlightInfo($flightId);
     $bruType = $flightInfo['bruType'];
     unset($Fl);
     $Bru = new Bru();
     $bruInfo = $Bru->GetBruInfo($bruType);
     $flightApHeaders = $Bru->GetBruApHeaders($bruType);
     $flightBpHeaders = $Bru->GetBruBpHeaders($bruType);
     $prefixArr = $Bru->GetBruApCycloPrefixes($bruType);
     unset($Bru);
     $Frame = new Frame();
     $framesCount = $Frame->GetFramesCount($flightInfo['apTableName'], $prefixArr[0]);
     //giving just some prefix
     unset($Frame);
     // create new PDF document
     $pdf = new TCPDF('L', 'mm', 'A4', true, 'UTF-8', false);
     // set document information
     $pdf->SetCreator($user);
     $pdf->SetAuthor($user);
     $pdf->SetTitle('Flight events list');
     $pdf->SetSubject('Flight events list');
     // $pdf->SetKeywords('TCPDF, PDF, example, test, guide');
     $bort = $flightInfo['bort'];
     $voyage = $flightInfo['voyage'];
     $copyDate = date('H:i:s d-m-Y', $flightInfo['startCopyTime']);
     $Fr = new Frame();
     $flightDuration = $Fr->FrameCountToDuration($framesCount, $bruInfo['stepLength']);
     unset($Fr);
     $usrInfo = $this->_user->userInfo;
     $headerStr = $usrInfo['company'];
     $imageFile = '';
     if ($colored && $usrInfo['logo'] != '') {
         $imageFile = SITE_ROOT_DIR . '/fileUploader/files/' . uniqid() . '.png';
         file_put_contents($imageFile, $usrInfo['logo']);
         $img = file_get_contents($imageFile);
         $pdf->SetHeaderData('$' . $img, "20", $headerStr, "", [0, 10, 50], [0, 10, 50]);
     } else {
         // set default header data
         $pdf->SetHeaderData("", "", $headerStr, "", [0, 10, 50], [0, 10, 50]);
     }
     $pdf->setFooterData([0, 10, 50], [0, 10, 50]);
     // set header and footer fonts
     $pdf->setHeaderFont(array('dejavusans', '', 11));
     $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
     // set default monospaced font
     $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
     // set margins
     $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
     $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
     $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
     // set auto page breaks
     $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
     // set image scale factor
     $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
     // ---------------------------------------------------------
     // set default font subsetting mode
     $pdf->setFontSubsetting(true);
     // Set font
     // dejavusans is a UTF-8 Unicode font, if you only need to
     // print standard ASCII chars, you can use core fonts like
     // helvetica or times to reduce file size.
     $pdf->SetFont('dejavusans', '', 12, '', true);
     // Add a page
     // This method has several options, check the source code documentation for more information.
     $pdf->AddPage();
     if ($imageFile !== '') {
         unlink($imageFile);
     }
     // set text shadow effect
     $pdf->setTextShadow(array('enabled' => true, 'depth_w' => 0.2, 'depth_h' => 0.2, 'color' => [196, 196, 196], 'opacity' => 1, 'blend_mode' => 'Normal'));
     // Pasport
     $strStyle = "text-align:center; font-size: xx-large; font-weight: bold; color: rgb(0, 10, 64);";
     $str = '<p style="' . $strStyle . '">' . $this->lang->pasport . '</p>';
     $pdf->writeHTML($str, true, false, false, false, '');
     // Pasport info
     $strStyle = "text-align:center;";
     $str = '<p style="' . $strStyle . '">' . $this->lang->bruType . ' - ' . $bruInfo['bruType'] . '. <br>' . $this->lang->bort . ' - ' . $flightInfo['bort'] . '; ' . $this->lang->voyage . ' - ' . $flightInfo['voyage'] . '; ' . $this->lang->route . ' : ' . ($new_string = preg_replace('/[^a-zA-z0-9]/', '', $flightInfo['departureAirport']) . ' - ' . preg_replace('/[^a-zA-z1-9]/', '', $flightInfo['arrivalAirport']) . '. <br>' . $this->lang->flightDate . ' - ' . date('H:i:s d-m-Y', $flightInfo['startCopyTime']) . '; ' . $this->lang->duration . ' - ' . $flightDuration . '. <br>');
     $fileName = date('Y-m-d_H.i.s', $flightInfo['startCopyTime']) . '_' . $flightInfo['bort'] . '_' . $flightInfo['voyage'] . '_' . $bruInfo['bruType'];
     if (strpos($bruInfo['aditionalInfo'], ";") >= 0) {
         $counterNeedBrake = false;
         $aditionalInfoArr = explode(";", $flightInfo['flightAditionalInfo']);
         foreach ($aditionalInfoArr as $aditionalInfo) {
             if ($aditionalInfo != "") {
                 $nameVal = explode(":", $aditionalInfo);
                 if (count($nameVal) > 1) {
                     $name = $nameVal[0];
                     $val = $nameVal[1];
                     if ($counterNeedBrake) {
                         $str .= (isset($this->lang->{$name}) ? $this->lang->{$name} : $name) . " - " . $val . "; </br>";
                         $counterNeedBrake = !$counterNeedBrake;
                     } else {
                         $str .= (isset($this->lang->{$name}) ? $this->lang->{$name} : $name) . " - " . $val . "; ";
                         $counterNeedBrake = !$counterNeedBrake;
                     }
                 }
             }
         }
     }
     $str .= "</p>";
     $pdf->writeHTML($str, true, false, false, false, '');
     if ($flightInfo['exTableName'] != "") {
         $FEx = new FlightException();
         $excEventsList = $FEx->GetFlightEventsList($flightInfo['exTableName']);
         $Frame = new Frame();
         // change frame num to time
         for ($i = 0; $i < count($excEventsList); $i++) {
             $event = $excEventsList[$i];
             $excEventsList[$i]['start'] = date("H:i:s", $excEventsList[$i]['startTime'] / 1000);
             $reliability = "checked";
             // converting false alarm to reliability
             if ($excEventsList[$i]['falseAlarm'] == 0) {
                 $reliability = true;
             } else {
                 $reliability = false;
             }
             $excEventsList[$i]['reliability'] = $reliability;
             $excEventsList[$i]['end'] = date("H:i:s", $excEventsList[$i]['endTime'] / 1000);
             $excEventsList[$i]['duration'] = $Frame->TimeStampToDuration($excEventsList[$i]['endTime'] - $excEventsList[$i]['startTime']);
         }
         unset($Frame);
         // if isset events
         if (!empty($excEventsList)) {
             $pdf->SetFont('dejavusans', '', 9, '', true);
             $strStyle = 'style="text-align:center; font-weight: bold; background-color:#708090; color:#FFF"';
             $str = '<p><table border="1" cellpadding="1" cellspacing="1">' . '<tr ' . $strStyle . '><td width="70"> ' . $this->lang->start . '</td>' . '<td width="70">' . $this->lang->end . '</td>' . '<td width="70">' . $this->lang->duration . '</td>' . '<td width="70">' . $this->lang->code . '</td>' . '<td width="260">' . $this->lang->eventName . '</td>' . '<td width="110">' . $this->lang->algText . '</td>' . '<td width="180">' . $this->lang->aditionalInfo . '</td>' . '<td width="110">' . $this->lang->comment . '</td></tr>';
             for ($i = 0; $i < count($excEventsList); $i++) {
                 $event = $excEventsList[$i];
                 $excInfo = $FEx->GetExcInfo($bruInfo['excListTableName'], $event['refParam'], $event['code']);
                 $codePrefix = substr($event['code'], 0, 3);
                 if ($event['reliability'] && (in_array($codePrefix, $sections) || !preg_match('/00[0-9]/', $codePrefix) && in_array('other', $sections))) {
                     if ($colored && $excInfo['status'] == "C") {
                         $style = "background-color:LightCoral";
                     } else {
                         if ($colored && $excInfo['status'] == "D") {
                             $style = "background-color:LightYellow";
                         } else {
                             if ($colored && $excInfo['status'] == "E") {
                                 $style = "background-color:LightGreen";
                             } else {
                                 $style = "";
                             }
                         }
                     }
                     $excAditionalInfo = $event['excAditionalInfo'];
                     $excAditionalInfo = str_replace(";", ";<br>", $excAditionalInfo);
                     $excInfo['algText'] = str_replace('<', "less", $excInfo['algText']);
                     $str .= '<tr style="' . $style . '" nobr="true">' . '<td width="70" style="text-align:center;">' . $event['start'] . '</td>' . '<td width="70" style="text-align:center;">' . $event['end'] . '</td>' . '<td width="70" style="text-align:center;">' . $event['duration'] . '</td>' . '<td width="70" style="text-align:center;">' . $event['code'] . '</td>' . '<td width="260" style="text-align:center;">' . $excInfo['comment'] . '</td>' . '<td width="110" style="text-align:center;">' . $excInfo['algText'] . '</td>' . '<td width="180" style="text-align:center;">' . $excAditionalInfo . '</td>' . '<td width="110" style="text-align:center;"> ' . $event['userComment'] . '</td></tr>';
                 }
             }
             unset($FEx);
             $str .= "</table></p>";
             $pdf->writeHTML($str, false, false, false, false, '');
             $pdf->SetFont('dejavusans', '', 12, '', true);
             $str = "</br></br>" . $this->lang->performer . ' : ' . '_____________________ ' . $flightInfo['performer'] . ', ' . date('d-m-Y') . '';
             $pdf->writeHTML($str, false, false, false, false, '');
         } else {
             $strStyle = "text-align:center; font-size: xx-large; font-weight: bold; color: rgb(128, 10, 0);";
             $str = '<p style="' . $strStyle . '">' . $this->lang->noEvents . '</p>';
             $pdf->writeHTML($str, false, false, false, false, '');
         }
     }
     $pdf->Output($fileName, 'I');
 }
 public function ImportFlight($importedFileName)
 {
     $copiedFilesDir = UPLOADED_FILES_PATH;
     $copiedFilePath = $copiedFilesDir . $importedFileName;
     $zip = new ZipArchive();
     $res = $zip->open($copiedFilePath);
     $importFolderName = sprintf("Imported_%s", date('Y-m-d'));
     $needToCreateImportedFolder = true;
     $Fl = new Flight();
     $Bru = new Bru();
     $Fr = new Frame();
     $FlE = new FlightException();
     $Fd = new Folder();
     $folderInfo = [];
     $userId = $this->_user->GetUserIdByName($this->_user->username);
     if ($res === TRUE) {
         $i = 0;
         $headerFiles = [];
         do {
             $fileName = $zip->getNameIndex($i);
             if (strpos($fileName, "header") !== false) {
                 $headerFiles[] = $fileName;
             }
             $i++;
         } while ($i < $zip->numFiles);
         foreach ($headerFiles as $name) {
             $zip->extractTo($copiedFilesDir, $name);
             $json = file_get_contents($copiedFilesDir . "/" . $name);
             unlink($copiedFilesDir . "/" . $name);
             $flightInfoImported = json_decode($json, true);
             $bruType = $flightInfoImported['bruType'];
             $flightId = $Fl->InsertNewFlight($flightInfoImported['bort'], $flightInfoImported['voyage'], $flightInfoImported['startCopyTime'], $flightInfoImported['bruType'], $flightInfoImported['performer'], $flightInfoImported['departureAirport'], $flightInfoImported['arrivalAirport'], $importedFileName, $flightInfoImported['flightAditionalInfo']);
             $flightInfo = $Fl->GetFlightInfo($flightId);
             $tableNameAp = $flightInfo['apTableName'];
             $tableNameBp = $flightInfo['bpTableName'];
             $bruInfo = $Bru->GetBruInfo($bruType);
             $apPrefixes = $Bru->GetBruApCycloPrefixes($bruType);
             $bpPrefixes = $Bru->GetBruBpCycloPrefixes($bruType);
             $apCyclo = $Bru->GetBruApCycloPrefixOrganized($bruType);
             $tables = $Fl->CreateFlightParamTables($flightId, $apCyclo, $bpPrefixes);
             $apTables = $flightInfoImported["apTables"];
             for ($j = 0; $j < count($apTables); $j++) {
                 $zip->extractTo($copiedFilesDir, $apTables[$j]["file"]);
                 if (file_exists($copiedFilesDir . $apTables[$j]["file"])) {
                     $Fr->LoadFileToTable($tableNameAp . "_" . $apTables[$j]["pref"], $copiedFilesDir . $apTables[$j]["file"]);
                     unlink($copiedFilesDir . $apTables[$j]["file"]);
                 }
             }
             $bpTables = $flightInfoImported["bpTables"];
             for ($j = 0; $j < count($bpTables); $j++) {
                 $zip->extractTo($copiedFilesDir, $bpTables[$j]["file"]);
                 if (file_exists($copiedFilesDir . $bpTables[$j]["file"])) {
                     $Fr->LoadFileToTable($tableNameBp . "_" . $bpTables[$j]["pref"], $copiedFilesDir . $bpTables[$j]["file"]);
                     unlink($copiedFilesDir . $bpTables[$j]["file"]);
                 }
             }
             if (isset($flightInfoImported["exTableName"]) && $flightInfoImported["exTableName"] != "") {
                 $tableGuid = substr($tableNameAp, 0, 14);
                 $FlE->CreateFlightExceptionTable($flightId, $tableGuid);
                 $flightInfo = $Fl->GetFlightInfo($flightId);
                 $exTables = $flightInfoImported["exTables"];
                 $zip->extractTo($copiedFilesDir, $exTables);
                 $Fr->LoadFileToTable($flightInfo["exTableName"], $copiedFilesDir . $exTables);
                 if (file_exists($copiedFilesDir . $exTables)) {
                     unlink($copiedFilesDir . $exTables);
                 }
             }
             $this->_user->SetFlightAvaliable($this->_user->username, $flightId);
             if (count($headerFiles) > 1) {
                 if ($needToCreateImportedFolder) {
                     $folderInfo = $Fd->CreateFolder($importFolderName, 0, $userId);
                     $needToCreateImportedFolder = false;
                 }
                 if (isset($folderInfo['folderId'])) {
                     $Fd->PutFlightInFolder($flightId, $folderInfo['folderId'], $userId);
                 } else {
                     $Fd->PutFlightInFolder($flightId, 0, $userId);
                     //we put currently uploaded file in root
                 }
             } else {
                 //into root if only one
                 $Fd->PutFlightInFolder($flightId, 0, $userId);
                 //we put currently uploaded file in root
             }
         }
         $zip->close();
         unlink($copiedFilePath);
         unset($zip);
         unset($Fl);
         unset($FlE);
         unset($Fr);
         unset($Fd);
         unset($Bru);
         if (count($headerFiles) <= 0) {
             return false;
         }
         return true;
     } else {
         return false;
     }
 }
 public function SetExcReliability($extFlightId, $extExcId, $extState)
 {
     $flightId = $extFlightId;
     $excId = $extExcId;
     $state = $extState;
     $Fl = new Flight();
     $flightInfo = $Fl->GetFlightInfo($flightId);
     unset($Fl);
     $excTableName = $flightInfo['exTableName'];
     if ($state == false || $state == 'false') {
         $state = 1;
     } else {
         if ($state == true || $state == 'true') {
             $state = 0;
         } else {
             $state = 0;
         }
     }
     $FE = new FlightException();
     $res = $FE->UpdateFalseAlarmState($excTableName, $excId, $state);
     unset($FE);
     return $res;
 }