package mrPack.web;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class AddOferta extends HttpServlet {

    private static final long serialVersionUID = 1L;
    DataSource dataSource = null;

    public void init() throws ServletException {
        try {
            InitialContext ctx = new InitialContext();
            Context envContext = (Context) ctx.lookup("java:comp/env");
            dataSource = (DataSource) envContext.lookup("jdbc/myDerby");
        } catch (Exception exc) {
            throw new ServletException("Nie ustanowiono połaczenia z bazą", exc);
        }
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {

        doPost(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {

        String panstwo = request.getParameter("panstwo");
        String miasto = request.getParameter("miasto");
        String rodzaj = request.getParameter("rodzaj");
        int dWyjazd = Integer.parseInt(request.getParameter("date_day"));
        int mWyjazd = Integer.parseInt(request.getParameter("date_month"));
        int rWyjazd = Integer.parseInt(request.getParameter("date_year"));
        int dPowrot = Integer.parseInt(request.getParameter("date_day_p"));
        int mPowrot = Integer.parseInt(request.getParameter("date_month_p"));
        int rPowrot = Integer.parseInt(request.getParameter("date_year_p"));
        int cena = Integer.parseInt(request.getParameter("cena"));
        String opis = request.getParameter("opis");

        String wyjazd = "'" + rWyjazd + "-" + mWyjazd + "-" + dWyjazd + "'";
        String powrot = "'" + rPowrot + "-" + mPowrot + "-" + dPowrot + "'";

        String updateQuery = "INSERT INTO BIURO.OFERTA (PANSTWO, MIASTO," +
                " RODZAJ, DWYJAZD, DPOWROT, CENA, OPIS) VALUES (" 
                + panstwo + ","
                + miasto + "," + rodzaj + "," + wyjazd + ", " + powrot + ", "
                + cena + ", '" + opis + "')"; 
        System.out.println(updateQuery);
        Statement st = null;
        Connection con = null;
        try {
            con = dataSource.getConnection();

            st = con.createStatement();
            st.executeUpdate(updateQuery);
            st.execute("commit");
            System.out.println(st.getWarnings());

            st.close();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (st != null) {
                    st.close();
                }
                if (con != null) {
                    con.close();
                }
            } catch (SQLException e1) {
                e1.printStackTrace();
            }

        }
        
        RequestDispatcher view = request.getRequestDispatcher("/main");
        view.forward(request, response);
    }

}