protected function pGeraInformacoesDasNotasReferenciadas()
{
$formaNfeRef = "\r\nNFe Ref.: série:%d número:%d emit:%s em %s [%s]";
$formaCTeRef = "\r\nCTe Ref.: série:%d número:%d emit:%s em %s [%s]";
$formaNfRef = "\r\nNF Ref.: série:%d numero:%d emit:%s em %s modelo: %d";
$formaECFRef = "\r\nECF Ref.: modelo: %s ECF:%d COO:%d";
$formaNfpRef = "\r\nNFP Ref.: série:%d número:%d emit:%s em %s modelo: %d IE:%s";
$saida = '';
$nfRefs = $this->ide->getElementsByTagName('NFref');
if (0 === $nfRefs->length) {
return $saida;
}
foreach ($nfRefs as $nfRef) {
if (empty($nfRef)) {
continue;
}
$refNFe = $nfRef->getElementsByTagName('refNFe');
foreach ($refNFe as $chave_acessoRef) {
$chave_acesso = $chave_acessoRef->nodeValue;
$chave_acessoF = $this->pFormat($chave_acesso, $this->formatoChave);
$data = substr($chave_acesso, 4, 2) . "/20" . substr($chave_acesso, 2, 2);
$cnpj = $this->pFormat(substr($chave_acesso, 6, 14), "##.###.###/####-##");
$serie = substr($chave_acesso, 22, 3);
$numero = substr($chave_acesso, 25, 9);
$saida .= sprintf($formaNfeRef, $serie, $numero, $cnpj, $data, $chave_acessoF);
}
$refNF = $nfRef->getElementsByTagName('refNF');
foreach ($refNF as $umaRefNFe) {
$data = $umaRefNFe->getElementsByTagName('AAMM')->item(0)->nodeValue;
$cnpj = $umaRefNFe->getElementsByTagName('CNPJ')->item(0)->nodeValue;
$mod = $umaRefNFe->getElementsByTagName('mod')->item(0)->nodeValue;
$serie = $umaRefNFe->getElementsByTagName('serie')->item(0)->nodeValue;
$numero = $umaRefNFe->getElementsByTagName('nNF')->item(0)->nodeValue;
$data = substr($data, 2, 2) . "/20" . substr($data, 0, 2);
$cnpj = $this->pFormat($cnpj, "##.###.###/####-##");
$saida .= sprintf($formaNfRef, $serie, $numero, $cnpj, $data, $mod);
}
$refCTe = $nfRef->getElementsByTagName('refCTe');
foreach ($refCTe as $chave_acessoRef) {
$chave_acesso = $chave_acessoRef->nodeValue;
$chave_acessoF = $this->pFormat($chave_acesso, $this->formatoChave);
$data = substr($chave_acesso, 4, 2) . "/20" . substr($chave_acesso, 2, 2);
$cnpj = $this->pFormat(substr($chave_acesso, 6, 14), "##.###.###/####-##");
$serie = substr($chave_acesso, 22, 3);
$numero = substr($chave_acesso, 25, 9);
$saida .= sprintf($formaCTeRef, $serie, $numero, $cnpj, $data, $chave_acessoF);
}
$refECF = $nfRef->getElementsByTagName('refECF');
foreach ($refECF as $umaRefNFe) {
$mod = $umaRefNFe->getElementsByTagName('mod')->item(0)->nodeValue;
$nECF = $umaRefNFe->getElementsByTagName('nECF')->item(0)->nodeValue;
$nCOO = $umaRefNFe->getElementsByTagName('nCOO')->item(0)->nodeValue;
$saida .= sprintf($formaECFRef, $mod, $nECF, $nCOO);
}
$refNFP = $nfRef->getElementsByTagName('refNFP');
foreach ($refNFP as $umaRefNFe) {
$data = $umaRefNFe->getElementsByTagName('AAMM')->item(0)->nodeValue;
$cnpj = !empty($umaRefNFe->getElementsByTagName('CNPJ')->item(0)->nodeValue) ? $umaRefNFe->getElementsByTagName('CNPJ')->item(0)->nodeValue : '';
$cpf = !empty($umaRefNFe->getElementsByTagName('CPF')->item(0)->nodeValue) ? $umaRefNFe->getElementsByTagName('CPF')->item(0)->nodeValue : '';
$mod = $umaRefNFe->getElementsByTagName('mod')->item(0)->nodeValue;
$serie = $umaRefNFe->getElementsByTagName('serie')->item(0)->nodeValue;
$numero = $umaRefNFe->getElementsByTagName('nNF')->item(0)->nodeValue;
$ie = $umaRefNFe->getElementsByTagName('IE')->item(0)->nodeValue;
$data = substr($data, 2, 2) . "/20" . substr($data, 0, 2);
if ($cnpj == '') {
$cpf_cnpj = $this->pFormat($cpf, "###.###.###-##");
} else {
$cpf_cnpj = $this->pFormat($cnpj, "##.###.###/####-##");
}
$saida .= sprintf($formaNfpRef, $serie, $numero, $cpf_cnpj, $data, $mod, $ie);
}
}
return $saida;
}