Bom dia a todos !
Ao implantar a NFSe em um cliente de uma cidade que utiliza o provedor Bauhaus me deparei com essa situação: Na prefeitura o CNPJ do emissor necessita estar em ambiente de produção quando utiliza o webservice mesmo já tendo emitido NFSe em produção pelo site da prefeitura.
O problema é que esse retorno não é vem tratado como um erro, retornando o numero da NFSe que a cada tentativa de envio se incrementa mas não retorna o link de consulta. Se consultar no site ela não existe.
O retorno da API é:
{"DadosNfse":{"Numero":11,"Competencia":202303,"DataEmissao":"2023-03-02","Mensagem":"ATENÇÃO! AMBIENTE DE TESTE PARA VALIDAÇÃO DE INTEGRAÇÃO."}}
Fiz uma alteração na procedure TratarRetornoEmitir no Bauhaus.Provider.pas para tratar essa situação e gerar um erro no retorno do componente. Como não gera um erro não achei uma outra maneira de tratar isso. Foi incluído a parte em azul do código abaixo
if Assigned(jNfse) then
begin
with Response do
begin
NumeroNota := jNfse.AsString['Numero'];
if AnsiPos('AMBIENTE DE TESTE', jNfse.asstring['Mensagem'] ) > 0 then
begin
Sucesso := false;
NumeroNota := '';
AErro := Response.Erros.New;
AErro.Codigo := Cod999;
AErro.Descricao := ACBrStr(jNfse.asstring['Mensagem']);
AErro.Correcao := 'ENTRAR EM CONTATO COM A PREFEITURA PARA PEDIR A MUDANÇA PARA AMBIENTE EM PRODUÇÃO DO CNPJ DO EMISSOR';
end;
end;
end;
Um abraço e bom trabalho
Att
Adriano
Bauhaus.Provider.pas