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

548 lines
19 KiB
Java

package com.tarisan.chipcard.tpvvs.webservicetrayicon;
import javax.swing.*;
import com.tarisan.chipcard.gui.*;
import java.util.*;
import com.tarisan.chipcard.tpvvs.webservicetrayicon.accesodatos.*;
import java.awt.event.*;
public class AutorizacionesPanel extends JPanel{
private ImageComboBox cmbImageComboUsuarios=new ImageComboBox();
private ImageComboBox cmbImageComboCompanias=new ImageComboBox();
private ImageComboBox cmbImageComboEspecialidades=new ImageComboBox();
private ImageComboBox cmbImageComboProfesionales=new ImageComboBox();
private ImageComboBox cmbImageComboListaActos=new ImageComboBox();
private ImageComboBox cmbImageComboTipoOperacion=new ImageComboBox();
private JComboBox cmbURLService=new JComboBox();
private DefaultListModel actosMedicosDeLAListModel = new DefaultListModel();
private JList jlistActosMedicosDeLA=new JList(actosMedicosDeLAListModel);
private DefaultListModel actosMedicosSolicitadosModel = new DefaultListModel();
private JList jlistActosMedicosSolicitados=new JList(actosMedicosSolicitadosModel);
private JTextField jtxtDocUnico=new JTextField();
private JTextField jtxtNumVolante=new JTextField();
private JTextField txtDatosCliente=new JTextField();
private JCheckBox chkEsRepeticion=new JCheckBox("Repetición",false);
private ActoMedicoBean amBean=new ActoMedicoBean();
private final JPopupMenu actosMedicosSolicitadosPopupMenu = new JPopupMenu();
public AutorizacionesPanel(){
super();
init();
}
private void init(){
//setLayout(new BorderLayout());
initPane();
//JPanel pn=new JPanel();
/**
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(jpPrincipal, gridBagConstraints);
gridBagConstraints.gridx = 1;
add(pn, java.awt.BorderLayout.CENTER);
**/
}
private void initPane(){
setLayout(new java.awt.GridBagLayout());
setBorder(new javax.swing.border.TitledBorder("Datos de la Solicitud al TVS"));
java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
gridBagConstraints.gridwidth = 1;
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
JLabel label=new javax.swing.JLabel("URL Servicio Web:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
cmbURLService.setEditable(true);
WebServiceTrayIcon.fillURLServices(cmbURLService);
add(cmbURLService, gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Tipo Operación:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
cmbImageComboTipoOperacion.addItem(WSTRConstantes.TIPO_OP_SOLO_TARJETA);
cmbImageComboTipoOperacion.addItem(WSTRConstantes.TIPO_OP_DOC_UNICO);
cmbImageComboTipoOperacion.addItem(WSTRConstantes.TIPO_OP_VOL_CLINICO);
cmbImageComboTipoOperacion.addItem(WSTRConstantes.TIPO_OP_VOL_MEDICO);
add(cmbImageComboTipoOperacion, gridBagConstraints);
/***
cmbImageComboTipoOperacion.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
//Fila 4
gridBagConstraints.gridx=0;
JComponent columna1=null;
JComponent columna2=null;
//Cojo la fila
String sTipoOperacion=cmbImageComboTipoOperacion.getSelectedItem().toString();
try{
if(sTipoOperacion.equals(WSTRConstantes.TIPO_OP_SOLO_TARJETA)){
columna1=new javax.swing.JLabel("");
columna2=new javax.swing.JLabel("");
}else if(sTipoOperacion.equals(WSTRConstantes.TIPO_OP_DOC_UNICO)){
columna1=new javax.swing.JLabel("Documento Unico:");
columna2=getJtxtDocUnico();
}else{
if(sTipoOperacion.equals(WSTRConstantes.TIPO_OP_VOL_CLINICO)){
columna1=new javax.swing.JLabel("Volante Clónico:");
}else{
columna1=new javax.swing.JLabel("Volante Médico:");
}
columna2=getJtxtNumVolante();
}
System.out.println("Container:"+getTopLevelAncestor().getClass().getName());
if(getTopLevelAncestor() instanceof JFrame){
((JFrame)getTopLevelAncestor()).pack();
}else{
}
validate();
repaint();
}catch(Exception err){
}
add(columna1, gridBagConstraints);
gridBagConstraints.gridx++;
add(columna2, gridBagConstraints);
}
});
gridBagConstraints.gridy++;
//Fila 4
gridBagConstraints.gridx=0;
//Meto una fila sin nada
label=new javax.swing.JLabel();
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
add(label, gridBagConstraints);
**/
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Usuario:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
add(cmbImageComboUsuarios, gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Profesional:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
add(cmbImageComboProfesionales,gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Compañía:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
add(cmbImageComboCompanias, gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Especialidad:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
add(cmbImageComboEspecialidades,gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Lista Actos:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
add(cmbImageComboListaActos,gridBagConstraints);
jlistActosMedicosDeLA.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlistActosMedicosDeLA.setVisibleRowCount(-1);
jlistActosMedicosDeLA.setLayoutOrientation(JList.VERTICAL);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Actos Disponibles:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
java.awt.Dimension maxSize=new java.awt.Dimension(150,110);
//jlistActosMedicosDeLA.setPreferredSize(maxSize);
//jlistActosMedicosDeLA.setMaximumSize(maxSize);
//jlistActosMedicosDeLA.setPreferredSize(maxSize);
JScrollPane listScrollPane = new JScrollPane(jlistActosMedicosDeLA);
listScrollPane.setPreferredSize(maxSize);
add(listScrollPane,gridBagConstraints);
jlistActosMedicosSolicitados.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jlistActosMedicosSolicitados.setVisibleRowCount(-1);
jlistActosMedicosSolicitados.setLayoutOrientation(JList.VERTICAL);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Actos en la Petición:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
JScrollPane listScrollPane2 = new JScrollPane(jlistActosMedicosSolicitados);
listScrollPane2.setPreferredSize(maxSize);
add(listScrollPane2,gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
label=new javax.swing.JLabel("Datos del Cliente:");
add(label, gridBagConstraints);
gridBagConstraints.gridx++;
//JScrollPane listScrollPane3 = new JScrollPane(txtDatosCliente);
//listScrollPane3.setPreferredSize(maxSize);
add(txtDatosCliente,gridBagConstraints);
gridBagConstraints.gridy++;
gridBagConstraints.gridx=0;
add(chkEsRepeticion, gridBagConstraints);
cmbImageComboUsuarios.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
//Obtengo el Terminal
UsuarioTVS userTVS=(UsuarioTVS)getCmbImageComboUsuarios().getSelectedItem();
if(userTVS!=null){
if(userTVS.getTerminal().isTVA()){
getCmbImageComboListaActos().removeAllItems();
getCmbImageComboEspecialidades().setEnabled(false);
actosMedicosDeLAListModel.removeAllElements();
}else{
}
//Obtengo los Profesionales Sanitarios del Terminal
ProfesionalSanitarioBean bean=new ProfesionalSanitarioBean();
Vector vProfesionales=bean.getProfesionalesByTerminal(userTVS.getTerminal().getNumeroTerminal());
getCmbImageComboProfesionales().removeAllItems();
getCmbImageComboCompanias().removeAllItems();
getCmbImageComboEspecialidades().removeAllItems();
getCmbImageComboListaActos().removeAllItems();
if(vProfesionales.size()>0){
for(int i=0;i<vProfesionales.size();i++){
getCmbImageComboProfesionales().addItem(vProfesionales.elementAt(i));
}
}
}
}
}
);
getCmbImageComboProfesionales().addActionListener(new ActionListener(){
/**CAMBIAMOS DE PROFESIONAL**/
public void actionPerformed(ActionEvent evt){
//Obtengo el Terminal
getActosMedicosSolicitadosModel().removeAllElements();
actosMedicosDeLAListModel.removeAllElements();
UsuarioTVS userTVS=(UsuarioTVS)getCmbImageComboUsuarios().getSelectedItem();
if(userTVS!=null){
ProfesionalSanitario objProf=(ProfesionalSanitario)getCmbImageComboProfesionales().getSelectedItem();
if(objProf!=null){
//Obtengo las Companias Sanitarios del Terminal y el Profesional
CompaniaSanitariaBean compBean=new CompaniaSanitariaBean();
Vector vCompTerminal=compBean.getCompaniaSanitariaByTerminalAndProfesional(userTVS.getTerminal().getNumeroTerminal(),objProf.getCodProfesional());
getCmbImageComboCompanias().removeAllItems();
if(vCompTerminal.size()>0){
for(int i=0;i<vCompTerminal.size();i++){
getCmbImageComboCompanias().addItem(vCompTerminal.elementAt(i));
}
}
//Obtengo las Especialidades Sanitarias del Terminal y el Profesional
//Ahora las Especialidades
EspecialidadSanitariaBean espeBean=new EspecialidadSanitariaBean();
Vector vEspeTer=espeBean.getEspecialidadesSanitariasByTerminalAndProfesional(userTVS.getTerminal().getNumeroTerminal(),objProf.getCodProfesional());
getCmbImageComboEspecialidades().removeAllItems();
if(vEspeTer.size()>0){
for(int i=0;i<vEspeTer.size();i++){
getCmbImageComboEspecialidades().addItem(vEspeTer.elementAt(i));
}
}
}
}
}
});
getCmbImageComboCompanias().addActionListener(new ActionListener(){
/**CAMBIAMOS DE COMPaniA**/
public void actionPerformed(ActionEvent evt){
//Obtengo el Terminal
getCmbImageComboListaActos().removeAllItems();
getActosMedicosSolicitadosModel().removeAllElements();
actosMedicosDeLAListModel.removeAllElements();
UsuarioTVS userTVS=(UsuarioTVS)getCmbImageComboUsuarios().getSelectedItem();
if(userTVS!=null){
ProfesionalSanitario objProf=(ProfesionalSanitario)getCmbImageComboProfesionales().getSelectedItem();
if(objProf!=null){
CompaniaSanitaria objComp=(CompaniaSanitaria)getCmbImageComboCompanias().getSelectedItem();
EspecialidadSanitaria objEspe=(EspecialidadSanitaria)getCmbImageComboEspecialidades().getSelectedItem();
if(objComp!=null && objEspe!=null){
ListaActosBean objBean=new ListaActosBean();
Vector vListaActos=objBean.getListaActosByCompAndEspe(objComp.getCodigoCompania(),objEspe.getCodigoEspecialidad());
for(int i=0;i<vListaActos.size();i++){
getCmbImageComboListaActos().addItem(vListaActos.elementAt(i));
}
}
}
}
}
});
getCmbImageComboEspecialidades().addActionListener(new ActionListener(){
/**CAMBIO DE ESPECIALIDAD**/
public void actionPerformed(ActionEvent evt){
//Obtengo el Terminal
getCmbImageComboListaActos().removeAllItems();
getActosMedicosSolicitadosModel().removeAllElements();
actosMedicosDeLAListModel.removeAllElements();
UsuarioTVS userTVS=(UsuarioTVS)getCmbImageComboUsuarios().getSelectedItem();
if(userTVS!=null){
ProfesionalSanitario objProf=(ProfesionalSanitario)getCmbImageComboProfesionales().getSelectedItem();
if(objProf!=null){
CompaniaSanitaria objComp=(CompaniaSanitaria)getCmbImageComboCompanias().getSelectedItem();
EspecialidadSanitaria objEspe=(EspecialidadSanitaria)getCmbImageComboEspecialidades().getSelectedItem();
if(objComp!=null && objEspe!=null){
ListaActosBean objBean=new ListaActosBean();
Vector vListaActos=objBean.getListaActosByCompAndEspe(objComp.getCodigoCompania(),objEspe.getCodigoEspecialidad());
for(int i=0;i<vListaActos.size();i++){
getCmbImageComboListaActos().addItem(vListaActos.elementAt(i));
}
}
}
}
}
});
getCmbImageComboListaActos().addActionListener(new ActionListener(){
/**CAMBIO DE LISTA DE ACTOS**/
public void actionPerformed(ActionEvent evt){
//Obtengo el Terminal
getActosMedicosSolicitadosModel().removeAllElements();
actosMedicosDeLAListModel.removeAllElements();
UsuarioTVS userTVS=(UsuarioTVS)getCmbImageComboUsuarios().getSelectedItem();
if(userTVS!=null && !userTVS.getTerminal().isTVA()) {
ProfesionalSanitario objProf=(ProfesionalSanitario)getCmbImageComboProfesionales().getSelectedItem();
if(objProf!=null){
CompaniaSanitaria objComp=(CompaniaSanitaria)getCmbImageComboCompanias().getSelectedItem();
EspecialidadSanitaria objEspe=(EspecialidadSanitaria)getCmbImageComboEspecialidades().getSelectedItem();
ListaActos objListaActos=(ListaActos)getCmbImageComboListaActos().getSelectedItem();
if(objComp!=null && objEspe!=null && objListaActos!=null){
ActoMedicoBean objBean=new ActoMedicoBean();
Vector vActos=objBean.getActosMedicosOf(userTVS.getTerminal().getNumeroTerminal(),objComp.getCodigoCompania(),objEspe.getCodigoEspecialidad(),objProf.getCodProfesional(),objListaActos.getCodigoListaActos());
//WebServiceTrayIcon.showMessage("Autorizaciones","Existen "+vActos.size()+" Actos medicos",JOptionPane.INFORMATION_MESSAGE);
for(int i=0;i<vActos.size();i++){
actosMedicosDeLAListModel.addElement(vActos.elementAt(i));
}
}
}
}
}
});
jlistActosMedicosDeLA.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent evt) {
if (evt.isPopupTrigger()) {
//if (jlistActosMedicosDeLA.getSelectedIndex() != -1)
//RecommendedLinksPopupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
public void mouseReleased(MouseEvent evt) {
if (evt.isPopupTrigger()) {
//if (jlistActosMedicosDeLA.getSelectedIndex() != -1)
//RecommendedLinksPopupMenu.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 ) {
if (jlistActosMedicosDeLA.getSelectedIndex() != -1){
ActoMedico objAM=(ActoMedico)jlistActosMedicosDeLA.getSelectedValue();
actosMedicosSolicitadosModel.addElement(objAM);
}
}
}
}
);
JMenuItem item = new JMenuItem("Eliminar Acto",new ImageIcon(WebServiceTrayIcon.loadImage("eliminar.gif")));
item.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
if (jlistActosMedicosSolicitados.getSelectedIndex() != -1){
actosMedicosSolicitadosModel.removeElementAt(jlistActosMedicosSolicitados.getSelectedIndex());
jlistActosMedicosSolicitados.validate();
}
}
});
actosMedicosSolicitadosPopupMenu.add(item);
jlistActosMedicosSolicitados.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2 || e.isMetaDown() ) {
if (jlistActosMedicosSolicitados.getSelectedIndex() != -1){
actosMedicosSolicitadosPopupMenu.show(e.getComponent(), e.getX(), e.getY());
//ActoMedico objAM=(ActoMedico)jlistActosMedicosDeLA.getSelectedValue();
//actosMedicosSolicitadosModel.addElement(objAM);
}
}
}
}
);
}
public void updateData(){
getCmbImageComboUsuarios().removeAllItems();
UsuarioTVSBean bean=new UsuarioTVSBean();
Vector vUsuarios=bean.getUsuariosTVS();
for(int i=0;i<vUsuarios.size();i++){
UsuarioTVS obj=(UsuarioTVS)vUsuarios.elementAt(i);
getCmbImageComboUsuarios().addItem(obj);
}
}
/**
* @return
*/
public ImageComboBox getCmbImageComboCompanias() {
return cmbImageComboCompanias;
}
/**
* @return
*/
public ImageComboBox getCmbImageComboEspecialidades() {
return cmbImageComboEspecialidades;
}
/**
* @return
*/
public ImageComboBox getCmbImageComboListaActos() {
return cmbImageComboListaActos;
}
/**
* @return
*/
public ImageComboBox getCmbImageComboProfesionales() {
return cmbImageComboProfesionales;
}
/**
* @return
*/
public ImageComboBox getCmbImageComboUsuarios() {
return cmbImageComboUsuarios;
}
/**
public Vector getVUsuarios() {
if(vUsuarios==null){
UsuarioTVSBean bean=new UsuarioTVSBean();
vUsuarios=bean.getUsuariosTVS();
}
return vUsuarios;
}**/
/**
* @return
*/
public DefaultListModel getActosMedicosSolicitadosModel() {
return actosMedicosSolicitadosModel;
}
/**
* @return
*/
public ImageComboBox getCmbImageComboTipoOperacion() {
return cmbImageComboTipoOperacion;
}
/**
* @return
*/
public JComboBox getCmbURLService() {
return cmbURLService;
}
public void setEnabled(boolean blnEnabled){
super.setEnabled(blnEnabled);
java.awt.Component arrComp[]=this.getComponents();
for(int i=0;i<this.getComponentCount();i++){
arrComp[i].setEnabled(blnEnabled);
}
validate();
repaint();
}
/**
* @return
*/
public JTextField getJtxtDocUnico() {
return jtxtDocUnico;
}
/**
* @return
*/
public JTextField getJtxtNumVolante() {
return jtxtNumVolante;
}
/**
* @return
*/
public JTextField getTxtDatosCliente() {
return txtDatosCliente;
}
/**
* @return
*/
public JCheckBox getChkEsRepeticion() {
return chkEsRepeticion;
}
}