Ir para conteúdo
  • Cadastre-se

datilas

Membros
  • Total de ítens

    521
  • Registro em

  • Última visita

  • Days Won

    2

Posts postados por datilas

  1. 23 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia,

    Coloquei a linha na unit do GTIN, pois na unit Base pode gerar um efeito colateral nos outros componentes.

    Favor atualizar os fontes, reinstale o ACBr e faça novos testes. 

    acabei de baixar a revisão: 26068

    e não esta aqui ainda.

    revisão: 26066
    07/07/2022
    -- ISSPortoVelho.Provider/ACBrNFSeXConversao --
    [*] Implementado as funções de conversão do Regime Especial de Tributação e
        os novos valores: retMovimentoMensal, retISSQNAutonomos e retISSQNSociedade.
       Por: Italo Giurizzato Junior
    
    revisão: 26067
    07/07/2022
    -- ACBrPagForConfiguracoes --
    [*] Correção: estava com vazamento de memória.
       Por: Renato Pavan   
    
    revisão: 26068
    07/07/2022
    [*] Atualização do pacote do componente ACBrNF3e para o Lazarus.
    Por: Italo Giurizzato Junior   

     

  2. 3 minutos atrás, Italo Giurizzato Junior disse:

    Boa tarde,

    No que se refere a data no formato: 2022-06-27-03:00

    Me recordo de ter feita uma alteração visando contornar esse problema.

    Favor fazer uma cópia das units que você alterou, dele as units alteradas e atualize novamente todos os fontes de todas as pastas, reinstale o ACBr e faça novos testes.

    não funcionou,

    eu fiz essa alteração com base na revisão 26055 que saiu hoje e não estava funcionando.

    eu faço meus teste em uma vm limpa e sempre restauro ao ponto inicial para não haver conflitos

    e antes de atualizar o acbr eu sempre executo um svn clean e marco todas as opções do menu.

    só quando todas as patas estão com o ícone verde eu clico no update

  3. eu não recomendo "fazer um limpa" e sim marcar se o gtin existe no gs1,

    pois na minha opinião sera quase impossivel trabalhar com uma taxa de rejeição tão grande

    primeiro deveria existir alguma lei que obriga as marcas o divulgar ou autorizar (e atualizar os dados existentes)

    pois dessa forma pra quem lado de ca vai ficar dificil trabalhar e explicar para os clientes "que o produto não existe ou não esta atualizado na gs1"

  4. eu acho que a sefaz vai ter problema para implementar a validação de GTIN no gs1

    pois das 95.558 consultas que fiz o resumo é esse

    CSTAT=QUANTIDADE
    9494=40432
    9490=34144
    9496=10451
    9497=7704
    9495=1034
    9498=970

    tem muitos produtos sem autorização da marca,

    muitos que existem nos mercados (em nivel nacional) e retorna como inexistente

    assim vai ficar difícil para sefaz controlar se o gtin existe de fato ou não

  5. 4 minutos atrás, Gabriel Rogelin disse:

    Olá @datilas

    O erro aconteceu na linha Document.LoadFromXml(XmlRetorno);

    Verifiquei seu tópico, vamos aguardar. Obrigado

    qual o erro aparece pra vc?

    ta usando delphi ou lazarus?

    windows ou linux?

  6. 1 minuto atrás, Juliana Tamizou disse:

    Bom dia,

    Seus fontes não tem nenhum conflito?

    At.

    não tem, eu nem instalo o acbr eu apenas aponto os path's e crio em tempo de execução.

    eu fiz um teste aqui na unit ACBrXmlBase

    criei mais em enumerator de TACBrTipoCampo  = (..., tcDatIso8601)

    e uso assim:

    result := Iso8601ToDateTime(ConteudoTag)

    assim funciona perfeito delphi,lazarus-windows,linux

    gostaria de saber se posso enviar essa unit para analize pois não vai interferir em outros componentes do acbr

  7. 47 minutos atrás, Italo Giurizzato Junior disse:

    Boa tarde,

    Favor atualizar novamente os fontes, reinstale o ACBr e faça novos testes.

    Acredito que agora ele vai ler corretamente a data.

    o problema ainda persiste.

    o que causa o problema é o time zone -03:00

    quando faz o replace

    fica /03:00 é isso que esta causando o problema

    original 2022-06-17T16:50:16-03:00

    replace: 2022/06/17T16:50:16/03:00

    erro: "16:56:30/03:00" is not a valid time

     

     

  8. 10 horas atrás, jrsoares disse:

    Boa noite,

         Estou com o mesmo problema, preciso fazer um get passando um parametro em json como filtro. No postman funciona, mas no delphi não consigo encontrar uma solução. Alguem tem uma dica?

    image.thumb.png.6c7af781884399a882c73569bc8af7a9.png

     

    Codigo em C# e em outras linguens tem, mas em delphi não. Alguem consegui me ajudar?

     

    image.thumb.png.9e362f8b2a1ece6706adc2be1a781699.png

     

    use a classe ACBrHTTP que da certo.

  9. 1 hora atrás, Everson Clei disse:

    Olá Pessoal,

    Montei uma api Horse windows com o novo ACBrNFSeX e está emitindo normal.

    Gerei pra linux apache module, porem ocorre erro ao tentar emitir: "XmlNode não pode ser nulo".  

    No fórum encontrei casos que era falta das dlls, mas no windows uso as dlls na mesma pasta do .exe.

    Configs:
    SSLLib := libOpenSSL
    SSLCryptLib := cryOpenSSL
    SSLHttpLib := httpOpenSSL
    SSLXmlSignLib := xsLibXml2
    SSLType := LT_TLSv1_2
    Certificados.DadosPFX

    Gostaria de saber se as dependências dlls tem suporte pra rodar em linux .so ou só são mesmo pra windows?

    Obrigado a todos

    qual linux vc ta usando?

    instalou o libxml2?

    fedora (centos,redhat,...) yum install libxml2-devel
    debian (ubuntu,mint,...) apt-get install libxml2-utils

    veja esse link?

    https://www.projetoacbr.com.br/forum/topic/64818-cross-compiler-win32-linux-x86_x64-com-acbrnfe/?do=findComment&comment=423564&_rid=1218

  10. 12 minutos atrás, Fabio.Maioli disse:

    Boa Tarde!

    Primeiro gostaria de parabenizar a todos pela ajuda que tive ao ler o fórum e encontrar várias informações.

    Estou utilizando os arquivos Xml enviados pelo Datilas no Postman para efetuar testes iniciais de consulta GTIN por webservice. Não sei se vocês já se depararam com essa situação mas utilizando um leiaute de xml ocorre erro de rejeição 588 -

    <xMotivo>Rejeicao: Nao eh permitida a presenca de caracteres de edicao no inicio/fim da mensagem ou entre as tags da mensagem</xMotivo>
     
    <?xml version="1.0" encoding="UTF-8"?>
    <soap12:Envelope xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <soap12:Body>
          <ccgConsGTIN xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/ccgConsGtin">
             <nfeDadosMsg>
                <consGTIN xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00">
                   <GTIN>7896380103188</GTIN>
                </consGTIN>
             </nfeDadosMsg>
          </ccgConsGTIN>
       </soap12:Body>
    </soap12:Envelope>
     
    E se informo o leiaute todo sem espaços, a resposta é positiva. É isso mesmo? Obrigado a Todos.
    <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ccgConsGTIN xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/ccgConsGtin"><nfeDadosMsg><consGTIN xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"><GTIN>7896380103188</GTIN></consGTIN></nfeDadosMsg></ccgConsGTIN></soap:Body></soap:Envelope>
     
    Obrigado a Todos.
     
     
     

    vc tentou usar o demo do ACBr? pois é ele que gera o xml faz o envio e pega o retorno. como vc esta usando?

  11. na unit ACBrXmlBase.pas

    function ObterConteudoTag(const ANode: TACBrXmlNode; const Tipo: TACBrTipoCampo): variant;

    alterar 
    result := (ConteudoTag;
    para
    result := ACBrStrToAnsi(ConteudoTag);

    e

    result := EncodeDataHora(ConteudoTag, 'YYYY/MM/DD')
    para

    result := Iso8601ToDateTime(ConteudoTag)

    resolve a data e os acentos.

    function ObterConteudoTag(const ANode: TACBrXmlNode; const Tipo: TACBrTipoCampo): variant;
    var
      ConteudoTag: string;
      iDecimais: Integer;
      aFloatIsIntString: Boolean;
    begin
      if not Assigned(ANode) or (ANode = nil) then
      begin
        ConteudoTag := '';
        aFloatIsIntString := False;
      end
      else
      begin
        ConteudoTag := Trim(ANode.Content);
        aFloatIsIntString := ANode.FloatIsIntString;
      end;
    
      case Tipo of
        tcStr,
        tcEsp:
          result := ACBrStrToAnsi(ConteudoTag);
    
        tcDat,
        tcDatHor,
        tcDatCFe,
        tcDatHorCFe:
          begin
            if length(ConteudoTag) > 0 then
              result := Iso8601ToDateTime(ConteudoTag)
            else
              result := 0;
          end;
    
        tcDatVcto:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeDataHora(ConteudoTag, 'DD/MM/YYYY')
            else
              result := 0;
          end;
    
        tcDatUSA:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeDataHora(ConteudoTag, 'MM/DD/YYYY')
            else
              result := 0;
          end;
    
        tcHor:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeTime(StrToInt(copy(ConteudoTag, 1, 2)),
                                   StrToInt(copy(ConteudoTag, 4, 2)),
                                   StrToInt(copy(ConteudoTag, 7, 2)), 0)
            else
              result := 0;
          end;
    
        tcHorCFe:
          begin
            if length(ConteudoTag) > 0 then
              result := EncodeTime(StrToInt(copy(ConteudoTag, 1, 2)),
                                   StrToInt(copy(ConteudoTag, 3, 2)),
                                   StrToInt(copy(ConteudoTag, 5, 2)), 0)
            else
              result := 0;
          end;
    
        tcDe2, tcDe3, tcDe4, tcDe5, tcDe6, tcDe7, tcDe8, tcDe10:
          begin
            if aFloatIsIntString then
            begin
              case Tipo of
                tcDe2:  iDecimais := 2;
                tcDe3:  iDecimais := 3;
                tcDe4:  iDecimais := 4;
                tcDe5:  iDecimais := 5;
                tcDe6:  iDecimais := 6;
                tcDe7:  iDecimais := 7;
                tcDe8:  iDecimais := 8;
                tcDe10: iDecimais := 10;
              else
                iDecimais := 2;
              end;
    
              Result := StringDecimalToFloat(ConteudoTag, iDecimais);
            end
            else
              Result := StringToFloatDef(ConteudoTag, 0);
          end;
    
        tcInt:
          begin
            if length(ConteudoTag) > 0 then
              result := StrToIntDef(OnlyNumber(ConteudoTag), 0)
            else
              result := 0;
          end;
    
        tcInt64:
          begin
            if length(ConteudoTag) > 0 then
              result := StrToInt64Def(OnlyNumber(ConteudoTag), 0)
            else
              result := 0;
          end;
    
        tcBool:
          begin
            if length(ConteudoTag) > 0 then
            begin
              ConteudoTag := NormatizarBoolean(ConteudoTag);
              result := StrToBool(ConteudoTag);
            end
            else
              result := False;
          end;
    
        tcStrOrig:
          begin
            // Falta implementar
            Result := '';
          end;
    
        tcNumStr:
          begin
            // Falta implementar
            Result := '';
          end
    
      else
        raise Exception.Create('Node <' + ANode.Name + '> com conteúdo inválido. ' +
                               ConteudoTag);
      end;
    end;

     

    7895511301093.txt 7896380103188.txt

  12. 36 minutos atrás, datilas disse:

    quanto a data ficou ok,

    segue os arquivos (os ".txt" é o result que vem do componente coloquei em uma stringlist e depois fiz um savetofile)

            sl.Values['GTIN'] := aGTIN;
            sl.Values['tpGTIN'] := ACBrGTIN.WebServices.Consulta.tpGTIN.ToString;
            sl.Values['xProd'] := ACBrGTIN.WebServices.Consulta.xProd;
            sl.Values['NCM'] := ACBrGTIN.WebServices.Consulta.NCM;
            sl.Values['CEST'] := ACBrGTIN.WebServices.Consulta.CEST;
            sl.Values['dhResp'] := DateTimeToStr(ACBrGTIN.WebServices.Consulta.dhResp);
            sl.Values['cStat'] := ACBrGTIN.WebServices.Consulta.cStat.ToString;
            sl.Values['xMotivo'] := ACBrGTIN.WebServices.Consulta.xMotivo;

    gtin-soap.zip 3 kB · 0 downloads

    tem que remover o try except do TRetConsultarGTIN.LerXml; na unit ACBrGTINRetConsultar.pas

    pois ele esta suprimindo erros.

    eu me enganei quanto as datas pois ainda esta dando erro: "11:26:30/03:00" is not a valid time

    mas eu não vi por causa do try except

     

    se usar Iso8601ToDateTime a data funciona.7895511301093.txt7896380103188.txt

  13. 30 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Datilas,

    Favor atualizar os fontes, enviei para o SVN uma possível solução no que se refere a leitura correta da data.

    Quando aos retornos de caracteres especiais, você poderia configurar o componente para salvar os (soap) e anexar os XML (soap) de retorno dessas consultas?

    quanto a data ficou ok,

    segue os arquivos (os ".txt" é o result que vem do componente coloquei em uma stringlist e depois fiz um savetofile)

            sl.Values['GTIN'] := aGTIN;
            sl.Values['tpGTIN'] := ACBrGTIN.WebServices.Consulta.tpGTIN.ToString;
            sl.Values['xProd'] := ACBrGTIN.WebServices.Consulta.xProd;
            sl.Values['NCM'] := ACBrGTIN.WebServices.Consulta.NCM;
            sl.Values['CEST'] := ACBrGTIN.WebServices.Consulta.CEST;
            sl.Values['dhResp'] := DateTimeToStr(ACBrGTIN.WebServices.Consulta.dhResp);
            sl.Values['cStat'] := ACBrGTIN.WebServices.Consulta.cStat.ToString;
            sl.Values['xMotivo'] := ACBrGTIN.WebServices.Consulta.xMotivo;

    gtin-soap.zip

  14. Agora, datilas disse:

    No Delphi windows tá tudo ok, no Lazarus linux está vindo caracteres especiais inválidos, os produtos que não tem caracteres especiais estão vindo normal, testei 29000 produtos.

    vc pode testar os gtins :

    7896380103188 com xProd invalido

    e

    7895511301093 com xMotivo invalido

    isso no lazarus linux

    no delphi esta tudo ok.

     

  15. 11 minutos atrás, Italo Giurizzato Junior disse:

    Boa tarde,

    Já inclui na minha lista de tarefas para analisar essa questão. TK-2808

    No Delphi windows tá tudo ok, no Lazarus linux está vindo caracteres especiais inválidos, os produtos que não tem caracteres especiais estão vindo normal, testei 29000 produtos.

  16. 10 horas atrás, Juliomar Marchetti disse:

    Hum estranho eu to aqui com o pacote do ACBrGTIN para Lazarus. não subi ainda.

    como tu conseguiu instalar ele?

    eu não instalei ele apenas coloquei as pastas no path e crio o componente em tempo de execução.

    depois das alterações que fiz esta funcionando perfeitamente.

  17. estou testando o componente ACBrGTIN

    só pra deixar claro no delphi funciona muito bem.

    meu problema esta em usar com lazarus linux

    vou descrever aki como fiz para funcionar.

    não vou adicionar as units modificadas pois não sei se vai gerar problema em outros componentes.

    vou listar o que fiz para funcionar.

    unit ACBrGTINWebServices Linha  169 adicinar uses pcnConsts

    unit ACBrGTINRetConsultar linha 88
    function TRetConsultarGTIN.LerXml: boolean;
    remover o 

    Try 
    ...
    Except
     Result := False;
    End;

    pois esta suprimindo erros como falta do libxml2 e conversão de data
    então as propertys sempre ficam vazias quando acontece algum Except

    no xml a data vem nesse formato 2022-06-17T16:50:16-03:00

    então na unit ACBrXmlBase na linha 275
    era assim
    result := EncodeDataHora(ConteudoTag, 'YYYY/MM/DD')
    eu alterei para 
    result := Iso8601ToDateTime(ConteudoTag)

    pois na unit
    ACBrUtil.DateTime na function EncodeDataHora

    ele esta convertendo todos os "-" por "/"
    xData := Trim(StringReplace(DataStr, '-', '/', [rfReplaceAll]));
    o que faz isso 
    2022-06-17T16:50:16-03:00 
    virar isso
    2022/06/17T16:50:16/03:00

    e gera esse Except: "16:50:16/03:00" is not a valid time

    por isso alterei para Iso8601ToDateTime que funciona perfeitamente.
     

×
×
  • 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...