[fc7ec52] | 1 | package com.example.demo.controller;
|
---|
| 2 |
|
---|
| 3 |
|
---|
| 4 | import com.example.demo.model.Auditorium;
|
---|
| 5 | import com.example.demo.model.Client.Client;
|
---|
| 6 | import com.example.demo.model.MovieProjection;
|
---|
| 7 | import com.example.demo.model.PaymentType;
|
---|
| 8 | import com.example.demo.model.Reservation.Reservations;
|
---|
| 9 | import com.example.demo.model.Seat.Seat;
|
---|
| 10 | import com.example.demo.repository.*;
|
---|
| 11 | import org.springframework.security.access.prepost.PreAuthorize;
|
---|
| 12 | import org.springframework.stereotype.Controller;
|
---|
| 13 | import org.springframework.ui.Model;
|
---|
| 14 | import org.springframework.web.bind.annotation.PostMapping;
|
---|
| 15 | import org.springframework.web.bind.annotation.RequestMapping;
|
---|
| 16 | import org.springframework.web.bind.annotation.RequestParam;
|
---|
| 17 |
|
---|
| 18 | import java.sql.Date;
|
---|
| 19 | import java.time.LocalDateTime;
|
---|
| 20 | import java.time.format.DateTimeFormatter;
|
---|
| 21 | import java.util.List;
|
---|
| 22 |
|
---|
| 23 | @Controller
|
---|
| 24 | @RequestMapping("/reserve")
|
---|
| 25 | public class ReserveController {
|
---|
| 26 |
|
---|
| 27 |
|
---|
| 28 | private final SeatRepository seatRepository;
|
---|
| 29 | private final AuditoriumRepository auditoriumRepository;
|
---|
| 30 | private final PaymentTypeRepository paymentTypeRepository;
|
---|
| 31 | private final MovieProjectionRepository movieProjectionRepository;
|
---|
| 32 | private final ClientRepository clientRepository;
|
---|
| 33 | private final ReservationsRepository reservationsRepository;
|
---|
| 34 |
|
---|
| 35 | public ReserveController(SeatRepository seatRepository, AuditoriumRepository auditoriumRepository, PaymentTypeRepository paymentTypeRepository, MovieProjectionRepository movieProjectionRepository, ClientRepository clientRepository, ReservationsRepository reservationsRepository) {
|
---|
| 36 | this.seatRepository = seatRepository;
|
---|
| 37 | this.auditoriumRepository = auditoriumRepository;
|
---|
| 38 | this.paymentTypeRepository = paymentTypeRepository;
|
---|
| 39 | this.movieProjectionRepository = movieProjectionRepository;
|
---|
| 40 | this.clientRepository = clientRepository;
|
---|
| 41 | this.reservationsRepository = reservationsRepository;
|
---|
| 42 | }
|
---|
| 43 | // @PreAuthorize("hasRole('ROLE_EMPLOYEE')" +
|
---|
| 44 | // " || hasRole('Client')" )
|
---|
| 45 | @RequestMapping("/projection")
|
---|
| 46 | public String viewReservationDetail(@RequestParam(value = "projection_id", required = false) Integer projection_id, Model model) {
|
---|
| 47 | List<Seat> seats11 = seatRepository.SelectionByProjection(projection_id);
|
---|
| 48 | List<Seat> seatsAll = seatRepository.selectFreeSeatsByProjection(projection_id);
|
---|
| 49 | List<Auditorium> auditoriums = auditoriumRepository.SelectAuditoriumsByProjection(projection_id);
|
---|
| 50 | List<PaymentType> paymentType = paymentTypeRepository.findAll();
|
---|
| 51 | List<MovieProjection> projections = movieProjectionRepository.findProjectionsById(projection_id);
|
---|
| 52 | List<Client> client = clientRepository.findAll();
|
---|
| 53 | List<Reservations> reservations = reservationsRepository.findAll();
|
---|
| 54 | model.addAttribute("projection_id",projection_id);
|
---|
| 55 | model.addAttribute("seatsAll",seatsAll);
|
---|
| 56 | model.addAttribute("projections",projections);
|
---|
| 57 | model.addAttribute("paymentType", paymentType);
|
---|
| 58 | model.addAttribute("auditorium",auditoriums);
|
---|
| 59 | model.addAttribute("seats11",seats11);
|
---|
| 60 | model.addAttribute("client",client);
|
---|
| 61 | model.addAttribute("reservation",reservations);
|
---|
| 62 |
|
---|
| 63 | return "reserve";
|
---|
| 64 | }
|
---|
| 65 | // @PreAuthorize("hasRole('ROLE_EMPLOYEE')" +
|
---|
| 66 | // " && hasRole('Client')" )
|
---|
| 67 | @PostMapping("/projection/add")
|
---|
| 68 | public String addReservation(
|
---|
| 69 | @RequestParam(value = "auditorium_id", required = false) Integer auditorium_id, Model model,
|
---|
| 70 | @RequestParam(value = "payment_type_id", required = false) Integer payment_type_id,
|
---|
| 71 | @RequestParam(value = "seat_id", required = false) Integer seat_id,
|
---|
| 72 | @RequestParam(value = "projection_id", required = false) Integer projection_id,
|
---|
| 73 | @RequestParam(value = "user_id", required = false) Integer user_id
|
---|
| 74 | ){
|
---|
| 75 |
|
---|
| 76 | PaymentType paymentType1337 = paymentTypeRepository.findById(payment_type_id).get();
|
---|
| 77 | Seat seat = seatRepository.findSeatAuditorium(seat_id,auditorium_id).get();
|
---|
| 78 | MovieProjection movieProjection = movieProjectionRepository.findById(projection_id).get();
|
---|
| 79 | Client client = clientRepository.findClient(user_id).get();
|
---|
| 80 | Reservations reservations = new Reservations();
|
---|
| 81 | LocalDateTime localDateTime = LocalDateTime.now();
|
---|
| 82 | DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd-MM-yyyy");
|
---|
| 83 | //////////ID-FUNCTION/////////////
|
---|
| 84 | List<Reservations> reservationsList = reservationsRepository.findAll();
|
---|
| 85 | Integer myID = reservationsList.size()+2;
|
---|
| 86 | reservations.setReservation_id(myID);
|
---|
| 87 | //////////ID-FUNCTION//////////////
|
---|
| 88 | reservations.setReservation_date(localDateTime);
|
---|
| 89 | reservations.setPaymentType(paymentType1337);
|
---|
| 90 | reservations.setSeat(seat);
|
---|
| 91 | reservations.setClient(client);
|
---|
| 92 | reservations.setMovieProjection(movieProjection);
|
---|
| 93 | this.reservationsRepository.save(reservations);
|
---|
| 94 | return "redirect:/movies";
|
---|
| 95 | }
|
---|
| 96 |
|
---|
| 97 |
|
---|
| 98 | }
|
---|