Jump to content

jeaanca

Membros
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

6 Neutral

1 Follower

About jeaanca

  • Rank
    Novato

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Boa tarde, Vou atualizar os fontes e realizar os testes. Muito obrigado Italo
  2. Olá, Estou tentando adicionar no meu sistema a opção de envio NFSe de Substituição, porém ao executar o comando "SubstituirNFSe" do componente ACBrNFSe ocorre um erro na validação do XML. Se eu Utilizar no certificado digital na propriedade XMLSignLib: xsLibXml2 é retornado o seguinte erro: Falha ao interpretar o XML "xmlParseDoc" Caso eu utilize alguma das opções na propriedade XMLSignLib: xsXml, xsXmlCapicom ou xsXmlSec tenho como retorno o erro: Err: -1072896763, Lin: 1, Pos: 481 - A name contained an invalid character. Verifiquei no método TNFSeSubstituirNFSe.DefinirDadosMsg da unit ACBrNFSeWebServices, que o XML que é passado para como parâmetro para o metodo de validação(FNotasFiscais.ValidarLote), aparentemente não está coerente, e acredito que esse seja o motivo do erro, como podemos ver dentro da tag Rps: <SubstituirNfseEnvio xmlns="http://www.abrasf.org.br/nfse.xsd"> <SubstituicaoNfse Id="sub19836"> <Pedido> <InfPedidoCancelamento Id="pedidoCancelamento_010010010001131500019836"> <IdentificacaoNfse> <Numero>19836</Numero> <CpfCnpj> <Cnpj>01001001000113</Cnpj> </CpfCnpj> <InscricaoMunicipal>15000</InscricaoMunicipal> <CodigoMunicipio>3504800</CodigoMunicipio> </IdentificacaoNfse> <CodigoCancelamento>1</CodigoCancelamento> </InfPedidoCancelamento> </Pedido> <Rps> <InfDeclaracaoPrestacaoServico</Signature> </Rps> </SubstituicaoNfse> </SubstituirNfseEnvio> Os testes estou realizando para o servidor Fiorilli. Os arquivos Schemas e o código fonte estão atualizados, realizei os testes dentro do meu ERP e também nos exemplos disponibilizados pelo ACBr, ambos retornam os mesmos erros. Não sei se estou alimentando ou deixando de alimentar alguma propriedade especifica do componente, ou se é algum bug. Quem poder me ajudar, agradeço muito, pois tem alguns clientes com urgência disso.
  3. Segue em anexo a unit modificada. pcnLeitor.pas
  4. Olá pessoal, Eu realizei o download de um XML do SAT,/CF-e no site da receita, ao vincular esse documento no meu sistema percebi que o numero da versão não estava correto. O problema acontece pelo seguinte motivo, antes os XML's vinham com os atributos da tag nessa ordem versao, versaoSB, versaoDadosEnt, Id, exemplo: <infCFe versao="0.07" versaoSB="010200" versaoDadosEnt="0.07" Id="CFe00000000000000000000000000000000000000000000"> Já esse ultimo documento que fiz o download, veio com essa estrutura diferente, na ordem versaoSB, versaoDadosEnt, versao, Id, exemplo: <infCFe versaoSB="010200" versaoDadosEnt="0.07" versao="0.07" Id="CFe00000000000000000000000000000000000000000000"> Percebi que no método rAtributo da unit pcnLeitor,.pas é feito um pos nessa linha procurando pela palavra 'versao', para o primeiro exemplo mostrado funciona, mas para o segundo exemplo não funciona. (Ao invés de retornar o número "0.07" está retornando "010200"). Para corrigir esse problema realizei algumas alterações. Aqui está o método original sem alterações: function TLeitor.rAtributo(Atributo: string; Tag: String): variant; var ConteudoTag , Aspas : String; inicio , inicioTag , fim , iPos1 , iPos2 : Integer; begin Result := ''; Atributo := Trim(Atributo); Tag := Trim(Tag); inicioTag := pos(Tag, FGrupo); inicio := pos(Atributo, FGrupo); // se inicioTag > 0 significa que o parâmetro Tag foi informado. // se inicioTag > inicio significa que o atributo encontrado não é da Tag informada // logo devemos bustar a proxima ocorrecia a partir da posição da Tag. if (inicioTag > 0) and (inicioTag > inicio) then inicio := PosEx(Atributo, FGrupo, inicioTag); if inicio > 0 then begin inicio := inicio + Length(Atributo); ConteudoTag := trim(copy(FGrupo, inicio, maxInt)); iPos1 := Pos('"' , ConteudoTag); iPos2 := Pos('''', ConteudoTag); if iPos1 <> 0 then Aspas := '"'; if (iPos2 <> 0) and ((iPos1 = 0) or (iPos2 < iPos1)) then Aspas := ''''; inicio := pos(Aspas, ConteudoTag) + 1; if inicio > 0 then begin ConteudoTag := trim(copy(ConteudoTag, inicio, maxInt)); fim := pos(Aspas, ConteudoTag) - 1; if fim > 0 then begin ConteudoTag := copy(ConteudoTag, 1, fim); result := ReverterFiltroTextoXML(ConteudoTag) end end ; end ; end; E esse é o método com as alterações que eu fiz: function TLeitor.rAtributo(Atributo: string; Tag: String): variant; var ConteudoTag , Aspas : String; i , inicio , inicioTag , fim , iPos1 , iPos2 : Integer; const CharValiidacao: Array[0 .. 1] of String = (' ', '='); begin Result := ''; Atributo := Trim(Atributo); Tag := Trim(Tag); inicioTag := pos(Tag, FGrupo); for i := 0 to High(CharValiidacao) do begin inicio := pos(Atributo+CharValiidacao[i], FGrupo); if(inicio > 0)then Break; end; if(inicio = 0)then inicio := pos(Atributo, FGrupo); // se inicioTag > 0 significa que o parâmetro Tag foi informado. // se inicioTag > inicio significa que o atributo encontrado não é da Tag informada // logo devemos bustar a proxima ocorrecia a partir da posição da Tag. if (inicioTag > 0) and (inicioTag > inicio) then inicio := PosEx(Atributo, FGrupo, inicioTag); if inicio > 0 then begin inicio := inicio + Length(Atributo); ConteudoTag := trim(copy(FGrupo, inicio, maxInt)); iPos1 := Pos('"' , ConteudoTag); iPos2 := Pos('''', ConteudoTag); if iPos1 <> 0 then Aspas := '"'; if (iPos2 <> 0) and ((iPos1 = 0) or (iPos2 < iPos1)) then Aspas := ''''; inicio := pos(Aspas, ConteudoTag) + 1; if inicio > 0 then begin ConteudoTag := trim(copy(ConteudoTag, inicio, maxInt)); fim := pos(Aspas, ConteudoTag) - 1; if fim > 0 then begin ConteudoTag := copy(ConteudoTag, 1, fim); result := ReverterFiltroTextoXML(ConteudoTag) end end ; end ; end; Não sei se essa é a melhor forma de corrigir tratar essa situação descrita.
  5. Sim, eu coloquei o ponto e virgula, mas a quebra de página não é feita. (Os caracteres ultrapassam o tamanho do RLBand)
  6. Na impressão da DAMDFe, no campo observação a descrição utilizada ultrapassa o tamanho padrão determinado para esse conteúdo, e as informações não são exibidas por completo. Quando eu habilito a quebra de página do componente utilizando a propriedade Pagebreaking, é feita a quebra de página, porém o RLBand continua com o mesmo tamanho e na parte inferior da impressão. O nome da unit é ACBrMDFeDAMDFeRLRetrato e o RLBand de observação é o rlb_6_Observacao, o tipo do RLBand(BandType) está setado como btFooter. Verifiquei os parâmetros passados para impressão e não encontrei nada do tipo, para não realizar alterações desnecessárias na unit ACBrMDFeDAMDFeRLRetrato, resolvi fazer esse post.
  7. Eu atualizei meu arquivo .ini, de acordo com os links do site SPED MG: http://www.sped.fazenda.mg.gov.br/spedmg/nfe/webservices/ . Mas ainda não consegui realizar a consulta do cadastro para o estado de MG. Quando tentava realizar a consulta, antes de atualizar o arquivo .ini, eu tive o seguinte retorno: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Body> <soap:Fault> <soap:Code> <soap:Value>soap:Sender</soap:Value> </soap:Code> <soap:Reason> <soap:Text xml:lang="en"> Message part { http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro4}nfeDadosMsg was not recognized. (Does it exist in service WSDL?) </soap:Text> </soap:Reason> </soap:Fault> </soap:Body> </soap:Envelope> Após atualizar o arquivo .ini, adicionando as seguintes URL's: [NFe_MG_H] NFeStatusServico_4.00=https://hnfe.fazenda.mg.gov.br/nfe2/services/NFeStatusServico4 [NFe_MS_P] NfeConsultaCadastro_4.00=https://nfe.fazenda.mg.gov.br/nfe2/services/CadConsultaCadastro4 Também não foi possível realizar a consulta, e tive o seguinte retorno: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> <soap:Body> <soap:Fault> <soap:Code> <soap:Value>soap:Receiver</soap:Value> </soap:Code> <soap:Reason> <soap:Text xml:lang="en">Fault occurred while processing.</soap:Text> </soap:Reason> </soap:Fault> </soap:Body> </soap:Envelope> Eu estou usando a versão 4.0. Para os outros estados a consulta funciona normalmente como por exemplo o estado de SP.
  8. Olá pessoal, Eu estou tentando consultar o cadastro de um cliente do estado de MT, por CNPJ e estou tendo o seguinte retorno: <?xml version='1.0' encoding='utf-8'?> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Body> <nfeResultMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/CadConsultaCadastro4"> <consultaCadastroResult> <retConsCad xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> <infCons> <verAplic>MT_A2RL-4.00</verAplic> <cStat>999</cStat> <xMotivo>Rejeicao: Erro nao catalogado</xMotivo> <UF>MT</UF> <dhCons>2018-08-03T08:28:43</dhCons> <cUF>51</cUF> </infCons> </retConsCad> </consultaCadastroResult> </nfeResultMsg> </soapenv:Body> </soapenv:Envelope> As URL de Homologação e Produção referente a este estado (MT) do meu Arquivo NFE.ini está da seguinte forma: [NFe_MT_P] NfeConsultaCadastro_4.00=https://nfe.sefaz.mt.gov.br/nfews/v2/services/CadConsultaCadastro4?wsdl [NFe_MT_H] NfeConsultaCadastro_4.00=https://homologacao.sefaz.mt.gov.br/nfews/v2/services/CadConsultaCadastro4
×
×
  • Create New...