diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 9e37d69..3abd9d4 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,9 +5,16 @@ - - + + + + + + + + + @@ -15,6 +22,7 @@ + @@ -24,6 +32,7 @@ + @@ -33,31 +42,17 @@ + - - - - - - - + + - - - - - - - - - - - - - + + + @@ -89,92 +84,41 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + @@ -212,57 +156,57 @@ @@ -296,6 +240,27 @@ + + + + + + + + + + + + + + + + + + + @@ -422,27 +392,6 @@ - - @@ -464,10 +413,6 @@ - - - - @@ -475,6 +420,10 @@ + + + + - @@ -877,7 +836,7 @@ - + @@ -895,17 +854,17 @@ - - + + - + - + @@ -975,404 +934,398 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - + + - - + + - - + + - + - - - - - - - - - + + - - + + + + + + + + + + + + + + + + + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - + - - + + - + - - + + - + - - + + - + - - + + + + + + - + + + + - - + + + + + - + - - + + - + - - + + + + + + - + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/controller/clientControllers/transactionsHistory.java b/src/controller/clientControllers/transactionsHistory.java new file mode 100644 index 0000000..3321edb --- /dev/null +++ b/src/controller/clientControllers/transactionsHistory.java @@ -0,0 +1,65 @@ +package controller.clientControllers; + +import controller.usersManagement.users.UsersControllerView; +import model.User; + +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.servlet.http.HttpSession; +import java.io.IOException; +import java.util.ArrayList; + +public class transactionsHistory extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + response.setCharacterEncoding("UTF-8"); + + //Se usa para revisar si hay una sesion activa + HttpSession sesion= request.getSession(); + + //Intenta hallar una sesion activa + try{ + User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString()); + if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo."); + + request.setAttribute("User",user); + request.setAttribute("serverResponse",sesion.getAttribute("serverResponse")); + + ArrayList lista = crearArrayList(user.getTransactionList()); + request.setAttribute("transactionList",lista); + + sesion.setAttribute("serverResponse","!"); + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/ClientViews/transactionsHistory.jsp"); + dispatcher.forward(request,response); + + } + //Si no la encuentra, redirige a la pagina inicial. + catch (Exception e){ + System.err.println("Error catched. " + e.getMessage()); + e.printStackTrace(); + response.getWriter().println(""); + } + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } + + private ArrayList crearArrayList(String datos){ + ArrayList lista = new ArrayList<>(); + + do + { + lista.add(datos.substring(0,datos.indexOf(","))); + datos = datos.substring(datos.indexOf(",")+1); + } + while (datos.length() > 2); + + return lista; + } + +} diff --git a/src/controller/financesManagement/IncomeReport.java b/src/controller/financesManagement/IncomeReport.java index f7b2726..0caafb9 100644 --- a/src/controller/financesManagement/IncomeReport.java +++ b/src/controller/financesManagement/IncomeReport.java @@ -14,6 +14,7 @@ import java.io.IOException; public class IncomeReport extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { diff --git a/src/controller/financesManagement/transactions/TransactionsControllerAdd.java b/src/controller/financesManagement/transactions/TransactionsControllerAdd.java new file mode 100644 index 0000000..3074d76 --- /dev/null +++ b/src/controller/financesManagement/transactions/TransactionsControllerAdd.java @@ -0,0 +1,66 @@ +package controller.financesManagement.transactions; + +import controller.PMF; +import controller.resourcesManagement.services.ServicesControllerView; +import controller.usersManagement.users.UsersControllerView; +import model.Service; +import model.Transaction; +import model.User; + +import javax.jdo.PersistenceManager; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class TransactionsControllerAdd extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); + + try{ + + String action = request.getParameter("action"); + + //Para evitar errores, si no hay ninguna accion, se establece a vacio. + if (action == null) + action = ""; + + if (action.equals("userAddTransaction")){ + + PersistenceManager pm = PMF.get().getPersistenceManager(); + + String userId = request.getSession().getAttribute("userID").toString(); + Service service = ServicesControllerView.getService(request.getParameter("serviceKey").toString()); + + Transaction transaction = new Transaction(userId,service.getKey(),service.getPrice() + ""); + User user = pm.getObjectById(User.class, request.getSession().getAttribute("userID").toString()); + + pm.makePersistent(transaction); + + user.addTransaction(transaction.getKey()); + + request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"¡Listo! Tu transacción se completó.\"}"); + + pm.close(); + } + + try{ + response.sendRedirect("/"); + } + //Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect. + catch (IllegalStateException e){ + System.err.println("IllegalStateException: There was a double redirect."); + } + + } catch (NullPointerException e){ + System.err.println("Error NPE ->"); + e.printStackTrace(); + response.sendRedirect("/"); + } + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } +} diff --git a/src/controller/financesManagement/transactions/TransactionsControllerIndex.java b/src/controller/financesManagement/transactions/TransactionsControllerIndex.java new file mode 100644 index 0000000..c8840df --- /dev/null +++ b/src/controller/financesManagement/transactions/TransactionsControllerIndex.java @@ -0,0 +1,47 @@ +package controller.financesManagement.transactions; + +import controller.usersManagement.users.UsersControllerView; +import model.User; + +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.servlet.http.HttpSession; +import java.io.IOException; + +import static controller.financesManagement.transactions.TransactionsControllerView.getAllTransactions; + +public class TransactionsControllerIndex extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); + + //Se usa para revisar si hay una sesion activa + HttpSession sesion= request.getSession(); + + //Intenta hallar una sesion activa + try{ + User user = UsersControllerView.getUser(sesion.getAttribute("userID").toString()); + if (user == null) throw new NullPointerException("UsersControllerIndex: El usuario recibido es nulo."); + + request.setAttribute("User",user); + request.setAttribute("transactionsList",getAllTransactions()); + request.setAttribute("serverResponse",sesion.getAttribute("serverResponse")); + sesion.setAttribute("serverResponse","!"); + RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/View/Transactions/index.jsp"); + dispatcher.forward(request,response); + + } + //Si no la encuentra, redirige a la pagina inicial. + catch (Exception e){ + System.err.println("UserControllerIndex: Error catched. " + e.getMessage()); + response.getWriter().println(""); + } + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + doPost(request, response); + } +} diff --git a/src/controller/financesManagement/transactions/TransactionsControllerView.java b/src/controller/financesManagement/transactions/TransactionsControllerView.java new file mode 100644 index 0000000..643b373 --- /dev/null +++ b/src/controller/financesManagement/transactions/TransactionsControllerView.java @@ -0,0 +1,42 @@ +package controller.financesManagement.transactions; + +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import controller.PMF; +import model.Transaction; + +import javax.jdo.PersistenceManager; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +public class TransactionsControllerView extends HttpServlet { + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } + + @SuppressWarnings("unchecked") + static List getAllTransactions (){ + PersistenceManager pm = controller.PMF.get().getPersistenceManager(); + List transactions = (List) pm.newQuery("select from " + Transaction.class.getName()).execute(); + pm.close(); + return transactions; + } + + public static Transaction getTransaction(String key){ + PersistenceManager pm = PMF.get().getPersistenceManager(); + + Key k = KeyFactory.stringToKey(key); + Transaction service = pm.getObjectById(Transaction.class,k); + + pm.close(); + return service; + } +} diff --git a/src/controller/index.java b/src/controller/index.java index 678a55d..44074c1 100644 --- a/src/controller/index.java +++ b/src/controller/index.java @@ -1,5 +1,7 @@ package controller; +import controller.resourcesManagement.services.ServicesControllerView; +import controller.usersManagement.access.AccessControllerView; import controller.usersManagement.users.UsersControllerView; import model.User; @@ -14,6 +16,7 @@ import java.io.IOException; public class index extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); HttpSession sesion= request.getSession(); @@ -29,9 +32,10 @@ public class index extends HttpServlet { if (loggedUser != null){ + request.setAttribute("hasAccess",AccessControllerView.checkPermission(sesion.getAttribute("userID").toString(),"/e/")); request.setAttribute("User",loggedUser); request.setAttribute("isUserLogged",true); - request.setAttribute("serverResponse","You are logged in."); + request.setAttribute("servicesList",ServicesControllerView.getAllServices()); request.setAttribute("serverResponse",request.getSession().getAttribute("serverResponse")); request.getSession().setAttribute("serverResponse","!"); diff --git a/src/controller/resourcesManagement/employees/EmployeesControllerAdd.java b/src/controller/resourcesManagement/employees/EmployeesControllerAdd.java index 2408712..504db54 100644 --- a/src/controller/resourcesManagement/employees/EmployeesControllerAdd.java +++ b/src/controller/resourcesManagement/employees/EmployeesControllerAdd.java @@ -21,6 +21,7 @@ import model.Employee; @SuppressWarnings("serial") public class EmployeesControllerAdd extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/employees/EmployeesControllerDelete.java b/src/controller/resourcesManagement/employees/EmployeesControllerDelete.java index fd264c7..1c473d5 100644 --- a/src/controller/resourcesManagement/employees/EmployeesControllerDelete.java +++ b/src/controller/resourcesManagement/employees/EmployeesControllerDelete.java @@ -16,6 +16,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class EmployeesControllerDelete extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/employees/EmployeesControllerIndex.java b/src/controller/resourcesManagement/employees/EmployeesControllerIndex.java index afd4967..6190295 100644 --- a/src/controller/resourcesManagement/employees/EmployeesControllerIndex.java +++ b/src/controller/resourcesManagement/employees/EmployeesControllerIndex.java @@ -16,6 +16,7 @@ import static controller.resourcesManagement.employees.EmployeesControllerView.g public class EmployeesControllerIndex extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/employees/EmployeesControllerView.java b/src/controller/resourcesManagement/employees/EmployeesControllerView.java index 01ecde1..8bbcdc5 100644 --- a/src/controller/resourcesManagement/employees/EmployeesControllerView.java +++ b/src/controller/resourcesManagement/employees/EmployeesControllerView.java @@ -20,6 +20,7 @@ public class EmployeesControllerView extends HttpServlet { @SuppressWarnings("unchecked") public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/materials/MaterialsControllerAdd.java b/src/controller/resourcesManagement/materials/MaterialsControllerAdd.java index bd41a2f..5b43859 100644 --- a/src/controller/resourcesManagement/materials/MaterialsControllerAdd.java +++ b/src/controller/resourcesManagement/materials/MaterialsControllerAdd.java @@ -18,6 +18,7 @@ import java.io.IOException; public class MaterialsControllerAdd extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/materials/MaterialsControllerDelete.java b/src/controller/resourcesManagement/materials/MaterialsControllerDelete.java index 9f02a8b..fafaa72 100644 --- a/src/controller/resourcesManagement/materials/MaterialsControllerDelete.java +++ b/src/controller/resourcesManagement/materials/MaterialsControllerDelete.java @@ -16,6 +16,7 @@ import java.io.IOException; public class MaterialsControllerDelete extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/materials/MaterialsControllerIndex.java b/src/controller/resourcesManagement/materials/MaterialsControllerIndex.java index 1914b35..8968f08 100644 --- a/src/controller/resourcesManagement/materials/MaterialsControllerIndex.java +++ b/src/controller/resourcesManagement/materials/MaterialsControllerIndex.java @@ -16,6 +16,7 @@ import static controller.resourcesManagement.materials.MaterialsControllerView.g public class MaterialsControllerIndex extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/materials/MaterialsControllerView.java b/src/controller/resourcesManagement/materials/MaterialsControllerView.java index 36e5045..5706e07 100644 --- a/src/controller/resourcesManagement/materials/MaterialsControllerView.java +++ b/src/controller/resourcesManagement/materials/MaterialsControllerView.java @@ -18,6 +18,7 @@ import java.util.List; public class MaterialsControllerView extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { diff --git a/src/controller/resourcesManagement/services/ServicesControllerAdd.java b/src/controller/resourcesManagement/services/ServicesControllerAdd.java index 64f201c..6289ee9 100644 --- a/src/controller/resourcesManagement/services/ServicesControllerAdd.java +++ b/src/controller/resourcesManagement/services/ServicesControllerAdd.java @@ -21,6 +21,7 @@ import model.Service; @SuppressWarnings("serial") public class ServicesControllerAdd extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{ + response.setCharacterEncoding("UTF-8"); try{ @@ -43,10 +44,10 @@ public class ServicesControllerAdd extends HttpServlet { Service service = new Service (name, price, description,userCreatorKey); - request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Servicio creado con éxito.\"}"); - pm.makePersistent(service); + request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Servicio creado con éxito.\"}"); + } else if (action.equals("update")){ @@ -73,7 +74,7 @@ public class ServicesControllerAdd extends HttpServlet { pm.close(); try{ - response.sendRedirect("/services"); + response.sendRedirect("/e/services"); } //Al redirigr al jsp para crear, se usa RequestDispatcher, y este entra en conflicto con sendRedirect. catch (IllegalStateException e){ @@ -83,12 +84,12 @@ public class ServicesControllerAdd extends HttpServlet { } else { request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"No tienes permiso para crear un Servicio.\"}"); - response.sendRedirect("/services"); + response.sendRedirect("/e/services"); } } catch (NullPointerException e){ - response.sendRedirect("/services"); + response.sendRedirect("/"); } diff --git a/src/controller/resourcesManagement/services/ServicesControllerDelete.java b/src/controller/resourcesManagement/services/ServicesControllerDelete.java index be259b2..f781123 100644 --- a/src/controller/resourcesManagement/services/ServicesControllerDelete.java +++ b/src/controller/resourcesManagement/services/ServicesControllerDelete.java @@ -16,6 +16,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class ServicesControllerDelete extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ @@ -38,16 +39,16 @@ public class ServicesControllerDelete extends HttpServlet { pm.close(); - response.sendRedirect("/services"); + response.sendRedirect("/e/services"); } else { request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"No tienes permiso para eliminar un Servicio.\"}"); - response.sendRedirect("/services"); + response.sendRedirect("/e/services"); } } catch (NullPointerException e){ - response.sendRedirect("/services"); + response.sendRedirect("/"); } diff --git a/src/controller/resourcesManagement/services/ServicesControllerIndex.java b/src/controller/resourcesManagement/services/ServicesControllerIndex.java index ea8f177..07527fe 100644 --- a/src/controller/resourcesManagement/services/ServicesControllerIndex.java +++ b/src/controller/resourcesManagement/services/ServicesControllerIndex.java @@ -16,6 +16,7 @@ import static controller.resourcesManagement.services.ServicesControllerView.get public class ServicesControllerIndex extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/resourcesManagement/services/ServicesControllerView.java b/src/controller/resourcesManagement/services/ServicesControllerView.java index 185ab03..1e4296f 100644 --- a/src/controller/resourcesManagement/services/ServicesControllerView.java +++ b/src/controller/resourcesManagement/services/ServicesControllerView.java @@ -20,6 +20,7 @@ public class ServicesControllerView extends HttpServlet { @SuppressWarnings("unchecked") public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ @@ -73,11 +74,11 @@ public class ServicesControllerView extends HttpServlet { } else { request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"No tienes permiso para ver/editar un Servicio.\"}"); - response.sendRedirect("/services"); + response.sendRedirect("/e/services"); } } catch (NullPointerException e){ - response.sendRedirect("/services"); + response.sendRedirect("/"); } } @@ -87,14 +88,14 @@ public class ServicesControllerView extends HttpServlet { } @SuppressWarnings("unchecked") - static List getAllServices(){ + public static List getAllServices(){ PersistenceManager pm = controller.PMF.get().getPersistenceManager(); List services = (List) pm.newQuery("select from " + Service.class.getName()).execute(); pm.close(); return services; } - private static Service getService(String key){ + public static Service getService(String key){ PersistenceManager pm = PMF.get().getPersistenceManager(); Key k = KeyFactory.stringToKey(key); diff --git a/src/controller/usersManagement/access/AccessControllerAdd.java b/src/controller/usersManagement/access/AccessControllerAdd.java index a9b444d..32887bc 100644 --- a/src/controller/usersManagement/access/AccessControllerAdd.java +++ b/src/controller/usersManagement/access/AccessControllerAdd.java @@ -24,6 +24,7 @@ public class AccessControllerAdd extends HttpServlet { @SuppressWarnings("unchecked") public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/usersManagement/access/AccessControllerDelete.java b/src/controller/usersManagement/access/AccessControllerDelete.java index ff26f14..0708b67 100644 --- a/src/controller/usersManagement/access/AccessControllerDelete.java +++ b/src/controller/usersManagement/access/AccessControllerDelete.java @@ -12,6 +12,7 @@ import controller.PMF; @SuppressWarnings("serial") public class AccessControllerDelete extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/usersManagement/access/AccessControllerEdit.java b/src/controller/usersManagement/access/AccessControllerEdit.java index 10257c2..08a67a9 100644 --- a/src/controller/usersManagement/access/AccessControllerEdit.java +++ b/src/controller/usersManagement/access/AccessControllerEdit.java @@ -22,6 +22,7 @@ public class AccessControllerEdit extends HttpServlet { @SuppressWarnings("unchecked") public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/usersManagement/access/AccessControllerIndex.java b/src/controller/usersManagement/access/AccessControllerIndex.java index 5938ace..c068749 100644 --- a/src/controller/usersManagement/access/AccessControllerIndex.java +++ b/src/controller/usersManagement/access/AccessControllerIndex.java @@ -20,6 +20,7 @@ public class AccessControllerIndex extends HttpServlet { @SuppressWarnings("unchecked") public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/usersManagement/access/AccessControllerView.java b/src/controller/usersManagement/access/AccessControllerView.java index 7b219d9..7958c21 100644 --- a/src/controller/usersManagement/access/AccessControllerView.java +++ b/src/controller/usersManagement/access/AccessControllerView.java @@ -24,6 +24,8 @@ import java.util.List; public class AccessControllerView extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); + // create the persistence manager instance PersistenceManager pm = PMF.get().getPersistenceManager(); diff --git a/src/controller/usersManagement/index.java b/src/controller/usersManagement/index.java index 31a15c9..e8562b2 100644 --- a/src/controller/usersManagement/index.java +++ b/src/controller/usersManagement/index.java @@ -18,6 +18,7 @@ import java.util.List; public class index extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/usersManagement/resources/ResourcesControllerAdd.java b/src/controller/usersManagement/resources/ResourcesControllerAdd.java index 4bea972..f1376cf 100644 --- a/src/controller/usersManagement/resources/ResourcesControllerAdd.java +++ b/src/controller/usersManagement/resources/ResourcesControllerAdd.java @@ -18,6 +18,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class ResourcesControllerAdd extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { diff --git a/src/controller/usersManagement/resources/ResourcesControllerDelete.java b/src/controller/usersManagement/resources/ResourcesControllerDelete.java index 2d57179..c5377a8 100644 --- a/src/controller/usersManagement/resources/ResourcesControllerDelete.java +++ b/src/controller/usersManagement/resources/ResourcesControllerDelete.java @@ -18,6 +18,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class ResourcesControllerDelete extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ diff --git a/src/controller/usersManagement/resources/ResourcesControllerIndex.java b/src/controller/usersManagement/resources/ResourcesControllerIndex.java index 0cde162..e1d21ba 100644 --- a/src/controller/usersManagement/resources/ResourcesControllerIndex.java +++ b/src/controller/usersManagement/resources/ResourcesControllerIndex.java @@ -15,6 +15,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class ResourcesControllerIndex extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { diff --git a/src/controller/usersManagement/resources/ResourcesControllerView.java b/src/controller/usersManagement/resources/ResourcesControllerView.java index 440ebf8..3d5f0c8 100644 --- a/src/controller/usersManagement/resources/ResourcesControllerView.java +++ b/src/controller/usersManagement/resources/ResourcesControllerView.java @@ -18,6 +18,7 @@ import java.util.List; @SuppressWarnings("serial") public class ResourcesControllerView extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { if(AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){ diff --git a/src/controller/usersManagement/roles/RolesControllerAdd.java b/src/controller/usersManagement/roles/RolesControllerAdd.java index 4a03eba..f26f7b2 100644 --- a/src/controller/usersManagement/roles/RolesControllerAdd.java +++ b/src/controller/usersManagement/roles/RolesControllerAdd.java @@ -28,6 +28,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class RolesControllerAdd extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { @@ -49,7 +50,7 @@ public class RolesControllerAdd extends HttpServlet { Boolean status = Boolean.parseBoolean(request.getParameter("roleStatus")); createRole(name,status,pm); - request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Role created successfully.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Rol creado con éxito.\"}"); break; @@ -69,7 +70,7 @@ public class RolesControllerAdd extends HttpServlet { role1.setName(request.getParameter("roleName")); role1.setStatus(Boolean.parseBoolean(request.getParameter("roleStatus"))); //role1.setImgUrl(userImg); - request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Role editado con éxito.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Rol editado con éxito.\"}"); break; diff --git a/src/controller/usersManagement/roles/RolesControllerDelete.java b/src/controller/usersManagement/roles/RolesControllerDelete.java index 087382b..09386c6 100644 --- a/src/controller/usersManagement/roles/RolesControllerDelete.java +++ b/src/controller/usersManagement/roles/RolesControllerDelete.java @@ -16,6 +16,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class RolesControllerDelete extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { @@ -27,7 +28,7 @@ public class RolesControllerDelete extends HttpServlet { Key k = KeyFactory.stringToKey(request.getParameter("key")); try{ pm.deletePersistent(pm.getObjectById(Role.class, k)); - request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Role deleted successfully.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Rol eliminado con éxito.\"}"); } catch (JDOObjectNotFoundException e){ System.err.println("Exception catched -> " + e.getMessage()); } diff --git a/src/controller/usersManagement/roles/RolesControllerIndex.java b/src/controller/usersManagement/roles/RolesControllerIndex.java index 44a6c88..5170b3f 100644 --- a/src/controller/usersManagement/roles/RolesControllerIndex.java +++ b/src/controller/usersManagement/roles/RolesControllerIndex.java @@ -15,6 +15,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class RolesControllerIndex extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ if(AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){ diff --git a/src/controller/usersManagement/roles/RolesControllerView.java b/src/controller/usersManagement/roles/RolesControllerView.java index 0e4b6e3..55cc015 100644 --- a/src/controller/usersManagement/roles/RolesControllerView.java +++ b/src/controller/usersManagement/roles/RolesControllerView.java @@ -15,26 +15,10 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; - -/** - * RolesControllerView - * - * Permite ver los Roles - * - * Metodos importantes: - * - * public static getAllRoles() - * Devuelve un List con todos los roles que existen. - * - * public static getRoleKey(String key) - * Devuelve un Rol dada una key. - * La key se obtiene usando el metodo getKey() de un objeto Role - * - * */ - @SuppressWarnings("serial") public class RolesControllerView extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try { if (AccessControllerView.checkPermission(request.getSession().getAttribute("userID").toString(),request.getRequestURI())){ diff --git a/src/controller/usersManagement/users/UsersControllerAdd.java b/src/controller/usersManagement/users/UsersControllerAdd.java index 11157d1..548e0e1 100644 --- a/src/controller/usersManagement/users/UsersControllerAdd.java +++ b/src/controller/usersManagement/users/UsersControllerAdd.java @@ -21,6 +21,7 @@ import java.util.List; public class UsersControllerAdd extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ @@ -71,7 +72,7 @@ public class UsersControllerAdd extends HttpServlet { if (roleList.size() > 0){ userRole = roleList.get(0).getKey(); } else { - userRole = RolesControllerAdd.createRole(userRole,true,pm); + userRole = RolesControllerAdd.createRole("Cliente",true,pm); } createUser(userID, userEmail, userName, userImg, userRole, pm); @@ -104,7 +105,7 @@ public class UsersControllerAdd extends HttpServlet { //Si lo que se quiere es Crear (proviene del formulario) case "create": createUser(userID, userEmail, userName, userImg, userRole, pm); - serverResponse = "{\"color\": \"#26a69a\",\"response\":\"User created successfully.\"}"; + serverResponse = "{\"color\": \"#26a69a\",\"response\":\"Usuario creado con éxito.\"}"; break; //Si lo que se quiere es actualizar un Usuario diff --git a/src/controller/usersManagement/users/UsersControllerDelete.java b/src/controller/usersManagement/users/UsersControllerDelete.java index fc4cdf3..4fe5132 100644 --- a/src/controller/usersManagement/users/UsersControllerDelete.java +++ b/src/controller/usersManagement/users/UsersControllerDelete.java @@ -14,6 +14,7 @@ import java.io.IOException; @SuppressWarnings("serial") public class UsersControllerDelete extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + response.setCharacterEncoding("UTF-8"); try{ @@ -25,7 +26,7 @@ public class UsersControllerDelete extends HttpServlet { try{ pm.deletePersistent(pm.getObjectById(User.class, userID)); - request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"User deleted sucessfully.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"#26a69a\",\"response\":\"Usuario eliminado con éxito.\"}"); } catch (JDOObjectNotFoundException e){ System.err.println("Exception catched -> " + e.getMessage()); } @@ -36,7 +37,7 @@ public class UsersControllerDelete extends HttpServlet { } else { - request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to delete a user.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"No tienes permiso para eliminar un Usuario.\"}"); response.sendRedirect("/e/users"); } diff --git a/src/controller/usersManagement/users/UsersControllerIndex.java b/src/controller/usersManagement/users/UsersControllerIndex.java index 7d7755f..916faf7 100644 --- a/src/controller/usersManagement/users/UsersControllerIndex.java +++ b/src/controller/usersManagement/users/UsersControllerIndex.java @@ -12,8 +12,8 @@ import java.io.IOException; @SuppressWarnings("serial") public class UsersControllerIndex extends HttpServlet { - public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ //Se usa para revisar si hay una sesion activa @@ -33,7 +33,7 @@ public class UsersControllerIndex extends HttpServlet { dispatcher.forward(request,response); } else { - request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to access /users.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"No tienes permiso para acceder a /e/users.\"}"); response.sendRedirect("/e/"); } diff --git a/src/controller/usersManagement/users/UsersControllerView.java b/src/controller/usersManagement/users/UsersControllerView.java index d63424b..66e3cce 100644 --- a/src/controller/usersManagement/users/UsersControllerView.java +++ b/src/controller/usersManagement/users/UsersControllerView.java @@ -17,8 +17,8 @@ import java.util.List; @SuppressWarnings("serial") public class UsersControllerView extends HttpServlet { - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); try{ @@ -77,7 +77,7 @@ public class UsersControllerView extends HttpServlet { } else { - request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"You don\\'t have permission to edit/view a user.\"}"); + request.getSession().setAttribute("serverResponse","{\"color\": \"red\",\"response\":\"No tienes permiso para ver/editar un usuario.\"}"); response.sendRedirect("/e/users"); } diff --git a/src/model/Material.java b/src/model/Material.java index 41d30cd..0591082 100644 --- a/src/model/Material.java +++ b/src/model/Material.java @@ -4,6 +4,10 @@ import javax.jdo.annotations.*; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.KeyFactory; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; + @PersistenceCapable(identityType=IdentityType.APPLICATION) public class Material { @@ -25,11 +29,17 @@ public class Material { @Persistent private int amount; + @Persistent + private String createDate; + public Material(String name, int price, int quantity, String unity) { this.name = name; this.price = price; this.amount = quantity; this.unity = unity; + + DateFormat df = new SimpleDateFormat("HH:mm:ss dd/MM/yy"); + this.createDate = df.format(Calendar.getInstance().getTime()); } public String getKey() { @@ -65,4 +75,8 @@ public class Material { this.amount = amount; } -} \ No newline at end of file + public String getCreateDate() { + return createDate; + } +} + diff --git a/src/model/Transaction.java b/src/model/Transaction.java new file mode 100644 index 0000000..4c8654e --- /dev/null +++ b/src/model/Transaction.java @@ -0,0 +1,62 @@ +package model; + +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import controller.resourcesManagement.services.ServicesControllerView; + +import javax.jdo.annotations.*; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +@PersistenceCapable(identityType = IdentityType.APPLICATION) +public class Transaction { + + @PrimaryKey + @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) + private Key key; + + @Persistent + private String userID; + + @Persistent + private String serviceKey; + + @Persistent + private String servicePrice; + + @Persistent + private String createDate; + + public Transaction(String userID, String serviceKey, String servicePrice) { + this.userID = userID; + this.serviceKey = serviceKey; + this.servicePrice = servicePrice; + + DateFormat df = new SimpleDateFormat("HH:mm:ss dd/MM/yy"); + this.createDate = df.format(Calendar.getInstance().getTime()); + } + + public String getKey() { + return KeyFactory.keyToString(key); + } + + public String getUserID() { + return userID; + } + + public String getServiceKey() { + return serviceKey; + } + public String getServiceName(){ + return ServicesControllerView.getService(serviceKey).getName(); + } + + public String getServicePrice() { + return servicePrice; + } + + public String getCreateDate() { + return createDate; + } +} diff --git a/src/model/User.java b/src/model/User.java index 4222e90..4566d6f 100644 --- a/src/model/User.java +++ b/src/model/User.java @@ -6,6 +6,7 @@ import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; +import java.util.ArrayList; @PersistenceCapable(identityType = IdentityType.APPLICATION) public class User { @@ -32,6 +33,10 @@ public class User { @Persistent private String roleKey; + //Lista de Strings con Keys de las transacciones del usuario -> trans,trans,trans, + @Persistent + private String transactionList; + //Constructor public User(String id, String name, String imgUrl, String email ,String role){ this.id = id; @@ -39,9 +44,9 @@ public class User { this.imgUrl = imgUrl; this.email = email; this.roleKey = role; + transactionList = ""; } - //Getters y Setters public String getId() { return id; @@ -85,6 +90,14 @@ public class User { this.roleKey = roleKey; } + public String getTransactionList() { + return transactionList; + } + public void addTransaction(String transactionKey){ + transactionList = transactionKey + "," + transactionList; + } + + //To String @Override public String toString() { diff --git a/war/WEB-INF/View/ClientViews/transactionsHistory.jsp b/war/WEB-INF/View/ClientViews/transactionsHistory.jsp new file mode 100644 index 0000000..37864ac --- /dev/null +++ b/war/WEB-INF/View/ClientViews/transactionsHistory.jsp @@ -0,0 +1,190 @@ +<%@ page import="model.User" %> +<%@ page import="java.util.ArrayList" %> +<%@ page import="model.Transaction" %> +<%@ page import="controller.financesManagement.transactions.TransactionsControllerView" %> +<% User usuario = (User) request.getAttribute("User"); + String serverResponse = (String) request.getAttribute("serverResponse"); + ArrayList transactionList = (ArrayList) request.getAttribute("transactionList"); + if (serverResponse == null) serverResponse = "!"; +%> + + + + + + Historial - Hotel Service + + + + + + + + + + + + + + + + + + + + + + +
+
+ Historial de compras +
+
+ + <%if (!serverResponse.equals("!")){ %> + +
+
+
+ + + <% } %> +
+
+ + Mi Historial
+
+ + + + + + + + + + + + + <% for (String key: transactionList) { + Transaction transaction = TransactionsControllerView.getTransaction(key); + %> + + + + + + + + <% } %> + + +
ServicioPrecioFecha de compra
<%=transaction.getServiceName()%><%=transaction.getServicePrice()%><%=transaction.getCreateDate()%>
+ + + +
+ + + + + diff --git a/war/WEB-INF/View/Finances/index.jsp b/war/WEB-INF/View/Finances/index.jsp index ffd3d3a..9a9baa6 100644 --- a/war/WEB-INF/View/Finances/index.jsp +++ b/war/WEB-INF/View/Finances/index.jsp @@ -90,7 +90,7 @@ @@ -115,10 +115,12 @@ respDiv.style.backgroundColor = responseData["color"]; respDiv.innerHTML = "
" + responseData["response"] + "
"; - respDiv.style.maxHeight = "500px"; setTimeout(function () { - respDiv.style.maxHeight = "0"; - },1500); + respDiv.style.maxHeight = "500px"; + setTimeout(function () { + respDiv.style.maxHeight = "0"; + },1500); + },50); @@ -128,9 +130,7 @@ Incompleto. Faltan datos acerca de:
    -
  1. Ingresos mediante Clientes
  2. Egresos mediante pagos a Empleados
  3. -
  4. Egresos mediante compra de recursos (comida, implementos, etc.)
