Ir para conteúdo
  • Cadastre-se

Waldir Paim

Moderadores
  • Total de ítens

    610
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que Waldir Paim postou

  1. Num outro tópico onde o usuário estava passando por uma situação onde passava um valor e o resultado obtido é diferente do esperado coincidiu com um problema que passei recentemente e por isso resolvi fazer os testes que não existia para esse caso. Segue anexo a unit do teste e a correção da situação que peguei na função TruncTo. acbrutiltest.pas ACBrUtil.pas
  2. @PoliDados Desenvolvimento Você realmente está engano, não trata-se de passar o valor certo e sim de como está parametrizado sua função de arredondamento. Foque nesse trecho : Veja que dentro do case {CasasDecimais.Formato} que ele decide qual valor vai retorna na saída dela. Esse paramentro por padrão define com duas casas decimais e pode estar ai o seu problema, se você não passar 3 casas ele sempre vai te retornar o valor diferente do esperado. Fiz umas melhorias no teste e vou criar outro tópico para incluir eles nos fontes.
  3. @PoliDados Desenvolvimento Eu vi seu dilema e resolvi testar para ver se realmente tem algum problema na função abaixo: Veja o case na função, ele determina qual atitude a função vai tomar para formatar sua informação. Aproveitei e inclui no TesteCase que você pode encontrar na pasta "..\Testes\Dunit\ACBrComum\ACBrComumTestCases.dpr". Nele tem os testes que mostra que a função está certa. Observe o Teste abaixo : Essa linha em destaque você não vai encontrar mas vou anexar a unit aqui com o teste que usei os valores que você reporta. Observe ali que se informar 0,266 com duas casas decimais o valor é arredondado para 0,27 conforme você descreve. Agora se informar o valor com 3 cadas decimais o valor formata corretamente como demostra o teste. Aproveitei e inclui mais um teste para a função TruncTo e o teste apresentou um bug nela. Vou anexar aqui também a correção para que possa ser avaliada e se possível incluída no repositório. Meu conselho, verifica onde você configura as casas decimais no seu código e boa sorte. ACBrUtil.pas A unit acbrutiltest.pas do teste deve ser salva na pasta "..\Testes\FPCUnit\ACBrComum". acbrutiltest.pas
  4. Legal, Poe as dll na pasta onde a IDE enxerga. Uma das alternativas é a pasta Lib do seu Delphi ou na pasta %systemroot%\System32 para Windows 32 e %systemroot%\SysWOW64 para Windows 64 Dessa forma sua IDE encontra as dlls e resolve essa bronca.
  5. @potew Estamos em plena olimpíadas, se desistir não vai ganhar sua medalhinha de ouro. Mas para ajudar no seu gás, cola aqui o log de erro apresentado por sua IDE. Com ele consigo te dar uma forcinha e concluir a maratona. Sobre as dlls poe elas na pasta do seu executável.
  6. Segue algumas units da pasta ACBrBoleto com remoção dos warnings. ACBrBancoCaixaSICOB.pas ACBrBancoSantander.pas
  7. Segue algumas units da past ACBrDFe\ACBrNFe\PCNNFe com remoção dos warnings. pcnInutNFe.pas Segue algumas units da past ACBrDFe\ACBrNFe\DANFE\NFe\Fortes com remoção dos warnings. ACBrNFeDANFeRLPaisagem.pas
  8. Segue algumas units da past ACBrTEFD com remoção dos warnings. Fiz um ajuste que requer uma atenção especial na unit ACBrTEFDCliDTEF while not Parar do begin if ItemSelecionado = 30 then begin Result := -1; //verificar isso aqui. Exit; end; ACBrTEFDClass.pas ACBrTEFDCliSiTef.pas ACBrTEFDCliDTEF.pas ACBrTEFDTicketCar.pas Segue algumas units da past ACBrSerial com remoção dos warnings. Fiz um ajuste que requer uma atenção especial na classe TACBrPosPrinter TACBrPosPrinter = class(TACBrComponent) private ... protected FPosPrinterClass: TACBrPosPrinterClass; mudei para protected (acredito não causar problemas) ... end; ACBrECFClass.pas ACBrECFEscECF.pas ACBrDISGertecTEC65lib.pas ACBrPosPrinter.pas Segue algumas units da past ACBrOpenSSL com remoção dos warnings. ACBrEAD.pas Segue algumas units da past ACBrComum com remoção dos warnings. ACBrAAC.pas
  9. Tenho que concordar com ambos, mas deixar como está é que não pode! Qual a possibilidade de remoção disso? O que ambos sugerem que seja feito? Se fosse tão maléfico assim não seria usado nos fontes do principal framework usado pelo ACBr. Será que eles são tão inconsequentes assim? Erro é deixar como está e não ver os verdadeiro warnings prejudicais ao projeto e aos aplicativos dos usuários.
  10. Cada um tem seu ponto de vista, mas eu não fui muito longe para chegar nessa conclusão. veja: Faz um pesquisa ai nos fontes, vai encontrar alguns exemplo de uso. Muito provavelmente esse pessoal tem seus motivos para usar.
  11. @EMBarbosa No meu ponto de vista deixar eles ali só complica mais do que ajuda, hora visto que os voluntários não se manifestam e não se pronunciam para sanar o problema. Desligando eles a gente corrige inúmeros outros que não estão visíveis, eu mesmo estou preparando um pacote de unit com outras correções que consigo ver sem eles nos log.
  12. @Daniel Simoes Não se trata de erro de compilação e sim erro no código mesmo; Veja na unit ACBrECFNaoFiscal o códido atual é esse : Total := CalcTotalItem( Qtd * ValorUnitario,-2); Mas o correto seria esse : Total := CalcTotalItem( Qtd, ValorUnitario); Da uma verificada ai por favor.
  13. @EMBarbosa Eu resolvi boa parte dos warnings remanescentes aplicado essa correção no ACBr.inc. {$IFDEF DELPHI12_UP} {$DEFINE HAS_CHARINSET} {$ENDIF} {$IFDEF DELPHI15_UP} {$DEFINE HAS_FORMATSETTINGS} {$DEFINE HAS_REGEXPR} {$WARN IMPLICIT_STRING_CAST OFF} {$WARN IMPLICIT_STRING_CAST_LOSS OFF} {$WARN SYMBOL_DEPRECATED OFF} {$ENDIF} Desativei com o bloco acima as três ultimas definições que mais me causavam transtornos. Vou adicionar o arquivo aqui caso tenha interesse de incluir no repositório e também resolver para os outros colegas da mesma forma. ACBr.inc
  14. @Daniel Simoes Foi aplicado a correção correção abaixo na unit? Para funcionar corretamente ajustei para Total := CalcTotalItem( Qtd, ValorUnitario). Se puder dar uma conferida , acredito que deve ter escapado esse detalhe.
  15. @Rafael jorge Esse erro 1325 está na tabela dos erros da NF-e? Pelo retorno me parece se tratar de uma venda interestadual! Veja se assim não resolveria: Só um chute! pois com as suas informações fica difícil de ajudar. Se possível poste o xml.
  16. @Rafael jorge Qual o código do erro da rejeição? Qual o regime de tributação do emitente? Se o código da rejeição for 508, use um CST diferente de 90 para lucro presumido e real ou se for simples nacional acredito que um CSOSN 400 deve passar.
  17. @hleorj Me animei. Manda os fontes pra mim testar também! Te ajudo aplicar essas alterações para os outros DANFes do Fortes.
  18. Seu teste de impressão ficou muito bom, me parece que não afetou a paginação. Você pode incluir algumas observações nos itens, alguns na primeira pagina e outros nas paginas seguintes? Precisamos também testar se ele não pulou itens da lista.
  19. @hleorj Veja: A impressão ou a logica não não me preocupa, o que me gera um grande receio é o controle da pagina como destaquei acima. Já vi problemas com esse tipo de aplicação aqui mesmo no DANFe do NFCe usando fortes pois os controle dos itens são dinâmicos e mudam de tamanho conforme o gosto do programador e você precisará de uma logica muito apurada para resolver isso. Então mexer em algo estável em busca de remover uma dependência pode gerar efeitos colaterais indesejados com a paginação.
  20. @hleorj Minha sugestão é criarmos uma nova versão da DANFe sem os Dataset e manter o funcionamento perfeito da versão atual.
  21. Fiz algumas alterações. Mantive a estrutura atual até a definição de como faremos para remover a dependência dos dataset. Puxei para o form base do fortes a obrigação de popular os dados. Segue anexo ACBrNFeDANFeRLRetrato.pas ACBrNFeDANFeRLPaisagem.pas ACBrNFeDANFeRL.pas ACBrNFeDANFeRLSimplificado.pas
  22. @hleorj Fiz uma breve analise sugestão proposta pelo @Daniel Simoes Observei que há uma dependência de 03 DANFes do form base do fortes que são: ACBrNFeDANFeRLPaisagem.pas, ACBrNFeDANFeRLRetrato e ACBrNFeDANFeRLSimplificado. Vou precisar da ajuda de ambos para definir: Estrutura dos itens Criar uma lista de objetos similar ao dataset no form base do fortes e manter a logica em cada form Criar a lista de itens na classe base do DANFe e estender essas alterações para os demais DANFes. Usar a lista de itens do TNFe. Outras alternativas Definir a paginação do DANFe. Eu optaria pelo opção 2. Motivos: Objeto dos itens do DANFE poderão ser especializados e com a possibilidade de parametrização da paginação.
  23. @hleorj Vou fazer sim. Até o inicio da semana que vem eu anexo a unit com as alterações. Não prometo te ajudar nas outras units, mas nessa do DANFe do Fortes eu faço sim.
  24. @Daniel Simoes Concordo em numero gênero e grau! 100% apoiado! Se precisar de minha ajuda para fazer essas alterações pode contar comigo.
  25. @hleorj Como cite aqui: Seria muito importante adicionar uma diretiva ser desativada por padrão. Dessa forma tudo funciona como está e só os que preferirem ativariam e utilizariam. Algo do tipo : no ACBr.inc: {IFDEF BORLAND} {.DEFINE USE_FIREDAC} {$ENDIF} nos fonte: {$IFDEF USE_FIREDAC} //faz uso do dataset do faredac. {$ENDIF}
×
×
  • 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.