diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/main/java/com/roshka/bootcamp/ConsultaClienteFactura.java b/src/main/java/com/roshka/bootcamp/ConsultaClienteFactura.java index 5deef72..8ea9480 100644 --- a/src/main/java/com/roshka/bootcamp/ConsultaClienteFactura.java +++ b/src/main/java/com/roshka/bootcamp/ConsultaClienteFactura.java @@ -21,6 +21,20 @@ public class ConsultaClienteFactura extends HttpServlet { consulta1(res); }else if(respuesta.equals("consulta2")){ consulta2(res); + }else if(respuesta.equals("consulta3")){ + consulta3(res); + }else if(respuesta.equals("consulta4")){ + consulta4(res); + }else if(respuesta.equals("consulta5")){ + consulta5(res); + }else if(respuesta.equals("consulta6")){ + consulta6(res); + }else if(respuesta.equals("consulta7")){ + consulta7(res); + }else if(respuesta.equals("consulta8")){ + consulta8(res); + }else if(respuesta.equals("consulta9")){ + consulta9(res); } } @@ -85,6 +99,245 @@ public class ConsultaClienteFactura extends HttpServlet { } } + private void consulta3(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select f.nombre, e.cliente_id, cast(sum(c.cantidad*d.precio) as integer) as Gasto\n" + + "from factura_detalle c\n" + + "inner join producto d\n" + + "\ton d.id=producto_id\n" + + "inner join factura e\n" + + "\ton c.id=e.id\n" + + "inner join Cliente f\n" + + "\ton f.id=e.cliente_id\n" + + "group by e.cliente_id, f.nombre\n" + + "order by Gasto desc;" ); + out.println(""); + out.println(""); + out.print("

*** Nombre " + "- " + "Id - Gasto ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String clienteid = rs.getString("cliente_id"); + String gasto = rs.getString("Gasto"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + private void consulta4(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select b.nombre, count(proveedor_id) Cantidad from producto a\n" + + "inner join proveedor b\n" + + "on b.id=a.proveedor_id\n" + + "group by b.nombre, a.proveedor_id\n" + + "order by cantidad desc" ); + out.println(""); + out.println(""); + out.print("

*** Nombre Producto " + "- " + "Cantidad ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String cantidad = rs.getString("Cantidad"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + private void consulta5(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select b.nombre, a.producto_id, sum(cantidad) as cantidad_Total from factura_detalle a\n" + + "inner join producto b\n" + + "on b.id=a.producto_id\n" + + "group by producto_id,b.nombre\n" + + "ORDER BY cantidad_Total desc limit 10;" ); + out.println(""); + out.println(""); + out.print("

*** Nombre Producto " + "- " +"Id - " + "Cantidad ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String id = rs.getString("producto_id"); + String cantidad = rs.getString("cantidad_Total"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + private void consulta6(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select b.nombre, a.producto_id, sum(cantidad) as cantidad_Total from factura_detalle a\n" + + "inner join producto b\n" + + "on b.id=a.producto_id\n" + + "group by producto_id,b.nombre\n" + + "ORDER BY cantidad_Total limit 10;" ); + out.println(""); + out.println(""); + out.print("

*** Nombre Producto " + "- " +"Id - " + "Cantidad ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String id = rs.getString("producto_id"); + String cantidad = rs.getString("cantidad_Total"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + private void consulta7(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select a.nombre, a.apellido, b.fecha_emision, d.nombre as Nombre_producto, c.cantidad, e.nombre as Tipo_cuenta from cliente a\n" + + "inner join factura b on a.id=b.cliente_id\n" + + "inner join factura_detalle c on c.factura_id = b.id\n" + + "inner join producto d on d.id=c.producto_id\n" + + "inner join factura_tipo e on e.id=b.factura_tipo_id\n" + + "order by b.id" ); + out.println(""); + out.println(""); + out.print("

*** Nombre - Apellido - Fecha - Nombre Producto - " +"Cantidad - Cuenta ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String apellido = rs.getString("apellido"); + String fecha = rs.getString("fecha_emision"); + String producto = rs.getString("Nombre_producto"); + String cantidad = rs.getString("cantidad"); + String cuenta = rs.getString("Tipo_cuenta"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + private void consulta8(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select e.nombre, f.nombre as Tipo_Factura, sum(cantidad*precio) as Monto\n" + + "from factura a\n" + + "inner join Cliente e on e.id=a.cliente_id\n" + + "inner join factura_detalle b on a.id=b.factura_id\n" + + "inner join producto c on c.id=b.producto_id\n" + + "inner join factura_tipo f on f.id=a.factura_tipo_id\n" + + "group by a.id, e.nombre, Tipo_Factura\n" + + "order by Monto desc" ); + out.println(""); + out.println(""); + out.print("

*** Nombre - Tipo Factura - Monto ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String factura = rs.getString("Tipo_Factura"); + String monto = rs.getString("Monto"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + private void consulta9(HttpServletResponse res) { + try { + Statement stmt = BD.getConnection().createStatement(); + res.setContentType("text/html"); + PrintWriter out = res.getWriter(); + ResultSet rs = stmt + .executeQuery( "select e.nombre, f.nombre as Tipo_Factura, sum(cantidad*precio)*0.1 as Monto\n" + + "from factura a\n" + + "inner join Cliente e on e.id=a.cliente_id\n" + + "inner join factura_detalle b on a.id=b.factura_id\n" + + "inner join producto c on c.id=b.producto_id\n" + + "inner join factura_tipo f on f.id=a.factura_tipo_id\n" + + "group by a.id, e.nombre, Tipo_Factura\n" + + "order by Monto desc" ); + out.println(""); + out.println(""); + out.print("

*** Nombre - Tipo Factura - Monto ***


"); + while (rs.next()) { + String nombre = rs.getString("nombre"); + String factura = rs.getString("Tipo_Factura"); + String monto = rs.getString("Monto"); + out.println(""); + + } + out.println(""); + out.println(""); + rs.close(); + stmt.close(); + } catch (Exception e) { + System.err.println(e.getClass().getName() + ": " + e.getMessage()); + } + } + + public void destroy() { try { BD.getConnection().close(); diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 42de4f1..9e8bcbb 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -9,13 +9,50 @@

Bienvenido


-
+

Top clientes con más facturas

+

-
+

Top clientes que más gastaron

+

+

Top monedas más utilizadas

+
+ + +

+

Top proveedor de productos

+
+ + +

+

Productos más vendidos

+
+ + +

+

Productos menos vendidos

+
+ + +

+

Consulta que muestre fecha de emision de factura, nombre y apellido de cliente, nombres de productos de esa factura, cantidades compradas, nombre de tipo de factura de una factura especfica

+
+ + +

+

Montos de facturas ordenadas segun totales

+
+ + +

+

Mostrar el iva 10% de los montos totales de facturas (suponer que todos los productos tienen IVA 10%)

+
+ + +

\ No newline at end of file diff --git a/target/classes/com/roshka/bootcamp/ConsultaClienteFactura.class b/target/classes/com/roshka/bootcamp/ConsultaClienteFactura.class index 7525077..6df96fd 100644 Binary files a/target/classes/com/roshka/bootcamp/ConsultaClienteFactura.class and b/target/classes/com/roshka/bootcamp/ConsultaClienteFactura.class differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 58afb6b..5999796 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,4 +1,4 @@ -#Created by Apache Maven 3.6.3 +#Created by Apache Maven 3.8.1 +version=1.0-SNAPSHOT groupId=com.roshka.bootcamp artifactId=servlets -version=1.0-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index 5ba01d3..2b10686 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,2 +1,4 @@ com\roshka\bootcamp\Parameter.class +com\roshka\bootcamp\ConsultaClienteFactura.class +com\roshka\bootcamp\BD.class com\roshka\bootcamp\HelloWorldServlet.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 35590ab..8bfa6b3 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,2 +1,4 @@ -c:\Users\oscar\Documents\programacion\programacion\java\servlets\src\main\java\com\roshka\bootcamp\Parameter.java -c:\Users\oscar\Documents\programacion\programacion\java\servlets\src\main\java\com\roshka\bootcamp\HelloWorldServlet.java +C:\Users\jose_\IdeaProjects\servlets\src\main\java\com\roshka\bootcamp\HelloWorldServlet.java +C:\Users\jose_\IdeaProjects\servlets\src\main\java\com\roshka\bootcamp\ConsultaClienteFactura.java +C:\Users\jose_\IdeaProjects\servlets\src\main\java\com\roshka\bootcamp\Parameter.java +C:\Users\jose_\IdeaProjects\servlets\src\main\java\com\roshka\bootcamp\BD.java diff --git a/target/servlets.war b/target/servlets.war new file mode 100644 index 0000000..3d3ee71 Binary files /dev/null and b/target/servlets.war differ diff --git a/target/servlets/META-INF/MANIFEST.MF b/target/servlets/META-INF/MANIFEST.MF new file mode 100644 index 0000000..749bc9e --- /dev/null +++ b/target/servlets/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Created-By: IntelliJ IDEA +Built-By: jose_ +Build-Jdk: 1.8.0_332 + diff --git a/target/servlets/WEB-INF/classes/com/roshka/bootcamp/BD.class b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/BD.class new file mode 100644 index 0000000..c887304 Binary files /dev/null and b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/BD.class differ diff --git a/target/servlets/WEB-INF/classes/com/roshka/bootcamp/ConsultaClienteFactura.class b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/ConsultaClienteFactura.class new file mode 100644 index 0000000..6df96fd Binary files /dev/null and b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/ConsultaClienteFactura.class differ diff --git a/target/servlets/WEB-INF/classes/com/roshka/bootcamp/HelloWorldServlet.class b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/HelloWorldServlet.class index 96d75eb..b84676f 100644 Binary files a/target/servlets/WEB-INF/classes/com/roshka/bootcamp/HelloWorldServlet.class and b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/HelloWorldServlet.class differ diff --git a/target/servlets/WEB-INF/classes/com/roshka/bootcamp/Parameter.class b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/Parameter.class index f02aed1..5cde941 100644 Binary files a/target/servlets/WEB-INF/classes/com/roshka/bootcamp/Parameter.class and b/target/servlets/WEB-INF/classes/com/roshka/bootcamp/Parameter.class differ diff --git a/target/servlets/WEB-INF/lib/postgresql-42.3.5.jar b/target/servlets/WEB-INF/lib/postgresql-42.3.5.jar new file mode 100644 index 0000000..8f7292f Binary files /dev/null and b/target/servlets/WEB-INF/lib/postgresql-42.3.5.jar differ diff --git a/target/servlets/WEB-INF/web.xml b/target/servlets/WEB-INF/web.xml index 44cfa4a..9b00007 100644 --- a/target/servlets/WEB-INF/web.xml +++ b/target/servlets/WEB-INF/web.xml @@ -13,4 +13,5 @@ HelloWorldServlet /hola + diff --git a/target/servlets/index.jsp b/target/servlets/index.jsp index f87c9dd..9e8bcbb 100644 --- a/target/servlets/index.jsp +++ b/target/servlets/index.jsp @@ -1,5 +1,58 @@ - + + + + + + + Home + -

Hello indes!

+

Bienvenido

+
+

Top clientes con más facturas

+
+ + +

+

Top clientes que más gastaron

+
+ + +

+

Top monedas más utilizadas

+
+ + +

+

Top proveedor de productos

+
+ + +

+

Productos más vendidos

+
+ + +

+

Productos menos vendidos

+
+ + +

+

Consulta que muestre fecha de emision de factura, nombre y apellido de cliente, nombres de productos de esa factura, cantidades compradas, nombre de tipo de factura de una factura especfica

+
+ + +

+

Montos de facturas ordenadas segun totales

+
+ + +

+

Mostrar el iva 10% de los montos totales de facturas (suponer que todos los productos tienen IVA 10%)

+
+ + +

- + \ No newline at end of file diff --git a/target/servlets/parameters.html b/target/servlets/parameters.html new file mode 100644 index 0000000..fac149b --- /dev/null +++ b/target/servlets/parameters.html @@ -0,0 +1,15 @@ + + + + + Parametros + + + +
+ +
+ +
+ + \ No newline at end of file