diff --git a/war/WEB-INF/View/Materials/add.jsp b/war/WEB-INF/View/Materials/add.jsp index 9bf4dbe..7825b94 100644 --- a/war/WEB-INF/View/Materials/add.jsp +++ b/war/WEB-INF/View/Materials/add.jsp @@ -104,12 +104,12 @@ Nombre del Material:

- Cantidad:
-
- Precio por unidad:

+ Cantidad:
+
+ Unidad (ejm. Kg, Litros):

diff --git a/war/WEB-INF/View/Materials/index.jsp b/war/WEB-INF/View/Materials/index.jsp index c5a5f3a..b2ed3ad 100644 --- a/war/WEB-INF/View/Materials/index.jsp +++ b/war/WEB-INF/View/Materials/index.jsp @@ -143,6 +143,8 @@ Precio Unitario Cantidad Unidad + Fecha de Creación + Acciones @@ -154,6 +156,7 @@ <%= material.getPrice() %> <%= material.getAmount() %> <%= material.getUnity() %> + <%= material.getCreateDate() %> View | Edit diff --git a/war/WEB-INF/View/Transactions/index.jsp b/war/WEB-INF/View/Transactions/index.jsp new file mode 100644 index 0000000..1674d8c --- /dev/null +++ b/war/WEB-INF/View/Transactions/index.jsp @@ -0,0 +1,161 @@ +<%@ page import="model.Resource" %> +<%@ page import="model.User" %> +<%@ page import="model.Transaction" %> +<%@ page import="java.util.List" %> +<%-- + Created by IntelliJ IDEA. + User: Jose + Date: 07/06/2018 + Time: 16:39 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<% User usuario = (User) request.getAttribute("User"); + List transitionList = (List) request.getAttribute("transactionsList"); + String serverResponse = (String) request.getAttribute("serverResponse"); + if (serverResponse == null) serverResponse = "!"; +%> + + + Transacciones - Hotel Services + + + + + + + + + + + + + + + + + + + + +
+
+ Transacciones +
+
+ + <%if (!serverResponse.equals("!")){ %> + +
+
+
+ + + <% } %> +
+
+ + + + + + + + + + + <% for (Transaction transaction: transitionList) {%> + + + + + + + + + <% } %> + +
ID del UsuarioServicioCostoFecha de facturación
<%=transaction.getUserID()%><%=transaction.getServiceName()%><%=transaction.getServicePrice()%><%=transaction.getCreateDate()%>
+ + + +
+ + + diff --git a/war/WEB-INF/View/eIndex.jsp b/war/WEB-INF/View/eIndex.jsp index 7002328..9f0e15c 100644 --- a/war/WEB-INF/View/eIndex.jsp +++ b/war/WEB-INF/View/eIndex.jsp @@ -170,7 +170,8 @@ Reportes de Ingresos

