Você está na página 1de 10

TRIGGERs

# Distribuição

BEGIN

DECLARE transactionID VARCHAR(40);


DECLARE dm_valor_dinheiro DOUBLE;
DECLARE dm_valor_mpesa DOUBLE;
DECLARE dm_valor_distribuido DOUBLE;
DECLARE dg_valor DOUBLE;
DECLARE dg_id INT;
DECLARE transacao_id INT;

SET transactionID = (SELECT lt_output_TransactionID FROM lt_logs_transacao


where lt_id = NEW.pagamento_electronico_id AND lt_output_TransactionID <> '');
SET dm_valor_dinheiro = (SELECT COALESCE(SUM(dg_valor_dinheiro), 0) FROM
dg_distribuicao_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND
tt_id = NEW.tt_id);
SET dm_valor_mpesa = (SELECT COALESCE(SUM(dg_valor_mpesa), 0) FROM
dg_distribuicao_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND
tt_id = NEW.tt_id);
SET dm_valor_distribuido = (SELECT COALESCE(SUM(dg_valor_distribuido), 0) FROM
dg_distribuicao_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id);
SET dg_valor = dm_valor_dinheiro+dm_valor_mpesa;
SET dg_id = (SELECT COALESCE(MAX(dg_id), 0) FROM dg_distribuicao_grupo);

#inserir valores da transacao na tabela t_transacao


INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,
t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca, c_id, t_codigo_transacao,
transaction_code)
VALUES (NEW.m_id, NEW.g_id, NEW.tt_id, NEW.gm_n_membro, NEW.dm_valor, 1,
NEW.sessao_id, NEW.ciclo_id, NEW.dm_created_by, NEW.dm_modified_by,
NEW.dm_created_on,
NEW.dm_last_modified_on, NEW.dm_start_date, NEW.dm_end_date, 1,
NEW.dm_metodo_pagamento, transactionID, NEW.dm_transaction_code);

#recuperar t_id da transacao


#SET transacao_id = (SELECT t_id FROM t_transacao WHERE m_id = NEW.m_id AND
g_id=NEW.g_id AND tt_id= NEW.tt_id AND t_created_on = NEW.dm_created_on);

# adicionar a t_id na tabela


#UPDATE dm_distribuicao_membro SET t_id = transacao_id WHERE row_id =
NEW.row_id AND dm_id = NEW.dm_id;

# adicionar e actualizar os saldos do grupo


IF dg_valor > 0 THEN

IF NEW.dm_metodo_pagamento = 99 THEN

UPDATE dg_distribuicao_grupo SET dg_valor_mpesa =


dm_valor_mpesa+NEW.dm_valor, dg_valor_distribuido =
dm_valor_distribuido+NEW.dm_valor, dg_modified_by = NEW.dm_modified_by,
TRIGGERs

dg_last_modified_on = NEW.dm_last_modified_on WHERE ciclo_id = NEW.ciclo_id


AND g_id = NEW.g_id AND tt_id = NEW.tt_id;

ELSEIF NEW.dm_metodo_pagamento = 100 THEN

UPDATE dg_distribuicao_grupo SET dg_valor_dinheiro =


dm_valor_dinheiro+NEW.dm_valor, dg_valor_distribuido =
dm_valor_distribuido+NEW.dm_valor, dg_modified_by = NEW.dm_modified_by,
dg_last_modified_on = NEW.dm_last_modified_on WHERE ciclo_id = NEW.ciclo_id
AND g_id = NEW.g_id AND tt_id = NEW.tt_id;

END IF;

ELSEIF dg_valor = 0 THEN

IF NEW.dm_metodo_pagamento = 99 THEN

INSERT INTO dg_distribuicao_grupo (dg_id, g_id, tt_id, ciclo_id,


dg_valor_dinheiro, dg_valor_mpesa, dg_valor_distribuido, dg_created_by,
dg_modified_by, dg_created_on, dg_last_modified_on, dg_start_date,
dg_end_date)
VALUES (dg_id+1, NEW.g_id, NEW.tt_id, NEW.ciclo_id, 0, NEW.dm_valor,
NEW.dm_valor, NEW.dm_created_by, NEW.dm_modified_by, NEW.dm_created_on,
NEW.dm_last_modified_on, NEW.dm_start_date, NEW.dm_end_date);

ELSEIF NEW.dm_metodo_pagamento = 100 THEN

