Changes between Initial Version and Version 1 of DodavanjeTransakcija


Ignore:
Timestamp:
12/09/24 19:21:34 (5 weeks ago)
Author:
211101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DodavanjeTransakcija

    v1 v1  
     1== Додавање трансакција
     2
     3==== Актери: Најавен корисник
     41. Корисникот притиска на копчето за додавање на трансакции
     52. Се отвора форма каде корисникот ги внесува следните детали за трансакцијата:
     6 - Дали трансакцијата додава или одзема од сметка (задолжително поле)
     7 - Име на трансакција (задолжително поле)
     8 - Износ на цела трансакција (задолжително поле)
     9 - Датум на трансакцијата (опционално, доколку не се внесе се зема моменталното време)
     10 - Таг за категоризација (опционално, но препорачливо)
     11 - Сметка на која трансакцијата се поврзува (се бира од достапните)
     123. Корисникот може да додаде дополнителни детали преку динамично додавање на полиња со клик на копче за додавање кои ќе бидат зачувани како {{{earned_amount}}} и {{{spent_amount}}} во табелата {{{transaction_breakdown}}}
     134. Апликацијата ги валидира внесените податоци (на пример, проверува дали сите задолжителни полиња се пополнети и дали износот е валиден број)
     145. Апликацијата внесува нов запис во табелата {{{transaction}}}:
     15{{{#!sql
     16INSERT INTO transaction (transaction_name, amount, net_amount, date, tag_id)
     17VALUES ('Пазарување', 3500.00, 0, '2024-11-23 13:51:35+02:00', 3);
     18RETURNING transaction_id;
     19}}}
     206. Трансакцијата тригерира креирање запис во {{{transaction_breakdown}}} кој исто така ја ажурира сметката и пресметува {{{net_amount}}} преку тригер:
     21- Во зависност од тоа дали трансакцијата додава или одзема се прави додавање во соодветното поле на {{{transaction_breakdown}}}:
     22 - За додавање на сметка:
     23{{{#!sql
     24INSERT INTO transaction_breakdown (transaction_id, transaction_account_id, earned_amount, spent_amount)
     25VALUES (1, 2, 3500, 0);
     26}}}
     27 - За одземање од сметка:
     28{{{#!sql
     29INSERT INTO transaction_breakdown (transaction_id, transaction_account_id, earned_amount, spent_amount)
     30VALUES (1, 2, 0, 3500);
     31}}}
     32 - На крај се ажурира балансот во {{{transaction_account}}}
     33{{{#!sql
     34UPDATE transaction_account:
     35SET balance = balance - 3500
     36WHERE transaction_account_id = 2;
     37}}}
     387. Ако корисникот додал дополнителни детали преку динамично додавање на полиња(на пример, {{{earned_amount}}} и {{{spent_amount}}}), апликацијата внесува соодветни записи во табелата {{{transaction_breakdown}}}:
     39{{{#!sql
     40INSERT INTO transaction_breakdown (transaction_id, transaction_account_id, earned_amount, spent_amount)
     41VALUES (1, 2, 0, 1500),
     42       (1, 3, 200, 0);
     43}}}
     448. Тригер во базата:
     45 - Автоматски ја пресметува и ажурира вредноста на {{{net_amount}}} во табелата {{{transaction}}} според деталите внесени во табелата {{{transaction_breakdown}}}
     469. По успешното додавање, тригерот:
     47 - Го ажурира балансот на поврзаната трансакциска сметка во табелата {{{transaction_account}}}:
     48{{{#!sql
     49UPDATE transaction_account
     50SET balance = balance - 1500 + 200
     51WHERE transaction_account_id IN (2, 3);
     52}}}
     53 - Го известува корисникот за успешното додавање на трансакцијата.