package oss.ngocminh.lego.service;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import oss.ngocminh.lego.data.Entity;
import oss.ngocminh.lego.data.Invoice;
import oss.ngocminh.lego.persistence.InvoiceDAO;
import oss.ngocminh.lego.persistence.OrderDAO;
import oss.ngocminh.lego.util.SessionUtils;
/**
* Servlet implementation class InvoiceCreateController
*/
public class InvoiceCreateController extends AbstractController {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public InvoiceCreateController() {
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
renderView(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Entity> orders = (List<Entity>)
request.getSession().getAttribute("orders");
Invoice invoice = new Invoice();
invoice.put("orders", orders);
invoice.put("user", SessionUtils.getUser(request));
invoice.put("shipType", request.getAttribute("shipType"));
invoice.put("payType", request.getAttribute("payType"));
invoice.put("note", request.getAttribute("note"));
invoice.put("address_id", request.getAttribute("address_id"));
invoice.put("time", new Date());
Connection conn = null;
try {
conn = getConnection();
invoiceDAO = new InvoiceDAO();
invoiceDAO.setConnection(conn);
orderDAO = new OrderDAO();
orderDAO.setConnection(conn);
conn.setAutoCommit(false);
for (Entity order : orders) {
orderDAO.save(order);
}
invoiceDAO.save(invoice);
conn.commit();
} catch (SQLException e) {
rollbackSupressException(conn);
throw new ServletException(e);
} finally {
closeConnectionSupressException(conn);
}
}
private InvoiceDAO invoiceDAO;
private OrderDAO orderDAO;
}