INSERT INTO dg_distribuicao_grupo (dg_id, g_id, tt_id, ciclo_id,


dg_valor_dinheiro, dg_valor_mpesa, dg_valor_distribuido, dg_created_by,
dg_modified_by, dg_created_on, dg_last_modified_on, dg_start_date,
dg_end_date)
VALUES (dg_id+1, NEW.g_id, NEW.tt_id, NEW.ciclo_id, NEW.dm_valor, 0,
NEW.dm_valor, NEW.dm_created_by, NEW.dm_modified_by, NEW.dm_created_on,
NEW.dm_last_modified_on, NEW.dm_start_date, NEW.dm_end_date);

END IF;

END IF;

END

# Emprestimo

BEGIN

DECLARE transactionID VARCHAR(40);


DECLARE em_valor_dinheiro DOUBLE;
DECLARE em_valor_mpesa DOUBLE;
DECLARE eg_valor DOUBLE;
DECLARE eg_id INT;
DECLARE transacao_id INT;
TRIGGERs

SET transactionID = (SELECT lt_output_TransactionID FROM lt_logs_transacao


where lt_id = NEW.pagamento_electronico_id AND lt_output_TransactionID <> '');
SET em_valor_dinheiro = (SELECT COALESCE(SUM(eg_valor_dinheiro), 0) FROM
eg_emprestimo_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id);
SET em_valor_mpesa = (SELECT COALESCE(SUM(eg_valor_mpesa), 0) FROM
eg_emprestimo_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id);
SET eg_valor = em_valor_dinheiro+em_valor_mpesa;
SET eg_id = (SELECT COALESCE(MAX(eg_id), 0) FROM eg_emprestimo_grupo);

#inserir valores do emprestimo na tabela t_transacao


INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,
t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca, c_id, t_codigo_transacao,
transaction_code)
VALUES (NEW.m_id, NEW.g_id, 6, NEW.gm_n_membro, NEW.em_valor, 1,
NEW.sessao_id, NEW.ciclo_id, NEW.em_created_by, NEW.em_modified_by,
NEW.em_created_on,
NEW.em_last_modified_on, NEW.em_start_date, NEW.em_end_date, 1,
NEW.em_metodo_pagamento, transactionID, NEW.em_transaction_code);

#inserir valores do juro na tabela t_transacao


INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,
t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca, c_id, t_codigo_transacao,
transaction_code)
VALUES (NEW.m_id, NEW.g_id, 12, NEW.gm_n_membro, NEW.em_juro, 1,
NEW.sessao_id, NEW.ciclo_id, NEW.em_created_by, NEW.em_modified_by,
NEW.em_created_on,
NEW.em_last_modified_on, NEW.em_start_date, NEW.em_end_date, 1,
NEW.em_metodo_pagamento, transactionID, NEW.em_transaction_code);

#recuperar t_id da transacao


#SET transacao_id = (SELECT t_id FROM t_transacao WHERE m_id = NEW.m_id AND
g_id=NEW.g_id AND tt_id= 6 AND t_created_on = NEW.em_created_on);

# adicionar a t_id na tabela


#UPDATE em_emprestimo_membro SET t_id = transacao_id WHERE row_id =
NEW.row_id AND em_id = NEW.em_id;

# adicionar e actualizar os saldos do grupo


IF eg_valor > 0 THEN

IF NEW.em_metodo_pagamento = 99 THEN

UPDATE eg_emprestimo_grupo SET eg_valor_mpesa =


em_valor_mpesa+NEW.em_valor, eg_juros = eg_juros + NEW.em_juro, eg_modified_by
= NEW.em_modified_by, eg_last_modified_on = NEW.em_last_modified_on WHERE
ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id;

ELSEIF NEW.em_metodo_pagamento = 100 THEN


TRIGGERs

UPDATE eg_emprestimo_grupo SET eg_valor_dinheiro =


em_valor_dinheiro+NEW.em_valor, eg_juros = eg_juros + NEW.em_juro,
eg_modified_by = NEW.em_modified_by, eg_last_modified_on =
NEW.em_last_modified_on WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id;

END IF;

ELSEIF eg_valor = 0 THEN

IF NEW.em_metodo_pagamento = 99 THEN

