Estou tentando fazer a transmissão em EPEC para cliente exterior, para este caso foi criada a tag <idEstrangeiro> não sendo obrigatório o preenchimento do campo.
Porém, quando eu tento transmitir uma nota em EPEC com <idEstrangeiro> vazio o XML é gerado sem TAG de identificação do destinatário.
Pelo o que eu vi na geração do XML e feita a seguinte validação:
if Evento.Items[i].InfEvento.detEvento.dest.idEstrangeiro = '' then
begin
sDoc := SomenteNumeros( Evento.Items[i].InfEvento.detEvento.dest.CNPJCPF );
case Length( sDoc ) of
14 : begin
Gerador.wCampo(tcStr, 'P28', 'CNPJ', 014, 014, 1, sDoc , DSC_CNPJ);
if not ValidarCNPJ( sDoc ) then Gerador.wAlerta('P28', 'CNPJ', DSC_CNPJ, ERR_MSG_INVALIDO);
end;
11 : begin
Gerador.wCampo(tcStr, 'P29', 'CPF', 011, 011, 1, sDoc, DSC_CPF);
if not ValidarCPF( sDoc ) then Gerador.wAlerta('P29', 'CPF', DSC_CPF, ERR_MSG_INVALIDO);
end;
end;
end
else
begin
Gerador.wCampo(tcStr, 'P30', 'idEstrangeiro', 05, 20, 1, Evento.Items[i].InfEvento.detEvento.dest.idEstrangeiro);
end;
Portanto no meu caso a UF é 'EX' e não tem idEstrangeiro, conforme código acima quando não tem valor para idEstrangeiro e enviado o CPF/CNPJ como este campo também esta vazio ele não envia nenhuma tag (<CNPJ>, <CPF>, <idEstrangeiro>)
Acredito que o correto seria validar a UF ao invés do idEstrangeiro