public function codes_to_db() { $analyser = new EDI\Analyser(); $codes_file = realpath(Yii::getPathOfAlias('edifact-data')) . '/D95B/codes.xml'; $codes = $analyser->readCodes($codes_file); $codes = $codes['data_element']; while ($da = array_shift($codes)) { $data_id = $da['@attributes']['id']; echo $data_id . PHP_EOL; if (count($da['code']) == 1) { $code = $da['code']['@attributes']['id']; $desc = $da['code']['@attributes']['desc']; $sql = "\n INSERT INTO edi_codes (data_id, `code`, descriptions) \n VALUES\n (" . $data_id . ", :code,:desc) \n "; $rawData = Yii::app()->db->createCommand($sql); $rawData->bindParam(":desc", $desc, PDO::PARAM_STR); $rawData->bindParam(":code", $code, PDO::PARAM_STR); $rawData->query(); echo ' ' . $code . ' - ' . $desc . PHP_EOL; } else { foreach ($da['code'] as $code_element) { $code = $code_element['@attributes']['id']; $desc = $code_element['@attributes']['desc']; $sql = "\n INSERT INTO edi_codes (data_id, `code`, descriptions) \n VALUES\n (" . $data_id . ", :code,:desc) \n "; $rawData = Yii::app()->db->createCommand($sql); $rawData->bindParam(":desc", $desc, PDO::PARAM_STR); $rawData->bindParam(":code", $code, PDO::PARAM_STR); $rawData->query(); echo ' ' . $code . ' - ' . $desc . PHP_EOL; } } } //print_r($codes); }
if (!empty($model->ecnt_edifact_id)) { ?> <div class="space-12"></div> <div class="row"> <h3 class="header blue lighter smaller"> EDI File Readable </h3> <div class="span12"> <pre> <?php $edifact = Edifact::model()->FindByPk($model->ecntEdifact->id); $EdiParser = new EDI\Parser(); $f = explode(PHP_EOL, $edifact->message); $parsed = $EdiParser->parse($f); $analyser = new EDI\Analyser(); $analyser->edi_message = $edifact->message; $mapping_segments = realpath(Yii::getPathOfAlias('edifact-data')) . '/D95B/segments.xml'; $analyser->loadSegmentsXml($mapping_segments); echo $analyser->process($parsed); ?> </pre> </div> </div> <?php } ?> <div class="space-12"></div>