package com.tarisan.chipcard.tpvvs.webservicetrayicon; import java.awt.BorderLayout; 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 * * Para cambiar la plantilla para este comentario de tipo generado vaya a * Ventana>Preferencias>Java>Generación de código>Código y comentarios */ public class AutorizacionesFrame extends JFrame implements ActionListener,ControladorRespuestas{ private AutorizacionesPanel jpAutPanel=new AutorizacionesPanel(); private JButton btnAceptar=null; private JButton btnCancelar=null; private AutorizacionesBean autBean=new AutorizacionesBean(); private TerminalSanitarioBean terBean=new TerminalSanitarioBean(); private UsuarioTVSBean userBean=new UsuarioTVSBean(); private VentanaProgreso progressWindow=null; public String devuelveRespuesta(String a) { return a; } public AutorizacionesFrame(){ setIconImage(WebServiceTrayIcon.image_authorizations_16); progressWindow=new VentanaProgreso(this,"Solicitando autorización"); progressWindow.setVisible(false); setTitle("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()); 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(jpAutPanel, 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); jpAutPanel.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 AutorizacionesPanel getAutorizacionesPanel() { return jpAutPanel; } public void actionPerformed(ActionEvent evt){ UsuarioTVS user=(UsuarioTVS)getAutorizacionesPanel().getCmbImageComboUsuarios().getSelectedItem(); boolean siTerminalDeLaboratorio=user.getTerminal().isTVA(); if(user==null){ showErrorMessage("Se debe seleccionar un usuario"); return; } CompaniaSanitaria comp=(CompaniaSanitaria)getAutorizacionesPanel().getCmbImageComboCompanias().getSelectedItem(); if(comp==null){ showErrorMessage("Se debe seleccionar una compañia"); return; } EspecialidadSanitaria espe=null; if(!siTerminalDeLaboratorio){ espe=(EspecialidadSanitaria)getAutorizacionesPanel().getCmbImageComboEspecialidades().getSelectedItem(); if(espe==null){ showErrorMessage("Se debe seleccionar una Especialidad"); return; } } ProfesionalSanitario prof=(ProfesionalSanitario)getAutorizacionesPanel().getCmbImageComboProfesionales().getSelectedItem(); if(prof==null){ showErrorMessage("Se debe seleccionar un profesional"); return; } ListaActos listaActos=(ListaActos)getAutorizacionesPanel().getCmbImageComboListaActos().getSelectedItem(); if(listaActos==null){ showErrorMessage("Se debe seleccionar una Lista de Actos"); return; } String sTipoOperacion=getAutorizacionesPanel().getCmbImageComboTipoOperacion().getSelectedItem().toString(); ActoMedico arrActos[]=null; if(!siTerminalDeLaboratorio ){ if(getAutorizacionesPanel().getActosMedicosSolicitadosModel().getSize()==0 && !sTipoOperacion.equals(WSTRConstantes.TIPO_OP_VOL_MEDICO)){ showErrorMessage("Se deben seleccionar Actos Médicos"); return; } if(getAutorizacionesPanel().getActosMedicosSolicitadosModel().getSize()>0){ //Se añaden si se tienen arrActos=new ActoMedico[getAutorizacionesPanel().getActosMedicosSolicitadosModel().getSize()]; for(int i=0;i0){ autRequest.setDatosCliente(sDataCliente); } if(getAutorizacionesPanel().getChkEsRepeticion().isSelected()){ autRequest.setRepeticion(true); } }catch(Exception err){ err.printStackTrace(); WebServiceTrayIcon.showErrorMessage(getTitle(),"No se pudo componer la solicitud a enviar:"+err.getMessage()); setEnabled(true); } if(autRequest!=null){ //Ya tengo la peticion a enviar... String sURL=getAutorizacionesPanel().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){ progressWindow.setProgressState(0); progressWindow.setModal(false); UtilGUI.centerOnWindow(progressWindow,this); ClienteServicioWeb objClienteServicioWeb=new ClienteServicioWeb(autRequest,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; Vector vAutorizaciones=WebServiceTrayIcon.AutResMes2Autorizacion(autResMes); boolean blnAlgunaAutorizada=false; for(int i=0;i