919 lines
27 KiB
Java
919 lines
27 KiB
Java
|
import java.awt.BorderLayout;
|
|||
|
import java.awt.EventQueue;
|
|||
|
|
|||
|
import javax.swing.JFrame;
|
|||
|
import javax.swing.JPanel;
|
|||
|
import javax.swing.border.EmptyBorder;
|
|||
|
import javax.swing.JMenuBar;
|
|||
|
import javax.swing.JOptionPane;
|
|||
|
import javax.swing.JMenu;
|
|||
|
import javax.swing.DefaultListSelectionModel;
|
|||
|
import javax.swing.JButton;
|
|||
|
import javax.swing.JComboBox;
|
|||
|
import javax.swing.JFileChooser;
|
|||
|
import javax.swing.JScrollPane;
|
|||
|
import javax.swing.JTextField;
|
|||
|
import javax.swing.ListSelectionModel;
|
|||
|
import javax.swing.JLabel;
|
|||
|
import java.awt.Font;
|
|||
|
import java.awt.Label;
|
|||
|
|
|||
|
import javax.swing.JTextArea;
|
|||
|
import java.awt.Color;
|
|||
|
import java.awt.Component;
|
|||
|
|
|||
|
import javax.swing.JProgressBar;
|
|||
|
import javax.swing.JList;
|
|||
|
import javax.swing.JTabbedPane;
|
|||
|
import javax.swing.JTable;
|
|||
|
import javax.swing.border.LineBorder;
|
|||
|
import javax.swing.event.ListSelectionEvent;
|
|||
|
import javax.swing.event.ListSelectionListener;
|
|||
|
import javax.swing.table.DefaultTableModel;
|
|||
|
import javax.swing.table.TableModel;
|
|||
|
|
|||
|
import lib.SQLConnection;
|
|||
|
|
|||
|
import javax.swing.JPasswordField;
|
|||
|
import java.awt.event.ActionListener;
|
|||
|
import java.awt.event.ComponentEvent;
|
|||
|
import java.awt.event.ComponentListener;
|
|||
|
import java.awt.event.ActionEvent;
|
|||
|
import javax.swing.SwingConstants;
|
|||
|
import java.awt.event.MouseAdapter;
|
|||
|
import java.awt.event.MouseEvent;
|
|||
|
import java.io.File;
|
|||
|
import java.io.IOException;
|
|||
|
import java.sql.SQLException;
|
|||
|
import java.time.LocalDate;
|
|||
|
import java.time.temporal.IsoFields;
|
|||
|
import java.util.ArrayList;
|
|||
|
import java.util.Arrays;
|
|||
|
import java.util.Collections;
|
|||
|
import java.util.Comparator;
|
|||
|
import java.util.HashMap;
|
|||
|
|
|||
|
import javax.swing.event.CaretListener;
|
|||
|
import javax.swing.event.CaretEvent;
|
|||
|
import java.awt.GridBagLayout;
|
|||
|
import java.awt.GridBagConstraints;
|
|||
|
import net.miginfocom.swing.MigLayout;
|
|||
|
import javax.swing.JTextPane;
|
|||
|
|
|||
|
public class MainFrame extends JFrame {
|
|||
|
|
|||
|
private JPanel contentPane;
|
|||
|
private JTextField textField;
|
|||
|
private JTextField textField_1;
|
|||
|
private JTable table;
|
|||
|
private JTextField textField_2;
|
|||
|
private JTextField textField_3;
|
|||
|
private JPasswordField textField_4;
|
|||
|
private JTable table_2;
|
|||
|
private float Preis = 0.0F;
|
|||
|
DefaultTableModel model;
|
|||
|
JScrollPane scrollPane_1 = new JScrollPane();
|
|||
|
private JTextField txtProduktID;
|
|||
|
private JTextField txtProduktName;
|
|||
|
private JTextField txtPreis;
|
|||
|
JScrollPane scrollPane = new JScrollPane();
|
|||
|
|
|||
|
JTextArea textArea_AX = new JTextArea();
|
|||
|
JTextArea textArea_BX = new JTextArea();
|
|||
|
JTextArea textArea_CX = new JTextArea();
|
|||
|
JTextArea textArea_AY = new JTextArea();
|
|||
|
JTextArea textArea_BY = new JTextArea();
|
|||
|
JTextArea textArea_CY = new JTextArea();
|
|||
|
JTextArea textArea_AZ = new JTextArea();
|
|||
|
JTextArea textArea_BZ = new JTextArea();
|
|||
|
JTextArea textArea_CZ = new JTextArea();
|
|||
|
|
|||
|
JFrame _this = this;
|
|||
|
|
|||
|
/**
|
|||
|
* Launch the application.
|
|||
|
*/
|
|||
|
public static void main(String[] args) {
|
|||
|
EventQueue.invokeLater(new Runnable() {
|
|||
|
public void run() {
|
|||
|
try {
|
|||
|
MainFrame frame = new MainFrame();
|
|||
|
frame.setVisible(true);
|
|||
|
} catch (Exception e) {
|
|||
|
e.printStackTrace();
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* Create the frame.
|
|||
|
*/
|
|||
|
public MainFrame() {
|
|||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|||
|
setBounds(100, 100, 882, 623);
|
|||
|
contentPane = new JPanel();
|
|||
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
|||
|
setContentPane(contentPane);
|
|||
|
contentPane.setLayout(null);
|
|||
|
|
|||
|
SQLConnection db = new SQLConnection();
|
|||
|
|
|||
|
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
|
|||
|
tabbedPane.addMouseListener(new MouseAdapter() {
|
|||
|
@Override
|
|||
|
public void mouseClicked(MouseEvent arg0) {
|
|||
|
textArea_AX.setText("");
|
|||
|
textArea_BX.setText("");
|
|||
|
textArea_CX.setText("");
|
|||
|
textArea_AY.setText("");
|
|||
|
textArea_BY.setText("");
|
|||
|
textArea_CY.setText("");
|
|||
|
textArea_AZ.setText("");
|
|||
|
textArea_BZ.setText("");
|
|||
|
textArea_CZ.setText("");
|
|||
|
|
|||
|
if (tabbedPane.getSelectedIndex() != 2)
|
|||
|
return;
|
|||
|
|
|||
|
// ABC-Analyse ausf<73>hren
|
|||
|
SQLConnection db = new SQLConnection("102-012/sven");
|
|||
|
|
|||
|
|
|||
|
HashMap<Integer, Float> abcxyz = new HashMap<>();
|
|||
|
|
|||
|
ArrayList<HashMap<String, String>> produkte = db.queryToMap("SELECT ID FROM t_artikel");
|
|||
|
for (HashMap<String, String> produkt : produkte) {
|
|||
|
int produktID = Integer.parseInt(produkt.get("ID"));
|
|||
|
|
|||
|
Float verkauf = 0f;
|
|||
|
|
|||
|
ArrayList<HashMap<String, String>> verkaufswerte = db.queryToMap(
|
|||
|
"SELECT Menge, Verkaufspreis, Woche FROM t_statistik WHERE f_Artikel_ID = " + produktID);
|
|||
|
|
|||
|
for (HashMap<String, String> wert : verkaufswerte) {
|
|||
|
float summe = Integer.parseInt(wert.get("Menge")) * Float.parseFloat(wert.get("Verkaufspreis"));
|
|||
|
verkauf += summe;
|
|||
|
}
|
|||
|
|
|||
|
abcxyz.put(produktID, verkauf);
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Funtkion implementieren ids durch namern ersetzen
|
|||
|
//
|
|||
|
|
|||
|
ArrayList<Integer> sortiert = new ArrayList<>(abcxyz.keySet());
|
|||
|
sortiert.sort((a, b) -> Float.compare(abcxyz.get(b), abcxyz.get(a)));
|
|||
|
|
|||
|
// Gesamtumsatz errechnen
|
|||
|
float gesamtUmsatz = 0;
|
|||
|
|
|||
|
for (int i = 0; i < abcxyz.keySet().size(); i++) {
|
|||
|
gesamtUmsatz += abcxyz.get(abcxyz.keySet().toArray()[i]);
|
|||
|
}
|
|||
|
|
|||
|
System.out.println(gesamtUmsatz);
|
|||
|
|
|||
|
// Prozentualen Anteil f<>r jedes Produkt ausrechnen
|
|||
|
HashMap<Integer, Float> prozentualerAnteil = new HashMap<>();
|
|||
|
|
|||
|
for (int i = 0; i < abcxyz.keySet().size(); i++) {
|
|||
|
Float ant = abcxyz.get(abcxyz.keySet().toArray()[i]).floatValue() / gesamtUmsatz;
|
|||
|
prozentualerAnteil.put((Integer) abcxyz.keySet().toArray()[i], ant);
|
|||
|
}
|
|||
|
|
|||
|
/*int AlleProdukte = 50;
|
|||
|
int[] VerkaufteMenge = new int[AlleProdukte];
|
|||
|
ArrayList<HashMap<String, String>> Verkaufte_Artikel;
|
|||
|
|
|||
|
/*for(int i = 0; i < Verkaufte_Artikel.size(); i++)
|
|||
|
{
|
|||
|
//VerkaufteMenge += Integer.parseInt(Verkaufte_Artikel.get(i).get("Menge"));
|
|||
|
}//
|
|||
|
|
|||
|
|
|||
|
int ProduktMenge = 0;
|
|||
|
float[] Verkauft_Durchschnitt = new float[AlleProdukte];
|
|||
|
|
|||
|
for(int i = 1; i < AlleProdukte; i++)
|
|||
|
{
|
|||
|
ArrayList<HashMap<String, String>> Artikel_sortiert = db.queryToMap("SELECT * FROM `t_statistik` WHERE `f_Artikel_ID` = " + i);
|
|||
|
if(Artikel_sortiert.size() > 0)
|
|||
|
{
|
|||
|
ProduktMenge++;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
VerkaufteMenge / ProduktMenge;
|
|||
|
|
|||
|
*/
|
|||
|
|
|||
|
int wochen = 48;
|
|||
|
|
|||
|
HashMap<Integer, Double> Varianzkoeffizienten = new HashMap<>();
|
|||
|
|
|||
|
for (HashMap<String, String> produkt : produkte) {
|
|||
|
int produktID = Integer.parseInt(produkt.get("ID"));
|
|||
|
|
|||
|
ArrayList<HashMap<String, String>> verkauf = db.queryToMap("SELECT * FROM t_statistik WHERE f_Artikel_ID = " + produktID + " AND Woche <= 48");
|
|||
|
|
|||
|
double summeVerkaufteMenge = 0;
|
|||
|
|
|||
|
for (HashMap<String, String> elem : verkauf) {
|
|||
|
summeVerkaufteMenge += Double.parseDouble(elem.get("Menge"));
|
|||
|
}
|
|||
|
|
|||
|
double Erwartungswert = summeVerkaufteMenge / wochen;
|
|||
|
|
|||
|
double summeStichproben = 0;
|
|||
|
|
|||
|
for (HashMap<String, String> elem : verkauf) {
|
|||
|
double menge = Double.parseDouble(elem.get("Menge"));
|
|||
|
summeStichproben += Math.pow(menge - Erwartungswert, 2);
|
|||
|
}
|
|||
|
|
|||
|
double Standardabweichung = Math.sqrt(summeStichproben / wochen);
|
|||
|
|
|||
|
Varianzkoeffizienten.put(produktID, Standardabweichung / Erwartungswert);
|
|||
|
}
|
|||
|
|
|||
|
// Auswerten
|
|||
|
double valABC = 0;
|
|||
|
double valXYZ = 0;
|
|||
|
for (Integer produktID : prozentualerAnteil.keySet()) {
|
|||
|
|
|||
|
valABC += prozentualerAnteil.get(produktID);
|
|||
|
valXYZ = Varianzkoeffizienten.get(produktID);
|
|||
|
|
|||
|
String name = db.queryToMap("SELECT Name FROM t_artikel WHERE ID = " + produktID).get(0).get("Name");
|
|||
|
|
|||
|
if (valABC <= 0.8f) {
|
|||
|
if (valXYZ <= 0.5) {
|
|||
|
textArea_AX.append(name + "\n");
|
|||
|
} else if (valXYZ <= 1.1) {
|
|||
|
textArea_AY.append(name + "\n");
|
|||
|
} else {
|
|||
|
textArea_AZ.append(name + "\n");
|
|||
|
}
|
|||
|
} else if (valABC > 0.8f && valABC <= 0.9) {
|
|||
|
if (valXYZ <= 0.5) {
|
|||
|
textArea_BX.append(name + "\n");
|
|||
|
} else if (valXYZ <= 1.1) {
|
|||
|
textArea_BY.append(name + "\n");
|
|||
|
} else {
|
|||
|
textArea_BZ.append(name + "\n");
|
|||
|
}
|
|||
|
} else {
|
|||
|
if (valXYZ <= 0.5) {
|
|||
|
textArea_CX.append(name + "\n");
|
|||
|
} else if (valXYZ <= 1.1) {
|
|||
|
textArea_CY.append(name + "\n");
|
|||
|
} else {
|
|||
|
textArea_CZ.append(name + "\n");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
tabbedPane.setBounds(10, 11, 846, 563);
|
|||
|
contentPane.add(tabbedPane);
|
|||
|
|
|||
|
String comboBoxWoche[] = { "Woche", "1", "2", "3", "4", };
|
|||
|
|
|||
|
String a = "Januar";
|
|||
|
String b = "Februar";
|
|||
|
String c = "M<EFBFBD>rz";
|
|||
|
String d = "April";
|
|||
|
String e = "Mai";
|
|||
|
String f = "Juni";
|
|||
|
String g = "Juli";
|
|||
|
String o = "August";
|
|||
|
String i = "September";
|
|||
|
String j = "Oktober";
|
|||
|
String k = "November";
|
|||
|
String l = "Dezember";
|
|||
|
|
|||
|
String comboBoxMonate[] = { "Monat", a, b, c, d, e, f, g, o, i, j, k, l, };
|
|||
|
Helper h = new Helper();
|
|||
|
h.connect("sven");
|
|||
|
|
|||
|
JPanel panel_1 = new JPanel();
|
|||
|
tabbedPane.addTab(" Anmelden / Abmelden ", null, panel_1, null);
|
|||
|
panel_1.setLayout(null);
|
|||
|
|
|||
|
JLabel lblBenutzername = new JLabel("Benutzername:");
|
|||
|
lblBenutzername.setBounds(123, 134, 93, 14);
|
|||
|
panel_1.add(lblBenutzername);
|
|||
|
|
|||
|
textField_1 = new JTextField();
|
|||
|
textField_1.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent arg0) {
|
|||
|
|
|||
|
Helper g = new Helper();
|
|||
|
g.connect("sven");
|
|||
|
|
|||
|
String SQL = "SELECT Name FROM `t_benutzer` WHERE Name = '" + textField_1.getText() + "'";
|
|||
|
|
|||
|
DefaultTableModel model = g.getTableModel(SQL);
|
|||
|
if (model.getRowCount() == 1) {
|
|||
|
textField_4.setEnabled(true);
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
textField_1.setBounds(226, 131, 110, 20);
|
|||
|
panel_1.add(textField_1);
|
|||
|
textField_1.setColumns(10);
|
|||
|
|
|||
|
JLabel lblPasswort = new JLabel("Passwort:");
|
|||
|
lblPasswort.setBounds(149, 159, 67, 14);
|
|||
|
panel_1.add(lblPasswort);
|
|||
|
|
|||
|
JButton btnBesttigen = new JButton("Best\u00E4tigen");
|
|||
|
btnBesttigen.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
|
|||
|
|
|||
|
Helper g = new Helper();
|
|||
|
g.connect("sven");
|
|||
|
String SQL = "SELECT Passwort FROM `t_benutzer` WHERE Name = '" + textField_1.getText() + "'";
|
|||
|
|
|||
|
DefaultTableModel model = g.getTableModel(SQL);
|
|||
|
if(model.getRowCount() == 1) {
|
|||
|
String hash = model.getValueAt(0, 0).toString();
|
|||
|
|
|||
|
// BCrypt Format Backport. Versionen Prefix <20>nderung
|
|||
|
if(hash.toCharArray()[2] == 'y') {
|
|||
|
char[] hashArray = hash.toCharArray();
|
|||
|
hashArray[2] = 'a';
|
|||
|
hash = String.valueOf(hashArray);
|
|||
|
}
|
|||
|
|
|||
|
// wenn der gehashte Wert in der Datenbank mit dem textArea_BX.append(prozentualerAnteil.get(prozentualerAnteil.keySet().toArray()[i]).toString() + "\n");
|
|||
|
|
|||
|
if(org.mindrot.BCrypt.checkpw(String.valueOf(textField_4.getPassword()), hash)) {
|
|||
|
tabbedPane.setVisible(true);
|
|||
|
|
|||
|
tabbedPane.setEnabledAt(1, true);
|
|||
|
tabbedPane.setEnabledAt(2, true);
|
|||
|
tabbedPane.setSelectedIndex(1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
btnBesttigen.setBounds(123, 193, 213, 47);
|
|||
|
panel_1.add(btnBesttigen);
|
|||
|
|
|||
|
textField_4 = new JPasswordField();
|
|||
|
textField_4.setEnabled(false);
|
|||
|
textField_4.setColumns(10);
|
|||
|
textField_4.setBounds(226, 162, 110, 20);
|
|||
|
panel_1.add(textField_4);
|
|||
|
model = new DefaultTableModel();
|
|||
|
model.setColumnIdentifiers(new String[] { "ID", "Menge", "Preis", "SVEN Bon" });
|
|||
|
|
|||
|
JPanel panel = new JPanel();
|
|||
|
tabbedPane.addTab(" Kasse ", null, panel, null);
|
|||
|
tabbedPane.setEnabledAt(1, false);
|
|||
|
|
|||
|
JLabel label = new JLabel("0,00\u20AC");
|
|||
|
label.setBounds(571, 38, 142, 14);
|
|||
|
panel.add(label);
|
|||
|
|
|||
|
JButton btnTotal = new JButton("Bezahlen");
|
|||
|
btnTotal.setBounds(525, 424, 188, 82);
|
|||
|
btnTotal.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
int rowCount = model.getRowCount();
|
|||
|
|
|||
|
String Woche = textField_3.getText();
|
|||
|
|
|||
|
if (Woche.isEmpty() == false) {
|
|||
|
|
|||
|
for (int r = 0; r < rowCount; r++) {
|
|||
|
String ProduktID = (String) model.getValueAt(r, 0);
|
|||
|
String Menge = (String) model.getValueAt(r, 1);
|
|||
|
String Einzelpreis = (String) model.getValueAt(r, 2);
|
|||
|
|
|||
|
db.execute("INSERT INTO t_statistik (`ID`, `f_Artikel_ID`, `Woche`, `Menge`, `Verkaufspreis`) VALUES (NULL, '" + ProduktID + "', '" + Woche + "', '" + Menge + "', '" + Einzelpreis + "')");
|
|||
|
}
|
|||
|
|
|||
|
textField_2.setText("");
|
|||
|
txtPreis.setText("");
|
|||
|
txtProduktID.setText("");
|
|||
|
txtProduktName.setText("");
|
|||
|
|
|||
|
model = new DefaultTableModel();
|
|||
|
model.setColumnIdentifiers(new String[] { "ID", "Menge", "Preis", "SVEN Bon" });
|
|||
|
table_2.setModel(model);
|
|||
|
label.setText("0,00 <20>");
|
|||
|
Preis = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
panel.setLayout(null);
|
|||
|
btnTotal.setFont(new Font("Tahoma", Font.PLAIN, 12));
|
|||
|
panel.add(btnTotal);
|
|||
|
|
|||
|
JButton button_1 = new JButton("3");
|
|||
|
button_1.setBounds(607, 372, 41, 41);
|
|||
|
button_1.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "3");
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
JButton button_2 = new JButton("6");
|
|||
|
button_2.setBounds(607, 332, 41, 41);
|
|||
|
button_2.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "6");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_2);
|
|||
|
|
|||
|
JButton btnDel = new JButton("DEL");
|
|||
|
btnDel.setBounds(648, 291, 65, 41);
|
|||
|
btnDel.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
String text = textField_2.getText();
|
|||
|
textField_2.setText(text.substring(0, text.length() - 1));
|
|||
|
}
|
|||
|
});
|
|||
|
btnDel.setFont(new Font("Tahoma", Font.PLAIN, 12));
|
|||
|
btnDel.setForeground(Color.RED);
|
|||
|
panel.add(btnDel);
|
|||
|
|
|||
|
JButton button_3 = new JButton("9");
|
|||
|
button_3.setBounds(607, 292, 41, 41);
|
|||
|
button_3.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "9");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_3);
|
|||
|
|
|||
|
JButton button_5 = new JButton("2");
|
|||
|
button_5.setBounds(566, 372, 41, 41);
|
|||
|
button_5.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "2");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_5);
|
|||
|
|
|||
|
JButton button_6 = new JButton("5");
|
|||
|
button_6.setBounds(566, 332, 41, 41);
|
|||
|
button_6.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "5");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_6);
|
|||
|
|
|||
|
JButton button_7 = new JButton("8");
|
|||
|
button_7.setBounds(566, 292, 41, 41);
|
|||
|
button_7.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "8");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_7);
|
|||
|
|
|||
|
JButton button_8 = new JButton("0");
|
|||
|
button_8.setBounds(648, 372, 65, 41);
|
|||
|
button_8.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent arg0) {
|
|||
|
textField_2.setText(textField_2.getText() + "0");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_8);
|
|||
|
|
|||
|
JButton button_9 = new JButton("1");
|
|||
|
button_9.setBounds(525, 372, 41, 41);
|
|||
|
button_9.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "1");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_9);
|
|||
|
|
|||
|
JButton button_10 = new JButton("4");
|
|||
|
button_10.setBounds(525, 332, 41, 41);
|
|||
|
button_10.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "4");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_10);
|
|||
|
|
|||
|
JButton button_11 = new JButton("7");
|
|||
|
button_11.setBounds(525, 292, 41, 41);
|
|||
|
button_11.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText(textField_2.getText() + "7");
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(button_11);
|
|||
|
|
|||
|
JButton btnAbbruch = new JButton("Abbruch");
|
|||
|
btnAbbruch.setBounds(443, 291, 82, 41);
|
|||
|
btnAbbruch.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
textField_2.setText("");
|
|||
|
txtPreis.setText("");
|
|||
|
txtProduktID.setText("");
|
|||
|
txtProduktName.setText("");
|
|||
|
|
|||
|
model = new DefaultTableModel();
|
|||
|
model.setColumnIdentifiers(new String[] { "ID", "Menge", "Preis", "SVEN Bon" });
|
|||
|
table_2.setModel(model);
|
|||
|
label.setText("0,00 <20>");
|
|||
|
Preis = 0;
|
|||
|
}
|
|||
|
});
|
|||
|
btnAbbruch.setFont(new Font("Tahoma", Font.PLAIN, 12));
|
|||
|
panel.add(btnAbbruch);
|
|||
|
|
|||
|
textField = new JTextField();
|
|||
|
textField.addCaretListener(new CaretListener() {
|
|||
|
public void caretUpdate(CaretEvent arg0) {
|
|||
|
String Suchen = textField.getText();
|
|||
|
|
|||
|
if (Suchen.equals("")) {
|
|||
|
table = new JTable();
|
|||
|
Helper h = new Helper();
|
|||
|
h.connect("sven");
|
|||
|
table.setModel(h.getTableModel("SELECT ID, Name, Marke, Verkaufspreis FROM t_artikel"));
|
|||
|
scrollPane.setViewportView(table);
|
|||
|
|
|||
|
} else {
|
|||
|
table = new JTable();
|
|||
|
Helper g = new Helper();
|
|||
|
g.connect("sven");
|
|||
|
|
|||
|
String SQL = "SELECT ID, Name, Marke, Verkaufspreis FROM `t_artikel` WHERE Name LIKE '" + Suchen
|
|||
|
+ "%' ";
|
|||
|
|
|||
|
table.setModel(g.getTableModel(SQL));
|
|||
|
scrollPane.setViewportView(table);
|
|||
|
}
|
|||
|
|
|||
|
table.getColumnModel().getColumn(0).setPreferredWidth(25);
|
|||
|
|
|||
|
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
|
|||
|
@Override
|
|||
|
public void valueChanged(ListSelectionEvent e) {
|
|||
|
|
|||
|
if (e.getValueIsAdjusting() == false) {
|
|||
|
|
|||
|
txtProduktID.setText((String) table.getModel().getValueAt(table.getSelectedRow(), 0));
|
|||
|
|
|||
|
txtProduktName.setText((String) table.getModel().getValueAt(table.getSelectedRow(), 1));
|
|||
|
|
|||
|
float preis = Float.parseFloat((String) table.getModel().getValueAt(table.getSelectedRow(), 3));
|
|||
|
|
|||
|
txtPreis.setText(String.format("%.2f <20>", preis));
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
});
|
|||
|
textField.setBounds(10, 11, 423, 20);
|
|||
|
panel.add(textField);
|
|||
|
textField.setColumns(10);
|
|||
|
|
|||
|
JLabel lblBetrag = new JLabel("Betrag:");
|
|||
|
lblBetrag.setBounds(525, 38, 60, 14);
|
|||
|
panel.add(lblBetrag);
|
|||
|
|
|||
|
JComboBox Woche = new JComboBox(comboBoxWoche);
|
|||
|
Woche.setBounds(505, 11, 80, 20);
|
|||
|
panel.add(Woche);
|
|||
|
|
|||
|
JComboBox Monate = new JComboBox(comboBoxMonate);
|
|||
|
Monate.setBounds(583, 11, 133, 20);
|
|||
|
panel.add(Monate);
|
|||
|
|
|||
|
JButton btnKw = new JButton("KW");
|
|||
|
btnKw.setBounds(716, 11, 55, 20);
|
|||
|
btnKw.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent arg0) {
|
|||
|
int p;
|
|||
|
String w = (String) Woche.getSelectedItem();
|
|||
|
p = Integer.valueOf(w);
|
|||
|
String m = (String) Monate.getSelectedItem();
|
|||
|
int n = 0;
|
|||
|
if (m.equals(a)) {
|
|||
|
n = 1;
|
|||
|
}
|
|||
|
if (m.equals(b)) {
|
|||
|
n = 2;
|
|||
|
}
|
|||
|
if (m.equals(c)) {
|
|||
|
n = 3;
|
|||
|
}
|
|||
|
if (m.equals(d)) {
|
|||
|
n = 4;
|
|||
|
}
|
|||
|
if (m.equals(e)) {
|
|||
|
n = 5;
|
|||
|
}
|
|||
|
if (m.equals(f)) {
|
|||
|
n = 6;
|
|||
|
}
|
|||
|
if (m.equals(g)) {
|
|||
|
n = 7;
|
|||
|
}
|
|||
|
if (m.equals(o)) {
|
|||
|
n = 8;
|
|||
|
}
|
|||
|
if (m.equals(i)) {
|
|||
|
n = 9;
|
|||
|
}
|
|||
|
if (m.equals(j)) {
|
|||
|
n = 10;
|
|||
|
}
|
|||
|
if (m.equals(k)) {
|
|||
|
n = 11;
|
|||
|
}
|
|||
|
if (m.equals(l)) {
|
|||
|
n = 12;
|
|||
|
}
|
|||
|
int k;
|
|||
|
k = (p + ((n - 1) * 4));
|
|||
|
String q;
|
|||
|
q = String.valueOf(k);
|
|||
|
textField_3.setText(q);
|
|||
|
}
|
|||
|
});
|
|||
|
panel.add(btnKw);
|
|||
|
|
|||
|
scrollPane.setBounds(10, 36, 423, 375);
|
|||
|
panel.add(scrollPane);
|
|||
|
|
|||
|
panel.add(button_1);
|
|||
|
|
|||
|
JButton btnEnter = new JButton("Enter");
|
|||
|
btnEnter.setBounds(648, 331, 65, 41);
|
|||
|
btnEnter.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent e) {
|
|||
|
|
|||
|
int Menge = Integer.parseInt(textField_2.getText());
|
|||
|
|
|||
|
float Einzelpreis = Float.valueOf(txtPreis.getText().replace("<EFBFBD>", "").replace(",", "."));
|
|||
|
|
|||
|
float Summe = Menge * Einzelpreis;
|
|||
|
|
|||
|
Preis += Summe;
|
|||
|
label.setText(String.format("%.2f <20>", Preis));
|
|||
|
|
|||
|
model.addRow(new String[] { txtProduktID.getText(), Menge + "", Einzelpreis + "", Summe + " <20>" });
|
|||
|
|
|||
|
textField_2.setText("");
|
|||
|
txtPreis.setText("");
|
|||
|
txtProduktID.setText("");
|
|||
|
txtProduktName.setText("");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
});
|
|||
|
btnEnter.setFont(new Font("Tahoma", Font.PLAIN, 12));
|
|||
|
btnEnter.setForeground(Color.GREEN);
|
|||
|
panel.add(btnEnter);
|
|||
|
|
|||
|
scrollPane_1.setBounds(505, 51, 208, 193);
|
|||
|
panel.add(scrollPane_1);
|
|||
|
|
|||
|
table_2 = new JTable();
|
|||
|
table_2.setModel(model);
|
|||
|
table_2.getColumnModel().getColumn(0).setPreferredWidth(20);
|
|||
|
scrollPane_1.setViewportView(table_2);
|
|||
|
|
|||
|
JButton btnQrcodeScannen = new JButton("QR-Code");
|
|||
|
btnQrcodeScannen.addActionListener(new ActionListener() {
|
|||
|
public void actionPerformed(ActionEvent arg0) {
|
|||
|
// JFileChooser erstellen
|
|||
|
JFileChooser fc = new JFileChooser();
|
|||
|
fc.setCurrentDirectory(new File("T:/INTABI19/Projekt/ELMO Interactive Toolbox/rec"));
|
|||
|
|
|||
|
// Wenn im Dialog nicht OK gedr<64>ckt wurde, Methode verlassen
|
|||
|
if (fc.showOpenDialog(_this) != JFileChooser.APPROVE_OPTION)
|
|||
|
return;
|
|||
|
|
|||
|
// Ausgew<65>hlte Datei auslesen
|
|||
|
File f = fc.getSelectedFile();
|
|||
|
|
|||
|
// Ausgelesener Wert
|
|||
|
int value = -1;
|
|||
|
|
|||
|
// Versuche, den QR-Code einzulesen
|
|||
|
// Wenn das nicht geht, wird eine Fehlermeldung ausgegeben
|
|||
|
try {
|
|||
|
value = SvenQR.ReadQR(f.getAbsolutePath());
|
|||
|
} catch (IOException e1) {
|
|||
|
JOptionPane.showMessageDialog(_this, "QR-Code konnte nicht eingelesen werden: " + e1.getMessage());
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
int Menge = 1;
|
|||
|
|
|||
|
Helper g = new Helper();
|
|||
|
g.connect("sven");
|
|||
|
String SQL = "SELECT Verkaufspreis FROM `t_artikel` WHERE QR = " + value;
|
|||
|
|
|||
|
DefaultTableModel _model = g.getTableModel(SQL);
|
|||
|
|
|||
|
if (_model.getRowCount() != 1) {
|
|||
|
JOptionPane.showMessageDialog(_this, "QR-Code konnte nicht zugeordnet werden.");
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
float Einzelpreis = Float.valueOf(_model.getValueAt(0, 0).toString());
|
|||
|
float Summe = Menge * Einzelpreis;
|
|||
|
|
|||
|
Preis += Summe;
|
|||
|
label.setText(String.format("%.2f <20>", Preis));
|
|||
|
|
|||
|
model.addRow(new String[] { GetProductIDFromQRCode(value), Menge + "", Einzelpreis + "", Summe + " <20>" });
|
|||
|
}
|
|||
|
});
|
|||
|
btnQrcodeScannen.setBounds(443, 331, 82, 82);
|
|||
|
btnQrcodeScannen.setFont(new Font("Trebuchet MS", Font.PLAIN, 12));
|
|||
|
panel.add(btnQrcodeScannen);
|
|||
|
|
|||
|
textField_2 = new JTextField();
|
|||
|
textField_2.setBounds(505, 271, 103, 20);
|
|||
|
textField_2.setColumns(10);
|
|||
|
panel.add(textField_2);
|
|||
|
|
|||
|
textField_3 = new JTextField();
|
|||
|
textField_3.setBounds(771, 11, 60, 20);
|
|||
|
panel.add(textField_3);
|
|||
|
textField_3.setColumns(10);
|
|||
|
|
|||
|
txtProduktID = new JTextField();
|
|||
|
txtProduktID.setEditable(false);
|
|||
|
txtProduktID.setBounds(505, 248, 61, 20);
|
|||
|
panel.add(txtProduktID);
|
|||
|
txtProduktID.setColumns(10);
|
|||
|
|
|||
|
txtProduktName = new JTextField();
|
|||
|
txtProduktName.setEditable(false);
|
|||
|
txtProduktName.setBounds(566, 248, 147, 20);
|
|||
|
panel.add(txtProduktName);
|
|||
|
txtProduktName.setColumns(10);
|
|||
|
|
|||
|
txtPreis = new JTextField();
|
|||
|
txtPreis.setEditable(false);
|
|||
|
txtPreis.setBounds(607, 271, 106, 20);
|
|||
|
panel.add(txtPreis);
|
|||
|
txtPreis.setColumns(10);
|
|||
|
|
|||
|
textField.setText("4");
|
|||
|
textField.setText("");
|
|||
|
|
|||
|
JPanel panel_2 = new JPanel();
|
|||
|
tabbedPane.addTab(" ABC- / XYZ-Analyse ", null, panel_2, null);
|
|||
|
tabbedPane.setEnabledAt(2, false);
|
|||
|
panel_2.setLayout(new MigLayout("", "[][grow][grow][grow]", "[][grow][grow][grow]"));
|
|||
|
|
|||
|
JPanel panel_3 = new JPanel();
|
|||
|
panel_2.add(panel_3, "cell 1 0,grow");
|
|||
|
panel_3.setLayout(new BorderLayout(0, 0));
|
|||
|
|
|||
|
JLabel lblA = new JLabel("A");
|
|||
|
lblA.setFont(new Font("Tahoma", Font.BOLD, 18));
|
|||
|
lblA.setHorizontalAlignment(SwingConstants.CENTER);
|
|||
|
panel_3.add(lblA, BorderLayout.CENTER);
|
|||
|
|
|||
|
JPanel panel_4 = new JPanel();
|
|||
|
panel_2.add(panel_4, "cell 2 0,grow");
|
|||
|
panel_4.setLayout(new BorderLayout(0, 0));
|
|||
|
|
|||
|
JLabel lblB = new JLabel("B");
|
|||
|
lblB.setHorizontalAlignment(SwingConstants.CENTER);
|
|||
|
lblB.setFont(new Font("Tahoma", Font.BOLD, 18));
|
|||
|
panel_4.add(lblB, BorderLayout.CENTER);
|
|||
|
|
|||
|
JPanel panel_5 = new JPanel();
|
|||
|
panel_2.add(panel_5, "cell 3 0,grow");
|
|||
|
panel_5.setLayout(new BorderLayout(0, 0));
|
|||
|
|
|||
|
JLabel lblNewLabel = new JLabel("C");
|
|||
|
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
|
|||
|
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
|
|||
|
panel_5.add(lblNewLabel, BorderLayout.CENTER);
|
|||
|
|
|||
|
JPanel panel_6 = new JPanel();
|
|||
|
panel_2.add(panel_6, "cell 0 1,grow");
|
|||
|
panel_6.setLayout(new BorderLayout(0, 0));
|
|||
|
|
|||
|
JLabel lblX = new JLabel("X");
|
|||
|
lblX.setHorizontalAlignment(SwingConstants.CENTER);
|
|||
|
lblX.setFont(new Font("Tahoma", Font.BOLD, 18));
|
|||
|
panel_6.add(lblX, BorderLayout.CENTER);
|
|||
|
|
|||
|
JScrollPane scrollPane_2 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_2, "cell 1 1,grow");
|
|||
|
textArea_AX.setEditable(false);
|
|||
|
textArea_AX.setWrapStyleWord(true);
|
|||
|
scrollPane_2.setViewportView(textArea_AX);
|
|||
|
|
|||
|
JScrollPane scrollPane_3 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_3, "cell 2 1,grow");
|
|||
|
|
|||
|
|
|||
|
textArea_BX.setWrapStyleWord(true);
|
|||
|
textArea_BX.setEditable(false);
|
|||
|
scrollPane_3.setViewportView(textArea_BX);
|
|||
|
|
|||
|
JScrollPane scrollPane_4 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_4, "cell 3 1,grow");
|
|||
|
|
|||
|
|
|||
|
textArea_CX.setWrapStyleWord(true);
|
|||
|
textArea_CX.setEditable(false);
|
|||
|
scrollPane_4.setViewportView(textArea_CX);
|
|||
|
|
|||
|
JPanel panel_7 = new JPanel();
|
|||
|
panel_2.add(panel_7, "cell 0 2,grow");
|
|||
|
panel_7.setLayout(new BorderLayout(0, 0));
|
|||
|
|
|||
|
JLabel lblY = new JLabel("Y");
|
|||
|
lblY.setHorizontalAlignment(SwingConstants.CENTER);
|
|||
|
lblY.setFont(new Font("Tahoma", Font.BOLD, 18));
|
|||
|
panel_7.add(lblY, BorderLayout.CENTER);
|
|||
|
|
|||
|
JScrollPane scrollPane_5 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_5, "cell 1 2,grow");
|
|||
|
|
|||
|
textArea_AY.setWrapStyleWord(true);
|
|||
|
textArea_AY.setEditable(false);
|
|||
|
scrollPane_5.setViewportView(textArea_AY);
|
|||
|
|
|||
|
JScrollPane scrollPane_6 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_6, "cell 2 2,grow");
|
|||
|
|
|||
|
textArea_BY.setWrapStyleWord(true);
|
|||
|
textArea_BY.setEditable(false);
|
|||
|
scrollPane_6.setViewportView(textArea_BY);
|
|||
|
|
|||
|
JScrollPane scrollPane_7 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_7, "cell 3 2,grow");
|
|||
|
|
|||
|
textArea_CY.setWrapStyleWord(true);
|
|||
|
textArea_CY.setEditable(false);
|
|||
|
scrollPane_7.setViewportView(textArea_CY);
|
|||
|
|
|||
|
JPanel panel_8 = new JPanel();
|
|||
|
panel_2.add(panel_8, "cell 0 3,grow");
|
|||
|
panel_8.setLayout(new BorderLayout(0, 0));
|
|||
|
|
|||
|
JLabel lblZ = new JLabel("Z");
|
|||
|
lblZ.setHorizontalAlignment(SwingConstants.CENTER);
|
|||
|
lblZ.setFont(new Font("Tahoma", Font.BOLD, 18));
|
|||
|
panel_8.add(lblZ, BorderLayout.CENTER);
|
|||
|
|
|||
|
JScrollPane scrollPane_8 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_8, "cell 1 3,grow");
|
|||
|
|
|||
|
textArea_AZ.setWrapStyleWord(true);
|
|||
|
textArea_AZ.setEditable(false);
|
|||
|
scrollPane_8.setViewportView(textArea_AZ);
|
|||
|
|
|||
|
JScrollPane scrollPane_9 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_9, "cell 2 3,grow");
|
|||
|
|
|||
|
textArea_BZ.setWrapStyleWord(true);
|
|||
|
textArea_BZ.setEditable(false);
|
|||
|
scrollPane_9.setViewportView(textArea_BZ);
|
|||
|
|
|||
|
JScrollPane scrollPane_10 = new JScrollPane();
|
|||
|
panel_2.add(scrollPane_10, "cell 3 3,grow");
|
|||
|
|
|||
|
textArea_CZ.setWrapStyleWord(true);
|
|||
|
textArea_CZ.setEditable(false);
|
|||
|
scrollPane_10.setViewportView(textArea_CZ);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private String GetProductIDFromQRCode(int value) {
|
|||
|
Helper g = new Helper();
|
|||
|
g.connect("sven");
|
|||
|
String SQL = "SELECT ID FROM `t_artikel` WHERE QR = " + value;
|
|||
|
|
|||
|
DefaultTableModel model = g.getTableModel(SQL);
|
|||
|
|
|||
|
if (model.getRowCount() != 1) {
|
|||
|
JOptionPane.showMessageDialog(_this, "QR-Code konnte nicht zugeordnet werden.");
|
|||
|
return "";
|
|||
|
}
|
|||
|
|
|||
|
return String.valueOf(model.getValueAt(0, 0));
|
|||
|
}
|
|||
|
}
|