Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- create or replace PROCEDURE MAAK_TICKETS
- (festivalnr NUMBER)
- AS
- TYPE type_tab_tick IS TABLE
- OF tickets%ROWTYPE
- INDEX BY PLS_INTEGER;
- r_festival festivals%ROWTYPE;
- t_tickets type_tab_tick;
- v_pdagtickets NUMBER(3) := 45;
- v_pviptickets NUMBER(3) := 10;
- v_pcombitickets NUMBER(3) := 45;
- BEGIN
- SELECT *
- INTO r_festival
- FROM festivals
- WHERE festivalnr = festivalnr;
- FOR i IN 1..(r_festival.capaciteit * 1.55)
- LOOP
- t_tickets(i).ticketnr := seq_festivalnr.NEXTVAL;
- t_tickets(i).omschrijving := 'Automatisch gegenereerd';
- t_tickets(i).festivalnr := r_festival.festivalnr;
- t_tickets(i).verkoopnr := null;
- IF i <= r_festival.capaciteit * v_pdagtickets / 100
- THEN
- t_tickets(i).begindatum := r_festival.startdatum;
- t_tickets(i).einddatum := r_festival.startdatum;
- t_tickets(i).tickettypenr := 3;
- ELSIF i <= r_festival.capaciteit * v_pdagtickets / 100 * 2
- THEN
- t_tickets(i).begindatum := r_festival.einddatum;
- t_tickets(i).einddatum := r_festival.einddatum;
- t_tickets(i).tickettypenr := 3;
- ELSIF i <= r_festival.capaciteit * (v_pdagtickets*2 + v_pviptickets) / 100
- THEN
- t_tickets(i).begindatum := r_festival.startdatum;
- t_tickets(i).einddatum := r_festival.startdatum;
- t_tickets(i).tickettypenr := 1;
- ELSIF i <= r_festival.capaciteit * (v_pdagtickets*2 + v_pviptickets*2) / 100
- THEN
- t_tickets(i).begindatum := r_festival.einddatum;
- t_tickets(i).einddatum := r_festival.einddatum;
- t_tickets(i).tickettypenr := 1;
- ELSE
- t_tickets(i).begindatum := r_festival.startdatum;
- t_tickets(i).einddatum := r_festival.einddatum;
- t_tickets(i).tickettypenr := 2;
- END IF;
- END LOOP;
- FORALL i IN INDICES OF t_tickets
- INSERT INTO tickets VALUES t_tickets(i);
- COMMIT;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement