Files
tarisan_gitea/Fuentes/com/tarisan/chipcard/tpvvs/webservicetrayicon/ConsultaAutorizacionesFrame.java
T
2025-06-09 13:37:06 +02:00

242 lines
8.5 KiB
Java

package com.tarisan.chipcard.tpvvs.webservicetrayicon;
import java.awt.*;
import javax.swing.*;
import com.tarisan.chipcard.gui.*;
import com.tarisan.chipcard.tpvvs.webservicetrayicon.messages.*;
import java.util.*;
import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*;
import java.awt.event.*;
/**
* @author jjrider
*/
public class ConsultaAutorizacionesFrame extends JFrame implements ControladorRespuestas,ActionListener{
/**
*
*/
private static final long serialVersionUID = -7697824758756674812L;
public static final Image icon=WebServiceTrayIcon.loadImage("consultaAut16.gif");
private ConsultaAutorizacionesPanel jpAutorizacionesPanel=null;//new ConsultaAutorizacionesPanel();
private JButton btnAceptar=null;
private AutorizacionesBean autBean=new AutorizacionesBean();
private UsuarioTVSBean userBean=new UsuarioTVSBean();
private TerminalSanitarioBean terBean=new TerminalSanitarioBean();
private JPopupMenu anulacionPopupMenu=new JPopupMenu();
private VentanaProgreso progressWindow=null;//
public String devuelveRespuesta(String a)
{
return a;
}
public ConsultaAutorizacionesFrame(){
setIconImage(icon);
progressWindow=new VentanaProgreso(this,"Solicitando anulación");
progressWindow.setVisible(false);
setTitle("Consulta de Autorizaciones");
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());
jpAutorizacionesPanel=new ConsultaAutorizacionesPanel();
jpAutorizacionesPanel.setPreferredSize(new java.awt.Dimension(800,600));
JPanel jpButtons=new JPanel();
jpButtons.setLayout(new java.awt.FlowLayout());
jpButtons.add(getButtonAceptar());
getContentPane().add(jpAutorizacionesPanel, java.awt.BorderLayout.CENTER);
getContentPane().add(jpButtons, java.awt.BorderLayout.SOUTH);
pack();
show();
UtilGUI.centerOnScreen(this);
jpAutorizacionesPanel.getJTable().addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent evt) {
}
public void mouseReleased(MouseEvent evt) {
}
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 || e.isMetaDown() ) {
if (jpAutorizacionesPanel.getJTable().getSelectedRow() != -1){
anulacionPopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
}
}
);
JMenuItem item = new JMenuItem("Solicitar Anulación de Autorización",new ImageIcon(WebServiceTrayIcon.loadImage("eliminar.gif")));
item.addActionListener(this);
anulacionPopupMenu.add(item);
}
/****
* Se encarga de realizar las operacioens necesarias para llevar a cabo una anulacion
* @param nTerminal
* @param sTimeStamp
*/
private void anulaAutorizacion(int nTerminal, String sTimeStamp){
//Si está autorizada
Autorizacion aut=autBean.getAutorizacionByID(nTerminal,sTimeStamp);
if(aut!=null){
String sURL=jpAutorizacionesPanel.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 a '"+sURL+"' debido al error:"+err.getMessage());
}
if(endPointURL!=null){
UsuarioTVS userTVS=(UsuarioTVS)jpAutorizacionesPanel.getCmbImageComboUsuarios().getSelectedItem();
if(userTVS!=null){
try{
progressWindow.setVisible(true);
progressWindow.setProgressState(0);
progressWindow.setModal(false);
UtilGUI.centerOnWindow(progressWindow,this);
AnulReq anulReqMes=new AnulReq(nTerminal,sTimeStamp,userTVS);
setEnabled(false);
ClienteServicioWeb objClienteServicioWeb=new ClienteServicioWeb(anulReqMes,this,endPointURL);
ProgressBarThread PBTh=new ProgressBarThread(progressWindow,objClienteServicioWeb.getSegundosTimeout());
PBTh.start();
}catch(Exception err){
err.printStackTrace();
}
}
}
}
}
/*****
* Recibe la respuesta del Servicio Web
*/
public String recibeRespuesta(String sResponse){
setEnabled(true);
if(progressWindow!=null)
progressWindow.setVisible(false);
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;
Vector vAutorizaciones=WebServiceTrayIcon.AutResMes2Autorizacion(autResMes);
for(int i=0;i<vAutorizaciones.size();i++){
Autorizacion aut=(Autorizacion)vAutorizaciones.elementAt(i);
if(aut.getESTADO().equals(WSTRConstantes.OP_RESPONSE_ANULADA)){
//Solo actualizo si la operación fue anulada
autBean.updateInLocal(aut);
}
}
WebServiceTrayIcon.showTransactionInfo(autResMes,this);
jpAutorizacionesPanel.updateData();
}
}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 "";
}
private JButton getButtonAceptar(){
if(btnAceptar==null){
btnAceptar=new JButton();
btnAceptar.setText("Aceptar");
btnAceptar.setIcon(new ImageIcon(WebServiceTrayIcon.loadImage("aceptar32.gif")));
btnAceptar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
setVisible(false);
dispose();
}
});
}
return btnAceptar;
}
public void actionPerformed(ActionEvent evt){
int nRow=jpAutorizacionesPanel.getJTable().getSelectedRow();
String sTerminal=(String)jpAutorizacionesPanel.getTableModel().getValueAt(nRow,0);
String sTimeStamp=(String)jpAutorizacionesPanel.getTableModel().getValueAt(nRow,1);
String sEstado=(String)jpAutorizacionesPanel.getTableModel().getValueAt(nRow,3);
if(sEstado!=null){
if(sEstado.equals(WSTRConstantes.OP_RESPONSE_AUTORIZADA)){
anulaAutorizacion(Integer.parseInt(sTerminal), sTimeStamp);
}else{
WebServiceTrayIcon.showMessage(this,getTitle(),"La Autorización debe estar AUTORIZADA para poder anularse",JOptionPane.ERROR_MESSAGE,10);
}
}
}
public void setEnabled(boolean blnEnabled){
super.setEnabled(blnEnabled);
getJpAutorizacionesPanel().setEnabled(blnEnabled);
getButtonAceptar().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();
}
public static void main(String args[]) throws Exception {
System.setProperty("configFiles","./conf/");
ConsultaAutorizacionesFrame objF=new ConsultaAutorizacionesFrame();
objF.show();
}
/**
* @return
*/
public ConsultaAutorizacionesPanel getJpAutorizacionesPanel() {
return jpAutorizacionesPanel;
}
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);
}
}