From 778290763d4546bd4177b553cb218940c187204c Mon Sep 17 00:00:00 2001 From: Ryuuji159 Date: Wed, 2 Nov 2016 04:20:29 +0100 Subject: [PATCH] Se sube ventana principal practicamente completa --- bin/utiles/ControlPrincipal.class | Bin 6137 -> 6426 bytes bin/visual/Principal$1.class | Bin 732 -> 732 bytes bin/visual/Principal$2.class | Bin 834 -> 834 bytes bin/visual/Principal$3.class | Bin 732 -> 732 bytes bin/visual/Principal$4.class | Bin 732 -> 732 bytes bin/visual/Principal$5.class | Bin 732 -> 732 bytes bin/visual/Principal$6.class | Bin 732 -> 732 bytes bin/visual/Principal$7.class | Bin 732 -> 732 bytes bin/visual/Principal.class | Bin 23132 -> 27538 bytes bin/visual/Prueba.class | Bin 0 -> 1683 bytes src/utiles/ControlPrincipal.java | 142 ++++--- src/visual/Principal.java | 652 +++++++++++++++++++----------- src/visual/Prueba.java | 39 ++ 13 files changed, 537 insertions(+), 296 deletions(-) create mode 100644 bin/visual/Prueba.class create mode 100644 src/visual/Prueba.java diff --git a/bin/utiles/ControlPrincipal.class b/bin/utiles/ControlPrincipal.class index 45c9929ee4cceb7747d8a0cd895316fe50228ef4..4a851823e615e50abe8fa910edc0b83858fe42e4 100644 GIT binary patch delta 2896 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 diff --git a/bin/visual/Principal$1.class b/bin/visual/Principal$1.class index 8faa2620e75bef57f49cbb1177886c29a6d4d42f..7dc9a02b508aa430ba3aaae3a781b4b60cc5f9d1 100644 GIT binary patch delta 23 fcmcb^dWUsG7!%`-$>B^6talhV817DB^6tk)Sh7;a3S!{h(}W=042 diff --git a/bin/visual/Principal$2.class b/bin/visual/Principal$2.class index 08399d0be47d3d32b15a57dd5f8988fce35cc94b..5172920ef4428b6ec8c13f87c255fe14e22ce357 100644 GIT binary patch delta 23 fcmX@ac8G1m0w&f+4BQM)Cog3RVthII2a^{7YQG5w delta 23 fcmX@ac8G1m0w&hG4BQM4CNE_QVtg|B2a^{7Y9t8w diff --git a/bin/visual/Principal$3.class b/bin/visual/Principal$3.class index 7e63aec12f9062496d54749e26bd08f785f3a483..08f2e46aed8d1deb7903a9752e8bb47a88e27f19 100644 GIT binary patch delta 23 ecmcb^dWUsG7!#wwd95H3hH$ delta 23 ecmcb^dWUsG7!xD+d94qy?b> diff --git a/bin/visual/Principal$4.class b/bin/visual/Principal$4.class index e7df3f3adf3fed2cc5bca9f2fa4d7a39fc5ae344..64db457b042d16c50f873c72899cdce71baa1385 100644 GIT binary patch delta 23 ecmcb^dWUsG7!#x3d98n+6I1 delta 23 ecmcb^dWUsG7!#xBd983I+QB diff --git a/bin/visual/Principal$5.class b/bin/visual/Principal$5.class index 821d92eaad4892ae0c4a6c1b31cfd8c8283cedaa..883b87558eeaac540eeb422ebb8372bb83000cd2 100644 GIT binary patch delta 23 fcmcb^dWUsG7!%`;$>B^6ta}(Z823(|!{h(}V?76` delta 23 fcmcb^dWUsG7!%{($>B^6tOpr57!OUJ!{h(}W6lS+ diff --git a/bin/visual/Principal$6.class b/bin/visual/Principal$6.class index b0c9d201923bf008b619498bd917ef31be98b55e..d3d124d08e40d6c92c74c78729aacd28ae004a98 100644 GIT binary patch delta 25 gcmcb^dWUsGC=(Mi|KxBcdp2fa1`cMC$#a+-09Q%{wEzGB delta 25 hcmcb^dWUsGC=(OYy~*KB_H0a#7&w?7PoBf%003`m2p<3d diff --git a/bin/visual/Principal$7.class b/bin/visual/Principal$7.class index ed3a6cc082779f989ab5f78c512767797c93b9e9..92a197460757179ffb7c813b4970edaed214c6bc 100644 GIT binary patch delta 25 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 literal 23132 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 literal 0 HcmV?d00001 diff --git a/src/utiles/ControlPrincipal.java b/src/utiles/ControlPrincipal.java index 23b5a92..d02c69b 100644 --- a/src/utiles/ControlPrincipal.java +++ b/src/utiles/ControlPrincipal.java @@ -1,9 +1,7 @@ package utiles; -import java.text.ParseException; -import java.text.SimpleDateFormat; +import java.time.YearMonth; import java.util.ArrayList; -import java.util.Date; public class ControlPrincipal { @@ -68,7 +66,7 @@ public class ControlPrincipal String[] aux = arch[x].split(";"); if (arch[x].length() > 1) { - saldo = saldoAnterior + Integer.parseInt(aux[aux.length - 3]) - Integer.parseInt(aux[aux.length - 2]); + saldo = saldoAnterior + Integer.parseInt(aux[5]) - Integer.parseInt(aux[6]); } for (int z = 0; z < aux.length - 1; z++) { @@ -100,82 +98,104 @@ public class ControlPrincipal } public String[][] resumenMes() { - String[] arch = archivo.entregarProcesado(); - ArrayList fechas = new ArrayList(); - ArrayList ings = new ArrayList(); - ArrayList egrs = new ArrayList(); - for (int x = 0; x < arch.length; x++) + String[][] fin = new String[4][1]; + if (archivo.leerArchivo().length() > 5) { - String fecha = arch[x].split(";")[1]; - if (!fechas.contains(fecha)) + String[] arch = archivo.entregarProcesado(); + ArrayList fechas = new ArrayList(); + ArrayList ings = new ArrayList(); + ArrayList egrs = new ArrayList(); + for (int x = 0; x < arch.length; x++) { - fechas.add(fecha); - ings.add("0"); - egrs.add("0"); + String fecha = arch[x].split(";")[1].split("/")[2] + "-" + arch[x].split(";")[1].split("/")[1]; + if (!fechas.contains(fecha)) + { + fechas.add(fecha); + ings.add("0"); + egrs.add("0"); + } } + for (int x = 0; x < arch.length; x++) + { + String fecha = arch[x].split(";")[1].split("/")[2] + "-" + arch[x].split(";")[1].split("/")[1]; + String ing = arch[x].split(";")[5]; + String egr = arch[x].split(";")[6]; + int index = fechas.indexOf(fecha); + ings.set(index, String.valueOf(Integer.parseInt(ings.get(index)) + Integer.parseInt(ing))); + egrs.set(index, String.valueOf(Integer.parseInt(egrs.get(index)) + Integer.parseInt(egr))); + } + fin = new String[4][fechas.size()]; + for (int x = 0; x < fechas.size(); x++) + { + fin[0][x] = fechas.get(x); + fin[1][x] = String.valueOf(Integer.parseInt(ings.get(x)) - Integer.parseInt(egrs.get(x))); + fin[2][x] = ings.get(x); + fin[3][x] = egrs.get(x); + } + fin = ordenarSaldos(fin); } - for (int x = 0; x < arch.length; x++) - { - String fecha = arch[x].split(";")[1]; - String ing = arch[x].split(";")[5]; - String egr = arch[x].split(";")[6]; - int index = fechas.indexOf(fecha); - ings.set(index, String.valueOf(Integer.parseInt(ings.get(index))+Integer.parseInt(ing))); - egrs.set(index, String.valueOf(Integer.parseInt(egrs.get(index))+Integer.parseInt(egr))); - - } - String[][] fin = new String[4][fechas.size()]; - for(int x = 0; x < fechas.size(); x++) - { - fin[0][x] = fechas.get(x); - fin[1][x] = String.valueOf(Integer.parseInt(ings.get(x))-Integer.parseInt(egrs.get(x))); - fin[2][x] = ings.get(x); - } - - fin = ordenarSaldos(fin); return fin; } public String[][] ordenarSaldos(String[][] saldos) { - SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); - try + boolean swapped = true; + int j = 0; + String tmp; + String tmp1; + String tmp2; + String tmp3; + while (swapped) { - boolean swapped = true; - int j = 0; - String tmp; - String tmp1; - while (swapped) + swapped = false; + j++; + for (int i = 0; i < saldos[0].length - j; i++) { - swapped = false; - j++; - for (int i = 0; i < saldos[0].length - j; i++) + YearMonth f1 = YearMonth.parse(saldos[0][i]); + YearMonth f2 = YearMonth.parse(saldos[0][i + 1]); + if (f1.isAfter(f2)) { - if (formatter.parse(saldos[0][i]).after(formatter.parse(saldos[0][i+1]))) - { - tmp = saldos[0][i]; - tmp1 = saldos[1][i]; - saldos[0][i] = saldos[0][i + 1]; - saldos[1][i] = saldos[1][i + 1]; - saldos[0][i + 1] = tmp; - saldos[1][i + 1] = tmp1; - swapped = true; - } + tmp = saldos[0][i]; + tmp1 = saldos[1][i]; + tmp2 = saldos[2][i]; + tmp3 = saldos[3][i]; + saldos[0][i] = saldos[0][i + 1]; + saldos[1][i] = saldos[1][i + 1]; + saldos[2][i] = saldos[2][i + 1]; + saldos[3][i] = saldos[3][i + 1]; + saldos[0][i + 1] = tmp; + saldos[1][i + 1] = tmp1; + saldos[2][i + 1] = tmp2; + saldos[3][i + 1] = tmp3; + swapped = true; } } - - } catch (ParseException e) - { - e.printStackTrace(); } return saldos; } - public void prueba() + public int[] resumenDoc() { - String[][] prueba = resumenMes(); - for(int x = 0; x < prueba[0].length; x++) + String[] arch = archivo.entregarProcesado(); + int[] docs = { 0, 0, 0}; + if (archivo.leerArchivo().length() > 5) { - System.out.println(prueba[0][x]+" "+prueba[1][x]); + for (int x = 0; x < arch.length; x++) + { + String[] aux = arch[x].split(";"); + switch(aux[2]) + { + case "Efectivo": + docs[0] += Integer.parseInt(aux[5])-Integer.parseInt(aux[6]); + break; + case "Transferencia": + docs[1] += Integer.parseInt(aux[5])-Integer.parseInt(aux[6]); + break; + case "Credito": + docs[2] += Integer.parseInt(aux[5])-Integer.parseInt(aux[6]); + break; + } + } } + return docs; } public void getRuta() { diff --git a/src/visual/Principal.java b/src/visual/Principal.java index f392c98..d50ca27 100644 --- a/src/visual/Principal.java +++ b/src/visual/Principal.java @@ -1,5 +1,6 @@ package visual; +import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; @@ -9,7 +10,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Calendar; -import java.util.Date; import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; @@ -28,9 +28,15 @@ import javax.swing.WindowConstants; import javax.swing.table.DefaultTableModel; import org.jdesktop.swingx.JXDatePicker; - +import org.jfree.chart.ChartFactory; +import org.jfree.chart.ChartPanel; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.data.category.DefaultCategoryDataset; import utiles.*; +import java.util.ArrayList; + public class Principal { private JFrame principal; @@ -57,8 +63,8 @@ public class Principal private JTextField fNumber; private JTextField fUsuario; private JPanel graph; - private JPanel graphDoc; - private JPanel graphMes; + private ChartPanel graphDoc; + private ChartPanel graphMes; private JTextField iM1; private JTextField iM2; private JTextField iM3; @@ -110,7 +116,8 @@ public class Principal private JXDatePicker jXDatePicker1; private JXDatePicker jXDatePicker2; private String usuario; - + private DefaultCategoryDataset dataSetMes; + private DefaultCategoryDataset dataSetDoc; public Principal(String usuario) { this.usuario = usuario; @@ -153,8 +160,6 @@ public class Principal fNumber = new JTextField(); panelResumen = new JPanel(); graph = new JPanel(); - graphMes = new JPanel(); - graphDoc = new JPanel(); tipoGraph = new JComboBox<>(); jLabel1 = new JLabel(); lMes1 = new JLabel(); @@ -420,25 +425,15 @@ public class Principal .addComponent(eliminar))) .addGap(29, 29, 29))); panel.add(panelCartola, "card2"); + graphMes = crearGraphMes(); + graphDoc = crearGraphDoc(); panelResumen.setBackground(new Color(21, 21, 21)); panelResumen.setForeground(new Color(255, 255, 255)); graph.setBackground(new Color(153, 153, 153)); graph.setLayout(new CardLayout()); - graphMes.setBackground(new Color(0, 0, 0)); - GroupLayout graphMesLayout = new GroupLayout(graphMes); - graphMes.setLayout(graphMesLayout); - graphMesLayout.setHorizontalGroup( - graphMesLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 719, Short.MAX_VALUE)); - graphMesLayout.setVerticalGroup( - graphMesLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 449, Short.MAX_VALUE)); graph.add(graphMes, "Mes"); graphDoc.setBackground(new Color(255, 255, 255)); - GroupLayout graphDocLayout = new GroupLayout(graphDoc); - graphDoc.setLayout(graphDocLayout); - graphDocLayout.setHorizontalGroup( - graphDocLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 719, Short.MAX_VALUE)); - graphDocLayout.setVerticalGroup( - graphDocLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(0, 449, Short.MAX_VALUE)); + graphDoc.setLayout(new BorderLayout()); graph.add(graphDoc, "Documento"); tipoGraph.setFont(new Font("Eras Light ITC", 0, 14)); // NOI18N tipoGraph.setModel(new DefaultComboBoxModel<>(new String[] { "Mes", "Documento" })); @@ -503,224 +498,278 @@ public class Principal GroupLayout panelResumenLayout = new GroupLayout(panelResumen); panelResumen.setLayout(panelResumenLayout); panelResumenLayout - .setHorizontalGroup( - panelResumenLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(GroupLayout.Alignment.TRAILING, panelResumenLayout.createSequentialGroup() - .addContainerGap().addGroup(panelResumenLayout.createParallelGroup( - GroupLayout.Alignment.LEADING) - .addComponent(lIng2, - GroupLayout.Alignment.TRAILING) - .addGroup(GroupLayout.Alignment.TRAILING, - panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(lSaldo2).addComponent(lEgr2))) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED, 24, Short.MAX_VALUE) - .addGroup(panelResumenLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(panelResumenLayout.createSequentialGroup().addGap(19, 19, 19) - .addComponent(lMes1).addGap(43, 43, 43).addComponent(lMes2) - .addGap(49, 49, 49).addComponent(lMes3).addGap(40, 40, 40) - .addComponent(lMes4).addGap(44, 44, 44).addComponent(lMes5) - .addGap(43, 43, 43).addComponent(lMes6)) - .addGroup(panelResumenLayout.createSequentialGroup() - .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(sM1, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM1, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM1, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(sM2, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM2, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM2, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(sM3, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM3, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM3, GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(panelResumenLayout.createSequentialGroup() - .addComponent(sM4, GroupLayout.PREFERRED_SIZE, - 63, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(sM5, GroupLayout.PREFERRED_SIZE, - 63, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18).addComponent(sM6, - GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE)) - .addGroup(panelResumenLayout.createSequentialGroup() - .addComponent(eM4, GroupLayout.PREFERRED_SIZE, - 63, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(eM5, GroupLayout.PREFERRED_SIZE, - 63, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18).addComponent(eM6, - GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE)) - .addGroup(panelResumenLayout.createSequentialGroup() - .addComponent(iM4, GroupLayout.PREFERRED_SIZE, - 63, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(iM5, GroupLayout.PREFERRED_SIZE, - 63, GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18).addComponent(iM6, - GroupLayout.PREFERRED_SIZE, 63, - GroupLayout.PREFERRED_SIZE)))) - .addGroup(GroupLayout.Alignment.TRAILING, - panelResumenLayout.createSequentialGroup() - .addComponent(jLabel2, GroupLayout.PREFERRED_SIZE, 310, - GroupLayout.PREFERRED_SIZE) - .addGap(81, 81, 81))) - .addGap(35, 35, 35) - .addGroup(panelResumenLayout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(panelResumenLayout.createSequentialGroup() - .addComponent(jLabel1).addGap(4, 4, 4).addComponent(tipoGraph, - GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE)) - .addComponent(graph, GroupLayout.PREFERRED_SIZE, 719, - GroupLayout.PREFERRED_SIZE)) - .addGap(6, 6, 6))); + .setHorizontalGroup(panelResumenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelResumenLayout.createSequentialGroup() + .addContainerGap().addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent( + lIng2, javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, + panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lSaldo2).addComponent(lEgr2))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 24, + Short.MAX_VALUE) + .addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, + panelResumenLayout.createSequentialGroup() + .addComponent( + jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 310, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(116, 116, 116)) + .addGroup(panelResumenLayout.createSequentialGroup() + .addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(sM1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM1, javax.swing.GroupLayout.PREFERRED_SIZE, 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lMes1)) + .addGap(18, 18, 18) + .addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lMes2) + .addComponent(sM2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lMes3) + .addGroup(panelResumenLayout.createSequentialGroup() + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(sM3, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM3, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM3, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelResumenLayout + .createSequentialGroup() + .addComponent(sM4, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(sM5, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18).addComponent(sM6, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(panelResumenLayout + .createSequentialGroup() + .addComponent(eM4, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(eM5, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18).addComponent(eM6, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(panelResumenLayout + .createSequentialGroup() + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(iM4, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lMes4)) + .addGap(18, 18, 18) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(iM5, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lMes5)) + .addGap(18, 18, 18) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lMes6) + .addComponent(iM6, + javax.swing.GroupLayout.PREFERRED_SIZE, + 63, + javax.swing.GroupLayout.PREFERRED_SIZE)))))) + .addGap(35, 35, 35))) + .addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelResumenLayout.createSequentialGroup().addComponent(jLabel1) + .addGap(4, 4, 4) + .addComponent(tipoGraph, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(graph, javax.swing.GroupLayout.PREFERRED_SIZE, 719, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(6, 6, 6))); panelResumenLayout .setVerticalGroup( - panelResumenLayout - .createParallelGroup( - GroupLayout.Alignment.LEADING) + panelResumenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup( - panelResumenLayout.createSequentialGroup().addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(graph, - GroupLayout.PREFERRED_SIZE, 449, - GroupLayout.PREFERRED_SIZE) - .addGroup(panelResumenLayout.createSequentialGroup().addGap(50, 50, 50) - .addComponent(jLabel2, GroupLayout.PREFERRED_SIZE, 52, - GroupLayout.PREFERRED_SIZE) - .addGap(40, 40, 40) - .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lMes1).addComponent(lMes2) - .addComponent(lMes3).addComponent(lMes4) - .addComponent(lMes5).addComponent(lMes6)) - .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(panelResumenLayout.createSequentialGroup() + panelResumenLayout + .createSequentialGroup().addGroup(panelResumenLayout + .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(graph, javax.swing.GroupLayout.PREFERRED_SIZE, + 449, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(panelResumenLayout.createSequentialGroup().addGap(50, + 50, 50) + .addComponent(jLabel2, + javax.swing.GroupLayout.PREFERRED_SIZE, 52, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(40, 40, 40) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(lMes1).addComponent(lMes2) + .addComponent(lMes3).addComponent(lMes4) + .addComponent(lMes5).addComponent(lMes6)) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelResumenLayout - .createParallelGroup( - GroupLayout.Alignment.BASELINE) - .addComponent(iM1, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM2, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM4, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM5, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(iM6, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE)) - .addPreferredGap( - LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelResumenLayout - .createParallelGroup( - GroupLayout.Alignment.BASELINE) - .addComponent(eM1, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM2, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM4, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM5, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(eM6, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE)) - .addPreferredGap( - LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelResumenLayout - .createParallelGroup( - GroupLayout.Alignment.BASELINE) - .addComponent(sM1, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(sM2, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(sM4, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(sM5, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addComponent(sM6, - GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE))) - .addGroup(panelResumenLayout.createSequentialGroup() - .addComponent(lIng2) - .addPreferredGap( - LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelResumenLayout - .createParallelGroup( - GroupLayout.Alignment.LEADING) + .createSequentialGroup() .addGroup(panelResumenLayout - .createSequentialGroup() - .addGap(26, 26, 26) - .addComponent(lSaldo2)) - .addComponent(lEgr2))) - .addGroup(panelResumenLayout.createSequentialGroup() - .addComponent(iM3, GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - LayoutStyle.ComponentPlacement.RELATED) - .addComponent(eM3, GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE) - .addPreferredGap( - LayoutStyle.ComponentPlacement.RELATED) - .addComponent(sM3, GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, - GroupLayout.PREFERRED_SIZE))))) + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(iM1, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM2, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM4, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM5, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(iM6, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(eM1, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM2, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM4, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM5, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(eM6, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(sM1, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(sM2, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(sM4, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(sM5, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(sM6, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGroup(panelResumenLayout + .createSequentialGroup() + .addComponent(lIng2) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelResumenLayout + .createParallelGroup( + javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(panelResumenLayout + .createSequentialGroup() + .addGap(26, 26, 26) + .addComponent(lSaldo2)) + .addComponent(lEgr2))) + .addGroup(panelResumenLayout + .createSequentialGroup() + .addComponent(iM3, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(eM3, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap( + javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(sM3, + javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE))))) .addGap(43, 43, 43) .addGroup(panelResumenLayout - .createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(tipoGraph, GroupLayout.PREFERRED_SIZE, - GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(tipoGraph, javax.swing.GroupLayout.PREFERRED_SIZE, + javax.swing.GroupLayout.DEFAULT_SIZE, + javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) - .addGap(0, 41, Short.MAX_VALUE))); + .addGap(0, 65, Short.MAX_VALUE))); panel.add(panelResumen, "card3"); panelPrincipal.setBackground(new Color(21, 21, 21)); pam.setFont(new Font("LM Roman Caps 10", 1, 60)); // NOI18N @@ -829,6 +878,9 @@ public class Principal } private void resumenActionPerformed(ActionEvent evt) { + actualizarGraphMes(); + actualizarGraphDoc(); + llenarResumen(); CardLayout cardLayout = (CardLayout) panel.getLayout(); cardLayout.show(panel, "card3"); } @@ -854,15 +906,13 @@ public class Principal private void comboActionPerformed(ActionEvent evt) { CardLayout cardLayout = (CardLayout) graph.getLayout(); - cardLayout.show(graph, (String)tipoGraph.getSelectedItem()); - crearGraph(); + cardLayout.show(graph, (String) tipoGraph.getSelectedItem()); } private void aƱadirFila() { ControlPrincipal control = new ControlPrincipal(usuario); SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy"); String fecha = formateador.format(jXDatePicker1.getDate()); - jXDatePicker1.setDate(new Date()); String documento = this.documento.getSelectedItem().toString(); String fD = fFD.getText(); fFD.setText(""); @@ -909,10 +959,142 @@ public class Principal control.modificarFila(number, fecha, documento, fD, desc, ing, egr); iniciarTabla(); } - private void crearGraph() + private void llenarResumen() { ControlPrincipal control = new ControlPrincipal(usuario); - control.prueba(); + String[][] resumen = control.resumenMes(); + ArrayList lMeses = new ArrayList(); + ArrayList fIngresos = new ArrayList(); + ArrayList fEgresos = new ArrayList(); + ArrayList fSaldo = new ArrayList(); + lMeses.add(lMes1); + lMeses.add(lMes2); + lMeses.add(lMes3); + lMeses.add(lMes4); + lMeses.add(lMes5); + lMeses.add(lMes6); + fIngresos.add(iM1); + fIngresos.add(iM2); + fIngresos.add(iM3); + fIngresos.add(iM4); + fIngresos.add(iM5); + fIngresos.add(iM6); + fEgresos.add(eM1); + fEgresos.add(eM2); + fEgresos.add(eM3); + fEgresos.add(eM4); + fEgresos.add(eM5); + fEgresos.add(eM6); + fSaldo.add(sM1); + fSaldo.add(sM2); + fSaldo.add(sM3); + fSaldo.add(sM4); + fSaldo.add(sM5); + fSaldo.add(sM6); + if (resumen[0][0] != null) + { + for (int x = resumen[0].length - 1, z = lMeses.size() - 1; x > resumen[0].length - 7; x--, z--) + { + fIngresos.get(z).setText(resumen[2][x]); + fEgresos.get(z).setText(resumen[3][x]); + fSaldo.get(z).setText(resumen[1][x]); + if (resumen[0][x].matches("[0-9]{4}-01")) + { + lMeses.get(z).setText("Enero"); + } else if (resumen[0][x].matches("[0-9]{4}-02")) + { + lMeses.get(z).setText("Febrero"); + } else if (resumen[0][x].matches("[0-9]{4}-03")) + { + lMeses.get(z).setText("Marzo"); + } else if (resumen[0][x].matches("[0-9]{4}-04")) + { + lMeses.get(z).setText("Abril"); + } else if (resumen[0][x].matches("[0-9]{4}-05")) + { + lMeses.get(z).setText("Mayo"); + } else if (resumen[0][x].matches("[0-9]{4}-06")) + { + lMeses.get(z).setText("Junio"); + } else if (resumen[0][x].matches("[0-9]{4}-07")) + { + lMeses.get(z).setText("Julio"); + } else if (resumen[0][x].matches("[0-9]{4}-08")) + { + lMeses.get(z).setText("Agosto"); + } else if (resumen[0][x].matches("[0-9]{4}-09")) + { + lMeses.get(z).setText("Septiembre"); + } else if (resumen[0][x].matches("[0-9]{4}-10")) + { + lMeses.get(z).setText("Octubre"); + } else if (resumen[0][x].matches("[0-9]{4}-11")) + { + lMeses.get(z).setText("Noviembre"); + } else if (resumen[0][x].matches("[0-9]{4}-12")) + { + lMeses.get(z).setText("Diciembre"); + } + } + } + } + private ChartPanel crearGraphMes() + { + ControlPrincipal control = new ControlPrincipal(usuario); + String[][] resumen = control.resumenMes(); + dataSetMes = new DefaultCategoryDataset(); + if (resumen[0][0] != null) + { + for (int x = 0; x < resumen[0].length; x++) + { + dataSetMes.setValue(Integer.parseInt(resumen[1][x]), "Saldo", resumen[0][x]); + } + } + JFreeChart chart = ChartFactory.createBarChart("Resumen Mensual", "Mes", "Saldo", dataSetMes, + PlotOrientation.VERTICAL, false, true, false); + chart.getPlot().setBackgroundPaint(new Color(0, 204, 204)); + chart.getCategoryPlot().getRenderer().setSeriesPaint(0, new Color(21, 21, 21)); + chart.setBackgroundPaint(new Color(0, 204, 204)); + ChartPanel graph = new ChartPanel(chart); + return graph; + } + private ChartPanel crearGraphDoc() + { + ControlPrincipal control = new ControlPrincipal(usuario); + int[] resumen = control.resumenDoc(); + dataSetDoc = new DefaultCategoryDataset(); + dataSetDoc.setValue(resumen[0], "Saldo", "Efectivo"); + dataSetDoc.setValue(resumen[1], "Saldo", "Transferencia"); + dataSetDoc.setValue(resumen[2], "Saldo", "Credito"); + JFreeChart chart = ChartFactory.createBarChart("Resumen por Documentos", "Documento", "Saldo", dataSetDoc, + PlotOrientation.VERTICAL, false, true, false); + chart.getPlot().setBackgroundPaint(new Color(0, 204, 204)); + chart.getCategoryPlot().getRenderer().setSeriesPaint(0, new Color(21, 21, 21)); + chart.setBackgroundPaint(new Color(0, 204, 204)); + ChartPanel graph = new ChartPanel(chart); + return graph; + } + private void actualizarGraphMes() + { + dataSetMes.clear(); + ControlPrincipal control = new ControlPrincipal(usuario); + String[][] resumen = control.resumenMes(); + if (resumen[0][0] != null) + { + for (int x = 0; x < resumen[0].length; x++) + { + dataSetMes.setValue(Integer.parseInt(resumen[1][x]), "Saldo", resumen[0][x]); + } + } + } + private void actualizarGraphDoc() + { + ControlPrincipal control = new ControlPrincipal(usuario); + dataSetDoc.clear(); + int[] resumen = control.resumenDoc(); + dataSetDoc.setValue(resumen[0], "Saldo", "Efectivo"); + dataSetDoc.setValue(resumen[1], "Saldo", "Transferencia"); + dataSetDoc.setValue(resumen[2], "Saldo", "Credito"); } public static void main(String[] args) { diff --git a/src/visual/Prueba.java b/src/visual/Prueba.java new file mode 100644 index 0000000..34f5be7 --- /dev/null +++ b/src/visual/Prueba.java @@ -0,0 +1,39 @@ +package visual; + +import java.awt.BorderLayout; +import java.time.YearMonth; + +import javax.swing.JFrame; +import javax.swing.JPanel; + +import org.jfree.chart.ChartFactory; +import org.jfree.chart.ChartPanel; +import org.jfree.chart.JFreeChart; +import org.jfree.chart.plot.PlotOrientation; +import org.jfree.data.category.DefaultCategoryDataset; +import org.jfree.data.time.Day; +import org.jfree.data.time.TimeSeries; +import org.jfree.data.time.TimeSeriesCollection; + +public class Prueba +{ + public static void main(String[] args) + { + JFrame principal = new JFrame(); + JPanel main = new JPanel(); + principal.add(main); + DefaultCategoryDataset dataset = new DefaultCategoryDataset(); + dataset.setValue(6, "Profit", "Jane"); + dataset.setValue(7, "Profit", "Tom"); + dataset.setValue(8, "Profit", "Jill"); + dataset.setValue(5, "Profit", "John"); + dataset.setValue(12, "Profit", "Fred"); + JFreeChart chart = ChartFactory.createBarChart("Comparison between Salesman", + "Salesman", "Profit", dataset, PlotOrientation.VERTICAL, + false, true, false); + ChartPanel graph = new ChartPanel(chart); + main.add(graph); + principal.pack(); + principal.setVisible(true); + } +}