Changes between Initial Version and Version 1 of Transaction1


Ignore:
Timestamp:
01/07/26 18:19:34 (2 days ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Transaction1

    v1 v1  
     1= Атомично креирање на финансиска трансакција
     2
     3Корисникот креира нова финансиска трансакција со следните податоци:
     4- Име на финансиска трансакција:// „Пазарување во маркет“
     5- Датум:// тековен датум
     6- Трансакциска сметка:// Cash Account (id = 1)
     7- Потрошен износ:// 3000 МКД
     8- Заработен износ:// 0 МКД
     9Оваа акција мора да резултира со:
     10- нов запис во табелата `transaction` со автоматско поставен тековен датум
     11- нов запис во `transaction_breakdown` доколку проверката за лимит не фрли исклучок
     12- автоматско ажурирање на балансот на трансакциската сметка
     13- точна пресметка на `net_amount`
     14**Доколку било кој чекор не успее, ниеден податок не смее да остане запишан во базата.
     15Се прави автоматски `ROLLBACK` ако настане грешка**
     16
     17{{{#!sql
     18BEGIN;
     19
     20-- Се активира тригерот `trg_set_transaction_date`
     21
     22INSERT INTO transaction (
     23    transaction_name,
     24    amount
     25)
     26VALUES (
     27    'Пазарување во маркет',
     28    3000
     29);
     30
     31-- Се активира тригерот `trg_cash_account_limit`
     32
     33INSERT INTO transaction_breakdown (
     34    transaction_id,
     35    transaction_account_id,
     36    spent_amount,
     37    earned_amount
     38)
     39VALUES (
     40    currval('transaction_transaction_id_seq'),
     41    1,
     42    3000,
     43    0
     44);
     45
     46-- Се активира тригерот `trg_update_transaction_account_balance`
     47
     48-- Се активира тригерот `trg_update_transaction_net_amount`
     49
     50COMMIT;
     51-- ROLLBACK ако настане грешка
     52}}}