Ir para conteúdo
  • Cadastre-se

jeaanca

Membros
  • Total de ítens

    32
  • Registro em

  • Última visita

Tudo que jeaanca postou

  1. Segue em anexo a unit modificada. pcnLeitor.pas
  2. 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.
  3. Sim, eu coloquei o ponto e virgula, mas a quebra de página não é feita. (Os caracteres ultrapassam o tamanho do RLBand)
  4. 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.
  5. 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.
  6. 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
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...