= Атомично креирање на финансиска трансакција со повеќе помошни финансиски трансакции Корисникот креира сложена трансакција со следните карактеристики: - Име на трансакција: //"Ручек со колеги" - Вкупен износ: //2500 МКД - Датум: //тековен датум - Таг: //Food - Плаќање: //2500 МКД платени од Cash - Поврат: //1000 МКД добиени назад на Bank Account Оваа операција мора да: - креира еден запис во `transaction` - креира два записи во `transaction_breakdown` доколку не се фрли исклучок за лимитот - ажурира баланси на двете сметки - пресмета точен `net_amount` - додели таг на трансакцијата {{{#!sql 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; }}}