INSERT INTO eg_emprestimo_grupo (eg_id, g_id, ciclo_id,


eg_valor_dinheiro, eg_valor_mpesa, eg_juros, eg_created_by, eg_modified_by,
eg_created_on, eg_last_modified_on, eg_start_date, eg_end_date)
VALUES (eg_id+1, NEW.g_id, NEW.ciclo_id, 0, NEW.em_valor, NEW.em_juro,
NEW.em_created_by, NEW.em_modified_by, NEW.em_created_on,
NEW.em_last_modified_on, NEW.em_start_date, NEW.em_end_date);

ELSEIF NEW.em_metodo_pagamento = 100 THEN

INSERT INTO eg_emprestimo_grupo (eg_id, g_id, ciclo_id,


eg_valor_dinheiro, eg_valor_mpesa, eg_juros, eg_created_by, eg_modified_by,
eg_created_on, eg_last_modified_on, eg_start_date, eg_end_date)
VALUES (eg_id+1, NEW.g_id, NEW.ciclo_id, NEW.em_valor, 0, NEW.em_juro,
NEW.em_created_by, NEW.em_modified_by, NEW.em_created_on,
NEW.em_last_modified_on, NEW.em_start_date, NEW.em_end_date);

END IF;

END IF;

END

#Multa

BEGIN

DECLARE transactionID VARCHAR(40);


DECLARE mm_valor DOUBLE;
DECLARE mg_id INT;
DECLARE transacao_id INT;

SET mm_valor = (SELECT COALESCE(SUM(mg_valor), 0) FROM mg_multa_grupo WHERE


ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id);
SET mg_id = (SELECT COALESCE(MAX(mg_id), 0) FROM mg_multa_grupo);

#inserir valores da transacao na tabela t_transacao


INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,
t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca,c_id, t_codigo_transacao,
transaction_code)
TRIGGERs

VALUES (NEW.m_id, NEW.g_id, 10, NEW.gm_n_membro, NEW.mm_valor, 1,


NEW.sessao_id, NEW.ciclo_id, NEW.mm_created_by, NEW.mm_modified_by,
NEW.mm_created_on,
NEW.mm_last_modified_on, NEW.mm_start_date, NEW.mm_end_date,
1,100,NULL,NEW.mm_transaction_code);

#recuperar t_id da transacao


SET transacao_id = (SELECT t_id FROM t_transacao WHERE m_id = NEW.m_id AND
g_id=NEW.g_id AND tt_id= 10 AND t_created_on = NEW.mm_created_on);

# adicionar a t_id na tabela


UPDATE mm_multa_membro SET t_id = transacao_id WHERE row_id = NEW.row_id AND
mm_id = NEW.mm_id;

IF mm_valor > 0 THEN

UPDATE mg_multa_grupo SET mg_valor = mm_valor+NEW.mm_valor, mg_modified_by =


NEW.mm_modified_by, mg_last_modified_on = NEW.mm_last_modified_on WHERE
ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id;

ELSEIF mm_valor = 0 THEN

INSERT INTO mg_multa_grupo (mg_id, g_id, ciclo_id, mg_valor, mg_created_by,


mg_modified_by, mg_created_on, mg_last_modified_on, mg_start_date,
mg_end_date)
VALUES (mg_id+1, NEW.g_id, NEW.ciclo_id, NEW.mm_valor, NEW.mm_created_by,
NEW.mm_modified_by, NEW.mm_created_on, NEW.mm_last_modified_on,
NEW.mm_start_date, NEW.mm_end_date);
END IF;

END

# Poupanca

BEGIN

DECLARE transactionID VARCHAR(40);


DECLARE pp_valor_dinheiro DOUBLE;
DECLARE pp_valor_mpesa DOUBLE;
DECLARE pg_valor DOUBLE;
DECLARE pg_id INT;
DECLARE transacao_id INT;

SET transactionID = (SELECT lt_output_TransactionID FROM lt_logs_transacao


where lt_id = NEW.pagamento_electronico_id AND lt_output_TransactionID <> '');
SET pp_valor_dinheiro = (SELECT COALESCE(SUM(pg_valor_dinheiro), 0) FROM
pg_poupanca_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id);
SET pp_valor_mpesa = (SELECT COALESCE(SUM(pg_valor_mpesa), 0) FROM
pg_poupanca_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id);
SET pg_valor = pp_valor_dinheiro+pp_valor_mpesa;
SET pg_id = (SELECT COALESCE(MAX(pg_id), 0) FROM pg_poupanca_grupo);