diff --git a/war/WEB-INF/appengine-web.xml b/war/WEB-INF/appengine-web.xml index ef33bb3..af73ff7 100644 --- a/war/WEB-INF/appengine-web.xml +++ b/war/WEB-INF/appengine-web.xml @@ -1,7 +1,7 @@ - lab08-20173373 - 2 + hotel-service-210413 + 1 true index diff --git a/war/index.jsp b/war/index.jsp index d4afd6b..db94660 100644 --- a/war/index.jsp +++ b/war/index.jsp @@ -1,4 +1,6 @@ <%@ page import="model.User" %> +<%@ page import="model.Service" %> +<%@ page import="java.util.List" %> <% boolean isUserLogged; try { isUserLogged = Boolean.parseBoolean(request.getAttribute("isUserLogged").toString()); @@ -8,6 +10,7 @@ } User usuario = (User) request.getAttribute("User"); String serverResponse = (String) request.getAttribute("serverResponse"); + List serviceList = (List) request.getAttribute("servicesList"); if (serverResponse == null) serverResponse = "!"; %> @@ -74,7 +77,7 @@
- ¡Bienvenido! Inicia Sesión para empezar. + Bienvenido! Inicia Sesion para empezar.

@@ -138,8 +141,6 @@
- - + <% } else { %>
@@ -259,21 +251,43 @@
Bienvenido <%=usuario.getName()%>.
-
- Algunos datos:
-
-
- Tu nombre: <%=usuario.getName()%>
- Tu correo electrónico: <%=usuario.getEmail()%>
- Tu Rol: <%=usuario.getRoleName()%> + + <% if (Boolean.parseBoolean(request.getAttribute("hasAccess").toString())){ %> +
+ how_to_reg + Ir al Area de Empleados
-
- + <% } %> + +
+ Contrata un Servicio: +
+ <% for (Service service: serviceList) {%> + +
+ <%=service.getName()%> +
+
+ <%=service.getDescription()%> +
+
+ <%=service.getPrice()%> S/.     + + add_shopping_cart + Comprar + +
+
+
+ + <% } %>

- how_to_regEmpleados +