Ir para conteúdo
  • Cadastre-se

gwiethaus

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

gwiethaus's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

8

Reputação

  1. Infelizmente meu amigo. Não pude mais fazer nem o ACBr, nem meu projeto. Vai demorar um pouco mais até eu começar a rever isto. Então fica aqui o questionamentos e problemas que podem ser resolvido por outros.
  2. Bom dia, onde conseguiria o grupo de projetos correto para poder fazer adequadamente as modificações e a ordem de instalação deste componente?
  3. Para ter uma ideia nos testes que eu fiz coloquei em API_ConsultarProduto um NCM que é de serviço "deu pau" logo de cara na data ACBrUtil.StringToDateTimeDef(). Não deveria acontecer isto, o certo é evitar a excecao e tratar as situações dentro dos métodos e funções para saber se vem um produto ou serviço e prever antes de uma exceção ocorra.
  4. Verifiquei com mais calma o código e ví abaixo descrevo as minhas impressões, posso estar errado ou não visto alguma situação, então é uma proposta para ver se encaixa no escopo do projeto. Antes de começar sugiro que entre no IBPTax e faça a pesquisa lá por produto, serviço e locação verão que tem um campo de saída comum a todos e não está implementado em Produtos na unit ACbrIBPTax.pas O Tipo Retorna 0,1 e 2 se estiver na pesquisa por produto, e inserir o código do serviço ou locação dele irá retornar vários campos em Nil inclusive Tipo, como vou descrever a seguir. Sugiro fazer uma modificação na estrutura: No site do ibptax se solicitar pesquisa de produto e colocar o código do serviço retornara o campo tipo=nil e vice-vesa. Para Produto: TACBrIBPTaxProdutoDTO = record parametro exclusivo EX (Implementado) Tipo retorna '' ou '0' Para Serviço e Locações: TACBrIBPTaxServicoDTO = record parâmetro exclusivo Nenhum (*Todos existentes em TACBrIBPTaxProdutoDTO Tipo retorna '', '1', '2' Foi implementado TACBrIBPTaxProdutoDTO.Tipo Evitaria o vazio no Tipo para o caso de usar API_ConsultarProduto() quando passa o código de serviço/locação e evitaria o vazio no Tipo para o caso se usar API_ConsultarServico() quando passar o código de produto. Proposta: Como existem campos comuns a todas estruturas de dados é implementar um novo método de consulta unica para a busca de produto/serviço/locação. O campo EX é obrigatório para o produto em API_ConsultarProduto() e não para API_ConsultarServico(), desta forma poderia implementar um método API_Consultar() que configura produto quando passar algum valor de ex e para serviço quando passar '' ou poderia usar o tipo enumerado TACBrIBPTaxTabela na entrada e preencher o ex quando necessário o retorno seria numa estrutura unica que pelo que vi só o EX não pertence a serviço o resto é tudo comum. Reduziria e otimizaria muito o código, seria um aspecto positivo. Eu vejo que criar dois tipos enumerados distintos e estruturas distintas que apenas tem em diferença um campo é muita complexidade e o código fica muito grande. O que acham da ideia? Posso tentar otimizar isto e ver como fica. Aspecto negativo: A questão agora é o API_ConsultarProduto() e API_ConsultarServico() se isto sair ira prejudicar todos os projetos que o implementam, então a saída é fazer uma nova estrutura record de nome TACBrIBPTaxRegistroDTO que ai entra em concordância com a Classe TACBrIBPTaxRegistro a qual vi que estava faltando no comentário anterior que fiz. Como impele menta o campo Tipo em produto que retorna sempre zero se a busca por produto e não por serviço (se buscar por serviço em API_ConsultarProduto retorna vazio)
  5. Opa, desculpe. Estava um pouco atarefado. Assim que conseguir eu coloco aqui aqui em breve. Obrigado pelo retorno.
  6. Legal Juliana. Me explica como posso participar do projeto colocando as atualizações e melhorias do código? Eu não cheguei a abrir a unit que está faltando a implementação. Eu já tenho feito umas correções de um problema antes de uma unit que agora está funcionando.
  7. Pessoal, verifiquei na versão mais nova, fazendo conexão com o componente do acbr via webervice (interno) Constatei que falta o Retorno quando solicitado em TACBrIBPTax.TACBrIBPTaxProdutoDTO. Exemplo var Retorno: TACBrIBPTaxProdutoDTO; begin .... ACBrIBPTax.CNPJEmpresa := ConfigDef.IBPT_CNPJ; ACBrIBPTax.Token := ConfigDef.IBPT_Token; Retorno := ACBrIBPTax.API_ConsultarProduto(EDTWS_NCM.Text, EDTWS_UF.Text, 0, //EX_TIPI '', //codigo interno '', //Descricao '', //inidade 0, //Valor '' //GTIN ); codigo:= Retorno.Codigo; descricao:= Retorno.Descricao; tipo:= Retorno.Tabela; //valor de 0 até 2 Consultando o arquivo CSV do IBPTax, segue abaixo: codigo;ex;tipo;descricao;nacionalfederal;importadosfederal;estadual;municipal;vigenciainicio;vigenciafim;chave;versao;fonte 3o. coluna não é importado, pois não existe a propriedade "Tabela" Mas isto está presente em... ACBrIBPTax1.Itens.Tabela; Atenciosamente, Guilherme Wiethaus De louco, programador e químico só eu tenho um pouco.
  8. Bom dia, faz um tempo. Eu testei e baixei a nova versão e está funcionando corretamente no Delphi 10.3. Grato por atualizarem no SVN e comentarem os problemas nas versões anteriores do Delphi. É um prazer poder ajudar.
  9. Outra referencia Change do HTTPReqRespBeforePost Delphi 10.3 (Rio): https://community.idera.com/developer-tools/programming-languages/f/delphi-rtl
  10. Novo ajuste no arquivo, em anexo, segundo a indicação de: https://community.idera.com/developer-tools/programming-languages/f/delphi-rtl/68917/undocumented-change-in-10-3---thttpreqresp-sendtimeout-removed---what-s-the-alternative ACBrDFeHttpIndy.pas
  11. gwiethaus

    Reparando ACBrDFeHttpIndy

    Boa noite, Referente ao mesmo tópico em Neste link acima, possui as modificações feitas, em anexo. Não posso me integrar ao SVN pois meu projeto não permite (não tenho uma plataforma separada). Iantegra ACBr -> FastReport Pro -> Teechart Pro Abaixo as mesmas descrições, espero que respondam. Eu achei uma indicação pelo componente Indy, na unit IdStackConsts.pas (Indy já instalado original no Delphi 10.3.1) Na parte: { SocketOptionName.SendLowWater;// Specifies the total per-socket buffer space reserved for receives. This is unrelated to the maximum message size or the size of a TCP window. SocketOptionName.SendTimeout;// Send timeout. This option applies only to synchronous methods; it has no effect on asynchronous methods such as BeginSend. } ...é a único lugar que aparece ou menciona o SendTimeout em todos os módulos dentro da pasta Embarcadero\Studio\20.0\source\soap Em nenhum outro lugar aparecem estes: sopa.Soap.SOAPHTTPTrans.THTTPReqResp.SendTimeout sopa.Soap.SOAPHTTPTrans.CheckContentType Verifiquei que o evento também foi mudado na nova versão: de: OnBeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer); para: OnBeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient); Alterei algumas coisas colocando {$IF CompilerVersion >= 33} e compilou direitinho Parece que estas propriedades e métodos não fazem mais diferença, pois pelo que entendi isto está explicito dentro do Indy além que que já roda em modo assíncrono. Posso estar enganado quanto a isto. Não sei onde mais estas alterações se fazem necessário, mas de forma paliativa resolveu o meu caso deixando o indy ativo. Estou enviando em anexo a alteração que fiz e nada mais deu errado. Pelo menos até este ponto. Procurei em alguns fórum nada muito significativo. O Help que vem com o Delphi 10.3.1 menciona estas funções e propriedades mas não existem nas suas units correspondentes. Não há nenhuma documentação indicando na Embarcadero estas mudanças. Abaixo link de algumas indicações que falam nos forums: https://en.delphipraxis.net/topic/524-rio-soap-gzip-response-problem/ https://community.idera.com/developer-tools/programming-languages/f/delphi-rtl/68917/undocumented-change-in-10-3---thttpreqresp-sendtimeout-removed---what-s-the-alternative
  12. Bom dia. Eu achei uma indicação no Indy, na unit IdStackConsts.pas (Indy já instalado original no Delphi 10.3.1) Na parte: { SocketOptionName.SendLowWater;// Specifies the total per-socket buffer space reserved for receives. This is unrelated to the maximum message size or the size of a TCP window. SocketOptionName.SendTimeout;// Send timeout. This option applies only to synchronous methods; it has no effect on asynchronous methods such as BeginSend. } ...é a único lugar que aparece ou menciona o SendTimeout em todos os módulos dentro da pasta Embarcadero\Studio\20.0\source\soap Em nenhum outro lugar aparecem estes: sopa.Soap.SOAPHTTPTrans.THTTPReqResp.SendTimeout sopa.Soap.SOAPHTTPTrans.CheckContentType Verifiquei que o evento também foi mudado na nova versão: de: OnBeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer); para: OnBeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient); Alterei algumas coisas colocando {$IF CompilerVersion >= 33} e compilou direitinho Parece que estas propriedades e métodos não fazem mais diferença, pois pelo que entendi isto está explicito dentro do Indy além que que já roda em modo assíncrono. Posso estar enganado quanto a isto. Não sei onde mais estas alterações se fazem necessário, mas de forma paliativa resolveu o meu caso deixando o indy ativo. Estou enviando em anexo a alteração que fiz e nada mais deu errado. Pelo menos até este ponto. Procurei em alguns fórum nada muito significativo. O Help que vem com o Delphi 10.3.1 menciona estas funções e propriedades mas não existem nas suas units correspondentes. Não há nenhuma documentação indicando na Embarcadero estas mudanças. Abaixo link de algumas indicações que falam nos forums: https://en.delphipraxis.net/topic/524-rio-soap-gzip-response-problem/ Tem outro link que fala sobre outros assuntos, mas infelizmente não tenho aqui agora. Vou tentar enviar mais tarde. ACBrDFeHttpIndy.pas
  13. Grato pela informação. Segunda feira irei testar. Vou ver se é possível dentro do meu conhecimento achar uma solução para o Indy.
  14. Baixei a última versão de abril/2018 e encontrei um problema no caminho de instalação. Se Fizer a moda copiar e colar diretamente o caminho e esquecer de tirar a barra "\" no final do nome do último subdiretório, o instalador não encontrará na etapa de instalação o primeiro componente ACBr_synapse.dpk. A sugestão é quando copiar e colar e tiver uma barra no final do diretório, automaticamente remover este quando sair do campo. Eu não tenho ligação com o desenvolvimento e nem sei como enviar os bugs encontrados. Então se alguém sabe favor informar isto. Eu custei quase 20 minutos para tentar descobrir esta pequeno problema.
  15. Boa tarde, Me ajudem com a seguinte questão que não consegui ainda fazer e acho que alguém pode ter o mesmo problema. O meu relatório tem cabeçalho, rodapé um cabeçalho de grupo e uma banda masterdata. O cabeçalho de grupo ira quebrar e aparecer na próxima pagina com os dados restantes do masterdata que não puderam ser todos impressos em uma única pagina, então o cabeçalho de grupo é repetido para a próxima página. Até aqui esta tudo bem e funcionando. A questão é agora: Preciso saber quando os dados terminam em uma página e quando eles são impressos na próxima página. Quando acontece exatamente esta quebra. Não consegui determinar com exatidão este momento da quebra dos dados do masterdata e que irão continuar na próxima página. O desafio é somente com esta estrutura que apresentei. Uso Delphi XE2 e FastReport 4.14
×
×
  • 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.