Files
2025-06-09 13:37:06 +02:00

246 lines
7.7 KiB
Java

package com.tarisan.chipcard.tpvvs.webservicetrayicon;
import java.awt.BorderLayout;
import javax.swing.*;
import com.tarisan.chipcard.gui.*;
import java.util.*;
import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*;
import com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.*;
import java.awt.event.*;
/**
* Ventana de anulaciones
*
* @author jescacena
*
*/
public class AnulacionesFrame extends JFrame implements ActionListener, ControladorRespuestas {
private AnulacionesPanel jpAnulPanel = new AnulacionesPanel();
private JButton btnAceptar = null;
private JButton btnCancelar = null;
private TerminalSanitarioBean terBean = new TerminalSanitarioBean();
private UsuarioTVSBean userBean = new UsuarioTVSBean();
private VentanaProgreso progressWindow = null;
public String devuelveRespuesta(String a)
{
return a;
}
public AnulacionesFrame() {
setIconImage(WebServiceTrayIcon.image_authorizations_16);
progressWindow = new VentanaProgreso(this, "Solicitando anulación");
progressWindow.setVisible(false);
setTitle("Anulaciones");
Vector vTer = terBean.getTerminalesSanitarios();
if (vTer.size() == 0) {
NuevoTerminalFrame frmT = new NuevoTerminalFrame();
WebServiceTrayIcon.showMessage(
frmT,
getTitle(),
"Es necesario configurar antes Terminales Sanitarios",
JOptionPane.WARNING_MESSAGE,
10);
dispose();
} else {
Vector vUsers = userBean.getUsuariosTVS();
if (vUsers.size() == 0) {
NuevoUsuarioTVSFrame frmU = new NuevoUsuarioTVSFrame();
frmU.updateData();
WebServiceTrayIcon.showMessage(
frmU,
getTitle(),
"Es necesario configurar antes algún Usuario del TVS",
JOptionPane.WARNING_MESSAGE,
10);
dispose();
} else {
init();
}
}
}
private void init() {
getContentPane().setLayout(new BorderLayout());
JPanel pn = new JPanel();
pn.setLayout(new java.awt.GridBagLayout());
java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
pn.add(jpAnulPanel, gridBagConstraints);
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy++;
JPanel jpButtons = new JPanel();
jpButtons.setLayout(new java.awt.FlowLayout());
jpButtons.add(getButtonAceptar());
jpButtons.add(getButtonCancelar());
pn.add(jpButtons, gridBagConstraints);
getContentPane().add(pn, java.awt.BorderLayout.CENTER);
jpAnulPanel.updateData();
pack();
show();
UtilGUI.centerOnScreen(this);
}
private JButton getButtonAceptar() {
if (btnAceptar == null) {
btnAceptar = new JButton();
btnAceptar.setText("Aceptar");
btnAceptar.setIcon(new ImageIcon(WebServiceTrayIcon.loadImage("aceptar32.gif")));
btnAceptar.addActionListener(this);
}
return btnAceptar;
}
private JButton getButtonCancelar() {
if (btnCancelar == null) {
btnCancelar = new JButton();
btnCancelar.setText("Cancelar");
btnCancelar.setIcon(new ImageIcon(WebServiceTrayIcon.loadImage("cancelar32.gif")));
btnCancelar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
setVisible(false);
dispose();
}
});
}
return btnCancelar;
}
/**
* @return
*/
public AnulacionesPanel getAnulacionesPanel() {
return jpAnulPanel;
}
public void actionPerformed(ActionEvent evt) {
UsuarioTVS user = (UsuarioTVS) getAnulacionesPanel().getCmbImageComboUsuarios().getSelectedItem();
boolean siTerminalDeLaboratorio = user.getTerminal().isTVA();
if (user == null) {
showErrorMessage("Se debe seleccionar un usuario");
return;
}
DialogoTarjetaSanitaria objDialog = new DialogoTarjetaSanitaria(this);
com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.Paciente paciente = objDialog.getPaciente();
objDialog.dispose();
setEnabled(false);
//Construyo el mensaje a enviar
AnulReq anulRequest = null;
try {
anulRequest =
new AnulReq(
user.getTerminal().getNumeroTerminal(),
getAnulacionesPanel().getJtxtTimestamp().getText(),
user);
} catch (Exception err) {
err.printStackTrace();
WebServiceTrayIcon.showErrorMessage(
getTitle(),
"No se pudo componer la solicitud de anulación a enviar:" + err.getMessage());
setEnabled(true);
}
if (anulRequest != null) {
//Ya tengo la peticion a enviar...
String sURL = getAnulacionesPanel().getCmbURLService().getSelectedItem().toString();
java.net.URL endPointURL = null;
try {
endPointURL = new java.net.URL(sURL);
} catch (Exception err) {
err.printStackTrace();
WebServiceTrayIcon.showErrorMessage(
getTitle(),
"No se pudo enviar la solicitud de anulación a '" + sURL + "' debido al error:" + err.getMessage());
}
if (endPointURL != null) {
progressWindow.setProgressState(0);
progressWindow.setModal(false);
UtilGUI.centerOnWindow(progressWindow, this);
ClienteServicioWeb objClienteServicioWeb =
new ClienteServicioWeb(anulRequest, this, endPointURL);
ProgressBarThread PBTh =
new ProgressBarThread(progressWindow, objClienteServicioWeb.getSegundosTimeout());
PBTh.start();
} else {
setEnabled(true);
}
} else {
setEnabled(true);
}
}
/*****
* Recibe la respuesta del Servicio Web
*/
public String recibeRespuesta(String sResponse) {
if (progressWindow != null)
progressWindow.setVisible(false);
setEnabled(true);
if (sResponse != null) {
Msg objResponse = null;
try {
objResponse = Msg.createMsgFromString(sResponse);
if (objResponse.getTypeOfMessage() == Msg.TYPE_OF_MESSAGE_ERROR) {
com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.Error errorMes =
(com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.Error) objResponse;
//Es un Error en la peticion
showErrorMessage(
"Se ha producido el error con código "
+ errorMes.getErrorCode()
+ ".\nDescripción:"
+ errorMes.getErrorDescription());
} else if (objResponse.getTypeOfMessage() == Msg.TYPE_OF_MESSAGE_CCRES) {
com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.AutRes autResMes =
(com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.AutRes) objResponse;
WebServiceTrayIcon.showTransactionInfo(autResMes, this);
}
} catch (Exception err) {
err.printStackTrace();
showErrorMessage(
"Se ha producido un error al procesar la respuesta.\nDescripción:" + err.getMessage());
}
} else {
//Se debería repetir la respuesta?? Se supone que no se ha recibido
}
return "";
}
public void setEnabled(boolean blnEnabled) {
super.setEnabled(blnEnabled);
getAnulacionesPanel().setEnabled(blnEnabled);
getButtonAceptar().setEnabled(blnEnabled);
getButtonCancelar().setEnabled(blnEnabled);
if (!blnEnabled)
setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
else
setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.DEFAULT_CURSOR));
validate();
repaint();
}
private void showErrorMessage(String sMessage) {
WebServiceTrayIcon.showMessage(this, getTitle(), sMessage, JOptionPane.ERROR_MESSAGE);
}
private void showInformationMessage(String sMessage) {
WebServiceTrayIcon.showMessage(this, getTitle(), sMessage, JOptionPane.INFORMATION_MESSAGE);
}
private void showWarningMessage(String sMessage) {
WebServiceTrayIcon.showMessage(this, getTitle(), sMessage, JOptionPane.WARNING_MESSAGE);
}
}