Атомично креирање на финансиска трансакција со повеќе помошни финансиски трансакции
Корисникот креира сложена трансакција со следните карактеристики:
- Име на трансакција: "Ручек со колеги"
- Вкупен износ: 2500 МКД
- Датум: тековен датум
- Таг: Food
- Плаќање: 2500 МКД платени од Cash
- Поврат: 1000 МКД добиени назад на Bank Account
Оваа операција мора да:
- креира еден запис во
transaction - креира два записи во
transaction_breakdownдоколку не се фрли исклучок за лимитот - ажурира баланси на двете сметки
- пресмета точен
net_amount - додели таг на трансакцијата
BEGIN;
-- Се активира тригерот `trg_set_transaction_date`
INSERT INTO transaction (
transaction_name,
amount,
net_amount,
date
)
VALUES (
'Ручек со колеги',
2500,
0,
NOW()
);
-- Се активира тригерот `trg_cash_account_limit`
INSERT INTO transaction_breakdown (
transaction_id,
transaction_account_id,
spent_amount,
earned_amount
)
VALUES (
currval('transaction_transaction_id_seq'),
1,
2500,
0
);
-- Се активира тригерот `trg_update_transaction_account_balance`
-- Се активира тригерот `trg_update_transaction_net_amount`
-- Се активира тригерот `trg_debit_account_limit`
INSERT INTO transaction_breakdown (
transaction_id,
transaction_account_id,
spent_amount,
earned_amount
)
VALUES (
currval('transaction_transaction_id_seq'),
2,
0,
1000
);
-- Се активира тригерот `trg_update_transaction_account_balance`
-- Се активира тригерот `trg_update_transaction_net_amount`
INSERT INTO tag_assigned_to_transaction (
transaction_id,
tag_id
)
VALUES (
currval('transaction_transaction_id_seq'),
1
);
COMMIT;
Last modified
45 hours ago
Last modified on 01/07/26 22:49:25
Note:
See TracWiki
for help on using the wiki.
