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);
 }
示例#2
0
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>