Beispiel #1
0
 /**
  * zGetInfo
  * Busca informações do XML
  * para uso no sefazEPEC
  * @param string $xml
  * @return array
  */
 protected function zGetInfo($xml)
 {
     $dom = new Dom();
     $dom->loadXMLString($xml);
     $ide = $dom->getNode('ide');
     $emit = $dom->getNode('emit');
     $dest = $dom->getNode('dest');
     $enderDest = $dest->getElementsByTagName('enderDest')->item(0);
     $icmsTot = $dom->getNode('ICMSTot');
     $resp = array('chave' => $dom->getChave('infNFe'), 'dhCont' => $dom->getValue($ide, 'dhCont'), 'xJust' => $dom->getValue($ide, 'xJust'), 'cOrgaoAutor' => $dom->getValue($ide, 'cUF'), 'tpAutor' => '1', 'dhEmi' => $dom->getValue($ide, 'dhEmi'), 'tpNF' => $dom->getValue($ide, 'tpNF'), 'IE' => $dom->getValue($emit, 'IE'), 'UF' => $dom->getValue($enderDest, 'UF'), 'CNPJ' => $dom->getValue($dest, 'CNPJ'), 'CPF' => $dom->getValue($dest, 'CPF'), 'idEstrangeiro' => $dom->getValue($dest, 'idEstrangeiro'), 'IEdest' => $dom->getValue($dest, 'IE'), 'vNF' => $dom->getValue($icmsTot, 'vNF'), 'vICMS' => $dom->getValue($icmsTot, 'vICMS'), 'vST' => $dom->getValue($icmsTot, 'vST'));
     return $resp;
 }
Beispiel #2
0
 public static function extrai($aList, $cnpj = '')
 {
     $aResp = array();
     $totFat = 0;
     $totPeso = 0;
     $totIcms = 0;
     foreach ($aList as $file) {
         $dom = null;
         $ide = null;
         $emit = null;
         $dest = null;
         try {
             $dom = new Dom();
             $dom->loadXMLFile($file);
             $ide = $dom->getNode('ide');
             $emit = $dom->getNode('emit');
             $dest = $dom->getNode('dest');
             $icmsTot = $dom->getNode('ICMSTot');
             $vol = $dom->getNode('vol');
             $cStat = $dom->getNodeValue('cStat');
             if ($cStat != '100') {
                 self::$nCanc++;
             }
             $dhEmi = $dom->getValue($ide, 'dhEmi');
             if (empty($dhEmi)) {
                 $dhEmi = $dom->getValue($ide, 'dEmi');
             }
             //echo $file.'___'.$dhEmi.'<br>';
             $tsEmi = DateTime::convertSefazTimeToTimestamp($dhEmi);
             $data = '';
             if (is_numeric($tsEmi)) {
                 $data = date('d/m/Y', $tsEmi);
             }
             $emitCNPJ = $dom->getValue($emit, 'CNPJ');
             $emitRazao = $dom->getValue($emit, 'xNome');
             $destRazao = $dom->getValue($dest, 'xNome');
             $vNF = $dom->getValue($icmsTot, 'vNF');
             $vNFtext = $vNF;
             if (is_numeric($vNF)) {
                 $vNFtext = 'R$ ' . number_format($vNF, '2', ',', '.');
             }
             $serie = $dom->getNodeValue('serie');
             $nProt = $dom->getNodeValue('nProt');
             $nome = $emitRazao;
             if ($emitCNPJ == $cnpj) {
                 $nome = $destRazao;
             }
             $email = $dom->getValue($dest, 'email');
             $aObscont = $dom->getElementsByTagName('obsCont');
             if (count($aObscont) > 0) {
                 foreach ($aObscont as $obsCont) {
                     $xCampo = $obsCont->getAttribute('xCampo');
                     if ($xCampo == 'email') {
                         $email .= ";" . $dom->getValue($obsCont, 'xTexto');
                     }
                 }
             }
             if (substr($email, 0, 1) == ';') {
                 $email = substr($email, 1, strlen($email) - 1);
             }
             $vICMS = $dom->getValue($icmsTot, 'vICMS');
             $totIcms += $vICMS;
             $valorFat = 0;
             if ($vICMS != 0 && $cStat == '100') {
                 $valorFat = $vNF;
             }
             $totFat += $valorFat;
             $pesoL = $dom->getValue($vol, 'pesoL');
             if ($pesoL != '') {
                 $totPeso += $pesoL;
             }
             $aResp[] = array('nNF' => $dom->getValue($ide, 'nNF'), 'serie' => $serie, 'data' => $data, 'nome' => $nome, 'natureza' => $dom->getValue($ide, 'natOp'), 'cStat' => $cStat, 'vNF' => $vNFtext, 'nProt' => $nProt, 'email' => $email);
         } catch (RuntimeException $e) {
             $aResp[] = array('nNF' => '000000', 'serie' => '000', 'data' => '000', 'nome' => 'FALHA', 'natureza' => "{$file}", 'cStat' => '', 'vNF' => 0, 'nProt' => '', 'email' => '');
         }
     }
     return array('totFat' => $totFat, 'totPeso' => $totPeso, 'totIcms' => $totIcms, 'aNF' => $aResp);
 }