3
import java.io.IOException;
4
import java.io.PrintWriter;
7
import javax.servlet.RequestDispatcher;
8
import javax.servlet.ServletException;
9
import javax.servlet.http.HttpServlet;
10
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
12
import javax.servlet.http.HttpSession;
14
import com.bittercode.model.Book;
15
import com.bittercode.model.UserRole;
16
import com.bittercode.service.BookService;
17
import com.bittercode.service.impl.BookServiceImpl;
18
import com.bittercode.util.StoreUtil;
20
public class ViewBookServlet extends HttpServlet {
23
BookService bookService = new BookServiceImpl();
25
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
26
PrintWriter pw = res.getWriter();
27
res.setContentType("text/html");
30
if (!StoreUtil.isLoggedIn(UserRole.CUSTOMER, req.getSession())) {
31
RequestDispatcher rd = req.getRequestDispatcher("CustomerLogin.html");
33
pw.println("<table class=\"tab\"><tr><td>Please Login First to Continue!!</td></tr></table>");
39
List<Book> books = bookService.getAllBooks();
42
RequestDispatcher rd = req.getRequestDispatcher("CustomerHome.html");
46
StoreUtil.setActiveTab(pw, "books");
49
pw.println("<div id='topmid' style='background-color:grey'>Available Books"
50
+ "<form action=\"cart\" method=\"post\" style='float:right; margin-right:20px'>"
51
+ "<input type='submit' class=\"btn btn-primary\" name='cart' value='Proceed'/></form>"
53
pw.println("<div class=\"container\">\r\n"
54
+ " <div class=\"card-columns\">");
57
StoreUtil.updateCartItems(req);
59
HttpSession session = req.getSession();
60
for (Book book : books) {
63
pw.println(this.addBookToCard(session, book));
69
+ "<div style='float:auto'><form action=\"cart\" method=\"post\">"
70
+ "<input type='submit' class=\"btn btn-success\" name='cart' value='Proceed to Checkout'/></form>"
73
} catch (Exception e) {
78
public String addBookToCard(HttpSession session, Book book) {
79
String bCode = book.getBarcode();
80
int bQty = book.getQuantity();
84
if (session.getAttribute("qty_" + bCode) != null) {
87
cartItemQty = (int) session.getAttribute("qty_" + bCode);
95
button = "<form action=\"viewbook\" method=\"post\">"
96
+ "<input type='hidden' name = 'selectedBookId' value = " + bCode + ">"
97
+ "<input type='hidden' name='qty_" + bCode + "' value='1'/>"
99
? "<input type='submit' class=\"btn btn-primary\" name='addToCart' value='Add To Cart'/></form>"
100
: "<form method='post' action='cart'>"
101
+ "<button type='submit' name='removeFromCart' class=\"glyphicon glyphicon-minus btn btn-danger\"></button> "
102
+ "<input type='hidden' name='selectedBookId' value='" + bCode + "'/>"
104
+ " <button type='submit' name='addToCart' class=\"glyphicon glyphicon-plus btn btn-success\"></button></form>")
108
button = "<p class=\"btn btn-danger\">Out Of Stock</p>\r\n";
112
return "<div class=\"card\">\r\n"
113
+ " <div class=\"row card-body\">\r\n"
114
+ " <img class=\"col-sm-6\" src=\"logo.png\" alt=\"Card image cap\">\r\n"
115
+ " <div class=\"col-sm-6\">\r\n"
116
+ " <h5 class=\"card-title text-success\">" + book.getName() + "</h5>\r\n"
117
+ " <p class=\"card-text\">\r\n"
118
+ " Author: <span class=\"text-primary\" style=\"font-weight:bold;\"> "
125
+ " <div class=\"row card-body\">\r\n"
126
+ " <div class=\"col-sm-6\">\r\n"
127
+ " <p class=\"card-text\">\r\n"
128
+ " <span>Id: " + bCode + "</span>\r\n"
129
+ (bQty < 20 ? "<br><span class=\"text-danger\">Only " + bQty + " items left</span>\r\n"
130
: "<br><span class=\"text-success\">Trending</span>\r\n")
133
+ " <div class=\"col-sm-6\">\r\n"
134
+ " <p class=\"card-text\">\r\n"
135
+ " Price: <span style=\"font-weight:bold; color:green\"> ₹ "