242 lines
8.5 KiB
Java
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);
|
|
}
|
|
}
|