#inserir valores da transacao na tabela t_transacao


TRIGGERs

INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,


t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca, c_id, t_codigo_transacao,
transaction_code)
VALUES (NEW.m_id, NEW.g_id, 3, NEW.gm_n_membro, NEW.pm_valor, 1,
NEW.sessao_id, NEW.ciclo_id, NEW.pm_created_by, NEW.pm_modified_by,
NEW.pm_created_on,
NEW.pm_last_modified_on, NEW.pm_start_date, NEW.pm_end_date,
NEW.pm_presenca, NEW.pm_metodo_pagamento, transactionID,
NEW.pm_transaction_code);

#recuperar t_id da transacao


#SET transacao_id = (SELECT t_id FROM t_transacao WHERE m_id = NEW.m_id AND
g_id=NEW.g_id AND tt_id= 3 AND t_created_on = NEW.pm_created_on);

# adicionar a t_id na tabela


#UPDATE pm_poupanca_membro SET t_id = transacao_id WHERE row_id = NEW.row_id
AND pm_id = NEW.pm_id;

# adicionar e actualizar os saldos do grupo


IF pg_valor > 0 THEN

IF NEW.pm_metodo_pagamento = 99 THEN

UPDATE pg_poupanca_grupo SET pg_valor_mpesa =


pp_valor_mpesa+NEW.pm_valor, pg_modified_by = NEW.pm_modified_by,
pg_last_modified_on = NEW.pm_last_modified_on WHERE ciclo_id = NEW.ciclo_id
AND g_id = NEW.g_id;

ELSEIF NEW.pm_metodo_pagamento = 100 THEN

UPDATE pg_poupanca_grupo SET pg_valor_dinheiro =


pp_valor_dinheiro+NEW.pm_valor, pg_modified_by = NEW.pm_modified_by,
pg_last_modified_on = NEW.pm_last_modified_on WHERE ciclo_id = NEW.ciclo_id
AND g_id = NEW.g_id;

END IF;

ELSEIF pg_valor = 0 THEN

IF NEW.pm_metodo_pagamento = 99 THEN

INSERT INTO pg_poupanca_grupo (pg_id, g_id, ciclo_id,


pg_valor_dinheiro, pg_valor_mpesa, pg_created_by, pg_modified_by,
pg_created_on, pg_last_modified_on, pg_start_date, pg_end_date)
VALUES (pg_id+1, NEW.g_id, NEW.ciclo_id, 0, NEW.pm_valor,
NEW.pm_created_by, NEW.pm_modified_by, NEW.pm_created_on,
NEW.pm_last_modified_on, NEW.pm_start_date, NEW.pm_end_date);

ELSEIF NEW.pm_metodo_pagamento = 100 THEN

INSERT INTO pg_poupanca_grupo (pg_id, g_id, ciclo_id,


pg_valor_dinheiro, pg_valor_mpesa, pg_created_by, pg_modified_by,
pg_created_on, pg_last_modified_on, pg_start_date, pg_end_date)
TRIGGERs

VALUES (pg_id+1, NEW.g_id, NEW.ciclo_id, NEW.pm_valor, 0,


NEW.pm_created_by, NEW.pm_modified_by, NEW.pm_created_on,
NEW.pm_last_modified_on, NEW.pm_start_date, NEW.pm_end_date);

END IF;

END IF;

END

# Reembolso

BEGIN

DECLARE transactionID VARCHAR(40);


DECLARE rm_valor_dinheiro DOUBLE;
DECLARE rm_valor_mpesa DOUBLE;
DECLARE rg_valor DOUBLE;
DECLARE rg_id INT;
DECLARE transacao_id INT;

SET transactionID = (SELECT lt_output_TransactionID FROM lt_logs_transacao


WHERE lt_id = NEW.pagamento_electronico_id AND lt_output_TransactionID <> '');
SET rm_valor_dinheiro = (SELECT COALESCE(SUM(rg_valor_dinheiro), 0) FROM
rg_reembolso_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND tt_id
= NEW.tt_id);
SET rm_valor_mpesa = (SELECT COALESCE(SUM(rg_valor_mpesa), 0) FROM
rg_reembolso_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND tt_id
= NEW.tt_id);
SET rg_valor = rm_valor_dinheiro+rm_valor_mpesa;
SET rg_id = (SELECT COALESCE(MAX(rg_id), 0) FROM rg_reembolso_grupo);

