Ir para conteúdo
  • Cadastre-se

Daniel Paixao

Membros
  • Total de ítens

    3
  • Registro em

  • Última visita

Posts postados por Daniel Paixao

  1. Eu tambem tenho clientes utilizando isso a anos e sem problemas mas, estou fazendo umas mudanças nas formas de recebimento no meu sistema e cheguei nessa dificuldade ai. Quando vc diz: "tu cancela e desfaz tudo", no caso, no meu sistema eu não quero que cancele, eu quero recuperar a transação já feita e continuar dali pra frente para que, quando o usuario fechar a venda novamente, eu só imprima e mande a confirmação mas, no ACBrTEFD, quando eu chamo o Ativar ele já entra cancelando se o cupom (Venda) estiver aberta. Eu não posso alterar o ACBr porque, quando eu atualizar os componentes, sobrepõe o que eu fiz. O ACBrTEFD deveria deixar o programador escolher se quer cancelar tudo ou apenas recuperar os registros das transações pendentes. Vou testar isso e sugerir como alteração amanhã.

  2. Galera, depois de muito bater a cabeça, cheguei a conclusão de que pode haver um erro de fluxo no ACBrTEFD com o CliSitef.dll. Quando eu faço uma venda no meu sistema e o pedido está em aberto, chamo uma operação TEF, passo o cartão e, quando aparece a mensagem para retirar o cartão, eu finalizo a aplicação. Ao iniciar meu sistema novamente, eu tenho um procedimento que recupera a venda que estava em andamento e ai começa o problema: Eu verifico que tem uma operaçãoTEF não confirmada e tento ativar o TEF pra confirmar a operação mas, dentro do ACBr, na classe ACBrTEFClass, na linha 1036 tem a procedure "VerificarTransacoesPendentesClass" que, primeiro verifica se o Cupom está com status 'V', 'P', 'N', 'O', se sim, confirma as transações pendentes, caso contrário, cancela todas as transações pendentes. Na minha visão, deveria haver uma procedure que recuperasse as transações pendentes e me desse uma lista para que, após concluido a venda, eu pudesse enviar as confirmações. O fato é que eu não acho correto o fluxo de confirmar/cancelar as transações pendentes uma vez que eu irei continuar a venda. Espero que tenha me feito entender. Se houver outro meio de tratar isso, agradeço, se não, como eu poderia resolver isso de uma forma a não perder a transação pendente? Abraço a todos.

  3. Em 10/05/2019 at 21:37, Gabriel Franciscon disse:
    1. Aqui temos um verificador de updates rodando com o Windows em todas as máquinas e notificando caso encontre uma nova atualização. (não é necessário estar em todos os PC's. Mas como isso é instalado junto com o sistema e na prática não muda muita coisa. Deixamos assim)
    2. Quando o usuário clica para instalar a atualização em uma máquina qualquer, exibe uma janela com as melhorias, novidades, correções...
    3. Após o término do download do update, é gravado em um banco de dados especifico e temporário as informações do update, como: Nome, versão/build, data, novidades, MD5. Também gravamos o executável do InstallShield nesse banco (sim, gravamos um arquivo de mais de 700MB). Conforme print abaixo.
    4. Quando termina a instalação do update e o usuário inicia o sistema, os scripts necessários para o funcionamento da nova versão/build são rodados no SQL Server. (não precisa ser o servidor)
    5. Depois do banco de dados também estar atualizado, as demais máquinas "acusam" diferentes versões entre o executável e o banco de dados, possibilitando a atualização do sistema nesses outros computadores.
    6. Nesse momento ao invés de baixar o update novamente, acessamos o banco de dados temporário onde tem o arquivo já baixado e apenas instalamos.
    7. Quando o usuário abrir o sistema, os scripts não serão rodados pois já foram.
    • Observação 01: Não importa se mais de um computador baixar a atualização ao mesmo tempo, antes de gravar o arquivo do InstallShield no banco, é verificado se ele já não existe.
    • Observação 02: Os updates são controlados por CNPJ, UF... Já que as vezes é necessário uma correção imediata apenas no estado X. E ainda verificamos se o cliente está apto a receber o update já que o mesmo pode ter problemas financeiros, contrato de manutenção cancelado (não dando direitos a updates de versão, apenas build dentro da versão que o cliente adquiriu). 
    • Observação 03: Depois de todos os PC's atualizados, os dados da versão nova e o arquivo da versão são apagado desse banco de dados temporário.
    • Observação 04: Existem atualizações criticas, nesse caso não fica a critério do usuário a instalação. O próprio atualizador, se encarrega de baixar e executar a instalação.
    • Observação 05: Após o término da atualização no PC, solicitamos o registro da licença novamente para controlarmos qual é a versão que o cliente está utilizando. (de forma online e transparente já que as licenças são controladas por um HWID e não por um serial previamente cadastrado).

    Aqui controlamos por MD5. Ou seja, ao executar o sistema e algum arquivo (bpl, exe, dll..) não bater com o MD5 do executável. Não será possível executar o sistema.

     

    Arquivo.thumb.png.dcaff498478c04cf4ad4cde2ae0a65bb.png

    Arquivo_Parcial.png.618282617fa3bf7afd3bda3c23ba685f.png

    E como vocÊ faz com o banco de dados?

×
×
  • 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.

The popup will be closed in 10 segundos...