[firebase-br] Problema com perda de dados

Leonardo (gmail) freitagnx em gmail.com
Ter Abr 24 08:49:18 -03 2012


Olá pessoal!

	Estou tendo retorno sobre um problema de perda de dados em um
cliente.
	A situação é a seguinte, é um software que roda em um restaurante.
Então existe um ponto no restaurante, onde fica a balança conectada a um
microcomputador, onde são feitos todos os lançamentos referentes ao consumo
dos clientes. O sistema é desenvolvido em D7 usando IBO e firebird 1.5. Eu
não utilizo commitretaining ao lançamento de cada produtos, apenas utilizo
um commit ao final do lançamento de todos os produtos daquela comanda.
	Me relataram que um cliente, ao se dirigir ao caixa para realizar o
pagamento deparou-se com a comanda vazia. Pensando que pudesse ser algum
comando no sistema, eu coloquei um gatilho da seguinte forma:

CREATE OR ALTER TRIGGER MESAS_ITENS_AI3 FOR MESAS_ITENS
ACTIVE AFTER INSERT POSITION 3
AS
begin
  INSERT INTO MESAS_ITENS_CONFERE(CODIGO, COD_MESAS_ABERTAS, NCUPOM,
COD_PRODUTO, 
                       DESCRICAO, UNIDADE, QUANTIDADE, UNITARIO, TOTAL,
IMPRESSO,
                       HORA, TAG, SERVICO, OBS, COD_ATENDENTE, ATENDENTE,
OPERADOR,
                       COD_CONJUGA, ALIQUOTA, ANTECIPADA, QUANTIDADE_COBRAR,
                       TOTAL_COBRAR, VALOR_FRACAO, IP, P_DESC_UNITARIO,
V_DESC_UNITARIO,
                       GRUPO, SUBGRUPO, CANCELADO)
                        VALUES(NEW.CODIGO, NEW.COD_MESAS_ABERTAS,
NEW.NCUPOM, NEW.COD_PRODUTO,
                       NEW.DESCRICAO, NEW.UNIDADE, NEW.QUANTIDADE,
NEW.UNITARIO, NEW.TOTAL, NEW.IMPRESSO,
                       NEW.HORA, NEW.TAG, NEW.SERVICO, NEW.OBS,
NEW.COD_ATENDENTE, NEW.ATENDENTE, NEW.OPERADOR,
                       NEW.COD_CONJUGA, NEW.ALIQUOTA, NEW.ANTECIPADA,
NEW.QUANTIDADE_COBRAR,
                       NEW.TOTAL_COBRAR, NEW.VALOR_FRACAO, NEW.IP,
NEW.P_DESC_UNITARIO, NEW.V_DESC_UNITARIO,
                       NEW.GRUPO, NEW.SUBGRUPO, 'N');
End


	Fiz isto pensando numa forma de auditar qualquer produto que tivesse
sido lançado na tabela de itens. Fiz um teste lançando alguns produtos, e
finalizando o programa antes do commit. Olhei a tabela MESAS_ITENS_CONFERE e
os produtos já estavam lançados. Porém, no caso do cliente, não encontrei
nenhum produto lançado nessa tabela MESAS_ITENS_CONFERE, onde teoricamente
todos os produtos lançados em MESAS_ITENS deveriam constar para fins de
auditoria.
	Se alguém puder me dar uma luz.

Antecipadamente grato.


Leonardo Freitag
House Tech Automação





Mais detalhes sobre a lista de discussão lista