#inserir valores da transacao na tabela t_transacao


INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,
t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca, c_id, t_codigo_transacao,
transaction_code)
VALUES (NEW.m_id, NEW.g_id, NEW.tt_id, NEW.gm_n_membro, NEW.rm_valor, 1,
NEW.sessao_id, NEW.ciclo_id, NEW.rm_created_by, NEW.rm_modified_by,
NEW.rm_created_on,
NEW.rm_last_modified_on, NEW.rm_start_date, NEW.rm_end_date, 1,
NEW.rm_metodo_pagamento, transactionID, NEW.rm_transaction_code);

#recuperar t_id da transacao


#SET transacao_id = (SELECT t_id FROM t_transacao WHERE m_id = NEW.m_id AND
g_id=NEW.g_id AND tt_id= NEW.tt_id AND t_created_on = NEW.rm_created_on);

# adicionar a t_id na tabela


#UPDATE rm_reembolso_membro SET t_id = transacao_id WHERE row_id = NEW.row_id
AND rm_id = NEW.rm_id;
TRIGGERs

# adicionar e actualizar os saldos do grupo


IF rg_valor > 0 THEN

IF NEW.rm_metodo_pagamento = 99 THEN

UPDATE rg_reembolso_grupo SET rg_valor_mpesa =


rg_valor_mpesa+NEW.rm_valor, rg_juro_mpesa = rg_juro_mpesa+NEW.rm_juro,
rg_modified_by = NEW.rm_modified_by, rg_last_modified_on =
NEW.rm_last_modified_on WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND
tt_id = NEW.tt_id;

ELSEIF NEW.rm_metodo_pagamento = 100 THEN

UPDATE rg_reembolso_grupo SET rg_valor_dinheiro =


rg_valor_dinheiro+NEW.rm_valor, rg_juro_dinheiro =
rg_juro_dinheiro+NEW.rm_juro, rg_modified_by = NEW.rm_modified_by,
rg_last_modified_on = NEW.rm_last_modified_on WHERE ciclo_id = NEW.ciclo_id
AND g_id = NEW.g_id AND tt_id = NEW.tt_id;

END IF;

ELSEIF rg_valor = 0 THEN

IF NEW.rm_metodo_pagamento = 99 THEN

INSERT INTO rg_reembolso_grupo (rg_id, g_id, tt_id, ciclo_id,


rg_valor_dinheiro, rg_valor_mpesa, rg_juro_dinheiro, rg_juro_mpesa,
rg_created_by, rg_modified_by, rg_created_on, rg_last_modified_on,
rg_start_date, rg_end_date)
VALUES (rg_id+1, NEW.g_id, NEW.tt_id, NEW.ciclo_id, 0, NEW.rm_valor, 0,
NEW.rm_juro, NEW.rm_created_by, NEW.rm_modified_by, NEW.rm_created_on,
NEW.rm_last_modified_on, NEW.rm_start_date, NEW.rm_end_date);

ELSEIF NEW.rm_metodo_pagamento = 100 THEN

INSERT INTO rg_reembolso_grupo (rg_id, g_id, tt_id, ciclo_id,


rg_valor_dinheiro, rg_valor_mpesa, rg_juro_dinheiro, rg_juro_mpesa,
rg_created_by, rg_modified_by, rg_created_on, rg_last_modified_on,
rg_start_date, rg_end_date)
VALUES (rg_id+1, NEW.g_id, NEW.tt_id, NEW.ciclo_id, NEW.rm_valor, 0,
NEW.rm_juro, 0, NEW.rm_created_by, NEW.rm_modified_by, NEW.rm_created_on,
NEW.rm_last_modified_on, NEW.rm_start_date, NEW.rm_end_date);

END IF;

END IF;

END

# taxa_membro
TRIGGERs

BEGIN

DECLARE transactionID VARCHAR(40);


DECLARE tx_valor_dinheiro DOUBLE;
DECLARE tx_valor_mpesa DOUBLE;
DECLARE tg_valor DOUBLE;
DECLARE tg_id INT;
DECLARE transacao_id INT;

