-
Total de ítens
32 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que jeaanca postou
-
Mt obrigado Daniel ..
-
Segue em anexo a unit modificada. pcnLeitor.pas
-
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.
-
Sim, eu coloquei o ponto e virgula, mas a quebra de página não é feita. (Os caracteres ultrapassam o tamanho do RLBand)
-
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.
-
Consulta Cadastro não funciona em MG versão 4.0
jeaanca replied to Joabe Geraldo's tópico in ACBrNFe
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. -
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
- 4 replies
-
- erro
- status 999
- (e 1 mais)