Ir para conteúdo
  • Cadastre-se

Waldir Paim

Moderadores
  • Total de ítens

    620
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que Waldir Paim postou

  1. Oi EMBarbosa, Está descrito sim, inclusive colei o código antigo e o novo. Você poderia detalhar como espera que eu proceda nesse caso? Eu preferia mil vezes anexar os patchs mas fui orientado a anexar as units. Na tentativa de ajudar estou fazendo as alterações e mantendo o código o mais original possível. Ainda tento avisar antecipadamente qual ação irei efetuar, inclusive tem algumas alterações que podem quebrar o código e estou evitando mexer, não por incapacidade mas por essa questão de problemas na estrutura mesmo e assim as alterações poderão gerar uma reflexão maior. Conto com sua ajuda para gente definir aqui quais procedimentos devem ser adotados para não gerar nenhum tipo de problema aos usuários.
  2. Segue units para avaliação. As alterações são minimas, foi adicionado a diretiva Windows e removido inicialização de functions desnecessárias. Devo submeter hoje ainda a proposta de remoção dos avisos do tipo W1057 e W1058. ACBrTEFDClass.pas ACBrTEFDCliSiTef.pas ACBrTEFDBanese.pas ACBrTEFDTicketCar.pas Na unit mandei uma correção onde o raise está no lugar errrado. Já havia reportado em outras ocasiones mais não foi corrigido. Mudei de : procedure TACBrTEFDClass.DesInicializar; begin fpInicializado := False ; GravaLog( Name +' DesInicializado' ); end; procedure TACBrTEFDClass.VerificaAtivo; begin try ATV; except on E : EACBrTEFDGPNaoResponde do begin if AutoAtivarGP then begin TACBrTEFD(Owner).DoExibeMsg( opmOK, 'O Gerenciador Padrão não está ativo e será ativado automaticamente!'); AtivarGP; ATV; end; end; else raise ; end; end Para: procedure TACBrTEFDClass.VerificaAtivo; begin try ATV; except on E : EACBrTEFDGPNaoResponde do begin if AutoAtivarGP then begin TACBrTEFD(Owner).DoExibeMsg( opmOK, 'O Gerenciador Padrão não está ativo e será ativado automaticamente!'); AtivarGP; ATV; end else raise; end; end; end;
  3. Segue units da pasta Sped com remoção do mensagens W1057 e W1058. Removi 100% das mensagens descritas acima das units da pasta em questão foram removidas mais de 700 mensagens. Tambem inclui algumas melhorias que havia proposto em outros tópicos e ainda não foram aplicadas. Segue anexo. arquivos da pasta ACBrSPEDFiscal ACBrEFDBloco_0_Class.pas ACBrEFDBloco_1_Class.pas ACBrEFDBloco_C_Class.pas ACBrEFDBloco_D_Class.pas ACBrEFDBloco_E_Class.pas ACBrSpedFiscal.pas ACBrSPEDContabil: ACBrECDBloco_0_Class.pas ACBrSpedContabil.pas ACBrSPEDECF: ACBrSpedECF.pas ACBrSPEDPisCofins: ACBrEPCBloco_0_Class.pas ACBrEPCBloco_1_Class.pas ACBrEPCBloco_A_Class.pas ACBrEPCBloco_C_Class.pas ACBrEPCBloco_D_Class.pas ACBrEPCBloco_F_Class.pas ACBrEPCBloco_M_Class.pas ACBrSpedPisCofins.pas ACBrSPED: ACBrSped.pas ACBrTXT: ACBrTXTClass.pas ACBrTXTUtils.pas ACBrComum: ACBrUtil.pas Nessa units fiz exatamente como tinha descrito nesse trecho ali na pagina 2: Pretendo remover os avisos da units do TEF essa semana que vem.
  4. Segue mais algumas units para verificação. Na grande maioria aqui são functions que result não utilizados e variáveis não utilizadas ou inicializadas. Não vou detalhar pois as alterações são minimas mas já remove uns quantos avisos. Vou anexar por pasta ACBrDFeSSL.pas ACBrDFe.pas ACBrDFeCapicom.pas NFe: ACBrNFeNotasFiscais.pas ACBrNFeWebServices.pas OpenSSL: ACBrEAD.pas Serial: ACBrPosPrinter.pas ACBrECFClass.pas TCP: ACBrMail.pas PCN Comum: pcnLeitor.pas Ainda tem muita coisa para ser feita, mas essa semana acredito que não mexa mais em nada.
  5. Veja se assim da certo: procedure TACBrECFEscECF.SalvaRespostasMemoria(AtualizaVB : Boolean) ; Var ValVB : Double; begin AtualizaVB := not Assigned(RespostasComando.FieldByName('VendaBruta')); if AtualizaVB then begin try ValVB := GetVendaBruta; RespostasComando.AddField( 'VendaBruta', FloatToIntStr(ValVB) ); except end; RespostasComando.AddField( 'EmPagamento', ifthen( fsEmPagamento,'1','0') ); end ; RespostasComando.SaveToFile( fsArqMemoria ); end ; Dessa forma testa e não apresenta a mensagem. Poderia até nem precisar do AtualizaVB Usa: not Assigned(RespostasComando.FieldByName('VendaBruta')) Direto dentro do If
  6. Segue mais alguma unit para utilizar CharInSet no lugar de In. Acredito que essas sejam as ultimas com esse problema. Inicializei algumas variáveis mais comentei onde a mensagem ocorre. ACBrECFEscECF.pas ACBrECFClass.pas ACBrRFD.pas ACBrECF.pas ACBrECFSwedaSTX.pas ACBrECFFiscNET.pas ACBrECFDataRegis.pas ACBrECFDaruma.pas ACBrECFEpson.pas Não sei bem como tratar isso... o importante desse bloco, é a chamada a: RespostasComando.FieldByName('VendaBruta').AsFloat; Se o 'VendaBruta' ainda não existir, será disparado um exception, que é tratado no Bloco... Ainda não tenho uma sugestão mas está anotado aqui para verificar.
  7. Veja: Daniel, Fiz o merge Segue unit com com alteração proposta ACBrNFeWebServices.pas
  8. Esse diretiva aqui quebrou a compilação: DELPHIXE2_UP Estou verificando aqui o motivo. Já encontrei! Só a virgula no lugar errado. Segue units alteradas ACBrECFSweda.pas ACBrECFSchalter.pas
  9. Daniel, Eu sempre procuro alterar o minimo possível o código original, mantendo a logica e o raciocínio anterior para evitar no máximo possível induzir a um erro. Mas acredito que no caso acima a diretiva deveria ser então: {$IFDEF DELPHI16_UP} , System.UITypes {$ENDIF} Ou ainda fica mais legivei ainda: {$IFDEF DELPHIXE2_UP} , System.UITypes {$ENDIF} Fica a seu critério.
  10. Valeu, agora ficou 100%.
  11. Bom dia, Valdir e Luciano. Estou com a documentação enviada pelo cliente do Unicred e aqui usa o Bradesco, ates usavam o Banco do Brasil. Até fiz umas alterações no ACBr para adicionar essa Cooperativa, mas eles são muito indecisos e não sabem o que nem quem usar. Vou anexar aqui a documentação que recebi ela é datada de Janeiro de 2016 e acredito ser a instituição atual deles. Anexei também as units que alterei provisoriamente para gente definir qual rumo tomar em relação a esse caso. Cobexpess - Boleto padrão + Layout 240.pdf Cobexpess - Boleto padrão + Layout CNAB 400.pdf ACBrBancoUnicredBradesco.pas ACBrBoleto.pas A Unit é a mesma do Bradesco só renomeei ela para fazer as alterações necessárias.
  12. Isaque, bom dia. Você manteve o hint. Ele é do tipo: H2077 value assigned to never used. function TACBrSpedTabelas.Download(const aId, aVersao, aName: string): boolean; var Dow: TACBrDownload; begin Result := False; //<< ele reclama disso aqui if not fListou then raise EACBrTabelasSpedxception.Create(ACBrStr('Falta listar as tabelas')); Não fiz o cast nas mensagens sem acentuação propositalmente pois a mesma na precisa do mesmo. Mas seguimos. Ou devo tratar no tópico especifico?
  13. Daniel, Aqui ficou certo essas ultimas 03 units. Tem essas outras do dia 07/03 que vi que ainda não teve tempo de verificar. Seguindo a diante, nessa próxima semana deve sobrar um tempo e preciso que me oriente onde posso mexer, pois ainda tem bastante mensagens a ser tratada e corrigida e muitas das alterações acredito que vamos precisar definir como e por quem será feito. Um exemplo são as mensagens desse tipo: W1035: return value of function might be undefined. W1036: Variable might not have been initialized Estou evitando mexer nessas, no do ACBrBoleto e nas W1057 e W1058. Já identifiquei algumas aqui de vou dar andamento: procedure TBloco_0.WriteRegistro0500(Reg0001: TRegistro0001) ; var intFor: integer; strLinha: AnsiString; begin Como pode ver a variável local foi declarada como AnsiString mas todo seu tratamento dentro do método se faz como string e assim gera os avisos. As próximas que devo fazer são desse grupo do Sped.
  14. Oi Isaque, Fiz mais uma pequena melhoria na unit. Se poder depois avaliar, foi uma correção ortográfica na mensagem de erro e removi um Hints / Warning apresentada na unit. Segue anexo. ACBrSpedTabelas.pas
  15. Precisei utilizar a unit ACBrSpedTabelas.pas e funcionou perfeitamente. Mas encontrei a possibilidade de deixar ela melhor ainda. Quando passa um caminho para salvar as tabelas e esse caminho não existisse a função de downalod não conseguia salvar o arquivo e não me apresentava o motivo. Segue anexo uma proposta para tentar resolver isso. ACBrSpedTabelas.pas
  16. Segue mais algumas units para verificação. Na unit ACBrDownloadClass ele gera o hint H2443: Inline function, adicionei unit do Windows como a IDE solicitava. Nas outras outras duas ints só fiz o cast para remover os avisos. ACBrFTPDownload.pas ACBrHTTPDownload.pas ACBrDownloadClass.pas
  17. Que maravilha! Sobre a acentuação é bem provável que Api te retorne em UTF8 e você precisa fazer a conversão para ANSI. Tenta ai que provavelmente vai dar certo.
  18. Maicon, A solução já está praticamente pronta, falta como já te disse definir a licença e uma parte da documentação. Outra definição que estamos aguardando é o lançamento do delphi para compilar em linux para os testes finais. Em relação a programação Web! Aqui vamos seguir o seguinte caminho: No ERP temos a versão cliente servidor já rodando e no delphi seatle, estamos migrando ela para a consumir api em rest como foi descrito acima e vai rodar tanto local como web pois vai ser uma questão de escolha do cliente onde ele vai instalar o server dele. Mobile optamos nesse momento por Java mas também consumindo Api. Web propriamente dita rodando no browser vamos usar https://angular.io/ para construir nossos apps mas não penso em migrar nesse momento todo ERP para cá. Então veja o cenário acima e são varias frentes, hoje em dia não tem como uma única e exclusiva linguagem atender toda essa demanda. Então faça sua escolha mas olhe o mercado como um todo, use cada uma ferramenta ou linguagem para executar o que ele tem de melhor e não queira adoçar uma xícara de chá com uma pitada de sal que ai não vai dar certo. Agora como você mesmo disse voltando ao tópico: Essa questão do tempo é muito relativo como diria Einstein, mas estamos trabalhando aqui para ver se final de maio ou inicio de junho desse ano já tenhamos alguma coisa pronta e liberada para uso geral.
  19. Fazendo teste com o Banco do Brasil me deparei com uma situação onde o exemplo reclamava de que o código da carteira deveria ser informado antes do código do nosso número. Então fiz o ajuste na unit do Delphi já que a do Lazarus já informa a carteira conforme a unit do banco solicitava. A alteração é minima mas já ajuda não gerar erros nos testes. Segue unit em anexo. uDemo.pas
  20. Maicon, Esclarecendo alguns pontos: - O Delphi com IntraWeb desenvolve para web desde a versão 7, com bastante muito material didático gratuito na internet. - DataSnap oferece suporte para web nas versão mais recentes. Porém, desenvolver em Delphi para web usando RAD e VCL é impraticável, pois o HTML, CSS e JS evoluíram muito, nos oferecendo hoje frameworks extremamente produtivos como Bootstrap e AngularJS. É praticamente impossível o Delphi acompanhar a evolução desses frameworks tentando gerar código web fazendo "wrappers" de componentes VCL para componentes web. Mas há ferramentas RAD para desenvolvimento de front-ends (clients) extremamente produtivas e com preços acessíveis, WebStorm é um bom exemplo disso, usamos ele aqui na empresa. Tendo em mente o quesito acima, nossa proposta não será trabalhar criando front-ends em Delphi, e sim levar todo a regra de negócio para uma infraestrutura robusta que facilitará desenvolver a parte o back-end (server), e pretendemos iniciar dando suporte a Delphi XE8+(32/64) e Free Pascal 3.1.1+(32/64), desenvolvendo uma solução multiplataforma com alta performance, sem depender de frameworks Indy, Synapse, ICS, mORMt etc., e também sem depender de servidores web como Ngnix, Apache, Lighttpd etc., ou protocolos lentos como proxy reverso, CGI, SCGI, FastCGI, módulo Apache etc. A parte client ficará a critério do programador, onde ele poderá escolher qualquer solução do mercado, desde que ela consiga consumir dados em JSON numa estrutura RESTful, e sabemos que hoje em dia isso não é mais problema, pois o próprio Delphi possui componentes para integrar VCL facilmente com qualquer API RESTful. Qualquer duvida, estamos a disposição.
  21. Maciel, Eu uso a carga de balança de produtos pesáveis e unitários. Pelo que sei não tem essa ferramenta no mercado, me parece que o MGV até foi open no inicio mas não acredito que continue sendo. Mas como te disse acima e com conhecimento de causa te afirmo que existe a chamada carga automática que nesse caso pode até simular o que você precisa, onde você configura dentro do próprio monitor a tempo para buscar os TXT. Você ainda se livra de ter que desenvolver protocolo para cada tipo e modelo de balança, você só gera o TXT e envia para o MGV. Sempre cito MGV da Toledo pois o Smart da Filizola pelo menos aqui na minha região está em extinção. Outras marcas até existem mas são praticamente desconsideradas.
  22. Juliomar, Opa, acompanho o trabalho da equipe do ACBr, estou usando desde 2005 e sou muito grato pelo esforço deles, e sempre que posso tento contribuir da melhor forma possível.Quanto ao projeto de atualização automática, ele já existe e está funcionando em nosso ERP, porém o código está em nosso repositório privado, em breve nossa equipe escolherá uma licença para então podermos publicá-lo.
  23. Maicon, Nossa ferramenta já está pronta! Já usamos em produção e temos nossa própria rotina de atualização. A proposta de open source é para tentar prestigiar e contemplar os usuários delphi e free pascal com uma alternativa de atualização on-line e usando a própria linguagem que tantos disseram que já tinha morrido e ainda se mexe com muita força. Desde 2009 com a chegada dos webservices da nf-e muitos devem ter pesando igual eu, to ferrado como vamos resolver isso, de que forma vamos enviar, assinar os xmls. Então o tempo passo e ninguém morreu como previsto e continuam por ai sorridentes e gordinhos. Hoje temos uma estrutura muito grande com a chegada dessas novas IDEs, delphi e Lazarus e o HTTP e JSON são praticamente nativos nelas.
  24. Temos alguma experiencia no uso de API e Webservice. Se precisar de alguma ajuda nesse sentido acredito que podemos te ajudar. Para Delphi 7 também recomendo o uso do LkJSON e até uso ele em algumas situações mas nada se compara com o JSON nativo do XE8 e Seatle.
  25. GAC Sistemas, Bom dia, Você precisa de ajuda só para fazer a autenticação, ou vai precisar de uma consultoria para consumir a API por completo? Podemos te ajudar em ambos os casos.
×
×
  • 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.