SET transactionID = (SELECT lt_output_TransactionID FROM lt_logs_transacao


where lt_id = NEW.pagamento_electronico_id AND lt_output_TransactionID <> '');
SET tx_valor_dinheiro = (SELECT COALESCE(SUM(tg_valor_dinheiro), 0) FROM
tg_taxa_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND tt_id =
NEW.tt_id);
SET tx_valor_mpesa = (SELECT COALESCE(SUM(tg_valor_mpesa), 0) FROM
tg_taxa_grupo WHERE ciclo_id = NEW.ciclo_id AND g_id = NEW.g_id AND tt_id =
NEW.tt_id);
SET tg_valor = tx_valor_dinheiro+tx_valor_mpesa;
SET tg_id = (SELECT COALESCE(MAX(tg_id), 0) FROM tg_taxa_grupo);

#inserir valores da transacao na tabela t_transacao


INSERT INTO t_transacao (m_id, g_id, tt_id, gm_n_membro, t_valor,
t_transacao_valida, sessao_id, ciclo_id, t_created_by, t_modified_by,
t_created_on, t_last_modified_on,
t_start_date, t_end_date, t_presenca, c_id, t_codigo_transacao,
transaction_code)
VALUES (NEW.m_id, NEW.g_id, NEW.tt_id, NEW.gm_n_membro, NEW.tm_valor, 1,
NEW.sessao_id, NEW.ciclo_id, NEW.tm_created_by, NEW.tm_modified_by,
NEW.tm_created_on,
NEW.tm_last_modified_on, NEW.tm_start_date, NEW.tm_end_date,
NEW.tm_presenca, NEW.tm_metodo_pagamento, transactionID,
NEW.tm_transaction_code);

#recuperar t_id da transacao


#SET transacao_id = (SELECT t_id FROM t_transacao WHERE m_id = NEW.m_id AND
g_id=NEW.g_id AND tt_id= NEW.tt_id AND t_created_on = NEW.tm_created_on);

# adicionar a t_id na tabela


#UPDATE tm_taxa_membro SET t_id = transacao_id WHERE row_id = NEW.row_id AND
tm_id = NEW.tm_id;

# adicionar e actualizar os saldos do grupo


IF tg_valor > 0 THEN

IF NEW.tm_metodo_pagamento = 99 THEN

UPDATE tg_taxa_grupo SET tg_valor_mpesa =


tx_valor_mpesa+NEW.tm_valor, tg_modified_by = NEW.tm_modified_by,
tg_last_modified_on = NEW.tm_last_modified_on WHERE ciclo_id = NEW.ciclo_id
AND g_id = NEW.g_id AND tt_id = NEW.tt_id;

ELSEIF NEW.tm_metodo_pagamento = 100 THEN

UPDATE tg_taxa_grupo SET tg_valor_dinheiro =


tx_valor_dinheiro+NEW.tm_valor, tg_modified_by = NEW.tm_modified_by,
TRIGGERs

tg_last_modified_on = NEW.tm_last_modified_on WHERE ciclo_id = NEW.ciclo_id


AND g_id = NEW.g_id AND tt_id = NEW.tt_id;

END IF;

ELSEIF tg_valor = 0 THEN

IF NEW.tm_metodo_pagamento = 99 THEN

INSERT INTO tg_taxa_grupo (tg_id, g_id, ciclo_id, tt_id,


tg_valor_dinheiro, tg_valor_mpesa, tg_created_by, tg_modified_by,
tg_created_on, tg_last_modified_on, tg_start_date, tg_end_date)
VALUES (tg_id+1, NEW.g_id, NEW.ciclo_id, NEW.tt_id, 0, NEW.tm_valor,
NEW.tm_created_by, NEW.tm_modified_by, NEW.tm_created_on,
NEW.tm_last_modified_on, NEW.tm_start_date, NEW.tm_end_date);

ELSEIF NEW.tm_metodo_pagamento = 100 THEN

INSERT INTO tg_taxa_grupo (tg_id, g_id, ciclo_id, tt_id,


tg_valor_dinheiro, tg_valor_mpesa, tg_created_by, tg_modified_by,
tg_created_on, tg_last_modified_on, tg_start_date, tg_end_date)
VALUES (tg_id+1, NEW.g_id, NEW.ciclo_id, NEW.tt_id, NEW.tm_valor,
0, NEW.tm_created_by, NEW.tm_modified_by, NEW.tm_created_on,
NEW.tm_last_modified_on, NEW.tm_start_date, NEW.tm_end_date);

END IF;

END IF;

END
------------------------------------------------------------------------------------------------------------------------------------------

Você também pode gostar