spostamento metodo pulsantiModoPagamento, che richiama il calcolo del saldo. esso verrà richiamato dopo l'aggiornamento della fascia (conseguente alla scelta della tessera)
4981 lines
220 KiB
Java
4981 lines
220 KiB
Java
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package puntocassa;
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.HttpURLConnection;
|
|
import java.net.URL;
|
|
|
|
import java.sql.*;
|
|
import java.text.DecimalFormat;
|
|
import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.Locale;
|
|
import java.util.Timer;
|
|
import java.util.TimerTask;
|
|
import javax.swing.DefaultComboBoxModel;
|
|
import javax.swing.ImageIcon;
|
|
import javax.swing.JButton;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JOptionPane;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.JTextField;
|
|
import javax.swing.JToggleButton;
|
|
import javax.swing.SwingConstants;
|
|
import javax.swing.SwingUtilities;
|
|
import javax.swing.UIManager;
|
|
import javax.swing.plaf.FontUIResource;
|
|
import javax.xml.parsers.DocumentBuilder;
|
|
import javax.xml.parsers.DocumentBuilderFactory;
|
|
import jssc.SerialPort;
|
|
import jssc.SerialPortException;
|
|
import org.apache.log4j.LogManager;
|
|
import org.w3c.dom.Document;
|
|
import org.w3c.dom.Element;
|
|
import org.w3c.dom.Node;
|
|
import org.w3c.dom.NodeList;
|
|
import puntocassa.utils.Utils;
|
|
|
|
|
|
//******************************************************************************
|
|
// *
|
|
// * @author Master
|
|
// *
|
|
//******************************************************************************
|
|
public class PuntoCassa extends JFrame implements ActionListener {
|
|
|
|
// ==========================================================================
|
|
// *** Variabili globali relative alle connessioni
|
|
// ==========================================================================
|
|
public static String versione = "2.4";
|
|
public static String dbStringa = "";
|
|
private String dbTipo = "";
|
|
private String dbDriver = "";
|
|
public static String dbUsername = "";
|
|
public static String dbPassword = "";
|
|
private String utenteLoggato = "";
|
|
private String imgPath = "";// "L:\\Lavoro\\Goffredo\\risorse\\";
|
|
private int displayWidth = 1024;
|
|
private int displayHeight = 768;
|
|
private int altezzaBarraApplicazioni = 0;
|
|
private Long progressivo = 0L;
|
|
private Long progressivoTurno = 0L;
|
|
private Long progressivoGiorno = 0L;
|
|
private Double progressivoScalare = 0.0;
|
|
private Double progressivoContanti = 0.0;
|
|
private Double progressivoTicket = 0.0;
|
|
private Double progressivoDifferito = 0.0;
|
|
private Double saldoMinimoStop = 0.0;
|
|
private Long idTurno = 0L;
|
|
private String nomeTurno = "";
|
|
private Long idTurnoAttuale = 0L;
|
|
private String nomeTurnoAttuale = "";
|
|
|
|
private int colImporto = 1;
|
|
private int colPunti = 2;
|
|
private int colIDProdotto = 3;
|
|
private int colImporto2 = 4;
|
|
private int colCategoria = 5;
|
|
public Long idPuntoCassa = 0L;
|
|
private Boolean consentiCredito = false;
|
|
private Long idProfiloTariffario = 0L;
|
|
private Long idProfiloTariffarioDefault = 0L;
|
|
public static Long idModoPagamento = 0L;
|
|
public static String modoPagamentoDefault = "A scalare";
|
|
public static Integer flagBonus = 0;
|
|
private Long idTessera = 0L;
|
|
private Long idPrenotazione = 0L;
|
|
private Boolean isCassaAperta = false;
|
|
private Long idAccount = 0L;
|
|
Timer timerCard;
|
|
private int numeroCategorie = 0;
|
|
private Boolean statoCardLettore = false;
|
|
StringBuilder testoSwipCard = new StringBuilder();
|
|
StringBuilder testoRFIDCard = new StringBuilder();
|
|
StringBuilder logTestoTessera = new StringBuilder();
|
|
String logNumeroTessera = "", logIDTessera = "", logTesseraErrore = "";
|
|
private Boolean flagImpostaTipoPagamento = false;
|
|
private Boolean menuGiornoPresente = false, messaggioSaldoUnaVolta = false;
|
|
private Boolean flagMostraDataDiNascita = true;
|
|
private Boolean stoCalcolando = false;
|
|
private Boolean flagEsegueStorni = true;
|
|
|
|
enum StatiCarta {
|
|
ASSENTE, INSERITA, RIMOSSA
|
|
}
|
|
|
|
public StatiCarta statoCarta;
|
|
public Boolean cartaLetta = false;
|
|
public static KeyEventDispatcher keyDispatcher;
|
|
public int hFont = 15;
|
|
private int altControlli = 100;
|
|
private int largControlli = 100;
|
|
public FrmProgress myProgressForm;
|
|
public FrmMeteo myMeteoForm;
|
|
private int gratuitaResidue = 0;
|
|
private int bonusResidui = 0;
|
|
private StringBuilder modiPagamento = new StringBuilder("");
|
|
private static Boolean keyDespatcherAttivo = false;
|
|
public Boolean passaggioTessera = false;
|
|
private Boolean passaggiEsauritiNoComposizione = false;
|
|
private static Boolean visualizzaMessaggiDisplay = true;
|
|
private static String messageDisplay = "";
|
|
public static Boolean flagExtra = false;
|
|
public static Boolean flagRicevuta = false;
|
|
Timer timerDisplay = new Timer();
|
|
private static Integer delaySwipCard = 100;
|
|
private static Boolean bottoneImposta = true;
|
|
private static Boolean asporto = false;
|
|
private static Boolean flagPrecaricaLista = false;
|
|
|
|
//delta per la grafica (in px)
|
|
private int deltaWidth = 14;
|
|
private int deltaHeight = 7;
|
|
|
|
|
|
// ==========================================================================
|
|
// *** Constructor della classe PuntoCassa
|
|
// ==========================================================================
|
|
public PuntoCassa() {
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Esegue le impostazioni di base
|
|
// -----------------------------------------------------------------------
|
|
initComponents();
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Legge la configurazione dal file XML
|
|
// -----------------------------------------------------------------------
|
|
try {
|
|
DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
|
|
DocumentBuilder builder = documentFactory.newDocumentBuilder();
|
|
String startDir = System.getProperty("user.dir");
|
|
Document document = builder.parse(new File(startDir + "/risorse/puntocassa.xml"));
|
|
|
|
File iconaApp = new File(startDir + "/risorse/logo.png");
|
|
if (iconaApp.exists()) {
|
|
|
|
ImageIcon icon = new ImageIcon(startDir + "/risorse/logo.png");
|
|
this.setIconImage(icon.getImage());
|
|
}
|
|
// --------------------------------------------------------------------
|
|
// ** Accesso al database
|
|
// --------------------------------------------------------------------
|
|
NodeList database = document.getElementsByTagName("database");
|
|
for (int i = 0; i < database.getLength(); i++) {
|
|
Node nodo = database.item(i);
|
|
|
|
if (nodo.getNodeType() == Node.ELEMENT_NODE) {
|
|
Element db = (Element) nodo;
|
|
String attivo = db.getElementsByTagName("attivo").item(0).getFirstChild().getNodeValue();
|
|
String tipo = db.getElementsByTagName("tipo").item(0).getFirstChild().getNodeValue();
|
|
String driver = db.getElementsByTagName("driver").item(0).getFirstChild().getNodeValue();
|
|
String server = db.getElementsByTagName("server").item(0).getFirstChild().getNodeValue();
|
|
String porta = db.getElementsByTagName("porta").item(0).getFirstChild().getNodeValue();
|
|
String istanza = db.getElementsByTagName("istanza").item(0).getFirstChild().getNodeValue();
|
|
String username = db.getElementsByTagName("username").item(0).getFirstChild().getNodeValue();
|
|
String password = db.getElementsByTagName("password").item(0).getFirstChild().getNodeValue();
|
|
|
|
if (attivo.equals("SI")) {
|
|
//Encoding en = new Encoding();
|
|
dbUsername = username;
|
|
dbPassword = Encoding.decodeString(password);
|
|
dbTipo = tipo;
|
|
dbDriver = driver;
|
|
if (tipo.equals("MySQL")) {
|
|
dbStringa = "jdbc:mysql://" + server + ":" + porta + "/" + istanza;
|
|
} else if (tipo.equals("Oracle")) {
|
|
dbStringa = "jdbc:oracle:thin:@" + server + ":" + porta + ":" + istanza;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------
|
|
// ** Path
|
|
// --------------------------------------------------------------------
|
|
NodeList paths = document.getElementsByTagName("path");
|
|
for (int i = 0; i < paths.getLength(); i++) {
|
|
Node path = paths.item(i);
|
|
if (path.getNodeType() == Node.ELEMENT_NODE) {
|
|
Element p = (Element) path;
|
|
imgPath = p.getElementsByTagName("img_path").item(0).getFirstChild().getNodeValue();
|
|
if (imgPath.equalsIgnoreCase("..\\risorse\\")) {
|
|
imgPath = startDir + "/risorse/";
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------
|
|
// ** Etichette
|
|
// --------------------------------------------------------------------
|
|
NodeList etichette = document.getElementsByTagName("etichette");
|
|
//String titolo = "";
|
|
MyApplication myApp = new MyApplication();
|
|
for (int i = 0; i < paths.getLength(); i++) {
|
|
Node etichetta = etichette.item(i);
|
|
if (etichetta.getNodeType() == Node.ELEMENT_NODE) {
|
|
Element p = (Element) etichetta;
|
|
String titolo = p.getElementsByTagName("titolo").item(0).getFirstChild().getNodeValue();
|
|
//idPuntoCassa = Long.valueOf(myApp.mySelect(this, "SELECT valore FROM parametri WHERE chiave = 'IdPuntoCassa'", "valore"));
|
|
idPuntoCassa = Long.valueOf(Utils.mySelect("SELECT valore FROM parametri WHERE chiave = 'IdPuntoCassa'",
|
|
"valore",
|
|
this));
|
|
|
|
//String credito = myApp.mySelect(this, "SELECT valore FROM parametri WHERE chiave = 'FlagIgnoraSaldoStop'", "valore");
|
|
String credito = Utils.mySelect("SELECT valore FROM parametri WHERE chiave = 'FlagIgnoraSaldoStop'",
|
|
"valore",
|
|
this);
|
|
if (credito.equalsIgnoreCase("SI")) {
|
|
consentiCredito = true;
|
|
}
|
|
|
|
titolo = titolo + " " + idPuntoCassa;
|
|
this.setTitle(titolo);
|
|
//Aggiornamento 14-01-2019
|
|
//String stringDatiPagamento = myApp.mySelect(this, "select tp.id || '|' || tp.nome || '|' || pd.flag_bonus || '|' || "
|
|
String stringDatiPagamento = Utils.mySelect("select tp.id || '|' || tp.nome || '|' || pd.flag_bonus || '|' || "
|
|
+ "pd.flag_extra as valore from punti_cassa pc "
|
|
+ "inner join punti_distribuzione pd on pc.id_punto_distribuzione = pd.id "
|
|
+ "inner join tipi_pagamenti tp on pd.id_tipo_paga_default = tp.id "
|
|
+ "where pc.id=" + idPuntoCassa,
|
|
"valore",
|
|
this);
|
|
|
|
String[] arrayDatiPagamento = stringDatiPagamento.split("\\|", -1);
|
|
if (arrayDatiPagamento.length >= 2) {
|
|
idModoPagamento = Long.valueOf(arrayDatiPagamento[0]);
|
|
modoPagamentoDefault = arrayDatiPagamento[1];
|
|
lblTipoPagamento.setText(arrayDatiPagamento[1]);
|
|
//Aggiornamento 14-01-2019
|
|
flagBonus = Integer.valueOf(arrayDatiPagamento[2]);
|
|
flagExtra = false;
|
|
if (arrayDatiPagamento[3].equalsIgnoreCase("1")) {
|
|
flagExtra = true;
|
|
}
|
|
pulsantiModoPagamento();
|
|
}
|
|
}
|
|
}
|
|
|
|
// --------------------------------------------------------------------
|
|
// ** display
|
|
// --------------------------------------------------------------------
|
|
NodeList disp = document.getElementsByTagName("display");
|
|
for (int i = 0; i < disp.getLength(); i++) {
|
|
Node display = disp.item(i);
|
|
if (display.getNodeType() == Node.ELEMENT_NODE) {
|
|
Element p = (Element) display;
|
|
displayWidth = Integer.parseInt(p.getElementsByTagName("larghezza").item(0).getFirstChild().getNodeValue());
|
|
displayHeight = Integer.parseInt(p.getElementsByTagName("altezza").item(0).getFirstChild().getNodeValue());
|
|
altezzaBarraApplicazioni = Integer.parseInt(p.getElementsByTagName("altBarraApplicazioni").item(0).getFirstChild().getNodeValue());
|
|
hFont = Integer.parseInt(p.getElementsByTagName("fontSize").item(0).getFirstChild().getNodeValue());
|
|
altControlli = Integer.parseInt(p.getElementsByTagName("altezzaControlli").item(0).getFirstChild().getNodeValue());
|
|
largControlli = Integer.parseInt(p.getElementsByTagName("larghezzaControlli").item(0).getFirstChild().getNodeValue());
|
|
String tastiera = p.getElementsByTagName("TastieraVideo").item(0).getFirstChild().getNodeValue();
|
|
myApp.tastieraVideo = !tastiera.equals("NO");
|
|
|
|
}
|
|
}
|
|
|
|
//adatto panel login
|
|
Font f = new Font("Tahoma", 0, hFont);
|
|
UIManager.put("OptionPane.messageFont",
|
|
new FontUIResource(new Font("Tahoma", Font.BOLD, hFont))
|
|
);
|
|
UIManager.put("OptionPane.buttonFont", new FontUIResource(new Font("Tahoma", Font.BOLD, 25)));
|
|
btnLogin.setFont(f);
|
|
pnlLogin.setSize(calcolaLarghezzaAltezza(pnlLogin.getWidth(), largControlli), calcolaLarghezzaAltezza(pnlLogin.getHeight(), altControlli));
|
|
lblPassword.setFont(f);
|
|
lblUsername.setFont(f);
|
|
txtUsername.setFont(f);
|
|
txtPassword.setFont(f);
|
|
jTxtTessera.setFont(f);
|
|
jChLogin.setFont(f);
|
|
jBtnReadCard.setVisible(false);
|
|
|
|
Font newFontBtnAnnulla = new Font(jbtnAnnulla.getFont().getName(), jbtnAnnulla.getFont().getStyle(), hFont);
|
|
jbtnAnnulla.setFont(newFontBtnAnnulla);
|
|
Font newFontBtnDuplica = new Font(jbtnDuplica.getFont().getName(), jbtnDuplica.getFont().getStyle(), hFont);
|
|
jbtnDuplica.setFont(newFontBtnDuplica);
|
|
Font newFontBtnElimina = new Font(jbtnElimina.getFont().getName(), jbtnElimina.getFont().getStyle(), hFont);
|
|
jbtnElimina.setFont(newFontBtnElimina);
|
|
Font newFontBtnChiudi = new Font(jbtnChiudi.getFont().getName(), jbtnChiudi.getFont().getStyle(), hFont);
|
|
jbtnChiudi.setFont(newFontBtnChiudi);
|
|
Font newFontTxtTotaleCassa = new Font(txtTotaleCassa.getFont().getName(), txtTotaleCassa.getFont().getStyle(), (hFont + (hFont / 10 * 3)));
|
|
txtTotaleCassa.setFont(newFontTxtTotaleCassa);
|
|
Font newFontTxtTotalePunti = new Font(txtTotalePunti.getFont().getName(), txtTotalePunti.getFont().getStyle(), (hFont + (hFont / 10 * 3)));
|
|
txtTotalePunti.setFont(newFontTxtTotalePunti);
|
|
// --------------------------------------------------------------------
|
|
// ** ID_PUNTO_CASSA
|
|
// --------------------------------------------------------------------
|
|
jcmbSC.setVisible(false);
|
|
|
|
String VMD = document.getElementsByTagName("Visualizza_Messaggi_Display").item(0).getFirstChild().getNodeValue();
|
|
visualizzaMessaggiDisplay = VMD.equalsIgnoreCase("SI");
|
|
messageDisplay = document.getElementsByTagName("Messaggio_Display").item(0).getFirstChild().getNodeValue();
|
|
|
|
updateReaderCombo();
|
|
|
|
//String ultimiMovimenti = myApp.mySelect(this, "SELECT valore FROM parametri WHERE chiave = 'FlagVisualizzaUltimiPassaggi'", "valore");
|
|
String ultimiMovimenti = Utils.mySelect("SELECT valore FROM parametri WHERE chiave = 'FlagVisualizzaUltimiPassaggi'",
|
|
"valore",
|
|
this);
|
|
if (ultimiMovimenti.equalsIgnoreCase("NO")) {
|
|
jBtnMovimenti.setEnabled(false);
|
|
}
|
|
|
|
timerCard = new java.util.Timer();
|
|
timerCard.schedule(new CardTask(this), 0, 1 * 1000);
|
|
|
|
statoAttivoNonLoggato();
|
|
|
|
String flagRicevutaValue = Utils.mySelect("Select Valore from Parametri where Chiave='FlagRicevuta'", "Valore",this);
|
|
PuntoCassa.flagRicevuta = !flagRicevutaValue.equalsIgnoreCase("NO");
|
|
|
|
String flagDataNascita = Utils.mySelect("Select Valore from Parametri where Chiave='FlagMostraDataDiNascita'", "Valore", this);
|
|
flagMostraDataDiNascita = !flagDataNascita.equalsIgnoreCase("NO");
|
|
|
|
String flagEsegueStorniValue = Utils.mySelect("Select Valore from Parametri where Chiave='FlagEsegueStorni'", "Valore", this);
|
|
this.flagEsegueStorni = !flagEsegueStorniValue.equalsIgnoreCase("NO");
|
|
|
|
String timeoutSwipCard = Utils.mySelect("Select Valore from Parametri where Chiave='TimeoutSwipCard'", "Valore",this);
|
|
//if (myApp.isNumeric(timeoutSwipCard)) {
|
|
if (Utils.isNumeric(timeoutSwipCard)) {
|
|
delaySwipCard = Integer.valueOf(timeoutSwipCard);
|
|
}
|
|
|
|
Utils.myInsert("UPDATE PARAMETRI set valore='NO' where chiave='FlagDownloadInCorso'", this);
|
|
|
|
String flagDefaultAsporto = Utils.mySelect("Select Valore from Parametri where Chiave='FlagDefaultAsporto'", "Valore", this);
|
|
if (flagDefaultAsporto.equalsIgnoreCase("SI")) {
|
|
asporto = true;
|
|
}
|
|
|
|
String flagPrecarica = Utils.mySelect("Select Valore from Parametri where Chiave='FlagPrecaricaLista'", "Valore", this);
|
|
flagPrecaricaLista = !flagPrecarica.equalsIgnoreCase("NO");
|
|
|
|
keyDispatcher = creaKeyEventDispatcher();
|
|
|
|
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(keyDispatcher);
|
|
keyDespatcherAttivo = true;
|
|
|
|
verificaDB();
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Aggiunge un timer con relativa schedulazione a 5 secondi
|
|
// -----------------------------------------------------------------------
|
|
timerDBConn mt = new timerDBConn(this);
|
|
java.util.Timer timer = new java.util.Timer();
|
|
timer.schedule(mt, 0, 5000);
|
|
|
|
verificaAggiornamentiJAR();
|
|
|
|
}
|
|
|
|
public KeyEventDispatcher creaKeyEventDispatcher(){
|
|
return new KeyEventDispatcher() {
|
|
Boolean swip = false;
|
|
Boolean spiaAltreCarte = false;
|
|
Boolean timerUnaVolta = false;
|
|
MyApplication myApp = new MyApplication();
|
|
|
|
public boolean dispatchKeyEvent(KeyEvent e) {
|
|
int id = e.getID();
|
|
|
|
if (jbtnChiudi.isEnabled() && pnlLogin.isVisible() == false && jTxtTessera.getText().length() > 0) {
|
|
e.consume();
|
|
if (myApp.unaVolta == false) {
|
|
myApp.unaVolta = true;
|
|
}
|
|
return false;
|
|
}
|
|
myApp.unaVolta = false;
|
|
int keyCode = e.getKeyCode();
|
|
if (id == KeyEvent.KEY_RELEASED) {
|
|
String tasto = "" + e.getKeyChar();
|
|
System.out.println(keyCode + " - " + tasto);
|
|
|
|
logTestoTessera.append(e.getKeyChar());
|
|
|
|
if (tasto.equalsIgnoreCase("ò")) { //144
|
|
swip = true;
|
|
}
|
|
//05-12-2017
|
|
if (keyCode == 16 || keyCode == 45 || tasto.equalsIgnoreCase("ò")) {
|
|
spiaAltreCarte = true;
|
|
}
|
|
|
|
if (tasto.equalsIgnoreCase("ò") == false && keyCode != 16 && keyCode != 45 && swip) { //keyCode != 144 && keyCode != 17
|
|
|
|
testoSwipCard.append(tasto);
|
|
System.out.println(testoSwipCard.toString());
|
|
|
|
}
|
|
if (keyCode == 45 && swip) { //keyCode != 144
|
|
swip = false;
|
|
System.out.println(testoSwipCard.toString());
|
|
|
|
warn();
|
|
}
|
|
|
|
//30-11-2017 modifica per rfid
|
|
if (keyCode != 16) {
|
|
testoRFIDCard.append(tasto);
|
|
}
|
|
if (keyCode == 10 && swip == false && spiaAltreCarte == false) { //keyCode != 144
|
|
|
|
System.out.println(testoRFIDCard.toString());
|
|
testoSwipCard = testoRFIDCard;
|
|
testoRFIDCard = new StringBuilder();
|
|
warn();
|
|
}
|
|
|
|
//29-10-18------------------------------------------------------
|
|
if (timerUnaVolta == false) {
|
|
timerUnaVolta = true;
|
|
final Timer timer = new Timer();
|
|
final TimerTask task = new TimerTask() {
|
|
@Override
|
|
public void run() {
|
|
|
|
if (testoRFIDCard.toString().length() > 2) {
|
|
System.out.println("Timer: " + testoRFIDCard.toString());
|
|
testoSwipCard = testoRFIDCard;
|
|
testoRFIDCard = new StringBuilder();
|
|
warn();
|
|
}
|
|
|
|
timer.cancel();
|
|
timer.purge();
|
|
timerUnaVolta = false;
|
|
}
|
|
};
|
|
|
|
timer.schedule(task, 5000);
|
|
}
|
|
//fine 29-10-18------------------------------------------------------
|
|
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public void warn() {
|
|
if (statoCardLettore) {
|
|
return;
|
|
}
|
|
|
|
//29-10-2018
|
|
testoRFIDCard = new StringBuilder();
|
|
//fine 29-10-2018
|
|
|
|
if (testoSwipCard.toString().length() > 0) {
|
|
statoCardLettore = true;
|
|
|
|
final Timer timer = new Timer();
|
|
|
|
final TimerTask task = new TimerTask() {
|
|
@Override
|
|
public void run() {
|
|
String tessera = "";
|
|
//per tessere tipo 8 e 9
|
|
if (testoSwipCard.toString().contains("ì")) {
|
|
String[] txt = testoSwipCard.toString().split("ì");
|
|
|
|
// per tessera MASTERCARD CARDHOLDER
|
|
if (testoSwipCard.toString().length() > 30) {
|
|
|
|
tessera = txt[0].trim().replace("_", "");
|
|
} else {
|
|
tessera = txt[1].trim().replace("_", "");
|
|
}
|
|
} else if (testoSwipCard.toString().contains("&")) {
|
|
// per tessera MASTERCARD CARDHOLDER
|
|
String[] txt = testoSwipCard.toString().split("&");
|
|
|
|
tessera = txt[0].trim().replace("%B", "");
|
|
|
|
} else {
|
|
tessera = testoSwipCard.toString().trim().replace("_", "");
|
|
}
|
|
|
|
//per tessera tipo 3
|
|
if (tessera.length() >= 17 && tessera.length() <= 19) {
|
|
tessera = tessera.substring(0, 7);
|
|
}
|
|
|
|
//per tessere tipo 6 e 7
|
|
if (tessera.length() == 21) {
|
|
tessera = tessera.substring(0, 10);
|
|
int posI = 0;
|
|
for (int i = 0; i <= tessera.length(); i++) {
|
|
if (tessera.substring(i, i + 1).equalsIgnoreCase("0") == false) {
|
|
posI = i;
|
|
break;
|
|
}
|
|
}
|
|
|
|
tessera = tessera.substring(posI);
|
|
}
|
|
|
|
spiaAltreCarte = false;
|
|
swip = false;
|
|
if (pnlLogin.isVisible()) {
|
|
controllaLogInCarta(tessera);
|
|
} else {
|
|
//05/11/2018 le nuove tessere con CF a volte leggono solo la matricola
|
|
jTxtTessera.setText(tessera);
|
|
passaggioTessera = true;
|
|
logNumeroTessera = tessera;
|
|
cercaTessera();
|
|
}
|
|
|
|
testoSwipCard = new StringBuilder();
|
|
|
|
timer.cancel();
|
|
timer.purge();
|
|
statoCardLettore = false;
|
|
|
|
}
|
|
};
|
|
|
|
timer.schedule(task, delaySwipCard);
|
|
|
|
}
|
|
}
|
|
|
|
};
|
|
}
|
|
|
|
|
|
|
|
/***
|
|
* FlagProponiAggiornamentoDB ha 3 possibili valori:
|
|
* AUTO vuol dire che, se il db locale è da aggiornare (DB_locale_aggiornato = 0), lo deve fare e basta senza chiedere conferma
|
|
* SI vuol dire che, se il db locale è da aggiornare (DB_locale_aggiornato = 0), lo deve fare chiedendo conferma
|
|
* NO vuol dire che non lo deve fare nemmeno se è da aggiornare
|
|
*/
|
|
private void verificaAggiornamentoDB() {
|
|
Long dbAggiornato = Utils.mySelectInteger("Select DB_locale_aggiornato as Agg from dual", "Agg",
|
|
this);
|
|
String flagProponiAggiornamentoDB = Utils.mySelect("Select Valore from Parametri where chiave='FlagProponiAggiornamentoDB' ", "Valore",
|
|
this);
|
|
if(dbAggiornato == 0){
|
|
if (flagProponiAggiornamentoDB.equals("SI")) {
|
|
aggiornaDB(true);
|
|
}
|
|
else if(flagProponiAggiornamentoDB.equals("AUTO")){
|
|
aggiornaDB(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void verificaModoPagamento() {
|
|
flagImpostaTipoPagamento = Utils.mySelect("Select Valore from Parametri where chiave='FlagImpostaTipoPagamento' ", "Valore",
|
|
this).equals("NO");
|
|
}
|
|
|
|
private void logTessera() {
|
|
try {
|
|
if (!logIDTessera.isEmpty()
|
|
|| !logNumeroTessera.isEmpty()
|
|
|| logTestoTessera.length() > 0) {
|
|
Utils.myInsert("Insert into LETTURE_TESSERE (STRINGA_LETTA,NUMERO_TESSERA,ID_TESSERA,ERRORE) values "
|
|
+ "('" + logTestoTessera.toString().replace("'", "''")
|
|
+ "','" + logNumeroTessera
|
|
+ "','" + logIDTessera
|
|
+ "','" + logTesseraErrore.replace("'", "''")
|
|
+ "')", this);
|
|
logIDTessera = "";
|
|
logNumeroTessera = "";
|
|
logTestoTessera = new StringBuilder();
|
|
}
|
|
} catch (Exception ex) {
|
|
LogManager.getLogger(PuntoCassa.class).error(ex);
|
|
}
|
|
}
|
|
|
|
private void verificaAggiornamentiJAR() {
|
|
try {
|
|
String pathURLAggiornamento = Utils.mySelect("Select Valore from Parametri where chiave='UrlJAR' ", "Valore",
|
|
this);
|
|
|
|
if (pathURLAggiornamento.length() > 0) {
|
|
String startDir = System.getProperty("user.dir");
|
|
URL url = new URL(pathURLAggiornamento);
|
|
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
|
|
|
|
Date d = new Date(httpCon.getLastModified());
|
|
System.out.println(' ' + d.toString());
|
|
|
|
File fileAttuale = new File(startDir + "/Cassa.jar");
|
|
Date dataUltimaModificaJarCorrente = new Date(fileAttuale.lastModified());
|
|
if (d.after(dataUltimaModificaJarCorrente)) {
|
|
if (JOptionPane.showConfirmDialog(null, "Aggiornamento disponibile. Aggiornare?", "Aggiornamento",
|
|
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
|
|
System.out.print("Aggiorna.............");
|
|
|
|
Runtime.getRuntime().exec("java -jar " + startDir + "/Aggiornamento.jar " + startDir + " " + pathURLAggiornamento);
|
|
System.exit(0);
|
|
}
|
|
}
|
|
}
|
|
} catch (IOException ex) {
|
|
LogManager.getLogger(PuntoCassa.class.getName()).error(ex);
|
|
}
|
|
}
|
|
|
|
private void updateReaderCombo() {
|
|
try {
|
|
MyApplication myApp = new MyApplication();
|
|
jcmbSC.setModel(new DefaultComboBoxModel(myApp.smartCard.listReaders()));
|
|
|
|
} catch (Exception ex) {
|
|
LogManager.getLogger(PuntoCassa.class.getName()).error(ex);
|
|
}
|
|
}
|
|
|
|
|
|
private Integer calcolaLarghezzaAltezza(Integer larControllo, Integer percentuale) {
|
|
Integer d = percentuale - 100;
|
|
if (d == 0) {
|
|
return larControllo;
|
|
} else {
|
|
Integer n = larControllo + ((larControllo * d) / 100);
|
|
return n;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* This method is called from within the constructor to initialize the form.
|
|
* WARNING: Do NOT modify this code. The content of this method is always
|
|
* regenerated by the Form Editor.
|
|
*/
|
|
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
|
private void initComponents() {
|
|
|
|
pnlErrore = new javax.swing.JPanel();
|
|
lblMessaggioErrore = new javax.swing.JLabel();
|
|
pnlTop = new javax.swing.JPanel();
|
|
pnlCliente = new javax.swing.JPanel();
|
|
subPnlTessera = new javax.swing.JPanel();
|
|
lblCodice1 = new javax.swing.JLabel();
|
|
lblSaldo = new javax.swing.JLabel();
|
|
lblCodice2 = new javax.swing.JLabel();
|
|
lblPunti = new javax.swing.JLabel();
|
|
jTxtTessera = new javax.swing.JTextField();
|
|
btnImpostaCliente = new javax.swing.JButton();
|
|
jBtnReadCard = new javax.swing.JButton();
|
|
jcmbSC = new javax.swing.JComboBox();
|
|
lblCodice3 = new javax.swing.JLabel();
|
|
lblTipoPagamento = new javax.swing.JLabel();
|
|
lblCodice4 = new javax.swing.JLabel();
|
|
lblResiduo = new javax.swing.JLabel();
|
|
lblCodice5 = new javax.swing.JLabel();
|
|
lblGratuita = new javax.swing.JLabel();
|
|
subPnlCliente = new javax.swing.JPanel();
|
|
lblCodice = new javax.swing.JLabel();
|
|
lblCategoria = new javax.swing.JLabel();
|
|
lblDenominazione = new javax.swing.JLabel();
|
|
lblCognome = new javax.swing.JLabel();
|
|
lblOrganizzazione = new javax.swing.JLabel();
|
|
lblNome = new javax.swing.JLabel();
|
|
lblOrganizzazione1 = new javax.swing.JLabel();
|
|
lblNascita = new javax.swing.JLabel();
|
|
lblOrganizzazione2 = new javax.swing.JLabel();
|
|
lblScadTessera = new javax.swing.JLabel();
|
|
lblOrganizzazione3 = new javax.swing.JLabel();
|
|
lblAzienda = new javax.swing.JLabel();
|
|
lblOrganizzazione4 = new javax.swing.JLabel();
|
|
lblConvenzione = new javax.swing.JLabel();
|
|
lblOrganizzazione5 = new javax.swing.JLabel();
|
|
lblFascia = new javax.swing.JLabel();
|
|
pnlCategorie = new javax.swing.JPanel();
|
|
pnlConto = new javax.swing.JPanel();
|
|
jbtnDuplica = new javax.swing.JButton();
|
|
jbtnElimina = new javax.swing.JButton();
|
|
jbtnAnnulla = new javax.swing.JButton();
|
|
jbtnSu = new javax.swing.JButton();
|
|
jbtnGiu = new javax.swing.JButton();
|
|
txtTotaleCassa = new javax.swing.JTextField();
|
|
jbtnChiudi = new javax.swing.JButton();
|
|
jbtnStampa = new javax.swing.JButton();
|
|
txtTotalePunti = new javax.swing.JTextField();
|
|
pnlAzioni = new javax.swing.JPanel();
|
|
jBtnStorno = new javax.swing.JButton();
|
|
jBtnAsporto = new javax.swing.JToggleButton();
|
|
jBtnprodotti = new javax.swing.JButton();
|
|
jBtnMovimenti = new javax.swing.JButton();
|
|
jBtnBuoni = new javax.swing.JButton();
|
|
jTBP0 = new javax.swing.JToggleButton();
|
|
jTBP1 = new javax.swing.JToggleButton();
|
|
jTBP2 = new javax.swing.JToggleButton();
|
|
jTBP3 = new javax.swing.JToggleButton();
|
|
jbtnEsci = new javax.swing.JButton();
|
|
pnlLista = new javax.swing.JPanel();
|
|
scpLista = new javax.swing.JScrollPane();
|
|
tblLista = new javax.swing.JTable();
|
|
pnlProdotti = new javax.swing.JPanel();
|
|
pnlLista1 = new javax.swing.JPanel();
|
|
scpLista1 = new javax.swing.JScrollPane();
|
|
tblLista1 = new javax.swing.JTable();
|
|
pnlLogin = new javax.swing.JPanel();
|
|
btnLogin = new javax.swing.JButton();
|
|
txtUsername = new javax.swing.JTextField();
|
|
lblUsername = new javax.swing.JLabel();
|
|
lblPassword = new javax.swing.JLabel();
|
|
txtPassword = new javax.swing.JPasswordField();
|
|
btnTermina = new javax.swing.JButton();
|
|
jChLogin = new javax.swing.JCheckBox();
|
|
jBtnDB1 = new javax.swing.JButton();
|
|
lblUtenteLoggato = new javax.swing.JLabel();
|
|
lblStatoConnessione = new javax.swing.JLabel();
|
|
lblInfo = new javax.swing.JLabel();
|
|
lblInfo2 = new javax.swing.JLabel();
|
|
lblDB = new javax.swing.JLabel();
|
|
|
|
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
|
|
setTitle("Prova di titolo");
|
|
setName("frmPrincipale"); // NOI18N
|
|
setResizable(false);
|
|
addComponentListener(new java.awt.event.ComponentAdapter() {
|
|
public void componentResized(java.awt.event.ComponentEvent evt) {
|
|
resizeRules(evt);
|
|
}
|
|
});
|
|
addWindowListener(new java.awt.event.WindowAdapter() {
|
|
public void windowClosing(java.awt.event.WindowEvent evt) {
|
|
exitForm(evt);
|
|
}
|
|
public void windowDeiconified(java.awt.event.WindowEvent evt) {
|
|
formWindowDeiconified(evt);
|
|
}
|
|
});
|
|
getContentPane().setLayout(null);
|
|
|
|
pnlErrore.setBackground(new java.awt.Color(255, 255, 153));
|
|
pnlErrore.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
|
|
pnlErrore.setLayout(null);
|
|
|
|
lblMessaggioErrore.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
|
|
lblMessaggioErrore.setText("lblMessaggioErrore");
|
|
lblMessaggioErrore.setToolTipText("");
|
|
lblMessaggioErrore.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
|
lblMessaggioErrore.setName("lblMessaggioErrore"); // NOI18N
|
|
pnlErrore.add(lblMessaggioErrore);
|
|
lblMessaggioErrore.setBounds(96, 24, 600, 240);
|
|
|
|
getContentPane().add(pnlErrore);
|
|
pnlErrore.setBounds(0, 0, 0, 0);
|
|
|
|
pnlTop.setName("pnlTop"); // NOI18N
|
|
pnlTop.setLayout(null);
|
|
|
|
pnlCliente.setToolTipText("");
|
|
|
|
subPnlTessera.setBorder(javax.swing.BorderFactory.createTitledBorder("Tessera"));
|
|
|
|
lblCodice1.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblCodice1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblCodice1.setText("Saldo:");
|
|
|
|
lblSaldo.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblSaldo.setText("[...]");
|
|
|
|
lblCodice2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblCodice2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblCodice2.setText("Punti:");
|
|
|
|
lblPunti.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblPunti.setText("[...]");
|
|
|
|
jTxtTessera.setToolTipText("");
|
|
jTxtTessera.addFocusListener(new java.awt.event.FocusAdapter() {
|
|
public void focusGained(java.awt.event.FocusEvent evt) {
|
|
jTxtTesseraFocusGained(evt);
|
|
}
|
|
});
|
|
|
|
btnImpostaCliente.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
|
|
btnImpostaCliente.setText("Imposta");
|
|
btnImpostaCliente.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
btnImpostaClienteActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jBtnReadCard.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
|
|
jBtnReadCard.setText("Leggi Tessera");
|
|
jBtnReadCard.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnReadCardActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jcmbSC.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
|
|
|
|
lblCodice3.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblCodice3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblCodice3.setText("Tipo Pagamento:");
|
|
|
|
lblTipoPagamento.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblTipoPagamento.setText("[...]");
|
|
|
|
lblCodice4.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblCodice4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblCodice4.setText("Residuo:");
|
|
|
|
lblResiduo.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblResiduo.setText("[...]");
|
|
|
|
lblCodice5.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblCodice5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblCodice5.setText("Gratuità Residue:");
|
|
|
|
lblGratuita.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblGratuita.setText("[...]");
|
|
|
|
javax.swing.GroupLayout subPnlTesseraLayout = new javax.swing.GroupLayout(subPnlTessera);
|
|
subPnlTessera.setLayout(subPnlTesseraLayout);
|
|
subPnlTesseraLayout.setHorizontalGroup(
|
|
subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(subPnlTesseraLayout.createSequentialGroup()
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(subPnlTesseraLayout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
.addGroup(subPnlTesseraLayout.createSequentialGroup()
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
.addComponent(lblCodice2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblCodice1, javax.swing.GroupLayout.DEFAULT_SIZE, 104, Short.MAX_VALUE))
|
|
.addGap(8, 8, 8)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(lblPunti, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblSaldo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
|
|
.addGroup(subPnlTesseraLayout.createSequentialGroup()
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
.addComponent(lblCodice3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblCodice4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblCodice5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
.addComponent(lblResiduo, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)
|
|
.addComponent(lblTipoPagamento, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblGratuita, javax.swing.GroupLayout.DEFAULT_SIZE, 140, Short.MAX_VALUE)))
|
|
.addComponent(btnImpostaCliente, javax.swing.GroupLayout.DEFAULT_SIZE, 252, Short.MAX_VALUE)
|
|
.addComponent(jTxtTessera)))
|
|
.addGroup(subPnlTesseraLayout.createSequentialGroup()
|
|
.addGap(48, 48, 48)
|
|
.addComponent(jBtnReadCard, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(jcmbSC, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
|
.addContainerGap())
|
|
);
|
|
subPnlTesseraLayout.setVerticalGroup(
|
|
subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(subPnlTesseraLayout.createSequentialGroup()
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
|
.addComponent(jcmbSC, javax.swing.GroupLayout.PREFERRED_SIZE, 3, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(jBtnReadCard, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(jTxtTessera, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(btnImpostaCliente, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(lblSaldo)
|
|
.addComponent(lblCodice1, javax.swing.GroupLayout.Alignment.TRAILING))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(lblPunti)
|
|
.addComponent(lblCodice2))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(lblTipoPagamento)
|
|
.addComponent(lblCodice3))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(lblResiduo)
|
|
.addComponent(lblCodice4, javax.swing.GroupLayout.Alignment.TRAILING))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlTesseraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblCodice5)
|
|
.addComponent(lblGratuita)))
|
|
);
|
|
|
|
lblCodice5.getAccessibleContext().setAccessibleName("Gtratuità Residue:");
|
|
|
|
subPnlCliente.setBorder(javax.swing.BorderFactory.createTitledBorder("Cliente"));
|
|
|
|
lblCodice.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblCodice.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblCodice.setText("Categoria:");
|
|
|
|
lblCategoria.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblCategoria.setText("[...]");
|
|
|
|
lblDenominazione.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblDenominazione.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblDenominazione.setText("Cognome:");
|
|
|
|
lblCognome.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblCognome.setText("[...]");
|
|
|
|
lblOrganizzazione.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblOrganizzazione.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblOrganizzazione.setText("Nome:");
|
|
|
|
lblNome.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblNome.setText("[...]");
|
|
|
|
lblOrganizzazione1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblOrganizzazione1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblOrganizzazione1.setText("Data Nascita:");
|
|
|
|
lblNascita.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblNascita.setText("[...]");
|
|
|
|
lblOrganizzazione2.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblOrganizzazione2.setForeground(new java.awt.Color(255, 0, 0));
|
|
lblOrganizzazione2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblOrganizzazione2.setText("Bonus Residui:");
|
|
|
|
lblScadTessera.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblScadTessera.setForeground(new java.awt.Color(255, 0, 0));
|
|
lblScadTessera.setText("[...]");
|
|
|
|
lblOrganizzazione3.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblOrganizzazione3.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblOrganizzazione3.setText("Azienda:");
|
|
|
|
lblAzienda.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblAzienda.setText("[...]");
|
|
|
|
lblOrganizzazione4.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblOrganizzazione4.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblOrganizzazione4.setText("Convenzione:");
|
|
|
|
lblConvenzione.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
|
|
lblConvenzione.setText("[...]");
|
|
|
|
lblOrganizzazione5.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblOrganizzazione5.setForeground(new java.awt.Color(255, 0, 0));
|
|
lblOrganizzazione5.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblOrganizzazione5.setText("Fascia:");
|
|
|
|
lblFascia.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
lblFascia.setForeground(new java.awt.Color(255, 0, 0));
|
|
lblFascia.setText("[...]");
|
|
|
|
javax.swing.GroupLayout subPnlClienteLayout = new javax.swing.GroupLayout(subPnlCliente);
|
|
subPnlCliente.setLayout(subPnlClienteLayout);
|
|
subPnlClienteLayout.setHorizontalGroup(
|
|
subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(subPnlClienteLayout.createSequentialGroup()
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
|
.addComponent(lblOrganizzazione5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblOrganizzazione4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblOrganizzazione3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblOrganizzazione2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblCodice, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblDenominazione, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblOrganizzazione, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblOrganizzazione1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
.addComponent(lblConvenzione, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
|
|
.addComponent(lblAzienda, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblScadTessera, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblNascita, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblNome, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblCognome, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblCategoria, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblFascia, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
.addGap(0, 0, 0))
|
|
);
|
|
subPnlClienteLayout.setVerticalGroup(
|
|
subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, subPnlClienteLayout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblCodice)
|
|
.addComponent(lblCategoria))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblDenominazione)
|
|
.addComponent(lblCognome))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblNome)
|
|
.addComponent(lblOrganizzazione))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblOrganizzazione1)
|
|
.addComponent(lblNascita))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblOrganizzazione3)
|
|
.addComponent(lblAzienda))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblOrganizzazione4)
|
|
.addComponent(lblConvenzione))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblOrganizzazione5)
|
|
.addComponent(lblFascia))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(subPnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(lblOrganizzazione2)
|
|
.addComponent(lblScadTessera))
|
|
.addGap(6, 6, 6))
|
|
);
|
|
|
|
javax.swing.GroupLayout pnlClienteLayout = new javax.swing.GroupLayout(pnlCliente);
|
|
pnlCliente.setLayout(pnlClienteLayout);
|
|
pnlClienteLayout.setHorizontalGroup(
|
|
pnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(pnlClienteLayout.createSequentialGroup()
|
|
.addComponent(subPnlTessera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(subPnlCliente, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
|
);
|
|
pnlClienteLayout.setVerticalGroup(
|
|
pnlClienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(subPnlTessera, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(subPnlCliente, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
);
|
|
|
|
pnlTop.add(pnlCliente);
|
|
pnlCliente.setBounds(0, 0, 660, 140);
|
|
pnlCliente.getAccessibleContext().setAccessibleDescription("Cliente");
|
|
pnlCliente.getAccessibleContext().setAccessibleParent(pnlCliente);
|
|
|
|
pnlCategorie.setBackground(new java.awt.Color(255, 204, 204));
|
|
pnlCategorie.setBorder(javax.swing.BorderFactory.createTitledBorder("Categoria"));
|
|
pnlCategorie.setLayout(new java.awt.GridLayout(10, 1, 1, 1));
|
|
pnlTop.add(pnlCategorie);
|
|
pnlCategorie.setBounds(0, 0, 9, 32);
|
|
|
|
pnlConto.setBackground(new java.awt.Color(255, 255, 153));
|
|
pnlConto.setBorder(javax.swing.BorderFactory.createTitledBorder("Conto"));
|
|
pnlConto.setLayout(new java.awt.GridLayout(3, 0, 2, 2));
|
|
|
|
jbtnDuplica.setBackground(new java.awt.Color(140, 240, 240));
|
|
jbtnDuplica.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
jbtnDuplica.setEnabled(false);
|
|
jbtnDuplica.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnDuplicaActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnDuplica);
|
|
|
|
jbtnElimina.setBackground(new java.awt.Color(140, 240, 240));
|
|
jbtnElimina.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N
|
|
jbtnElimina.setToolTipText("");
|
|
jbtnElimina.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnEliminaActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnElimina);
|
|
|
|
jbtnAnnulla.setBackground(new java.awt.Color(140, 240, 240));
|
|
jbtnAnnulla.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
|
|
jbtnAnnulla.setText("Annulla");
|
|
jbtnAnnulla.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnAnnullaActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnAnnulla);
|
|
|
|
jbtnSu.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnSuActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnSu);
|
|
|
|
jbtnGiu.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnGiuActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnGiu);
|
|
|
|
txtTotaleCassa.setFont(new java.awt.Font("Tahoma", 1, 20)); // NOI18N
|
|
txtTotaleCassa.setForeground(new java.awt.Color(242, 0, 0));
|
|
txtTotaleCassa.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
txtTotaleCassa.setText("€ 0,00");
|
|
txtTotaleCassa.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
txtTotaleCassaActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(txtTotaleCassa);
|
|
|
|
jbtnChiudi.setBackground(new java.awt.Color(51, 255, 51));
|
|
jbtnChiudi.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
|
|
jbtnChiudi.setText("Chiudi");
|
|
jbtnChiudi.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnChiudiActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnChiudi);
|
|
|
|
jbtnStampa.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnStampaActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(jbtnStampa);
|
|
|
|
txtTotalePunti.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
|
|
txtTotalePunti.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
|
txtTotalePunti.setText("Punti 0");
|
|
txtTotalePunti.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
txtTotalePuntiActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlConto.add(txtTotalePunti);
|
|
|
|
pnlTop.add(pnlConto);
|
|
pnlConto.setBounds(286, 150, 257, 120);
|
|
|
|
pnlAzioni.setBackground(new java.awt.Color(255, 204, 204));
|
|
pnlAzioni.setBorder(javax.swing.BorderFactory.createTitledBorder("Azioni"));
|
|
pnlAzioni.setLayout(new java.awt.GridLayout(2, 6, 2, 2));
|
|
|
|
jBtnStorno.setToolTipText("Storno");
|
|
jBtnStorno.setMargin(new java.awt.Insets(2, 2, 2, 2));
|
|
jBtnStorno.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
|
|
jBtnStorno.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnStornoActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jBtnStorno);
|
|
|
|
jBtnAsporto.setToolTipText("Modalità");
|
|
jBtnAsporto.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnAsportoActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jBtnAsporto);
|
|
|
|
jBtnprodotti.setToolTipText("Prodotti");
|
|
jBtnprodotti.setMargin(new java.awt.Insets(2, 2, 2, 2));
|
|
jBtnprodotti.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnprodottiActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jBtnprodotti);
|
|
|
|
jBtnMovimenti.setToolTipText("Ultimi movimenti");
|
|
jBtnMovimenti.setMargin(new java.awt.Insets(2, 2, 2, 2));
|
|
jBtnMovimenti.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnMovimentiActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jBtnMovimenti);
|
|
|
|
jBtnBuoni.setToolTipText("");
|
|
jBtnBuoni.setMargin(new java.awt.Insets(2, 2, 2, 2));
|
|
jBtnBuoni.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnBuoniActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jBtnBuoni);
|
|
|
|
jTBP0.setToolTipText("A Scalare");
|
|
jTBP0.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jTBP0ActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jTBP0);
|
|
|
|
jTBP1.setToolTipText("Contanti");
|
|
jTBP1.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jTBP1ActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jTBP1);
|
|
|
|
jTBP2.setToolTipText("Ticket");
|
|
jTBP2.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jTBP2ActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jTBP2);
|
|
|
|
jTBP3.setToolTipText("Differito");
|
|
jTBP3.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jTBP3ActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jTBP3);
|
|
|
|
jbtnEsci.setBackground(new java.awt.Color(255, 255, 0));
|
|
jbtnEsci.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
|
|
jbtnEsci.setText("Esci");
|
|
jbtnEsci.setToolTipText("Esci");
|
|
jbtnEsci.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jbtnEsciActionPerformed(evt);
|
|
}
|
|
});
|
|
pnlAzioni.add(jbtnEsci);
|
|
|
|
pnlTop.add(pnlAzioni);
|
|
pnlAzioni.setBounds(0, 153, 378, 73);
|
|
|
|
pnlLista.setBackground(new java.awt.Color(204, 255, 204));
|
|
pnlLista.setBorder(javax.swing.BorderFactory.createTitledBorder("Lista"));
|
|
pnlLista.setLayout(new javax.swing.BoxLayout(pnlLista, javax.swing.BoxLayout.LINE_AXIS));
|
|
|
|
scpLista.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
|
|
|
|
tblLista.setModel(new javax.swing.table.DefaultTableModel(
|
|
new Object [][] {
|
|
{},
|
|
{},
|
|
{},
|
|
{}
|
|
},
|
|
new String [] {
|
|
|
|
}
|
|
));
|
|
tblLista.setName("jtbl"); // NOI18N
|
|
scpLista.setViewportView(tblLista);
|
|
|
|
pnlLista.add(scpLista);
|
|
|
|
pnlTop.add(pnlLista);
|
|
pnlLista.setBounds(288, 0, 140, 144);
|
|
|
|
pnlProdotti.setBackground(new java.awt.Color(204, 255, 204));
|
|
pnlProdotti.setBorder(javax.swing.BorderFactory.createTitledBorder("Prodotto"));
|
|
pnlProdotti.setLayout(new java.awt.GridLayout(6, 2, 2, 2));
|
|
pnlTop.add(pnlProdotti);
|
|
pnlProdotti.setBounds(0, 0, 8, 33);
|
|
|
|
pnlLista1.setBackground(new java.awt.Color(204, 255, 204));
|
|
pnlLista1.setBorder(javax.swing.BorderFactory.createTitledBorder("Lista"));
|
|
pnlLista1.setLayout(new javax.swing.BoxLayout(pnlLista1, javax.swing.BoxLayout.LINE_AXIS));
|
|
|
|
scpLista1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
|
|
|
|
tblLista1.setModel(new javax.swing.table.DefaultTableModel(
|
|
new Object [][] {
|
|
{},
|
|
{},
|
|
{},
|
|
{}
|
|
},
|
|
new String [] {
|
|
|
|
}
|
|
));
|
|
tblLista1.setName("jtbl"); // NOI18N
|
|
scpLista1.setViewportView(tblLista1);
|
|
|
|
pnlLista1.add(scpLista1);
|
|
|
|
pnlTop.add(pnlLista1);
|
|
pnlLista1.setBounds(288, 0, 140, 144);
|
|
pnlLista1.getAccessibleContext().setAccessibleName("Lista1");
|
|
|
|
getContentPane().add(pnlTop);
|
|
pnlTop.setBounds(0, 188, 0, 0);
|
|
pnlTop.getAccessibleContext().setAccessibleName("pnlTop");
|
|
pnlTop.getAccessibleContext().setAccessibleDescription("");
|
|
|
|
pnlLogin.setBackground(new java.awt.Color(255, 255, 153));
|
|
pnlLogin.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Accesso al sistema", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 14))); // NOI18N
|
|
pnlLogin.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
|
|
|
|
btnLogin.setText("Login");
|
|
btnLogin.setEnabled(false);
|
|
btnLogin.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
|
|
btnLogin.setName("btnLogin"); // NOI18N
|
|
btnLogin.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
|
|
btnLogin.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
btnLoginActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
txtUsername.setEnabled(false);
|
|
txtUsername.addFocusListener(new java.awt.event.FocusAdapter() {
|
|
public void focusGained(java.awt.event.FocusEvent evt) {
|
|
txtUsernameFocusGained(evt);
|
|
}
|
|
});
|
|
txtUsername.addMouseListener(new java.awt.event.MouseAdapter() {
|
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
|
txtUsernameMouseClicked(evt);
|
|
}
|
|
});
|
|
|
|
lblUsername.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblUsername.setText("Username");
|
|
lblUsername.setToolTipText("");
|
|
|
|
lblPassword.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
|
|
lblPassword.setText("Password");
|
|
|
|
txtPassword.setEnabled(false);
|
|
txtPassword.addFocusListener(new java.awt.event.FocusAdapter() {
|
|
public void focusGained(java.awt.event.FocusEvent evt) {
|
|
txtPasswordFocusGained(evt);
|
|
}
|
|
});
|
|
txtPassword.addMouseListener(new java.awt.event.MouseAdapter() {
|
|
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
|
txtPasswordMouseClicked(evt);
|
|
}
|
|
});
|
|
|
|
btnTermina.setIcon(new javax.swing.ImageIcon(getClass().getResource("/puntocassa/esci2.jpg"))); // NOI18N
|
|
btnTermina.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
|
|
btnTermina.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
|
|
btnTermina.setLabel(" Termina Programma");
|
|
btnTermina.setName("btnTermina"); // NOI18N
|
|
btnTermina.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
btnTerminaActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jChLogin.setBackground(new java.awt.Color(255, 255, 153));
|
|
jChLogin.setSelected(true);
|
|
jChLogin.setText("Login con tessera");
|
|
jChLogin.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jChLoginActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
jBtnDB1.setToolTipText("DB");
|
|
jBtnDB1.setMargin(new java.awt.Insets(2, 2, 2, 2));
|
|
jBtnDB1.addActionListener(new java.awt.event.ActionListener() {
|
|
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
|
jBtnDB1ActionPerformed(evt);
|
|
}
|
|
});
|
|
|
|
javax.swing.GroupLayout pnlLoginLayout = new javax.swing.GroupLayout(pnlLogin);
|
|
pnlLogin.setLayout(pnlLoginLayout);
|
|
pnlLoginLayout.setHorizontalGroup(
|
|
pnlLoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(pnlLoginLayout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addGroup(pnlLoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
|
|
.addComponent(lblPassword, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(lblUsername, javax.swing.GroupLayout.DEFAULT_SIZE, 62, Short.MAX_VALUE))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(pnlLoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(txtPassword)
|
|
.addComponent(txtUsername)
|
|
.addComponent(btnLogin, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addGroup(pnlLoginLayout.createSequentialGroup()
|
|
.addComponent(jChLogin)
|
|
.addGap(0, 0, Short.MAX_VALUE))
|
|
.addComponent(jBtnDB1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(btnTermina, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 262, Short.MAX_VALUE))
|
|
.addContainerGap())
|
|
);
|
|
pnlLoginLayout.setVerticalGroup(
|
|
pnlLoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(pnlLoginLayout.createSequentialGroup()
|
|
.addComponent(jChLogin)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addGroup(pnlLoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(txtUsername, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(lblUsername))
|
|
.addGap(10, 10, 10)
|
|
.addGroup(pnlLoginLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
|
.addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addComponent(lblPassword))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addComponent(btnLogin, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(jBtnDB1, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(btnTermina, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addContainerGap())
|
|
);
|
|
|
|
getContentPane().add(pnlLogin);
|
|
pnlLogin.setBounds(0, 70, 360, 220);
|
|
pnlLogin.getAccessibleContext().setAccessibleName("pnlLogin");
|
|
pnlLogin.getAccessibleContext().setAccessibleDescription("");
|
|
|
|
lblUtenteLoggato.setText("[Nessun utente connesso]");
|
|
lblUtenteLoggato.setVerticalAlignment(javax.swing.SwingConstants.TOP);
|
|
lblUtenteLoggato.setAlignmentY(0.0F);
|
|
lblUtenteLoggato.setBorder(javax.swing.BorderFactory.createEtchedBorder());
|
|
lblUtenteLoggato.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
|
|
getContentPane().add(lblUtenteLoggato);
|
|
lblUtenteLoggato.setBounds(20, 310, 130, 20);
|
|
|
|
lblStatoConnessione.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
|
|
lblStatoConnessione.setText("[Nessuna connessione]");
|
|
lblStatoConnessione.setVerticalAlignment(javax.swing.SwingConstants.TOP);
|
|
lblStatoConnessione.setAlignmentY(0.0F);
|
|
lblStatoConnessione.setBorder(javax.swing.BorderFactory.createEtchedBorder());
|
|
lblStatoConnessione.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
|
|
getContentPane().add(lblStatoConnessione);
|
|
lblStatoConnessione.setBounds(425, 340, 120, 20);
|
|
|
|
lblInfo.setText("[Info Turno]");
|
|
lblInfo.setVerticalAlignment(javax.swing.SwingConstants.TOP);
|
|
lblInfo.setAlignmentY(0.0F);
|
|
lblInfo.setBorder(javax.swing.BorderFactory.createEtchedBorder());
|
|
lblInfo.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
|
|
getContentPane().add(lblInfo);
|
|
lblInfo.setBounds(180, 340, 130, 20);
|
|
|
|
lblInfo2.setText("[Info Incassi]");
|
|
lblInfo2.setVerticalAlignment(javax.swing.SwingConstants.TOP);
|
|
lblInfo2.setAlignmentY(0.0F);
|
|
lblInfo2.setBorder(javax.swing.BorderFactory.createEtchedBorder());
|
|
lblInfo2.setVerticalTextPosition(javax.swing.SwingConstants.TOP);
|
|
getContentPane().add(lblInfo2);
|
|
lblInfo2.setBounds(160, 310, 130, 20);
|
|
|
|
lblDB.setBackground(new java.awt.Color(51, 255, 0));
|
|
lblDB.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
|
|
lblDB.setText("DB");
|
|
lblDB.setOpaque(true);
|
|
getContentPane().add(lblDB);
|
|
lblDB.setBounds(604, 360, 20, 20);
|
|
|
|
getAccessibleContext().setAccessibleName("frmPrincipale");
|
|
getAccessibleContext().setAccessibleDescription("");
|
|
getAccessibleContext().setAccessibleParent(this);
|
|
|
|
setBounds(0, 0, 857, 531);
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
|
|
// ==========================================================================
|
|
// ** Imposta dimensioni e posizione dei panel
|
|
// ==========================================================================
|
|
private void resize() {
|
|
int x, y, w, h, tw, th;
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Dimensioni del frame
|
|
// -----------------------------------------------------------------------
|
|
this.setSize(displayWidth + deltaWidth, displayHeight + deltaHeight);
|
|
tw = this.getWidth();
|
|
th = this.getHeight();
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Posizione della status bar
|
|
// -----------------------------------------------------------------------
|
|
x = 0;
|
|
y = th - 60;
|
|
w = (tw / 8);
|
|
h = 60;
|
|
|
|
int part = (displayWidth - lblDB.getWidth()) / 7;
|
|
|
|
lblUtenteLoggato.setLocation(x, y);
|
|
//lblUtenteLoggato.setSize(w, h);
|
|
lblUtenteLoggato.setSize(part, h);
|
|
|
|
//lblInfo.setLocation(w, y);
|
|
lblInfo.setLocation(lblUtenteLoggato.getLocation().x + lblUtenteLoggato.getSize().width, y);
|
|
//lblInfo.setSize(w * 2 + 60 - lblDB.getWidth(), h);
|
|
//lblInfo.setSize(296, h);
|
|
lblInfo.setSize((int)(part * 1.5), h);
|
|
|
|
//lblInfo2.setLocation(w * 3 + 60 - lblDB.getWidth(), y);
|
|
lblInfo2.setLocation(lblInfo.getLocation().x + lblInfo.getSize().width, y);
|
|
// lblInfo2.setSize(tw - (w * 2 + 10) - 131, h);
|
|
int larg = tw - (w * 2 + 10) - 359;
|
|
//lblInfo2.setSize(larg, h);
|
|
//lblInfo2.setSize(444, h);
|
|
lblInfo2.setSize(part * 3, h);
|
|
|
|
//lblStatoConnessione.setLocation(tw - 181 - lblDB.getWidth(), y);
|
|
lblStatoConnessione.setLocation(lblInfo2.getLocation().x + lblInfo2.getSize().width, y);
|
|
//lblStatoConnessione.setSize(175, h);
|
|
//lblStatoConnessione.setSize(116, h);
|
|
lblStatoConnessione.setSize((int)(part * 1.5), h);
|
|
|
|
//lblDB.setLocation(tw - 181 - lblDB.getWidth() + lblStatoConnessione.getWidth(), y);
|
|
lblDB.setLocation(lblStatoConnessione.getLocation().x + lblStatoConnessione.getSize().width, y);
|
|
//lblDB.setSize(60, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Posizione del panel Errore
|
|
// -----------------------------------------------------------------------
|
|
x = 0;
|
|
y = 0;
|
|
w = tw;
|
|
h = th - lblUtenteLoggato.getHeight();
|
|
pnlErrore.setLocation(x, y);
|
|
pnlErrore.setSize(w, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Posizione del panel Login
|
|
// -----------------------------------------------------------------------
|
|
x = 0;
|
|
y = 0;
|
|
w = pnlLogin.getWidth();
|
|
h = pnlLogin.getHeight();
|
|
pnlLogin.setLocation((int) (tw - w) / 2, (int) (th - h) / 2);
|
|
pnlLogin.setSize(w, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Posizione del panel Top (operativo)
|
|
// -----------------------------------------------------------------------
|
|
x = 0;
|
|
y = 0;
|
|
w = tw + 5;
|
|
h = th - lblUtenteLoggato.getHeight();
|
|
pnlTop.setLocation(x, y);
|
|
//pnlTop.setSize(w, h);
|
|
pnlTop.setSize(displayWidth, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Posizionamento degli oggetti nel panel Top (operativo)
|
|
// -----------------------------------------------------------------------
|
|
tw = pnlTop.getWidth();
|
|
th = pnlTop.getHeight();
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Categorie
|
|
// -----------------------------------------------------------------------
|
|
x = 0;
|
|
y = 0;
|
|
w = (int) (13 * tw / 100);
|
|
h = (int) (68 * th / 100);
|
|
pnlCategorie.setLocation(x, y);
|
|
pnlCategorie.setSize(w, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Prodotti
|
|
// -----------------------------------------------------------------------
|
|
x = w;
|
|
y = 0;
|
|
w = (int) (57 * tw / 100);
|
|
h = (int) (68 * th / 100);
|
|
pnlProdotti.setLocation(x, y);
|
|
pnlProdotti.setSize(w, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Lista
|
|
// -----------------------------------------------------------------------
|
|
x = x + w;
|
|
y = 0;
|
|
//w = tw - x - 10;
|
|
w = tw - x;
|
|
//h = (int) (25 * th / 100);
|
|
h = pnlProdotti.getHeight() / 6 * 2;
|
|
pnlLista.setLocation(x, y);
|
|
pnlLista.setSize(w, h);
|
|
scpLista.setLocation(0, 0);
|
|
scpLista.setSize(w, h);
|
|
scpLista.setBackground(Color.BLUE);
|
|
tblLista.setLocation(0, 0);
|
|
tblLista.setSize(w, h);
|
|
tblLista.setShowGrid(true);
|
|
|
|
int Col1 = (w / 100) * 80;
|
|
MyTableModel model = new MyTableModel();
|
|
String[] col = {"Prodotto", "Prezzo", "Punti"};
|
|
model.setColumname(col);
|
|
Object[][] data = null;
|
|
model.setRow(data);
|
|
|
|
tblLista.setModel(model);
|
|
tblLista.getColumnModel().getColumn(0).setPreferredWidth(Col1);
|
|
tblLista.getColumnModel().getColumn(1).setPreferredWidth(50);
|
|
tblLista.getColumnModel().getColumn(1).setCellRenderer(new DecimalFormatRenderer());
|
|
|
|
tblLista.getColumnModel().getColumn(2).setPreferredWidth(50);
|
|
tblLista.setVisible(true);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Lista1
|
|
// -----------------------------------------------------------------------
|
|
y = h;
|
|
pnlLista1.setBorder(javax.swing.BorderFactory.createTitledBorder("Composizione"));
|
|
pnlLista1.setLocation(x, y);
|
|
//pnlLista1.setSize(w, 70);
|
|
pnlLista1.setSize(w, pnlProdotti.getHeight() / 6);
|
|
scpLista1.setLocation(0, 0);
|
|
scpLista1.setSize(w, h);
|
|
scpLista1.setBackground(Color.BLUE);
|
|
tblLista1.setLocation(0, 0);
|
|
tblLista1.setSize(w, h);
|
|
tblLista1.setShowGrid(true);
|
|
|
|
MyTableModel model1 = new MyTableModel();
|
|
String[] colVassoio = {"Vassoio", "Prezzo"};
|
|
model1.setColumname(colVassoio);
|
|
Object[][] data1 = null;
|
|
model1.setRow(data1);
|
|
|
|
tblLista1.setModel(model1);
|
|
tblLista1.getColumnModel().getColumn(0).setPreferredWidth(Col1);
|
|
tblLista1.getColumnModel().getColumn(1).setPreferredWidth(50);
|
|
|
|
tblLista1.setVisible(true);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Cliente
|
|
// -----------------------------------------------------------------------
|
|
x = 0;
|
|
y = pnlCategorie.getHeight();
|
|
//w = pnlCategorie.getWidth() + pnlProdotti.getWidth() - 120;
|
|
w = displayWidth / 10 * 6;
|
|
//h = pnlConto.getHeight();
|
|
h = th - pnlProdotti.getHeight();
|
|
pnlCliente.setLocation(x, y);
|
|
pnlCliente.setSize(w, h);
|
|
subPnlCliente.setSize(pnlCliente.getSize().width / 2, pnlCliente.getSize().height);
|
|
subPnlTessera.setSize(pnlCliente.getSize().width / 2, pnlCliente.getSize().height);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Conto
|
|
// -----------------------------------------------------------------------
|
|
x = pnlLista.getX();//pnlAzioni.getWidth();
|
|
y = pnlLista.getHeight() + pnlLista1.getHeight();
|
|
w = pnlLista.getWidth();
|
|
|
|
h = 220;//th-y;
|
|
pnlConto.setLocation(x, y);
|
|
//pnlConto.setSize(w, h - 10);
|
|
pnlConto.setSize(w, pnlProdotti.getHeight() / 6 * 3);
|
|
ImageIcon icon = new ImageIcon(imgPath + "freccia_down.jpg");
|
|
Image img = icon.getImage();
|
|
Image newimg = img.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
|
|
icon = new ImageIcon(newimg);
|
|
jbtnGiu.setIcon(icon);
|
|
|
|
ImageIcon icon2 = new ImageIcon(imgPath + "freccia_up.jpg");
|
|
Image img2 = icon2.getImage();
|
|
Image newimg2 = img2.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
|
|
icon2 = new ImageIcon(newimg2);
|
|
jbtnSu.setIcon(icon2);
|
|
|
|
ImageIcon icon3 = new ImageIcon(imgPath + "ticket2.png");
|
|
Image img3 = icon3.getImage();
|
|
Image newimg3 = img3.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
|
|
icon3 = new ImageIcon(newimg3);
|
|
jBtnBuoni.setIcon(icon3);
|
|
|
|
ImageIcon iconFulmine = new ImageIcon(imgPath + "fulmine.jpg");
|
|
Image imgF = iconFulmine.getImage();
|
|
Image newimgF = imgF.getScaledInstance(50, 50, java.awt.Image.SCALE_SMOOTH);
|
|
iconFulmine = new ImageIcon(newimgF);
|
|
jbtnStampa.setIcon(iconFulmine);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// ** Panel Azioni
|
|
// -----------------------------------------------------------------------
|
|
//x = 0;
|
|
//x = pnlLista.getX() - 120;
|
|
x = pnlCliente.getWidth();
|
|
//y = pnlConto.getY() + pnlConto.getHeight();//pnlProdotti.getHeight() + pnlCliente.getHeight();
|
|
y = pnlCliente.getY();
|
|
//w = pnlLista.getWidth() + 120; //pnlCategorie.getWidth() + pnlProdotti.getWidth();
|
|
w = displayWidth / 10 * 4;
|
|
//h = th - (pnlLista.getHeight() + pnlLista1.getHeight() + pnlConto.getHeight()); //th-y;
|
|
h = th - pnlProdotti.getHeight();
|
|
pnlAzioni.setLocation(x, y);
|
|
pnlAzioni.setSize(w, h);
|
|
|
|
// -----------------------------------------------------------------------
|
|
// *** Refresh dell'interfaccia
|
|
// -----------------------------------------------------------------------
|
|
this.revalidate();
|
|
this.repaint();
|
|
|
|
}
|
|
|
|
// ==========================================================================
|
|
// *** Metodo per gestire gli eventi sui button dinamici
|
|
// ==========================================================================
|
|
public void actionPerformed(ActionEvent e) {
|
|
String cmd = e.getActionCommand();
|
|
String tipo;
|
|
String id;
|
|
String sql = "";
|
|
Statement st;
|
|
ResultSet rs;
|
|
int i, j, k;
|
|
// JButton b;
|
|
|
|
i = cmd.indexOf("[");
|
|
j = cmd.indexOf("]");
|
|
id = cmd.substring(i + 1, j);
|
|
tipo = cmd.substring(0, i);
|
|
|
|
switch (tipo) {
|
|
case "CATEGORIA" -> pulsantiCategoria(id, cmd);
|
|
|
|
case "PRODOTTO" -> {
|
|
if (isCassaAperta) {
|
|
sql = "SELECT "
|
|
+ "prodotti.id as idProdotto,"
|
|
+ "prodotti.nome, "
|
|
+ "prodotti.prezzo_base,"
|
|
+ "tariffe.Punti as Punti_Base,"
|
|
+ "tariffe.prezzo as Prezzo,"
|
|
+ "tariffe.punti as Punti,"
|
|
+ "prodotti.id_Categoria "
|
|
+ "FROM prodotti "
|
|
+ "left join tariffe on prodotti.id=tariffe.id_prodotto "
|
|
+ "where prodotti.id = " + id + " and Tariffe.id_fascia=" + idProfiloTariffario;
|
|
try {
|
|
|
|
//spengo altri togglebutton
|
|
for (Integer y = 0; y < this.pnlProdotti.getComponentCount(); y++) {
|
|
JToggleButton bt = (JToggleButton) this.pnlProdotti.getComponent(y);
|
|
if (!bt.getActionCommand().equals(cmd)) {
|
|
bt.setSelected(false);
|
|
}
|
|
}
|
|
|
|
jbtnSu.setEnabled(true);
|
|
jbtnGiu.setEnabled(true);
|
|
jbtnElimina.setEnabled(true);
|
|
jbtnAnnulla.setEnabled(true);
|
|
|
|
doLayout();
|
|
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
st = dbConnection.createStatement();
|
|
rs = st.executeQuery(sql);
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
|
|
while (rs.next()) {
|
|
Double prezzo = 0.0;
|
|
Integer punti = 0;
|
|
|
|
if (rs.getDouble("Prezzo") > 0) {
|
|
prezzo = rs.getDouble("Prezzo");
|
|
} else {
|
|
prezzo = rs.getDouble("prezzo_base");
|
|
}
|
|
|
|
if (rs.getDouble("Punti") > 0) {
|
|
punti = rs.getInt("Punti");
|
|
} else {
|
|
punti = rs.getInt("Punti_Base");
|
|
}
|
|
//14-01-2019
|
|
if (model.getRowCount() > 0) {
|
|
//è una composizione non la metto
|
|
if (rs.getLong("id_Categoria") == 0L) {
|
|
JOptionPane.showOptionDialog(this, "Composizione gia presente!", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
|
|
return;
|
|
}
|
|
}
|
|
//21-12-8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
model.addRow(new Object[]{rs.getString("nome"), prezzo, punti, rs.getLong("idProdotto"), prezzo, rs.getLong("id_Categoria")});
|
|
}
|
|
if (model.getRowCount() > 0) {
|
|
tblLista.setRowSelectionInterval(model.getRowCount() - 1, model.getRowCount() - 1);
|
|
}
|
|
tblLista.setModel(model);
|
|
|
|
controllaCompleti(model);
|
|
controllaExtra(model);
|
|
sommaColonne(model);
|
|
|
|
//inizio 21-12-18<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
if (jbtnChiudi.isEnabled()) {
|
|
if (saldoAcquisti(0.0) == false
|
|
&& cercaTestoModoPagamento().equalsIgnoreCase("A scalare")
|
|
&& gratuitaResidue <= 0
|
|
&& (bonusResidui <= 0 || flagBonus == 0)
|
|
&& consentiCredito == false) {
|
|
JOptionPane.showOptionDialog(this, "Saldo tessera insufficiente!", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
|
|
jbtnEliminaActionPerformed(null);
|
|
return;
|
|
}
|
|
} else {
|
|
if (idTessera != 0L) {
|
|
jbtnChiudi.setEnabled(true);
|
|
}
|
|
}
|
|
//fine 21-12-18<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
|
|
//stessa procedura in Cercates
|
|
//prendo l'ultimo valore della griglia
|
|
// if (model.getRowCount() > 0) {//
|
|
//
|
|
// Double totAcquisto = 0.0;
|
|
// try {
|
|
//
|
|
// if (txtTotaleCassa.getText().length() > 0) {
|
|
// String saldo = txtTotaleCassa.getText().replace("? ", "").replace(".", "");
|
|
// saldo = saldo.replace(",", ".");
|
|
// totAcquisto = Double.valueOf(saldo);
|
|
// }
|
|
// } catch (Exception ex) {
|
|
// LogManager.getLogger(PuntoCassa.class).error(ex);
|
|
// }
|
|
// //DecimalFormat df2 = new DecimalFormat("##0.00");
|
|
// //String prezzoDisplay = ("E " + df2.format(totAcquisto));
|
|
// /*String fa = "FASCIA " + lblFascia.getText().replaceAll("Fascia", "").trim();
|
|
// if (fa.length() >= 10) {
|
|
// fa = fa.substring(fa.length() - 10, fa.length());
|
|
// } else {
|
|
// fa = spaziBianchi(fa, 10, true);
|
|
// }*/
|
|
//
|
|
// //String uProd = spaziBianchi("Totale ", 20, true);
|
|
// }
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (Exception ex) {
|
|
System.out.println(ex.getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
default -> {
|
|
}
|
|
}
|
|
}
|
|
|
|
private void pulsantiCategoria(String id, String cmd) {
|
|
|
|
for (Integer k = this.pnlProdotti.getComponentCount(); k > 0; k--) {
|
|
this.pnlProdotti.remove(k - 1);
|
|
}
|
|
this.caricaDati("PRODOTTI", id);
|
|
//spengo altri togglebutton
|
|
if (this.pnlCategorie.getComponentCount() > 2) {
|
|
for (Integer y = 0; y < this.pnlCategorie.getComponentCount(); y++) {
|
|
JToggleButton bt = (JToggleButton) this.pnlCategorie.getComponent(y);
|
|
if (!bt.getActionCommand().equals(cmd)) {
|
|
bt.setSelected(false);
|
|
} else {
|
|
if (bt.isSelected() == false) {
|
|
this.caricaPannello();
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private Boolean saldoAcquisti(Double prezzo) {
|
|
Boolean ok = false;
|
|
Double saldoTessera = 0.0;
|
|
Double totAcquisto = 0.0;
|
|
try {
|
|
if (lblSaldo.getText().length() > 0) {
|
|
String saldo = lblSaldo.getText().replace("€ ", "").trim().replace(".", "");
|
|
saldo = saldo.replace("[", "");
|
|
saldo = saldo.replace("]", "");
|
|
saldo = saldo.replace(",", ".");
|
|
if (saldo.length() > 0) {
|
|
saldoTessera = Double.valueOf(saldo);
|
|
}
|
|
|
|
}
|
|
if (txtTotaleCassa.getText().length() > 0) {
|
|
String totaleCassa = txtTotaleCassa.getText().replace("€ ", "").replace(".", "");
|
|
totaleCassa = totaleCassa.replace(",", ".");
|
|
totAcquisto = Double.valueOf(totaleCassa);
|
|
}
|
|
} catch (Exception e) {
|
|
LogManager.getLogger(PuntoCassa.class).error(e);
|
|
}
|
|
Double s = saldoTessera - (totAcquisto + prezzo);
|
|
if (s >= saldoMinimoStop) {
|
|
ok = true;
|
|
}
|
|
|
|
return ok;
|
|
}
|
|
|
|
private void sommaColonne(MyTableModel model) {
|
|
Double t = model.somma(colImporto);
|
|
MyTableModel model2 = (MyTableModel) tblLista1.getModel();
|
|
if (model2.getRowCount() > 0) {
|
|
t = t + model2.somma(1);
|
|
}
|
|
|
|
DecimalFormat df2 = new DecimalFormat("#,###,###,##0.00");
|
|
txtTotaleCassa.setText("€ " + df2.format(t));
|
|
|
|
int p = model.sommaInt(2);
|
|
txtTotalePunti.setText("Punti " + p);
|
|
|
|
//if(idModoPagamento==0L){
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("A scalare")) {
|
|
Double saldoCarta = 0.0;
|
|
if (lblSaldo.getText().trim().length() > 0) {
|
|
String saldo = lblSaldo.getText().replace("€ ", "").trim().replace(".", "");
|
|
saldo = saldo.replace("[", "");
|
|
saldo = saldo.replace("]", "");
|
|
saldo = saldo.replace(",", ".");
|
|
if (saldo.length() > 0) {
|
|
saldoCarta = Double.valueOf(saldo);
|
|
}
|
|
}
|
|
saldoCarta = saldoCarta - t;
|
|
lblResiduo.setText("€ " + df2.format(saldoCarta));
|
|
}
|
|
}
|
|
|
|
private void controllaExtra(MyTableModel model) {
|
|
if (flagExtra == false) {
|
|
for (int i = 0; i < model.getRowCount(); i++) {
|
|
Object row[] = model.getRow(i);
|
|
Double p = Double.valueOf(row[colImporto].toString());
|
|
if (p != 0) {
|
|
JOptionPane.showMessageDialog(this, "Composizione errata, questo prodotto sarà eliminato!");
|
|
jbtnEliminaActionPerformed(null);
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
for (int i = 0; i < model.getRowCount(); i++) {
|
|
Object row[] = model.getRow(i);
|
|
Double p = Double.valueOf(row[colImporto].toString());
|
|
if (p != 0) {
|
|
JOptionPane.showMessageDialog(this, "Nella lista sono presenti degli extra!");
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
//02/09/2021
|
|
private void controllaCompleti(MyTableModel model) {
|
|
if (passaggiEsauritiNoComposizione == true) {
|
|
return;
|
|
}
|
|
|
|
MyTableModel model1 = (MyTableModel) tblLista1.getModel();
|
|
//clearTable(model1);
|
|
model1.clearTable();
|
|
Boolean composizionePresente = false;
|
|
StringBuilder sb = new StringBuilder();
|
|
//verifico se sono presenti composizioni
|
|
for (int i = 0; i < model.getRowCount(); i++) {
|
|
Object row[] = model.getRow(i);
|
|
Double p = Double.valueOf(row[4].toString());
|
|
model.setValueAt(p, i, colImporto);
|
|
sb.append(model.getValueAt(i, 3));
|
|
sb.append(",");
|
|
if (Long.parseLong(row[5].toString()) == 0L) {
|
|
composizionePresente = true;
|
|
if (gratuitaResidue > 0) {//Gratuita_ResidueProg
|
|
//clearTable(model1);
|
|
model1.clearTable();
|
|
model1.addRow(new Object[]{model.getValueAt(i, 0), 0.00, model.getValueAt(i, 3)});
|
|
} else if (flagBonus == 1 && bonusResidui > 0) {
|
|
//clearTable(model1);
|
|
model1.clearTable();
|
|
model1.addRow(new Object[]{model.getValueAt(i, 0), 0.00, model.getValueAt(i, 3)});
|
|
} else {
|
|
//clearTable(model1);
|
|
model1.clearTable();
|
|
model1.addRow(new Object[]{model.getValueAt(i, 0), model.getValueAt(i, 1), model.getValueAt(i, 3)});
|
|
}
|
|
|
|
model.setValueAt(0.0, i, colImporto);
|
|
}
|
|
|
|
}
|
|
|
|
doLayout();
|
|
|
|
if (composizionePresente == false && sb.toString().length() > 0) {
|
|
//azzero prezzi dei componenti della composizione
|
|
//23-09-22
|
|
for (int i = 0; i < model.getRowCount(); i++) {
|
|
model.setValueAt(0.00, i, colImporto);
|
|
}
|
|
|
|
String idVassoio = Utils.mySelect("SELECT seleziona_composizione('" + sb.toString().substring(0, sb.toString().length() - 1) + "') "
|
|
+ "as idCompleto from dual",
|
|
"idCompleto",
|
|
this);
|
|
if (Long.parseLong(idVassoio) != -1) {
|
|
String nomeVassoio = Utils.mySelect("Select nome from vassoi where id=" + idVassoio, "nome",
|
|
this);
|
|
String prezzo = Utils.mySelect("Select prezzo from tariffe where id_fascia=" + idProfiloTariffario + " "
|
|
+ "and id_prodotto=" + idVassoio, "prezzo",
|
|
this);
|
|
|
|
//clearTable(model1);
|
|
model1.clearTable();
|
|
if (gratuitaResidue > 0) {//Gratuita_ResidueProg
|
|
model1.addRow(new Object[]{nomeVassoio, 0.00, idVassoio});
|
|
} else if (flagBonus == 1 && bonusResidui > 0) {
|
|
model1.addRow(new Object[]{nomeVassoio, 0.00, idVassoio});
|
|
} else {
|
|
model1.addRow(new Object[]{nomeVassoio, prezzo, idVassoio});
|
|
}
|
|
|
|
//azzero elemento appena inserito se fa parte di una composizione
|
|
model.setValueAt(0.00, model.getRowCount() - 1, colImporto);
|
|
doLayout();
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Composizione errata, questo prodotto sarà eliminato!");
|
|
jbtnEliminaActionPerformed(null);
|
|
}
|
|
// }
|
|
}
|
|
|
|
if (composizionePresente == true && sb.toString().length() > 0 && model.getRowCount() > 1) {
|
|
JOptionPane.showMessageDialog(this, "Composizione presente, questo prodotto sarà eliminato!");
|
|
jbtnEliminaActionPerformed(null);
|
|
}
|
|
|
|
}
|
|
|
|
// ==========================================================================
|
|
// ** Carica i dati di base per la maschera principale
|
|
// ==========================================================================
|
|
public void caricaDati(String tipo, String id) {
|
|
String sql = "";
|
|
String azione = "";
|
|
String nome = "";
|
|
Statement st;
|
|
ResultSet rs;
|
|
JToggleButton b;
|
|
JPanel pnl = this.pnlCategorie;
|
|
|
|
switch (tipo) {
|
|
case "CATEGORIE" -> {
|
|
sql = "SELECT distinct c.id, c.nome, c.descrizione FROM categorie_prodotti c "
|
|
+ " INNER JOIN prodotti p ON p.id_categoria = c.ID "
|
|
+ " INNER JOIN catalogo_punti_cassa l ON l.id_prodotto = p.ID "
|
|
+ " INNER JOIN punti_cassa x ON l.id_punto_cassa = x.ID "
|
|
+ " WHERE x.id =" + idPuntoCassa + " order by c.descrizione";
|
|
System.out.println(sql);
|
|
azione = "CATEGORIA";
|
|
pnl = this.pnlCategorie;
|
|
}
|
|
|
|
case "PRODOTTI" -> {
|
|
sql = "SELECT p.ID, p.nome, NVL (t.prezzo, p.prezzo_base) AS prezzo,NVL (t.punti, 0) AS punti FROM prodotti p , tariffe t, catalogo_punti_cassa c "
|
|
+ " WHERE p.id_categoria = " + id
|
|
+ " AND t.id_prodotto = p.id "
|
|
+ " AND t.id_fascia = " + idProfiloTariffario
|
|
+ " AND c.id_prodotto = p.id AND c.id_punto_cassa =" + idPuntoCassa
|
|
+ " ORDER BY p.flag_catalogo_variabile desc, p.nome";
|
|
|
|
System.out.println(sql);
|
|
azione = "PRODOTTO";
|
|
pnl = this.pnlProdotti;
|
|
}
|
|
}
|
|
try {
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
st = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
|
rs = st.executeQuery(sql);
|
|
|
|
if (tipo.equalsIgnoreCase("CATEGORIE")) {
|
|
int rowcount = 0;
|
|
while (rs.next()) {
|
|
rowcount++;
|
|
}
|
|
if (rowcount > 0) {
|
|
numeroCategorie = rowcount;
|
|
rs.beforeFirst();
|
|
pnl.setLayout(new GridLayout(rowcount + 1, 1, 1, 1));
|
|
}
|
|
}
|
|
|
|
pnl.removeAll();
|
|
|
|
while (rs.next()) {
|
|
nome = "<html>" + rs.getString("nome") + "</html>";
|
|
b = new JToggleButton(nome);
|
|
b.setEnabled(isCassaAperta);
|
|
b.setHorizontalAlignment(SwingConstants.CENTER);
|
|
b.setVerticalAlignment(SwingConstants.CENTER);
|
|
b.setVerticalTextPosition(SwingConstants.CENTER);
|
|
b.setText(nome);
|
|
b.setName(rs.getString("id"));
|
|
b.setActionCommand(azione + "[" + rs.getString("id") + "]");
|
|
b.addActionListener(this);
|
|
b.setVisible(true);
|
|
if (tipo.equalsIgnoreCase("CATEGORIE")) {
|
|
//Font f = new Font("Tahoma", Font.BOLD, 14);
|
|
Font f = new Font("Tahoma", Font.BOLD, hFont);
|
|
b.setFont(f);
|
|
b.setForeground(Color.RED);
|
|
|
|
}
|
|
pnl.add(b);
|
|
}
|
|
|
|
if (tipo.equalsIgnoreCase("CATEGORIE")) {
|
|
JToggleButton bGost = new JToggleButton("[DEFAULT]");
|
|
bGost.setName("btnDefault");
|
|
//Font f = new Font("Tahoma", Font.BOLD, 14);
|
|
Font f = new Font("Tahoma", Font.BOLD, hFont);
|
|
bGost.setFont(f);
|
|
bGost.setForeground(Color.RED);
|
|
bGost.setActionCommand("CATEGORIA[0]");
|
|
bGost.addActionListener(this);
|
|
bGost.setVisible(false);
|
|
pnl.add(bGost);
|
|
}
|
|
|
|
this.revalidate();
|
|
this.repaint();
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (SQLException e) {
|
|
}
|
|
|
|
}
|
|
|
|
public void caricaPannello() {
|
|
String azione = "PRODOTTO";
|
|
String where = "";
|
|
Statement st;
|
|
ResultSet rs;
|
|
String sql = "select * from (SELECT p.ID, p.nome, NVL (t.prezzo, p.prezzo_base) AS prezzo,NVL (t.punti, 0) AS punti,cat.nome as Categoria ";
|
|
String sql2 = " FROM prodotti p , tariffe t, catalogo_punti_cassa c,categorie_prodotti cat "
|
|
+ " WHERE p.flag_catalogo_variabile = 1"
|
|
+ " AND p.id_categoria = cat.id "
|
|
+ " AND t.id_prodotto = p.id "
|
|
+ " AND t.id_fascia = " + idProfiloTariffario
|
|
+ " AND c.id_prodotto = p.id AND c.id_punto_cassa =" + idPuntoCassa;
|
|
//MyApplication myApp = new MyApplication();
|
|
String nrec = Utils.mySelect("SELECT count(*) as nrec " + sql2, "nrec",
|
|
this);
|
|
if (Integer.parseInt(nrec) <= 0) {
|
|
menuGiornoPresente = false;
|
|
String idComposizione = Utils.mySelect("select id from Categorie_Prodotti where Upper(Nome)='COMPOSIZIONE'", "id",
|
|
this);
|
|
caricaDati("PRODOTTI", idComposizione);
|
|
|
|
} else {
|
|
menuGiornoPresente = true;
|
|
sql = sql + sql2;
|
|
}
|
|
JPanel pnl = this.pnlProdotti;
|
|
|
|
pnl.setLayout(new GridLayout(6, 5, 1, 1));
|
|
pnl.removeAll();
|
|
for (Integer r = 0; r < 6; r++) {
|
|
Color c2 = new Color(255, 153, 255);
|
|
switch (r) {
|
|
case 0 -> where = " and upper(cat.CODICE)='PRIM' ";
|
|
case 1 -> {
|
|
where = " and upper(cat.CODICE)='SECO' ";
|
|
c2 = Color.CYAN;
|
|
}
|
|
case 2 -> {
|
|
where = " and upper(cat.CODICE)='CONT' ";
|
|
c2 = new Color(146, 208, 80);
|
|
}
|
|
case 3 -> {
|
|
where = " and upper(cat.CODICE)='DESS' ";
|
|
c2 = Color.yellow;
|
|
}
|
|
case 4 -> {
|
|
where = " and (upper(cat.CODICE)='INSA' OR upper(cat.CODICE)='UNI' OR upper(cat.CODICE)='UNR2') ";
|
|
c2 = Color.GREEN;
|
|
}
|
|
case 5 -> {
|
|
where = " and (upper(cat.CODICE)='SALA' OR upper(cat.CODICE)='PIZZ') ";
|
|
c2 = new Color(255, 217, 102);
|
|
}
|
|
|
|
}
|
|
Integer np = 0;
|
|
try {
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
st = dbConnection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
|
rs = st.executeQuery(sql + where + " order by p.id) where ROWNUM <= 7");
|
|
//Font f = new Font("Tahoma", Font.BOLD, 13);
|
|
Font f = new Font("Tahoma", Font.BOLD, hFont);
|
|
String jolly = "";
|
|
String idJolly = "";
|
|
while (rs.next()) {
|
|
if (rs.getString("nome").toUpperCase().indexOf("JOLLY") >= 0) {
|
|
jolly = "<html>" + rs.getString("nome") + "</html>";
|
|
idJolly = rs.getString("id");
|
|
} else {
|
|
String nome = "<html>" + rs.getString("nome") + "</html>";
|
|
JToggleButton bt = new JToggleButton(nome);
|
|
bt.setBackground(c2);
|
|
bt.setEnabled(isCassaAperta);
|
|
bt.setFont(f);
|
|
Insets ins = new Insets(0, 0, 0, 0);
|
|
bt.setMargin(ins);
|
|
bt.setHorizontalAlignment(SwingConstants.LEFT);
|
|
bt.setVerticalAlignment(SwingConstants.TOP);
|
|
bt.setVerticalTextPosition(SwingConstants.TOP);
|
|
bt.setName(rs.getString("id"));
|
|
bt.setActionCommand(azione + "[" + rs.getString("id") + "]");
|
|
bt.addActionListener(this);
|
|
bt.setVisible(true);
|
|
|
|
pnl.add(bt);
|
|
np++;
|
|
if (np == 5) {
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
for (Integer c = np; c < 6; c++) {
|
|
JToggleButton bt;
|
|
if (c == 5 && jolly.length() > 1) {
|
|
bt = new JToggleButton(jolly);
|
|
bt.setName(idJolly);
|
|
bt.setActionCommand(azione + "[" + idJolly + "]");
|
|
} else {
|
|
bt = new JToggleButton("");
|
|
bt.setName("0");
|
|
bt.setActionCommand(azione + "[0]");
|
|
}
|
|
bt.setBackground(c2);
|
|
bt.setFont(f);
|
|
bt.setEnabled(isCassaAperta);
|
|
Insets ins = new Insets(0, 0, 0, 0);
|
|
bt.setMargin(ins);
|
|
bt.setHorizontalAlignment(SwingConstants.LEFT);
|
|
bt.setVerticalAlignment(SwingConstants.TOP);
|
|
bt.setVerticalTextPosition(SwingConstants.TOP);
|
|
bt.addActionListener(this);
|
|
bt.setVisible(true);
|
|
pnl.add(bt);
|
|
}
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (SQLException e) {
|
|
LogManager.getLogger(PuntoCassa.class).error(e);
|
|
}
|
|
|
|
}
|
|
|
|
this.revalidate();
|
|
this.repaint();
|
|
|
|
}
|
|
|
|
private void caricaModiPagamento() {
|
|
try {
|
|
Statement st;
|
|
ResultSet rs;
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
st = dbConnection.createStatement();
|
|
rs = st.executeQuery("Select * from Tipi_Pagamenti order by id");
|
|
|
|
while (rs.next()) {
|
|
modiPagamento.append(rs.getString("id")).append(';').append(rs.getString("nome")).append("|");
|
|
}
|
|
this.revalidate();
|
|
this.repaint();
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (SQLException e) {
|
|
LogManager.getLogger(PuntoCassa.class).error(e);
|
|
}
|
|
|
|
}
|
|
|
|
// ==========================================================================
|
|
// ** Quando viene chiusa la form esce dall'applicazione
|
|
// ==========================================================================
|
|
private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
|
|
Object[] options = {"Si", "No"};
|
|
|
|
Object selectedValue = JOptionPane.showOptionDialog(this, "Confermi chiusura programma?", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[1]);
|
|
|
|
if (Integer.parseInt(selectedValue.toString()) == 0) {
|
|
Utils.myInsert("UPDATE PARAMETRI set valore='NO' where chiave='FlagDownloadInCorso'", this);
|
|
Long nrec = Utils.mySelectInteger("SELECT count(*) as nrec FROM acquisti", "nrec",
|
|
this);
|
|
if (nrec > 0) {
|
|
if (JOptionPane.showConfirmDialog(null, "Attenzione, ci sono " + nrec + " passaggi non ancora trasferiti al database centrale,\nconferma chiusura programma?", "Acquisti", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
|
|
statoAttivoNonLoggato();
|
|
System.exit(0);
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
statoAttivoNonLoggato();
|
|
System.exit(0);
|
|
}
|
|
|
|
}//GEN-LAST:event_exitForm
|
|
|
|
// ==========================================================================
|
|
// ** Click sul btnLogin
|
|
// ==========================================================================
|
|
private Boolean turno() {
|
|
Boolean ok = false;
|
|
String query = "select t.dalle, t.alle, t.id, t.nome from turni t, turni_punti_distribuzione x, punti_distribuzione p, punti_cassa c "
|
|
+ "where x.id_turno = t.id "
|
|
+ "and x.id_punto_distribuzione = p.id "
|
|
+ "and c.id_punto_distribuzione = p.id and c.id =" + idPuntoCassa;
|
|
|
|
try {
|
|
String[] nowString = Utils.mySelect("Select sysdate as mo from dual", "mo",
|
|
this).split(" ");
|
|
|
|
Statement st;
|
|
ResultSet rs;
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
st = dbConnection.createStatement();
|
|
rs = st.executeQuery(query);
|
|
while (rs.next()) {
|
|
String dalle = rs.getString("dalle");
|
|
String alle = rs.getString("alle");
|
|
try {
|
|
|
|
Date now = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(nowString[0] + " " + nowString[1]);
|
|
Date da = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(nowString[0] + " " + dalle);
|
|
Date a = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(nowString[0] + " " + alle);
|
|
|
|
if (now.after(da) && now.before(a)) {
|
|
idTurno = rs.getLong("id");
|
|
nomeTurno = rs.getString("nome");
|
|
idTurnoAttuale = idTurno;
|
|
nomeTurnoAttuale = nomeTurno;
|
|
ok = true;
|
|
break;
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
LogManager.getLogger(PuntoCassa.class).error(e);
|
|
}
|
|
}
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
} catch (SQLException e) {
|
|
JOptionPane.showMessageDialog(this, "Errore DB ['" + query + "']");
|
|
}
|
|
return ok;
|
|
}
|
|
|
|
private void turnoAttuale() {
|
|
String query = "select t.dalle, t.alle, t.id, t.nome from turni t, turni_punti_distribuzione x, punti_distribuzione p, punti_cassa c "
|
|
+ "where x.id_turno = t.id and x.id_punto_distribuzione = p.id "
|
|
+ "and c.id_punto_distribuzione = p.id and c.id =" + idPuntoCassa;
|
|
|
|
try {
|
|
String[] mo = Utils.mySelect("Select sysdate as mo from dual", "mo",
|
|
this).split(" ");
|
|
|
|
Statement st;
|
|
ResultSet rs;
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
st = dbConnection.createStatement();
|
|
rs = st.executeQuery(query);
|
|
while (rs.next()) {
|
|
String dalle = rs.getString("dalle");
|
|
String alle = rs.getString("alle");
|
|
try {
|
|
|
|
Date adesso = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(mo[0] + " " + mo[1]);
|
|
Date da = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(mo[0] + " " + dalle);
|
|
Date a = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH).parse(mo[0] + " " + alle);
|
|
|
|
//JOptionPane.showMessageDialog(this, da + " e " + now.compareTo(a));
|
|
if (adesso.after(da) && adesso.before(a)) {
|
|
idTurnoAttuale = rs.getLong("id");
|
|
nomeTurnoAttuale = rs.getString("nome");
|
|
|
|
break;
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
LogManager.getLogger(PuntoCassa.class).error(e);
|
|
}
|
|
}
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
} catch (SQLException e) {
|
|
|
|
JOptionPane.showMessageDialog(this, "Errore DB ['" + query + "']");
|
|
}
|
|
|
|
}
|
|
|
|
private void impostaAmbiente() {
|
|
// -----------------------------------------------------------
|
|
// ** id punto cassa
|
|
// -----------------------------------------------------------
|
|
idPuntoCassa = Utils.mySelectInteger("select Punti_Cassa.id as idPC from Punti_Cassa where Punti_Cassa.id=" + idPuntoCassa, "idPC",
|
|
this);
|
|
|
|
// -----------------------------------------------------------
|
|
// ** Imposta l'ambiente
|
|
// -----------------------------------------------------------
|
|
txtUsername.setEnabled(false);
|
|
txtPassword.setEnabled(false);
|
|
btnLogin.setEnabled(false);
|
|
addRemoveKeyDispatcher(true);
|
|
aggiungiImmaginiPulsanti();
|
|
if (jChLogin.isSelected() == false && utenteLoggato.length() <= 0) {
|
|
utenteLoggato = txtUsername.getText();
|
|
}
|
|
|
|
lblUtenteLoggato.setText("LogIn: [" + utenteLoggato + "]");
|
|
this.resize();
|
|
this.caricaDati("CATEGORIE", "0");
|
|
pnlErrore.setVisible(false);
|
|
pnlLogin.setVisible(false);
|
|
pnlTop.setVisible(true);
|
|
pnlProdotti.setVisible(true);
|
|
jBtnStorno.setEnabled(false);
|
|
jBtnAsporto.setEnabled(false);
|
|
jbtnSu.setEnabled(false);
|
|
jbtnGiu.setEnabled(false);
|
|
jbtnElimina.setEnabled(false);
|
|
jbtnAnnulla.setEnabled(false);
|
|
jbtnDuplica.setEnabled(false);
|
|
|
|
String pulsante = Utils.mySelect("SELECT p.flag_imposta_tessera as Pulsante "
|
|
+ "FROM punti_distribuzione p, punti_cassa c "
|
|
+ "WHERE c.id_punto_distribuzione = p.id AND c.id =" + idPuntoCassa, "Pulsante",
|
|
this);
|
|
if (Integer.parseInt(pulsante) == 1) {
|
|
bottoneImposta = true;
|
|
btnImpostaCliente.setVisible(true);
|
|
btnImpostaCliente.setEnabled(true);
|
|
|
|
jTxtTessera.setEnabled(true);
|
|
} else {
|
|
bottoneImposta = false;
|
|
btnImpostaCliente.setEnabled(false);
|
|
jTxtTessera.setEnabled(false);
|
|
}
|
|
|
|
if (idPuntoCassa != 0) {
|
|
aggiornaProgressivi();
|
|
|
|
if (btnImpostaCliente.isVisible()) {
|
|
btnImpostaCliente.setEnabled(false);
|
|
}
|
|
jBtnprodotti.setEnabled(false);
|
|
meteo();
|
|
if (btnImpostaCliente.isVisible()) {
|
|
btnImpostaCliente.setEnabled(bottoneImposta);
|
|
}
|
|
jBtnprodotti.setEnabled(true);
|
|
jbtnDuplica.setText("<html>Duplica<br />Prodotto</html>");
|
|
jbtnElimina.setText("<html>Elimina<br />Prodotto</html>");
|
|
|
|
caricaModiPagamento();
|
|
verificaModoPagamento();
|
|
pulsantiModoPagamento();
|
|
|
|
//modifica 09-5-2018------------------------------------
|
|
if (flagPrecaricaLista) {
|
|
abilitaPulsanti(pnlCategorie, true, true);
|
|
abilitaPulsanti(pnlProdotti, true, true);
|
|
idProfiloTariffarioDefault = Utils.mySelectInteger("select Valore from Parametri where upper(chiave)='IDFASCIADEFAULT'", "Valore",
|
|
this);
|
|
System.out.print("" + idProfiloTariffarioDefault);
|
|
|
|
apriCassaDefault();
|
|
}
|
|
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "ID Punto Cassa non configurato!");
|
|
}
|
|
}
|
|
|
|
private void verificaDB() {
|
|
final Timer timer = new Timer();
|
|
final TimerTask task = new TimerTask() {
|
|
@Override
|
|
public void run() {
|
|
Long res = Utils.mySelectInteger("SELECT db_remoto_connesso as Stato FROM dual", "Stato",
|
|
PuntoCassa.this);
|
|
if (res == 1) {
|
|
lblDB.setBackground(Color.green);
|
|
} else {
|
|
lblDB.setBackground(Color.red);
|
|
}
|
|
lblDB.setOpaque(true);
|
|
lblDB.repaint();
|
|
}
|
|
};
|
|
|
|
timer.schedule(task, 1000, 10000);
|
|
|
|
}
|
|
|
|
public void aggiornaProgressivi() {
|
|
// -----------------------------------------------------------
|
|
// ** progressivo assoluto scontrino
|
|
// -----------------------------------------------------------
|
|
|
|
String prog = Utils.mySelect("select nvl(max(prog_assoluto),0) as Prog from Progressivi where id_Punto_cassa=" + idPuntoCassa, "Prog",
|
|
this);
|
|
|
|
// if(progressivo < Long.parseLong(prog)){
|
|
progressivo = Long.valueOf(prog);
|
|
// }
|
|
|
|
// -----------------------------------------------------------
|
|
// ** progressivo giorno turno scontrino
|
|
// -----------------------------------------------------------
|
|
Date now = new Date();
|
|
String progT = Utils.mySelect("select nvl(max(prog_turno),0) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and id_Turno=" + idTurno + " and data=" + formattaData(now),
|
|
"Prog",
|
|
this);
|
|
progressivoTurno = Long.valueOf(progT);
|
|
|
|
String progG = Utils.mySelect("select nvl(max(prog_giorno),0) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and data=" + formattaData(now), "Prog",
|
|
this);
|
|
progressivoGiorno = Long.valueOf(progG);
|
|
|
|
String controlloTurno = Utils.mySelect("select count(*) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and data=" + formattaData(now) + " and id_Turno=" + idTurno, "Prog",
|
|
this);
|
|
if (Long.parseLong(controlloTurno) <= 0) {
|
|
Utils.myInsert("Insert into Progressivi (data,id_Punto_cassa,id_Turno,prog_assoluto,prog_giorno,prog_turno) "
|
|
+ " values (" + formattaData(now) + "," + idPuntoCassa + "," + idTurno + "," + progressivo + "," + progressivoGiorno + ",0)",
|
|
this);
|
|
}
|
|
|
|
// -----------------------------------------------------------
|
|
// ** incassi turno pagamento a scalare
|
|
// -----------------------------------------------------------
|
|
String progPS = Utils.mySelect("select nvl(sum(incasso_turno_scalare),0) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and id_Turno=" + idTurno + " and data=" + formattaData(now), "Prog",
|
|
this);
|
|
progressivoScalare = Double.valueOf(progPS);
|
|
|
|
// -----------------------------------------------------------
|
|
// ** incassi turno pagamento a contanti
|
|
// -----------------------------------------------------------
|
|
String progPC = Utils.mySelect("select nvl(sum(incasso_turno_contanti),0) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and id_Turno=" + idTurno + " and data=" + formattaData(now), "Prog",
|
|
this);
|
|
progressivoContanti = Double.valueOf(progPC);
|
|
|
|
// -----------------------------------------------------------
|
|
// ** incassi turno pagamento ticket
|
|
// -----------------------------------------------------------
|
|
String progPT = Utils.mySelect("select nvl(sum(incasso_turno_ticket),0) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and id_Turno=" + idTurno + " and data=" + formattaData(now), "Prog",
|
|
this);
|
|
progressivoTicket = Double.valueOf(progPT);
|
|
|
|
// -----------------------------------------------------------
|
|
// ** incassi turno pagamento differito
|
|
// -----------------------------------------------------------
|
|
String progDI = Utils.mySelect("select nvl(sum(incasso_turno_differito),0) as Prog from Progressivi where id_Punto_cassa="
|
|
+ idPuntoCassa + " and id_Turno=" + idTurno + " and data=" + formattaData(now), "Prog",
|
|
this);
|
|
progressivoDifferito = Double.valueOf(progDI);
|
|
aggiornaLabelInfo();
|
|
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("A scalare") && jTxtTessera.getText().length() > 0) {
|
|
verificaSaldo(jTxtTessera.getText());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void aggiornaLabelInfo() {
|
|
Long prog = progressivo;// - 1;
|
|
Long progGG = progressivoGiorno;// - 1;
|
|
Long progTurno = progressivoTurno;// - 1;
|
|
if (progressivo <= 0) {
|
|
prog = 0L;
|
|
}
|
|
if (progressivoGiorno <= 0) {
|
|
progGG = 0L;
|
|
}
|
|
if (progressivoTurno <= 0) {
|
|
progTurno = 0L;
|
|
}
|
|
|
|
lblInfo.setText("Passaggi: Tot. [" + prog + "], giorno [" + progGG + "], turno [" + progTurno + "]");
|
|
DecimalFormat df2 = new DecimalFormat("#,###,###,##0.00");
|
|
lblInfo2.setText("Incassi [" + nomeTurno + "]: Tot. [" +
|
|
df2.format(progressivoScalare + progressivoContanti + progressivoTicket + progressivoDifferito) + "] SC [" +
|
|
df2.format(progressivoScalare) + "], CO [" +
|
|
df2.format(progressivoContanti) + "], TI [" +
|
|
df2.format(progressivoTicket) + "], DI [" +
|
|
df2.format(progressivoDifferito) + "]");
|
|
}
|
|
|
|
public void addRemoveKeyDispatcher(Boolean aggiungi) {
|
|
if (aggiungi) {
|
|
if (keyDespatcherAttivo == false) {
|
|
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(keyDispatcher);
|
|
keyDespatcherAttivo = true;
|
|
}
|
|
} else {
|
|
|
|
KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(keyDispatcher);
|
|
keyDespatcherAttivo = false;
|
|
}
|
|
|
|
}
|
|
|
|
private void meteo() {
|
|
String spia = Utils.mySelect("select controlla_meteo(" + idPuntoCassa + ") as res from dual", "res",
|
|
this);
|
|
if (Integer.parseInt(spia) == 1) {
|
|
if (myMeteoForm == null) {
|
|
myMeteoForm = new FrmMeteo(this, idPuntoCassa, true);
|
|
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(300, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(70, altControlli);
|
|
|
|
myMeteoForm.setSize(w, h);
|
|
myMeteoForm.setLocationRelativeTo(null);
|
|
myMeteoForm.setVisible(true);
|
|
}
|
|
}
|
|
|
|
}
|
|
private void resizeRules(java.awt.event.ComponentEvent evt) {//GEN-FIRST:event_resizeRules
|
|
resize();
|
|
}//GEN-LAST:event_resizeRules
|
|
|
|
private void jbtnSuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnSuActionPerformed
|
|
// TODO add your handling code here:
|
|
if (tblLista.getSelectedRow() > 0) {
|
|
tblLista.setRowSelectionInterval(tblLista.getSelectedRow() - 1, tblLista.getSelectedRow() - 1);
|
|
tblLista.scrollRectToVisible(new Rectangle(tblLista.getCellRect(tblLista.getSelectedRow(), 0, true)));
|
|
}
|
|
}//GEN-LAST:event_jbtnSuActionPerformed
|
|
|
|
private void jbtnDuplicaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnDuplicaActionPerformed
|
|
// TODO add your handling code here:
|
|
if (tblLista.getSelectedRow() >= 0) {
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
Object row[] = model.getRow(tblLista.getSelectedRow());
|
|
Boolean isComposizione = false;
|
|
if (Long.parseLong(row[5].toString()) == 0L) {
|
|
isComposizione = true;
|
|
}
|
|
if (isComposizione) {
|
|
JOptionPane.showOptionDialog(this, "Composizione già presente!", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
|
|
} else {
|
|
|
|
model.addRow(row);
|
|
tblLista.setRowSelectionInterval(model.getRowCount() - 1, model.getRowCount() - 1);
|
|
tblLista.setModel(model);
|
|
|
|
controllaCompleti(model);
|
|
controllaExtra(model);
|
|
sommaColonne(model);
|
|
}
|
|
}
|
|
}//GEN-LAST:event_jbtnDuplicaActionPerformed
|
|
|
|
private void jbtnGiuActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnGiuActionPerformed
|
|
// TODO add your handling code here:
|
|
if (tblLista.getSelectedRow() < tblLista.getRowCount() - 1) {
|
|
tblLista.setRowSelectionInterval(tblLista.getSelectedRow() + 1, tblLista.getSelectedRow() + 1);
|
|
tblLista.scrollRectToVisible(new Rectangle(tblLista.getCellRect(tblLista.getSelectedRow(), 0, true)));
|
|
}
|
|
}//GEN-LAST:event_jbtnGiuActionPerformed
|
|
|
|
private void jbtnStampaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnStampaActionPerformed
|
|
|
|
Boolean ok = Utils.myInsert("UPDATE PARAMETRI set valore='NO' where chiave='FlagDownloadInCorso'",
|
|
this);
|
|
if (ok) {
|
|
JOptionPane.showOptionDialog(this, "Operazione correttamente eseguita.", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null);
|
|
} else {
|
|
JOptionPane.showOptionDialog(this, "Errore nell'aggiornamento del parametro!", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
|
|
}
|
|
}//GEN-LAST:event_jbtnStampaActionPerformed
|
|
private void cancellaComposizioni() {
|
|
try {
|
|
MyTableModel model1 = (MyTableModel) tblLista1.getModel();
|
|
//clearTable(model1);
|
|
model1.clearTable();
|
|
} catch (Exception e) {
|
|
}
|
|
}
|
|
private void jbtnEliminaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnEliminaActionPerformed
|
|
cancellaComposizioni();
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
Integer riga = tblLista.getSelectedRow();
|
|
if (riga >= 0) {
|
|
model.deleteRow(riga);
|
|
//ripristino i prezzi
|
|
for (Integer i = 0; i < model.getRowCount(); i++) {
|
|
model.setValueAt(model.getValueAt(i, colImporto2), i, colImporto);
|
|
}
|
|
//doLayout();
|
|
if (tblLista.getRowCount() > 0) {
|
|
if (riga > 0) {
|
|
tblLista.setRowSelectionInterval(riga - 1, riga - 1);
|
|
} else {
|
|
tblLista.setRowSelectionInterval(0, 0);
|
|
}
|
|
}
|
|
|
|
controllaCompleti(model);
|
|
controllaExtra(model);
|
|
sommaColonne(model);
|
|
|
|
//spengo altri togglebutton
|
|
for (Integer y = 0; y < this.pnlProdotti.getComponentCount(); y++) {
|
|
JToggleButton bt = (JToggleButton) this.pnlProdotti.getComponent(y);
|
|
bt.setSelected(false);
|
|
}
|
|
if (model.getRowCount() <= 0) {
|
|
jbtnSu.setEnabled(false);
|
|
jbtnGiu.setEnabled(false);
|
|
jbtnElimina.setEnabled(false);
|
|
jbtnAnnulla.setEnabled(false);
|
|
jbtnDuplica.setEnabled(false);
|
|
|
|
}
|
|
doLayout();
|
|
}
|
|
|
|
}//GEN-LAST:event_jbtnEliminaActionPerformed
|
|
|
|
private void jbtnChiudiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnChiudiActionPerformed
|
|
|
|
if (verificaPrenotazioni()) {
|
|
chiudi();
|
|
}
|
|
}//GEN-LAST:event_jbtnChiudiActionPerformed
|
|
|
|
private boolean verificaPrenotazioni() {
|
|
boolean ok = true;
|
|
if (idTessera > 0L && idPrenotazione > 0L) {
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
StringBuilder elencoIdProdotti = new StringBuilder();
|
|
for (int i = model.getRowCount() - 1; i >= 0; i--) {
|
|
Long idCateg = Long.valueOf(model.getValueAt(i, colCategoria).toString());
|
|
if (idCateg != 0L) {
|
|
elencoIdProdotti.append(model.getValueAt(i, colIDProdotto));
|
|
elencoIdProdotti.append(",");
|
|
}
|
|
}
|
|
ok = controllaDiscrepanzePrenotazioni(elencoIdProdotti.toString());
|
|
aggiornaPrenotazioni(elencoIdProdotti.toString());
|
|
}
|
|
return ok;
|
|
}
|
|
|
|
private String getNumeroTessera() {
|
|
MyApplication myApp = new MyApplication();
|
|
String nTessera = "";
|
|
try {
|
|
|
|
myApp.idTesseraA = "";
|
|
String[] listReader;
|
|
|
|
listReader = myApp.smartCard.listReaders();
|
|
myApp.smartCard.setReader(listReader[0]);
|
|
|
|
myApp.smartCard.connect("T=1");
|
|
myApp.smartCard.getCurrentCardATR();
|
|
|
|
String nTess = "";
|
|
myApp.sendAPDU(this, "d000", "00", "A4", "00", "00", "02", "");
|
|
myApp.sendAPDU(this, "d100", "00", "A4", "00", "00", "02", "");
|
|
myApp.sendAPDU(this, "d101", "00", "A4", "00", "00", "02", "");
|
|
String[] CF = myApp.sendAPDU(this, "", "00", "B0", "00", "00", "00", "140").split("\\|");
|
|
|
|
myApp.sendAPDU(this, "3f00", "00", "A4", "00", "00", "02", "");
|
|
myApp.sendAPDU(this, "1000", "00", "A4", "00", "00", "02", "");
|
|
myApp.sendAPDU(this, "1003", "00", "A4", "00", "00", "02", "");
|
|
nTess = myApp.sendAPDU(this, "", "00", "B0", "00", "00", "00", "14");
|
|
|
|
myApp.smartCard.disconnect();
|
|
if (CF.length > 1) {
|
|
nTessera = nTess;
|
|
}
|
|
} catch (Exception ex) {
|
|
JOptionPane.showMessageDialog(this, "Card Reader non collegato o errore di lettura!",
|
|
"jBtnReadCardActionPerformed", JOptionPane.ERROR_MESSAGE);
|
|
|
|
} finally {
|
|
|
|
return nTessera;
|
|
}
|
|
|
|
}
|
|
private void formWindowDeiconified(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowDeiconified
|
|
// TODO add your handling code here:
|
|
resize();
|
|
}//GEN-LAST:event_formWindowDeiconified
|
|
private void setTastiera(java.awt.event.MouseEvent evt) {
|
|
setTastieraAfterEvent(evt);
|
|
}
|
|
|
|
private void setTastiera(java.awt.event.FocusEvent evt) {
|
|
setTastieraAfterEvent(evt);
|
|
}
|
|
|
|
private void setTastieraAfterEvent(ComponentEvent evt) {
|
|
MyApplication myApp = new MyApplication();
|
|
if (jChLogin.isSelected() == false) {
|
|
if (myApp.tastieraVideo) {
|
|
if (myApp.ultimoTxt.equalsIgnoreCase(evt.getComponent().toString())) {
|
|
myApp.ultimoTxt = " ";
|
|
} else {
|
|
myApp.ultimoTxt = evt.getComponent().toString();
|
|
Rectangle pnl = pnlLogin.getBounds();
|
|
|
|
setTastiera((JTextField) evt.getComponent(), pnl.x, pnl.y);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
private void jbtnEsciActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnEsciActionPerformed
|
|
Object[] options = {"Si", "No"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this, "Confermi chiusura sessione?", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
|
|
if (Integer.parseInt(selectedValue.toString()) == 0) {
|
|
pnlErrore.setVisible(false);
|
|
pnlLogin.setVisible(true);
|
|
pnlTop.setVisible(false);
|
|
pnlProdotti.setVisible(false);
|
|
utenteLoggato = "";
|
|
idAccount = 0L;
|
|
lblUtenteLoggato.setText("[Nessun Utente Connesso]");
|
|
lblInfo.setText("[Info Turno]");
|
|
lblInfo2.setText("[Info Incassi]");
|
|
txtPassword.setEnabled(true);
|
|
txtUsername.setEnabled(true);
|
|
btnLogin.setEnabled(true);
|
|
pnlCategorie.removeAll();
|
|
pnlProdotti.removeAll();
|
|
addRemoveKeyDispatcher(false);
|
|
jChLoginActionPerformed(null);
|
|
azzera();
|
|
statoAttivoNonLoggato();
|
|
}
|
|
}//GEN-LAST:event_jbtnEsciActionPerformed
|
|
|
|
private void jBtnStornoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnStornoActionPerformed
|
|
apriStorno(false);
|
|
|
|
}//GEN-LAST:event_jBtnStornoActionPerformed
|
|
|
|
private void apriStorno(Boolean daPassaggi) {
|
|
FrmStorno jFrameStorno = new FrmStorno(this, idTessera, idPuntoCassa, imgPath, daPassaggi);
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(550, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(250, altControlli);
|
|
|
|
jFrameStorno.setSize(w, h);
|
|
jFrameStorno.setLocationRelativeTo(null);
|
|
jFrameStorno.setVisible(true);
|
|
}
|
|
private void jBtnprodottiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnprodottiActionPerformed
|
|
FrmProdotti jFrameProdotti = new FrmProdotti(this, imgPath);
|
|
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(550, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(250, altControlli);
|
|
|
|
jFrameProdotti.setSize(w, h);
|
|
jFrameProdotti.setLocationRelativeTo(null);
|
|
jFrameProdotti.setVisible(true);
|
|
}//GEN-LAST:event_jBtnprodottiActionPerformed
|
|
|
|
private void selezionaTipoPagamento(int idTipo) {
|
|
String tipo = setModoPagamento(idTipo);
|
|
|
|
lblTipoPagamento.setText(tipo);
|
|
if (tipo.equalsIgnoreCase("A scalare") && jTxtTessera.getText().length() > 0) {
|
|
verificaSaldo(jTxtTessera.getText());
|
|
|
|
}
|
|
}
|
|
|
|
public void clickModoPagamento(String ModoPagamento) {
|
|
if (isCassaAperta == false) {
|
|
isCassaAperta = true;
|
|
idProfiloTariffario = 0L;
|
|
idTessera = 0L;
|
|
}
|
|
|
|
lblResiduo.setText("[...]");
|
|
lblSaldo.setText("[...]");
|
|
lblTipoPagamento.setText(ModoPagamento);
|
|
}
|
|
|
|
public void clickCarta() {
|
|
if (saldoAcquisti(0.0) == false && consentiCredito == false) {
|
|
JOptionPane.showOptionDialog(this, "Saldo tessera insufficiente!", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
|
|
return;
|
|
}
|
|
|
|
if (isCassaAperta == true) {
|
|
lblResiduo.setText("[...]");
|
|
setModoPagamento("A scalare");
|
|
String tipo = cercaTestoModoPagamento();
|
|
lblTipoPagamento.setText(tipo);
|
|
|
|
}
|
|
}
|
|
|
|
private void aggiornaDB(Boolean messaggio) {
|
|
try {
|
|
Boolean aggiorna = false;
|
|
if (messaggio) {
|
|
Object[] options = {"Si", "No"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this, "Confermi aggiornamento del database locale?", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
|
|
if (Integer.parseInt(selectedValue.toString()) != 0) {
|
|
return;
|
|
} else {
|
|
aggiorna = true;
|
|
}
|
|
} else {
|
|
aggiorna = true;
|
|
}
|
|
if (aggiorna) {
|
|
|
|
myProgressForm = new FrmProgress(this);
|
|
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(300, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(100, altControlli);
|
|
myProgressForm.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
|
|
myProgressForm.setResizable(false);
|
|
myProgressForm.setTitle("Aggiornamento Database...");
|
|
myProgressForm.setSize(w, h);
|
|
myProgressForm.setLocationRelativeTo(null);
|
|
myProgressForm.setVisible(true);
|
|
myProgressForm.repaint();
|
|
|
|
EventQueue.invokeLater(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
|
|
try {
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
String plsql = "begin lancia_aggiorna_tabelle('S'); end;";
|
|
CallableStatement st = dbConnection.prepareCall(plsql);
|
|
st.execute();
|
|
st.close();
|
|
dbConnection.close();
|
|
PuntoCassa.this.myProgressForm.dispose();
|
|
//12/09/2016
|
|
if (PuntoCassa.this.pnlLogin.isVisible() == false) {
|
|
//23-12-15
|
|
PuntoCassa.this.impostaAmbiente();
|
|
PuntoCassa.this.setEnabled(true);
|
|
}
|
|
|
|
String esito = Utils.mySelect("SELECT esito FROM esiti where id = (select max(id) from esiti)", "esito",
|
|
PuntoCassa.this);
|
|
JOptionPane.showOptionDialog(PuntoCassa.this, esito, "Aggiornamento Database", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
|
|
} catch (Exception e) {
|
|
JOptionPane.showMessageDialog(PuntoCassa.this, "Errore " + e.getMessage());
|
|
}
|
|
}
|
|
});
|
|
}
|
|
} catch (Exception e) {
|
|
JOptionPane.showMessageDialog(this, "Errore " + e.getMessage());
|
|
|
|
}
|
|
}
|
|
private void txtTotaleCassaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtTotaleCassaActionPerformed
|
|
// TODO add your handling code here:
|
|
}//GEN-LAST:event_txtTotaleCassaActionPerformed
|
|
|
|
private void jBtnReadCardActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnReadCardActionPerformed
|
|
// TODO add your handling code here:
|
|
jTxtTessera.setText("");
|
|
String nTessera = getNumeroTessera();
|
|
jTxtTessera.setText(nTessera);
|
|
}//GEN-LAST:event_jBtnReadCardActionPerformed
|
|
|
|
private void jTxtTesseraFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTxtTesseraFocusGained
|
|
MyApplication myApp = new MyApplication();
|
|
if (myApp.tastieraVideo) {
|
|
if (myApp.ultimoTxt.equalsIgnoreCase(evt.getComponent().toString())) {
|
|
myApp.ultimoTxt = " ";
|
|
} else {
|
|
myApp.ultimoTxt = evt.getComponent().toString();
|
|
|
|
Rectangle pnl = pnlLogin.getBounds();
|
|
setTastiera((JTextField) evt.getComponent(), pnl.x, pnl.y);
|
|
}
|
|
}
|
|
}//GEN-LAST:event_jTxtTesseraFocusGained
|
|
|
|
private void btnImpostaClienteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnImpostaClienteActionPerformed
|
|
FrmCerca jFrameCerca = new FrmCerca(this, jTxtTessera, imgPath, "", flagMostraDataDiNascita);
|
|
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(650, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(250, altControlli);
|
|
|
|
jFrameCerca.setSize(w, h);
|
|
jFrameCerca.setLocationRelativeTo(null);
|
|
jFrameCerca.setVisible(true);
|
|
|
|
|
|
}//GEN-LAST:event_btnImpostaClienteActionPerformed
|
|
|
|
private void jbtnAnnullaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jbtnAnnullaActionPerformed
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
if (model.getRowCount() > 0) {
|
|
Object[] options = {"Si", "No"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this, "Desideri annullare tutte le righe?", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
|
|
if (Integer.parseInt(selectedValue.toString()) == 0) {
|
|
annulla();
|
|
doLayout();
|
|
}
|
|
}
|
|
}//GEN-LAST:event_jbtnAnnullaActionPerformed
|
|
private void annulla() {
|
|
try {
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
MyTableModel model1 = (MyTableModel) tblLista1.getModel();
|
|
//clearTable(model);
|
|
//clearTable(model1);
|
|
model.clearTable();
|
|
model1.clearTable();
|
|
jbtnSu.setEnabled(false);
|
|
jbtnGiu.setEnabled(false);
|
|
jbtnElimina.setEnabled(false);
|
|
jbtnAnnulla.setEnabled(false);
|
|
jbtnDuplica.setEnabled(false);
|
|
sommaColonne(model);
|
|
|
|
if (idTessera == 0L) {
|
|
jbtnChiudi.setEnabled(false);
|
|
} else {
|
|
jbtnChiudi.setEnabled(true);
|
|
}
|
|
|
|
//spengo altri togglebutton
|
|
for (Integer y = 0; y < this.pnlProdotti.getComponentCount(); y++) {
|
|
JToggleButton bt = (JToggleButton) this.pnlProdotti.getComponent(y);
|
|
bt.setSelected(false);
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
LogManager.getLogger(PuntoCassa.class).error(e);
|
|
}
|
|
|
|
}
|
|
private void jBtnAsportoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnAsportoActionPerformed
|
|
if (jBtnAsporto.isSelected()) {
|
|
aggiungImmagini(jBtnAsporto, "da asporto.jpg", 50, 50);
|
|
} else {
|
|
aggiungImmagini(jBtnAsporto, "coltello e forchetta.jpg", 50, 50);
|
|
}
|
|
}//GEN-LAST:event_jBtnAsportoActionPerformed
|
|
|
|
private void txtTotalePuntiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtTotalePuntiActionPerformed
|
|
// TODO add your handling code here:
|
|
}//GEN-LAST:event_txtTotalePuntiActionPerformed
|
|
|
|
private void jBtnMovimentiActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnMovimentiActionPerformed
|
|
FrmMovimenti jFrameMovimenti = new FrmMovimenti(this, idTessera, idPuntoCassa, imgPath);
|
|
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(680, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(250, altControlli);
|
|
|
|
jFrameMovimenti.setSize(w, h);
|
|
jFrameMovimenti.setLocationRelativeTo(null);
|
|
|
|
jFrameMovimenti.setVisible(true);
|
|
}//GEN-LAST:event_jBtnMovimentiActionPerformed
|
|
|
|
private void jBtnBuoniActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnBuoniActionPerformed
|
|
|
|
FrmCerca jFrameCerca = new FrmCerca(this, jTxtTessera, imgPath, "BP", flagMostraDataDiNascita);
|
|
this.setEnabled(false);
|
|
Integer w = calcolaLarghezzaAltezza(650, largControlli);
|
|
Integer h = calcolaLarghezzaAltezza(250, altControlli);
|
|
|
|
jFrameCerca.setSize(w, h);
|
|
jFrameCerca.setLocationRelativeTo(null);
|
|
|
|
jFrameCerca.setVisible(true);
|
|
|
|
}//GEN-LAST:event_jBtnBuoniActionPerformed
|
|
|
|
private void jBtnDB1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnDB1ActionPerformed
|
|
// TODO add your handling code here:
|
|
aggiornaDB(true);
|
|
}//GEN-LAST:event_jBtnDB1ActionPerformed
|
|
|
|
private void jChLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jChLoginActionPerformed
|
|
// TODO add your handling code here:
|
|
txtUsername.setEnabled(!jChLogin.isSelected());
|
|
txtPassword.setEnabled(!jChLogin.isSelected());
|
|
btnLogin.setEnabled(!jChLogin.isSelected());
|
|
addRemoveKeyDispatcher(jChLogin.isSelected());
|
|
}//GEN-LAST:event_jChLoginActionPerformed
|
|
|
|
private void btnTerminaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnTerminaActionPerformed
|
|
// TODO add your handling code here:
|
|
exitForm(null);
|
|
}//GEN-LAST:event_btnTerminaActionPerformed
|
|
|
|
private void txtPasswordMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_txtPasswordMouseClicked
|
|
setTastiera(evt);
|
|
}//GEN-LAST:event_txtPasswordMouseClicked
|
|
|
|
private void txtPasswordFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtPasswordFocusGained
|
|
setTastiera(evt);
|
|
}//GEN-LAST:event_txtPasswordFocusGained
|
|
|
|
private void txtUsernameMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_txtUsernameMouseClicked
|
|
setTastiera(evt);
|
|
}//GEN-LAST:event_txtUsernameMouseClicked
|
|
|
|
private void txtUsernameFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtUsernameFocusGained
|
|
setTastiera(evt);
|
|
|
|
}//GEN-LAST:event_txtUsernameFocusGained
|
|
|
|
private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoginActionPerformed
|
|
if (turno()) {
|
|
|
|
String sql, pwd;
|
|
int counter;
|
|
//int hash = 0;
|
|
//Statement st;
|
|
//ResultSet rs;
|
|
|
|
//pwd = new String();
|
|
//sql = new String();
|
|
|
|
// =======================================================================
|
|
// *** Verifica la correttezza delle credenziali inserite - Account
|
|
// =======================================================================
|
|
sql = "SELECT count(*) as counter FROM accounts WHERE username = '" + this.txtUsername.getText() + "'";
|
|
//MyApplication myApp = new MyApplication();
|
|
counter = Integer.parseInt(Utils.mySelect(sql, "Counter", this));
|
|
|
|
// ====================================================================
|
|
// ** Verifica la password
|
|
// ====================================================================
|
|
if (counter == 1) {
|
|
//Encoding en = new Encoding();
|
|
pwd = new String(txtPassword.getPassword());
|
|
sql = "SELECT id || '|' || id_Stato as res FROM accounts WHERE username = '" + this.txtUsername.getText() + "' "
|
|
+ "and password = '" + Encoding.encodeString(pwd) + "'";
|
|
//String[] el = myApp.mySelect(this, sql, "res").split("\\|");
|
|
String[] el = Utils.mySelect(sql, "res",this).split("\\|");
|
|
//if (myApp.isNumeric(el[0])) {
|
|
if (Utils.isNumeric(el[0])) {
|
|
idAccount = Long.valueOf(el[0]);
|
|
if (Integer.parseInt(el[1]) == 2) {
|
|
//String messaggio = myApp.mySelect(this, "Select Descrizione from Stati_Accounts where id=" + el[1], "descrizione");
|
|
String messaggio = Utils.mySelect("Select Descrizione from Stati_Accounts where id=" + el[1], "descrizione",
|
|
this);
|
|
JOptionPane.showMessageDialog(this, messaggio + ".");
|
|
return;
|
|
|
|
}
|
|
} else {
|
|
idAccount = 0L;
|
|
}
|
|
|
|
if (idAccount > 0L) {
|
|
sql = "SELECT count(*) as Counter FROM profili p WHERE p.id_account = " + idAccount + " AND p.id_ruolo IN (3, 10000000004)";
|
|
//counter = Integer.parseInt(myApp.mySelect(this, sql, "Counter"));
|
|
counter = Integer.parseInt(Utils.mySelect(sql, "Counter", this));
|
|
|
|
if (counter > 0) {
|
|
impostaAmbiente();
|
|
txtUsername.setText("");
|
|
txtPassword.setText("");
|
|
statoAttivoLoggato();
|
|
verificaAggiornamentoDB();
|
|
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "L'utente non dispone dei privilegi per l'utilizzo del modulo cassa.");
|
|
}
|
|
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Password errata.");
|
|
}
|
|
|
|
// --------------------------------------------------------------
|
|
// *** Errore SQL in verifica password
|
|
// --------------------------------------------------------------
|
|
// =================================================================
|
|
// ** Caso account sconosciuto
|
|
// =================================================================
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Account sconosciuto.");
|
|
}
|
|
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Impossibile eseguire il Login al sistema:\nNessun Turno Attivo!");
|
|
}
|
|
}//GEN-LAST:event_btnLoginActionPerformed
|
|
//a scalare
|
|
private void jTBP0ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTBP0ActionPerformed
|
|
if (jTBP0.isSelected()) {
|
|
try {
|
|
jTBP0.setEnabled(false);
|
|
jTBP1.setSelected(false);
|
|
jTBP1.setEnabled(true);
|
|
jTBP2.setSelected(false);
|
|
jTBP2.setEnabled(true);
|
|
jTBP3.setSelected(false);
|
|
jTBP3.setEnabled(true);
|
|
selezionaTipoPagamento(0);
|
|
|
|
MyTableModel modelX = (MyTableModel) tblLista.getModel();
|
|
sommaColonne(modelX);
|
|
|
|
} catch (Exception ex) {
|
|
LogManager.getLogger(PuntoCassa.class).error(ex);
|
|
}
|
|
|
|
}
|
|
}//GEN-LAST:event_jTBP0ActionPerformed
|
|
//contanti
|
|
private void jTBP1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTBP1ActionPerformed
|
|
|
|
if (jTBP1.isSelected()) {
|
|
jTBP1.setEnabled(false);
|
|
jTBP0.setSelected(false);
|
|
jTBP0.setEnabled(true);
|
|
jTBP2.setSelected(false);
|
|
jTBP2.setEnabled(true);
|
|
jTBP3.setSelected(false);
|
|
jTBP3.setEnabled(true);
|
|
selezionaTipoPagamento(1);
|
|
}
|
|
}//GEN-LAST:event_jTBP1ActionPerformed
|
|
//ticket
|
|
private void jTBP2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTBP2ActionPerformed
|
|
if (jTBP2.isSelected()) {
|
|
jTBP2.setEnabled(false);
|
|
jTBP1.setSelected(false);
|
|
jTBP1.setEnabled(true);
|
|
jTBP0.setSelected(false);
|
|
jTBP0.setEnabled(true);
|
|
jTBP3.setSelected(false);
|
|
jTBP3.setEnabled(true);
|
|
selezionaTipoPagamento(2);
|
|
}
|
|
}//GEN-LAST:event_jTBP2ActionPerformed
|
|
//differito
|
|
private void jTBP3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTBP3ActionPerformed
|
|
if (jTBP3.isSelected()) {
|
|
jTBP3.setEnabled(false);
|
|
jTBP1.setSelected(false);
|
|
jTBP1.setEnabled(true);
|
|
jTBP2.setSelected(false);
|
|
jTBP2.setEnabled(true);
|
|
jTBP0.setSelected(false);
|
|
jTBP0.setEnabled(true);
|
|
selezionaTipoPagamento(3);
|
|
}
|
|
}//GEN-LAST:event_jTBP3ActionPerformed
|
|
|
|
private void setTastiera(JTextField jTxt, Integer MyX, Integer MyY) {
|
|
|
|
MyKeyBoard keyboard = new MyKeyBoard(this, false);
|
|
keyboard.txt = jTxt;
|
|
keyboard.parent = this;
|
|
Rectangle s = this.getBounds();
|
|
Rectangle s2 = jTxt.getBounds();
|
|
Integer l = s.x + s2.x + MyX;
|
|
if (l + 800 > s.x + s.width) {
|
|
l = s.x + s.width - 800;
|
|
}
|
|
keyboard.setBounds(l, s.y + s2.y + 60 + MyY, 800, 300);
|
|
keyboard.setVisible(true);
|
|
|
|
}
|
|
|
|
private Boolean verificaSaldo(String numeroTessera) {
|
|
Boolean isSaldoOK = false;
|
|
|
|
//andare su viewtessere
|
|
String querySaldo = "select t.saldo || '|' || cf.saldo_minimo_alert || '|' || cf.saldo_minimo_stop || '|' || t.punti || '|' as saldi "
|
|
+ " from tessere t, utenti u, categorie_utenti c, categorie_utenti_fasce cf"
|
|
+ " where t.numero = '" + numeroTessera + "' and t.id_utente = u.id"
|
|
+ " and u.id_categoria = c.id and cf.id_categoria_utenti = c.id";
|
|
|
|
String[] saldoMinimo = Utils.mySelect(querySaldo, "saldi", this).split("\\|");
|
|
Double saldo = 0.0;
|
|
if (saldoMinimo.length > 0 && saldoMinimo[0].length() > 0) {
|
|
saldo = Double.valueOf(saldoMinimo[0].replace(",", "."));
|
|
}
|
|
Double saldoAlert = 0.0;
|
|
if (saldoMinimo.length > 1 && saldoMinimo[1].length() > 0) {
|
|
saldoAlert = Double.valueOf(saldoMinimo[1].replace(",", "."));
|
|
}
|
|
Double saldoStop = 0.0;
|
|
if (saldoMinimo.length > 2 && saldoMinimo[2].length() > 0) {
|
|
saldoStop = Double.valueOf(saldoMinimo[2].replace(",", "."));
|
|
}
|
|
saldoMinimoStop = saldoStop;
|
|
String punti = "";
|
|
if (saldoMinimo.length >= 4) {
|
|
punti = saldoMinimo[3];
|
|
}
|
|
|
|
DecimalFormat df2 = new DecimalFormat("#,###,###,##0.00");
|
|
lblSaldo.setText("€ " + df2.format(saldo));
|
|
|
|
//24-01-2020--------------------------
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
Double t = model.somma(colImporto);
|
|
MyTableModel model2 = (MyTableModel) tblLista1.getModel();
|
|
if (model2.getRowCount() > 0) {
|
|
t = t + model2.somma(1);
|
|
}
|
|
//---------------------------
|
|
lblResiduo.setText("€ " + df2.format(saldo - t));
|
|
lblPunti.setText(punti);
|
|
String tipo = cercaTestoModoPagamento();
|
|
lblTipoPagamento.setText(tipo);
|
|
|
|
//21/12/2016 if (gratuitaResidue <= 0) {<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
//11/06/24 rimozione controllo su gratuita e bonus
|
|
//if (gratuitaResidue <= 0 && (flagBonus == 0 || bonusResidui <= 0)) {
|
|
if ((saldo - calcolaTotale()) <= saldoStop) {
|
|
|
|
//31-10-2019 se lista precaricata e saldo <0 devo chudere
|
|
//if (stoCalcolando == false) {
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("A scalare")) {
|
|
if ((saldo - calcolaTotale()) < 0) {
|
|
JOptionPane.showMessageDialog(this, "Saldo insufficiente!", "Saldo", JOptionPane.OK_OPTION);
|
|
logTessera();
|
|
azzera();
|
|
return true;
|
|
}
|
|
}
|
|
//}
|
|
isSaldoOK = true;
|
|
} else if (saldo <= saldoAlert) {
|
|
JOptionPane.showMessageDialog(this,
|
|
"Saldo ridotto, potrebbero non essere disponibili tutti i prodotti!",
|
|
"Saldo Alert", JOptionPane.ERROR_MESSAGE);
|
|
isSaldoOK = true;
|
|
|
|
} else {
|
|
isSaldoOK = true;
|
|
}
|
|
//}
|
|
return isSaldoOK;
|
|
}
|
|
|
|
private String cercaTestoModoPagamento() {
|
|
String testo = "";
|
|
String[] el = modiPagamento.toString().split("\\|");
|
|
for (String el1 : el) {
|
|
String[] t = el1.split(";");
|
|
if (t[0].equalsIgnoreCase(idModoPagamento.toString())) {
|
|
testo = t[1];
|
|
break;
|
|
}
|
|
}
|
|
return testo;
|
|
}
|
|
|
|
private void setModoPagamento(String Modo) {
|
|
|
|
String[] el = modiPagamento.toString().split("\\|");
|
|
for (String el1 : el) {
|
|
String[] t = el1.split(";");
|
|
if (t[1].equalsIgnoreCase(Modo)) {
|
|
idModoPagamento = Long.valueOf(t[0]);
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private String setModoPagamento(Integer Tipo) {
|
|
String testo = "";
|
|
if (modiPagamento.toString().length() > 5) {
|
|
String[] el = modiPagamento.toString().split("\\|");
|
|
int i = Tipo;
|
|
String[] t = el[i].split(";");
|
|
testo = t[1];
|
|
idModoPagamento = Long.valueOf(Tipo.toString());
|
|
lblResiduo.setText("[...]");
|
|
lblSaldo.setText("[...]");
|
|
|
|
}
|
|
return testo;
|
|
}
|
|
|
|
private void pulsantiModoPagamento() {
|
|
switch (Integer.parseInt(idModoPagamento.toString())) {
|
|
case 0 -> {
|
|
jTBP0.setEnabled(true);
|
|
jTBP0.setSelected(true);
|
|
jTBP0ActionPerformed(null);
|
|
if (flagImpostaTipoPagamento) {
|
|
jTBP1.setEnabled(false);
|
|
jTBP2.setEnabled(false);
|
|
jTBP3.setEnabled(false);
|
|
}
|
|
}
|
|
case 1 -> {
|
|
jTBP1.setEnabled(true);
|
|
jTBP1.setSelected(true);
|
|
jTBP1ActionPerformed(null);
|
|
if (flagImpostaTipoPagamento) {
|
|
jTBP0.setEnabled(false);
|
|
jTBP2.setEnabled(false);
|
|
jTBP3.setEnabled(false);
|
|
}
|
|
}
|
|
case 2 -> {
|
|
jTBP2.setEnabled(true);
|
|
jTBP2.setSelected(true);
|
|
jTBP2ActionPerformed(null);
|
|
if (flagImpostaTipoPagamento) {
|
|
jTBP1.setEnabled(false);
|
|
jTBP0.setEnabled(false);
|
|
jTBP3.setEnabled(false);
|
|
}
|
|
}
|
|
case 3 -> {
|
|
jTBP3.setEnabled(true);
|
|
jTBP3.setSelected(true);
|
|
jTBP3ActionPerformed(null);
|
|
if (flagImpostaTipoPagamento) {
|
|
jTBP1.setEnabled(false);
|
|
jTBP2.setEnabled(false);
|
|
jTBP0.setEnabled(false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private void chiudi() {
|
|
|
|
//04-02-2019---------------------------------------------
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
if (model.getRowCount() > 0) {
|
|
String numTessera = jTxtTessera.getText();
|
|
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("A scalare")) {
|
|
|
|
String querySaldo = "select t.saldo || '|' || cf.saldo_minimo_alert || '|' || cf.saldo_minimo_stop || '|' || t.punti || '|' as saldi "
|
|
+ " from tessere t, utenti u, categorie_utenti c, categorie_utenti_fasce cf"
|
|
+ " where t.numero = '" + numTessera + "' and t.id_utente = u.id"
|
|
+ " and u.id_categoria = c.id and cf.id_categoria_utenti = c.id";
|
|
|
|
String[] saldoMinimo = Utils.mySelect(querySaldo, "saldi",this).split("\\|");
|
|
Double saldo = 0.0;
|
|
String residuo = lblResiduo.getText().trim().replace("€", "");
|
|
if (residuo.equalsIgnoreCase("[...]")) {
|
|
residuo = "0";
|
|
}
|
|
residuo = residuo.replace(".", "");
|
|
residuo = residuo.replace(",", ".");
|
|
saldo = Double.valueOf(residuo);
|
|
|
|
Double saldoAlert = 0.0;
|
|
if (saldoMinimo.length > 1 && saldoMinimo[1].length() > 0) {
|
|
saldoAlert = Double.valueOf(saldoMinimo[1].replace(",", "."));
|
|
}
|
|
|
|
if (gratuitaResidue <= 0 && (flagBonus == 0 || bonusResidui <= 0)) {
|
|
if (saldo <= saldoAlert) {
|
|
if (consentiCredito == true) {
|
|
if (messaggioSaldoUnaVolta == false) {
|
|
if (JOptionPane.showConfirmDialog(null, "Saldo insufficiente. Vuoi autorizzare comunque la transazione?",
|
|
"Saldo", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
|
|
messaggioSaldoUnaVolta = true;
|
|
} else {
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//--------------------------------------------------------
|
|
} else {
|
|
|
|
//Pagamento non a Scalare
|
|
String querySaldo = "select t.saldo "
|
|
+ " from tessere t, utenti u, categorie_utenti c, categorie_utenti_fasce cf"
|
|
+ " where t.numero = '" + numTessera + "' and t.id_utente = u.id"
|
|
+ " and u.id_categoria = c.id and cf.id_categoria_utenti = c.id";
|
|
|
|
Double saldo = Double.valueOf(Utils.mySelect(querySaldo, "saldo", this));
|
|
Double costoPasto = Double.valueOf(txtTotaleCassa.getText().replace("€", "").trim().replace(",", "."));
|
|
if (saldo > costoPasto) {
|
|
Object[] options = {"A Scalare", "Contanti"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this,
|
|
"Attenzione, c'è saldo sufficiente sulla tessera,\nscegli la modalità di pagamento da utilizzare", "Modalità Pagamento",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, null);
|
|
if (Integer.parseInt(selectedValue.toString()) == 0) {
|
|
jTBP0.setSelected(true);
|
|
jTBP0ActionPerformed(null);
|
|
|
|
} else {
|
|
jTBP1.setSelected(true);
|
|
jTBP1ActionPerformed(null);
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
Boolean spiaProgressivo = false;
|
|
//Date adesso = new Date();
|
|
LocalDateTime adesso = LocalDateTime.now();
|
|
String flagPassaggioTessera = "0";
|
|
if (passaggioTessera) {
|
|
flagPassaggioTessera = "1";
|
|
}
|
|
|
|
String tessera = idTessera.toString();
|
|
String flagAsporto = "0";
|
|
if (jBtnAsporto.isSelected()) {
|
|
flagAsporto = "1";
|
|
}
|
|
|
|
//09-05-2019
|
|
String composizione = Utils.spaziBianchi("", 20, false);
|
|
MyTableModel model2 = (MyTableModel) tblLista1.getModel();
|
|
for (int i = 0; i < model2.getRowCount(); i++) {
|
|
String completo = model2.getValueAt(i, 0).toString();
|
|
String pasto = "";
|
|
if (completo.length() > 0) {
|
|
String TT[] = completo.split("]", -1);
|
|
if (TT.length > 0) {
|
|
pasto = "Pasto:" + TT[0].replace("[", "");
|
|
}
|
|
}
|
|
composizione = Utils.spaziBianchi(pasto, 10, true);
|
|
break;
|
|
}
|
|
|
|
//controllo passaggi
|
|
if (model.getRowCount() > 0) {
|
|
String controlloPassaggi = "SELECT count(*) as passaggi FROM st_acquisti st "
|
|
+ "INNER JOIN prodotti pr ON st.id_prodotto = pr.id "
|
|
+ "WHERE pr.id_categoria = 0 "
|
|
+ "AND trunc(st.data) = trunc(sysdate) "
|
|
+ "AND st.id_tessera = " + idTessera
|
|
+ " AND st.id_turno=" + idTurno;
|
|
Long abilitatoPassaggi = Utils.mySelectInteger(controlloPassaggi, "passaggi",
|
|
this);
|
|
if (abilitatoPassaggi > 0) {
|
|
abilitatoPassaggi = abilitatoPassaggi + 1;
|
|
if (JOptionPane.showConfirmDialog(null,
|
|
"Sei sicuro di voler registrare il passaggio n° " + abilitatoPassaggi + " sulla tessera " + jTxtTessera.getText() + "?",
|
|
"Secondo Passaggio", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
|
|
azzera();
|
|
aggiornaLabelInfo();
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (idTessera > 0L) {
|
|
StringBuilder elencoIdProdotti = new StringBuilder();
|
|
for (int i = model.getRowCount() - 1; i >= 0; i--) {
|
|
Long idCateg = Long.valueOf(model.getValueAt(i, colCategoria).toString());
|
|
if (idCateg != 0L) {
|
|
//04/03/2022 non e possibile acquistare prodotti che non siano partedi una composizione
|
|
String vassoio = "1";
|
|
Utils.myInsert("Insert into Acquisti "
|
|
+ "(id,id_Tessera,id_Prodotto,id_Punto_Cassa,Data,Importo,Punti,"
|
|
+ "Num_Progressivo,id_Tipo_Pagamento,flag_in_vassoio,id_Turno,flag_asporto,flag_passaggio_tessera)"
|
|
+ "values(-1," + tessera + "," + model.getValueAt(i, colIDProdotto) + ","
|
|
//+ idPuntoCassa + "," + formattaDataOra(adesso) + ","
|
|
+ idPuntoCassa + "," + formatLocalDateTime(adesso) + ","
|
|
+ model.getValueAt(i, colImporto) + "," + model.getValueAt(i, colPunti) + ","
|
|
+ progressivo + "," + idModoPagamento + "," + vassoio + "," + idTurno + ","
|
|
+ flagAsporto + "," + flagPassaggioTessera + ")",
|
|
this);
|
|
|
|
aggiornaProgressivoPagamentiTurno(Double.valueOf(model.getValueAt(i, colImporto).toString()));
|
|
elencoIdProdotti.append(model.getValueAt(i, colIDProdotto));
|
|
elencoIdProdotti.append(",");
|
|
}
|
|
model.deleteRow(i);
|
|
spiaProgressivo = true;
|
|
}
|
|
|
|
for (int i = model2.getRowCount() - 1; i >= 0; i--) {
|
|
String flagGratuita = "0";
|
|
String flagBonus = "0";
|
|
if (gratuitaResidue > 0) {// && gratuitaResidue>Gratuita_ResidueProg){
|
|
flagGratuita = "1";
|
|
} else if (bonusResidui > 0) {
|
|
flagBonus = "1";
|
|
}
|
|
|
|
Utils.myInsert("Insert into Acquisti "
|
|
+ "(id,id_Tessera,id_Prodotto,id_Punto_Cassa,Data,Importo,Punti,Num_Progressivo,id_Tipo_Pagamento,"
|
|
+ "id_Turno,flag_gratuita,flag_bonus,flag_asporto,flag_passaggio_tessera)"
|
|
+ "values(-1," + tessera + "," + model2.getValueAt(i, 2) + "," + idPuntoCassa + "," +
|
|
//formattaDataOra(adesso) + "," + model2.getValueAt(i, 1) + ",0," + progressivo + "," +
|
|
formatLocalDateTime(adesso) + "," + model2.getValueAt(i, 1) + ",0," + progressivo + "," +
|
|
idModoPagamento + "," + idTurno + "," + flagGratuita + "," + flagBonus + "," +
|
|
flagAsporto + "," + flagPassaggioTessera + ")",
|
|
this);
|
|
aggiornaProgressivoPagamentiTurno(Double.valueOf(model2.getValueAt(i, 1).toString()));
|
|
model2.deleteRow(i);
|
|
spiaProgressivo = true;
|
|
}
|
|
|
|
} else {
|
|
StringBuilder elencoIdProdotti = new StringBuilder();
|
|
for (int i = model.getRowCount() - 1; i >= 0; i--) {
|
|
Long idCateg = Long.valueOf(model.getValueAt(i, colCategoria).toString());
|
|
if (idCateg != 0L) {
|
|
//04/03/2022 non e possibile acquistare prodotti che non siano partedi una composizione
|
|
String vassoio = "1";
|
|
Utils.myInsert("Insert into Acquisti (id,id_Prodotto,id_Punto_Cassa,Data,Importo,Punti,Num_Progressivo,id_Tipo_Pagamento,"
|
|
+ "flag_in_vassoio,id_Turno,flag_asporto,flag_passaggio_tessera)values(-1,"
|
|
//+ model.getValueAt(i, colIDProdotto) + "," + idPuntoCassa + "," + formattaDataOra(adesso) + ","
|
|
+ model.getValueAt(i, colIDProdotto) + "," + idPuntoCassa + "," + formatLocalDateTime(adesso) + ","
|
|
+ model.getValueAt(i, colImporto) + "," + model.getValueAt(i, colPunti)
|
|
+ "," + progressivo + "," + idModoPagamento + "," + vassoio + "," + idTurno + ","
|
|
+ flagAsporto + "," + flagPassaggioTessera + ")",
|
|
this);
|
|
|
|
aggiornaProgressivoPagamentiTurno(Double.valueOf(model.getValueAt(i, colImporto).toString()));
|
|
|
|
elencoIdProdotti.append(model.getValueAt(i, colIDProdotto));
|
|
elencoIdProdotti.append(",");
|
|
}
|
|
model.deleteRow(i);
|
|
spiaProgressivo = true;
|
|
|
|
}
|
|
|
|
for (int i = model2.getRowCount() - 1; i >= 0; i--) {
|
|
String flagGratuita = "0";
|
|
String flagBonusPerInsert = "0";
|
|
if (gratuitaResidue > 0) {// && gratuitaResidue>Gratuita_ResidueProg){
|
|
flagGratuita = "1";
|
|
} else if (flagBonus == 1 && bonusResidui > 0) {
|
|
flagBonusPerInsert = "1";
|
|
}
|
|
|
|
Utils.myInsert("Insert into Acquisti (id,id_Prodotto,id_Punto_Cassa,Data,Importo,Punti,Num_Progressivo,id_Tipo_Pagamento,"
|
|
+ "id_Turno,flag_gratuita,flag_bonus,flag_asporto,flag_passaggio_tessera)values(-1,"
|
|
//+ model2.getValueAt(i, 2) + "," + idPuntoCassa + "," + formattaDataOra(adesso) + ","
|
|
+ model2.getValueAt(i, 2) + "," + idPuntoCassa + "," + formatLocalDateTime(adesso) + ","
|
|
+ model2.getValueAt(i, 1) + ",0," + progressivo + "," + idModoPagamento + "," + idTurno
|
|
+ "," + flagGratuita + "," + flagBonusPerInsert + "," + flagAsporto + "," + flagPassaggioTessera + ")",
|
|
this);
|
|
aggiornaProgressivoPagamentiTurno(Double.valueOf(model2.getValueAt(i, 1).toString()));
|
|
model2.deleteRow(i);
|
|
spiaProgressivo = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//aggiorno progressivi-------------
|
|
if (spiaProgressivo) {
|
|
progressivo++;
|
|
progressivoGiorno++;
|
|
progressivoTurno++;
|
|
Utils.myInsert("Update Progressivi set Prog_assoluto=" + progressivo + ",prog_giorno=" + progressivoGiorno
|
|
+ ",prog_Turno=" + progressivoTurno + ",incasso_turno_contanti=" + progressivoContanti
|
|
+ ",incasso_turno_ticket=" + progressivoTicket + ",incasso_turno_scalare=" + progressivoScalare
|
|
+ ",incasso_turno_differito=" + progressivoDifferito
|
|
//+ " where id_Punto_cassa=" + idPuntoCassa + " and id_turno=" + idTurno + " and data=" + formattaData(adesso));
|
|
+ " where id_Punto_cassa=" + idPuntoCassa + " and id_turno=" + idTurno + " and data=" + formatLocalDateTime(adesso),
|
|
this);
|
|
|
|
}
|
|
|
|
String residuo = lblResiduo.getText().replace("€", "").trim();
|
|
if (residuo.equalsIgnoreCase("[...]")) {
|
|
residuo = "0";
|
|
}
|
|
if (residuo.length() > 6) {
|
|
residuo = residuo.substring(0, 5);
|
|
} else {
|
|
residuo = Utils.spaziBianchi(residuo, 6, false);
|
|
}
|
|
|
|
//Aggiornamento 12-04-2019
|
|
Integer bonus = 0;
|
|
if (flagBonus == 1 && bonusResidui > 0) {
|
|
bonus = bonusResidui--;
|
|
|
|
}
|
|
composizione = Utils.spaziBianchi(composizione + "Bonus:" + bonus, 20, true);
|
|
String Riga2 = "Saldo " + residuo;
|
|
display(composizione + Riga2, null);
|
|
|
|
timerDisplay.schedule(new TimerTask() {
|
|
|
|
@Override
|
|
public void run() {
|
|
|
|
statoAttivoLoggato();
|
|
|
|
}
|
|
}, 8000);
|
|
|
|
azzera();
|
|
aggiornaLabelInfo();
|
|
|
|
}
|
|
|
|
private boolean controllaDiscrepanzePrenotazioni(String elencoIdProdotto) {
|
|
boolean ok = true;
|
|
if (elencoIdProdotto.length() > 0) {
|
|
elencoIdProdotto = elencoIdProdotto.substring(0, elencoIdProdotto.length() - 1);
|
|
String[] el = elencoIdProdotto.split(",");
|
|
String query = "SELECT count(*) as nr FROM VIEW_PRENOTAZIONI_TURNO "
|
|
+ "WHERE id_Modalita in (2,3) "
|
|
+ "and id_stato in (0,1) "
|
|
+ "AND id_turno =" + idTurnoAttuale
|
|
+ " AND id_tessera = " + idTessera
|
|
+ " and id_Prenotazione=" + idPrenotazione;
|
|
int rowCount = Integer.parseInt(Utils.mySelect(query, "nr", this));
|
|
if (rowCount > 0) {
|
|
if (rowCount == el.length) {
|
|
query = "SELECT count(*) as nr FROM VIEW_PRENOTAZIONI_TURNO "
|
|
+ "WHERE id_Modalita in (2,3) "
|
|
+ "and id_stato in (0,1) "
|
|
+ "AND id_turno =" + idTurnoAttuale
|
|
+ " AND id_tessera = " + idTessera
|
|
+ " AND id_Prodotto in (" + elencoIdProdotto + ") "
|
|
+ "and id_Prenotazione=" + idPrenotazione;
|
|
rowCount = Integer.parseInt(Utils.mySelect(query, "nr", this));
|
|
if (rowCount == el.length) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
Object[] options = {"Si", "No"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this,
|
|
"I prodotti selezionati sono diversi dai prenotati!\nVuoi proseguire?", "Prenotazione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, options, null);
|
|
if (Integer.parseInt(selectedValue.toString()) == 1) {
|
|
azzeraDopoStorno();
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return ok;
|
|
}
|
|
|
|
private void aggiornaPrenotazioni(String elencoIdProdotto) {
|
|
try {
|
|
if (elencoIdProdotto.length() > 0) {
|
|
String query = "SELECT id FROM VIEW_PRENOTAZIONI_TURNO "
|
|
+ "WHERE id_Modalita in (2,3) "
|
|
+ "and id_stato in (0,1) "
|
|
+ "AND id_turno =" + idTurnoAttuale
|
|
+ " AND id_tessera = " + idTessera
|
|
+ " and id_Prenotazione=" + idPrenotazione;
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
Statement st = dbConnection.createStatement();
|
|
ResultSet rs = st.executeQuery(query);
|
|
while (rs.next()) {
|
|
Utils.myInsert("Update PRENOTAZIONI_PASTI set id_Stato=2 where id=" + rs.getString("id"),
|
|
this);
|
|
}
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
}
|
|
} catch (SQLException | NumberFormatException e) {
|
|
System.err.println(e.getClass().getName() + ": " + e.getMessage());
|
|
}
|
|
|
|
}
|
|
|
|
private void aggiornaProgressivoPagamentiTurno(Double importo) {
|
|
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("A scalare")) {
|
|
progressivoScalare = progressivoScalare + importo;
|
|
}
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("Contanti")) {
|
|
progressivoContanti = progressivoContanti + importo;
|
|
}
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("Ticket")) {
|
|
progressivoTicket = progressivoTicket + importo;
|
|
}
|
|
if (cercaTestoModoPagamento().equalsIgnoreCase("Differito")) {
|
|
progressivoDifferito = progressivoDifferito + importo;
|
|
}
|
|
|
|
}
|
|
|
|
private void azzera() {
|
|
try {
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
MyTableModel model1 = (MyTableModel) tblLista1.getModel();
|
|
/*clearTable(model);
|
|
clearTable(model1);*/
|
|
model.clearTable();
|
|
model1.clearTable();
|
|
} catch (Exception e) {
|
|
}
|
|
messaggioSaldoUnaVolta = false;
|
|
idTessera = 0L;
|
|
idPrenotazione = 0L;
|
|
idProfiloTariffario = 0L;
|
|
setModoPagamento(modoPagamentoDefault);
|
|
isCassaAperta = false;
|
|
txtTotaleCassa.setText("€ 0,00");
|
|
txtTotalePunti.setText("Punti 0");
|
|
|
|
pnlCategorie.setVisible(false);
|
|
pnlProdotti.setVisible(false);
|
|
if (flagPrecaricaLista == false) {
|
|
abilitaPulsanti(pnlCategorie, false, false);
|
|
abilitaPulsanti(pnlProdotti, false, false);
|
|
}
|
|
pnlCategorie.setVisible(true);
|
|
pnlProdotti.setVisible(true);
|
|
|
|
bonusResidui = 0;
|
|
jTxtTessera.setText("");
|
|
pnlProdotti.removeAll();
|
|
pnlProdotti.repaint();
|
|
lblCategoria.setText("");
|
|
lblCognome.setText("");
|
|
lblNome.setText("");
|
|
lblNascita.setText("");
|
|
lblScadTessera.setText("");
|
|
lblAzienda.setText("");
|
|
lblConvenzione.setText("");
|
|
lblFascia.setText("");
|
|
jBtnStorno.setEnabled(false);
|
|
jBtnAsporto.setEnabled(false);
|
|
|
|
jbtnSu.setEnabled(false);
|
|
jbtnGiu.setEnabled(false);
|
|
jbtnElimina.setEnabled(false);
|
|
jbtnAnnulla.setEnabled(false);
|
|
jbtnDuplica.setEnabled(false);
|
|
|
|
lblSaldo.setText("[...]");
|
|
lblPunti.setText("[...]");
|
|
lblTipoPagamento.setText("[...]");
|
|
testoRFIDCard = new StringBuilder();
|
|
testoSwipCard = new StringBuilder();
|
|
statoCardLettore = false;
|
|
if (btnImpostaCliente.isVisible()) {
|
|
btnImpostaCliente.setEnabled(bottoneImposta);
|
|
}
|
|
jBtnBuoni.setEnabled(true);
|
|
lblResiduo.setText("[...]");
|
|
lblGratuita.setText("[...]");
|
|
jBtnAsporto.setSelected(false);
|
|
jBtnAsportoActionPerformed(null);
|
|
passaggioTessera = false;
|
|
passaggiEsauritiNoComposizione = false;
|
|
saldoMinimoStop = 0.0;
|
|
MyApplication myApp = new MyApplication();
|
|
myApp.unaVolta = false;
|
|
gratuitaResidue = 0;
|
|
|
|
//9-5-18<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
|
if (flagPrecaricaLista) {
|
|
apriCassaDefault();
|
|
}
|
|
|
|
}
|
|
|
|
public void apriCassaDefault() {
|
|
lblCategoria.setText("");
|
|
lblCognome.setText("");
|
|
lblNome.setText("");
|
|
lblNascita.setText("");
|
|
lblScadTessera.setText("");
|
|
lblAzienda.setText("");
|
|
lblConvenzione.setText("");
|
|
lblFascia.setText("");
|
|
|
|
if (isCassaAperta == false) {
|
|
|
|
turnoAttuale();
|
|
if ((idTurnoAttuale - idTurno) != 0) {
|
|
|
|
progressivoTurno = 1L;
|
|
progressivoContanti = 0.00;
|
|
progressivoScalare = 0.00;
|
|
progressivoTicket = 0.00;
|
|
progressivoDifferito = 0.00;
|
|
if (nomeTurnoAttuale.equalsIgnoreCase("Pranzo")) {
|
|
progressivoGiorno = 1L;
|
|
}
|
|
idTurno = idTurnoAttuale;
|
|
nomeTurno = nomeTurnoAttuale;
|
|
|
|
Date adesso = new Date();
|
|
String controlloTurno = Utils.mySelect("select count(*) as Prog from Progressivi "
|
|
+ "where id_Punto_cassa=" + idPuntoCassa
|
|
+ " and data=" + formattaData(adesso)
|
|
+ " and id_Turno=" + idTurno, "Prog",
|
|
this);
|
|
if (Long.parseLong(controlloTurno) <= 0) {
|
|
Utils.myInsert("Insert into Progressivi (data,id_Punto_cassa,id_Turno,prog_assoluto,prog_giorno,prog_turno) "
|
|
+ " values (" + formattaData(adesso) + "," + idPuntoCassa + "," + idTurno + ","
|
|
+ progressivo + "," + progressivoGiorno + ",0)",
|
|
this);
|
|
}
|
|
|
|
aggiornaLabelInfo();
|
|
}
|
|
|
|
isCassaAperta = true;
|
|
idProfiloTariffario = idProfiloTariffarioDefault;//0L
|
|
|
|
setModoPagamento(modoPagamentoDefault);
|
|
|
|
this.caricaPannello();
|
|
abilitaPulsanti(pnlCategorie, true, true);
|
|
jbtnChiudi.setEnabled(false);
|
|
}
|
|
}
|
|
|
|
public void cercaTessera() {//String QueryCF) {
|
|
MyApplication myApp = new MyApplication();
|
|
myApp.unaVolta = false;
|
|
setModoPagamento(modoPagamentoDefault);
|
|
String numeroTessera = jTxtTessera.getText();
|
|
String query = "SELECT DISTINCT c.nome || '|' || u.cognome || '|' || u.nome || '|' || "
|
|
+ "TO_CHAR (u.data_di_nascita, 'dd/mm/yyyy') || '|' || u.matricola || '|' || a.nome || '|' "
|
|
+ "|| c.nome || '|' || f.nome || '|' || t.ID || '|' || "
|
|
+ "TO_CHAR (t.data_scadenza, 'dd/mm/yyyy') || '|' || t.id_stato || '|' || u.ID || '|' || f.ID || '|' "
|
|
+ "|| t.gratuita_residue || '|' || t.bonus_residui AS ris "
|
|
+ " FROM categorie_utenti c, tessere t, utenti u, categorie_utenti_fasce cf, fasce f, aziende a "
|
|
+ "WHERE t.id_utente = u.ID "
|
|
+ "AND u.id_categoria = c.ID "
|
|
+ "AND c.id_azienda = a.ID "
|
|
+ "AND cf.id_categoria_utenti = c.ID "
|
|
+ "AND cf.id_fascia = f.ID "
|
|
+ "AND t.numero = '" + numeroTessera + "'";
|
|
|
|
String res = Utils.mySelect(query, "ris", this);
|
|
|
|
if (res.length() > 0) {
|
|
String dati[] = res.split("\\|", -1);
|
|
|
|
Date now = new Date();
|
|
|
|
Date scadenza = new Date();
|
|
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
|
|
|
|
idProfiloTariffario = Long.valueOf(dati[12]);
|
|
if (idProfiloTariffario.equals(idProfiloTariffarioDefault)) {
|
|
JOptionPane.showOptionDialog(this, "Impostato Profilo Tariffario di default!", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null);
|
|
}
|
|
Integer idStato = Integer.valueOf(dati[10]);
|
|
idTessera = Long.valueOf(dati[8]);
|
|
logIDTessera = idTessera.toString();
|
|
|
|
logTessera();
|
|
|
|
try {
|
|
// controllo abilitazione tessera
|
|
String controlloPunto = "Select controlla_abilitazione('" + numeroTessera + "'," + idPuntoCassa + ") as T from dual";
|
|
Long abilitato = Utils.mySelectInteger(controlloPunto, "T", this);
|
|
if (abilitato == 0) {
|
|
Object[] options = {"Si", "No"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this, "Tessera non abilitata per questo punto di distribuzione!\nConsenti passaggio?", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
|
|
if (Integer.parseInt(selectedValue.toString()) != 0) {
|
|
return;
|
|
} else {
|
|
Utils.myInsert("Insert into Forzature (id,id_account,id_Punto_Cassa,id_Tessera,id_Tipo_Forzatura) values (-1,"
|
|
+ idAccount + "," + idPuntoCassa + "," + idTessera + ",1)",
|
|
this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//controllo passaggi
|
|
String controlloPassaggi = "Select controlla_passaggi('" + numeroTessera + "'," + idPuntoCassa + ") as T from dual";
|
|
Long abilitatoPassaggi = Utils.mySelectInteger(controlloPassaggi, "T", this);
|
|
|
|
if (abilitatoPassaggi == 0L) {
|
|
//05/09/2022
|
|
String queryPassaggi = "select count(*) as NRec from st_acquisti a inner join prodotti p on a.id_prodotto=p.id inner join Tipi_Pagamenti tp on a.id_tipo_pagamento=tp.id where TRUNC(data) = TRUNC(SYSDATE) and id_tessera=" + idTessera + " and flag_in_vassoio=0 and id_punto_cassa=" + idPuntoCassa;
|
|
Long numeroPassaggi = Utils.mySelectInteger(queryPassaggi, "NRec", this);
|
|
//fine----
|
|
if (flagEsegueStorni && numeroPassaggi > 0) {
|
|
Object[] options = {"Si", "No"};
|
|
Object selectedValue = JOptionPane.showOptionDialog(this, "N° passaggi giornalieri esauriti. Non è possibile usufruire del pasto!\nSi desidera effettuare uno storno per un pasto erroneamente addebitato?", "Attenzione",
|
|
JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[1]);
|
|
if (Integer.parseInt(selectedValue.toString()) == 0) {
|
|
apriStorno(true);
|
|
} else {
|
|
azzeraDopoStorno();
|
|
return;
|
|
|
|
}
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "N° passaggi giornalieri esauriti. Non è possibile usufruire del pasto!");
|
|
azzeraDopoStorno();
|
|
return;
|
|
}
|
|
}
|
|
|
|
//aggiungo un giorno altrimenti in caso di scadenza nello stesso giorno
|
|
//considera le ore
|
|
scadenza = formatter.parse(dati[9]);
|
|
Calendar c = Calendar.getInstance();
|
|
c.setTime(scadenza);
|
|
c.add(Calendar.DATE, 1);
|
|
scadenza = c.getTime();
|
|
|
|
if (scadenza.after(now) && idStato != 2) {
|
|
|
|
String modoPagamento = cercaTestoModoPagamento();
|
|
lblCategoria.setText(dati[0]);
|
|
lblCognome.setText(dati[1]);
|
|
lblNome.setText(dati[2]);
|
|
|
|
if (flagMostraDataDiNascita) {
|
|
lblNascita.setText(dati[3]);
|
|
}
|
|
|
|
lblAzienda.setText(dati[5]);
|
|
lblConvenzione.setText(dati[6]);
|
|
lblFascia.setText(dati[7]);
|
|
jBtnStorno.setEnabled(flagEsegueStorni);
|
|
|
|
jBtnAsporto.setEnabled(true);
|
|
jbtnChiudi.setEnabled(true);
|
|
|
|
if (btnImpostaCliente.isVisible()) {
|
|
btnImpostaCliente.setEnabled(false);
|
|
jBtnBuoni.setEnabled(false);
|
|
}
|
|
if (flagPrecaricaLista == false) {
|
|
isCassaAperta = true;
|
|
abilitaPulsanti(pnlCategorie, true, true);
|
|
abilitaPulsanti(pnlProdotti, true, true);
|
|
}
|
|
if (dati.length > 13) {
|
|
if (dati[13].length() > 0) {
|
|
gratuitaResidue = Integer.parseInt(dati[13]);
|
|
}
|
|
lblGratuita.setText(dati[13]);
|
|
}
|
|
|
|
bonusResidui = 0;
|
|
if (dati.length > 14) {
|
|
if (dati[14].length() > 0) {
|
|
bonusResidui = Integer.parseInt(dati[14]);
|
|
}
|
|
}
|
|
|
|
lblScadTessera.setText("" + bonusResidui);
|
|
|
|
if (modoPagamento.equalsIgnoreCase("A scalare")) {
|
|
//modifica 09-11-18
|
|
if (calcolaTotale() > 0.00 && flagPrecaricaLista == false) {
|
|
verificaSaldo(numeroTessera);
|
|
}
|
|
//fine modifica
|
|
|
|
} else {
|
|
//MyApplication myApplication = new MyApplication();
|
|
//String punti = myApplication.mySelect(this, "Select Punti from Tessere where numero='" + numeroTessera + "'", "Punti");
|
|
String punti = Utils.mySelect("Select Punti from Tessere where numero='" + numeroTessera + "'", "Punti",
|
|
this);
|
|
lblPunti.setText(punti);
|
|
String tipo = cercaTestoModoPagamento();
|
|
lblTipoPagamento.setText(tipo);
|
|
|
|
}
|
|
|
|
//statoTesseraLetta(gratuitaResidue, bonusResidui);
|
|
|
|
//28-09-2016 quando c'è una sola categoria faccio click
|
|
if (numeroCategorie == 1) {
|
|
Component[] components = pnlCategorie.getComponents();
|
|
JToggleButton bt = (JToggleButton) components[0];
|
|
|
|
}
|
|
|
|
//FlagDefaultAsporto
|
|
if (asporto) {
|
|
jBtnAsporto.setSelected(true);
|
|
jBtnAsportoActionPerformed(null);
|
|
}
|
|
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
if (flagPrecaricaLista) {
|
|
forzaPrezzi(model);
|
|
}
|
|
|
|
controllaCompleti(model);
|
|
controllaExtra(model);
|
|
sommaColonne(model);
|
|
//modifica 09-11-18
|
|
if (modoPagamento.equalsIgnoreCase("A scalare")) {
|
|
if (calcolaTotale() > 0.00 && flagPrecaricaLista) {
|
|
verificaSaldo(numeroTessera);
|
|
}
|
|
}
|
|
//fine modifica
|
|
//05-06-2020
|
|
if (abilitatoPassaggi != 0L) {
|
|
controllaPrenotazioni();
|
|
}
|
|
|
|
stoCalcolando = true;
|
|
pulsantiModoPagamento();
|
|
stoCalcolando = false;
|
|
this.caricaPannello();
|
|
abilitaPulsanti(pnlCategorie, true, true);
|
|
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Tessera Scaduta o Disabilitata!");
|
|
logTessera();
|
|
azzera();
|
|
|
|
}
|
|
} catch (ParseException e) {
|
|
logTesseraErrore = e.getMessage();
|
|
logTessera();
|
|
azzera();
|
|
|
|
}
|
|
} else {
|
|
|
|
JOptionPane.showMessageDialog(this, "Errore in lettura della tessera!");
|
|
logTessera();
|
|
azzera();
|
|
}
|
|
|
|
}
|
|
|
|
private void controllaPrenotazioni() {
|
|
try {
|
|
|
|
String query = "SELECT * FROM (SELECT id_Prenotazione as nr FROM VIEW_PRENOTAZIONI_TURNO "
|
|
+ "WHERE id_modalita in (2,3) "
|
|
+ "AND id_stato IN (0,1) "
|
|
+ "AND id_turno = " + idTurnoAttuale + " "
|
|
+ "AND id_tessera = " + idTessera + " "
|
|
+ "order by id_prenotazione) "
|
|
+ "where rownum = 1";
|
|
String idP = Utils.mySelect(query, "nr", this);
|
|
if (idP.length() > 0) {
|
|
Long rowCount = Long.valueOf(idP);
|
|
idPrenotazione = rowCount;
|
|
if (rowCount > 0L) {
|
|
query = "SELECT Distinct Nome FROM VIEW_PRENOTAZIONI_TURNO v join prodotti p on v.ID_PRODOTTO=p.ID "
|
|
+ "WHERE id_Modalita in (2,3) "
|
|
+ "and id_stato in (0,1) "
|
|
+ "AND id_turno =" + idTurnoAttuale
|
|
+ " AND id_tessera = " + idTessera
|
|
+ " and id_prenotazione=" + idPrenotazione
|
|
+ " order by Nome";
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
Statement st = dbConnection.createStatement();
|
|
ResultSet rs = st.executeQuery(query);
|
|
StringBuilder s = new StringBuilder("");
|
|
while (rs.next()) {
|
|
s.append(rs.getString("Nome"));
|
|
s.append("\n");
|
|
}
|
|
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
if (JOptionPane.showConfirmDialog(null, "Prenotazione presente:\n" + s.toString() + "Inserisco i prodotti?", "Prenotazione", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
|
|
inserisciPrenotazioni();
|
|
}
|
|
|
|
}
|
|
}
|
|
} catch (SQLException | NumberFormatException e) {
|
|
System.err.println(e.getClass().getName() + ": " + e.getMessage());
|
|
} finally {
|
|
|
|
}
|
|
}
|
|
|
|
private void inserisciPrenotazioni() {
|
|
try {
|
|
|
|
MyTableModel model = (MyTableModel) tblLista.getModel();
|
|
MyTableModel model1 = (MyTableModel) tblLista1.getModel();
|
|
/*clearTable(model);
|
|
clearTable(model1);*/
|
|
model.clearTable();
|
|
model1.clearTable();
|
|
sommaColonne(model);
|
|
|
|
String query = "SELECT * FROM VIEW_PRENOTAZIONI_TURNO "
|
|
+ "WHERE id_Modalita in (2,3) "
|
|
+ "and id_stato in (0,1) "
|
|
+ "AND id_turno =" + idTurnoAttuale
|
|
+ " AND id_tessera = " + idTessera
|
|
+ " and id_prenotazione=" + idPrenotazione;
|
|
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
Statement st = dbConnection.createStatement();
|
|
ResultSet rs = st.executeQuery(query);
|
|
|
|
while (rs.next()) {
|
|
|
|
java.awt.event.ActionEvent evt;
|
|
evt = new java.awt.event.ActionEvent(new Object(), 0, "PRODOTTO[" + rs.getString("ID_PRODOTTO") + "]");
|
|
actionPerformed(evt);
|
|
|
|
}
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (SQLException | NumberFormatException e) {
|
|
System.err.println(e.getClass().getName() + ": " + e.getMessage());
|
|
} finally {
|
|
|
|
}
|
|
}
|
|
|
|
public void azzeraDopoStorno() {
|
|
|
|
annulla();
|
|
timerDisplay.schedule(new TimerTask() {
|
|
|
|
@Override
|
|
public void run() {
|
|
azzera();
|
|
aggiornaProgressivi();
|
|
|
|
}
|
|
}, 500);
|
|
|
|
passaggiEsauritiNoComposizione = true;
|
|
}
|
|
|
|
private Double calcolaTotale() {
|
|
Double totAcquisto = 0.00;
|
|
if (txtTotaleCassa.getText().length() > 0) {
|
|
String saldo = txtTotaleCassa.getText().replace("€ ", "").replace(".", "");
|
|
saldo = saldo.replace(",", ".");
|
|
totAcquisto = Double.valueOf(saldo);
|
|
}
|
|
return totAcquisto;
|
|
}
|
|
|
|
private void forzaPrezzi(MyTableModel model) {
|
|
for (int y = 0; y < model.getRowCount(); y++) {
|
|
Object row[] = model.getRow(y);
|
|
String idProdotto = row[3].toString();
|
|
String query = "SELECT Punti || '|' || prezzo as res FROM tariffe "
|
|
+ "where id_Prodotto = " + idProdotto
|
|
+ " and id_fascia=" + idProfiloTariffario;
|
|
String res = Utils.mySelect(query, "res", this);
|
|
if (res.length() > 0) {
|
|
String[] el = res.split("\\|", -1);
|
|
Double prezzo;
|
|
Integer punti;
|
|
punti = Integer.valueOf(el[0]);
|
|
|
|
prezzo = Double.valueOf(el[1].replace(",", "."));
|
|
|
|
model.setValueAt(prezzo, y, colImporto);
|
|
model.setValueAt(prezzo, y, colImporto2);
|
|
model.setValueAt(punti, y, colPunti);
|
|
doLayout();
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void abilitaPulsanti(JPanel aPanel, Boolean abilita, Boolean apertura) {
|
|
Component c;
|
|
Component[] components = aPanel.getComponents();
|
|
|
|
if (components != null) {
|
|
int numComponents = components.length;
|
|
for (int i = 0; i < numComponents; i++) {
|
|
c = components[i];
|
|
if (c != null) {
|
|
JToggleButton bt = (JToggleButton) c;
|
|
if (bt == null) {
|
|
c.setEnabled(abilita);
|
|
} else {
|
|
try {
|
|
if (bt.getText().equalsIgnoreCase("<html>Composizione</html>") && passaggiEsauritiNoComposizione && aPanel.getName().equalsIgnoreCase("pnlCategorie")) {
|
|
bt.setEnabled(false);
|
|
} else {
|
|
bt.setEnabled(abilita);
|
|
}
|
|
|
|
if (bt.getText().equalsIgnoreCase("<html>Composizione</html>") && menuGiornoPresente == false && apertura) {
|
|
bt.setEnabled(true);
|
|
bt.setSelected(true);
|
|
pulsantiCategoria("0", "Categoria[0]");
|
|
|
|
} else {
|
|
bt.setSelected(false);
|
|
}
|
|
} catch (Exception ex) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public Object[][] rowData(String query, String[] cols, String[] colType, int rowCount) {
|
|
Object[][] rows = null;
|
|
try {
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
Statement st = dbConnection.createStatement();
|
|
ResultSet rs = st.executeQuery(query);
|
|
rows = new Object[rowCount][];
|
|
int r = 0;
|
|
while (rs.next()) {
|
|
Object[] row = new Object[cols.length];
|
|
for (int i = 0; i < cols.length; i++) {
|
|
if (rs.getString(cols[i].replace(" ", "_")) == null) {
|
|
row[i] = "";
|
|
} else {
|
|
row[i] = rs.getString(cols[i].replace(" ", "_"));
|
|
}
|
|
switch (colType[i]) {
|
|
|
|
case "text" -> {
|
|
if (rs.getString(cols[i].replace(" ", "_")) == null) {
|
|
row[i] = "";
|
|
} else {
|
|
row[i] = rs.getString(cols[i].replace(" ", "_"));
|
|
}
|
|
}
|
|
case "integer" -> {
|
|
if (rs.getString(cols[i].replace(" ", "_")) == null) {
|
|
row[i] = 0;
|
|
} else {
|
|
row[i] = rs.getInt(cols[i].replace(" ", "_"));
|
|
}
|
|
}
|
|
case "boolean" -> {
|
|
if (rs.getString(cols[i].replace(" ", "_")) == null) {
|
|
row[i] = false;
|
|
} else {
|
|
row[i] = rs.getBoolean(cols[i].replace(" ", "_"));
|
|
}
|
|
}
|
|
case "float" -> {
|
|
if (rs.getString(cols[i].replace(" ", "_")) == null) {
|
|
row[i] = 0.00;
|
|
} else {
|
|
String v = rs.getString(cols[i].replace(" ", "_"));
|
|
|
|
row[i] = Float.valueOf(v.replace(",", "."));
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
rows[r] = row;
|
|
r++;
|
|
|
|
}
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (SQLException | NumberFormatException e) {
|
|
System.err.println(e.getClass().getName() + ": " + e.getMessage());
|
|
} finally {
|
|
|
|
return rows;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void getImage(String idProdotto) {
|
|
String fullName = null;
|
|
InputStream gifData = null;
|
|
try {
|
|
|
|
String query = "select icona from Prodotti where id=" + idProdotto;
|
|
// create prepare Statement pst
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
PreparedStatement pst = dbConnection.prepareStatement(query);
|
|
ResultSet result = pst.executeQuery();
|
|
if (result.next()) {
|
|
fullName = imgPath + idProdotto + ".jpg";
|
|
//using Srteam Method'''''
|
|
gifData = result.getBinaryStream(1);
|
|
//create file
|
|
if (gifData != null) {
|
|
File gifFile = new File(fullName);
|
|
//write the byte array into a local file.
|
|
|
|
FileOutputStream file = new FileOutputStream(gifFile);
|
|
int chunk = 0;
|
|
|
|
while ((chunk = gifData.read()) != -1) {
|
|
|
|
file.write(chunk);
|
|
|
|
}
|
|
file.flush();
|
|
file.close();
|
|
}
|
|
}
|
|
result.close();
|
|
pst.close();
|
|
dbConnection.close();
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/*private byte[] getPhoto(String query)
|
|
throws Exception, SQLException {
|
|
String req = "";
|
|
Blob img;
|
|
byte[] imgData = null;
|
|
Connection dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
Statement stmt = dbConnection.createStatement();
|
|
|
|
// query
|
|
req = query;
|
|
|
|
ResultSet rset = stmt.executeQuery(req);
|
|
|
|
while (rset.next()) {
|
|
img = rset.getBlob(1);
|
|
imgData = img.getBytes(1, (int) img.length());
|
|
}
|
|
|
|
rset.close();
|
|
stmt.close();
|
|
dbConnection.close();
|
|
return imgData;
|
|
}*/
|
|
|
|
/*private String formattaDataOra(Date data) {
|
|
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
|
|
return "to_date('" + formatter.format(data) + "','dd/mm/yyyy HH24:MI:SS')";
|
|
}*/
|
|
|
|
private String formatLocalDateTime(LocalDateTime data){
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
|
|
return "to_date('" + data.format(formatter) + "','dd/mm/yyyy HH24:MI:SS')";
|
|
}
|
|
|
|
private String formattaData(Date data) {
|
|
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
|
|
return "to_date('" + formatter.format(data) + "','dd/mm/yyyy')";
|
|
}
|
|
|
|
private void aggiungiImmaginiPulsanti() {
|
|
aggiungImmagini(jBtnStorno, "Storno.png", 70, 70);
|
|
aggiungImmagini(jBtnAsporto, "coltello e forchetta.jpg", 50, 50);
|
|
aggiungImmagini(jTBP0, "a scalare.png", 50, 50);
|
|
aggiungImmagini(jTBP1, "Contanti.png", 50, 50);
|
|
aggiungImmagini(jTBP2, "Ticket.png", 50, 50);
|
|
aggiungImmagini(jTBP3, "differito.png", 50, 50);
|
|
aggiungImmagini(jBtnprodotti, "Prodotti.png", 50, 50);
|
|
|
|
SwingUtilities.updateComponentTreeUI(jTBP0);
|
|
|
|
aggiungImmagini(jBtnMovimenti, "Movimenti.png", 50, 50);
|
|
}
|
|
|
|
private void aggiungImmagini(JButton btn, String immagine, int width, int height) {
|
|
ImageIcon icon = new ImageIcon(imgPath + immagine);
|
|
Image img = icon.getImage();
|
|
Image newimg = img.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH);
|
|
icon = new ImageIcon(newimg);
|
|
btn.setIcon(icon);
|
|
}
|
|
|
|
private void aggiungImmagini(JToggleButton btn, String immagine, int width, int height) {
|
|
ImageIcon icon = new ImageIcon(imgPath + immagine);
|
|
Image img = icon.getImage();
|
|
Image newimg = img.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH);
|
|
icon = new ImageIcon(newimg);
|
|
btn.setIcon(icon);
|
|
|
|
btn.setDisabledIcon(null);
|
|
btn.setDisabledIcon(icon);
|
|
|
|
}
|
|
|
|
// ==========================================================================
|
|
// * Metodo main()
|
|
// *
|
|
// * @param args the command line arguments
|
|
// *
|
|
// ==========================================================================
|
|
public static void main(String args[]) {
|
|
java.awt.EventQueue.invokeLater(new Runnable() {
|
|
public void run() {
|
|
|
|
// =================================================================
|
|
// *** Crea la form base
|
|
// =================================================================
|
|
PuntoCassa p = new PuntoCassa();
|
|
p.aggiungImmagini(p.jBtnDB1, "DB.png", 50, 50);
|
|
|
|
// =================================================================
|
|
// *** Esegue il resize a seconda delle impostazioni video per
|
|
// *** occupare tutto lo schermo utile
|
|
// =================================================================
|
|
Toolkit toolkit = Toolkit.getDefaultToolkit();
|
|
Dimension screenSize = toolkit.getScreenSize();
|
|
|
|
//p.setSize(1024, 768);
|
|
//p.setLocation((int) (screenSize.width - 1024) / 2, (int) (screenSize.height - 768) / 2);
|
|
p.resize();
|
|
//p.setSize((int)screenSize.width / 3 * 2, (int)screenSize.height / 3 * 2);
|
|
p.setLocation((int) (screenSize.width - p.getSize().width) / 2, (int) (screenSize.height - p.altezzaBarraApplicazioni - p.getSize().height) / 2);
|
|
|
|
// =================================================================
|
|
// *** Mostra la form nello stato iniziale
|
|
// =================================================================
|
|
p.pnlErrore.setVisible(false);
|
|
p.pnlLogin.setVisible(true);
|
|
p.lblUtenteLoggato.setVisible(true);
|
|
p.lblInfo.setVisible(true);
|
|
p.lblStatoConnessione.setVisible(true);
|
|
p.pnlTop.setVisible(false);
|
|
p.setVisible(true);
|
|
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
public void controllaLogInCarta(String nTessera) {
|
|
if (turno()) {
|
|
|
|
String query = "select a.username || '|' || a.id || '|' || a.id_stato as res"
|
|
+ " from accounts a, utenti u, tessere t, profili p, ruoli r where a.id_utente = u.id"
|
|
+ " and t.id_utente = u.id"
|
|
+ " and p.id_account = a.id"
|
|
+ " and p.id_ruolo = r.id"
|
|
//+ " and r.id = 10000000004" + //*** Operatore di cassa ***/
|
|
+ " and t.numero = '" + nTessera + "'"; //*** Numero della tessera letto su smartcard ***
|
|
//MyApplication myApp = new MyApplication();
|
|
//String[] res = myApp.mySelect(this, query, "res").split("\\|");
|
|
String[] res = Utils.mySelect(query, "res", this).split("\\|");
|
|
if (res.length >= 3) {
|
|
utenteLoggato = res[0];
|
|
idAccount = Long.valueOf(res[1]);
|
|
Integer stato = Integer.valueOf(res[2]);
|
|
if (utenteLoggato.length() > 0 && idAccount > 0L && stato == 1) {
|
|
String sql = "SELECT count(*) as Counter FROM profili p WHERE p.id_account = " + idAccount + " AND p.id_ruolo = 10000000004";
|
|
//Integer counter = Integer.valueOf(myApp.mySelect(this, sql, "Counter"));
|
|
Integer counter = Integer.valueOf(Utils.mySelect(sql, "Counter", this));
|
|
if (counter == 1) {
|
|
impostaAmbiente();
|
|
verificaAggiornamentoDB();
|
|
|
|
} else {
|
|
idAccount = 0L;
|
|
utenteLoggato = "";
|
|
JOptionPane.showMessageDialog(this, "L'utente non dispone dei privilegi per l'utilizzo del modulo cassa.");
|
|
}
|
|
} else {
|
|
utenteLoggato = "";
|
|
idAccount = 0L;
|
|
if (stato == 2) {
|
|
//String messaggio = myApp.mySelect(this, "Select Descrizione from Stati_Accounts where id=" + stato, "descrizione");
|
|
String messaggio = Utils.mySelect("Select Descrizione from Stati_Accounts where id=" + stato, "descrizione",
|
|
this);
|
|
JOptionPane.showMessageDialog(this, messaggio + ".");
|
|
|
|
} else {
|
|
|
|
JOptionPane.showMessageDialog(this, "Tessera sconosciuta!");
|
|
}
|
|
}
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Tessera sconosciuta!");
|
|
}
|
|
cartaLetta = true;
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "Impossibile eseguire il Login al sistema:\nNessun Turno Attivo!");
|
|
}
|
|
|
|
}
|
|
|
|
private void display(String titolo, String prezzo) {
|
|
System.out.println("Display: " + titolo);
|
|
if (visualizzaMessaggiDisplay) {
|
|
|
|
try {
|
|
SerialPort serialPort = new SerialPort("COM3");
|
|
try {
|
|
serialPort.openPort();//Open serial port
|
|
serialPort.setParams(SerialPort.BAUDRATE_9600,
|
|
SerialPort.DATABITS_8,
|
|
SerialPort.STOPBITS_1,
|
|
SerialPort.PARITY_NONE);//Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
|
|
String testo = titolo;
|
|
if (prezzo != null) {
|
|
testo = titolo + Utils.spaziBianchi(prezzo, 40 - titolo.length(), false);
|
|
}
|
|
|
|
serialPort.writeBytes(testo.getBytes());//Write data to port
|
|
serialPort.closePort();//Close serial port
|
|
} catch (SerialPortException ex) {
|
|
if (serialPort.isOpened()) {
|
|
serialPort.closePort();
|
|
}
|
|
JOptionPane.showMessageDialog(this, ex.getMessage());
|
|
}
|
|
} catch (SerialPortException | HeadlessException ex) {
|
|
|
|
JOptionPane.showMessageDialog(this, ex.getMessage());
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void statoAttivoNonLoggato() {
|
|
String PC = idPuntoCassa.toString();
|
|
if (PC.length() >= 5) {
|
|
PC = PC.substring(PC.length() - 5, PC.length());
|
|
} else {
|
|
PC = Utils.spaziBianchi(PC, 5, false);
|
|
}
|
|
|
|
String Riga = Utils.spaziBianchi(messageDisplay, 20, true) + "POS " + PC + " CHIUSO";
|
|
display(Riga, null);
|
|
}
|
|
|
|
private void statoAttivoLoggato() {
|
|
//per evitare che inserendo la tessera successiva mi cancelli il num tessera
|
|
if (jTxtTessera.getText().trim().length() <= 0) {
|
|
String PC = idPuntoCassa.toString();
|
|
if (PC.length() >= 5) {
|
|
PC = PC.substring(PC.length() - 5, PC.length());
|
|
} else {
|
|
PC = Utils.spaziBianchi(PC, 5, false);
|
|
}
|
|
|
|
String riga = Utils.spaziBianchi(messageDisplay, 20, true) + "POS " + PC + " APERTO";
|
|
display(riga, null);
|
|
}
|
|
}
|
|
|
|
/*private void statoTesseraLetta(int gratuita, int bonus) {
|
|
String tess = jTxtTessera.getText();
|
|
if (tess.length() >= 12) {
|
|
tess = tess.substring(tess.length() - 12, tess.length());
|
|
} else {
|
|
tess = Utils.spaziBianchi(tess, 12, false);
|
|
}
|
|
String fa = "";
|
|
fa = Utils.spaziBianchi(fa, 13, true);
|
|
|
|
if (gratuita > 0) {
|
|
|
|
} else if (bonus > 0) {
|
|
fa = "BONUS ";
|
|
}
|
|
|
|
}*/
|
|
|
|
|
|
class CardTask extends TimerTask {
|
|
|
|
PuntoCassa frmA;
|
|
|
|
public CardTask(PuntoCassa frmx) {
|
|
frmA = frmx;
|
|
}
|
|
|
|
public void run() {
|
|
MyApplication myApp = new MyApplication();
|
|
try {
|
|
myApp.smartCard.setReader(jcmbSC.getSelectedItem());
|
|
myApp.smartCard.connect("T=1");
|
|
statoCarta = StatiCarta.INSERITA;
|
|
if (pnlLogin.isVisible() == false && cartaLetta == false) {
|
|
jBtnReadCardActionPerformed(null);
|
|
passaggioTessera = true;
|
|
frmA.cercaTessera();
|
|
|
|
cartaLetta = true;
|
|
} else if (pnlLogin.isVisible() == true && cartaLetta == false) {
|
|
frmA.controllaLogInCarta(getNumeroTessera());
|
|
|
|
}
|
|
} catch (Exception e) {
|
|
if (statoCarta == StatiCarta.INSERITA) {
|
|
statoCarta = StatiCarta.RIMOSSA;
|
|
} else {
|
|
statoCarta = StatiCarta.ASSENTE;
|
|
}
|
|
cartaLetta = false;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// ==========================================================================
|
|
// *** Sottoclasse per la gestione degli eventi a timer
|
|
// ==========================================================================
|
|
public class timerDBConn extends java.util.TimerTask {
|
|
|
|
// =======================================================================
|
|
// ** Implementazione del riferimento alla classe contenitore
|
|
// =======================================================================
|
|
private PuntoCassa pc;
|
|
Connection dbConnection;
|
|
|
|
timerDBConn(PuntoCassa pc) {
|
|
this.pc = pc;
|
|
}
|
|
|
|
PuntoCassa getPuntoCassa() {
|
|
return pc;
|
|
}
|
|
|
|
// =======================================================================
|
|
// ** Contiene il processo da eseguire in background
|
|
// =======================================================================
|
|
public void run() {
|
|
|
|
String sql;
|
|
Statement st = null;
|
|
ResultSet rs;
|
|
|
|
// ====================================================================
|
|
// * Se non c'è connessione al DB prova a connettersi
|
|
// ====================================================================
|
|
try {
|
|
Class.forName(dbDriver);
|
|
|
|
dbConnection = DriverManager.getConnection(dbStringa, dbUsername, dbPassword);
|
|
} catch (Exception ex) {
|
|
this.pc.utenteLoggato = "";
|
|
this.pc.lblStatoConnessione.setText("Errore di connessione al db");
|
|
}
|
|
//}
|
|
|
|
// ====================================================================
|
|
// * Se c'e connessione
|
|
// ====================================================================
|
|
// -----------------------------------------------------------------
|
|
// *** Verifica lo stato di attivita della connessione
|
|
// -----------------------------------------------------------------
|
|
if (dbTipo.equals("Oracle")) {
|
|
sql = "Select Valore as now from Parametri where chiave='UltimoAggTabelle'";
|
|
} else {
|
|
sql = "SELECT now() AS now FROM dual";
|
|
}
|
|
try {
|
|
|
|
st = dbConnection.createStatement();
|
|
rs = st.executeQuery(sql);
|
|
while (rs.next()) {
|
|
String strRiga = rs.getString("now");
|
|
this.pc.lblStatoConnessione.setText(strRiga + " Vers. " + versione);
|
|
|
|
}
|
|
|
|
// --------------------------------------------------------------
|
|
// ** Verifica se c'e un utente loggato
|
|
// --------------------------------------------------------------
|
|
this.pc.pnlErrore.setVisible(false);
|
|
|
|
// --------------------------------------------------------------
|
|
// ** Verifica se c'e un utente loggato
|
|
// --------------------------------------------------------------
|
|
if (this.pc.utenteLoggato.equals("")) {
|
|
this.pc.pnlLogin.setVisible(true);
|
|
} else {
|
|
this.pc.pnlLogin.setVisible(false);
|
|
}
|
|
|
|
rs.close();
|
|
st.close();
|
|
dbConnection.close();
|
|
|
|
} catch (SQLException e) {
|
|
this.pc.pnlErrore.setVisible(true);
|
|
this.pc.lblMessaggioErrore.setText("Errore di connessione al database!");//Errore query " + sql);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
// Variables declaration - do not modify//GEN-BEGIN:variables
|
|
public javax.swing.JButton btnImpostaCliente;
|
|
private javax.swing.JButton btnLogin;
|
|
private javax.swing.JButton btnTermina;
|
|
private javax.swing.JToggleButton jBtnAsporto;
|
|
private javax.swing.JButton jBtnBuoni;
|
|
private javax.swing.JButton jBtnDB1;
|
|
private javax.swing.JButton jBtnMovimenti;
|
|
private javax.swing.JButton jBtnReadCard;
|
|
private javax.swing.JButton jBtnStorno;
|
|
private javax.swing.JButton jBtnprodotti;
|
|
private javax.swing.JCheckBox jChLogin;
|
|
private javax.swing.JToggleButton jTBP0;
|
|
private javax.swing.JToggleButton jTBP1;
|
|
private javax.swing.JToggleButton jTBP2;
|
|
private javax.swing.JToggleButton jTBP3;
|
|
private javax.swing.JTextField jTxtTessera;
|
|
private javax.swing.JButton jbtnAnnulla;
|
|
private javax.swing.JButton jbtnChiudi;
|
|
private javax.swing.JButton jbtnDuplica;
|
|
private javax.swing.JButton jbtnElimina;
|
|
private javax.swing.JButton jbtnEsci;
|
|
private javax.swing.JButton jbtnGiu;
|
|
private javax.swing.JButton jbtnStampa;
|
|
private javax.swing.JButton jbtnSu;
|
|
private javax.swing.JComboBox jcmbSC;
|
|
private javax.swing.JLabel lblAzienda;
|
|
private javax.swing.JLabel lblCategoria;
|
|
private javax.swing.JLabel lblCodice;
|
|
private javax.swing.JLabel lblCodice1;
|
|
private javax.swing.JLabel lblCodice2;
|
|
private javax.swing.JLabel lblCodice3;
|
|
private javax.swing.JLabel lblCodice4;
|
|
private javax.swing.JLabel lblCodice5;
|
|
private javax.swing.JLabel lblCognome;
|
|
private javax.swing.JLabel lblConvenzione;
|
|
private javax.swing.JLabel lblDB;
|
|
private javax.swing.JLabel lblDenominazione;
|
|
private javax.swing.JLabel lblFascia;
|
|
private javax.swing.JLabel lblGratuita;
|
|
private javax.swing.JLabel lblInfo;
|
|
private javax.swing.JLabel lblInfo2;
|
|
private javax.swing.JLabel lblMessaggioErrore;
|
|
private javax.swing.JLabel lblNascita;
|
|
private javax.swing.JLabel lblNome;
|
|
private javax.swing.JLabel lblOrganizzazione;
|
|
private javax.swing.JLabel lblOrganizzazione1;
|
|
private javax.swing.JLabel lblOrganizzazione2;
|
|
private javax.swing.JLabel lblOrganizzazione3;
|
|
private javax.swing.JLabel lblOrganizzazione4;
|
|
private javax.swing.JLabel lblOrganizzazione5;
|
|
private javax.swing.JLabel lblPassword;
|
|
private javax.swing.JLabel lblPunti;
|
|
private javax.swing.JLabel lblResiduo;
|
|
private javax.swing.JLabel lblSaldo;
|
|
private javax.swing.JLabel lblScadTessera;
|
|
private javax.swing.JLabel lblStatoConnessione;
|
|
private javax.swing.JLabel lblTipoPagamento;
|
|
private javax.swing.JLabel lblUsername;
|
|
private javax.swing.JLabel lblUtenteLoggato;
|
|
private javax.swing.JPanel pnlAzioni;
|
|
private javax.swing.JPanel pnlCategorie;
|
|
private javax.swing.JPanel pnlCliente;
|
|
private javax.swing.JPanel pnlConto;
|
|
private javax.swing.JPanel pnlErrore;
|
|
private javax.swing.JPanel pnlLista;
|
|
private javax.swing.JPanel pnlLista1;
|
|
private javax.swing.JPanel pnlLogin;
|
|
private javax.swing.JPanel pnlProdotti;
|
|
protected javax.swing.JPanel pnlTop;
|
|
private javax.swing.JScrollPane scpLista;
|
|
private javax.swing.JScrollPane scpLista1;
|
|
private javax.swing.JPanel subPnlCliente;
|
|
private javax.swing.JPanel subPnlTessera;
|
|
private javax.swing.JTable tblLista;
|
|
private javax.swing.JTable tblLista1;
|
|
private javax.swing.JPasswordField txtPassword;
|
|
private javax.swing.JTextField txtTotaleCassa;
|
|
private javax.swing.JTextField txtTotalePunti;
|
|
private javax.swing.JTextField txtUsername;
|
|
// End of variables declaration//GEN-END:variables
|
|
}
|