/** * Execute the action. * */ public function run($args) { echo 'START ' . date("Y-m-d H:i:s") . PHP_EOL; include_once realpath(Yii::getPathOfAlias('edifact-parser')) . '/Parser.php'; include_once realpath(Yii::getPathOfAlias('edifact-parser')) . '/Reader.php'; include_once realpath(Yii::getPathOfAlias('edifact-parser')) . '/Analyser.php'; if (empty($args)) { foreach (Yii::app()->params['terminal_pop3'] as $terminal => $pop3_settings) { echo 'Read terminal: ' . $terminal . PHP_EOL; $attacments = $this->readPop3Attachments($pop3_settings['host'], $pop3_settings['user'], $pop3_settings['password']); echo 'Found ' . count($attacments) . ' attachments' . PHP_EOL; if ($attacments) { $att = []; foreach ($attacments as $attachment) { $EdiReader = new EDI\Reader($attachment['data']); $messageCount = $EdiReader->readEdiDataValue('UNZ', 1); if ($messageCount != 1) { $aM = EDI\Reader::splitMultiMessage($attachment['data']); foreach ($aM as $a) { $att[] = ['filename' => $attachment['filename'], 'data' => $a]; } continue; } $att[] = $attachment; } echo 'Found ' . count($att) . ' messages' . PHP_EOL; foreach ($att as $attachment) { $this->saveAttachment($attachment['filename'], $attachment['data']); } } echo 'Finish Read terminal: ' . $terminal . PHP_EOL; } echo 'FINISH ' . date("Y-m-d H:i:s") . PHP_EOL; return true; } if ($args[0] == 'analyze') { $this->analyze($args[1]); } if ($args[0] == 'read_codes') { $this->codes_to_db(); } if ($args[0] == 'read') { if (isset($args[1])) { $this->readEdiData($args[1]); } else { $all = Edifact::model()->findAll(); foreach ($all as $edifact) { $this->readEdiData($edifact->id); } } } if ($args[0] == '7days') { $count = EcerErrors::mark7DaysNoMoving(); echo '7days no moving: ' . $count . PHP_EOL; } }