Changes between Version 5 and Version 6 of DatabaseProgramming


Ignore:
Timestamp:
05/26/26 16:22:07 (10 hours ago)
Author:
231070
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v5 v6  
    77== Функции
    88
    9 === fn_slobodni_mesta(p_eventid)
     9=== fn_slobodni_mesta(p_eventid) - Слободни места за настан
    1010
    1111{{{
     
    3232
    3333SELECT fn_slobodni_mesta(100) AS slobodni_mesta;
    34 -- Резултат: 736
     34-- Резултат: slobodni_mesta 736
    3535}}}
    3636
     
    3939----
    4040
    41 === fn_prihod_po_nastan(p_eventid)
     41=== fn_prihod_po_nastan(p_eventid) - Вкупен приход по настан
    4242
    4343{{{
     
    6666----
    6767
    68 === fn_moze_review(p_userid, p_eventid)
     68=== fn_moze_review(p_userid, p_eventid) - Дозвола за оставање рецензија
    6969
    7070{{{
     
    104104----
    105105
    106 === fn_statistika_recenzii(p_eventid)
     106=== fn_statistika_recenzii(p_eventid) - Вкупно рецензии и просечен рејтинг
    107107
    108108{{{
     
    140140----
    141141
    142 === fn_pozicija_vo_waitlist(p_userid, p_eventid)
     142=== fn_pozicija_vo_waitlist(p_userid, p_eventid) - Реден број на чекање во waitlist
    143143
    144144{{{
     
    172172
    173173SELECT fn_pozicija_vo_waitlist(2, 1) AS pozicija;
    174 -- Резултат: 1
     174-- Резултат: pozicija 1
    175175}}}
    176176
     
    179179----
    180180
    181 === fn_verifikacija_tiket(p_ticketid)
     181=== fn_verifikacija_tiket(p_ticketid) - Верификација на тикет
    182182
    183183{{{
     
    221221== Процедури
    222222
    223 === proc_najavi_korisnik(p_email, p_password)
     223=== proc_najavi_korisnik(p_email, p_password) - Најава на корисник
    224224
    225225{{{
     
    248248    LIMIT 1;
    249249
    250     RAISE NOTICE 'Korisnikot % se prijavi kako %', p_email, v_role_name;
     250    RAISE NOTICE 'Korisnikot % se najavi kako %', p_email, v_role_name;
    251251END;
    252252$$;
    253253
     254SELECT email, user_password  FROM app_user WHERE id != 1 LIMIT 1;
     255-- Gertie.Gold0@gmail.com         GertieGold
     256
    254257CALL proc_najavi_korisnik('Gertie.Gold0@gmail.com', 'GertieGold');
    255 -- Резултат: Korisnikot Gertie.Gold0@gmail.com se prijavi kako USER
     258-- Резултат: Korisnikot Gertie.Gold0@gmail.com se najavi kako USER
    256259}}}
    257260
     
    260263----
    261264
    262 === proc_kupi_tiket(p_userid, p_eventid, p_hallid, p_typeid, p_seatid, p_promo_codeid)
     265=== proc_kupi_tiket(p_userid, p_eventid, p_hallid, p_typeid, p_seatid, p_promo_codeid) - Купување тикет
    263266
    264267{{{
     
    327330----
    328331
    329 === proc_plati_narachka(p_orderid, p_payment_methodid)
     332=== proc_plati_narachka(p_orderid, p_payment_methodid) - Плаќање на нарачка
    330333
    331334{{{
     
    373376$$;
    374377
     378SELECT uo.id
     379FROM user_order uo
     380JOIN status s ON s.id = uo.statusid
     381WHERE s.status_name = 'CREATED'
     382LIMIT 1;
     383
    375384CALL proc_plati_narachka(4, 1);
    376 -- Резултат: Order 4 e platen so iznos 3000
     385-- Резултат:
     386-- Order 4 e azuriran vo PAID
     387-- Order 4 e platеn so iznos 3000
    377388}}}
    378389
     
    381392----
    382393
    383 === proc_otkazi_narachka(p_orderid)
     394=== proc_otkazi_narachka(p_orderid) - Откажување на нарачка
    384395
    385396{{{
     
    418429$$;
    419430
     431-- Барање на order со COMPLETED payment
     432SELECT uo.id, count(t.id) AS tiketi
     433FROM user_order uo
     434JOIN payment p ON p.user_orderid = uo.id AND p.status = 'COMPLETED'
     435LEFT JOIN ticket t ON t.user_orderid = uo.id
     436GROUP BY uo.id
     437ORDER BY tiketi ASC
     438LIMIT 5;
     439
    420440CALL proc_otkazi_narachka(12500001);
    421441}}}
     
    425445----
    426446
    427 === proc_dodaj_vo_waitlist(p_userid, p_eventid)
     447=== proc_dodaj_vo_waitlist(p_userid, p_eventid) - Додавање корисник на waitlist
    428448
    429449{{{
     
    478498----
    479499
    480 === proc_ostavi_review(p_userid, p_eventid, p_rating, p_comment)
     500=== proc_ostavi_review(p_userid, p_eventid, p_rating, p_comment) - Оставање на рецензија
    481501
    482502{{{
     
    511531$$;
    512532
     533SELECT app_userid, eventid
     534FROM ticket
     535WHERE status = 'USED'
     536LIMIT 1;
     537
    513538CALL proc_ostavi_review(21615, 49952, 5, 'Odlichno iskustvo!');
    514539-- Резултат: Review e ostaveno za event 49952 od korisnik 21615
     
    521546== Тригери
    522547
    523 === trig_waitlist
     548=== trig_waitlist - При откажан тикет --> confirm на следниот user од waitlist
    524549
    525550{{{
     
    553578EXECUTE FUNCTION fn_trig_waitlist();
    554579
    555 -- Test
    556580UPDATE ticket SET status = 'CANCELLED' WHERE id = (
    557581    SELECT t.id FROM ticket t
     
    565589----
    566590
    567 === trig_refund
     591=== trig_refund - Заштита од двоен refund
    568592
    569593{{{
     
    588612EXECUTE FUNCTION fn_trig_refund();
    589613
    590 -- Test
     614SELECT paymentid FROM refund
     615WHERE status IN ('REQUESTED', 'APPROVED')
     616LIMIT 1;
     617
    591618INSERT INTO refund (amount, reason, status, paymentid)
    592619VALUES (100, 'Test duplikat', 'REQUESTED', 1);
    593 -- Резултат: ERROR: Vekje postoi refund za payment 1
     620-- Резултат: Error: Vekje postoi refund za payment 1
    594621}}}
    595622
     
    598625----
    599626
    600 === trig_quantity
     627=== trig_quantity - Ажурирање на quantity_available при купување и откажување
    601628
    602629{{{