Changes between Version 5 and Version 6 of DatabaseProgramming
- Timestamp:
- 05/26/26 16:22:07 (10 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DatabaseProgramming
v5 v6 7 7 == Функции 8 8 9 === fn_slobodni_mesta(p_eventid) 9 === fn_slobodni_mesta(p_eventid) - Слободни места за настан 10 10 11 11 {{{ … … 32 32 33 33 SELECT fn_slobodni_mesta(100) AS slobodni_mesta; 34 -- Резултат: 73634 -- Резултат: slobodni_mesta 736 35 35 }}} 36 36 … … 39 39 ---- 40 40 41 === fn_prihod_po_nastan(p_eventid) 41 === fn_prihod_po_nastan(p_eventid) - Вкупен приход по настан 42 42 43 43 {{{ … … 66 66 ---- 67 67 68 === fn_moze_review(p_userid, p_eventid) 68 === fn_moze_review(p_userid, p_eventid) - Дозвола за оставање рецензија 69 69 70 70 {{{ … … 104 104 ---- 105 105 106 === fn_statistika_recenzii(p_eventid) 106 === fn_statistika_recenzii(p_eventid) - Вкупно рецензии и просечен рејтинг 107 107 108 108 {{{ … … 140 140 ---- 141 141 142 === fn_pozicija_vo_waitlist(p_userid, p_eventid) 142 === fn_pozicija_vo_waitlist(p_userid, p_eventid) - Реден број на чекање во waitlist 143 143 144 144 {{{ … … 172 172 173 173 SELECT fn_pozicija_vo_waitlist(2, 1) AS pozicija; 174 -- Резултат: 1174 -- Резултат: pozicija 1 175 175 }}} 176 176 … … 179 179 ---- 180 180 181 === fn_verifikacija_tiket(p_ticketid) 181 === fn_verifikacija_tiket(p_ticketid) - Верификација на тикет 182 182 183 183 {{{ … … 221 221 == Процедури 222 222 223 === proc_najavi_korisnik(p_email, p_password) 223 === proc_najavi_korisnik(p_email, p_password) - Најава на корисник 224 224 225 225 {{{ … … 248 248 LIMIT 1; 249 249 250 RAISE NOTICE 'Korisnikot % se prijavi kako %', p_email, v_role_name;250 RAISE NOTICE 'Korisnikot % se najavi kako %', p_email, v_role_name; 251 251 END; 252 252 $$; 253 253 254 SELECT email, user_password FROM app_user WHERE id != 1 LIMIT 1; 255 -- Gertie.Gold0@gmail.com GertieGold 256 254 257 CALL proc_najavi_korisnik('Gertie.Gold0@gmail.com', 'GertieGold'); 255 -- Резултат: Korisnikot Gertie.Gold0@gmail.com se prijavi kako USER258 -- Резултат: Korisnikot Gertie.Gold0@gmail.com se najavi kako USER 256 259 }}} 257 260 … … 260 263 ---- 261 264 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) - Купување тикет 263 266 264 267 {{{ … … 327 330 ---- 328 331 329 === proc_plati_narachka(p_orderid, p_payment_methodid) 332 === proc_plati_narachka(p_orderid, p_payment_methodid) - Плаќање на нарачка 330 333 331 334 {{{ … … 373 376 $$; 374 377 378 SELECT uo.id 379 FROM user_order uo 380 JOIN status s ON s.id = uo.statusid 381 WHERE s.status_name = 'CREATED' 382 LIMIT 1; 383 375 384 CALL 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 377 388 }}} 378 389 … … 381 392 ---- 382 393 383 === proc_otkazi_narachka(p_orderid) 394 === proc_otkazi_narachka(p_orderid) - Откажување на нарачка 384 395 385 396 {{{ … … 418 429 $$; 419 430 431 -- Барање на order со COMPLETED payment 432 SELECT uo.id, count(t.id) AS tiketi 433 FROM user_order uo 434 JOIN payment p ON p.user_orderid = uo.id AND p.status = 'COMPLETED' 435 LEFT JOIN ticket t ON t.user_orderid = uo.id 436 GROUP BY uo.id 437 ORDER BY tiketi ASC 438 LIMIT 5; 439 420 440 CALL proc_otkazi_narachka(12500001); 421 441 }}} … … 425 445 ---- 426 446 427 === proc_dodaj_vo_waitlist(p_userid, p_eventid) 447 === proc_dodaj_vo_waitlist(p_userid, p_eventid) - Додавање корисник на waitlist 428 448 429 449 {{{ … … 478 498 ---- 479 499 480 === proc_ostavi_review(p_userid, p_eventid, p_rating, p_comment) 500 === proc_ostavi_review(p_userid, p_eventid, p_rating, p_comment) - Оставање на рецензија 481 501 482 502 {{{ … … 511 531 $$; 512 532 533 SELECT app_userid, eventid 534 FROM ticket 535 WHERE status = 'USED' 536 LIMIT 1; 537 513 538 CALL proc_ostavi_review(21615, 49952, 5, 'Odlichno iskustvo!'); 514 539 -- Резултат: Review e ostaveno za event 49952 od korisnik 21615 … … 521 546 == Тригери 522 547 523 === trig_waitlist 548 === trig_waitlist - При откажан тикет --> confirm на следниот user од waitlist 524 549 525 550 {{{ … … 553 578 EXECUTE FUNCTION fn_trig_waitlist(); 554 579 555 -- Test556 580 UPDATE ticket SET status = 'CANCELLED' WHERE id = ( 557 581 SELECT t.id FROM ticket t … … 565 589 ---- 566 590 567 === trig_refund 591 === trig_refund - Заштита од двоен refund 568 592 569 593 {{{ … … 588 612 EXECUTE FUNCTION fn_trig_refund(); 589 613 590 -- Test 614 SELECT paymentid FROM refund 615 WHERE status IN ('REQUESTED', 'APPROVED') 616 LIMIT 1; 617 591 618 INSERT INTO refund (amount, reason, status, paymentid) 592 619 VALUES (100, 'Test duplikat', 'REQUESTED', 1); 593 -- Резултат: E RROR: Vekje postoi refund za payment 1620 -- Резултат: Error: Vekje postoi refund za payment 1 594 621 }}} 595 622 … … 598 625 ---- 599 626 600 === trig_quantity 627 === trig_quantity - Ажурирање на quantity_available при купување и откажување 601 628 602 629 {{{
