== Правење на резервација === Актери - '''Најавен Корисник''' === Чекор 1 Корисникот се наоѓа на почетната страна на апликацијата. \\ [[Image(wiki:ImportantUseCase4:clientlogged.jpg)]] === Чекор 2 Корисникот клика на копчето Програма од навигацијата каде му се прикажуваат сите филмови моментално достапни во сите кина. \\ [[Image(wiki:ImportantUseCase4:clientloggedPointer.jpg)]]\\ {{{#!sql select f."name" ,f.genre,f.age_category ,f.description from films where now() between start_date and end_date }}} === Чекор 3 [[Image(wiki:ImportantUseCase4:projectionClientPoint.jpg)]]\\ Корисникот може да ги филтрира филмовите според киното во кое се прикажуваат моментално. \\ === Чекор 4 [[Image(wiki:ImportantUseCase4:projectionClientPoint.jpg)]]\\ Со кликање на копчето резервирај, корисникот е пренасочен кон друга страна каде може да избере конкретна проекција \\ === Чекор 5 Се прикажуваат повеќе опаѓачки листи кои се филтрираат во зависност од предходните избрани податоци. Корисникот започнува со избирање на еден од понудените датуми. За избраниот датум на кој ја има проекцијата може да избере сала, за таа сала се нудат времињата во кои го има филмот тој ден. Корисникот има избор за тип на седиште и број на седиште и на крај може да внесе код за попуст. \\ [[Image(wiki:ImportantUseCase4:CONFIRM1.jpg)]] Добивање на салите според одредено кино и филм. {{{#!sql select pr.projection_room_number from projection_rooms pr join cinemas c on c.id_cinema=pr.id_cinema and c.id_cinema=1 join projection_is_played_in_room pipir on pipir.id_room=pr.id_room join projections p on p.id_projection = pipir .id_projection join films f on f.id_film =p.id_film and f.id_film = 1 ) }}} Добивање на времето според киното, филмот и собата {{{#!sql select date_time_start from projections p join films f on f.id_film=p.id_film and f.id_film =1 join cinema_plays_film cpf on cpf.id_film=f.id_film and cpf.id_cinema=1 join projection_is_played_in_room pipir on p.id_projection=pipir .id_projection and pipir.id_room=1 ) }}} Претставување на типовите на седиште. {{{#!sql select name from categories }}} Претставување на седиштата каде има избор и се од селектираниот тип. {{{#!sql select seat_number from seats s join projection_rooms pr on pr.id_room =s.id_room and pr.id_room = 1 join cinemas c on c.id_cinema=pr.id_cinema and c.id_cinema=1 join projection_is_played_in_room pipir on pipir.id_room=pr.id_room join projections p on p.id_projection = pipir .id_projection join films f on f.id_film =p.id_film and f.id_film = 1 where s.id_category = 3 }}} Проверува === Чекор 6 Се прави проверка на валидноста на внесениот код за попуст. \\ {{{#!sql select percent from discounts d where validity<=now() and code='DFL2' }}} === Чекор 5 Корисникот за да си ја поврди резервацијата кликнува на копчето резервирај. Се извршува проверка за дали е слободно избраното седиште. \\ === Чекор 6 Ако е резервацијата валидна, таа се внесува во базата. Цената се пресметува во backend-от. \\ [[Image(wiki:ImportantUseCase4:CONFIRM2.jpg)]] \\ \\ {{{#!sql insert into tickets(price,date_reserved,ID_customer,ID_projection,ID_seat) values (350,now(),4,3,2); }}}