-
Total de ítens
566 -
Registro em
-
Última visita
-
Days Won
2
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que datilas postou
-
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"
-
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
-
nesse gtin 7898953823950 Descrição: FRALDA - UNICHARM - MAMYPOKO FRALDA-CALÇA DIA&NOITE G - REGULAR PACK (16P) a descrição do produto tem o caracter "&" e esta gerando o erro : EntityRef: expecting ';'
-
as dlls do libxml2 estão atualizadas e na mesma pasta do seu exe (libxml2,libxmlsec...) isso também esta naquele link que te passei
-
qual o erro aparece pra vc? ta usando delphi ou lazarus? windows ou linux?
-
esse problema acontece por causa da conversão de data: da uma olhada aki: https://www.projetoacbr.com.br/forum/topic/67825-acbrgtin-lazarus-linux-centos/ na unit ACBrGTINRetConsultar na function TRetConsultarGTIN.LerXml: boolean; comenta o try except que vc vai ver o erro: o try except esta suprimindo o erro.
-
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
-
@gilspider baixei a revisão: 25995 29/06/2022 -- ACBrUtil.DateTime -- [*] Possível correção para datas que estejam no formato: "2022-06-27-03:00". Por: Gil Spider mas o problema ainda persiste.
-
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
-
delphi7 + delphi-rest-client-api
datilas replied to chico_lopes's tópico in Object Pascal - Delphi & Lazarus
use a classe ACBrHTTP que da certo. -
o campo <cProdANVISA> é o campo GERISTRO no .xls da uma olhada aki: https://www.gov.br/anvisa/pt-br/assuntos/medicamentos/cmed/precos
- 1 reply
-
- 1
-
Erro: XmlNode não pode ser nulo - ACBrNFSeX - Linux
datilas replied to Everson Clei's tópico in Dúvidas Gerais sobre o ACBr
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 -
vc tentou usar o demo do ACBr? pois é ele que gera o xml faz o envio e pega o retorno. como vc esta usando?
-
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
-
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
-
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
-
vc pode testar os gtins : 7896380103188 com xProd invalido e 7895511301093 com xMotivo invalido isso no lazarus linux no delphi esta tudo ok.
-
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.
-
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.
-
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.
-
Montagem do .INI
datilas replied to Rodrigo Loureiro Rodrigues's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
https://acbr.sourceforge.io/ACBrMonitor/ModeloNFeINICompleto.html -
delphi Retorno incompleto Synapse
datilas replied to rogersontm's tópico in Object Pascal - Delphi & Lazarus
vc pode tentar um metodo do synautil: (ReadStrFromStream) sRetornoAPIOriginal := String(ReadStrFromStream(synHttpTextMsg.Document, synHttpTextMsg.Document.Size)); ou sRetornoAPIOriginal := ReadStrFromStream(synHttpTextMsg.Document, synHttpTextMsg.Document.Size); -
delphi Retorno incompleto Synapse
datilas replied to rogersontm's tópico in Object Pascal - Delphi & Lazarus
tenta: synHttpTextMsg.Document.Position := 0; sRetornoAPIOriginal := MemoryStreamToString(synHttpTextMsg.Document); ou try //declare uma variavel: //ssRetorno :TStringStream; synHttpTextMsg.Document.Position := 0; ssRetorno := TStringStream.Create(''); synHttpTextMsg.Document.SaveToStream(ssRetorno); {.} ssRetorno.Position := 0; sRetornoAPIOriginal := ssRetorno.DataString; finally ssRetorno.Free; end; -
aqui ta normal: vc pode acessar no navegador: http://www.sped.fazenda.gov.br/spedtabelas/WsConsulta/WsConsulta.asmx/consultarVersoesTabelasExternas?codigoSistema=spedfiscal se houver resposta o servidor esta funcionando e o problema é no seu programa
-
mas a questão é no registro 0150 eu uso o CNPJ da agencia que recebeu ou o CNPJ 0001-XX do banco?