Guest User

Untitled

a guest
Jul 18th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.87 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION cash_out_ticket(party_id IN softdev.casino_users.party_id%TYPE ,session_id IN softdev.bus_session.session_id%TYPE
  2. ) RETURN NUMBER AS ret_val NUMBER;
  3.  
  4. P_EXCHANGE_BET_CREDITS softdev.COUNTRY.EXCHANGE_BET_CREDITS%type;
  5. P_EXCHANGE_VALUE softdev.COUNTRY.EXCHANGE_VALUE%type;
  6. p_reserved_funds softdev.casino_users.credits%type;
  7. p_session_id softdev.bus_session.session_id%type;
  8. p_session_close softdev.bus_session.session_close%type;
  9. ticket_closed exception;
  10.  
  11. CURSOR cur_tkt_sess (party_id IN softdev.casino_users.party_id%TYPE,session_id IN softdev.bus_session.session_id%TYPE)
  12. IS
  13. SELECT bs.session_id
  14. ,tii.status
  15. ,ROW_NUMBER() OVER (PARTITION BY bs.session_id ORDER BY status ASC) rn
  16. ,NVL(TO_CHAR(bs.started, 'DD.MM.YYYY HH24:MI'), 'Live') started
  17. ,bs.bet bet
  18. -- ,bs.player_win * P_EXCHANGE_BET_CREDITS / P_EXCHANGE_VALUE AS possible_win
  19. -- ,bs.house_win AS odds
  20. ,tii.time_p
  21. ,tii.live_prematch
  22. ,cash_out(bet) cash_out
  23. FROM bus_session bs
  24. ,ticket_items tii
  25. WHERE bs.session_id = tii.bus_session_session_id
  26. AND bs.session_type = 'TICKET SESSION'
  27. AND bs.party_id = cur_tkt_sess.party_id
  28. AND bs.session_id = cur_tkt_sess.session_id
  29. AND NVL(bs.session_close, 'N') = 'N';
  30. rec_tkt_sess cur_tkt_sess%ROWTYPE;
  31.  
  32. BEGIN
  33. CHAGE_CREDITS (party_id, P_EXCHANGE_BET_CREDITS, P_EXCHANGE_VALUE);
  34. OPEN cur_tkt_sess(cash_out_ticket.party_id, cash_out_ticket.session_id);
  35.  
  36. FETCH cur_tkt_sess
  37. INTO rec_tkt_sess;
  38.  
  39. IF(cur_tkt_sess%FOUND) THEN
  40.  
  41. IF(
  42. (TO_DATE(rec_tkt_sess.started,'DD.MM.YYYY HH24:MI:SS') +1 <=SYSDATE) -- je li tiket stariji od 24h
  43. OR
  44. (rec_tkt_sess.live_prematch != '0') --je li live (1 live , 0 not live)
  45. OR
  46. (rec_tkt_sess.time_p <SYSDATE) -- je li utakmice počela
  47. )
  48. THEN
  49. ret_val := 0;
  50. ELSE
  51. ret_val := rec_tkt_sess.cash_out* P_EXCHANGE_BET_CREDITS / P_EXCHANGE_VALUE;
  52.  
  53. play_beting.end_of_ticket(cash_out_ticket.session_id ,rec_tkt_sess.cash_out* P_EXCHANGE_BET_CREDITS / P_EXCHANGE_VALUE ,cash_out_ticket.party_id );
  54. --this procedure do updates , does not return anything. And it need to be run when conditions are fulfilled.
  55.  
  56. END IF;
  57.  
  58. ELSE
  59. ret_val := -1;
  60.  
  61. END IF;
  62.  
  63. RETURN(ret_val);
  64. END cash_out_ticket;
Add Comment
Please, Sign In to add comment