package servlets;_x000D_
_x000D_
import java.io.IOException;_x000D_
import java.sql.Connection;_x000D_
import java.util.ArrayList;_x000D_
_x000D_
import javax.servlet.RequestDispatcher;_x000D_
import javax.servlet.ServletException;_x000D_
import javax.servlet.http.HttpServlet;_x000D_
import javax.servlet.http.HttpServletRequest;_x000D_
import javax.servlet.http.HttpServletResponse;_x000D_
_x000D_
import database.ConnectDBProduct;_x000D_
import domeinklassen.Product;_x000D_
_x000D_
public class ProductServlet extends HttpServlet{_x000D_
	private static final long serialVersionUID = 1L;_x000D_
_x000D_
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {_x000D_
		_x000D_
		Connection con = (Connection)req.getSession().getAttribute("verbinding");_x000D_
		String knop = req.getParameter("knop");_x000D_
		_x000D_
		ConnectDBProduct conn = new ConnectDBProduct(con);	_x000D_
		ArrayList<Product> deVoorraad = conn.getProducten();_x000D_
		RequestDispatcher rd = req.getRequestDispatcher("product.jsp");	//stuur bij default naar voorraadoverzicht_x000D_
		_x000D_
		//forward voorraadlijst naar de overzicht-pagina._x000D_
		if(knop.equals("overzicht")){_x000D_
			if(deVoorraad.size() == 0){_x000D_
				req.setAttribute("msg", "Geen producten beschikbaar!");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("voorraadlijst", deVoorraad);_x000D_
				rd = req.getRequestDispatcher("productenoverzicht.jsp");_x000D_
			}_x000D_
		}	_x000D_
		//forward lijst producten onder min voorraad_x000D_
		else if (knop.equals("OnderVoorraad")){_x000D_
			ArrayList<Product> ondermin = conn.getProductenOnderMinimum();_x000D_
			if(ondermin.size() == 0){_x000D_
				req.setAttribute("msg", "Alle producten zijn op voorraad!");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("voorraadlijst", ondermin);_x000D_
				rd = req.getRequestDispatcher("productenoverzicht.jsp");_x000D_
			}_x000D_
		}_x000D_
		//bestel producten onder min voorraad_x000D_
		else if(knop.equals("WerkVoorraadBij")){_x000D_
			ArrayList<Product> ondermin = conn.getProductenOnderMinimum();_x000D_
			if(ondermin.size() == 0){_x000D_
				req.setAttribute("msg", "Alle producten zijn op voorraad!");_x000D_
			}_x000D_
			else{_x000D_
				rd = req.getRequestDispatcher("nieuwebestelling.jsp");_x000D_
				req.setAttribute("stap1", "Done");_x000D_
				req.setAttribute("teBestellenProducten", ondermin);_x000D_
			}_x000D_
		}_x000D_
		//maak een nieuw product aan_x000D_
		else if(knop.equals("nieuw")){_x000D_
			String nm = req.getParameter("naam");_x000D_
			String ma = req.getParameter("minaantal");_x000D_
			String eh = req.getParameter("eenheid");_x000D_
			String pps = req.getParameter("pps");_x000D_
			ArrayList<String> velden = new ArrayList<String>();_x000D_
			velden.add(nm); velden.add(ma); velden.add(eh); velden.add("pps");_x000D_
			_x000D_
			//check of nodige velden in zijn gevuld (artikelnummer bestaat niet meer omdat de database die straks gaat aanmaken)_x000D_
			boolean allesIngevuld = true;_x000D_
			for(String s : velden){_x000D_
				if(s.equals("")){_x000D_
					allesIngevuld = false;_x000D_
					req.setAttribute("error", "Vul alle velden in!");_x000D_
					break;_x000D_
				}_x000D_
			}_x000D_
			//als gegevens ingevuld_x000D_
			if(allesIngevuld){			_x000D_
				try{	//check voor geldige nummers_x000D_
					//maak product aan in database en haal op_x000D_
					Product nieuw = conn.nieuwProduct(nm, Integer.parseInt(ma), eh, Double.parseDouble(pps));_x000D_
					//stuur toString() van nieuwe product terug_x000D_
					String terug = "Nieuw product aangemaakt: " + nieuw.toString();_x000D_
					req.setAttribute("msg", terug);_x000D_
				}_x000D_
				catch(Exception ex){_x000D_
					System.out.println(ex);_x000D_
					req.setAttribute("error", "Voer geldige nummers in!");_x000D_
				}_x000D_
			}_x000D_
		}_x000D_
		_x000D_
		//zoek product op naam of artikelnummer_x000D_
		else if(knop.equals("zoek")){_x000D_
			String nm = req.getParameter("zoeknaam");_x000D_
			String eh = req.getParameter("zoekeenheid");_x000D_
			String anr = req.getParameter("zoeknummer");	_x000D_
			ArrayList<Product> terug = new ArrayList<Product>();_x000D_
			//check welke zoekterm er in is gevoerd_x000D_
			if(!anr.equals("")){_x000D_
				//check voor geldig artikelnummer (int)_x000D_
				try{_x000D_
					int nummer = Integer.parseInt(anr);_x000D_
					terug.add(conn.zoekProduct(nummer));_x000D_
				}catch(NumberFormatException e){_x000D_
					req.setAttribute("error", "Vul een geldig artikelnummer in!");_x000D_
				}_x000D_
			}_x000D_
			if(!nm.equals("")){_x000D_
				for(Product p : conn.zoekProductNaam(nm)){_x000D_
					terug.add(p);_x000D_
				}_x000D_
			}	_x000D_
			if(!eh.equals("")){_x000D_
				for(Product p : conn.zoekProductEenheid(eh)){_x000D_
					terug.add(p);_x000D_
				}_x000D_
			}			_x000D_
			else{_x000D_
				req.setAttribute("error", "Vul een zoekcriterium in!");_x000D_
			}_x000D_
			if(terug.size() == 0){_x000D_
				req.setAttribute("zoekmsg", "Geen producten gevonden met ingevulde criteria");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("zoekmsg", "Product(en) gevonden!");	_x000D_
				req.setAttribute("arraygevonden", terug);				_x000D_
			}_x000D_
		}_x000D_
		_x000D_
		//wijzig gezochte product_x000D_
		else if(knop.equals("wijzig")){_x000D_
			String productnummer = req.getParameter("product");_x000D_
			Product hetProduct = conn.zoekProduct(Integer.parseInt(productnummer));_x000D_
			req.setAttribute("product", hetProduct);_x000D_
			rd = req.getRequestDispatcher("wijzigproduct.jsp");_x000D_
		}		_x000D_
		else if(knop.equals("verwijder")){_x000D_
			String p = req.getParameter("product");_x000D_
			if(conn.verwijderProduct(Integer.parseInt(p))){_x000D_
				req.setAttribute("msg", "Product met succes verwijderd.");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("error", "Kon product niet verwijderen!");_x000D_
			}_x000D_
			deVoorraad = conn.getProducten();_x000D_
			req.setAttribute("voorraadlijst", deVoorraad);_x000D_
			rd = req.getRequestDispatcher("productenoverzicht.jsp");_x000D_
		}	_x000D_
		rd.forward(req, resp);	_x000D_
	}_x000D_
}
//stuur bij default naar voorraadoverzicht_x000D_
package servlets;_x000D_
_x000D_
import java.io.IOException;_x000D_
import java.sql.Connection;_x000D_
import java.util.ArrayList;_x000D_
_x000D_
import javax.servlet.RequestDispatcher;_x000D_
import javax.servlet.ServletException;_x000D_
import javax.servlet.http.HttpServlet;_x000D_
import javax.servlet.http.HttpServletRequest;_x000D_
import javax.servlet.http.HttpServletResponse;_x000D_
_x000D_
import database.ConnectDBProduct;_x000D_
import domeinklassen.Product;_x000D_
_x000D_
public class ProductServlet extends HttpServlet{_x000D_
	private static final long serialVersionUID = 1L;_x000D_
_x000D_
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {_x000D_
		_x000D_
		Connection con = (Connection)req.getSession().getAttribute("verbinding");_x000D_
		String knop = req.getParameter("knop");_x000D_
		_x000D_
		ConnectDBProduct conn = new ConnectDBProduct(con);	_x000D_
		ArrayList<Product> deVoorraad = conn.getProducten();_x000D_
		RequestDispatcher rd = req.getRequestDispatcher("product.jsp");	//stuur bij<SUF>
		_x000D_
		//forward voorraadlijst naar de overzicht-pagina._x000D_
		if(knop.equals("overzicht")){_x000D_
			if(deVoorraad.size() == 0){_x000D_
				req.setAttribute("msg", "Geen producten beschikbaar!");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("voorraadlijst", deVoorraad);_x000D_
				rd = req.getRequestDispatcher("productenoverzicht.jsp");_x000D_
			}_x000D_
		}	_x000D_
		//forward lijst producten onder min voorraad_x000D_
		else if (knop.equals("OnderVoorraad")){_x000D_
			ArrayList<Product> ondermin = conn.getProductenOnderMinimum();_x000D_
			if(ondermin.size() == 0){_x000D_
				req.setAttribute("msg", "Alle producten zijn op voorraad!");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("voorraadlijst", ondermin);_x000D_
				rd = req.getRequestDispatcher("productenoverzicht.jsp");_x000D_
			}_x000D_
		}_x000D_
		//bestel producten onder min voorraad_x000D_
		else if(knop.equals("WerkVoorraadBij")){_x000D_
			ArrayList<Product> ondermin = conn.getProductenOnderMinimum();_x000D_
			if(ondermin.size() == 0){_x000D_
				req.setAttribute("msg", "Alle producten zijn op voorraad!");_x000D_
			}_x000D_
			else{_x000D_
				rd = req.getRequestDispatcher("nieuwebestelling.jsp");_x000D_
				req.setAttribute("stap1", "Done");_x000D_
				req.setAttribute("teBestellenProducten", ondermin);_x000D_
			}_x000D_
		}_x000D_
		//maak een nieuw product aan_x000D_
		else if(knop.equals("nieuw")){_x000D_
			String nm = req.getParameter("naam");_x000D_
			String ma = req.getParameter("minaantal");_x000D_
			String eh = req.getParameter("eenheid");_x000D_
			String pps = req.getParameter("pps");_x000D_
			ArrayList<String> velden = new ArrayList<String>();_x000D_
			velden.add(nm); velden.add(ma); velden.add(eh); velden.add("pps");_x000D_
			_x000D_
			//check of nodige velden in zijn gevuld (artikelnummer bestaat niet meer omdat de database die straks gaat aanmaken)_x000D_
			boolean allesIngevuld = true;_x000D_
			for(String s : velden){_x000D_
				if(s.equals("")){_x000D_
					allesIngevuld = false;_x000D_
					req.setAttribute("error", "Vul alle velden in!");_x000D_
					break;_x000D_
				}_x000D_
			}_x000D_
			//als gegevens ingevuld_x000D_
			if(allesIngevuld){			_x000D_
				try{	//check voor geldige nummers_x000D_
					//maak product aan in database en haal op_x000D_
					Product nieuw = conn.nieuwProduct(nm, Integer.parseInt(ma), eh, Double.parseDouble(pps));_x000D_
					//stuur toString() van nieuwe product terug_x000D_
					String terug = "Nieuw product aangemaakt: " + nieuw.toString();_x000D_
					req.setAttribute("msg", terug);_x000D_
				}_x000D_
				catch(Exception ex){_x000D_
					System.out.println(ex);_x000D_
					req.setAttribute("error", "Voer geldige nummers in!");_x000D_
				}_x000D_
			}_x000D_
		}_x000D_
		_x000D_
		//zoek product op naam of artikelnummer_x000D_
		else if(knop.equals("zoek")){_x000D_
			String nm = req.getParameter("zoeknaam");_x000D_
			String eh = req.getParameter("zoekeenheid");_x000D_
			String anr = req.getParameter("zoeknummer");	_x000D_
			ArrayList<Product> terug = new ArrayList<Product>();_x000D_
			//check welke zoekterm er in is gevoerd_x000D_
			if(!anr.equals("")){_x000D_
				//check voor geldig artikelnummer (int)_x000D_
				try{_x000D_
					int nummer = Integer.parseInt(anr);_x000D_
					terug.add(conn.zoekProduct(nummer));_x000D_
				}catch(NumberFormatException e){_x000D_
					req.setAttribute("error", "Vul een geldig artikelnummer in!");_x000D_
				}_x000D_
			}_x000D_
			if(!nm.equals("")){_x000D_
				for(Product p : conn.zoekProductNaam(nm)){_x000D_
					terug.add(p);_x000D_
				}_x000D_
			}	_x000D_
			if(!eh.equals("")){_x000D_
				for(Product p : conn.zoekProductEenheid(eh)){_x000D_
					terug.add(p);_x000D_
				}_x000D_
			}			_x000D_
			else{_x000D_
				req.setAttribute("error", "Vul een zoekcriterium in!");_x000D_
			}_x000D_
			if(terug.size() == 0){_x000D_
				req.setAttribute("zoekmsg", "Geen producten gevonden met ingevulde criteria");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("zoekmsg", "Product(en) gevonden!");	_x000D_
				req.setAttribute("arraygevonden", terug);				_x000D_
			}_x000D_
		}_x000D_
		_x000D_
		//wijzig gezochte product_x000D_
		else if(knop.equals("wijzig")){_x000D_
			String productnummer = req.getParameter("product");_x000D_
			Product hetProduct = conn.zoekProduct(Integer.parseInt(productnummer));_x000D_
			req.setAttribute("product", hetProduct);_x000D_
			rd = req.getRequestDispatcher("wijzigproduct.jsp");_x000D_
		}		_x000D_
		else if(knop.equals("verwijder")){_x000D_
			String p = req.getParameter("product");_x000D_
			if(conn.verwijderProduct(Integer.parseInt(p))){_x000D_
				req.setAttribute("msg", "Product met succes verwijderd.");_x000D_
			}_x000D_
			else{_x000D_
				req.setAttribute("error", "Kon product niet verwijderen!");_x000D_
			}_x000D_
			deVoorraad = conn.getProducten();_x000D_
			req.setAttribute("voorraadlijst", deVoorraad);_x000D_
			rd = req.getRequestDispatcher("productenoverzicht.jsp");_x000D_
		}	_x000D_
		rd.forward(req, resp);	_x000D_
	}_x000D_
}