-
Total de ítens
107 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Túlio de Pádua postou
-
Deu certo, o conteúdo da tag 'Id' estava incorreto. Realmente estão aceitando inutilização de NFe para pessoa física. Anexei os arquivos XML de envio e retorno da inutilização. A diferença é o nome da tag que mudou de 'CNPJ' para 'CPF' e recebe 11c. Mas no 'Id' o CPF deve ser formatado com 14c (zeros à esquerda). Pra testar isso eu fiz uma alteração grosseira nos fontes mesmo. Posso tentar implementar seguindo o padrão dos fontes do ACBr e anexar aqui, ou se a própria equipe quiser fazer a implementação também. 51210000522637817355920000000001000000001-inu.xml 51210000522637817355920000000001000000001-ped-inu.xml
-
Pessoal, boa tarde, alguém tá sabendo algo sobre a inutilização de numeração de NFe para produtor rural em MT? Segundo a Sefaz de lá isso já está implementado no servidor deles, aqui nesse link tem um resumo do que é esperado para o envio. Eu fiz uns testes, e até forcei a alteração do nome da tag de 'CNPJ' para 'CPF' conforme sugere a orientação deles, mas sem sucesso (retornam erro de schema): Estranho que eles não liberaram schema para download, nem NT alguma foi criada: Trocamos alguns email com eles, mas a orientação deles é muito ruim. No último email enviamos os arquivos XMLs que foram gerados conforme esse "schema" que eles publicaram, aguando uma resposta ainda. Mas estranhei isso ser publicado dessa forma, sem liberação de schema, sem NT, sem liberação por outras UFs.
-
Problema com filtro no clientdataset
Túlio de Pádua replied to Túlio de Pádua's tópico in Object Pascal - Delphi & Lazarus
Era a midas. Havia uma dll dessa lá na pasta system diferente da dll presente na pasta do sistema. -
Problema com filtro no clientdataset
um tópico no fórum postou Túlio de Pádua Object Pascal - Delphi & Lazarus
Pessoal, tenho um clientdataset com uma coluna numérica (BCD), e preciso filtrar apenas os registros onde os valores sejam maiores que zero. Para isso uso o filter, e sempre funcionou. Mas apareceu um cliente onde um relatório parou de funcionar, e analisando descobri que o problema era nessa filtragem. Na empresa, um outro único computador também apresenta esse problema. Imagine os seguintes registros num cds: MEUCAMPO (ftBCD) 15 20 35 84 108 18 56 65 -86 14 Quando eu aplico "Filter := MEUCAMPO > 0", nesses PCs nenhum registro sobra no cds. É como se ele não encontrasse nada maior que zero. Além de ser um filtro extremamente simples e funcionar corretamente na maioria dos PCs que testei, não consigo imaginar o motivo disso dar errado. Campos do tipo inteiro, float, string etc estão funcionando corretamente. Se eu fazer um loop nos registros contando os que possuem esse campo com valor maior que zero também funciona, o problema é realmente no filter. Anexei um exe de exemplo que fiz. Ao rodar no meu pc, tudo certo. Ao rodar nesse outro pc, não retorna nenhum registro. Se alguém já viu algo parecido ou se tiver alguma ideia do que pode ser. Teste.zip -
Eu fiz um teste agora, e consegui autorizar uma nota em MG. Parece que resolveram meu problema inicial, que eram as novas tags dessa NT.
-
Realmente está retornando esse erro aí. Estava funcionando, provavelmente o pessoal deve estar mexendo alguma coisa no servidor de MG de novo.
-
Bom dia, estou enfrentando um problema com a implementação da NT 2021.001 (CTe/CTe-OS/GTVe), em relação à alteração do campo de UF do CTe-OS (rodoOS->veic->UF). Esse campo passou a ser de preenchimento opcional, mas ao tentar transmitir um CTe-OS sem informá-lo o XML não é validado: A tag que deveria não ser criada, está sendo criada vazia: Na consulta de schema dá pra ver que esse campo já não é mais obrigatório: Fiz um teste, alterando no arquivo pcteCTeW.pas o seguinte trecho: Disso: Gerador.wCampo(tcStr, '#16', 'UF', 02, 02, 1, CTe.infCTeNorm.rodoOS.veic.UF, DSC_CUF); Para: Gerador.wCampo(tcStr, '#16', 'UF', 02, 02, 0, CTe.infCTeNorm.rodoOS.veic.UF, DSC_CUF); Assim não foi mais gerado erro de schema e o documento foi autorizado corretamente.
-
Acho que isso está errado, se olhar no schema o campo existe corretamente para esse CST, e a nota não seria autorizada em SVC. Talvez esse site esteja validando para produção, não sei. Vou ver se realmente tem algo de errado ou aguardar MG dar uma estabilizada.
-
Tu tá em MG? Tá conseguindo autorizar essas notas?
-
Acabaram de responder, segundo eles já está implementado.
-
Qualquer das novas tags geram a rejeição, sem elas não dá problema. O XML anexado contém as tags de ST desonerado (vICMSSTDeson e motDesICMSST), detalhe que trocando para o ambiente SVC esse mesmo XML foi autorizado sem problemas. Os schemas estão corretos sim, até porque senão poderia dar erro de validação local, e a rejeição é recebida do servidor. Eu abri um chamado questionando isso, pra saber se está ou não tudo certo no servidor, aguardando eles responderem. 31210905405941000129550010000050381690456253-nfe.xml
-
Boa tarde, estou implementando as alterações da NT 2020.005, mas ao tentar autorizar em homologação uma NFe com as novas tags, a Sefaz rejeita: 215 - Rejeicao: Falha no esquema XML Estou testando em MG, se eu usar a contingência SVC dá tudo certo. será que MG ainda não implementou essa NT? Mais alguém passando por esse problema aqui no estado?
-
Problema com arredondamento em campo float
Túlio de Pádua replied to Túlio de Pádua's tópico in Object Pascal - Delphi & Lazarus
O artigo aprofunda bastante, e cita num ponto algo que pode resolver parte no meu problema: "If space or speed are not as important as accuracy, use the Extended type throughout, because Delphi also uses it internally in most system functions." Usar o tipo extended realmente fornece uma precisão melhor: procedure TForm1.Button4Click(Sender: TObject); var val1: Double; val2: Extended; begin val1 := 1114313.68; val2 := 1114313.68; Memo1.Lines.Clear; Memo1.Lines.Add(FormatFloat('###,###,##0.00########', val1)); Memo1.Lines.Add(FormatFloat('###,###,##0.00########', val2)); end; O resultado da formatação acima seria: 1.114.313,6799999999 1.114.313,68 Com algum trabalho eu poderia alterar para que esse campo em tela mostrasse o valor a partir de uma variável extended, mas no ACBr como as variáveis são double, no DANFe o valor ainda sairia com a distorção. Ou seja, sem resolução total. Isso é para o valor unitário do produto em NFes, e sim, alguns usuários necessitam de toda essa quantidade de casas decimais, o que não me permite então fazer o uso de currency. E o outro problema é tentar fazer usuário leigo entender como um tipo flutuante funciona, e assim o valor que ele digita não é exibido fielmente na tela e no DANFe. De qualquer forma obrigado, eu vou manter isso assim mesmo. -
Tudo certo Italo.
-
Bom dia Italo, eu anexei o do CTe OS e o do CTe assíncrono. CTe síncrono eu não tenho, pois consigo fazer emissão de CTe apenas para MG, que não tem webservice para síncrono ainda. 1-pro-lot ----- CTeOS.xml 311000131383853-pro-rec ----- CTe Assíncrono.xml
-
ACBrCTeWebServices.pas
-
Pessoal, fui fazer um teste com o CT-e OS, e percebi que ao transmitir a rotina de envio do ACBr está gerando uma exceção, mesmo o conhecimento sendo autorizado. Testei com o programa de exemplo e o resultado também acontece: Veja que mesmo o retorno estando correto (uso autorizado), o log trata como se houve erro de transmissão. Debugando cheguei ao trecho abaixo, na rotina TratarResposta (TCTeRecepcao.TratarResposta) // Verificar se a GTV-e foi autorizado com sucesso Result := (FCTeRetornoSincrono.cStat = 100) and (TACBrCTe(FPDFeOwner).CstatProcessado(FCTeRetornoSincrono.protCTe.cStat)); O problema é que esse result aí está ficando como falso, pois o cStat que está sendo verificado é o do lote, e o seu valor é 104. Para verificar o do CTe OS, deveria pegar o cStat do protCTe, algo assim: // Verificar se a GTV-e foi autorizado com sucesso Result := (FCTeRetornoSincrono.protCTe.cStat = 100) and (TACBrCTe(FPDFeOwner).CstatProcessado(FCTeRetornoSincrono.protCTe.cStat)); Se concordarem faço as alterações e anexo aqui, mas realmente parece um erro.
-
Sim, aparentemente tudo certo. Obrigado.
-
Problema com arredondamento em campo float
Túlio de Pádua replied to Túlio de Pádua's tópico in Object Pascal - Delphi & Lazarus
Não, na verdade não foram informados esses decimais, o valor digitado foi "1.114.313,68", apenas com dois decimais. O problema é que ao digitar o valor no campo, ele é alterado para esse número com mias decimais aí. Eu atribuo isso ao problema de precisão que o float possui, mas queria ver se tem alguma maneira de contornar mesmo. -
Problema com arredondamento em campo float
Túlio de Pádua replied to Túlio de Pádua's tópico in Object Pascal - Delphi & Lazarus
No banco de dados ele está delimitado (15,10) como numérico. Isso aí é do clientdataset mesmo. -
Problema com arredondamento em campo float
um tópico no fórum postou Túlio de Pádua Object Pascal - Delphi & Lazarus
Pessoal, tenho um campo para informação de preço que possui 10 casas decimais. Isso no clientdataset gera um campo do tipo float. Nesse campo eu uso a máscara "###,###,##0.00########", ou seja, para a parte dos decimais exibe sempre duas casas, e quantas mais existirem até 10. Entretanto alguns valores quando digitados acabam sendo alterados numa tentativa de arredondamento pelo cds. Por exemplo, ao se digitar "1.114.313,68" ele aparece como "1.114.313,6799999999": Isso vai se repetir também no DANFe: Eu sei que valores de ponto flutuante podem gerar distorção nos valores, mas será que não existe algum outro tipo de máscara, algum componente que consegue tratar isso melhor, sei lá, pra evitar esse tipo de situação? -
Pessoal, o DACTE para um CTE OS estava exibindo o título DACTE (Documento Auxiliar do Conhecimento de Transporte Eletrônico). Alterei para exibir DACTE OS (Documento Auxiliar do Conhecimento de Transporte Eletrônico para Outros Serviços), caso seja esse o modelo. Um ajuste pequeno, mas um cliente exigiu isso. O modelo em Fast já está correto. ACBrCTeDACTeRLRetrato.pas
-
Integração com Api da Onvio(Domínio)
Túlio de Pádua replied to Deunerf's tópico in Object Pascal - Delphi & Lazarus
Configuração para o Indy: Params := TIdMultiPartFormDataStream.Create; Params.AddFile('file[]', 'C:\Desenvolvimento\Teste_Indy\31200305405941000129550010008979891610757381-nfe.xml', 'application/xml'); Params.AddFormField('query', '{"boxe/File":true}', 'UTF-8', 'application/json'); IdHTTP1.Request.CustomHeaders.Clear; IdHTTP1.Request.CustomHeaders.Values['Authorization'] := 'Bearer ' + token; IdHTTP1.Request.Accept := 'application/json'; IdHTTP1.Request.ContentType := 'multipart/form-data'; Assim deverá funcionar. -
Integração com Api da Onvio(Domínio)
Túlio de Pádua replied to Deunerf's tópico in Object Pascal - Delphi & Lazarus
Cara, eu também estou tentando fazer essa parte da implementação dessa API durante essa semana, e a mesma coisa, sempre tenho o retorno 500. Já testei com Indy, RestClient, e outros componentes como o ICS. Nada funciona, apenas ao testar pelo Postman. -
Resolvido, encontrei o problema, era algo na minha aplicação mesmo.