Pesquisar na Comunidade
Showing results for tags 'Tiplan'.
Encontrado 4 registros
-
Estou tentando fazer uma requisição simples de consultar uma nota de serviço da prefeitura de niterói, mas tenho tomado o seguinte erro <Codigo>E186</Codigo> <Mensagem>Requisição de serviço inválida. O sistema não conseguiu capturar o parâmetro nfseCabecMsg e/ou nfseDadosMsg.</Mensagem> <Correcao>Verifique sua mensagem SOAP e a passagem desses parâmetros necessários. Não conseguiu obter a mensagem XML do cabeçalho ou dos dados. Verifique a passagem desses parâmetros pela mensagem SOAP.</Correcao> Segue o exemplo do xml enviado. nfse_niteroi.xml
-
Boa Tarde, consegui fazer o envio da NFSe normalmente e também consegui pegar os retornos fazendo um consulta, porem quando eu cancelo uma nota eu consulto ela assim como faço com o envio e armazeno os retornos necessários no sistema, porem as propriedades de retorno que estou tentando usar não vem preenchidas. Como eu deveria fazer para obter esses retornos? Estou disponibilizando abaixo a forma que estou fazendo, fico no aguardo de uma resposta. with NFSE.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe do begin retProtCanc := CompNFSe.Items[I].NFSe.NFSeCancelamento.Pedido.InfID.ID; retMotivo := CompNFSe.Items[I].NFSe.MotivoCancelamento; retDhRecCanc := DateToANSI(NFSE.NotasFiscais.Items[0].NFSe.NFSeCancelamento.DataHora); end; Att, Marcos Duca Essystem
-
Ao usar a ConsultaNFSePorRPS usando o provedor Tiplan tive algumas dificuldades para obter o retorno, mesmo passando os parâmetros corretamente a função não retornava os valores nas propriedades. Fiz algumas analises e descobri que no fonte pcnLeitor tem a função "TLeitor.rExtrai" que dentro dela é passada em uma variável FArquivo com o XML em string, porém o XML vem com string '$lt;' que equivale a '<', mas no código a comparação é feita com '<' e assim ele não traz o retorno para as propriedades do componente, pois ele não encontra o sinal de menor '<'. O mesmo acontece para o sinal de maior '>' que equivale a string '$gt;' na variável de retorno. Fiz uma logica usando StringReplace para sanar o problema paliativamente. Se houver algum tipo de correção quanto a isso estarei no aguardo. Disponibilizarei a função alterada abaixo. OBS: Estou usando a cidade de Americana e também estou com os fontes atualizados. function TLeitor.rExtrai(const nivel: integer; const TagInicio: string; TagFim: string = ''; const item: integer = 1): AnsiString; var Texto: AnsiString; i,j: integer; begin //NOTA: Extrai um grupo de dentro do nivel informado FArquivo := StringReplace(FArquivo,'<','<',[rfReplaceAll]); FArquivo := StringReplace(FArquivo,'>','>',[rfReplaceAll]); FNivel.strings[0] := FArquivo; if Trim(TagFim) = '' then TagFim := TagInicio; Texto := FNivel.Strings[nivel - 1]; Result := ''; FGrupo := ''; for i := 1 to item do if i < item then Texto := copy(Texto, pos('</' + Trim(TagFim) + '>', Texto) + length(Trim(TagFim)) + 3, maxInt); j := pos('</' + Trim(TagFim) + '>', Texto); if j = 0 then j := pos('</' + Trim(TagFim) + ':', Texto); // Correção para WebServices do Ceará/MG //Correção para leitura de tags em que a primeira é diferente da segunda Ex: <infProt id=XXX> e a segunda apenas <infProt> // Texto := copy(Texto, 1, pos('</' + Trim(TagFim) + '>', Texto) + length(Trim(TagFim)) + 3); Texto := copy(Texto, 1, j + length(Trim(TagFim)) + 3); i := pos('<' + Trim(TagInicio) + '>', Texto); if i = 0 then i := pos('<' + Trim(TagInicio) + ' ', Texto); if i = 0 then i := pos('<' + Trim(TagInicio) + ':', Texto); //correção para webservice do Ceará if i = 0 then exit; Texto := copy(Texto, i, maxInt); // Alterado por Claudemir em 13/03/2013: j:=pos('</' + Trim(TagFim) + '>',Texto); // j:=pos('</' + Trim(TagFim) + '>', Texto) + length(Trim(TagFim)) + 3; j:=pos('</' + Trim(TagFim) + '>', Texto); if j=0 then j:=pos('</' + Trim(TagFim) + ':', Texto); //correção para webservice do Ceará // Result := TrimRight(copy(Texto, 1, j - 1)); Result := TrimRight(copy(Texto, 1, j - 1 + (length(Trim(TagFim)) + 3))); FNivel.strings[nivel] := Result; FGrupo := result; end; Att, Marcos Duca Essystem
-
Bom dia. Implementando a NFSe de Duque de Caxias notei que ao realizar a consulta de situação do lote para o provedor Tiplan, o componente não está carregando quais os erros ou alertas para o lote. Portanto, alterei o fonte pnfsConsSitLoteRpsResposta.pas nas linhas 190 e 191 para carregar os erros e alertas contidos na tag "EnviarLoteRpsResposta". (leitor.rExtrai(1, 'ConsultarSituacaoLoteRpsResult') <> '') or (leitor.rExtrai(1, 'EnviarLoteRpsResposta') <> '') then Segue o fonte em anexo. Roger Rodrigues pnfsConsSitLoteRpsResposta.pas