Пример #1
0
 /**
  * txt2xml
  * Converte uma ou multiplas NF em formato txt em xml
  *
  * @param  mixed $txt Path para txt, txt ou array de txt
  * @return array
  */
 public function txt2xml($txt)
 {
     $aNF = array();
     if (is_file($txt)) {
         //extrai cada linha do arquivo em um campo de matriz
         $aDados = file($txt, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES | FILE_TEXT);
     } elseif (is_array($txt)) {
         //carrega a matriz
         $aDados = $txt;
     } else {
         if (strlen($txt) > 0) {
             //carrega a matriz com as linha do arquivo
             $aDados = explode("\n", $txt);
         } else {
             return $aNF;
         }
     }
     //verificar se existem mais de uma NF
     $aNotas = $this->zSliceNotas($aDados);
     foreach ($aNotas as $nota) {
         $this->zArray2xml($nota);
         //carrega os volumes, movido de yEntity
         foreach ($this->linhaX26 as $vol) {
             $this->zLinhaXVolEntity($vol);
         }
         if ($this->make->montaNFe()) {
             $aNF[] = $this->make->getXML();
         }
     }
     return $aNF;
 }
//    array('8', '100', '1400', '1000', '1400'),
//    array('9', '100', '1400', '1000', '1400'),
//    array('10', '100', '1400', '1000', '1400'),
//    array('11', '100', '1400', '1000', '1400'),
//    array('12', '100', '1400', '1000', '1400'),
//    array('13', '100', '1400', '1000', '1400'),
///    array('14', '100', '1400', '1000', '1400')
//);
//foreach ($aForDia as $forDia) {
//    $dia = $forDia[0];
//    $qtde = $forDia[1];
//    $qTotMes = $forDia[2];
//    $qTotAnt = $forDia[3];
//    $qTotGer = $forDia[4];
//    //$resp = $nfe->tagforDia($dia, $qtde, $qTotMes, $qTotAnt, $qTotGer);
//}
//monta a NFe e retorna na tela
$resp = $nfe->montaNFe();
if ($resp) {
    header('Content-type: text/xml; charset=UTF-8');
    $xml = $nfe->getXML();
    $filename = "/var/www/nfe/homologacao/entradas/{$chave}-nfe.xml";
    file_put_contents($filename, $xml);
    chmod($filename, 0777);
    echo $xml;
} else {
    header('Content-type: text/html; charset=UTF-8');
    foreach ($nfe->erros as $err) {
        echo 'tag: &lt;' . $err['tag'] . '&gt; ---- ' . $err['desc'] . '<br>';
    }
}